From 47418a6b5cac23eb6e55a9332072ecc8a267fe53 Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Wed, 18 Mar 2026 11:18:36 +0000 Subject: [PATCH 001/293] link follow to notification state --- .../components/FollowWrapper.importable.tsx | 139 +++++++++++++----- 1 file changed, 106 insertions(+), 33 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index 7208609214c..46bf8619207 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -42,31 +42,62 @@ export const FollowWrapper = ({ id, displayName }: Props) => { type: 'tag-contributor', }); - void getNotificationsClient() - .isFollowing(topic) - .then(setIsFollowingNotifications) - .catch((error) => { - window.guardian.modules.sentry.reportError( - error, - 'bridget-getNotificationsClient-isFollowing-error', - ); - log( - 'dotcom', - 'Bridget getNotificationsClient.isFollowing Error:', - error, - ); - }); - - void getTagClient() - .isFollowing(topic) - .then(setIsFollowingTag) - .catch((error) => { - window.guardian.modules.sentry.reportError( - error, - 'bridget-getTagClient-isFollowing-error', - ); - log('dotcom', 'Bridget getTagClient.isFollowing Error:', error); - }); + void Promise.all([ + getNotificationsClient() + .isFollowing(topic) + .catch((error) => { + window.guardian.modules.sentry.reportError( + error, + 'bridget-getNotificationsClient-isFollowing-error', + ); + log( + 'dotcom', + 'Bridget getNotificationsClient.isFollowing Error:', + error, + ); + return undefined; + }), + getTagClient() + .isFollowing(topic) + .catch((error) => { + window.guardian.modules.sentry.reportError( + error, + 'bridget-getTagClient-isFollowing-error', + ); + log( + 'dotcom', + 'Bridget getTagClient.isFollowing Error:', + error, + ); + return undefined; + }), + ]).then(([followingNotifications, followingTag]) => { + setIsFollowingNotifications(followingNotifications); + setIsFollowingTag(followingTag); + + // Legacy: if user has notifications on but isn't following, + // auto-follow the tag to keep states consistent + if (followingNotifications && !followingTag) { + void getTagClient() + .follow(topic) + .then((success) => { + if (success) { + setIsFollowingTag(true); + } + }) + .catch((error) => { + window.guardian.modules.sentry.reportError( + error, + 'bridget-getTagClient-auto-follow-error', + ); + log( + 'dotcom', + 'Bridget getTagClient.follow (auto) Error:', + error, + ); + }); + } + }); }, [id, displayName]); const tagHandler = () => { @@ -95,6 +126,26 @@ export const FollowWrapper = ({ id, displayName }: Props) => { error, ); }); + + // Turn off notifications when unfollowing + void getNotificationsClient() + .unfollow(topic) + .then((success) => { + if (success) { + setIsFollowingNotifications(false); + } + }) + .catch((error) => { + window.guardian.modules.sentry.reportError( + error, + 'bridget-getNotificationsClient-unfollow-error', + ); + log( + 'dotcom', + 'Bridget getNotificationsClient.unfollow Error:', + error, + ); + }); } else { void getTagClient() .follow(topic) @@ -110,6 +161,26 @@ export const FollowWrapper = ({ id, displayName }: Props) => { ); log('dotcom', 'Bridget getTagClient.follow Error:', error); }); + + // Enable notifications when following + void getNotificationsClient() + .follow(topic) + .then((success) => { + if (success) { + setIsFollowingNotifications(true); + } + }) + .catch((error) => { + window.guardian.modules.sentry.reportError( + error, + 'bridget-getNotificationsClient-follow-error', + ); + log( + 'dotcom', + 'Bridget getNotificationsClient.follow Error:', + error, + ); + }); } }; @@ -189,14 +260,16 @@ export const FollowWrapper = ({ id, displayName }: Props) => { withExtraBottomMargin={true} /> )} - undefined - } - /> + {isFollowingTag && ( + undefined + } + /> + )} ); }; From da7f1285e997af649b08b92594ae1d0a34c57981 Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Wed, 18 Mar 2026 11:56:58 +0000 Subject: [PATCH 002/293] remove notification opt out --- .../components/FollowWrapper.importable.tsx | 72 ++++--------------- 1 file changed, 14 insertions(+), 58 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index 46bf8619207..c4edce319b9 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -1,12 +1,13 @@ import { css } from '@emotion/react'; import { Topic } from '@guardian/bridget/Topic'; import { isUndefined, log } from '@guardian/libs'; -import { from, space } from '@guardian/source/foundations'; +import { from, space, textSans15 } from '@guardian/source/foundations'; import { useEffect, useState } from 'react'; import { getNotificationsClient, getTagClient } from '../lib/bridgetApi'; import { useIsBridgetCompatible } from '../lib/useIsBridgetCompatible'; import { useIsMyGuardianEnabled } from '../lib/useIsMyGuardianEnabled'; -import { FollowNotificationsButton, FollowTagButton } from './FollowButtons'; +import { palette as schemedPalette } from '../palette'; +import { FollowTagButton } from './FollowButtons'; type Props = { id: string; @@ -184,54 +185,6 @@ export const FollowWrapper = ({ id, displayName }: Props) => { } }; - const notificationsHandler = () => { - const topic = new Topic({ - id, - displayName, - type: 'tag-contributor', - }); - - if (isFollowingNotifications) { - void getNotificationsClient() - .unfollow(topic) - .then((success) => { - if (success) { - setIsFollowingNotifications(false); - } - }) - .catch((error) => { - window.guardian.modules.sentry.reportError( - error, - 'briidget-getNotificationsClient-unfollow-error', - ); - log( - 'dotcom', - 'Bridget getNotificationsClient.unfollow Error:', - error, - ); - }); - } else { - void getNotificationsClient() - .follow(topic) - .then((success) => { - if (success) { - setIsFollowingNotifications(true); - } - }) - .catch((error) => { - window.guardian.modules.sentry.reportError( - error, - 'bridget-getNotificationsClient-follow-error', - ); - log( - 'dotcom', - 'Bridget getNotificationsClient.follow Error:', - error, - ); - }); - } - }; - return (
{ /> )} {isFollowingTag && ( - undefined - } - /> + + Notifications turned on. Turn off anytime in Settings. + )}
); From f10665d0441042142ea5c3fa0fadf6f76dd58529 Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Wed, 18 Mar 2026 12:06:49 +0000 Subject: [PATCH 003/293] css tweaks --- .../components/FollowWrapper.importable.tsx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index c4edce319b9..05b2df0cce5 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -1,7 +1,8 @@ import { css } from '@emotion/react'; import { Topic } from '@guardian/bridget/Topic'; import { isUndefined, log } from '@guardian/libs'; -import { from, space, textSans15 } from '@guardian/source/foundations'; +import { from, space, textSans12 } from '@guardian/source/foundations'; +import { SvgNotificationsOn } from '@guardian/source/react-components'; import { useEffect, useState } from 'react'; import { getNotificationsClient, getTagClient } from '../lib/bridgetApi'; import { useIsBridgetCompatible } from '../lib/useIsBridgetCompatible'; @@ -14,6 +15,17 @@ type Props = { displayName: string; }; +const notificationTextStyles = css` + ${textSans12} + color: ${schemedPalette('--follow-text')}; + fill: currentColor; + display: flex; + align-items: center; + column-gap: ${space[1]}px; + min-height: ${space[6]}px; + padding: 0; +`; + export const FollowWrapper = ({ id, displayName }: Props) => { const [isFollowingNotifications, setIsFollowingNotifications] = useState< boolean | undefined @@ -214,15 +226,8 @@ export const FollowWrapper = ({ id, displayName }: Props) => { /> )} {isFollowingTag && ( - + + Notifications turned on. Turn off anytime in Settings. )} From d77d0931f1447d17125a85d8cb91901cc48e4d3d Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Wed, 18 Mar 2026 12:09:21 +0000 Subject: [PATCH 004/293] auto enable notifications --- .../components/FollowWrapper.importable.tsx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index 05b2df0cce5..4f960b7d144 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -110,6 +110,29 @@ export const FollowWrapper = ({ id, displayName }: Props) => { ); }); } + + // If user is following but notifications aren't on, + // auto-enable notifications to keep states consistent + if (followingTag && !followingNotifications) { + void getNotificationsClient() + .follow(topic) + .then((success) => { + if (success) { + setIsFollowingNotifications(true); + } + }) + .catch((error) => { + window.guardian.modules.sentry.reportError( + error, + 'bridget-getNotificationsClient-auto-follow-error', + ); + log( + 'dotcom', + 'Bridget getNotificationsClient.follow (auto) Error:', + error, + ); + }); + } }); }, [id, displayName]); From f3426d21d1101b5d7f65bc113285d2c50d7ec8cf Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Wed, 18 Mar 2026 12:38:54 +0000 Subject: [PATCH 005/293] respect notification settings --- .../components/FollowWrapper.importable.tsx | 55 +++++++++---------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index 4f960b7d144..d620322daa3 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -2,7 +2,10 @@ import { css } from '@emotion/react'; import { Topic } from '@guardian/bridget/Topic'; import { isUndefined, log } from '@guardian/libs'; import { from, space, textSans12 } from '@guardian/source/foundations'; -import { SvgNotificationsOn } from '@guardian/source/react-components'; +import { + SvgNotificationsOff, + SvgNotificationsOn, +} from '@guardian/source/react-components'; import { useEffect, useState } from 'react'; import { getNotificationsClient, getTagClient } from '../lib/bridgetApi'; import { useIsBridgetCompatible } from '../lib/useIsBridgetCompatible'; @@ -44,9 +47,15 @@ export const FollowWrapper = ({ id, displayName }: Props) => { return !blockList.includes(tagId); }; - if (isBridgetCompatible && isMyGuardianEnabled && isNotInBlockList(id)) { - setShowFollowTagButton(true); - } + useEffect(() => { + if ( + isBridgetCompatible && + isMyGuardianEnabled && + isNotInBlockList(id) + ) { + setShowFollowTagButton(true); + } + }, [isBridgetCompatible, isMyGuardianEnabled, id]); useEffect(() => { const topic = new Topic({ @@ -110,29 +119,6 @@ export const FollowWrapper = ({ id, displayName }: Props) => { ); }); } - - // If user is following but notifications aren't on, - // auto-enable notifications to keep states consistent - if (followingTag && !followingNotifications) { - void getNotificationsClient() - .follow(topic) - .then((success) => { - if (success) { - setIsFollowingNotifications(true); - } - }) - .catch((error) => { - window.guardian.modules.sentry.reportError( - error, - 'bridget-getNotificationsClient-auto-follow-error', - ); - log( - 'dotcom', - 'Bridget getNotificationsClient.follow (auto) Error:', - error, - ); - }); - } }); }, [id, displayName]); @@ -250,8 +236,19 @@ export const FollowWrapper = ({ id, displayName }: Props) => { )} {isFollowingTag && ( - - Notifications turned on. Turn off anytime in Settings. + {isFollowingNotifications ? ( + <> + + Notifications turned on. Turn off anytime in + Settings. + + ) : ( + <> + + Notifications turned off. Turn on anytime in + Settings. + + )} )} From 6e99ef4b3c0942b9f0c5897e78b63aa4c1c6a457 Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Wed, 18 Mar 2026 12:44:24 +0000 Subject: [PATCH 006/293] update useEffect --- .../src/components/FollowWrapper.importable.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index d620322daa3..75e736fd23c 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -42,16 +42,13 @@ export const FollowWrapper = ({ id, displayName }: Props) => { const isMyGuardianEnabled = useIsMyGuardianEnabled(); const isBridgetCompatible = useIsBridgetCompatible('2.5.0'); - const isNotInBlockList = (tagId: string) => { - const blockList = ['profile/anas-al-sharif']; - return !blockList.includes(tagId); - }; + const blockList = ['profile/anas-al-sharif']; useEffect(() => { if ( isBridgetCompatible && isMyGuardianEnabled && - isNotInBlockList(id) + !blockList.includes(id) ) { setShowFollowTagButton(true); } From 71747cec45b11671150f53d729671044c9093860 Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Thu, 19 Mar 2026 10:14:36 +0000 Subject: [PATCH 007/293] move blocklist --- dotcom-rendering/src/components/FollowWrapper.importable.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index 75e736fd23c..2171b0a6768 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -29,6 +29,8 @@ const notificationTextStyles = css` padding: 0; `; +const blockList = ['profile/anas-al-sharif']; + export const FollowWrapper = ({ id, displayName }: Props) => { const [isFollowingNotifications, setIsFollowingNotifications] = useState< boolean | undefined @@ -42,8 +44,6 @@ export const FollowWrapper = ({ id, displayName }: Props) => { const isMyGuardianEnabled = useIsMyGuardianEnabled(); const isBridgetCompatible = useIsBridgetCompatible('2.5.0'); - const blockList = ['profile/anas-al-sharif']; - useEffect(() => { if ( isBridgetCompatible && From fc192bd044a28924c0e24ea316ada91f2284a5c5 Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Mon, 23 Mar 2026 11:02:05 +0000 Subject: [PATCH 008/293] remove useState --- .../src/components/FollowWrapper.importable.tsx | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.importable.tsx b/dotcom-rendering/src/components/FollowWrapper.importable.tsx index 2171b0a6768..63338fdca94 100644 --- a/dotcom-rendering/src/components/FollowWrapper.importable.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.importable.tsx @@ -38,21 +38,11 @@ export const FollowWrapper = ({ id, displayName }: Props) => { const [isFollowingTag, setIsFollowingTag] = useState( undefined, ); - const [showFollowTagButton, setShowFollowTagButton] = - useState(false); - const isMyGuardianEnabled = useIsMyGuardianEnabled(); const isBridgetCompatible = useIsBridgetCompatible('2.5.0'); - useEffect(() => { - if ( - isBridgetCompatible && - isMyGuardianEnabled && - !blockList.includes(id) - ) { - setShowFollowTagButton(true); - } - }, [isBridgetCompatible, isMyGuardianEnabled, id]); + const showFollowTagButton = + isBridgetCompatible && isMyGuardianEnabled && !blockList.includes(id); useEffect(() => { const topic = new Topic({ From 88d0db60db4d7d1e4bed1829845ae68137acdcbb Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Fri, 29 May 2026 15:32:16 +0100 Subject: [PATCH 009/293] wait for tag subscription result before signing up to notification --- .../src/components/FollowWrapper.island.tsx | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.island.tsx b/dotcom-rendering/src/components/FollowWrapper.island.tsx index 63338fdca94..027b2acb91a 100644 --- a/dotcom-rendering/src/components/FollowWrapper.island.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.island.tsx @@ -29,8 +29,6 @@ const notificationTextStyles = css` padding: 0; `; -const blockList = ['profile/anas-al-sharif']; - export const FollowWrapper = ({ id, displayName }: Props) => { const [isFollowingNotifications, setIsFollowingNotifications] = useState< boolean | undefined @@ -161,19 +159,10 @@ export const FollowWrapper = ({ id, displayName }: Props) => { .then((success) => { if (success) { setIsFollowingTag(true); + return getNotificationsClient().follow(topic); } + return false; }) - .catch((error) => { - window.guardian.modules.sentry.reportError( - error, - 'bridget-getTagClient-follow-error', - ); - log('dotcom', 'Bridget getTagClient.follow Error:', error); - }); - - // Enable notifications when following - void getNotificationsClient() - .follow(topic) .then((success) => { if (success) { setIsFollowingNotifications(true); @@ -182,13 +171,9 @@ export const FollowWrapper = ({ id, displayName }: Props) => { .catch((error) => { window.guardian.modules.sentry.reportError( error, - 'bridget-getNotificationsClient-follow-error', - ); - log( - 'dotcom', - 'Bridget getNotificationsClient.follow Error:', - error, + 'bridget-getTagClient-follow-error', ); + log('dotcom', 'Bridget getTagClient.follow Error:', error); }); } }; From 6dce920028c22db93ea9a6ea6cd646a391bff0e7 Mon Sep 17 00:00:00 2001 From: Ara Cho Date: Fri, 29 May 2026 15:42:44 +0100 Subject: [PATCH 010/293] lint --- dotcom-rendering/src/components/FollowWrapper.island.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dotcom-rendering/src/components/FollowWrapper.island.tsx b/dotcom-rendering/src/components/FollowWrapper.island.tsx index 027b2acb91a..fe59a18768b 100644 --- a/dotcom-rendering/src/components/FollowWrapper.island.tsx +++ b/dotcom-rendering/src/components/FollowWrapper.island.tsx @@ -39,8 +39,12 @@ export const FollowWrapper = ({ id, displayName }: Props) => { const isMyGuardianEnabled = useIsMyGuardianEnabled(); const isBridgetCompatible = useIsBridgetCompatible('2.5.0'); + const isNotInBlockList = (tagId: string) => { + const blockList = ['profile/anas-al-sharif']; + return !blockList.includes(tagId); + }; const showFollowTagButton = - isBridgetCompatible && isMyGuardianEnabled && !blockList.includes(id); + isBridgetCompatible && isMyGuardianEnabled && isNotInBlockList(id); useEffect(() => { const topic = new Topic({ From 1c795ed4817963356f8e552cdc18baec461966ee Mon Sep 17 00:00:00 2001 From: DBlatcher Date: Wed, 3 Jun 2026 14:39:29 +0100 Subject: [PATCH 011/293] overflowWrap: 'anywhere' for CardHeadlines --- dotcom-rendering/src/components/CardHeadline.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dotcom-rendering/src/components/CardHeadline.tsx b/dotcom-rendering/src/components/CardHeadline.tsx index ec12871d59b..d5915f6f25e 100644 --- a/dotcom-rendering/src/components/CardHeadline.tsx +++ b/dotcom-rendering/src/components/CardHeadline.tsx @@ -247,6 +247,9 @@ export const CardHeadline = ({ isSublink ? 'card-sublink-headline' : 'card-headline' }`} css={[ + { + overflowWrap: 'anywhere', + }, isSublink ? css` ${textSans14} From 2bdb5ff25201766242df6990a05b8aa523e81f97 Mon Sep 17 00:00:00 2001 From: DBlatcher Date: Wed, 3 Jun 2026 15:32:40 +0100 Subject: [PATCH 012/293] limit word breaking to carousel cards --- dotcom-rendering/src/components/Card/Card.tsx | 6 ++++++ dotcom-rendering/src/components/CardHeadline.tsx | 6 +++++- dotcom-rendering/src/components/Carousel.island.tsx | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/dotcom-rendering/src/components/Card/Card.tsx b/dotcom-rendering/src/components/Card/Card.tsx index 9b60d9ac51a..2235efd9ee6 100644 --- a/dotcom-rendering/src/components/Card/Card.tsx +++ b/dotcom-rendering/src/components/Card/Card.tsx @@ -164,6 +164,7 @@ export type Props = { headlinePosition?: 'inner' | 'outer'; starRatingSize?: RatingSizeType; contentSpacing?: 'small' | 'large'; + allowHeadlineToBreakWords?: boolean; }; const waveformWrapper = ( @@ -410,6 +411,7 @@ export const Card = ({ starRatingSize = 'small', articleMedia, contentSpacing, + allowHeadlineToBreakWords, }: Props) => { const ab = useAB(); const isInLoopClickTestControl = @@ -853,6 +855,7 @@ export const Card = ({ byline={byline} showByline={showByline} isExternalLink={isExternalLink} + allowHeadlineToBreakWords={allowHeadlineToBreakWords} /> {!isUndefined(starRating) && ( @@ -1152,6 +1155,9 @@ export const Card = ({ ? media.podcastImage : undefined } + allowHeadlineToBreakWords={ + allowHeadlineToBreakWords + } /> {!isUndefined(starRating) && ( diff --git a/dotcom-rendering/src/components/CardHeadline.tsx b/dotcom-rendering/src/components/CardHeadline.tsx index d5915f6f25e..0bf6aae18e5 100644 --- a/dotcom-rendering/src/components/CardHeadline.tsx +++ b/dotcom-rendering/src/components/CardHeadline.tsx @@ -58,6 +58,7 @@ type Props = { kickerColour?: string; quoteColour?: string; kickerImage?: PodcastSeriesImage; + allowHeadlineToBreakWords?: boolean; }; const sublinkStyles = css` @@ -234,6 +235,7 @@ export const CardHeadline = ({ kickerColour = palette('--card-kicker-text'), quoteColour = palette('--card-quote-icon'), kickerImage, + allowHeadlineToBreakWords, }: Props) => { // The link is only applied directly to the headline if it is a sublink const isSublink = !!linkTo; @@ -248,7 +250,9 @@ export const CardHeadline = ({ }`} css={[ { - overflowWrap: 'anywhere', + overflowWrap: allowHeadlineToBreakWords + ? 'anywhere' + : undefined, }, isSublink ? css` diff --git a/dotcom-rendering/src/components/Carousel.island.tsx b/dotcom-rendering/src/components/Carousel.island.tsx index 74f1e8e4696..9efa8606b65 100644 --- a/dotcom-rendering/src/components/Carousel.island.tsx +++ b/dotcom-rendering/src/components/Carousel.island.tsx @@ -534,6 +534,7 @@ const CarouselCard = ({ showTopBarMobile={!isOnwardContent} aspectRatio="5:4" contentSpacing="small" + allowHeadlineToBreakWords={true} /> ); From cc2f889d6d3cc66fcb1e236b6ed6edcf25cb7533 Mon Sep 17 00:00:00 2001 From: Frederick O'Brien Date: Wed, 25 Feb 2026 16:33:03 +0000 Subject: [PATCH 013/293] Rough implementation for mobile view --- .../src/layouts/StandardLayout.tsx | 362 +++--------------- 1 file changed, 55 insertions(+), 307 deletions(-) diff --git a/dotcom-rendering/src/layouts/StandardLayout.tsx b/dotcom-rendering/src/layouts/StandardLayout.tsx index bc58c971f4d..7d7e9aeb8ed 100644 --- a/dotcom-rendering/src/layouts/StandardLayout.tsx +++ b/dotcom-rendering/src/layouts/StandardLayout.tsx @@ -27,7 +27,6 @@ import { DiscussionLayout } from '../components/DiscussionLayout'; import { FootballMatchHeaderWrapper } from '../components/FootballMatchHeaderWrapper.island'; import { FootballMatchInfoWrapper } from '../components/FootballMatchInfoWrapper.island'; import { Footer } from '../components/Footer'; -import { GridItem } from '../components/GridItem'; import { GuardianLabsLines } from '../components/GuardianLabsLines'; import { HeaderAdSlot } from '../components/HeaderAdSlot'; import { Island } from '../components/Island'; @@ -39,13 +38,13 @@ import { MostViewedFooterData } from '../components/MostViewedFooterData.island' import { MostViewedFooterLayout } from '../components/MostViewedFooterLayout'; import { MostViewedRightWithAd } from '../components/MostViewedRightWithAd.island'; import { OnwardsUpper } from '../components/OnwardsUpper.island'; -import { RightColumn } from '../components/RightColumn'; import { Section } from '../components/Section'; import { SlotBodyEnd } from '../components/SlotBodyEnd.island'; import { Standfirst } from '../components/Standfirst'; import { StickyBottomBanner } from '../components/StickyBottomBanner.island'; import { SubMeta } from '../components/SubMeta'; import { SubNav } from '../components/SubNav.island'; +import { grid } from '../grid'; import { ArticleDesign, type ArticleFormat, @@ -65,239 +64,6 @@ import type { ArticleDeprecated } from '../types/article'; import type { RenderingTarget } from '../types/renderingTarget'; import { BannerWrapper, Stuck } from './lib/stickiness'; -const StandardGrid = ({ - children, - isMatchReport, - isMedia, -}: { - children: React.ReactNode; - isMatchReport: boolean; - isMedia: boolean; -}) => ( -
- {children} -
-); - const maxWidth = css` ${from.desktop} { max-width: 620px; @@ -467,21 +233,9 @@ export const StandardLayout = (props: WebProps | AppProps) => { pageId={article.pageId} pageTags={article.tags} /> -
- - +
+
+
{ contentLayout="StandardLayout" />
- - +
+ - +
{format.theme === ArticleSpecial.Labs ? ( <> ) : ( )} - - +
+
{ starRating={article.starRating} />
- - +
+
- - +
+ +
{/* Only show Listen to Article button on App landscape views */} {isApps && ( @@ -795,53 +559,37 @@ export const StandardLayout = (props: WebProps | AppProps) => { } /> - - -
+
+ + - - - - - -
- - -
+ /> + + + + {isWeb && renderAds && !isLabs && (
Date: Fri, 27 Feb 2026 13:57:33 +0000 Subject: [PATCH 014/293] Desktop layout --- .../src/layouts/StandardLayout.tsx | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/dotcom-rendering/src/layouts/StandardLayout.tsx b/dotcom-rendering/src/layouts/StandardLayout.tsx index 7d7e9aeb8ed..a9f51572fc8 100644 --- a/dotcom-rendering/src/layouts/StandardLayout.tsx +++ b/dotcom-rendering/src/layouts/StandardLayout.tsx @@ -81,6 +81,12 @@ const stretchLines = css` } `; +const desktopRow = (row: number) => css` + ${from.desktop} { + grid-row: ${row}; + } +`; + interface Props { article: ArticleDeprecated; format: ArticleFormat; @@ -279,7 +285,7 @@ export const StandardLayout = (props: WebProps | AppProps) => { )} -
+
{ />
-
+
)} + { )} - + {/* GridItem order matters — mobile layout relies on DOM order for grid placement. See furnitureArrangements.ts if reordering. */}
Date: Thu, 11 Jun 2026 12:40:46 +0100 Subject: [PATCH 066/293] fix: add Affiliate disclaimer back to standardlayout (#16128) --- .../src/layouts/StandardLayout.tsx | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/dotcom-rendering/src/layouts/StandardLayout.tsx b/dotcom-rendering/src/layouts/StandardLayout.tsx index 97431193193..a9c59cb4c4a 100644 --- a/dotcom-rendering/src/layouts/StandardLayout.tsx +++ b/dotcom-rendering/src/layouts/StandardLayout.tsx @@ -395,27 +395,34 @@ export const StandardLayout = (props: WebProps | AppProps) => { ) : ( - + <> + + {!!article.affiliateLinksDisclaimer && ( + + )} + )} From ed8a649dd0b35921e9923ccb6af4133832837735 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Tue, 9 Jun 2026 08:44:24 +0100 Subject: [PATCH 067/293] Provides DCAR App media events with the full Ophan media ID --- dotcom-rendering/src/components/YoutubeAtom/eventEmitters.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotcom-rendering/src/components/YoutubeAtom/eventEmitters.ts b/dotcom-rendering/src/components/YoutubeAtom/eventEmitters.ts index ba63f1bb668..2301b89da98 100644 --- a/dotcom-rendering/src/components/YoutubeAtom/eventEmitters.ts +++ b/dotcom-rendering/src/components/YoutubeAtom/eventEmitters.ts @@ -74,7 +74,7 @@ const ophanTrackerApps = (id: string, videoStyle: OphanVideoStyle) => { void getAppsMediaEvent(trackingEvent).then((appsMediaEvent) => { if (!isUndefined(appsMediaEvent)) { const event = { - videoId: id, + videoId: `gu-video-${videoStyle}-${id}`, event: appsMediaEvent, }; log('dotcom', { From b66c9fda84cff1afc2deaf235848071b49d1cf9d Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Tue, 2 Jun 2026 17:14:11 +0100 Subject: [PATCH 068/293] Submits video attention events to Ophan via Bridget interface --- dotcom-rendering/src/lib/useVideoAttentionTracking.ts | 11 ++++++++--- pnpm-lock.yaml | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/dotcom-rendering/src/lib/useVideoAttentionTracking.ts b/dotcom-rendering/src/lib/useVideoAttentionTracking.ts index 49f2ecd1cf8..e7d30039458 100644 --- a/dotcom-rendering/src/lib/useVideoAttentionTracking.ts +++ b/dotcom-rendering/src/lib/useVideoAttentionTracking.ts @@ -1,6 +1,8 @@ import { useEffect, useRef } from 'react'; import { getOphan } from '../client/ophan/ophan'; import type { RenderingTarget } from '../types/renderingTarget'; +import { log } from '@guardian/libs'; +import { getVideoClient } from './bridgetApi'; /** * How often attention time is reported to Ophan, matching the interval used @@ -96,9 +98,12 @@ export const useVideoAttentionTracking = ( }); }); } else { - /** - * Report component attention time via Bridget. - */ + const attentionTime = new Map(); + attentionTime.set( + componentName, + Math.round(totalAttentionMsRef.current), + ); + void getVideoClient().sendVideoAttentionTime(attentionTime); } reportedAttentionMsRef.current = totalAttentionMsRef.current; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46a5cfa174b..664a072f971 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16596,7 +16596,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.3 is-set@2.0.3: {} From 1bfd6c6171ca20cbc0e254dde8de83a584b920f2 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Tue, 2 Jun 2026 17:16:34 +0100 Subject: [PATCH 069/293] Adds hasMinimumBridgetVersion for submmiting video attention times --- .../src/lib/useVideoAttentionTracking.ts | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/dotcom-rendering/src/lib/useVideoAttentionTracking.ts b/dotcom-rendering/src/lib/useVideoAttentionTracking.ts index e7d30039458..c247fffc9c2 100644 --- a/dotcom-rendering/src/lib/useVideoAttentionTracking.ts +++ b/dotcom-rendering/src/lib/useVideoAttentionTracking.ts @@ -1,8 +1,8 @@ import { useEffect, useRef } from 'react'; import { getOphan } from '../client/ophan/ophan'; import type { RenderingTarget } from '../types/renderingTarget'; -import { log } from '@guardian/libs'; import { getVideoClient } from './bridgetApi'; +import { hasMinimumBridgetVersion } from './useIsBridgetCompatible'; /** * How often attention time is reported to Ophan, matching the interval used @@ -82,7 +82,7 @@ export const useVideoAttentionTracking = ( } }; - const report = () => { + const report = async () => { accumulateAttention(); if ( totalAttentionMsRef.current !== reportedAttentionMsRef.current @@ -98,19 +98,26 @@ export const useVideoAttentionTracking = ( }); }); } else { - const attentionTime = new Map(); - attentionTime.set( - componentName, - Math.round(totalAttentionMsRef.current), - ); - void getVideoClient().sendVideoAttentionTime(attentionTime); + if (await hasMinimumBridgetVersion('8.11.0-2026-06-02"')) { + const attentionTime = new Map(); + attentionTime.set( + componentName, + Math.round(totalAttentionMsRef.current), + ); + void getVideoClient().sendVideoAttentionTime( + attentionTime, + ); + } } reportedAttentionMsRef.current = totalAttentionMsRef.current; } }; - const intervalId = window.setInterval(report, REPORTING_INTERVAL_MS); + const intervalId = window.setInterval( + () => void report, + REPORTING_INTERVAL_MS, + ); return () => { window.clearInterval(intervalId); From 06ed175083be534d9e76d4dc5366cda50791c6c6 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Wed, 3 Jun 2026 08:23:10 +0100 Subject: [PATCH 070/293] Bump Bridget to version 8.13.1 --- .../src/lib/useVideoAttentionTracking.ts | 12 ++++++------ pnpm-lock.yaml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dotcom-rendering/src/lib/useVideoAttentionTracking.ts b/dotcom-rendering/src/lib/useVideoAttentionTracking.ts index c247fffc9c2..229d2acbf7a 100644 --- a/dotcom-rendering/src/lib/useVideoAttentionTracking.ts +++ b/dotcom-rendering/src/lib/useVideoAttentionTracking.ts @@ -98,14 +98,14 @@ export const useVideoAttentionTracking = ( }); }); } else { - if (await hasMinimumBridgetVersion('8.11.0-2026-06-02"')) { - const attentionTime = new Map(); - attentionTime.set( + if (await hasMinimumBridgetVersion('8.12.0')) { + const attentionTimeMap = new Map(); + attentionTimeMap.set( componentName, Math.round(totalAttentionMsRef.current), ); - void getVideoClient().sendVideoAttentionTime( - attentionTime, + void getVideoClient().sendVideoAttentionTimes( + attentionTimeMap, ); } } @@ -115,7 +115,7 @@ export const useVideoAttentionTracking = ( }; const intervalId = window.setInterval( - () => void report, + () => void report(), REPORTING_INTERVAL_MS, ); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 664a072f971..46a5cfa174b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16596,7 +16596,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.3 + hasown: 2.0.2 is-set@2.0.3: {} From 7d46d37a41a65ef70cb9dd01473f5810f5eae624 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:01:32 +0100 Subject: [PATCH 071/293] updated team name colours and added darkmode colour --- .../src/components/CricketScorecardNew.tsx | 4 ++-- dotcom-rendering/src/paletteDeclarations.ts | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dotcom-rendering/src/components/CricketScorecardNew.tsx b/dotcom-rendering/src/components/CricketScorecardNew.tsx index 0e34a9c9d21..88df9d8f544 100644 --- a/dotcom-rendering/src/components/CricketScorecardNew.tsx +++ b/dotcom-rendering/src/components/CricketScorecardNew.tsx @@ -253,11 +253,11 @@ const teamNameStyles = css` `; const homeTeamNameStyles = css` - color: ${palette('--cricket-scorecard-first-team-color')}; + color: ${palette('--cricket-scorecard-first-team-lineup-color')}; `; const awayTeamNameStyles = css` - color: ${palette('--cricket-scorecard-second-team-color')}; + color: ${palette('--cricket-scorecard-second-team-lineup-color')}; `; const playerListStyles = css` diff --git a/dotcom-rendering/src/paletteDeclarations.ts b/dotcom-rendering/src/paletteDeclarations.ts index bd860a4a412..58878d6861f 100644 --- a/dotcom-rendering/src/paletteDeclarations.ts +++ b/dotcom-rendering/src/paletteDeclarations.ts @@ -6914,16 +6914,24 @@ const paletteColours = { dark: () => sourcePalette.neutral[86], }, '--cricket-scorecard-first-team-color': { - light: () => '#22721a', - dark: () => '#4aad42', + light: () => sourcePalette.sport[400], + dark: () => sourcePalette.sport[400], + }, + '--cricket-scorecard-first-team-lineup-color': { + light: () => sourcePalette.sport[400], + dark: () => sourcePalette.neutral[86], }, '--cricket-scorecard-innings-heading-text': { light: () => sourcePalette.neutral[100], dark: () => sourcePalette.neutral[100], }, '--cricket-scorecard-second-team-color': { - light: () => '#071b3c', - dark: () => '#4878c0', + light: () => sourcePalette.sport[100], + dark: () => sourcePalette.sport[100], + }, + '--cricket-scorecard-second-team-lineup-color': { + light: () => sourcePalette.sport[100], + dark: () => sourcePalette.neutral[86], }, '--crossword-anagram-helper-background': { light: crosswordAnagramHelperBackgroundLight, From d0cf5bb8c4b6e437330bccd61029db25ee98576e Mon Sep 17 00:00:00 2001 From: Frederick O'Brien Date: Thu, 11 Jun 2026 11:50:22 +0100 Subject: [PATCH 072/293] Align match header rules with article --- .../FootballMatchHeader.tsx | 24 +++++++++++++++---- .../components/FootballMatchHeader/Tabs.tsx | 2 -- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx index 1d910a241af..c8b5e25bf47 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx @@ -113,14 +113,28 @@ export const FootballMatchHeader = (props: Props) => { >
@@ -329,10 +343,10 @@ const Team = (props: { css={{ flex: '1 1 50%', wordBreak: 'break-word', - borderLeftStyle: 'solid', '&:last-of-type': { paddingLeft: space[2], borderLeftWidth: 1, + borderLeftStyle: 'solid', }, [from.leftCol]: { paddingLeft: space[2], diff --git a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx index 6b74a0e7b6c..932576deb04 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx @@ -118,8 +118,6 @@ const Tab = (props: { borderLeftWidth: 1, }, [from.leftCol]: { - paddingLeft: space[2], - borderLeftWidth: 1, flex: '0 0 auto', }, }} From 14bedae4d3b3c0e4bb20fde248ab90008999b1d2 Mon Sep 17 00:00:00 2001 From: Frederick O'Brien Date: Thu, 11 Jun 2026 13:42:59 +0100 Subject: [PATCH 073/293] Keep separate vertical rules for teams and tabs --- .../FootballMatchHeader/FootballMatchHeader.tsx | 15 ++++----------- .../src/components/FootballMatchHeader/Tabs.tsx | 5 +++++ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx index c8b5e25bf47..a63a18de38f 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx @@ -120,16 +120,6 @@ export const FootballMatchHeader = (props: Props) => { '--football-match-header-fixture-result-border', ), ), - css` - ${from.leftCol} { - ${grid.centreRule( - 3, - palette( - '--football-match-header-fixture-result-border', - ), - )} - } - `, ), [from.tablet]: { borderColor: palette( @@ -343,15 +333,18 @@ const Team = (props: { css={{ flex: '1 1 50%', wordBreak: 'break-word', + borderLeftStyle: 'solid', '&:last-of-type': { paddingLeft: space[2], borderLeftWidth: 1, - borderLeftStyle: 'solid', }, [from.leftCol]: { paddingLeft: space[2], borderLeftWidth: 1, paddingTop: space[3], + '&:first-of-type': { + marginLeft: `-10px`, + }, }, }} style={{ diff --git a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx index 932576deb04..6f59bceb75c 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx @@ -118,7 +118,12 @@ const Tab = (props: { borderLeftWidth: 1, }, [from.leftCol]: { + paddingLeft: space[2], + borderLeftWidth: 1, flex: '0 0 auto', + '&:first-of-type': { + marginLeft: `-10px`, + }, }, }} style={{ From a02d65ea68ef1e9dc6a89b709630cac070753b0c Mon Sep 17 00:00:00 2001 From: Frederick O'Brien Date: Thu, 11 Jun 2026 14:09:09 +0100 Subject: [PATCH 074/293] Apply to cricket header too --- .../CricketMatchHeader/CricketMatchHeader.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx index 0c00cc57c28..03fbef966ed 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx @@ -57,14 +57,18 @@ export const CricketMatchHeader = (props: Props) => { >
@@ -250,6 +254,9 @@ const Team = (props: { team: CricketTeam; match: CricketMatch }) => { paddingLeft: space[2], borderLeftWidth: 1, paddingTop: space[3], + '&:first-of-type': { + marginLeft: `-10px`, + }, }, }} style={{ From 19c5dd3b03a088540516999201ebc0cfb7b67b60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 18:34:35 +0000 Subject: [PATCH 075/293] Bump the cdk group across 1 directory with 2 updates Bumps the cdk group with 2 updates in the / directory: [@guardian/cdk](https://github.com/guardian/cdk) and [aws-cdk](https://github.com/aws/aws-cdk-cli/tree/HEAD/packages/aws-cdk). Updates `@guardian/cdk` from 63.3.1 to 63.6.1 - [Release notes](https://github.com/guardian/cdk/releases) - [Changelog](https://github.com/guardian/cdk/blob/main/CHANGELOG.md) - [Commits](https://github.com/guardian/cdk/compare/v63.3.1...v63.6.1) Updates `aws-cdk` from 2.1124.1 to 2.1126.0 - [Release notes](https://github.com/aws/aws-cdk-cli/releases) - [Commits](https://github.com/aws/aws-cdk-cli/commits/aws-cdk@v2.1126.0/packages/aws-cdk) --- updated-dependencies: - dependency-name: "@guardian/cdk" dependency-version: 63.5.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cdk - dependency-name: aws-cdk dependency-version: 2.1126.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: cdk ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 30 +++++++++++++++--------------- pnpm-workspace.yaml | 4 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46a5cfa174b..a01e24a7b6e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ catalogs: specifier: 3.995.0 version: 3.995.0 '@guardian/cdk': - specifier: 63.3.1 - version: 63.3.1 + specifier: 63.6.1 + version: 63.6.1 '@guardian/eslint-config': specifier: 14.0.1 version: 14.0.1 @@ -37,8 +37,8 @@ catalogs: specifier: 24.12.4 version: 24.12.4 aws-cdk: - specifier: 2.1124.1 - version: 2.1124.1 + specifier: 2.1126.0 + version: 2.1126.0 aws-cdk-lib: specifier: 2.257.0 version: 2.257.0 @@ -121,7 +121,7 @@ importers: version: 3.995.0 '@guardian/cdk': specifier: 'catalog:' - version: 63.3.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1124.1)(constructs@10.6.0) + version: 63.6.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1126.0)(constructs@10.6.0) '@guardian/tsconfig': specifier: 'catalog:' version: 1.0.1 @@ -130,7 +130,7 @@ importers: version: 24.12.4 aws-cdk: specifier: 'catalog:' - version: 2.1124.1 + version: 2.1126.0 aws-cdk-lib: specifier: 'catalog:' version: 2.257.0(constructs@10.6.0) @@ -325,7 +325,7 @@ importers: version: 6.1.0(browserslist@4.24.4)(tslib@2.6.2) '@guardian/cdk': specifier: 'catalog:' - version: 63.3.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1124.1)(constructs@10.6.0) + version: 63.6.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1126.0)(constructs@10.6.0) '@guardian/commercial-core': specifier: 34.0.0 version: 34.0.0(@guardian/consent-manager@1.0.0(@guardian/ophan-tracker-js@4.0.1)(tslib@2.6.2)(typescript@5.9.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.1)(tslib@2.6.2)(typescript@5.9.3)) @@ -508,7 +508,7 @@ importers: version: 2.1.1(ajv@8.18.0) aws-cdk: specifier: 'catalog:' - version: 2.1124.1 + version: 2.1126.0 aws-cdk-lib: specifier: 'catalog:' version: 2.257.0(constructs@10.6.0) @@ -2471,8 +2471,8 @@ packages: browserslist: ^4.22.2 tslib: ^2.6.2 - '@guardian/cdk@63.3.1': - resolution: {integrity: sha512-PdHQyhTuE9pIIIGfyQeGhwBUCI0TfpoFLCrYqdIniNA+cZWRivm+o6A8D4dxy+n9L5axFAv8YFNyUeH0BmbRGQ==} + '@guardian/cdk@63.6.1': + resolution: {integrity: sha512-C9uiYwGnPxIOSOw3Gn3DTuoK9u85W29aggFgAE/oG9wt3TP7UGOyydhjq+lEmuYqgwFE0zgh4uWbldwG3IfVyQ==} hasBin: true peerDependencies: aws-cdk: ^2.1110.0 @@ -4652,8 +4652,8 @@ packages: - yaml - mime-types - aws-cdk@2.1124.1: - resolution: {integrity: sha512-sRYdPMdkX+02EHaT946AFV0w0CMfbHKWpLZPv525xTCkaVu1eYu6DzHFuTdimxdSN0uGQ2D4LHrD1sr94tRhow==} + aws-cdk@2.1126.0: + resolution: {integrity: sha512-uNoocb3vCPiAT3j9+SwL6pn/VVggHWBsgC2XpxyhNvYQYt6cE9BM/149GWwtdcwnLrPjnwW1+CV/5nSSh5dV+w==} engines: {node: '>= 18.0.0'} hasBin: true @@ -11691,12 +11691,12 @@ snapshots: browserslist: 4.24.4 tslib: 2.6.2 - '@guardian/cdk@63.3.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1124.1)(constructs@10.6.0)': + '@guardian/cdk@63.6.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1126.0)(constructs@10.6.0)': dependencies: '@aws-sdk/client-ec2': 3.1053.0 '@aws-sdk/client-ssm': 3.1053.0 '@aws-sdk/credential-providers': 3.1053.0 - aws-cdk: 2.1124.1 + aws-cdk: 2.1126.0 aws-cdk-lib: 2.257.0(constructs@10.6.0) chalk: 4.1.2 codemaker: 1.132.0 @@ -14176,7 +14176,7 @@ snapshots: '@aws-cdk/cloud-assembly-schema': 53.27.0 constructs: 10.6.0 - aws-cdk@2.1124.1: {} + aws-cdk@2.1126.0: {} axe-core@4.11.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 447f006015d..1b71a1cd6c0 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,7 +11,7 @@ blockExoticSubdeps: true catalog: '@aws-sdk/client-s3': 3.995.0 '@aws-sdk/client-ssm': 3.995.0 - '@guardian/cdk': 63.3.1 + '@guardian/cdk': 63.6.1 '@guardian/eslint-config': 14.0.1 '@guardian/tsconfig': 1.0.1 '@rollup/plugin-commonjs': 29.0.0 @@ -19,7 +19,7 @@ catalog: '@rollup/plugin-node-resolve': 16.0.3 '@types/aws-lambda': 8.10.158 '@types/node': 24.12.4 - aws-cdk: 2.1124.1 + aws-cdk: 2.1126.0 aws-cdk-lib: 2.257.0 constructs: 10.6.0 esbuild: 0.27.0 From 82d90f0b2a234ff4c73d91c658de332eb45b5193 Mon Sep 17 00:00:00 2001 From: akash1810 Date: Thu, 11 Jun 2026 16:30:16 +0100 Subject: [PATCH 076/293] chore(cdk): Update snapshot --- .../abTestingConfig.test.ts.snap | 4 +-- .../deploymentLambda.test.ts.snap | 12 ++++----- .../notificationLambda.test.ts.snap | 26 +++++++++---------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/ab-testing/cdk/lib/__snapshots__/abTestingConfig.test.ts.snap b/ab-testing/cdk/lib/__snapshots__/abTestingConfig.test.ts.snap index 872631bab4b..7493ca94b8e 100644 --- a/ab-testing/cdk/lib/__snapshots__/abTestingConfig.test.ts.snap +++ b/ab-testing/cdk/lib/__snapshots__/abTestingConfig.test.ts.snap @@ -2,7 +2,7 @@ exports[`The ID5 Baton Lambda stack > matches the CODE snapshot 1`] = ` { "Metadata": { "gu:cdk:constructs": [], - "gu:cdk:version": "63.3.1" + "gu:cdk:version": "63.6.1" }, "Parameters": { "BuildId": { @@ -46,7 +46,7 @@ exports[`The ID5 Baton Lambda stack > matches the PROD snapshot 1`] = ` { "Metadata": { "gu:cdk:constructs": [], - "gu:cdk:version": "63.3.1" + "gu:cdk:version": "63.6.1" }, "Parameters": { "BuildId": { diff --git a/ab-testing/cdk/lib/__snapshots__/deploymentLambda.test.ts.snap b/ab-testing/cdk/lib/__snapshots__/deploymentLambda.test.ts.snap index 4e5a873bb48..c4df0efa4a6 100644 --- a/ab-testing/cdk/lib/__snapshots__/deploymentLambda.test.ts.snap +++ b/ab-testing/cdk/lib/__snapshots__/deploymentLambda.test.ts.snap @@ -5,7 +5,7 @@ exports[`The AB testing deployment lambda stack > matches the CODE snapshot 1`] "GuDistributionBucketParameter", "GuLambdaFunction" ], - "gu:cdk:version": "63.3.1" + "gu:cdk:version": "63.6.1" }, "Parameters": { "SsmParameterValueaccountservicesdotcomstorebucketC96584B6F00A464EAD1953AFF4B05118Parameter": { @@ -55,7 +55,7 @@ exports[`The AB testing deployment lambda stack > matches the CODE snapshot 1`] }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -294,7 +294,7 @@ exports[`The AB testing deployment lambda stack > matches the CODE snapshot 1`] }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -327,7 +327,7 @@ exports[`The AB testing deployment lambda stack > matches the PROD snapshot 1`] "GuDistributionBucketParameter", "GuLambdaFunction" ], - "gu:cdk:version": "63.3.1" + "gu:cdk:version": "63.6.1" }, "Parameters": { "SsmParameterValueaccountservicesdotcomstorebucketC96584B6F00A464EAD1953AFF4B05118Parameter": { @@ -377,7 +377,7 @@ exports[`The AB testing deployment lambda stack > matches the PROD snapshot 1`] }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -616,7 +616,7 @@ exports[`The AB testing deployment lambda stack > matches the PROD snapshot 1`] }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", diff --git a/ab-testing/cdk/lib/__snapshots__/notificationLambda.test.ts.snap b/ab-testing/cdk/lib/__snapshots__/notificationLambda.test.ts.snap index c4a6f4d5c3b..30bcc77344a 100644 --- a/ab-testing/cdk/lib/__snapshots__/notificationLambda.test.ts.snap +++ b/ab-testing/cdk/lib/__snapshots__/notificationLambda.test.ts.snap @@ -10,7 +10,7 @@ exports[`The AB testing notification lambda stack > matches the CODE snapshot 1` "GuScheduledLambda", "GuLambdaErrorPercentageAlarm" ], - "gu:cdk:version": "63.3.1" + "gu:cdk:version": "63.6.1" }, "Resources": { "EmailIdentityAbtestingnotificationlambdaE053C648": { @@ -24,7 +24,7 @@ exports[`The AB testing notification lambda stack > matches the CODE snapshot 1` }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -113,7 +113,7 @@ exports[`The AB testing notification lambda stack > matches the CODE snapshot 1` "Tags": [ { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -166,7 +166,7 @@ exports[`The AB testing notification lambda stack > matches the CODE snapshot 1` }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -340,7 +340,7 @@ exports[`The AB testing notification lambda stack > matches the CODE snapshot 1` }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -452,7 +452,7 @@ exports[`The AB testing notification lambda stack > matches the CODE snapshot 1` "Tags": [ { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -494,7 +494,7 @@ exports[`The AB testing notification lambda stack > matches the PROD snapshot 1` "GuScheduledLambda", "GuLambdaErrorPercentageAlarm" ], - "gu:cdk:version": "63.3.1" + "gu:cdk:version": "63.6.1" }, "Resources": { "EmailIdentityAbtestingnotificationlambdaE053C648": { @@ -508,7 +508,7 @@ exports[`The AB testing notification lambda stack > matches the PROD snapshot 1` }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -597,7 +597,7 @@ exports[`The AB testing notification lambda stack > matches the PROD snapshot 1` "Tags": [ { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -660,7 +660,7 @@ exports[`The AB testing notification lambda stack > matches the PROD snapshot 1` }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -834,7 +834,7 @@ exports[`The AB testing notification lambda stack > matches the PROD snapshot 1` }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -869,7 +869,7 @@ exports[`The AB testing notification lambda stack > matches the PROD snapshot 1` }, { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", @@ -1006,7 +1006,7 @@ exports[`The AB testing notification lambda stack > matches the PROD snapshot 1` "Tags": [ { "Key": "gu:cdk:version", - "Value": "63.3.1" + "Value": "63.6.1" }, { "Key": "gu:repo", From b481082db6987d98530f184982369fd5a389c4ff Mon Sep 17 00:00:00 2001 From: Andrew Howe-Ely <114918544+andrewHEguardian@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:45:49 +0100 Subject: [PATCH 077/293] Add Affiliate product disclaimer story (#16129) * feat: add stories for affiliate articles * add missing elementId to LinkBlockElement * try shorter product articles... * try one without embedded video... * even shorter showcase --- .../fe-articles/AffiliateProductShowcase.ts | 5313 +++++++++++++++++ .../fe-articles/AffiliateProductStandard.ts | 4124 +++++++++++++ .../fixtures/manual/productBlockElement.ts | 2 + .../scripts/test-data/gen-fixtures.js | 8 + .../src/components/ProductElement.stories.tsx | 2 + .../src/frontend/schemas/feArticle.json | 4 + .../src/layouts/DecideLayout.stories.tsx | 16 + dotcom-rendering/src/model/block-schema.json | 4 + dotcom-rendering/src/types/content.ts | 1 + 9 files changed, 9474 insertions(+) create mode 100644 dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductShowcase.ts create mode 100644 dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductStandard.ts diff --git a/dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductShowcase.ts b/dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductShowcase.ts new file mode 100644 index 00000000000..d71ce080fa1 --- /dev/null +++ b/dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductShowcase.ts @@ -0,0 +1,5313 @@ +/** + * DO NOT EDIT THIS FILE! + * + * This file was automatically generated using the gen-fixtures.js script. Any edits + * you make here will be lost. + * + * If the data in these fixtures is not what you expect then + * + * 1. Refresh the data using 'make gen-fixtures' or + * 2. if the latest live data is not what you need, then consider editing + * gen-fixtures.js directly. + */ + +import type { FEArticle } from '../../../src/frontend/feArticle'; + +export const AffiliateProductShowcase: FEArticle = { + version: 3, + headline: + 'From skin-brightening serum to a bargain coffee machine: 10 things you loved most in April', + standfirst: + '

Whether it’s a new season scent or a springy running shoe, your April favourites show you’re ready for a fresh start

\n

Don’t get the Filter delivered to your inbox? Sign up here

', + webTitle: + 'From skin-brightening serum to a bargain coffee machine: 10 things you loved most in April', + affiliateLinksDisclaimer: 'true', + mainMediaElements: [ + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'showcase', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '5:4', + height: '112', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/140.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '5:4', + height: '400', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/500.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '5:4', + height: '800', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/1000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '5:4', + height: '1600', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/2000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '5:4', + height: '4000', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/5000.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '5:4', + isMaster: 'true', + height: '4000', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg', + }, + ], + }, + elementId: 'af50bfd3-88e6-46e3-a583-c29e09a24602', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=16d1592a38fb379949130402a526211f', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=e17ad80f0b8be77a1d9cf45812f208c6', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=700&quality=85&auto=format&fit=max&s=d5bc9f9598a1b6670ac8cb91a6d0eee6', + width: 700, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=ad30e808e359bcf4ea25e438785f60b6', + width: 1400, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=16d1592a38fb379949130402a526211f', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=e17ad80f0b8be77a1d9cf45812f208c6', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=645&quality=85&auto=format&fit=max&s=e89deea3764c76a5b8659386a99b8b26', + width: 645, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=645&quality=45&auto=format&fit=max&dpr=2&s=a17d5ce05c95c00b044b85c016972291', + width: 1290, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=465&quality=85&auto=format&fit=max&s=598e5c25f35f66c33562016fccbb1cd8', + width: 465, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=465&quality=45&auto=format&fit=max&dpr=2&s=fac1cf7593bb4cd33036d2a73463df7f', + width: 930, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [], + }, + { + weighting: 'supporting', + srcSet: [], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1020&quality=85&auto=format&fit=max&s=9a72d6da2264f309caa001bf5e0799a5', + width: 1020, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1020&quality=45&auto=format&fit=max&dpr=2&s=02461170590cfd04d507f2d282fdc3f2', + width: 2040, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=940&quality=85&auto=format&fit=max&s=e0f0262fe6d5c5dcea88bd85937a1beb', + width: 940, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=940&quality=45&auto=format&fit=max&dpr=2&s=78eb4106ee5ac7f63efe4b42438d8268', + width: 1880, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=700&quality=85&auto=format&fit=max&s=d5bc9f9598a1b6670ac8cb91a6d0eee6', + width: 700, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=ad30e808e359bcf4ea25e438785f60b6', + width: 1400, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=700&quality=85&auto=format&fit=max&s=d5bc9f9598a1b6670ac8cb91a6d0eee6', + width: 700, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=ad30e808e359bcf4ea25e438785f60b6', + width: 1400, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=660&quality=85&auto=format&fit=max&s=d1fb4eaf11b89ae2b76e49c31cabc17e', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=ae524303bf1a2fb4e89bc96aec4aad36', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=645&quality=85&auto=format&fit=max&s=e89deea3764c76a5b8659386a99b8b26', + width: 645, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=645&quality=45&auto=format&fit=max&dpr=2&s=a17d5ce05c95c00b044b85c016972291', + width: 1290, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=465&quality=85&auto=format&fit=max&s=598e5c25f35f66c33562016fccbb1cd8', + width: 465, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=465&quality=45&auto=format&fit=max&dpr=2&s=fac1cf7593bb4cd33036d2a73463df7f', + width: 930, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1900&quality=85&auto=format&fit=max&s=716d37de2f1bd3eb13cdaea43c8d18da', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=256d986779295aea9b8efc70bb063ce3', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1300&quality=85&auto=format&fit=max&s=792e34b42c474949957211d4e3d56ae4', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=8f061d1f1ce72a80b99450e7a54fca0b', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1140&quality=85&auto=format&fit=max&s=7b54b007ebcb1d141a3f1fb824bd612e', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=6a38c6cffb31117f6981047b526be1d7', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=980&quality=85&auto=format&fit=max&s=5916e97d6bafeeeccf7728bab94f5bfa', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=5c5fe0449e0296b16c5f86383d3f4cac', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=740&quality=85&auto=format&fit=max&s=2ee4cdd22f43014c3eea3ea12d08f5f3', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=3b54a0ad6314a15601efc7b586732b30', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=660&quality=85&auto=format&fit=max&s=d1fb4eaf11b89ae2b76e49c31cabc17e', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=ae524303bf1a2fb4e89bc96aec4aad36', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=480&quality=85&auto=format&fit=max&s=242514eea1c4ef4a5209f520f909f52a', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/1a10a44dd770d568e68ad39ba99292cec02dc8da/0_0_5000_4000/master/5000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=3d66359e9294590b2ad97d61ae5fe205', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Flat lay of running shoe, suitcase, and vitamin serum for May newsletter', + credit: 'Composite: PR Image', + }, + }, + ], + main: '
Flat lay of running shoe, suitcase, and vitamin serum for May newsletter
', + keyEvents: [], + blocks: [ + { + id: '667d2c5e8f08db81fc3259c7', + elements: [ + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

It’s easy to feel hopeful in spring, with blossom all around and sunny days bringing the promise of summer ahead. It feels like a fresh start, and it’s clear from your favourite things in April that you’re looking for rejuvenation.

', + elementId: 'a7aa303b-6665-48a9-9725-18a148f7e745', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Maybe that’s a new scent, or a cabin bag for a holiday. Perhaps it’s a health reset, with a pair of running shoes to kickstart better habits, or a celebrity-endorsed supplement. You’ve also loved sub-£20 skincare basics and high-street looks inspired by Matthieu Blazy’s Chanel. Here are your favourite things from April.

', + elementId: 'c2ba3036-e163-4d95-84ea-6aa5876478e4', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '1778d18d-397c-4591-8627-0e37979728c1', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The bean-to-cup coffee machine

', + elementId: '330ef306-8e43-428f-877a-65cb7807f963', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/4000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/140.jpg', + }, + ], + }, + elementId: 'fa37f13d-b4e7-4245-a2bc-7044b7ecf576', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=6385c9bcbcd4c33aa8fe1f06a3cf7346', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=c4e9a66470d2513cfaf26c177bca2c9d', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=69929331489ee5c83d40fd786c68e9d8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a8fd8dd445232e7443cc9261251db6d3', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=5f83cb697d146aa901ea0c1b2fcbd7a7', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0a01d93388d7d3dc136f87b445cee85c', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=140&quality=85&auto=format&fit=max&s=13bb60e6f09202b6916373649607ab59', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=47bbffdcfe425055e728ec1ec20fafbd', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=120&quality=85&auto=format&fit=max&s=95b18e22fbda661aaab1edac7798c800', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=541a1a8d53a65da56716929a555af9bf', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=380&quality=85&auto=format&fit=max&s=83092386b4441085a0a454481f5c8c8b', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=fbd95793dd8a14d7fc4f728e2fd9ddfb', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=300&quality=85&auto=format&fit=max&s=ca20d4c65c483b1d8054efe91b43ba46', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=1011a758f21f27b2dd53b7e2c6354ac2', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=6385c9bcbcd4c33aa8fe1f06a3cf7346', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=c4e9a66470d2513cfaf26c177bca2c9d', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=69929331489ee5c83d40fd786c68e9d8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a8fd8dd445232e7443cc9261251db6d3', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=5f83cb697d146aa901ea0c1b2fcbd7a7', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0a01d93388d7d3dc136f87b445cee85c', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=860&quality=85&auto=format&fit=max&s=fe9c55099f92b011f3857191df8a6c2c', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=196bb96b7bea59fe91953405dceb56c0', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=780&quality=85&auto=format&fit=max&s=a2c3f5cb83e7187a61d5f23d43044b2d', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=15c709c4d2dca42568a9b4f40a61ef92', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=6385c9bcbcd4c33aa8fe1f06a3cf7346', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=c4e9a66470d2513cfaf26c177bca2c9d', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=69929331489ee5c83d40fd786c68e9d8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a8fd8dd445232e7443cc9261251db6d3', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=5f83cb697d146aa901ea0c1b2fcbd7a7', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0a01d93388d7d3dc136f87b445cee85c', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=6385c9bcbcd4c33aa8fe1f06a3cf7346', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=c4e9a66470d2513cfaf26c177bca2c9d', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=69929331489ee5c83d40fd786c68e9d8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a8fd8dd445232e7443cc9261251db6d3', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=5f83cb697d146aa901ea0c1b2fcbd7a7', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0a01d93388d7d3dc136f87b445cee85c', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=1900&quality=85&auto=format&fit=max&s=f3f9b3be1b93fa73a48c4bfcb4fe9c40', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=c9d4307c97cc2cfda3f73c041822c283', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=1300&quality=85&auto=format&fit=max&s=d77b1fc1a21e2858c7280a9e5f6de561', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=3eea1d7e174e30f607f751f9bc25d124', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=1140&quality=85&auto=format&fit=max&s=cc32078ad13e111b771fd88c762e4dc4', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=ac9ee630fca00b2f233a6b1d3e7b2573', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=980&quality=85&auto=format&fit=max&s=846545f58542c923b088910e10136de7', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=5d82cee2f4c7677533872be9d044b37f', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=740&quality=85&auto=format&fit=max&s=46eed800389808c86da9bd90230e4dac', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=cd277dcbac22d035a595820b0ca4ebaf', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=660&quality=85&auto=format&fit=max&s=240063c2440b6d532221ba0b1fe3983e', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=b1589b0cae2a2926a92ae2b6bbe1fd67', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=480&quality=85&auto=format&fit=max&s=b864fc6c6ba14867b2cbce24c37d2b30', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/ca8f61c09c1dfa962835c914ab21c5636f9d084a/500_0_4000_4000/master/4000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=e30a7e4a108dfe08606372125150c37a', + width: 960, + }, + ], + }, + ], + data: { + alt: 'De’Longhi Magnifica Start ECAM220.61 Automatic Bean to Cup Coffee Machine, Black', + credit: 'Photograph: De’Longhi', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

De’Longhi Magnifica Start

', + elementId: 'c25209c1-9ac7-4414-8362-0617781823fd', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.johnlewis.com%2Fdelonghi-magnifica-start-ecam220-61-automatic-bean-to-cup-coffee-machine-black%2Fp114206561&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£299 at John Lewis', + elementId: 'ab2037c1-6b72-4a9e-ac1d-eace2c215430', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Our coffee expert, Sasha Muller, once again tested the limits of his caffeine consumption by trialling 12 of the best bean-to-cup machines. The De’Longhi Magnifica Start was his favourite, and was also, by far, your favourite item this month – perhaps you agree that “if the best things in life are free, then the second-best things are cheap”.

', + elementId: '78f3ec68-6b86-426f-ad5a-a7f93f5d192f', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '00b74757-7248-4bbf-9e75-de7fc0fed322', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

A designer scent without the price tag

', + elementId: '14cc40d7-2eb5-4065-8288-5e2ef1e30026', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Essential Parfums discovery set, 10 x 2ml

', + elementId: '445f7de2-c05b-4b38-9fb8-9190ba773d2e', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + height: '4000', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/5000.jpg', + }, + { + index: 1, + fields: { + isMaster: 'true', + height: '4000', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg', + }, + { + index: 2, + fields: { + height: '1600', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/2000.jpg', + }, + { + index: 3, + fields: { + height: '800', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/1000.jpg', + }, + { + index: 4, + fields: { + height: '400', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/500.jpg', + }, + { + index: 5, + fields: { + height: '112', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/140.jpg', + }, + ], + }, + elementId: 'c9fe4405-f017-497b-ac22-685f07e0e06f', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=9a56a449002e9463083ed8abd99276e0', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=891c607833641bfb060ef8a4f766abc7', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=1f2d7187541fb902721ab83e6eea910f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=83657d7b0a51d525115bb7f7b7056a57', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=c8d34c9a407303843e8d7bb3a2647d19', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=1e8eb5d4837c33f7a30c523dba17c8ea', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=140&quality=85&auto=format&fit=max&s=d98aa073235cc15901765d4633947386', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=77bcdc8d29e2bce6277a7f1af383ce44', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=120&quality=85&auto=format&fit=max&s=81ae35317f79dcbce64a4e475d7a7f8a', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=239d4722e2c16a85a0ee2e35d087a5db', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=380&quality=85&auto=format&fit=max&s=ea8b120ac27ab8643d69845dd54a9e0b', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=efcca7cfa42ba475f8080c728f343c14', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=300&quality=85&auto=format&fit=max&s=2e410401d6714920a14b1afc6ffc925a', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=a6bda264118175b776c8e7418a6a0f44', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=9a56a449002e9463083ed8abd99276e0', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=891c607833641bfb060ef8a4f766abc7', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=1f2d7187541fb902721ab83e6eea910f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=83657d7b0a51d525115bb7f7b7056a57', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=c8d34c9a407303843e8d7bb3a2647d19', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=1e8eb5d4837c33f7a30c523dba17c8ea', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=860&quality=85&auto=format&fit=max&s=6874c95e7414db57960be62123c986cf', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=b0b4ba7a7ac386e4186d71d5677542d5', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=780&quality=85&auto=format&fit=max&s=958e408273ab1793ba005d30c662b540', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=804005765cccd33352ff9338b67cc91e', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=9a56a449002e9463083ed8abd99276e0', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=891c607833641bfb060ef8a4f766abc7', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=1f2d7187541fb902721ab83e6eea910f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=83657d7b0a51d525115bb7f7b7056a57', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=c8d34c9a407303843e8d7bb3a2647d19', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=1e8eb5d4837c33f7a30c523dba17c8ea', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=9a56a449002e9463083ed8abd99276e0', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=891c607833641bfb060ef8a4f766abc7', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=1f2d7187541fb902721ab83e6eea910f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=83657d7b0a51d525115bb7f7b7056a57', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=c8d34c9a407303843e8d7bb3a2647d19', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=1e8eb5d4837c33f7a30c523dba17c8ea', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=1900&quality=85&auto=format&fit=max&s=acf2d69ed2a867b7b49e3da8a2c11b74', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=18e7281bff4ea48523938e6e316715bf', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=1300&quality=85&auto=format&fit=max&s=99a394cf3521a92785f672ac11ae665a', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=7f8f939b62ca24b243414a7094e184aa', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=1140&quality=85&auto=format&fit=max&s=bf2db1d76640b6ab45fa23a5746adab5', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=7899753a33cb909a9dcd2a6fd85ea534', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=980&quality=85&auto=format&fit=max&s=4900fd2350054eb5f0b0976bb85ff32e', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=4549b86573902ecbf4b9177f48fa7c65', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=740&quality=85&auto=format&fit=max&s=b99dc4d07823bbebd7364a2250c762f1', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=c6eae290683522a1cc70419e56c59251', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=660&quality=85&auto=format&fit=max&s=3b535d498cf552169026f723e63cbd1c', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=1aa223b9319da388e4fb0d0e2818d2b4', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=480&quality=85&auto=format&fit=max&s=06270bb38c9b1c94c597c7bc6efc4225', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/b5abbbe1f53ac7a9d48617ac26ff4065ab7d43e5/0_0_5000_4000/master/5000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=4cf73b5341255a7a12053a815bfeed3c', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Essential Parfums Discovery Set', + credit: 'Photograph: PR Image', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2F50-ml.co.uk%2Fessential-parfums-discovery-set&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£24.08 at 50ml UK', + elementId: '21dc15b9-5561-4018-a8bf-a5c6dfa87d7a', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

In a recent column, Sali Hughes was excited to see John Lewis selling Essential Parfums, a perfume brand that is “doing things honestly, authentically and with great care”. She recommended an 11-piece discovery set of 2ml samples if “100ml seems like a gamble”, which is now sold out at John Lewis, but this set of 10 is still available. They’re perfect for weekends away, too.

', + elementId: 'f4007e8b-0b87-407a-8fbe-2716e03e3021', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '56c6ee25-9464-4de2-bea3-929c647d4e00', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The best budget cabin bag

', + elementId: 'abc866c7-7563-45d2-994e-5b43e581d2ee', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/4000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/140.jpg', + }, + ], + }, + elementId: '878e06d9-eae0-4f6e-a6fd-c79fa7886603', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=01d27cb30dec87f239ff34faddfa968f', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=58b26f41687d829d2d9cda357dbaff28', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=7c3f2d2523fdb3dd88de0a0fc4c943e3', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=2a78ebd8283b79f3e930b1b1f419ae8e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=73c046d78f34e5270f89aa3d2d833b7f', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=231d749bcf21eeea166f8eb157ec3d70', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=140&quality=85&auto=format&fit=max&s=3c7173819ef9309f782c7ba514c79ec2', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=3180c6ca9e255be18393940973d029eb', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=120&quality=85&auto=format&fit=max&s=9e2a98700bce7d85de1bd86bdcdf3c29', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=bd6f1601ced01ecaa5b619ef4652be0b', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=380&quality=85&auto=format&fit=max&s=0a30af99a2f6e3e7213588906db601a5', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=661e88ce5fcbcb5de6d0dca3ea3bc7e5', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=300&quality=85&auto=format&fit=max&s=aa0dd99be0731e83185d11afc665a91d', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=dc21cfd845bd296a2dd7a62789d79b6b', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=01d27cb30dec87f239ff34faddfa968f', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=58b26f41687d829d2d9cda357dbaff28', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=7c3f2d2523fdb3dd88de0a0fc4c943e3', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=2a78ebd8283b79f3e930b1b1f419ae8e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=73c046d78f34e5270f89aa3d2d833b7f', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=231d749bcf21eeea166f8eb157ec3d70', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=860&quality=85&auto=format&fit=max&s=84c4d3effa2015873d540e38215ed3bb', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=6e5f87d8e7d551dbd7b9db7862376a75', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=780&quality=85&auto=format&fit=max&s=133e27c06c1f6eb2428a52e0fe563311', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=6fb1de2d8f5465f91820bb30feae6849', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=01d27cb30dec87f239ff34faddfa968f', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=58b26f41687d829d2d9cda357dbaff28', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=7c3f2d2523fdb3dd88de0a0fc4c943e3', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=2a78ebd8283b79f3e930b1b1f419ae8e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=73c046d78f34e5270f89aa3d2d833b7f', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=231d749bcf21eeea166f8eb157ec3d70', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=01d27cb30dec87f239ff34faddfa968f', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=58b26f41687d829d2d9cda357dbaff28', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=7c3f2d2523fdb3dd88de0a0fc4c943e3', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=2a78ebd8283b79f3e930b1b1f419ae8e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=73c046d78f34e5270f89aa3d2d833b7f', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=231d749bcf21eeea166f8eb157ec3d70', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=1900&quality=85&auto=format&fit=max&s=a161a8c96fe806a88fac0fb1c0be6d27', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=3bdaf02037f47f90cfc14408a0dfab5b', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=1300&quality=85&auto=format&fit=max&s=d259fbafb1e642c3dce078208e6b2e1e', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=261ae678f0c5a114a5f59c805026dc01', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=1140&quality=85&auto=format&fit=max&s=cefadcf164877ec57cdedfc2f638ae3f', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=ad1f2d97e872fd2c6ae24b3960e699f7', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=980&quality=85&auto=format&fit=max&s=cd31483bd8688fd74e5ba030039c8ce6', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=533a66379635c4b3239a7d03b172ac0a', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=740&quality=85&auto=format&fit=max&s=65c1c3f737ec159f86b949ad7a537181', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=30cd170d2cfca61ec6eee93f433988f7', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=660&quality=85&auto=format&fit=max&s=c5da3d0f91b365e4a0bbac41ef6f7354', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=7bcc58601b7080f6f2d98e176a7a9abb', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=480&quality=85&auto=format&fit=max&s=c7c8b53de8ddddf44996436d6f7ec7c5', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/6ec0f8918f5c97bdaf15da922dc4d49995d06c32/500_0_4000_4000/master/4000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=ad04b35e28d1c6d0b06f4c03fdaeae4c', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Tripp Holiday 8 Turquoise Large Suitcase', + credit: 'Photograph: Tripp', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Tripp Holiday 8 suitcase

', + elementId: '1716c709-257e-4237-a587-66d7f0c49601', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.amazon.co.uk%2FTRIPP-Holiday-Turquoise-Suitcase-55x40x20cm%2Fdp%2FB0GGSJB9X1%2F&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£49.50 at Amazon', + elementId: '34f8a134-dbc9-4965-8fc7-55f1b587417f', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Pete Wise proved his dedication to thorough testing by manoeuvring the best carry-on luggage around a muddy assault course in Leeds – all while dressed in a holiday-appropriate Hawaiian shirt and shorts. Our bargain-loving readers loved the Tripp Holiday 8, his top budget pick, which “proved a nimble option over the assault course: lightweight, balanced and capable of surviving a tumultuous journey”.

', + elementId: 'a517cfaa-1183-43d4-9b02-4d006aa7733a', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '40163c99-6866-4822-beb6-b4debc27caae', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The Chanel-style straight-leg jeans

', + elementId: 'ded071ae-709e-4c2b-bcb0-8d5ea4150b90', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/4000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/140.jpg', + }, + ], + }, + elementId: '42baafe9-b0f3-4375-8c76-8fb9eabb1538', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=93301c7385f1dec22e282ee13536e2bf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=e7a663e9b32cf1f22735386b6fc53f91', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=af54311109feea738fb039484a7ca327', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=e975457e5999be1b19d681fce25fedca', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e0309f9821173fd204f3c31b463eb79d', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=d7bd61404365173fed6e6c528bcdff95', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=140&quality=85&auto=format&fit=max&s=9a625ea961c61d459f7588a5edbeaa5d', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=01566adb8a6deec15657dfda132d1cf7', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=120&quality=85&auto=format&fit=max&s=84d71fb006668a40328c5f868300fb56', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=d436e7d3e2ce25e342d3c1970d9f2a11', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=380&quality=85&auto=format&fit=max&s=28ec700692334697a933b4ef0af9220a', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=2db69abd199374b5f7cf9217a6583ab7', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=300&quality=85&auto=format&fit=max&s=8ab0d4b0cc58dc72cb5d9864c6f03448', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=3afd4d19bc81cfe30858abfaea321e9a', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=93301c7385f1dec22e282ee13536e2bf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=e7a663e9b32cf1f22735386b6fc53f91', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=af54311109feea738fb039484a7ca327', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=e975457e5999be1b19d681fce25fedca', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e0309f9821173fd204f3c31b463eb79d', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=d7bd61404365173fed6e6c528bcdff95', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=860&quality=85&auto=format&fit=max&s=d1e100803027508fda26da1751bf861b', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=506530e3382fb80a8a55520a762e3c53', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=780&quality=85&auto=format&fit=max&s=ae5b454c76c6b1fd58ede4fbfe39b8fb', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=c57957758f0a20073168e32a6e24a35d', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=93301c7385f1dec22e282ee13536e2bf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=e7a663e9b32cf1f22735386b6fc53f91', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=af54311109feea738fb039484a7ca327', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=e975457e5999be1b19d681fce25fedca', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e0309f9821173fd204f3c31b463eb79d', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=d7bd61404365173fed6e6c528bcdff95', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=93301c7385f1dec22e282ee13536e2bf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=e7a663e9b32cf1f22735386b6fc53f91', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=af54311109feea738fb039484a7ca327', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=e975457e5999be1b19d681fce25fedca', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e0309f9821173fd204f3c31b463eb79d', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=d7bd61404365173fed6e6c528bcdff95', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=1900&quality=85&auto=format&fit=max&s=07c0f313941211b4039babad781c20bc', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=de8a049ff6bd55f509c3fad8d0e4798a', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=1300&quality=85&auto=format&fit=max&s=f2bac84e0a9f1e87a411f1ac5376bc56', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=c645f3496f837b7ea1a460e463f1b649', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=1140&quality=85&auto=format&fit=max&s=aab31120404297e252dc0661bde8477c', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=d614c9ea22525b2cb5b52035d76b929d', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=980&quality=85&auto=format&fit=max&s=66bb55a6c2e39b1ac57670cc96c2302b', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=f041fc766b0e28d1457e60f08063aa25', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=740&quality=85&auto=format&fit=max&s=de85d821658daf86ea17d4538e286e46', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=10a0f012303762c774e75896db57075a', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=660&quality=85&auto=format&fit=max&s=e79a9c3aacf597c101dde4317a79f976', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=87bd1a34c326d7fc77979fd3b2be0331', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=480&quality=85&auto=format&fit=max&s=6c4e7f01f00a96b93660d6462e92f3c5', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/20caeb230ef4d434b307ce78c41d96466f1c9247/500_0_4000_4000/master/4000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=144ecc8a6ede99315e5520313242605d', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Uniqlo Baggy Jeans', + credit: 'Photograph: Uniqlo', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Women’s baggy jeans

', + elementId: '78955c6c-8090-4f4e-8ecc-db20d1a8c030', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.uniqlo.com%2Fuk%2Fen%2Fproducts%2FE483999-000%2F00%3FcolorDisplayCode%3D65%26sizeDisplayCode%3D024%26pldDisplayCode%3D033&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£34.90 at Uniqlo', + elementId: 'e10b0a6c-b5ed-4965-b02b-09dec65e59ef', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Matthieu Blazy’s first video campaign for Chanel features Margot Robbie in a bouclé jacket and straight-leg jeans – an “outfit formula that is proving to be consumer catnip”, wrote Chloe Mac Donnell in a recent piece. These JW Anderson for Uniqlo jeans “are a close match” (as is Mango’s tweed jacket), and proved to be catnip for our readers too.

', + elementId: 'd13ee651-7951-4257-ae28-2576a7739e62', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '0dba66cd-10d7-4a6b-93bd-9169ee5fc9f2', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The bargain vitamin C serum

', + elementId: '1685a1b1-6aff-45cf-8286-9cc51c8faed6', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/png', + url: 'https://media.guim.co.uk/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/2000.png', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/png', + url: 'https://media.guim.co.uk/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/2000.png', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/png', + url: 'https://media.guim.co.uk/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/png', + url: 'https://media.guim.co.uk/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/1000.png', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/png', + url: 'https://media.guim.co.uk/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/500.png', + }, + { + index: 5, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/png', + url: 'https://media.guim.co.uk/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/140.png', + }, + ], + }, + elementId: 'da180c0e-eecd-471d-8db0-176355a35707', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=85&auto=format&fit=max&s=9ecdb307638b12d7892b0ce2f1432244', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=45&auto=format&fit=max&dpr=2&s=4be12b2755de45bc813b1f0dc0785354', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=85&auto=format&fit=max&s=8d66584a59adcffc8fce56ded75c725b', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=45&auto=format&fit=max&dpr=2&s=1449c6c288b6fa0a8a8982ee313a35ac', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=85&auto=format&fit=max&s=80b5df5bd232e865efb84f58ac340e7b', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=45&auto=format&fit=max&dpr=2&s=e1f5fcb6d18269ec6bb554a5f5048458', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=140&quality=85&auto=format&fit=max&s=6780900fa947da18f3611b96287ff5cf', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=140&quality=45&auto=format&fit=max&dpr=2&s=9e85222d921f825c92152aaceceb4174', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=120&quality=85&auto=format&fit=max&s=a72117b1791e821593f60f2f47bc1195', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=120&quality=45&auto=format&fit=max&dpr=2&s=03e179f238c6ea60eadc2185b498497b', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=380&quality=85&auto=format&fit=max&s=8ea7eaf15910e4940fec616619a37517', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=380&quality=45&auto=format&fit=max&dpr=2&s=e11ae2ab98bb6e9758d4419c7761a50f', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=300&quality=85&auto=format&fit=max&s=cac964e74b6babf37f1228323c155439', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=300&quality=45&auto=format&fit=max&dpr=2&s=bae29d284a5eab6158ccd75a02411404', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=85&auto=format&fit=max&s=9ecdb307638b12d7892b0ce2f1432244', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=45&auto=format&fit=max&dpr=2&s=4be12b2755de45bc813b1f0dc0785354', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=85&auto=format&fit=max&s=8d66584a59adcffc8fce56ded75c725b', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=45&auto=format&fit=max&dpr=2&s=1449c6c288b6fa0a8a8982ee313a35ac', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=85&auto=format&fit=max&s=80b5df5bd232e865efb84f58ac340e7b', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=45&auto=format&fit=max&dpr=2&s=e1f5fcb6d18269ec6bb554a5f5048458', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=860&quality=85&auto=format&fit=max&s=db8a36e49e6d9453b24f400c40a8ed0d', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=860&quality=45&auto=format&fit=max&dpr=2&s=a993d6947c2005652b992bdd16ce1072', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=780&quality=85&auto=format&fit=max&s=c5c84f807db8d728fd477cc3402750e1', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=780&quality=45&auto=format&fit=max&dpr=2&s=46acb313cd3a571c0907483a5e429a81', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=85&auto=format&fit=max&s=9ecdb307638b12d7892b0ce2f1432244', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=45&auto=format&fit=max&dpr=2&s=4be12b2755de45bc813b1f0dc0785354', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=85&auto=format&fit=max&s=8d66584a59adcffc8fce56ded75c725b', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=45&auto=format&fit=max&dpr=2&s=1449c6c288b6fa0a8a8982ee313a35ac', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=85&auto=format&fit=max&s=80b5df5bd232e865efb84f58ac340e7b', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=45&auto=format&fit=max&dpr=2&s=e1f5fcb6d18269ec6bb554a5f5048458', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=85&auto=format&fit=max&s=9ecdb307638b12d7892b0ce2f1432244', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=620&quality=45&auto=format&fit=max&dpr=2&s=4be12b2755de45bc813b1f0dc0785354', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=85&auto=format&fit=max&s=8d66584a59adcffc8fce56ded75c725b', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=605&quality=45&auto=format&fit=max&dpr=2&s=1449c6c288b6fa0a8a8982ee313a35ac', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=85&auto=format&fit=max&s=80b5df5bd232e865efb84f58ac340e7b', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=445&quality=45&auto=format&fit=max&dpr=2&s=e1f5fcb6d18269ec6bb554a5f5048458', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=1900&quality=85&auto=format&fit=max&s=9b6f80f25fd1c2442304e2ffcd16937f', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=1900&quality=45&auto=format&fit=max&dpr=2&s=6a325cbb109797f407c9824f658dc8eb', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=1300&quality=85&auto=format&fit=max&s=3d8dc3460a8ee98e7fada9334e45d61a', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=1300&quality=45&auto=format&fit=max&dpr=2&s=22804a0cd51703de1c6ba7f44a30b87e', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=1140&quality=85&auto=format&fit=max&s=09154c734317436134c2df49e6727a41', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=1140&quality=45&auto=format&fit=max&dpr=2&s=4236e488114862aefee839d97e412723', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=980&quality=85&auto=format&fit=max&s=97056c902ea0b39520affcd3f8e747ac', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=980&quality=45&auto=format&fit=max&dpr=2&s=57b2b6f91530c5fcfc55196f02077cce', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=740&quality=85&auto=format&fit=max&s=fc126758d571836199b20c88daf44ea5', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=740&quality=45&auto=format&fit=max&dpr=2&s=6250124ec8bb098929c3394f73e586b4', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=660&quality=85&auto=format&fit=max&s=a20bfb35b5080bfa9f3aa202e4625c41', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=660&quality=45&auto=format&fit=max&dpr=2&s=7ab74ea3a86491f6b262e2e25f989049', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=480&quality=85&auto=format&fit=max&s=85ad97faeb4c587040e499c1647002f3', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/e2fd8c2e6c61038f5d72878736c1b7dfe6ff4405/0_0_2000_2000/master/2000.png?width=480&quality=45&auto=format&fit=max&dpr=2&s=1e4265ee2009fb91db8192a02e5bab26', + width: 960, + }, + ], + }, + ], + data: { + alt: 'e.l.f. SKIN Vitamin C + E + ferulic Serum', + credit: 'Photograph: Elf', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Elf Skin Brighten + Glow vitamin C + E + ferulic serum, 30ml

', + elementId: 'aaeecce8-ce3b-406d-87ae-57ddf4e92ad7', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.amazon.co.uk%2Fgp%2Fproduct%2FB0F3JCDFVT&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£14.45 at Amazon', + elementId: '6c997ea6-8859-4451-af55-55537da7c377', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

On hearing that this sub-£20 vitamin C serum contains the “exact same percentages of vitamin C, E and ferulic acid as SkinCeuticals’ gold standard vitamin C product”, I rushed to buy it – as did many of you. It was Danielle Wilkins’ top budget pick after four months of testing 15 of the best vitamin C serums, finding it “extremely hydrating” and leaving her skin “feeling softer with continued use”.

', + elementId: '1eacbc20-7dcb-46eb-acef-ecdca25dab40', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '145b2640-2455-46b9-b2e4-fe566aef3f4f', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The idiot-proof recipe box

', + elementId: '63b567bd-ebd7-4d0a-9ca1-f6335d495efc', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '5:4', + height: '1677', + width: '2096', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/2096.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '5:4', + isMaster: 'true', + height: '1677', + width: '2096', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '5:4', + height: '1600', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '5:4', + height: '800', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '5:4', + height: '400', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '5:4', + height: '112', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/140.jpg', + }, + ], + }, + elementId: '86fdef5a-920e-492a-aea2-7385c89ffdfa', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=85&auto=format&fit=max&s=d88ac7108159e77bee1b5f70bb137653', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f9a005e77ae6e8e640949ff1c9f3e44e', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=85&auto=format&fit=max&s=d33cbd59516530347bd85e85a840fe2f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a4b7a6188a45bc71c05ab1dbe749ddc7', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=85&auto=format&fit=max&s=efcb989f30530a4bdea1c6a8dd553d08', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=30b0f7e3527f806ed33bfff1c417bb27', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=140&quality=85&auto=format&fit=max&s=7ab11ff58b7b422ef62cbb8aa14b2d5b', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=7364e87a94a1f6546ccf9460d4845a64', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=120&quality=85&auto=format&fit=max&s=99fe23e55d6e04cd6dc0c47d5f163bfd', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=a976dae209dbaff2197fdf7ddc422e95', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=380&quality=85&auto=format&fit=max&s=8f92384ec88fda0f7ecc62505c20bff4', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=193c67ff758c8550afbad8b9ab031f15', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=300&quality=85&auto=format&fit=max&s=3685d0cd96b7d1da3f842d3bdd032558', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=589c399567f3b70bd3a98169024bec69', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=85&auto=format&fit=max&s=d88ac7108159e77bee1b5f70bb137653', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f9a005e77ae6e8e640949ff1c9f3e44e', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=85&auto=format&fit=max&s=d33cbd59516530347bd85e85a840fe2f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a4b7a6188a45bc71c05ab1dbe749ddc7', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=85&auto=format&fit=max&s=efcb989f30530a4bdea1c6a8dd553d08', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=30b0f7e3527f806ed33bfff1c417bb27', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=860&quality=85&auto=format&fit=max&s=f528e9775712f152274589dc3325fc1f', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=f6ee0ea9295cea46e46ea0c9dab306a8', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=780&quality=85&auto=format&fit=max&s=a6c533be90f7745199787a26999dfcb7', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=cb6a77f6d1940d20036e878e949ee326', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=85&auto=format&fit=max&s=d88ac7108159e77bee1b5f70bb137653', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f9a005e77ae6e8e640949ff1c9f3e44e', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=85&auto=format&fit=max&s=d33cbd59516530347bd85e85a840fe2f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a4b7a6188a45bc71c05ab1dbe749ddc7', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=85&auto=format&fit=max&s=efcb989f30530a4bdea1c6a8dd553d08', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=30b0f7e3527f806ed33bfff1c417bb27', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=85&auto=format&fit=max&s=d88ac7108159e77bee1b5f70bb137653', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f9a005e77ae6e8e640949ff1c9f3e44e', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=85&auto=format&fit=max&s=d33cbd59516530347bd85e85a840fe2f', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=a4b7a6188a45bc71c05ab1dbe749ddc7', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=85&auto=format&fit=max&s=efcb989f30530a4bdea1c6a8dd553d08', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=30b0f7e3527f806ed33bfff1c417bb27', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=1900&quality=85&auto=format&fit=max&s=3b8ffdf11d1c123931ad9e9804ae3cf4', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=e0395bedd23d1f95e6f49d3e46f05049', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=1300&quality=85&auto=format&fit=max&s=678020557dbf23ac554b90cfca238d6a', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=fcd48b6766623f952d35096e8c1d5da2', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=1140&quality=85&auto=format&fit=max&s=a9593eb47858a66b219e110c206c6716', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=6e5b601eef600b21f58c7b5c98c1461e', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=980&quality=85&auto=format&fit=max&s=9f758fe007ef3b0b38c471f2cf030be1', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=0a33fe45a5fea823ee32ff99c80f222b', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=740&quality=85&auto=format&fit=max&s=6e68a5cbfa7667b0aae9b3a46be7f80f', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=2d32a6cd9f4e8095b064374d9353f961', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=660&quality=85&auto=format&fit=max&s=b780bcf007207c6b12a671f36d1e2631', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=163804a1767aafe9b33b1b1215fe70ce', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=480&quality=85&auto=format&fit=max&s=75ef7143125b317de90641cb477eac3a', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/52f0b63abc10e46f130f9ec6b28bd22e59824a6a/449_0_2096_1677/master/2096.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=2d13e867ee0e1007c1bda50924adf118', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Simply Cook Spice subscription service', + credit: 'Photograph: SimplyCook', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

SimplyCook, two-person meal

', + elementId: 'c82737dd-24d4-4061-b7ba-3a5fdb0bd122', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.simplycook.com%2F&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: 'From £2.50 at SimplyCook', + elementId: '3b796d3a-20fe-442f-8b71-e086a6f457d9', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

As with mattresses, Jane Hoskyn’s family played an important role in testing the best meal delivery kits, with a range of dietary requirements and cooking skills providing a well-rounded test panel. SimplyCook was by far the cheapest, as it doesn’t include any fresh ingredients and fits through the letterbox. “SimplyCook’s chef-prepared pots are what my dad, Don, calls ‘the interesting bit of cooking’,” wrote Jane, with “idiot-proof” recipes that are “easy to customise”. This simple approach was the one that appealed to you the most.

', + elementId: '745c92c3-60cf-45eb-bd43-528539146aa7', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: 'f97d521a-8fea-4fd2-9e4a-6f2703c37802', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The bargain leather bag

', + elementId: '3542d78b-defb-4e00-b0ff-2d710d679738', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '5:4', + height: '4000', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/5000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '5:4', + isMaster: 'true', + height: '4000', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '5:4', + height: '1600', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '5:4', + height: '800', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '5:4', + height: '400', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '5:4', + height: '112', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/140.jpg', + }, + ], + }, + elementId: '1e05c1c8-cb7f-45c6-a83a-f9e148bbee27', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=c43833d5667a6d16acca99b7c4873c96', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f44f8849f904da4a348b9d11d29b0928', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=411510b583e6bc28de56ce41023bfb9c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=34afe99ae3f57cff8e01ccdbffaf75c8', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=74ea57684b830429946348b395270645', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=8ff8afc5b9a24145fe069dc4351159ed', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=140&quality=85&auto=format&fit=max&s=5a933a670ae63e32065d3689fbe22e0c', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=e06f67eb06795e98234cdf47377e64b2', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=120&quality=85&auto=format&fit=max&s=fb99ab71fd2eefac5fba695e37a1d10a', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=1704c83794f3f904f5fff69b982a3613', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=380&quality=85&auto=format&fit=max&s=0a23b3f6ff4740d06978d7daff67bf8c', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=08b0b6c0631e0b8656d58a150202fea4', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=300&quality=85&auto=format&fit=max&s=42968db09068a09b98adf9d6574c76f2', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=8c094c10ad862877a220e3c4314762ce', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=c43833d5667a6d16acca99b7c4873c96', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f44f8849f904da4a348b9d11d29b0928', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=411510b583e6bc28de56ce41023bfb9c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=34afe99ae3f57cff8e01ccdbffaf75c8', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=74ea57684b830429946348b395270645', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=8ff8afc5b9a24145fe069dc4351159ed', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=860&quality=85&auto=format&fit=max&s=56e2e03ae3e56014d44d0db1bd1bd81f', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=d3f47881f1b85665d4fc3aa0f453ccb6', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=780&quality=85&auto=format&fit=max&s=8cce7410ca55126bcecdd691ad21842d', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=d09f570f395fc93c3cbaeb295c15f202', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=c43833d5667a6d16acca99b7c4873c96', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f44f8849f904da4a348b9d11d29b0928', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=411510b583e6bc28de56ce41023bfb9c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=34afe99ae3f57cff8e01ccdbffaf75c8', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=74ea57684b830429946348b395270645', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=8ff8afc5b9a24145fe069dc4351159ed', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=c43833d5667a6d16acca99b7c4873c96', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f44f8849f904da4a348b9d11d29b0928', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=411510b583e6bc28de56ce41023bfb9c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=34afe99ae3f57cff8e01ccdbffaf75c8', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=74ea57684b830429946348b395270645', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=8ff8afc5b9a24145fe069dc4351159ed', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=1900&quality=85&auto=format&fit=max&s=9c98cecfae4ec5e18f84e06bc94aec0a', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=89ef757448e93c0a15a86cc22363b218', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=1300&quality=85&auto=format&fit=max&s=39f29d5109565048b22172487626a66d', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=974e0a832f9ab0c52ecbab44e4e81008', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=1140&quality=85&auto=format&fit=max&s=aa6070b9f138eb6ebe3b08f35b87b644', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=834ea3f6784f36b3e61c9443df0cb5e4', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=980&quality=85&auto=format&fit=max&s=ea25670bf574c198acef2beff787fa04', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=47711c285f7576a446a6bd41be250207', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=740&quality=85&auto=format&fit=max&s=ad631865759cb649acdd37bd37b9814d', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=dd69d58cda218a59232d063732a1f785', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=660&quality=85&auto=format&fit=max&s=2e9a5517f5561de226f00a236f08e021', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=52b117dd57d6c3652788f3962300021f', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=480&quality=85&auto=format&fit=max&s=5fa9b4d2901a306ff0fb8bc1fcfa430d', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/34f1a6b4eef3f8b47a4bfed09b987099cad24355/0_0_5000_4000/master/5000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=11afb608b1ba218910dacd2f902af97e', + width: 960, + }, + ], + }, + ], + data: { + alt: 'John Lewis Intentional Leather Medium Cross body Bag, Black', + credit: 'Photograph: John Lewis', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Cross-body bag

', + elementId: 'fde79c7f-81e8-4130-8ae3-45246790c53f', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.johnlewis.com%2Fjohn-lewis-intentional-leather-medium-crossbody-bag-black%2Fp114347477&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£79.20 at John Lewis', + elementId: '08c82e98-0f35-4b4b-b880-06983056563a', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

“Leather bags for under £100 are hard to come by on the high street,” wrote Melanie Wilkinson in our guide to 50 affordable spring fashion updates for women. “But John Lewis has come up trumps with this chic shoulder bag, complete with expensive-looking gold hardware.” It’s dropped even further in price since, securing its place as one of your favourites this month.

', + elementId: '59a5a72f-d9bc-4a55-b30f-498b22c54fba', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '3e56ecd3-fe4a-458c-a3dc-c509066378b2', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The versatile running shoes

', + elementId: 'fd288eb0-478a-4856-b5c1-cc87ccc0ae42', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '16:9', + height: '2813', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/5000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '16:9', + isMaster: 'true', + height: '2813', + width: '5000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '16:9', + height: '1125', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '16:9', + height: '563', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '16:9', + height: '281', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '16:9', + height: '79', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/140.jpg', + }, + ], + }, + elementId: '4fc1c5e8-9964-4baf-b5ea-551d2f567a82', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=b4bdbae33607c4bb284cbd656c3986f6', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=9164befe52e9509427fd07b8a6d32cb5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=6a6fece2e9273130d4ffe2f213894d0c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=dc8c115a092dd8aca546836a285f183a', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=64d81180e45d6a0360ed9ee3a1d3c2ed', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=64928563412166b6c25b897b522932fb', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=140&quality=85&auto=format&fit=max&s=787f9a3d65ca4464ab5e456c946f3bf7', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=d14fb2fff1e924c09736a9f4457dcd48', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=120&quality=85&auto=format&fit=max&s=e8c281be3b95b8b035ed51994400d9e5', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=befa8cf2ed5fa35b1b8eec08125fb66d', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=380&quality=85&auto=format&fit=max&s=fd76182b9a154d7041280f5609d4638c', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=a01fbedbfd0e4879893cc9c18b5effb9', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=300&quality=85&auto=format&fit=max&s=c28ca37e80bd2e286b82022b990279a9', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=e0038de07e30e02182943c8b551a8739', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=b4bdbae33607c4bb284cbd656c3986f6', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=9164befe52e9509427fd07b8a6d32cb5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=6a6fece2e9273130d4ffe2f213894d0c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=dc8c115a092dd8aca546836a285f183a', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=64d81180e45d6a0360ed9ee3a1d3c2ed', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=64928563412166b6c25b897b522932fb', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=860&quality=85&auto=format&fit=max&s=baa42ee88651c1ef4ef435d446fe6c94', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=aefb93f88f121b3f85bbb95324c09569', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=780&quality=85&auto=format&fit=max&s=d8edcd2edbcec1c6d892a2b549a87907', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=a3e526cd6b301051cd6b311e186e6bc6', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=b4bdbae33607c4bb284cbd656c3986f6', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=9164befe52e9509427fd07b8a6d32cb5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=6a6fece2e9273130d4ffe2f213894d0c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=dc8c115a092dd8aca546836a285f183a', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=64d81180e45d6a0360ed9ee3a1d3c2ed', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=64928563412166b6c25b897b522932fb', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=85&auto=format&fit=max&s=b4bdbae33607c4bb284cbd656c3986f6', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=9164befe52e9509427fd07b8a6d32cb5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=85&auto=format&fit=max&s=6a6fece2e9273130d4ffe2f213894d0c', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=dc8c115a092dd8aca546836a285f183a', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=85&auto=format&fit=max&s=64d81180e45d6a0360ed9ee3a1d3c2ed', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=64928563412166b6c25b897b522932fb', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=1900&quality=85&auto=format&fit=max&s=086caa70df9bebf89c3df06ed11a4550', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=7ac79d868be4b518d83e92af8cf20011', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=1300&quality=85&auto=format&fit=max&s=e0e01f1849b80ecd82061b6e1dfe233b', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=55f8c059619e795183f7f30e2751f593', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=1140&quality=85&auto=format&fit=max&s=7c4c206b1e9b3dc77fcac7a3fe062dc5', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=35a19e45100ed39bdde49709412b2d7c', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=980&quality=85&auto=format&fit=max&s=e5a57c387db1e7d39f11cb0ceee46fcd', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=51e6380e3a97fec739e17bedccc1b4a3', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=740&quality=85&auto=format&fit=max&s=f0f6998f23e1a1a5b43041812a2e6301', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=38af4c0428755c829c81d670aee1f7e4', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=660&quality=85&auto=format&fit=max&s=381e867a3d4dcc0b06a1f9aa142f597b', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=c53fb744a62c9b67024cfb8debd7dc66', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=480&quality=85&auto=format&fit=max&s=f863012d4da6f85084af2c7902dc7896', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/e6ae128b58a36294a45b705bb0e46773030f212d/0_594_5000_2813/master/5000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=a1add0d1aee6c6dcfbf59c47cdd41deb', + width: 960, + }, + ], + }, + ], + data: { + alt: 'ASICS Unisex MEGABLAST Running Shoes', + credit: 'Photograph: Asics', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Asics Megablast unisex running shoes

', + elementId: '03b8c7fd-5206-4c6d-bcc4-4a68c2aba4f0', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.amazon.co.uk%2FASICS-Unisex-MEGABLAST-Running-Shoes%2Fdp%2FB0FV7D9Q3N%2F&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: 'From £242.88 at Amazon', + elementId: 'aac82680-9caa-4fe2-87b7-5de53672806a', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

For our guide to the best running shoes, Kieran Alger ran at least 50km in each pair (small fry for a man who’s completed almost 70 marathons and many ultras). But it was his pick for the most versatile that were your favourites in the piece – not surprising since they’re “some of the best do-it-all shoes you can buy”, “a great pick for speed sessions, long tempo efforts, cruising long Sunday runs and easy recovery efforts”.

', + elementId: '858368f9-7d8c-4643-8714-b7ad2ff3ef10', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: 'efc98f0b-d9fc-4e12-bb70-edbc9eb42ad6', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

Anya Hindmarch’s favourite supplement

', + elementId: 'b5a3fb3c-db9b-4f12-8ec4-e56150121eba', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/4000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/140.jpg', + }, + ], + }, + elementId: 'aac68211-24ad-4699-921c-21c23bf62e1d', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=d470cd4fe6cce1b257ef14256a5d0adf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=39283d12adc54f6c39e2f1fe321aac2f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=d3be9768b6b6876409a56bc29f0e4944', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=90559f0b3b7538bb8aa6b88c926e82d9', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e2b512b4d57e10acd5ce9d866b21a0cc', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=af45705fbaaab1068000dbe5d45d7beb', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=140&quality=85&auto=format&fit=max&s=70c6d9eaba31471bd1e39820de49f6fe', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=62945bcfbecf7a3df08fa0871999fc35', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=120&quality=85&auto=format&fit=max&s=52ccf40fc6b2d9df06e5c12f69ab436d', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=2bcee686601319ec07185c6527e85f5e', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=380&quality=85&auto=format&fit=max&s=ffdf3afd011a1a9a9c79fbb48f1a8a11', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=ca6645b0cec210b121a76b3e19ed5e39', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=300&quality=85&auto=format&fit=max&s=ef56cd82695091cf83bc91b4f8405522', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=038988f5f093663b2eec2da60b34be1a', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=d470cd4fe6cce1b257ef14256a5d0adf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=39283d12adc54f6c39e2f1fe321aac2f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=d3be9768b6b6876409a56bc29f0e4944', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=90559f0b3b7538bb8aa6b88c926e82d9', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e2b512b4d57e10acd5ce9d866b21a0cc', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=af45705fbaaab1068000dbe5d45d7beb', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=860&quality=85&auto=format&fit=max&s=a4b088c5766502580ec5e56dc94224f4', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=6ebca69fdeff691ce92e3715afc57226', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=780&quality=85&auto=format&fit=max&s=6f6be427c000b3537be6cc9ebfe660a6', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=8dcdb6e2fae359c2a6af42128e7c65ca', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=d470cd4fe6cce1b257ef14256a5d0adf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=39283d12adc54f6c39e2f1fe321aac2f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=d3be9768b6b6876409a56bc29f0e4944', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=90559f0b3b7538bb8aa6b88c926e82d9', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e2b512b4d57e10acd5ce9d866b21a0cc', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=af45705fbaaab1068000dbe5d45d7beb', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=d470cd4fe6cce1b257ef14256a5d0adf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=39283d12adc54f6c39e2f1fe321aac2f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=d3be9768b6b6876409a56bc29f0e4944', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=90559f0b3b7538bb8aa6b88c926e82d9', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=e2b512b4d57e10acd5ce9d866b21a0cc', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=af45705fbaaab1068000dbe5d45d7beb', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=1900&quality=85&auto=format&fit=max&s=cac9650ad287388f8dcf3e9fba3376a5', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=b5f95dc70f3b86c4fed4697621114c7e', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=1300&quality=85&auto=format&fit=max&s=821d1891802821838adad392d26e10a2', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=db2176ee0aba0928b766151e46687fca', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=1140&quality=85&auto=format&fit=max&s=533cad8c2483cd89870e7f1556d6a5ff', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=7fc24ae69c8d0d4556b5f9531b6f0c5a', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=980&quality=85&auto=format&fit=max&s=2460c0b0e6e5f5949fc649f12277ddd0', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=4e3ceda9d646080d503071a27d5f62eb', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=740&quality=85&auto=format&fit=max&s=d265a48fe5dc2fb7f7ec5b9d7a770f99', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=789c677e1ad0d0144bc68acfea927db2', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=660&quality=85&auto=format&fit=max&s=1fe4991ff858cc6756a0d2868c6b086a', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=703c29c24407cff7c83c353afe9b4e9c', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=480&quality=85&auto=format&fit=max&s=8711faa4a97fd14cb801f16c80ff1a5c', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/66b7d15889413edd0609018653322e478f672794/500_0_4000_4000/master/4000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=f41475406fbcbf2f52102bf88f5d54d4', + width: 960, + }, + ], + }, + ], + data: { + alt: 'ainslie + ainslie DAY POWDER', + credit: 'Photograph: Ainslie + Ainslie', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Ainslie + Ainslie day powder, 28 serves

', + elementId: '06a6d327-4f3d-4700-ab51-dbfaae810355', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fhealf.com%2Fen-uk%2Fproducts%2Fainslie-ainslie-day-powder&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£85 at Healf', + elementId: 'ed1f1f5f-7b7f-4041-b884-908fae408da2', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

After the popularity of Ben Fogle’s favourite toothpaste a few months back, you’ve once again taken inspiration from a celebrity’s daily routine. When we asked designer Anya Hindmarch which purchase she regretted the most, she said: “I regret not buying Ainslie + Ainslie sleep and day powder earlier. Gamechanging.”

', + elementId: '1bf1e4e7-98f0-402b-b756-15a3c958b06c', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: 'a356873a-4833-481d-991b-c046f59397b1', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

The first-step cleanser

', + elementId: '2078b9d0-787f-4b73-973c-8fef7d140127', + }, + { + displayCredit: false, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/4000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '4000', + width: '4000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/2000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/1000.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/500.jpg', + }, + { + index: 5, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/140.jpg', + }, + ], + }, + elementId: 'e9d54712-f426-48b1-bcac-d30f17dd48fd', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=83afcf4438937d07df5c1f907829dccf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=26cf4774ce1d7b52bb574e2829f3649a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=f7c7d8fe8bffbfe8cc055e106212fd7e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=346aa62e50032b0d49cf7930e01c6ce6', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=f4f21f333f6eecb6714619d0aa2d8196', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0fa07add20d3c9f8e79a0cea1ed7a6bb', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=140&quality=85&auto=format&fit=max&s=ede4628ba91688911d3ad2b8c17a926f', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=c8bc573937d8c146f85bc1d4e6500e31', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=120&quality=85&auto=format&fit=max&s=e0b2551d69488b8889918fd9e780ce5b', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=b51a8fc47748ef373d0c956558eee992', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=380&quality=85&auto=format&fit=max&s=ee185614ab08351080331e2eba99454e', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=09a94f0507779a9a0d67e24175de08fd', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=300&quality=85&auto=format&fit=max&s=9a7da5b5400d3ef4791a57182ae77432', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=b826061a25d55cfd3c66892d54342da9', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=83afcf4438937d07df5c1f907829dccf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=26cf4774ce1d7b52bb574e2829f3649a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=f7c7d8fe8bffbfe8cc055e106212fd7e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=346aa62e50032b0d49cf7930e01c6ce6', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=f4f21f333f6eecb6714619d0aa2d8196', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0fa07add20d3c9f8e79a0cea1ed7a6bb', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=860&quality=85&auto=format&fit=max&s=b894566d77dbf2c6a2d683cd6ce36233', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=63564d9b7f770e04ee950c6eb118f661', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=780&quality=85&auto=format&fit=max&s=32789c1aeac05fee8070437c94e81289', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=078e25d8ac21d8ca73530e0ee7439568', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=83afcf4438937d07df5c1f907829dccf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=26cf4774ce1d7b52bb574e2829f3649a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=f7c7d8fe8bffbfe8cc055e106212fd7e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=346aa62e50032b0d49cf7930e01c6ce6', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=f4f21f333f6eecb6714619d0aa2d8196', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0fa07add20d3c9f8e79a0cea1ed7a6bb', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=85&auto=format&fit=max&s=83afcf4438937d07df5c1f907829dccf', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=26cf4774ce1d7b52bb574e2829f3649a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=85&auto=format&fit=max&s=f7c7d8fe8bffbfe8cc055e106212fd7e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=346aa62e50032b0d49cf7930e01c6ce6', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=85&auto=format&fit=max&s=f4f21f333f6eecb6714619d0aa2d8196', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=0fa07add20d3c9f8e79a0cea1ed7a6bb', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=1900&quality=85&auto=format&fit=max&s=3caa3dc86706b358df5486b94535be9a', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=55f79f429db911794a13b2fba0872f74', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=1300&quality=85&auto=format&fit=max&s=b666ece85c225c55f2377861f900e450', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=d042e49a1bbc2ee3f2b978c55124a098', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=1140&quality=85&auto=format&fit=max&s=241d21df797cebf935c641c5448a1d34', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=3ab396bd52d41cc4b24a5d75ecaeb000', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=980&quality=85&auto=format&fit=max&s=ed1f4bac02ea70c7ee45efe0251fb92e', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=90349b08aad11fa8dfc32a0e54eade9d', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=740&quality=85&auto=format&fit=max&s=ec2d43b07f33ca2eb6087d40332a6805', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=6043561aeb992ec74346e64f7429657a', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=660&quality=85&auto=format&fit=max&s=d16fac2a6e1ab8ba96ac1fcc1842a4c8', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=beadaa036f61a97969f92d9138e01d48', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=480&quality=85&auto=format&fit=max&s=56033aa163b64101078185a2657d46d4', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/2b0df8d1c24ad6b5a74315a2aa1d39c5c0c84d42/500_0_4000_4000/master/4000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=2af5634f4cb79aa62804bb3d8927d19f', + width: 960, + }, + ], + }, + ], + data: { + alt: 'haruharu wonder Black Rice Moisture Cleansing Oil 150ml', + credit: 'Photograph: Haruharu Wonder', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Haruharu Wonder black rice cleansing oil, 150ml

', + elementId: '982c63d7-0d90-49bb-962c-269f96000ed3', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1572903&url=https%3A%2F%2Fwww.amazon.co.uk%2FHaruharu-Moisture-Cleansing-Cleanser-Macadamia%2Fdp%2FB08W1ZHTL3&sref=https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026.json?dcr', + label: '£15.30 at Amazon', + elementId: '511a2a5e-3e01-4831-92b6-c1708185c529', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Modern skincare is a confusing business. So we loved Anita Bhagwandas’s back-to-basics guide on how to build a skincare routine. Double cleansing is “the best way to cleanse your skin thoroughly in the evening,” she wrote, and this “brilliant” oil-based cleanser from Korean brand Haruharu Wonder is the ideal first step.

', + elementId: '3c9d55f4-1268-4ecd-b697-4dc068fc1a64', + }, + ], + attributes: { + pinned: false, + keyEvent: false, + summary: false, + }, + blockCreatedOn: 1777903225000, + blockCreatedOnDisplay: '15.00 BST', + blockLastUpdated: 1777631000000, + blockLastUpdatedDisplay: '11.23 BST', + contributors: [], + primaryDateLine: 'Mon 4 May 2026 15.00 BST', + secondaryDateLine: 'Last modified on Tue 5 May 2026 12.06 BST', + }, + ], + author: { + byline: 'Monica Horridge', + }, + byline: 'Monica Horridge', + webPublicationDate: '2026-05-04T14:00:25.000Z', + webPublicationDateDeprecated: '2026-05-04T14:00:25.000Z', + webPublicationDateDisplay: 'Mon 4 May 2026 15.00 BST', + webPublicationSecondaryDateDisplay: + 'Last modified on Tue 5 May 2026 12.06 BST', + editionLongForm: 'UK edition', + editionId: 'UK', + pageId: 'thefilter/2026/may/04/things-you-loved-most-april-2026', + canonicalUrl: + 'https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + format: { + design: 'FeatureDesign', + theme: 'LifestylePillar', + display: 'ShowcaseDisplay', + }, + designType: 'Feature', + tags: [ + { + id: 'thefilter/series/the-filter', + type: 'Series', + title: 'The Filter', + }, + { + id: 'lifeandstyle/lifeandstyle', + type: 'Keyword', + title: 'Life and style', + }, + { + id: 'campaign/email/the-filter', + type: 'Campaign', + title: 'The Filter (newsletter signup)', + }, + { + id: 'thefilter/series/the-filter-newsletter', + type: 'Series', + title: 'The Filter UK newsletter', + }, + { + id: 'tone/features', + type: 'Tone', + title: 'Features', + }, + { + id: 'type/article', + type: 'Type', + title: 'Article', + }, + { + id: 'tone/best-ofs', + type: 'Tone', + title: 'Best of', + }, + { + id: 'profile/monica-horridge', + type: 'Contributor', + title: 'Monica Horridge', + bylineImageUrl: + 'https://i.guim.co.uk/img/uploads/2025/05/20/Monica_Horridge.jpg?width=300&quality=85&auto=format&fit=max&s=336b53139e2631adf4ee3d6f0ad06a6c', + bylineLargeImageUrl: + 'https://i.guim.co.uk/img/uploads/2025/05/20/Monica_Horridge,_L.png?width=300&quality=85&auto=format&fit=max&s=903786d8d91b3e7698221103272d707e', + }, + { + id: 'tracking/commissioningdesk/the-filter', + type: 'Tracking', + title: 'The Filter UK', + }, + { + id: 'tracking/commissioningdesk/newsletters', + type: 'Tracking', + title: 'Newsletters', + }, + ], + pillar: 'lifestyle', + isLegacyInteractive: false, + isImmersive: false, + sectionLabel: 'Life and style', + sectionUrl: 'lifeandstyle/lifeandstyle', + sectionName: 'thefilter', + subMetaSectionLinks: [ + { + url: '/lifeandstyle/lifeandstyle', + title: 'Life and style', + }, + { + url: '/thefilter/series/the-filter', + title: 'The Filter', + }, + ], + subMetaKeywordLinks: [ + { + url: '/tone/features', + title: 'features', + }, + ], + shouldHideAds: false, + isAdFreeUser: false, + webURL: 'https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + linkedData: [ + { + '@type': 'NewsArticle', + '@context': 'https://schema.org', + '@id': 'https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + publisher: { + '@type': 'Organization', + '@context': 'https://schema.org', + '@id': 'https://www.theguardian.com#publisher', + name: 'The Guardian', + url: 'https://www.theguardian.com/', + logo: { + '@type': 'ImageObject', + url: 'https://uploads.guim.co.uk/2018/01/31/TheGuardian_AMP.png', + width: 190, + height: 60, + }, + sameAs: [ + 'https://www.facebook.com/theguardian', + 'https://twitter.com/guardian', + 'https://www.youtube.com/user/TheGuardian', + ], + }, + isAccessibleForFree: true, + isPartOf: { + '@type': ['CreativeWork', 'Product'], + name: 'The Guardian', + productID: 'theguardian.com:basic', + }, + image: [ + 'https://i.guim.co.uk/img/media/762fe70aff6115264501c2b92a25476797d40ba3/286_86_4530_3624/master/4530.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&precrop=40:21,offset-x50,offset-y0&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvZmlsdGVyLXVrLnBuZw&enable=upscale&s=47b5ebe78c968b6130b687e1fc1e194b', + 'https://i.guim.co.uk/img/media/762fe70aff6115264501c2b92a25476797d40ba3/286_86_4530_3624/master/4530.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=45d61f33c04fd715d71e7137cd974704', + 'https://i.guim.co.uk/img/media/762fe70aff6115264501c2b92a25476797d40ba3/286_86_4530_3624/master/4530.jpg?width=1200&height=900&quality=85&auto=format&fit=crop&s=86d4d124e33879df82326849ed1b0732', + 'https://i.guim.co.uk/img/media/762fe70aff6115264501c2b92a25476797d40ba3/286_86_4530_3624/master/4530.jpg?width=1200&quality=85&auto=format&fit=max&s=ab8f86b18f83e8f48ad2ac9f21339ccf', + ], + author: [ + { + '@type': 'Person', + name: 'Monica Horridge', + sameAs: 'https://www.theguardian.com/profile/monica-horridge', + }, + ], + datePublished: '2026-05-04T14:00:25.000Z', + headline: + 'From skin-brightening serum to a bargain coffee machine: 10 things you loved most in April', + dateModified: '2026-05-05T11:06:43.000Z', + mainEntityOfPage: + 'https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + { + '@type': 'WebPage', + '@context': 'https://schema.org', + '@id': 'https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + potentialAction: { + '@type': 'ViewAction', + target: 'android-app://com.guardian/https/www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + }, + ], + openGraphData: { + 'og:url': + 'https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + 'article:author': 'https://www.theguardian.com/profile/monica-horridge', + 'og:image:width': '1200', + 'og:image': + 'https://i.guim.co.uk/img/media/762fe70aff6115264501c2b92a25476797d40ba3/286_86_4530_3624/master/4530.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&precrop=40:21,offset-x50,offset-y0&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvZmlsdGVyLXVrLnBuZw&enable=upscale&s=47b5ebe78c968b6130b687e1fc1e194b', + 'al:ios:url': + 'gnmguardian://thefilter/2026/may/04/things-you-loved-most-april-2026?contenttype=Article&source=applinks', + 'article:publisher': 'https://www.facebook.com/theguardian', + 'og:title': + 'From skin-brightening serum to a bargain coffee machine: 10 things you loved most in April', + 'fb:app_id': '180444840287', + 'article:modified_time': '2026-05-05T11:06:43.000Z', + 'og:image:height': '960', + 'og:description': + 'Whether it’s a new season scent or a springy running shoe, your April favourites show you’re ready for a fresh start', + 'og:type': 'article', + 'al:ios:app_store_id': '409128287', + 'article:section': 'The Filter', + 'article:published_time': '2026-05-04T14:00:25.000Z', + 'article:tag': 'Life and style', + 'al:ios:app_name': 'The Guardian', + 'og:site_name': 'the Guardian', + }, + twitterData: { + 'twitter:app:id:iphone': '409128287', + 'twitter:app:name:googleplay': 'The Guardian', + 'twitter:app:name:ipad': 'The Guardian', + 'twitter:card': 'summary_large_image', + 'twitter:app:name:iphone': 'The Guardian', + 'twitter:app:id:ipad': '409128287', + 'twitter:app:id:googleplay': 'com.guardian', + 'twitter:app:url:googleplay': + 'guardian://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + 'twitter:app:url:iphone': + 'gnmguardian://thefilter/2026/may/04/things-you-loved-most-april-2026?contenttype=Article&source=twitter', + 'twitter:image': + 'https://i.guim.co.uk/img/media/762fe70aff6115264501c2b92a25476797d40ba3/286_86_4530_3624/master/4530.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&precrop=40:21,offset-x50,offset-y0&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvZmlsdGVyLXVrLnBuZw&s=f60705aa0242d7abe143cf99da9383eb', + 'twitter:site': '@guardian', + 'twitter:app:url:ipad': + 'gnmguardian://thefilter/2026/may/04/things-you-loved-most-april-2026?contenttype=Article&source=twitter', + }, + config: { + references: [ + { + 'rich-link': + 'https://www.theguardian.com/environment/2015/oct/19/sign-up-to-the-green-light-email', + }, + ], + shortUrlId: '/p/d8ex5', + switches: { + prebidAppnexusUkRow: true, + clickToView: true, + prebidTrustx: true, + scAdFreeBanner: false, + compareVariantDecision: false, + enableSentryReporting: true, + lazyLoadContainers: true, + adFreeStrictExpiryEnforcement: false, + liveblogRendering: true, + remarketing: true, + registerWithPhone: false, + targeting: true, + extendedMostPopularFronts: true, + slotBodyEnd: true, + emailInlineInFooter: true, + facebookTrackingPixel: true, + serviceWorkerEnabled: false, + iasAdTargeting: true, + extendedMostPopular: true, + prebidAnalytics: true, + imrWorldwide: true, + acast: true, + twitterUwt: true, + prebidAppnexusInvcode: true, + prebidAppnexus: true, + enableDiscussionSwitch: true, + prebidXaxis: true, + interactiveFullHeaderSwitch: false, + discussionAllPageSize: true, + prebidUserSync: true, + audioOnwardJourneySwitch: true, + mobileStickyPrebid: true, + breakingNews: true, + externalVideoEmbeds: true, + carrotTrafficDriver: true, + geoMostPopular: true, + weAreHiring: true, + relatedContent: true, + thirdPartyEmbedTracking: true, + prebidOzone: true, + mostViewedFronts: true, + abSignInGateMainControl: true, + ampPrebid: true, + googleSearch: true, + brazeSwitch: true, + consentManagement: true, + commercial: true, + prebidSonobi: true, + idProfileNavigation: true, + confiantAdVerification: true, + discussionAllowAnonymousRecommendsSwitch: false, + scrollDepth: true, + permutive: true, + comscore: true, + webFonts: true, + prebidImproveDigital: true, + ophan: true, + crosswordSvgThumbnails: true, + prebidTriplelift: true, + weather: true, + commercialOutbrainNewids: true, + dotcomRendering: true, + abSignInGateMainVariant: true, + hostedVideoAutoplay: true, + abAdblockAsk: true, + prebidPubmatic: true, + autoRefresh: true, + enhanceTweets: true, + prebidIndexExchange: true, + prebidOpenx: true, + idCookieRefresh: true, + sharingComments: true, + abSignInGateMandatory: true, + discussionPageSize: true, + smartAppBanner: false, + boostGaUserTimingFidelity: false, + historyTags: true, + mobileStickyLeaderboard: true, + abDeeplyReadTest: false, + surveys: true, + remoteBanner: true, + inizio: true, + prebidHeaderBidding: true, + a9HeaderBidding: true, + lightbox: true, + }, + keywordIds: + 'environment/climate-change,environment/environment,science/scienceofclimatechange,science/science,world/eu,world/europe-news,world/world,environment/flooding,world/wildfires,world/natural-disasters', + sharedAdTargeting: { + ct: 'article', + co: ['jennifer-rankin'], + url: '/environment/2020/feb/10/fires-floods-maps-europe-climate-catastrophe', + su: ['0'], + edition: 'uk', + tn: ['news'], + p: 'ng', + k: [ + 'eu', + 'flooding', + 'world', + 'europe-news', + 'natural-disasters', + 'science', + 'environment', + 'climate-change', + 'wildfires', + 'scienceofclimatechange', + ], + sh: 'https://www.theguardian.com/p/d8ex5', + }, + toneIds: 'tone/news', + dcrSentryDsn: + 'https://1937ab71c8804b2b8438178dfdd6468f@sentry.io/1377847', + discussionApiUrl: 'https://discussion.theguardian.com/discussion-api', + sentryPublicApiKey: '344003a8d11c41d8800fbad8383fdc50', + commercialBundleUrl: + 'https://assets.guim.co.uk/javascripts/bc58c17d75809551440f/graun.commercial.dcr.js', + discussionApiClientHeader: 'nextgen', + shouldHideReaderRevenue: false, + sentryHost: 'app.getsentry.com/35463', + isPaidContent: false, + headline: 'Headline string', + idApiUrl: 'https://idapi.theguardian.com', + showRelatedContent: true, + adUnit: '/59666047/theguardian.com/environment/article/ng', + videoDuration: 0, + stage: 'PROD', + isSensitive: false, + isDev: false, + ajaxUrl: 'https://api.nextgen.guardianapps.co.uk', + keywords: + 'Climate change,Environment,Climate change,Science,European Union,Europe,World news,Flooding,Wildfires,Natural disasters and extreme weather', + revisionNumber: 'DEV', + section: 'environment', + isPhotoEssay: false, + ampIframeUrl: + 'https://assets.guim.co.uk/data/vendor/b242a49b1588bb36bdaacefe001ca77a/amp-iframe.html', + isLive: false, + host: 'https://www.theguardian.com', + brazeApiKey: '7f28c639-8bda-48ff-a3f6-24345abfc07c', + contentType: 'Article', + idUrl: 'https://profile.theguardian.com', + author: 'Jennifer Rankin', + dfpAccountId: '59666047', + pageId: 'environment/2020/feb/10/fires-floods-maps-europe-climate-catastrophe', + googletagUrl: '//securepubads.g.doubleclick.net/tag/js/gpt.js', + mmaUrl: 'https://manage.theguardian.com', + abTests: {}, + serverSideABTests: {}, + edition: 'UK', + ipsosTag: 'environment', + isLiveBlog: false, + frontendAssetsFullURL: 'https://assets.guim.co.uk/', + webPublicationDate: 1581314427000, + discussionD2Uid: 'zHoBy6HNKsk', + }, + guardianBaseURL: 'https://www.theguardian.com', + contentType: 'Article', + hasRelated: true, + hasStoryPackage: false, + beaconURL: '//phar.gu-web.net', + isCommentable: false, + commercialProperties: { + US: { + adTargeting: [ + { + name: 'sh', + value: 'https://www.theguardian.com/p/x5vtf5', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'edition', + value: 'us', + }, + { + name: 'co', + value: ['monica-horridge'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter', + }, + { + name: 'se', + value: ['the-filter-newsletter', 'the-filter'], + }, + { + name: 'url', + value: '/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'tn', + value: ['features', 'best-ofs'], + }, + ], + }, + AU: { + adTargeting: [ + { + name: 'sh', + value: 'https://www.theguardian.com/p/x5vtf5', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'edition', + value: 'au', + }, + { + name: 'co', + value: ['monica-horridge'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter', + }, + { + name: 'se', + value: ['the-filter-newsletter', 'the-filter'], + }, + { + name: 'url', + value: '/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'tn', + value: ['features', 'best-ofs'], + }, + ], + }, + UK: { + adTargeting: [ + { + name: 'sh', + value: 'https://www.theguardian.com/p/x5vtf5', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter', + }, + { + name: 'se', + value: ['the-filter-newsletter', 'the-filter'], + }, + { + name: 'url', + value: '/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'tn', + value: ['features', 'best-ofs'], + }, + { + name: 'co', + value: ['monica-horridge'], + }, + { + name: 'edition', + value: 'uk', + }, + ], + }, + INT: { + adTargeting: [ + { + name: 'sh', + value: 'https://www.theguardian.com/p/x5vtf5', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'co', + value: ['monica-horridge'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter', + }, + { + name: 'se', + value: ['the-filter-newsletter', 'the-filter'], + }, + { + name: 'url', + value: '/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + { + name: 'edition', + value: 'int', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'tn', + value: ['features', 'best-ofs'], + }, + ], + }, + EUR: { + adTargeting: [ + { + name: 'sh', + value: 'https://www.theguardian.com/p/x5vtf5', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'co', + value: ['monica-horridge'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter', + }, + { + name: 'se', + value: ['the-filter-newsletter', 'the-filter'], + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'tn', + value: ['features', 'best-ofs'], + }, + { + name: 'url', + value: '/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + { + name: 'edition', + value: 'eur', + }, + ], + }, + }, + pageType: { + hasShowcaseMainElement: true, + isFront: false, + isLiveblog: false, + isMinuteArticle: false, + isPaidContent: false, + isPreview: false, + isSensitive: false, + }, + trailText: + 'Whether it’s a new season scent or a springy running shoe, your April favourites show you’re ready for a fresh start', + nav: { + currentUrl: '/thefilter', + pillars: [ + { + title: 'News', + url: '/', + longTitle: 'Headlines', + iconName: 'home', + children: [ + { + title: 'UK', + url: '/uk-news', + longTitle: 'UK news', + children: [ + { + title: 'UK politics', + url: '/politics', + }, + { + title: 'Education', + url: '/education', + children: [ + { + title: 'Schools', + url: '/education/schools', + }, + { + title: 'Teachers', + url: '/teacher-network', + }, + { + title: 'Universities', + url: '/education/universities', + }, + { + title: 'Students', + url: '/education/students', + }, + ], + }, + { + title: 'Media', + url: '/media', + }, + { + title: 'Society', + url: '/society', + }, + { + title: 'Law', + url: '/law', + }, + { + title: 'Scotland', + url: '/uk/scotland', + }, + { + title: 'Wales', + url: '/uk/wales', + }, + { + title: 'Northern Ireland', + url: '/uk/northernireland', + }, + ], + }, + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'US politics', + url: '/us-news/us-politics', + }, + { + title: 'World', + url: '/world', + longTitle: 'World news', + children: [ + { + title: 'Europe', + url: '/world/europe-news', + }, + { + title: 'US news', + url: '/us-news', + longTitle: 'US news', + }, + { + title: 'Americas', + url: '/world/americas', + }, + { + title: 'Asia', + url: '/world/asia', + }, + { + title: 'Australia', + url: '/australia-news', + longTitle: 'Australia news', + }, + { + title: 'Middle East', + url: '/world/middleeast', + }, + { + title: 'Africa', + url: '/world/africa', + }, + { + title: 'Inequality', + url: '/inequality', + }, + { + title: 'Global development', + url: '/global-development', + }, + ], + }, + { + title: 'Climate crisis', + url: '/environment/climate-crisis', + }, + { + title: 'Middle East', + url: '/world/middleeast', + }, + { + title: 'Ukraine', + url: '/world/ukraine', + }, + { + title: 'Football', + url: '/football', + children: [ + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'Live scores', + url: '/football/live', + longTitle: 'football/live', + }, + { + title: 'Tables', + url: '/football/tables', + longTitle: 'football/tables', + }, + { + title: 'Fixtures', + url: '/football/fixtures', + longTitle: 'football/fixtures', + }, + { + title: 'Results', + url: '/football/results', + longTitle: 'football/results', + }, + { + title: 'Competitions', + url: '/football/competitions', + longTitle: 'football/competitions', + }, + { + title: 'Clubs', + url: '/football/teams', + longTitle: 'football/teams', + }, + ], + }, + { + title: 'Newsletters', + url: '/email-newsletters', + }, + { + title: 'Business', + url: '/business', + children: [ + { + title: 'Economics', + url: '/business/economics', + }, + { + title: 'Banking', + url: '/business/banking', + }, + { + title: 'Money', + url: '/money', + children: [ + { + title: 'Property', + url: '/money/property', + }, + { + title: 'Pensions', + url: '/money/pensions', + }, + { + title: 'Savings', + url: '/money/savings', + }, + { + title: 'Borrowing', + url: '/money/debt', + }, + { + title: 'Careers', + url: '/money/work-and-careers', + }, + ], + }, + { + title: 'Markets', + url: '/business/stock-markets', + }, + { + title: 'Project Syndicate', + url: '/business/series/project-syndicate-economists', + }, + { + title: 'B2B', + url: '/business-to-business', + }, + { + title: 'Retail', + url: '/business/retail', + }, + ], + }, + { + title: 'Environment', + url: '/environment', + children: [ + { + title: 'Climate crisis', + url: '/environment/climate-crisis', + }, + { + title: 'Wildlife', + url: '/environment/wildlife', + }, + { + title: 'Energy', + url: '/environment/energy', + }, + { + title: 'Pollution', + url: '/environment/pollution', + }, + ], + }, + { + title: 'UK politics', + url: '/politics', + }, + { + title: 'Science', + url: '/science', + }, + { + title: 'Tech', + url: '/technology', + }, + { + title: 'Global development', + url: '/global-development', + }, + { + title: 'Obituaries', + url: '/obituaries', + }, + ], + }, + { + title: 'Opinion', + url: '/commentisfree', + longTitle: 'Opinion home', + iconName: 'home', + children: [ + { + title: 'The Guardian view', + url: '/profile/editorial', + }, + { + title: 'Columnists', + url: '/uk/columnists', + }, + { + title: 'Cartoons', + url: '/tone/cartoons', + }, + { + title: 'Opinion videos', + url: '/type/video+tone/comment', + }, + { + title: 'Letters', + url: '/tone/letters', + }, + ], + }, + { + title: 'Sport', + url: '/sport', + longTitle: 'Sport home', + iconName: 'home', + children: [ + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'Football', + url: '/football', + children: [ + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'Live scores', + url: '/football/live', + longTitle: 'football/live', + }, + { + title: 'Tables', + url: '/football/tables', + longTitle: 'football/tables', + }, + { + title: 'Fixtures', + url: '/football/fixtures', + longTitle: 'football/fixtures', + }, + { + title: 'Results', + url: '/football/results', + longTitle: 'football/results', + }, + { + title: 'Competitions', + url: '/football/competitions', + longTitle: 'football/competitions', + }, + { + title: 'Clubs', + url: '/football/teams', + longTitle: 'football/teams', + }, + ], + }, + { + title: 'Cricket', + url: '/sport/cricket', + }, + { + title: 'Rugby union', + url: '/sport/rugby-union', + }, + { + title: 'Tennis', + url: '/sport/tennis', + }, + { + title: 'Cycling', + url: '/sport/cycling', + }, + { + title: 'F1', + url: '/sport/formulaone', + }, + { + title: 'Golf', + url: '/sport/golf', + }, + { + title: 'Boxing', + url: '/sport/boxing', + }, + { + title: 'Rugby league', + url: '/sport/rugbyleague', + }, + { + title: 'Racing', + url: '/sport/horse-racing', + }, + { + title: 'US sports', + url: '/sport/us-sport', + }, + ], + }, + { + title: 'Culture', + url: '/culture', + longTitle: 'Culture home', + iconName: 'home', + children: [ + { + title: 'Film', + url: '/film', + }, + { + title: 'Music', + url: '/music', + }, + { + title: 'TV & radio', + url: '/tv-and-radio', + }, + { + title: 'Books', + url: '/books', + }, + { + title: 'Art & design', + url: '/artanddesign', + }, + { + title: 'Stage', + url: '/stage', + }, + { + title: 'Games', + url: '/games', + }, + { + title: 'Classical', + url: '/music/classicalmusicandopera', + }, + ], + }, + { + title: 'Lifestyle', + url: '/lifeandstyle', + longTitle: 'Lifestyle home', + iconName: 'home', + children: [ + { + title: 'The Filter', + url: '/uk/thefilter', + }, + { + title: 'Fashion', + url: '/fashion', + }, + { + title: 'Food', + url: '/food', + }, + { + title: 'Recipes', + url: '/tone/recipes', + }, + { + title: 'Travel', + url: '/travel', + children: [ + { + title: 'UK', + url: '/travel/uk', + }, + { + title: 'Europe', + url: '/travel/europe', + }, + { + title: 'US', + url: '/travel/usa', + }, + ], + }, + { + title: 'Health & fitness', + url: '/lifeandstyle/health-and-wellbeing', + }, + { + title: 'Women', + url: '/lifeandstyle/women', + }, + { + title: 'Men', + url: '/lifeandstyle/men', + }, + { + title: 'Love & sex', + url: '/lifeandstyle/love-and-sex', + }, + { + title: 'Beauty', + url: '/fashion/beauty', + }, + { + title: 'Home & garden', + url: '/lifeandstyle/home-and-garden', + }, + { + title: 'Money', + url: '/money', + children: [ + { + title: 'Property', + url: '/money/property', + }, + { + title: 'Pensions', + url: '/money/pensions', + }, + { + title: 'Savings', + url: '/money/savings', + }, + { + title: 'Borrowing', + url: '/money/debt', + }, + { + title: 'Careers', + url: '/money/work-and-careers', + }, + ], + }, + { + title: 'Cars', + url: '/technology/motoring', + }, + ], + }, + ], + otherLinks: [ + { + title: 'The Guardian app', + url: 'https://app.adjust.com/16xt6hai', + }, + { + title: 'Video', + url: '/video', + }, + { + title: 'Podcasts', + url: '/podcasts', + }, + { + title: 'Pictures', + url: '/inpictures', + }, + { + title: 'Newsletters', + url: '/email-newsletters', + }, + { + title: "Today's paper", + url: '/theguardian', + children: [ + { + title: 'Obituaries', + url: '/obituaries', + }, + { + title: 'G2', + url: '/theguardian/g2', + }, + { + title: 'Journal', + url: '/theguardian/journal', + }, + { + title: 'Saturday', + url: '/theguardian/saturday', + }, + ], + }, + { + title: 'Inside the Guardian', + url: 'https://www.theguardian.com/insidetheguardian', + }, + { + title: 'Guardian Weekly', + url: 'https://www.theguardian.com/weekly?INTCMP=gdnwb_mawns_editorial_gweekly_GW_TopNav_UK', + }, + { + title: 'Crosswords', + url: '/crosswords', + children: [ + { + title: 'Blog', + url: '/crosswords/crossword-blog', + }, + { + title: 'Quick', + url: '/crosswords/series/quick', + }, + { + title: 'Sunday quick', + url: '/crosswords/series/sunday-quick', + }, + { + title: 'Mini', + url: '/crosswords/series/mini-crossword', + }, + { + title: 'Quick cryptic', + url: '/crosswords/series/quick-cryptic', + }, + { + title: 'Quiptic', + url: '/crosswords/series/quiptic', + }, + { + title: 'Cryptic', + url: '/crosswords/series/cryptic', + }, + { + title: 'Prize', + url: '/crosswords/series/prize', + }, + { + title: 'Genius', + url: '/crosswords/series/genius', + }, + { + title: 'Weekend', + url: '/crosswords/series/weekend-crossword', + }, + { + title: 'Special', + url: '/crosswords/series/special', + }, + ], + }, + { + title: 'Wordiply', + url: 'https://www.wordiply.com', + }, + { + title: 'Corrections', + url: '/theguardian/series/corrections-and-clarifications', + }, + { + title: 'Tips', + url: 'https://www.theguardian.com/tips', + }, + ], + brandExtensions: [ + { + title: 'Search jobs', + url: 'https://jobs.theguardian.com', + }, + { + title: 'Hire with Guardian Jobs', + url: 'https://recruiters.theguardian.com/?utm_source=gdnwb&utm_medium=navbar&utm_campaign=Guardian_Navbar_Recruiters&CMP_TU=trdmkt&CMP_BUNIT=jobs', + }, + { + title: 'Holidays', + url: 'https://holidays.theguardian.com?INTCMP=holidays_uk_web_newheader', + }, + { + title: 'Live events', + url: 'https://www.theguardian.com/guardian-live-events?INTCMP=live_uk_header_dropdown', + }, + { + title: 'About Us', + url: '/about', + }, + { + title: 'Digital Archive', + url: 'https://theguardian.newspapers.com', + }, + { + title: 'Guardian Print Shop', + url: '/artanddesign/series/gnm-print-sales', + }, + { + title: 'Patrons', + url: 'https://patrons.theguardian.com/?INTCMP=header_patrons', + }, + { + title: 'Guardian Licensing', + url: 'https://licensing.theguardian.com/', + }, + ], + readerRevenueLinks: { + header: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=header_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=header_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=header_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=header_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_supporter_cta%22%7D', + }, + footer: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=footer_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=footer_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=footer_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=footer_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_supporter_cta%22%7D', + }, + sideMenu: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=side_menu_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22side_menu_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=side_menu_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22side_menu_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=side_menu_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22side_menu_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=mobilenav_print_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22mobilenav_print_cta%22%7D', + }, + ampHeader: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=header_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=header_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=amp_header_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22amp_header_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=header_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_supporter_cta%22%7D', + }, + ampFooter: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=amp_footer_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22amp_footer_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=amp_footer_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22amp_footer_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=footer_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=amp_footer_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22amp_footer_supporter_cta%22%7D', + }, + }, + }, + showBottomSocialButtons: true, + pageFooter: { + footerLinks: [ + [ + { + text: 'About us', + url: '/about', + dataLinkName: 'uk : footer : about us', + extraClasses: '', + }, + { + text: 'Help', + url: 'https://manage.theguardian.com/help-centre', + dataLinkName: 'uk : footer : tech feedback', + extraClasses: 'js-tech-feedback-report', + }, + { + text: 'Complaints & corrections', + url: '/info/complaints-and-corrections', + dataLinkName: 'complaints', + extraClasses: '', + }, + { + text: 'Contact us', + url: '/help/contact-us', + dataLinkName: 'uk : footer : contact us', + extraClasses: '', + }, + { + text: 'Tip us off', + url: 'https://www.theguardian.com/tips', + dataLinkName: 'uk : footer : tips', + extraClasses: '', + }, + { + text: 'SecureDrop', + url: 'https://www.theguardian.com/securedrop', + dataLinkName: 'securedrop', + extraClasses: '', + }, + { + text: 'Privacy policy', + url: '/info/privacy', + dataLinkName: 'privacy', + extraClasses: '', + }, + { + text: 'Cookie policy', + url: '/info/cookies', + dataLinkName: 'cookie', + extraClasses: '', + }, + { + text: 'Modern Slavery Act', + url: 'https://uploads.guim.co.uk/2025/09/05/Modern_Slavery_Statement_2025.pdf', + dataLinkName: 'uk : footer : modern slavery act statement', + extraClasses: '', + }, + { + text: 'Tax strategy', + url: 'https://uploads.guim.co.uk/2025/09/05/Tax_strategy_for_the_year_ended_31_March_2025.pdf', + dataLinkName: 'uk : footer : tax strategy', + extraClasses: '', + }, + { + text: 'Terms & conditions', + url: '/help/terms-of-service', + dataLinkName: 'terms', + extraClasses: '', + }, + ], + [ + { + text: 'All topics', + url: '/index/subjects/a', + dataLinkName: 'uk : footer : all topics', + extraClasses: '', + }, + { + text: 'All writers', + url: '/index/contributors', + dataLinkName: 'uk : footer : all contributors', + extraClasses: '', + }, + { + text: 'Newsletters', + url: '/email-newsletters?INTCMP=DOTCOM_FOOTER_NEWSLETTER_UK', + dataLinkName: 'uk : footer : newsletters', + extraClasses: '', + }, + { + text: 'Digital newspaper archive', + url: 'https://theguardian.newspapers.com', + dataLinkName: 'digital newspaper archive', + extraClasses: '', + }, + { + text: 'Bluesky', + url: 'https://bsky.app/profile/theguardian.com', + dataLinkName: 'uk : footer : Bluesky', + extraClasses: '', + }, + { + text: 'Facebook', + url: 'https://www.facebook.com/theguardian', + dataLinkName: 'uk : footer : Facebook', + extraClasses: '', + }, + { + text: 'Instagram', + url: 'https://www.instagram.com/guardian', + dataLinkName: 'uk : footer : Instagram', + extraClasses: '', + }, + { + text: 'LinkedIn', + url: 'https://www.linkedin.com/company/theguardian', + dataLinkName: 'uk : footer : LinkedIn', + extraClasses: '', + }, + { + text: 'Threads', + url: 'https://www.threads.com/@guardian', + dataLinkName: 'uk : footer : Threads', + extraClasses: '', + }, + { + text: 'TikTok', + url: 'https://www.tiktok.com/@guardian', + dataLinkName: 'uk : footer : TikTok', + extraClasses: '', + }, + { + text: 'YouTube', + url: 'https://www.youtube.com/user/TheGuardian', + dataLinkName: 'uk : footer : YouTube', + extraClasses: '', + }, + ], + [ + { + text: 'Advertise with us', + url: 'https://advertising.theguardian.com', + dataLinkName: 'uk : footer : advertise with us', + extraClasses: '', + }, + { + text: 'Guardian Labs', + url: '/guardian-labs', + dataLinkName: 'uk : footer : guardian labs', + extraClasses: '', + }, + { + text: 'Search jobs', + url: 'https://jobs.theguardian.com', + dataLinkName: 'uk : footer : jobs', + extraClasses: '', + }, + { + text: 'Patrons', + url: 'https://patrons.theguardian.com?INTCMP=footer_patrons', + dataLinkName: 'uk : footer : patrons', + extraClasses: '', + }, + { + text: 'Work with us', + url: 'https://workwithus.theguardian.com/', + dataLinkName: 'uk : footer : work with us', + extraClasses: '', + }, + { + text: 'Accessibility settings', + url: '/help/accessibility-help', + dataLinkName: 'accessibility settings', + extraClasses: '', + }, + ], + ], + }, + publication: 'theguardian.com', + shouldHideReaderRevenue: false, + slotMachineFlags: '', + contributionsServiceUrl: 'https://contributions.guardianapis.com', + isSpecialReport: false, + promotedNewsletter: { + identityName: 'the-filter', + name: 'The Filter', + theme: 'lifestyle', + description: + 'Get the best shopping advice from the Filter team straight to your inbox. The Guardian’s journalism is independent. We will earn a commission if you buy something through an affiliate link.', + frequency: 'Weekly', + listId: 6050, + group: 'Lifestyle', + successDescription: 'We’ll send you the Filter every Sunday', + regionFocus: 'UK', + illustrationCard: + 'https://uploads.guim.co.uk/2024/10/04/The_Filter_-_5-3.jpg', + illustrationSquare: + 'https://media.guim.co.uk/c8a44e1d3ffcbf49017e464b41e9c7b31139e713/926_0_379_379/379.jpg', + exampleUrl: '/thefilter/series/the-filter-newsletter/latest', + category: 'article-based', + }, + showTableOfContents: false, + lang: 'en', + isRightToLeftLang: false, +}; diff --git a/dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductStandard.ts b/dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductStandard.ts new file mode 100644 index 00000000000..ef430dbd8a9 --- /dev/null +++ b/dotcom-rendering/fixtures/generated/fe-articles/AffiliateProductStandard.ts @@ -0,0 +1,4124 @@ +/** + * DO NOT EDIT THIS FILE! + * + * This file was automatically generated using the gen-fixtures.js script. Any edits + * you make here will be lost. + * + * If the data in these fixtures is not what you expect then + * + * 1. Refresh the data using 'make gen-fixtures' or + * 2. if the latest live data is not what you need, then consider editing + * gen-fixtures.js directly. + */ + +import type { FEArticle } from '../../../src/frontend/feArticle'; + +export const AffiliateProductStandard: FEArticle = { + version: 3, + headline: + 'The Anyday glass food containers transformed how I store leftovers', + standfirst: + '

Don’t let leftovers languish in the fridge. These oven, microwave and freezer-safe glass containers from Anyday helped me waste less food – and do fewer dishes

\n', + webTitle: + 'Less waste and fewer dishes: these glass food containers changed how I store leftovers', + affiliateLinksDisclaimer: 'true', + mainMediaElements: [ + { + displayCredit: true, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '5:4', + height: '800', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/1000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '5:4', + height: '400', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/500.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '5:4', + height: '112', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/140.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '5:4', + height: '1382', + width: '1728', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/1728.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '5:4', + isMaster: 'true', + height: '1382', + width: '1728', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg', + }, + ], + }, + elementId: 'b6f5c26c-534a-477f-91b6-1d5868ab740a', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=620&quality=85&auto=format&fit=max&s=ae7349e98597c75dd6be5887fabe0be5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=2a5fc93827a828b8b16efde2a0399956', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=700&quality=85&auto=format&fit=max&s=a08ff735cc8eaf8dd3f660a745b3e5ea', + width: 700, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=e0fd509035e3ef636da27abdb1e3c090', + width: 1400, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=620&quality=85&auto=format&fit=max&s=ae7349e98597c75dd6be5887fabe0be5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=2a5fc93827a828b8b16efde2a0399956', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=645&quality=85&auto=format&fit=max&s=6e9572bb560f8f3d24fbd307765932ee', + width: 645, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=645&quality=45&auto=format&fit=max&dpr=2&s=f41374d104978e5b53e28064d262af01', + width: 1290, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=465&quality=85&auto=format&fit=max&s=04c3e6ed7a8eb65acbb4427aba95a36e', + width: 465, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=465&quality=45&auto=format&fit=max&dpr=2&s=a83822e43cb8b2e5138c64d9b703667b', + width: 930, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [], + }, + { + weighting: 'supporting', + srcSet: [], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1020&quality=85&auto=format&fit=max&s=c27794240a8c0239aae5bf8adbb33dee', + width: 1020, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1020&quality=45&auto=format&fit=max&dpr=2&s=8791207f69f257c6af240f67095194dd', + width: 2040, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=940&quality=85&auto=format&fit=max&s=5bd9008b974758c359ee18b628da45c6', + width: 940, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=940&quality=45&auto=format&fit=max&dpr=2&s=d59556f68f0d22783635ecb5b5ca19af', + width: 1880, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=700&quality=85&auto=format&fit=max&s=a08ff735cc8eaf8dd3f660a745b3e5ea', + width: 700, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=e0fd509035e3ef636da27abdb1e3c090', + width: 1400, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=700&quality=85&auto=format&fit=max&s=a08ff735cc8eaf8dd3f660a745b3e5ea', + width: 700, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=700&quality=45&auto=format&fit=max&dpr=2&s=e0fd509035e3ef636da27abdb1e3c090', + width: 1400, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=660&quality=85&auto=format&fit=max&s=aa8664c687af48eb4315aa7178de067e', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=d248dbebd46826663fcd653860f615f2', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=645&quality=85&auto=format&fit=max&s=6e9572bb560f8f3d24fbd307765932ee', + width: 645, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=645&quality=45&auto=format&fit=max&dpr=2&s=f41374d104978e5b53e28064d262af01', + width: 1290, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=465&quality=85&auto=format&fit=max&s=04c3e6ed7a8eb65acbb4427aba95a36e', + width: 465, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=465&quality=45&auto=format&fit=max&dpr=2&s=a83822e43cb8b2e5138c64d9b703667b', + width: 930, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1900&quality=85&auto=format&fit=max&s=db58533a60c1446000a3d0d889e0512d', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=0e1930130117515b4a29bcf1a42764d2', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1300&quality=85&auto=format&fit=max&s=94eddf888c99942ba3c367663f45e81d', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=41125552ebbb4c30176627960e114cb3', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1140&quality=85&auto=format&fit=max&s=db421b10324267b4d5d830c58aef1488', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=b5b7cc0153063f623e13f39c4b81b5b8', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=980&quality=85&auto=format&fit=max&s=262ac49ecf7dec2d7e8d63c4ece04b44', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=2435f2779b29897db57274cc870d4e18', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=740&quality=85&auto=format&fit=max&s=4cfc8160b48f84b7b06edd1d0ff284f5', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=cc8c2f35c230cff765b140b55f3212ba', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=660&quality=85&auto=format&fit=max&s=aa8664c687af48eb4315aa7178de067e', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=d248dbebd46826663fcd653860f615f2', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=480&quality=85&auto=format&fit=max&s=b8dc516a0f27f23162be748fe35af966', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=1a4b5ea7e598d9ab2b399408a255a48d', + width: 960, + }, + ], + }, + ], + data: { + alt: "Anyday's glass storage containers in a refrigerator", + credit: 'Photograph: Courtesy of Anyday', + }, + }, + ], + main: '
Anyday\'s glass storage containers in a refrigerator
', + keyEvents: [], + blocks: [ + { + id: '667d2c5e8f08db81fc3259c7', + elements: [ + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

When I cook for my family, I always pack up leftover food with the best of intentions, and remnants of a weeknight meal generally get eaten within a day or two. Large spreads, however, are a different story.

', + elementId: '7afd6c4d-71bc-4567-a7a4-b515e013459c', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

In the past, I would stuff what was left from a large dinner or party into the biggest air-tight containers they required, then cram them all into my fridge, full-well believing my kids and I would live off of those leftovers for the better part of a week.

', + elementId: '5a402107-3623-4a29-9b14-4c7ea3eb5155', + }, + { + _type: 'model.dotcomrendering.pageElements.RichLinkBlockElement', + prefix: 'Related: ', + text: 'The five best induction cookware sets in the US, thoroughly tested and cooked in ', + elementId: 'fa05ecf9-92bd-478e-a0ea-02b5c389d6cf', + role: 'thumbnail', + url: 'https://www.theguardian.com/thefilter-us/2026/jan/09/best-induction-cookware', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

The reality, of course, is that my kids rarely want to eat back-to-back leftovers. And even I have to admit that previously prepared food is never quite as convenient as it seems when I’m staring down a new pile of dishes I dirtied for reheating and serving. I also cringe when I think about how much food went bad in the back of my refrigerator.

', + elementId: '200e7523-bae4-44ec-bcc3-38a9f865f17b', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

The good news is that there’s a better and far more sustainable way and it only took me twenty years of writing about food and four years of reviewing products (including storage and organization) for Bon Appétit and Epicurious to figure it out: putting leftovers into smaller glass containers. This method has rescued my leftover dishes, no matter how much I end up with.

', + elementId: 'eb2abb55-629e-44f7-8ddc-b7920370b1f7', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

At a glance

', + elementId: '325d25f3-bcb3-4558-8cfe-83ceff2b5e16', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '', + elementId: '45c3cc4b-3811-4939-97ba-74ee31dc5437', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Fcookanyday.com%2Fproducts%2F2-cup-round-dish-multipack&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: '$40 at Anyday', + elementId: 'b8999229-e414-4047-ad38-c16b9cfc6647', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '', + elementId: '73add693-9097-4741-87d4-75e12ca9eaf1', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Fcookanyday.com%2Fproducts%2F12-piece-round-dish-set&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: 'Now $180, originally $225 at Anyday ', + elementId: 'ca367d1b-7561-4c64-9af3-527981ebbd6e', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: 'a47555b1-fcb4-4fa4-a719-1e6df524aa72', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

Why store leftovers in smaller containers?

', + elementId: 'ffda62aa-3904-4775-916c-635f098e38be', + }, + { + displayCredit: true, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + height: '2048', + width: '2048', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/2048.jpg', + }, + { + index: 1, + fields: { + isMaster: 'true', + height: '2048', + width: '2048', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg', + }, + { + index: 2, + fields: { + height: '2000', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/2000.jpg', + }, + { + index: 3, + fields: { + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/1000.jpg', + }, + { + index: 4, + fields: { + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/500.jpg', + }, + { + index: 5, + fields: { + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/140.jpg', + }, + ], + }, + elementId: 'e37cc07f-0684-4624-9b0a-04f60abc3bdc', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=85&auto=format&fit=max&s=67cdbe07a25c4184572c9b5060277af5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=aeb4e3d0eaf0956358e87d39985c7896', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=85&auto=format&fit=max&s=5c7cbc7abe1e94f4669c032537e46ac8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=574cb8e8645c2a99e1a15f356648e7a1', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=85&auto=format&fit=max&s=a13de41823792f4e2849abf64c727de2', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=16e99b731ac36d6345d43a06f6fa65ce', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=140&quality=85&auto=format&fit=max&s=ccb27c3c68f54b856d074acbe0999bf0', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=ef2be56ea985d1dce76924de4ffff1ef', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=120&quality=85&auto=format&fit=max&s=f14795810724f2a758ba34622fe1566a', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=5dac311ffe87f890a54e6a1b7bbcb7ce', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=380&quality=85&auto=format&fit=max&s=743141aead31808fff684973bfaef991', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=c0c992c2738b6033dd52a10da7c40efc', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=300&quality=85&auto=format&fit=max&s=ef07f790c94ce9ff1d6385b988b0278a', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=3650878c59b8c0812ecc895290feab5c', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=85&auto=format&fit=max&s=67cdbe07a25c4184572c9b5060277af5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=aeb4e3d0eaf0956358e87d39985c7896', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=85&auto=format&fit=max&s=5c7cbc7abe1e94f4669c032537e46ac8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=574cb8e8645c2a99e1a15f356648e7a1', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=85&auto=format&fit=max&s=a13de41823792f4e2849abf64c727de2', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=16e99b731ac36d6345d43a06f6fa65ce', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=860&quality=85&auto=format&fit=max&s=db1af69098398e29e80cfbdd0d273f74', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=112c4887d4dcedc6b524d4ed26bf8846', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=780&quality=85&auto=format&fit=max&s=fc4e5c4dd2a1b38460888f44125ff50d', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=892e5a2773db3d8f5dcc8b4114a10eb8', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=85&auto=format&fit=max&s=67cdbe07a25c4184572c9b5060277af5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=aeb4e3d0eaf0956358e87d39985c7896', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=85&auto=format&fit=max&s=5c7cbc7abe1e94f4669c032537e46ac8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=574cb8e8645c2a99e1a15f356648e7a1', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=85&auto=format&fit=max&s=a13de41823792f4e2849abf64c727de2', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=16e99b731ac36d6345d43a06f6fa65ce', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=85&auto=format&fit=max&s=67cdbe07a25c4184572c9b5060277af5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=aeb4e3d0eaf0956358e87d39985c7896', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=85&auto=format&fit=max&s=5c7cbc7abe1e94f4669c032537e46ac8', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=574cb8e8645c2a99e1a15f356648e7a1', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=85&auto=format&fit=max&s=a13de41823792f4e2849abf64c727de2', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=16e99b731ac36d6345d43a06f6fa65ce', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=1900&quality=85&auto=format&fit=max&s=b27224cbe49ad2da23ee114b9d0fabe0', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=8346f8268ac27b2d55568f155dfc4202', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=1300&quality=85&auto=format&fit=max&s=9297d80c8bd52dc8600619b044c6c833', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=d5ac7c0b9078c3c1a5dbd392d026e1b5', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=1140&quality=85&auto=format&fit=max&s=40a81a5b6bcf70364b7c00a3c175e982', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=ca4c56686d2f7d0363d9e004a977a658', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=980&quality=85&auto=format&fit=max&s=b2467be4a88ce4598b7b7bea68ec0ad7', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=2eec08ca27570fd2dff54b52876e5ca4', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=740&quality=85&auto=format&fit=max&s=21a1e08fb3fea51abb39042bcbf89fb4', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=b58be0be5e18fc9196735619e63a87be', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=660&quality=85&auto=format&fit=max&s=d556e5a2f8229b6b257fc400ae9a5cf5', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=1ef839d8768b1bfd2600e766b8ba9e17', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=480&quality=85&auto=format&fit=max&s=bfc3b4aa47f64ce8eb0f605aa314aa98', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/fc76fe0883c776faa45b6473e0c21403ba04afa3/0_0_2048_2048/master/2048.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=73dd8dadf3e3f3b7a8b7b9414bdb7564', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Stasher Stretch Lids Large 3-Pack', + credit: 'Photograph: Courtesy of Stasher', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

While food storage containers come in all shapes and sizes, I find a stackable two-cup size the best format for a few reasons. For starters, it’s easier to make room in the fridge for a handful of smaller containers than a big baking dish or bowl. Dividing loads of leftovers between smaller containers has also helped me cut way back on food waste, because whatever doesn’t get consumed within a day or two can go straight into the freezer.

', + elementId: 'fb8820c9-5e3d-4076-a859-fc83bfce1b10', + }, + { + displayCredit: true, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'supporting', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '1763', + width: '1763', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/1763.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '1763', + width: '1763', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/1000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/500.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/140.jpg', + }, + ], + }, + elementId: '92620a45-26a8-4f5e-859d-cb3c2ce9c146', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=85&auto=format&fit=max&s=08f098667279c25eedb6c5568118f782', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=362e640ff00087bff212e82d95df3e50', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=85&auto=format&fit=max&s=ea65ea75059f6a28cd3e5937c75df05e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=531f5a1eec8744289f1e07430228bbab', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=85&auto=format&fit=max&s=d29660cd8f76ff90953eafe6319fc9eb', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=58ac4952dcaf6b1fd428ecc674d5def9', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=140&quality=85&auto=format&fit=max&s=4778def0e26247cc008e85c32c72e543', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=b01cc4aba877839f4737398233c8521d', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=120&quality=85&auto=format&fit=max&s=2f53bd3aabb152a334c03de126e9ff9d', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=cc85f311bf95f8d8db0d064ca43f1ae9', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=380&quality=85&auto=format&fit=max&s=31c856d3519efc3d8e38cc4489ff763f', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=9575cdd153ac9bf8a9cd245cb6ac0916', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=300&quality=85&auto=format&fit=max&s=f8c03071d43d2ec941ca163d4d4fa165', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=991203159f9d5811a0737aa66d3472de', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=85&auto=format&fit=max&s=08f098667279c25eedb6c5568118f782', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=362e640ff00087bff212e82d95df3e50', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=85&auto=format&fit=max&s=ea65ea75059f6a28cd3e5937c75df05e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=531f5a1eec8744289f1e07430228bbab', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=85&auto=format&fit=max&s=d29660cd8f76ff90953eafe6319fc9eb', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=58ac4952dcaf6b1fd428ecc674d5def9', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=860&quality=85&auto=format&fit=max&s=86fcce284b7b6e6d489702ab3b0c2463', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=3b8caeee596da43de9881a61bd207d4d', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=780&quality=85&auto=format&fit=max&s=689ea47f5c6d72b54d320d626cd88765', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=7de06dd4baca7e851bbe114b876c8b17', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=85&auto=format&fit=max&s=08f098667279c25eedb6c5568118f782', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=362e640ff00087bff212e82d95df3e50', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=85&auto=format&fit=max&s=ea65ea75059f6a28cd3e5937c75df05e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=531f5a1eec8744289f1e07430228bbab', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=85&auto=format&fit=max&s=d29660cd8f76ff90953eafe6319fc9eb', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=58ac4952dcaf6b1fd428ecc674d5def9', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=85&auto=format&fit=max&s=08f098667279c25eedb6c5568118f782', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=362e640ff00087bff212e82d95df3e50', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=85&auto=format&fit=max&s=ea65ea75059f6a28cd3e5937c75df05e', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=531f5a1eec8744289f1e07430228bbab', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=85&auto=format&fit=max&s=d29660cd8f76ff90953eafe6319fc9eb', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=58ac4952dcaf6b1fd428ecc674d5def9', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=1900&quality=85&auto=format&fit=max&s=854a1db1cfeb3cf0b26986b2ebe3efcf', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=8322007ec5cf1edb6255cf177af2d51f', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=1300&quality=85&auto=format&fit=max&s=64f12c47b7d296670d7b7f99b174df0e', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=e889223d677f577d18f135ab47296879', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=1140&quality=85&auto=format&fit=max&s=21daaa20599a8a2303826532aaf035b2', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=1dcec2f9184db03ef8b9d6abaa988d02', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=980&quality=85&auto=format&fit=max&s=a0c0bf2423dd6d4a8f98f2d8d35d0a9a', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=b7ae67e4e11dba6ab1b753ea82e72ea8', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=740&quality=85&auto=format&fit=max&s=efbb403671fd3f7d3ccf0e6934de7fbe', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=17daefc01f3a594f86436a5490843826', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=660&quality=85&auto=format&fit=max&s=8076c62eea721fbb29d7fca47782bd38', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=b8a1cc1663a554bae79e54f98ab9f43f', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=480&quality=85&auto=format&fit=max&s=b4abbfc2c78f099ccf649b4de59e6749', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/34b3dd05ff9b06c4cd81d1da7f93266234aa582c/131_218_1763_1763/master/1763.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=593967d94c0b6f44ca5fc889418e9cd5', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Stasher Stretch Lids Large 3-Pack', + credit: 'Photograph: Courtesy of Stasher', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

An added bonus? Fewer dirty dishes, because instead of hauling a loosely-covered casserole pan from the fridge and transferring some of its contents to a heat-safe bowl, I can pull a perfectly-portioned serving and pop it right into the microwave or oven. (More on the best microwave-safe and oven-safe storage containers below.) This works whether I’m reheating a side of asparagus for the family or a one-dish dinner of meat, potatoes and broccoli for myself. (And if divvying up leftovers must wait until the morning, you can still create an airtight seal on your serving dishes with a stretchy silicone lid.)

', + elementId: 'ef559d9b-5856-4400-a7aa-cb4e91c12ab7', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Stasher Stretch Lids Large 3-Pack

', + elementId: '6f53354c-08e7-4399-8752-7e7a829db9c0', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Famazon.com%2Fdp%2FB0DXNJYQJ5&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: '$13.59 at Amazon', + elementId: '64be53d1-de18-4f2c-b133-5e7f2471bc75', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Fwww.stasherbag.com%2Fcollections%2Flids%2Fproducts%2Fstretch-lids-large-3-pack&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: '$19.99 at Stasher', + elementId: 'edb48deb-7ee8-4f83-999e-5f178ed6a174', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '8eb27d6d-0312-43ff-b26e-282805dbb29a', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

What’s the best and safest material for food storage containers?

', + elementId: '73034151-7b8c-4ddb-b87c-436b812701cf', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Thick, heat-tolerant glass is, by far, the best and most versatile material for storing food because it’s safe to use in the fridge, freezer, microwave, oven and dishwasher.

', + elementId: '4a93f26c-ef0a-48ed-b534-f3f005f6e37f', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Unlike plastic, you never have to worry about tomato sauce stains or leeching chemicals, and as long as you don’t drop it (or thermal shock it with a sudden and drastic change of temperature) it will theoretically last forever. The only problem is that most – including the Pyrex system I used for more than a decade – will outlive their flimsy plastic lids.

', + elementId: 'ba5fb4b5-7b72-4aa8-b588-190fe71814ca', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: 'd3f9da9d-1c7a-46ac-bec3-701755e12866', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

What’s the best food storage container for leftovers?

', + elementId: 'bdb893c0-e690-4ac7-96aa-8d7232897589', + }, + { + displayCredit: true, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + height: '1425', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/2000.jpg', + }, + { + index: 1, + fields: { + height: '1425', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/2000.jpg', + }, + { + index: 2, + fields: { + isMaster: 'true', + height: '1425', + width: '2000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg', + }, + { + index: 3, + fields: { + height: '713', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/1000.jpg', + }, + { + index: 4, + fields: { + height: '356', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/500.jpg', + }, + { + index: 5, + fields: { + height: '100', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/140.jpg', + }, + ], + }, + elementId: 'c2978334-6c61-4230-9684-f912aac4e8a9', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=85&auto=format&fit=max&s=6df1a049fdd6d2e6a076a5d39b1ea154', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=84c92d7005a23ab47826ff7db5b880d5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=85&auto=format&fit=max&s=fb6809af72687303ae94c828568ecbd7', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=aef7574a117c3be84907d281cd6a840e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=85&auto=format&fit=max&s=2b182464d9acf172d15a3bf6076bce31', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=fb11dd5321063fb0a1ae51fa4ea1e649', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=140&quality=85&auto=format&fit=max&s=95db7456d0bc278250dd3df36e8058ae', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=b859495f39d2e73369cb484ecc40ebca', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=120&quality=85&auto=format&fit=max&s=8030213bf4b6cb343aa86f1b43fccd06', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=e6b2bcbd703d4d1ca3394006428c6076', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=380&quality=85&auto=format&fit=max&s=739976350d9de92d64d3728a6efa5cfc', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=9d4212ac34dc79ac5cf08d3416403e32', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=300&quality=85&auto=format&fit=max&s=24b0b86f61f516dfeaa74942386fa746', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=544aaf5dbc6a22f9a7cb159d4fbdce41', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=85&auto=format&fit=max&s=6df1a049fdd6d2e6a076a5d39b1ea154', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=84c92d7005a23ab47826ff7db5b880d5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=85&auto=format&fit=max&s=fb6809af72687303ae94c828568ecbd7', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=aef7574a117c3be84907d281cd6a840e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=85&auto=format&fit=max&s=2b182464d9acf172d15a3bf6076bce31', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=fb11dd5321063fb0a1ae51fa4ea1e649', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=860&quality=85&auto=format&fit=max&s=3c4ee713044fd6701a3f65de89eb0ef1', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=b865307d8ea2a8645ec667cb418f2cde', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=780&quality=85&auto=format&fit=max&s=6d0b1ec230e5d74a58d3ec0651c09a67', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=d5c7489ac8db0d2cc622f08cf5cb2c51', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=85&auto=format&fit=max&s=6df1a049fdd6d2e6a076a5d39b1ea154', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=84c92d7005a23ab47826ff7db5b880d5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=85&auto=format&fit=max&s=fb6809af72687303ae94c828568ecbd7', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=aef7574a117c3be84907d281cd6a840e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=85&auto=format&fit=max&s=2b182464d9acf172d15a3bf6076bce31', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=fb11dd5321063fb0a1ae51fa4ea1e649', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=85&auto=format&fit=max&s=6df1a049fdd6d2e6a076a5d39b1ea154', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=84c92d7005a23ab47826ff7db5b880d5', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=85&auto=format&fit=max&s=fb6809af72687303ae94c828568ecbd7', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=aef7574a117c3be84907d281cd6a840e', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=85&auto=format&fit=max&s=2b182464d9acf172d15a3bf6076bce31', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=fb11dd5321063fb0a1ae51fa4ea1e649', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=1900&quality=85&auto=format&fit=max&s=917a0acf48d1d244a624d67055ac3a3b', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=b94aa93de8f7ffc6d1d048ba296c06cc', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=1300&quality=85&auto=format&fit=max&s=23dba5e969337e5ab0d689a8ad764010', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=9448754ba039e5ec7167906d9bf1c9a4', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=1140&quality=85&auto=format&fit=max&s=26ba050704196d37475fb0f2c5408d9b', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=1bce9018844a4a38403132d441c0361b', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=980&quality=85&auto=format&fit=max&s=f5695e002a3e0a5e2102a36ed954ac7b', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=a9e1a95e24799b31cca250a969a8df4c', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=740&quality=85&auto=format&fit=max&s=431fce3c801c2a93ae200f80761cabf2', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=050fa2bcea7cefa7ef36becbf420394a', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=660&quality=85&auto=format&fit=max&s=4b00e0e9eebce0289b7a2a69144e6774', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=dc7f7b487597dc8176b32402777afb3d', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=480&quality=85&auto=format&fit=max&s=e09f7aaed91e8ac7540cd2db2892a063', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/19e1aa42251360d15f8bafe044e2dbea120d2ad8/0_556_2000_1425/master/2000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=d192c06b93b0640b503b9df126633914', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Anyday 2-Cup Glass Round Dish Multipack', + credit: 'Photograph: Courtesy of Williams Sonoma', + }, + }, + { + displayCredit: true, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'supporting', + media: { + allImages: [ + { + index: 0, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/1000.jpg', + }, + { + index: 1, + fields: { + aspectRatio: '1:1', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/1000.jpg', + }, + { + index: 2, + fields: { + aspectRatio: '1:1', + isMaster: 'true', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg', + }, + { + index: 3, + fields: { + aspectRatio: '1:1', + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/500.jpg', + }, + { + index: 4, + fields: { + aspectRatio: '1:1', + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/140.jpg', + }, + ], + }, + elementId: '8d4f1805-eaae-4474-88f5-afde5082dfe6', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=386a4a2c2d846b1241666d785c73efe5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=2147a4d651bf1fc6cd79884b147d186f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=4cf287ff4a1ef389241022dff8731135', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=af23500651bef67b999caf94ccbe4a70', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=524ca7800fd8054d6276bdfac334f707', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=43249eedf6baa7b84f50a9589a177f38', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=140&quality=85&auto=format&fit=max&s=6cc9a8d8380b07c6ab0a5917f6b9ea0c', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=0ff9f60cab3fa2c9c9394f66ac53a867', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=120&quality=85&auto=format&fit=max&s=c0097f1fb22ce34a9b07ef61d8b32986', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=0d1008c4333b43c6427ea0e143cb0a94', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=380&quality=85&auto=format&fit=max&s=9f37149d6f0d61c2d14de5edea6f8dfa', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=e93c850757599b5f303d13dece083d6f', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=300&quality=85&auto=format&fit=max&s=cfe9bdd5530327e762e68ed4543f9d25', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=ad8cb3dc7eac79973ac4dfad666c4ab8', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=386a4a2c2d846b1241666d785c73efe5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=2147a4d651bf1fc6cd79884b147d186f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=4cf287ff4a1ef389241022dff8731135', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=af23500651bef67b999caf94ccbe4a70', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=524ca7800fd8054d6276bdfac334f707', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=43249eedf6baa7b84f50a9589a177f38', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=860&quality=85&auto=format&fit=max&s=ba5cb1a91d270571a5aaa0dfd1fe5669', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=f343e5387d63f7cece06cde1ced0c8d3', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=780&quality=85&auto=format&fit=max&s=956246cd3b2e2c56332f3089e3190917', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=f244dbbd3a1be958da4398a5d4253bca', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=386a4a2c2d846b1241666d785c73efe5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=2147a4d651bf1fc6cd79884b147d186f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=4cf287ff4a1ef389241022dff8731135', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=af23500651bef67b999caf94ccbe4a70', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=524ca7800fd8054d6276bdfac334f707', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=43249eedf6baa7b84f50a9589a177f38', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=386a4a2c2d846b1241666d785c73efe5', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=2147a4d651bf1fc6cd79884b147d186f', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=4cf287ff4a1ef389241022dff8731135', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=af23500651bef67b999caf94ccbe4a70', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=524ca7800fd8054d6276bdfac334f707', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=43249eedf6baa7b84f50a9589a177f38', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=1900&quality=85&auto=format&fit=max&s=8bf5f5764cb6baa75356ee8475d2f0fc', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=ad2531a6963a80339ef0979579432231', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=1300&quality=85&auto=format&fit=max&s=c6869a730a8c3bc4135466fc56039fa3', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=21819c5581e323cfa2011a06a3f285d6', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=1140&quality=85&auto=format&fit=max&s=eb0ae9d604c3c01709c2089e4f8594f0', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=f6443b4b8977e00c852030f2a71ee138', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=980&quality=85&auto=format&fit=max&s=5834e398c48744fd47ea9d1bcdac2150', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=fee1da5340dc7595183146305e108e55', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=740&quality=85&auto=format&fit=max&s=e1be7c12a25de5e7ab193074a636ef0f', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=43d58a1c383a93d7a1a3a561f3da2b59', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=660&quality=85&auto=format&fit=max&s=465cce83d5e7f43fa0d7f29f0f4e6925', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=031132310a7474829f2c631465736b39', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=480&quality=85&auto=format&fit=max&s=f4cfaec89c98780e58ae98270115388b', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/908b4903e06f83f05f5316e99a921d900980dc67/0_0_1000_1000/master/1000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=f954cb2312d40693e6a99e45a3105983', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Anyday 2-Cup Glass Round Dish Multipack', + credit: 'Photograph: Courtesy of Williams Sonoma', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Earlier last year, I discovered Anyday’s glass food storage containers, and though they seemed a bit gimmicky at first, I quickly realized they’re a game changer for storing and reheating leftovers. After using them for just a few months, I noticed my family was wasting less food – and I was doing fewer dishes.

', + elementId: '6be04830-4deb-4aa7-a5c0-caaa9c759b55', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Anyday 2-Cup Glass Round Dish Multipack

', + elementId: '7f45ce02-8c99-4384-92a0-f0a7759e5c63', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Fcookanyday.com%2Fproducts%2F2-cup-round-dish-multipack&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: '$40 at Anyday', + elementId: '4284c683-57b5-4ebf-9194-6055faca3fec', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Famazon.com%2Fdp%2FB0F4B5NNJR&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: '$39.99 at Amazon', + elementId: '4cf9f21e-38ed-4f81-8165-0dc4ffbcf48e', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

Anyday’s containers are made of thick, durable glass that you can put in the fridge, freezer, microwave, oven and even the air fryer up to 500F. Then you can pop all of the parts into the dishwasher when you’re done. All of the containers are plastic-free and non-toxic.

', + elementId: '2ec0f5a3-b061-4ba3-95ae-91641c740305', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

But, unlike other popular glass food storage containers, these are marketed as “cookware and food storage”. The glass lids are cleverly designed for cooking and reheating, with a heat-safe silicone knob that doubles as a vent; just pull it up before microwaving or baking for perfectly-steamed food. I love it for reheating rice, soup and even barbecue sandwiches. A silicone gasket around the rim creates an air-tight seal for the fridge and freezer, and it’s leak-proof enough I feel safe packing soup in it for my five-year-old’s school lunch. (So far, so good!)

', + elementId: 'b9909c0d-40f1-4198-a7c5-4b22af3b14b4', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: 'd8d3f94f-7921-4fec-b907-9903eb19795c', + }, + { + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + html: '

Can you really cook in Anyday’s food storage containers?

', + elementId: '78e00f4e-dfbc-4941-8d92-c6784c04c64a', + }, + { + displayCredit: true, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'inline', + media: { + allImages: [ + { + index: 0, + fields: { + height: '819', + width: '1040', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/1040.jpg', + }, + { + index: 1, + fields: { + isMaster: 'true', + height: '819', + width: '1040', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg', + }, + { + index: 2, + fields: { + height: '788', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/1000.jpg', + }, + { + index: 3, + fields: { + height: '394', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/500.jpg', + }, + { + index: 4, + fields: { + height: '110', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/140.jpg', + }, + ], + }, + elementId: '50582aeb-c4ef-4831-b467-64d889657d20', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=85&auto=format&fit=max&s=76b40201f85ae2d8845885ad5f5dcc34', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=cf3ea02013a7fdd9ffc622ab4b451428', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=85&auto=format&fit=max&s=bda2abae151effcc526fd08c4b1b1407', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=b369e5f5b1fb2d28a8a177b3d5c34b84', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=85&auto=format&fit=max&s=95510471dafa3a37c9e031bf8a7812ba', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=9c6978a6d21b61ea4b4be406132fefa6', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=140&quality=85&auto=format&fit=max&s=0b3ca4c38ef659c36e4131f574fb5d3d', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=2b924cc22e8a1f43e01968a4efa06658', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=120&quality=85&auto=format&fit=max&s=33c1e4859271bc90db8d90af39b87b15', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=244c46c5bfbb6c0533b62b2e6bc49ade', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=380&quality=85&auto=format&fit=max&s=345192866b3deddd226cc3081f83667b', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=4779f1747aa63ca91e773cf194e0ea07', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=300&quality=85&auto=format&fit=max&s=0bc060659241ed7090185b193711fce4', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=1d932931d28aa5bdc80ef38640d2a319', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=85&auto=format&fit=max&s=76b40201f85ae2d8845885ad5f5dcc34', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=cf3ea02013a7fdd9ffc622ab4b451428', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=85&auto=format&fit=max&s=bda2abae151effcc526fd08c4b1b1407', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=b369e5f5b1fb2d28a8a177b3d5c34b84', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=85&auto=format&fit=max&s=95510471dafa3a37c9e031bf8a7812ba', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=9c6978a6d21b61ea4b4be406132fefa6', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=860&quality=85&auto=format&fit=max&s=f43ff454635137bc0a4b5e94d9706427', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=c4db7dbf0c67c86d42978132ce95ca90', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=780&quality=85&auto=format&fit=max&s=f53772ad4710d281393beff2d81ed4aa', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=49b632a4cdbfaebccd7effb14a54f9d3', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=85&auto=format&fit=max&s=76b40201f85ae2d8845885ad5f5dcc34', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=cf3ea02013a7fdd9ffc622ab4b451428', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=85&auto=format&fit=max&s=bda2abae151effcc526fd08c4b1b1407', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=b369e5f5b1fb2d28a8a177b3d5c34b84', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=85&auto=format&fit=max&s=95510471dafa3a37c9e031bf8a7812ba', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=9c6978a6d21b61ea4b4be406132fefa6', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=85&auto=format&fit=max&s=76b40201f85ae2d8845885ad5f5dcc34', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=cf3ea02013a7fdd9ffc622ab4b451428', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=85&auto=format&fit=max&s=bda2abae151effcc526fd08c4b1b1407', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=b369e5f5b1fb2d28a8a177b3d5c34b84', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=85&auto=format&fit=max&s=95510471dafa3a37c9e031bf8a7812ba', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=9c6978a6d21b61ea4b4be406132fefa6', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=1900&quality=85&auto=format&fit=max&s=a6ce1320eccb4da2c4a13823abad4740', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=79886e800c56341b3679672f086e9d9d', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=1300&quality=85&auto=format&fit=max&s=c040ea432846f8c77bf230c237ee1186', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=300e41da1f63848a73d14da4c0f0690b', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=1140&quality=85&auto=format&fit=max&s=2c806034cd387d30eeb7f76aa1cd8659', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=32bf8e656b7ece03b338e5594b5a259a', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=980&quality=85&auto=format&fit=max&s=c83879961af668fe47e0aeab21251880', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=d6d231062800b7f9f7ecc2aa320598ce', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=740&quality=85&auto=format&fit=max&s=ec1dc94cde1109f33a98e6d0dcbbda2e', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=9cc3c4e7127aeae2849afcc39312f2f8', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=660&quality=85&auto=format&fit=max&s=c392b161f43e2902f193f3272d6bd584', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=b37f537ab6577e17cd6d96e6973ecf83', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=480&quality=85&auto=format&fit=max&s=9e6602f1b11bd3d52f9d1acc67ffba32', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/856abaa2950f5081be3a09ad2dbb5e793bd60757/0_0_1040_819/master/1040.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=a0f59212921f513caaf6eb6fb327136f', + width: 960, + }, + ], + }, + ], + data: { + alt: 'Anyday 10-Cup Glass Square Shallow Dish', + credit: 'Photograph: Courtesy of Anyday', + }, + }, + { + displayCredit: true, + _type: 'model.dotcomrendering.pageElements.ImageBlockElement', + role: 'supporting', + media: { + allImages: [ + { + index: 0, + fields: { + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/1000.jpg', + }, + { + index: 1, + fields: { + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/1000.jpg', + }, + { + index: 2, + fields: { + isMaster: 'true', + height: '1000', + width: '1000', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg', + }, + { + index: 3, + fields: { + height: '500', + width: '500', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/500.jpg', + }, + { + index: 4, + fields: { + height: '140', + width: '140', + }, + mediaType: 'Image', + mimeType: 'image/jpeg', + url: 'https://media.guim.co.uk/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/140.jpg', + }, + ], + }, + elementId: '49891b7e-3399-42fb-a953-73ee3e3fc0cd', + imageSources: [ + { + weighting: 'inline', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=af92bea362bde44b42831dd731c8d406', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f98f019183102401826baff138e4180a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=d1bae3f383f7b12fa9d5485fd306fff2', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=d64b5a88d552024d031141f29d1717a5', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=64ace11481767394b79c72631cd68c9e', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=48ec08dead03d76db86e14cd6f74ad31', + width: 890, + }, + ], + }, + { + weighting: 'thumbnail', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=140&quality=85&auto=format&fit=max&s=dbc79a9bc2fd595113130c93c3ec44bc', + width: 140, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=140&quality=45&auto=format&fit=max&dpr=2&s=38d5ca3bc9a686a3246ca04030f8231c', + width: 280, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=120&quality=85&auto=format&fit=max&s=802f75bf9a4cef62cc1b8eae3b0b64d0', + width: 120, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=120&quality=45&auto=format&fit=max&dpr=2&s=844bdb36787e28e0ef043cfa8b2ba591', + width: 240, + }, + ], + }, + { + weighting: 'supporting', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=380&quality=85&auto=format&fit=max&s=8e4b8ac4c39b4de15644b9d9088355a4', + width: 380, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=380&quality=45&auto=format&fit=max&dpr=2&s=10eaff147fd92f9f4f40bf33e3b1588f', + width: 760, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=300&quality=85&auto=format&fit=max&s=37e4415984e2ecbdc0836e0fde75e178', + width: 300, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=b663a6c4e206ce6bd9ca9fb944dfa93d', + width: 600, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=af92bea362bde44b42831dd731c8d406', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f98f019183102401826baff138e4180a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=d1bae3f383f7b12fa9d5485fd306fff2', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=d64b5a88d552024d031141f29d1717a5', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=64ace11481767394b79c72631cd68c9e', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=48ec08dead03d76db86e14cd6f74ad31', + width: 890, + }, + ], + }, + { + weighting: 'showcase', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=860&quality=85&auto=format&fit=max&s=afe007fc3f756094c86715a94094761c', + width: 860, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=860&quality=45&auto=format&fit=max&dpr=2&s=4601267d1827f8fa346ea49b282622c0', + width: 1720, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=780&quality=85&auto=format&fit=max&s=4f13ca5bce543e69713d5333f33c2fed', + width: 780, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=780&quality=45&auto=format&fit=max&dpr=2&s=74c8d99ef99bb610320f7c97d2eb9931', + width: 1560, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=af92bea362bde44b42831dd731c8d406', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f98f019183102401826baff138e4180a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=d1bae3f383f7b12fa9d5485fd306fff2', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=d64b5a88d552024d031141f29d1717a5', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=64ace11481767394b79c72631cd68c9e', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=48ec08dead03d76db86e14cd6f74ad31', + width: 890, + }, + ], + }, + { + weighting: 'halfwidth', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=85&auto=format&fit=max&s=af92bea362bde44b42831dd731c8d406', + width: 620, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=f98f019183102401826baff138e4180a', + width: 1240, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=85&auto=format&fit=max&s=d1bae3f383f7b12fa9d5485fd306fff2', + width: 605, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=605&quality=45&auto=format&fit=max&dpr=2&s=d64b5a88d552024d031141f29d1717a5', + width: 1210, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=85&auto=format&fit=max&s=64ace11481767394b79c72631cd68c9e', + width: 445, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=445&quality=45&auto=format&fit=max&dpr=2&s=48ec08dead03d76db86e14cd6f74ad31', + width: 890, + }, + ], + }, + { + weighting: 'immersive', + srcSet: [ + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=1900&quality=85&auto=format&fit=max&s=6a3f3167d597a7f06d40f4b5f28efdc3', + width: 1900, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=1900&quality=45&auto=format&fit=max&dpr=2&s=7040fe499a03d96c523a2128107e5881', + width: 3800, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=1300&quality=85&auto=format&fit=max&s=43fc918c0a6f661f0d450048d4b10cae', + width: 1300, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=1300&quality=45&auto=format&fit=max&dpr=2&s=0da3f82a50f2ad4e483e525a44a49bed', + width: 2600, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=1140&quality=85&auto=format&fit=max&s=51a052c290613b0aab2ade094b2f2dea', + width: 1140, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=1140&quality=45&auto=format&fit=max&dpr=2&s=c04b38192c9be2275cbcbacede378a9d', + width: 2280, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=980&quality=85&auto=format&fit=max&s=b1d81a3aee0e325a7a1a183808405290', + width: 980, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=980&quality=45&auto=format&fit=max&dpr=2&s=7b19473a1d9c5684914af172e157a498', + width: 1960, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=740&quality=85&auto=format&fit=max&s=ce1e62a55b851d5dbf0528393584d585', + width: 740, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=740&quality=45&auto=format&fit=max&dpr=2&s=fd29b8d11d6dbdbba7d2776536d38e18', + width: 1480, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=660&quality=85&auto=format&fit=max&s=d630a0a6df9f0599f945ae139fe0cc54', + width: 660, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=660&quality=45&auto=format&fit=max&dpr=2&s=8feebc9d7b4c9335304296b7b2c1ea95', + width: 1320, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=480&quality=85&auto=format&fit=max&s=2eefda977d9e13cf5106d13894add921', + width: 480, + }, + { + src: 'https://i.guim.co.uk/img/media/3dfae38b75aa6c74b1a15fc5f6817d8aa40775f8/0_0_1000_1000/master/1000.jpg?width=480&quality=45&auto=format&fit=max&dpr=2&s=8e44a5bcdb6827d628b11d1d0599ac43', + width: 960, + }, + ], + }, + ], + data: { + alt: '10-Cup Glass Square Shallow Dish', + credit: 'Photograph: Courtesy of Anyday', + }, + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

While I mostly use Anyday’s containers for storing and reheating leftovers, they’re great for quick steam cooking (using the clip-on strainer) as well as more efficient meal prep. In addition to being a plastic-free alternative for anything that’s supposed to be microwaved in the bag (think: shelf-stable rice and frozen foods), you can use them to cook fresh veggies, potatoes, rice, fish and more from start to finish. (Yes, you can cook fish in the microwave!) Lids on some of the larger pieces, like the 10-cup square shallow dish, are reinforced with a microwave-safe stainless steel rim for extra durability.

', + elementId: '5eeaa447-b2ac-4697-870b-74d498f30e44', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

10-Cup Glass Square Shallow Dish

', + elementId: 'fc0496ea-85c8-40b5-b03d-165c22628d71', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Fcookanyday.com%2Fcollections%2Fshallow-dishes%2Fproducts%2F10-cup-square-shallow-dish&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: '$55 at Anyday', + elementId: '3dd8a304-d12c-4015-9bc4-651a798cff29', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.LinkBlockElement', + priority: 'Primary', + url: 'https://go.skimresources.com/?id=114047X1771840&url=https%3A%2F%2Famazon.com%2Fdp%2FB0F3P81XVY&sref=https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers.json?dcr', + label: '$54.99 at Amazon', + elementId: '09cdf5bf-8e5c-44df-83d7-09e6447f1092', + linkType: 'ProductButton', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

I certainly wouldn’t want to microwave all of my meals, but the glass containers can be used in the oven to bake and roast anything you’d make in a traditional glass baking dish. So minimalists and cooks short on kitchen space, you can rejoice: an Anyday food storage set could be a great way to consolidate your food storage and cookware for your future meals.

', + elementId: '0599360f-bdc5-4d0d-bdb7-623de1de8711', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: 'aa79c7fc-bcad-45b5-b1bf-ada22a60dc27', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

The Filter US is your guide to buying fewer, better things - including those with less plastic. More kitchen stories you might enjoy:

', + elementId: '79629acb-ec6a-4bde-8f79-11ab795f4c81', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '', + elementId: '7b7a318e-94d9-4854-9cf6-db334110b240', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '

***

', + elementId: '6dbcb2c2-d22c-472a-8b44-d065423fd287', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '
    \n
  • \n

    Emily Farris has been writing about food and lifestyle for nearly 20 years. She was formerly senior commerce writer at Bon Appétit and Epicurious, where she rigorously tested cooking gear. She is the author of the personal essay collection I’ll Just Be Five More Minutes: And Other Tales from My ADHD Brain (Hachette Books, 2024).

  • \n
', + elementId: 'f9fd55f5-b2ce-4a1e-a608-49086e5b2fdd', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '
    \n
  • \n

    This story was updated in March 2026 for accurate prices and product information.

  • \n
', + elementId: 'fb920ca1-3d76-4447-b02b-ed8428e126c4', + }, + { + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + html: '
    \n
  • \n

    The Filter US recommends safe, sustainable and plastic-free products that are better for you and the environment. Have a recommendation – or disagree with our review? Email thefilter.us@theguardian.com

  • \n
', + elementId: '33da6662-a371-4b35-9863-debeba7ca4ea', + }, + ], + attributes: { + pinned: false, + keyEvent: false, + summary: false, + }, + blockCreatedOn: 1766675742000, + blockCreatedOnDisplay: '15.15 GMT', + blockLastUpdated: 1777651332000, + blockLastUpdatedDisplay: '17.02 BST', + blockFirstPublished: 1771531225000, + blockFirstPublishedDisplay: '20.00 GMT', + blockFirstPublishedDisplayNoTimezone: '20.00', + contributors: [], + primaryDateLine: 'Fri 3 Apr 2026 13.45 BST', + secondaryDateLine: 'First published on Thu 25 Dec 2025 15.15 GMT', + }, + ], + author: { + byline: 'Emily Farris', + }, + byline: 'Emily Farris', + webPublicationDate: '2026-04-03T12:45:31.000Z', + webPublicationDateDeprecated: '2026-04-03T12:45:31.000Z', + webPublicationDateDisplay: 'Fri 3 Apr 2026 13.45 BST', + webPublicationSecondaryDateDisplay: + 'First published on Thu 25 Dec 2025 15.15 GMT', + editionLongForm: 'UK edition', + editionId: 'UK', + pageId: 'thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + canonicalUrl: + 'https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + format: { + design: 'ReviewDesign', + theme: 'LifestylePillar', + display: 'StandardDisplay', + }, + designType: 'Review', + tags: [ + { + id: 'thefilter-us/series/thefilter-us', + type: 'Series', + title: 'The Filter US', + }, + { + id: 'lifeandstyle/lifeandstyle', + type: 'Keyword', + title: 'Life and style', + }, + { + id: 'campaign/email/the-filter-us', + type: 'Campaign', + title: 'The Filter US (newsletter signup)', + }, + { + id: 'food/series/kitchen-aide', + type: 'Series', + title: 'Kitchen aide', + }, + { + id: 'thefilter-us/series/plastic-free-life', + type: 'Series', + title: 'Plastic-free life', + }, + { + id: 'tone/features', + type: 'Tone', + title: 'Features', + }, + { + id: 'type/article', + type: 'Type', + title: 'Article', + }, + { + id: 'tone/best-ofs', + type: 'Tone', + title: 'Best of', + }, + { + id: 'tone/reviews', + type: 'Tone', + title: 'Reviews', + }, + { + id: 'profile/emily-farris', + type: 'Contributor', + title: 'Emily Farris', + }, + { + id: 'tracking/commissioningdesk/filter-us', + type: 'Tracking', + title: 'The Filter US', + }, + { + id: 'tracking/commissioningdesk/product-review', + type: 'Tracking', + title: 'Product review', + }, + { + id: 'tracking/commissioningdesk/us-filter-product-reviews', + type: 'Tracking', + title: 'US Filter product reviews', + }, + ], + pillar: 'lifestyle', + isLegacyInteractive: false, + isImmersive: false, + sectionLabel: 'Life and style', + sectionUrl: 'lifeandstyle/lifeandstyle', + sectionName: 'thefilter-us', + subMetaSectionLinks: [ + { + url: '/lifeandstyle/lifeandstyle', + title: 'Life and style', + }, + { + url: '/thefilter-us/series/thefilter-us', + title: 'The Filter US', + }, + ], + subMetaKeywordLinks: [ + { + url: '/tone/features', + title: 'features', + }, + ], + shouldHideAds: false, + isAdFreeUser: false, + webURL: 'https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + linkedData: [ + { + '@type': 'NewsArticle', + '@context': 'https://schema.org', + '@id': 'https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + publisher: { + '@type': 'Organization', + '@context': 'https://schema.org', + '@id': 'https://www.theguardian.com#publisher', + name: 'The Guardian', + url: 'https://www.theguardian.com/', + logo: { + '@type': 'ImageObject', + url: 'https://uploads.guim.co.uk/2018/01/31/TheGuardian_AMP.png', + width: 190, + height: 60, + }, + sameAs: [ + 'https://www.facebook.com/theguardian', + 'https://twitter.com/guardian', + 'https://www.youtube.com/user/TheGuardian', + ], + }, + isAccessibleForFree: true, + isPartOf: { + '@type': ['CreativeWork', 'Product'], + name: 'The Guardian', + productID: 'theguardian.com:basic', + }, + image: [ + 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&precrop=40:21,offset-x50,offset-y0&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvZmlsdGVyLXVzLnBuZw&enable=upscale&s=e41ac9b32a4532fe5166800799f2d9dc', + 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1200&height=1200&quality=85&auto=format&fit=crop&s=2c68868529022818452dd57a5a5bbc90', + 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1200&height=900&quality=85&auto=format&fit=crop&s=eb44909c78d4e42bfb172e22acc62686', + 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1200&quality=85&auto=format&fit=max&s=a636b166ee0901e896a39f89ddd7c403', + ], + author: [ + { + '@type': 'Person', + name: 'Emily Farris', + sameAs: 'https://www.theguardian.com/profile/emily-farris', + }, + ], + datePublished: '2026-04-03T12:45:31.000Z', + headline: + 'The Anyday glass food containers transformed how I store leftovers', + dateModified: '2026-05-22T16:38:31.000Z', + mainEntityOfPage: + 'https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, + { + '@type': 'WebPage', + '@context': 'https://schema.org', + '@id': 'https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + potentialAction: { + '@type': 'ViewAction', + target: 'android-app://com.guardian/https/www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, + }, + ], + openGraphData: { + 'og:url': + 'https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + 'article:author': 'https://www.theguardian.com/profile/emily-farris', + 'og:image:width': '1200', + 'og:image': + 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&precrop=40:21,offset-x50,offset-y0&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvZmlsdGVyLXVzLnBuZw&enable=upscale&s=e41ac9b32a4532fe5166800799f2d9dc', + 'al:ios:url': + 'gnmguardian://thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers?contenttype=Article&source=applinks', + 'article:publisher': 'https://www.facebook.com/theguardian', + 'og:title': + 'Less waste and fewer dishes: these glass food containers changed how I store leftovers', + 'fb:app_id': '180444840287', + 'article:modified_time': '2026-05-22T16:38:31.000Z', + 'og:image:height': '960', + 'og:description': + 'Don’t let leftovers languish in the fridge. These oven, microwave and freezer-safe glass containers from Anyday helped me waste less food – and do fewer dishes', + 'og:type': 'article', + 'al:ios:app_store_id': '409128287', + 'article:section': 'The Filter US', + 'article:published_time': '2026-04-03T12:45:31.000Z', + 'article:tag': 'Life and style', + 'al:ios:app_name': 'The Guardian', + 'og:site_name': 'the Guardian', + }, + twitterData: { + 'twitter:app:id:iphone': '409128287', + 'twitter:app:name:googleplay': 'The Guardian', + 'twitter:app:name:ipad': 'The Guardian', + 'twitter:card': 'summary_large_image', + 'twitter:app:name:iphone': 'The Guardian', + 'twitter:app:id:ipad': '409128287', + 'twitter:app:id:googleplay': 'com.guardian', + 'twitter:app:url:googleplay': + 'guardian://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + 'twitter:app:url:iphone': + 'gnmguardian://thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers?contenttype=Article&source=twitter', + 'twitter:image': + 'https://i.guim.co.uk/img/media/5502d6334997dd30fd616bae9c41f7cbd95042ba/0_0_1728_1382/master/1728.jpg?width=1200&height=630&quality=85&auto=format&fit=crop&precrop=40:21,offset-x50,offset-y0&overlay-align=bottom%2Cleft&overlay-width=100p&overlay-base64=L2ltZy9zdGF0aWMvb3ZlcmxheXMvZmlsdGVyLXVzLnBuZw&s=4b54353ece390f5fcbfcda0e44f6cfc5', + 'twitter:site': '@guardian', + 'twitter:app:url:ipad': + 'gnmguardian://thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers?contenttype=Article&source=twitter', + }, + config: { + references: [ + { + 'rich-link': + 'https://www.theguardian.com/environment/2015/oct/19/sign-up-to-the-green-light-email', + }, + ], + shortUrlId: '/p/d8ex5', + switches: { + prebidAppnexusUkRow: true, + clickToView: true, + prebidTrustx: true, + scAdFreeBanner: false, + compareVariantDecision: false, + enableSentryReporting: true, + lazyLoadContainers: true, + adFreeStrictExpiryEnforcement: false, + liveblogRendering: true, + remarketing: true, + registerWithPhone: false, + targeting: true, + extendedMostPopularFronts: true, + slotBodyEnd: true, + emailInlineInFooter: true, + facebookTrackingPixel: true, + serviceWorkerEnabled: false, + iasAdTargeting: true, + extendedMostPopular: true, + prebidAnalytics: true, + imrWorldwide: true, + acast: true, + twitterUwt: true, + prebidAppnexusInvcode: true, + prebidAppnexus: true, + enableDiscussionSwitch: true, + prebidXaxis: true, + interactiveFullHeaderSwitch: false, + discussionAllPageSize: true, + prebidUserSync: true, + audioOnwardJourneySwitch: true, + mobileStickyPrebid: true, + breakingNews: true, + externalVideoEmbeds: true, + carrotTrafficDriver: true, + geoMostPopular: true, + weAreHiring: true, + relatedContent: true, + thirdPartyEmbedTracking: true, + prebidOzone: true, + mostViewedFronts: true, + abSignInGateMainControl: true, + ampPrebid: true, + googleSearch: true, + brazeSwitch: true, + consentManagement: true, + commercial: true, + prebidSonobi: true, + idProfileNavigation: true, + confiantAdVerification: true, + discussionAllowAnonymousRecommendsSwitch: false, + scrollDepth: true, + permutive: true, + comscore: true, + webFonts: true, + prebidImproveDigital: true, + ophan: true, + crosswordSvgThumbnails: true, + prebidTriplelift: true, + weather: true, + commercialOutbrainNewids: true, + dotcomRendering: true, + abSignInGateMainVariant: true, + hostedVideoAutoplay: true, + abAdblockAsk: true, + prebidPubmatic: true, + autoRefresh: true, + enhanceTweets: true, + prebidIndexExchange: true, + prebidOpenx: true, + idCookieRefresh: true, + sharingComments: true, + abSignInGateMandatory: true, + discussionPageSize: true, + smartAppBanner: false, + boostGaUserTimingFidelity: false, + historyTags: true, + mobileStickyLeaderboard: true, + abDeeplyReadTest: false, + surveys: true, + remoteBanner: true, + inizio: true, + prebidHeaderBidding: true, + a9HeaderBidding: true, + lightbox: true, + }, + keywordIds: + 'environment/climate-change,environment/environment,science/scienceofclimatechange,science/science,world/eu,world/europe-news,world/world,environment/flooding,world/wildfires,world/natural-disasters', + sharedAdTargeting: { + ct: 'article', + co: ['jennifer-rankin'], + url: '/environment/2020/feb/10/fires-floods-maps-europe-climate-catastrophe', + su: ['0'], + edition: 'uk', + tn: ['news'], + p: 'ng', + k: [ + 'eu', + 'flooding', + 'world', + 'europe-news', + 'natural-disasters', + 'science', + 'environment', + 'climate-change', + 'wildfires', + 'scienceofclimatechange', + ], + sh: 'https://www.theguardian.com/p/d8ex5', + }, + toneIds: 'tone/news', + dcrSentryDsn: + 'https://1937ab71c8804b2b8438178dfdd6468f@sentry.io/1377847', + discussionApiUrl: 'https://discussion.theguardian.com/discussion-api', + sentryPublicApiKey: '344003a8d11c41d8800fbad8383fdc50', + commercialBundleUrl: + 'https://assets.guim.co.uk/javascripts/bc58c17d75809551440f/graun.commercial.dcr.js', + discussionApiClientHeader: 'nextgen', + shouldHideReaderRevenue: false, + sentryHost: 'app.getsentry.com/35463', + isPaidContent: false, + headline: 'Headline string', + idApiUrl: 'https://idapi.theguardian.com', + showRelatedContent: true, + adUnit: '/59666047/theguardian.com/environment/article/ng', + videoDuration: 0, + stage: 'PROD', + isSensitive: false, + isDev: false, + ajaxUrl: 'https://api.nextgen.guardianapps.co.uk', + keywords: + 'Climate change,Environment,Climate change,Science,European Union,Europe,World news,Flooding,Wildfires,Natural disasters and extreme weather', + revisionNumber: 'DEV', + section: 'environment', + isPhotoEssay: false, + ampIframeUrl: + 'https://assets.guim.co.uk/data/vendor/b242a49b1588bb36bdaacefe001ca77a/amp-iframe.html', + isLive: false, + host: 'https://www.theguardian.com', + brazeApiKey: '7f28c639-8bda-48ff-a3f6-24345abfc07c', + contentType: 'Article', + idUrl: 'https://profile.theguardian.com', + author: 'Jennifer Rankin', + dfpAccountId: '59666047', + pageId: 'environment/2020/feb/10/fires-floods-maps-europe-climate-catastrophe', + googletagUrl: '//securepubads.g.doubleclick.net/tag/js/gpt.js', + mmaUrl: 'https://manage.theguardian.com', + abTests: {}, + serverSideABTests: {}, + edition: 'UK', + ipsosTag: 'environment', + isLiveBlog: false, + frontendAssetsFullURL: 'https://assets.guim.co.uk/', + webPublicationDate: 1581314427000, + discussionD2Uid: 'zHoBy6HNKsk', + }, + guardianBaseURL: 'https://www.theguardian.com', + contentType: 'Article', + hasRelated: true, + hasStoryPackage: false, + beaconURL: '//phar.gu-web.net', + isCommentable: false, + commercialProperties: { + US: { + adTargeting: [ + { + name: 'co', + value: ['emily-farris'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'tn', + value: ['features', 'best-ofs', 'reviews'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter-us', + }, + { + name: 'url', + value: '/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sh', + value: 'https://www.theguardian.com/p/x4xq7e', + }, + { + name: 'edition', + value: 'us', + }, + { + name: 'se', + value: [ + 'kitchen-aide', + 'thefilter-us', + 'plastic-free-life', + ], + }, + ], + }, + AU: { + adTargeting: [ + { + name: 'co', + value: ['emily-farris'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'edition', + value: 'au', + }, + { + name: 'se', + value: [ + 'kitchen-aide', + 'thefilter-us', + 'plastic-free-life', + ], + }, + { + name: 'tn', + value: ['features', 'best-ofs', 'reviews'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter-us', + }, + { + name: 'url', + value: '/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sh', + value: 'https://www.theguardian.com/p/x4xq7e', + }, + ], + }, + UK: { + adTargeting: [ + { + name: 'co', + value: ['emily-farris'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'se', + value: [ + 'kitchen-aide', + 'thefilter-us', + 'plastic-free-life', + ], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter-us', + }, + { + name: 'url', + value: '/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sh', + value: 'https://www.theguardian.com/p/x4xq7e', + }, + { + name: 'tn', + value: ['features', 'best-ofs', 'reviews'], + }, + { + name: 'edition', + value: 'uk', + }, + ], + }, + INT: { + adTargeting: [ + { + name: 'co', + value: ['emily-farris'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'se', + value: [ + 'kitchen-aide', + 'thefilter-us', + 'plastic-free-life', + ], + }, + { + name: 'tn', + value: ['features', 'best-ofs', 'reviews'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 's', + value: 'thefilter-us', + }, + { + name: 'url', + value: '/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, + { + name: 'edition', + value: 'int', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sh', + value: 'https://www.theguardian.com/p/x4xq7e', + }, + ], + }, + EUR: { + adTargeting: [ + { + name: 'co', + value: ['emily-farris'], + }, + { + name: 'sens', + value: 'f', + }, + { + name: 'se', + value: [ + 'kitchen-aide', + 'thefilter-us', + 'plastic-free-life', + ], + }, + { + name: 'tn', + value: ['features', 'best-ofs', 'reviews'], + }, + { + name: 'k', + value: ['lifeandstyle'], + }, + { + name: 'ct', + value: 'article', + }, + { + name: 'url', + value: '/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, + { + name: 'p', + value: 'ng', + }, + { + name: 'su', + value: ['0'], + }, + { + name: 'sh', + value: 'https://www.theguardian.com/p/x4xq7e', + }, + { + name: 's', + value: 'thefilter-us', + }, + { + name: 'edition', + value: 'eur', + }, + ], + }, + }, + pageType: { + hasShowcaseMainElement: false, + isFront: false, + isLiveblog: false, + isMinuteArticle: false, + isPaidContent: false, + isPreview: false, + isSensitive: false, + }, + starRating: 5, + trailText: + 'Don’t let leftovers languish in the fridge. These oven, microwave and freezer-safe glass containers from Anyday helped me waste less food – and do fewer dishes', + nav: { + currentUrl: '/thefilter-us', + pillars: [ + { + title: 'News', + url: '/', + longTitle: 'Headlines', + iconName: 'home', + children: [ + { + title: 'UK', + url: '/uk-news', + longTitle: 'UK news', + children: [ + { + title: 'UK politics', + url: '/politics', + }, + { + title: 'Education', + url: '/education', + children: [ + { + title: 'Schools', + url: '/education/schools', + }, + { + title: 'Teachers', + url: '/teacher-network', + }, + { + title: 'Universities', + url: '/education/universities', + }, + { + title: 'Students', + url: '/education/students', + }, + ], + }, + { + title: 'Media', + url: '/media', + }, + { + title: 'Society', + url: '/society', + }, + { + title: 'Law', + url: '/law', + }, + { + title: 'Scotland', + url: '/uk/scotland', + }, + { + title: 'Wales', + url: '/uk/wales', + }, + { + title: 'Northern Ireland', + url: '/uk/northernireland', + }, + ], + }, + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'US politics', + url: '/us-news/us-politics', + }, + { + title: 'World', + url: '/world', + longTitle: 'World news', + children: [ + { + title: 'Europe', + url: '/world/europe-news', + }, + { + title: 'US news', + url: '/us-news', + longTitle: 'US news', + }, + { + title: 'Americas', + url: '/world/americas', + }, + { + title: 'Asia', + url: '/world/asia', + }, + { + title: 'Australia', + url: '/australia-news', + longTitle: 'Australia news', + }, + { + title: 'Middle East', + url: '/world/middleeast', + }, + { + title: 'Africa', + url: '/world/africa', + }, + { + title: 'Inequality', + url: '/inequality', + }, + { + title: 'Global development', + url: '/global-development', + }, + ], + }, + { + title: 'Climate crisis', + url: '/environment/climate-crisis', + }, + { + title: 'Middle East', + url: '/world/middleeast', + }, + { + title: 'Ukraine', + url: '/world/ukraine', + }, + { + title: 'Football', + url: '/football', + children: [ + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'Live scores', + url: '/football/live', + longTitle: 'football/live', + }, + { + title: 'Tables', + url: '/football/tables', + longTitle: 'football/tables', + }, + { + title: 'Fixtures', + url: '/football/fixtures', + longTitle: 'football/fixtures', + }, + { + title: 'Results', + url: '/football/results', + longTitle: 'football/results', + }, + { + title: 'Competitions', + url: '/football/competitions', + longTitle: 'football/competitions', + }, + { + title: 'Clubs', + url: '/football/teams', + longTitle: 'football/teams', + }, + ], + }, + { + title: 'Newsletters', + url: '/email-newsletters', + }, + { + title: 'Business', + url: '/business', + children: [ + { + title: 'Economics', + url: '/business/economics', + }, + { + title: 'Banking', + url: '/business/banking', + }, + { + title: 'Money', + url: '/money', + children: [ + { + title: 'Property', + url: '/money/property', + }, + { + title: 'Pensions', + url: '/money/pensions', + }, + { + title: 'Savings', + url: '/money/savings', + }, + { + title: 'Borrowing', + url: '/money/debt', + }, + { + title: 'Careers', + url: '/money/work-and-careers', + }, + ], + }, + { + title: 'Markets', + url: '/business/stock-markets', + }, + { + title: 'Project Syndicate', + url: '/business/series/project-syndicate-economists', + }, + { + title: 'B2B', + url: '/business-to-business', + }, + { + title: 'Retail', + url: '/business/retail', + }, + ], + }, + { + title: 'Environment', + url: '/environment', + children: [ + { + title: 'Climate crisis', + url: '/environment/climate-crisis', + }, + { + title: 'Wildlife', + url: '/environment/wildlife', + }, + { + title: 'Energy', + url: '/environment/energy', + }, + { + title: 'Pollution', + url: '/environment/pollution', + }, + ], + }, + { + title: 'UK politics', + url: '/politics', + }, + { + title: 'Science', + url: '/science', + }, + { + title: 'Tech', + url: '/technology', + }, + { + title: 'Global development', + url: '/global-development', + }, + { + title: 'Obituaries', + url: '/obituaries', + }, + ], + }, + { + title: 'Opinion', + url: '/commentisfree', + longTitle: 'Opinion home', + iconName: 'home', + children: [ + { + title: 'The Guardian view', + url: '/profile/editorial', + }, + { + title: 'Columnists', + url: '/uk/columnists', + }, + { + title: 'Cartoons', + url: '/tone/cartoons', + }, + { + title: 'Opinion videos', + url: '/type/video+tone/comment', + }, + { + title: 'Letters', + url: '/tone/letters', + }, + ], + }, + { + title: 'Sport', + url: '/sport', + longTitle: 'Sport home', + iconName: 'home', + children: [ + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'Football', + url: '/football', + children: [ + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'Live scores', + url: '/football/live', + longTitle: 'football/live', + }, + { + title: 'Tables', + url: '/football/tables', + longTitle: 'football/tables', + }, + { + title: 'Fixtures', + url: '/football/fixtures', + longTitle: 'football/fixtures', + }, + { + title: 'Results', + url: '/football/results', + longTitle: 'football/results', + }, + { + title: 'Competitions', + url: '/football/competitions', + longTitle: 'football/competitions', + }, + { + title: 'Clubs', + url: '/football/teams', + longTitle: 'football/teams', + }, + ], + }, + { + title: 'Cricket', + url: '/sport/cricket', + }, + { + title: 'Rugby union', + url: '/sport/rugby-union', + }, + { + title: 'Tennis', + url: '/sport/tennis', + }, + { + title: 'Cycling', + url: '/sport/cycling', + }, + { + title: 'F1', + url: '/sport/formulaone', + }, + { + title: 'Golf', + url: '/sport/golf', + }, + { + title: 'Boxing', + url: '/sport/boxing', + }, + { + title: 'Rugby league', + url: '/sport/rugbyleague', + }, + { + title: 'Racing', + url: '/sport/horse-racing', + }, + { + title: 'US sports', + url: '/sport/us-sport', + }, + ], + }, + { + title: 'Culture', + url: '/culture', + longTitle: 'Culture home', + iconName: 'home', + children: [ + { + title: 'Film', + url: '/film', + }, + { + title: 'Music', + url: '/music', + }, + { + title: 'TV & radio', + url: '/tv-and-radio', + }, + { + title: 'Books', + url: '/books', + }, + { + title: 'Art & design', + url: '/artanddesign', + }, + { + title: 'Stage', + url: '/stage', + }, + { + title: 'Games', + url: '/games', + }, + { + title: 'Classical', + url: '/music/classicalmusicandopera', + }, + ], + }, + { + title: 'Lifestyle', + url: '/lifeandstyle', + longTitle: 'Lifestyle home', + iconName: 'home', + children: [ + { + title: 'The Filter', + url: '/uk/thefilter', + }, + { + title: 'Fashion', + url: '/fashion', + }, + { + title: 'Food', + url: '/food', + }, + { + title: 'Recipes', + url: '/tone/recipes', + }, + { + title: 'Travel', + url: '/travel', + children: [ + { + title: 'UK', + url: '/travel/uk', + }, + { + title: 'Europe', + url: '/travel/europe', + }, + { + title: 'US', + url: '/travel/usa', + }, + ], + }, + { + title: 'Health & fitness', + url: '/lifeandstyle/health-and-wellbeing', + }, + { + title: 'Women', + url: '/lifeandstyle/women', + }, + { + title: 'Men', + url: '/lifeandstyle/men', + }, + { + title: 'Love & sex', + url: '/lifeandstyle/love-and-sex', + }, + { + title: 'Beauty', + url: '/fashion/beauty', + }, + { + title: 'Home & garden', + url: '/lifeandstyle/home-and-garden', + }, + { + title: 'Money', + url: '/money', + children: [ + { + title: 'Property', + url: '/money/property', + }, + { + title: 'Pensions', + url: '/money/pensions', + }, + { + title: 'Savings', + url: '/money/savings', + }, + { + title: 'Borrowing', + url: '/money/debt', + }, + { + title: 'Careers', + url: '/money/work-and-careers', + }, + ], + }, + { + title: 'Cars', + url: '/technology/motoring', + }, + ], + }, + ], + otherLinks: [ + { + title: 'The Guardian app', + url: 'https://app.adjust.com/16xt6hai', + }, + { + title: 'Video', + url: '/video', + }, + { + title: 'Podcasts', + url: '/podcasts', + }, + { + title: 'Pictures', + url: '/inpictures', + }, + { + title: 'Newsletters', + url: '/email-newsletters', + }, + { + title: "Today's paper", + url: '/theguardian', + children: [ + { + title: 'Obituaries', + url: '/obituaries', + }, + { + title: 'G2', + url: '/theguardian/g2', + }, + { + title: 'Journal', + url: '/theguardian/journal', + }, + { + title: 'Saturday', + url: '/theguardian/saturday', + }, + ], + }, + { + title: 'Inside the Guardian', + url: 'https://www.theguardian.com/insidetheguardian', + }, + { + title: 'Guardian Weekly', + url: 'https://www.theguardian.com/weekly?INTCMP=gdnwb_mawns_editorial_gweekly_GW_TopNav_UK', + }, + { + title: 'Crosswords', + url: '/crosswords', + children: [ + { + title: 'Blog', + url: '/crosswords/crossword-blog', + }, + { + title: 'Quick', + url: '/crosswords/series/quick', + }, + { + title: 'Sunday quick', + url: '/crosswords/series/sunday-quick', + }, + { + title: 'Mini', + url: '/crosswords/series/mini-crossword', + }, + { + title: 'Quick cryptic', + url: '/crosswords/series/quick-cryptic', + }, + { + title: 'Quiptic', + url: '/crosswords/series/quiptic', + }, + { + title: 'Cryptic', + url: '/crosswords/series/cryptic', + }, + { + title: 'Prize', + url: '/crosswords/series/prize', + }, + { + title: 'Genius', + url: '/crosswords/series/genius', + }, + { + title: 'Weekend', + url: '/crosswords/series/weekend-crossword', + }, + { + title: 'Special', + url: '/crosswords/series/special', + }, + ], + }, + { + title: 'Wordiply', + url: 'https://www.wordiply.com', + }, + { + title: 'Corrections', + url: '/theguardian/series/corrections-and-clarifications', + }, + { + title: 'Tips', + url: 'https://www.theguardian.com/tips', + }, + ], + brandExtensions: [ + { + title: 'Search jobs', + url: 'https://jobs.theguardian.com', + }, + { + title: 'Hire with Guardian Jobs', + url: 'https://recruiters.theguardian.com/?utm_source=gdnwb&utm_medium=navbar&utm_campaign=Guardian_Navbar_Recruiters&CMP_TU=trdmkt&CMP_BUNIT=jobs', + }, + { + title: 'Holidays', + url: 'https://holidays.theguardian.com?INTCMP=holidays_uk_web_newheader', + }, + { + title: 'Live events', + url: 'https://www.theguardian.com/guardian-live-events?INTCMP=live_uk_header_dropdown', + }, + { + title: 'About Us', + url: '/about', + }, + { + title: 'Digital Archive', + url: 'https://theguardian.newspapers.com', + }, + { + title: 'Guardian Print Shop', + url: '/artanddesign/series/gnm-print-sales', + }, + { + title: 'Patrons', + url: 'https://patrons.theguardian.com/?INTCMP=header_patrons', + }, + { + title: 'Guardian Licensing', + url: 'https://licensing.theguardian.com/', + }, + ], + currentNavLinkTitle: 'The Filter', + currentPillarTitle: 'News', + subNavSections: { + links: [ + { + title: 'US news', + url: '/us-news', + longTitle: 'US news', + }, + { + title: 'US politics', + url: '/us-news/us-politics', + }, + { + title: 'World Cup 2026', + url: '/football/world-cup-2026', + }, + { + title: 'World', + url: '/world', + longTitle: 'World news', + children: [ + { + title: 'Europe', + url: '/world/europe-news', + }, + { + title: 'US news', + url: '/us-news', + longTitle: 'US news', + }, + { + title: 'Americas', + url: '/world/americas', + }, + { + title: 'Asia', + url: '/world/asia', + }, + { + title: 'Australia', + url: '/australia-news', + longTitle: 'Australia news', + }, + { + title: 'Middle East', + url: '/world/middleeast', + }, + { + title: 'Africa', + url: '/world/africa', + }, + { + title: 'Inequality', + url: '/inequality', + }, + { + title: 'Global development', + url: '/global-development', + }, + ], + }, + { + title: 'Climate crisis', + url: '/environment/climate-crisis', + }, + { + title: 'Middle East', + url: '/world/middleeast', + }, + { + title: 'Ukraine', + url: '/world/ukraine', + }, + { + title: 'US immigration', + url: '/us-news/usimmigration', + }, + { + title: 'Business', + url: '/us/business', + children: [ + { + title: 'Economics', + url: '/business/economics', + }, + { + title: 'Diversity & equality in business', + url: '/business/diversity-and-equality', + }, + { + title: 'Small business', + url: '/business/us-small-business', + }, + { + title: 'Retail', + url: '/business/retail', + }, + ], + }, + { + title: 'Environment', + url: '/us/environment', + children: [ + { + title: 'Climate crisis', + url: '/environment/climate-crisis', + }, + { + title: 'Wildlife', + url: '/environment/wildlife', + }, + { + title: 'Energy', + url: '/environment/energy', + }, + { + title: 'Pollution', + url: '/environment/pollution', + }, + { + title: 'Green light', + url: '/environment/series/green-light', + }, + ], + }, + { + title: 'Tech', + url: '/us/technology', + }, + { + title: 'Science', + url: '/science', + }, + { + title: 'Newsletters', + url: '/email-newsletters', + }, + { + title: 'The Filter', + url: '/thefilter-us', + }, + { + title: 'Wellness', + url: '/us/wellness', + }, + ], + }, + readerRevenueLinks: { + header: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=header_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=header_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=header_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=header_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_supporter_cta%22%7D', + }, + footer: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=footer_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=footer_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=footer_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=footer_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_supporter_cta%22%7D', + }, + sideMenu: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=side_menu_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22side_menu_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=side_menu_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22side_menu_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=side_menu_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22side_menu_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=mobilenav_print_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22mobilenav_print_cta%22%7D', + }, + ampHeader: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=header_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=header_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=amp_header_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22amp_header_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=header_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_HEADER%22,%22componentId%22:%22header_supporter_cta%22%7D', + }, + ampFooter: { + contribute: + 'https://support.theguardian.com/contribute?INTCMP=amp_footer_support_contribute&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22amp_footer_support_contribute%22%7D', + subscribe: + 'https://support.theguardian.com/subscribe?INTCMP=amp_footer_support_subscribe&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22amp_footer_support_subscribe%22%7D', + support: + 'https://support.theguardian.com?INTCMP=footer_support&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22footer_support%22%7D', + supporter: + 'https://support.theguardian.com/subscribe?INTCMP=amp_footer_supporter_cta&acquisitionData=%7B%22source%22:%22GUARDIAN_WEB%22,%22componentType%22:%22ACQUISITIONS_FOOTER%22,%22componentId%22:%22amp_footer_supporter_cta%22%7D', + }, + }, + }, + showBottomSocialButtons: true, + pageFooter: { + footerLinks: [ + [ + { + text: 'About us', + url: '/about', + dataLinkName: 'uk : footer : about us', + extraClasses: '', + }, + { + text: 'Help', + url: 'https://manage.theguardian.com/help-centre', + dataLinkName: 'uk : footer : tech feedback', + extraClasses: 'js-tech-feedback-report', + }, + { + text: 'Complaints & corrections', + url: '/info/complaints-and-corrections', + dataLinkName: 'complaints', + extraClasses: '', + }, + { + text: 'Contact us', + url: '/help/contact-us', + dataLinkName: 'uk : footer : contact us', + extraClasses: '', + }, + { + text: 'Tip us off', + url: 'https://www.theguardian.com/tips', + dataLinkName: 'uk : footer : tips', + extraClasses: '', + }, + { + text: 'SecureDrop', + url: 'https://www.theguardian.com/securedrop', + dataLinkName: 'securedrop', + extraClasses: '', + }, + { + text: 'Privacy policy', + url: '/info/privacy', + dataLinkName: 'privacy', + extraClasses: '', + }, + { + text: 'Cookie policy', + url: '/info/cookies', + dataLinkName: 'cookie', + extraClasses: '', + }, + { + text: 'Modern Slavery Act', + url: 'https://uploads.guim.co.uk/2025/09/05/Modern_Slavery_Statement_2025.pdf', + dataLinkName: 'uk : footer : modern slavery act statement', + extraClasses: '', + }, + { + text: 'Tax strategy', + url: 'https://uploads.guim.co.uk/2025/09/05/Tax_strategy_for_the_year_ended_31_March_2025.pdf', + dataLinkName: 'uk : footer : tax strategy', + extraClasses: '', + }, + { + text: 'Terms & conditions', + url: '/help/terms-of-service', + dataLinkName: 'terms', + extraClasses: '', + }, + ], + [ + { + text: 'All topics', + url: '/index/subjects/a', + dataLinkName: 'uk : footer : all topics', + extraClasses: '', + }, + { + text: 'All writers', + url: '/index/contributors', + dataLinkName: 'uk : footer : all contributors', + extraClasses: '', + }, + { + text: 'Newsletters', + url: '/email-newsletters?INTCMP=DOTCOM_FOOTER_NEWSLETTER_UK', + dataLinkName: 'uk : footer : newsletters', + extraClasses: '', + }, + { + text: 'Digital newspaper archive', + url: 'https://theguardian.newspapers.com', + dataLinkName: 'digital newspaper archive', + extraClasses: '', + }, + { + text: 'Bluesky', + url: 'https://bsky.app/profile/theguardian.com', + dataLinkName: 'uk : footer : Bluesky', + extraClasses: '', + }, + { + text: 'Facebook', + url: 'https://www.facebook.com/theguardian', + dataLinkName: 'uk : footer : Facebook', + extraClasses: '', + }, + { + text: 'Instagram', + url: 'https://www.instagram.com/guardian', + dataLinkName: 'uk : footer : Instagram', + extraClasses: '', + }, + { + text: 'LinkedIn', + url: 'https://www.linkedin.com/company/theguardian', + dataLinkName: 'uk : footer : LinkedIn', + extraClasses: '', + }, + { + text: 'Threads', + url: 'https://www.threads.com/@guardian', + dataLinkName: 'uk : footer : Threads', + extraClasses: '', + }, + { + text: 'TikTok', + url: 'https://www.tiktok.com/@guardian', + dataLinkName: 'uk : footer : TikTok', + extraClasses: '', + }, + { + text: 'YouTube', + url: 'https://www.youtube.com/user/TheGuardian', + dataLinkName: 'uk : footer : YouTube', + extraClasses: '', + }, + ], + [ + { + text: 'Advertise with us', + url: 'https://advertising.theguardian.com', + dataLinkName: 'uk : footer : advertise with us', + extraClasses: '', + }, + { + text: 'Guardian Labs', + url: '/guardian-labs', + dataLinkName: 'uk : footer : guardian labs', + extraClasses: '', + }, + { + text: 'Search jobs', + url: 'https://jobs.theguardian.com', + dataLinkName: 'uk : footer : jobs', + extraClasses: '', + }, + { + text: 'Patrons', + url: 'https://patrons.theguardian.com?INTCMP=footer_patrons', + dataLinkName: 'uk : footer : patrons', + extraClasses: '', + }, + { + text: 'Work with us', + url: 'https://workwithus.theguardian.com/', + dataLinkName: 'uk : footer : work with us', + extraClasses: '', + }, + { + text: 'Accessibility settings', + url: '/help/accessibility-help', + dataLinkName: 'accessibility settings', + extraClasses: '', + }, + ], + ], + }, + publication: 'theguardian.com', + shouldHideReaderRevenue: false, + slotMachineFlags: '', + contributionsServiceUrl: 'https://contributions.guardianapis.com', + isSpecialReport: false, + promotedNewsletter: { + identityName: 'the-filter-us', + name: 'The Filter US', + theme: 'lifestyle', + description: 'A guide to buying fewer, better products.', + frequency: 'Weekly', + listId: 6057, + group: 'Lifestyle', + successDescription: 'You are subscribed', + regionFocus: 'US', + illustrationCard: + 'https://uploads.guim.co.uk/2024/10/04/The_Filter_-_5-3.jpg', + illustrationSquare: + 'https://media.guim.co.uk/c8a44e1d3ffcbf49017e464b41e9c7b31139e713/926_0_379_379/379.jpg', + exampleUrl: 'lifeandstyle/series/the-filter-us-newsletter/latest', + category: 'article-based', + }, + showTableOfContents: true, + lang: 'en', + isRightToLeftLang: false, +}; diff --git a/dotcom-rendering/fixtures/manual/productBlockElement.ts b/dotcom-rendering/fixtures/manual/productBlockElement.ts index 54d96702139..3f15a360496 100644 --- a/dotcom-rendering/fixtures/manual/productBlockElement.ts +++ b/dotcom-rendering/fixtures/manual/productBlockElement.ts @@ -214,12 +214,14 @@ export const exampleProduct: ProductBlockElement = { _type: 'model.dotcomrendering.pageElements.LinkBlockElement', url: 'https://www.johnlewis.com/bosch-twk7203gb-sky-variable-temperature-kettle-1-7l-black/p3228625', label: '£79.99 at John Lewis', + elementId: '123', linkType: 'ProductButton', }, { _type: 'model.dotcomrendering.pageElements.LinkBlockElement', url: 'https://www.amazon.co.uk/Bosch-TWK7203GB-Sky-Variable-Temperature/dp/B07Z8VQ2V6', label: '£79.99 at Amazon', + elementId: '1234', linkType: 'ProductButton', }, { diff --git a/dotcom-rendering/scripts/test-data/gen-fixtures.js b/dotcom-rendering/scripts/test-data/gen-fixtures.js index b339f5e320f..234fc44b151 100644 --- a/dotcom-rendering/scripts/test-data/gen-fixtures.js +++ b/dotcom-rendering/scripts/test-data/gen-fixtures.js @@ -131,6 +131,14 @@ const articles = [ name: 'Video', url: 'https://www.theguardian.com/sport/video/2023/nov/20/atp-finals-djokovic-beats-sinner-to-claim-record-seventh-title-video', }, + { + name: 'AffiliateProductShowcase', + url: 'https://www.theguardian.com/thefilter/2026/may/04/things-you-loved-most-april-2026', + }, + { + name: 'AffiliateProductStandard', + url: 'https://www.theguardian.com/thefilter-us/2025/dec/25/glass-food-containers-to-store-leftovers', + }, ]; const HEADER = `/** diff --git a/dotcom-rendering/src/components/ProductElement.stories.tsx b/dotcom-rendering/src/components/ProductElement.stories.tsx index 04657ed06dd..2d9573bd4c9 100644 --- a/dotcom-rendering/src/components/ProductElement.stories.tsx +++ b/dotcom-rendering/src/components/ProductElement.stories.tsx @@ -234,6 +234,7 @@ const product = { label: '£79.99 at John Lewis', linkType: 'ProductButton', priority: 'Primary', + elementId: '123', }, { _type: 'model.dotcomrendering.pageElements.LinkBlockElement', @@ -241,6 +242,7 @@ const product = { label: '£79.99 at Amazon', linkType: 'ProductButton', priority: 'Primary', + elementId: '1234', }, { _type: 'model.dotcomrendering.pageElements.TextBlockElement', diff --git a/dotcom-rendering/src/frontend/schemas/feArticle.json b/dotcom-rendering/src/frontend/schemas/feArticle.json index ca5c3a9f85f..028f4748dea 100644 --- a/dotcom-rendering/src/frontend/schemas/feArticle.json +++ b/dotcom-rendering/src/frontend/schemas/feArticle.json @@ -2670,6 +2670,9 @@ "type": "string", "const": "model.dotcomrendering.pageElements.LinkBlockElement" }, + "elementId": { + "type": "string" + }, "url": { "type": "string" }, @@ -2693,6 +2696,7 @@ }, "required": [ "_type", + "elementId", "label", "linkType", "url" diff --git a/dotcom-rendering/src/layouts/DecideLayout.stories.tsx b/dotcom-rendering/src/layouts/DecideLayout.stories.tsx index e0acc6b69e9..e65424200ac 100644 --- a/dotcom-rendering/src/layouts/DecideLayout.stories.tsx +++ b/dotcom-rendering/src/layouts/DecideLayout.stories.tsx @@ -3,6 +3,8 @@ import { breakpoints } from '@guardian/source/foundations'; import type { Decorator, StoryObj } from '@storybook/react-webpack5'; import { useEffect } from 'react'; import { colourSchemeDecorator } from '../../.storybook/decorators/themeDecorator'; +import { AffiliateProductShowcase as AffiliateProductShowcaseFixture } from '../../fixtures/generated/fe-articles/AffiliateProductShowcase'; +import { AffiliateProductStandard as AffiliateProductStandardFixture } from '../../fixtures/generated/fe-articles/AffiliateProductStandard'; import { Analysis as AnalysisStandardNewsFixture } from '../../fixtures/generated/fe-articles/Analysis'; import { Comment as CommentStandardOpinionFixture } from '../../fixtures/generated/fe-articles/Comment'; import { Feature as FeatureStandardCultureFixture } from '../../fixtures/generated/fe-articles/Feature'; @@ -333,6 +335,20 @@ export const WebLiveBlogStandardLabsLight: Story = { parameters: webParameters, }; +export const AffiliateProductStandardLight: Story = { + args: { + article: enhanceArticleType(AffiliateProductStandardFixture, 'Web'), + }, + parameters: webParameters, +}; + +export const AffiliateProductShowcaseLight: Story = { + args: { + article: enhanceArticleType(AffiliateProductShowcaseFixture, 'Web'), + }, + parameters: webParameters, +}; + export const AppsLiveBlogStandardNewsLight = { args: { article: enhanceArticleType(LiveBlogStandardNewsFixture, 'Apps'), diff --git a/dotcom-rendering/src/model/block-schema.json b/dotcom-rendering/src/model/block-schema.json index fa2e910b4b1..bacc1cec7b6 100644 --- a/dotcom-rendering/src/model/block-schema.json +++ b/dotcom-rendering/src/model/block-schema.json @@ -2147,6 +2147,9 @@ "type": "string", "const": "model.dotcomrendering.pageElements.LinkBlockElement" }, + "elementId": { + "type": "string" + }, "url": { "type": "string" }, @@ -2170,6 +2173,7 @@ }, "required": [ "_type", + "elementId", "label", "linkType", "url" diff --git a/dotcom-rendering/src/types/content.ts b/dotcom-rendering/src/types/content.ts index 3390bf275ee..91fa4b73e05 100644 --- a/dotcom-rendering/src/types/content.ts +++ b/dotcom-rendering/src/types/content.ts @@ -427,6 +427,7 @@ export interface ListItem { export interface LinkBlockElement { _type: 'model.dotcomrendering.pageElements.LinkBlockElement'; + elementId: string; url: string; label: string; linkType: 'ProductButton' | 'StandardButton'; From 39d85ad713ac74190b7424b38b6fb8f5c39bf0fd Mon Sep 17 00:00:00 2001 From: Demetrios Date: Thu, 11 Jun 2026 20:41:39 +0100 Subject: [PATCH 078/293] Hide Share button on Hosted Gallery articles --- .../src/components/GalleryCaption.tsx | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/dotcom-rendering/src/components/GalleryCaption.tsx b/dotcom-rendering/src/components/GalleryCaption.tsx index 9b5cf754a00..a27d4297033 100644 --- a/dotcom-rendering/src/components/GalleryCaption.tsx +++ b/dotcom-rendering/src/components/GalleryCaption.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/react'; import { between, from, space, textSans14 } from '@guardian/source/foundations'; import { grid } from '../grid'; -import { type ArticleFormat } from '../lib/articleFormat'; +import { ArticleDesign, type ArticleFormat } from '../lib/articleFormat'; import { palette } from '../palette'; import { CaptionText } from './CaptionText'; import { Island } from './Island'; @@ -50,6 +50,8 @@ export const GalleryCaption = ({ const emptyCaption = captionHtml === undefined || captionHtml.trim() === ''; const hideCredit = displayCredit === false || credit === undefined || credit === ''; + const shouldIncludeShareButton = + format.design !== ArticleDesign.HostedGallery; if (emptyCaption && hideCredit) { return null; @@ -73,19 +75,21 @@ export const GalleryCaption = ({ padding-top: ${space[2]}px; `} > - - - + {shouldIncludeShareButton && ( + + + + )}
); From ca7ee9ed4cf0d0f9b91fcf3a05e8b21550ed732e Mon Sep 17 00:00:00 2001 From: Ravi <7014230+arelra@users.noreply.github.com> Date: Fri, 12 Jun 2026 08:49:32 +0100 Subject: [PATCH 079/293] Fix interscroller stacking context Following grid update to standard layout https://github.com/guardian/dotcom-rendering/pull/15428 --- dotcom-rendering/src/lib/adStyles.ts | 2 ++ dotcom-rendering/src/lib/getZIndex.ts | 3 +++ 2 files changed, 5 insertions(+) diff --git a/dotcom-rendering/src/lib/adStyles.ts b/dotcom-rendering/src/lib/adStyles.ts index 9d87c6e5a7a..87d4df26645 100644 --- a/dotcom-rendering/src/lib/adStyles.ts +++ b/dotcom-rendering/src/lib/adStyles.ts @@ -2,6 +2,7 @@ import { css } from '@emotion/react'; import { adSizes, constants } from '@guardian/commercial-core'; import { from, textSans12, until } from '@guardian/source/foundations'; import { palette } from '../palette'; +import { getZIndex } from './getZIndex'; const labelHeight = constants.AD_LABEL_HEIGHT; @@ -137,6 +138,7 @@ const spacefinderAdSlotContainerStyles = css` /* this fixes inter-scrollers stealing mouse events */ overflow: hidden; position: relative; + z-index: ${getZIndex('interscrollerAd')}; /* position the iframe absolutely (relative to the slot) so that it is in the correct position to detect viewability */ .ad-slot__content { diff --git a/dotcom-rendering/src/lib/getZIndex.ts b/dotcom-rendering/src/lib/getZIndex.ts index 946e25c784e..37750dcdf2b 100644 --- a/dotcom-rendering/src/lib/getZIndex.ts +++ b/dotcom-rendering/src/lib/getZIndex.ts @@ -57,6 +57,9 @@ const indices = [ // Edition selector in nav - needs to be below stickyAdWrapper 'editionDropdown', + // Interscroller ads need their own stacking context to force the background image below the ad to stop it capturing mouse events + 'interscrollerAd', + // The content displayed by the Details component 'summaryDetails', From fa10138753ef0c32c1ecf5634501499cce0f6f3b Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Fri, 12 Jun 2026 08:49:51 +0100 Subject: [PATCH 080/293] Add no winner result test --- dotcom-rendering/src/cricketMatchV2.test.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/dotcom-rendering/src/cricketMatchV2.test.ts b/dotcom-rendering/src/cricketMatchV2.test.ts index d194b380dca..7bdc71a94a0 100644 --- a/dotcom-rendering/src/cricketMatchV2.test.ts +++ b/dotcom-rendering/src/cricketMatchV2.test.ts @@ -117,4 +117,24 @@ describe('parseCricketMatchV2', () => { }, }); }); + + it('parses a cricket match with no winner', () => { + const result = parseCricketMatchV2({ + ...cricketMatchData.cricketMatch, + fullResult: { + resultType: 'no-result', + description: 'No result', + winner: undefined, + }, + }).getOrThrow('Expected parsing cricket match to succeed'); + + expect(result).toEqual({ + ...expected, + result: { + type: 'no-result', + description: 'No result', + winner: undefined, + }, + }); + }); }); From 2a7c76ae3d1ba604f8c4d08b3eae679e489ef526 Mon Sep 17 00:00:00 2001 From: Frederick O'Brien Date: Fri, 12 Jun 2026 09:43:32 +0100 Subject: [PATCH 081/293] Update grid.ts --- dotcom-rendering/src/grid.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dotcom-rendering/src/grid.ts b/dotcom-rendering/src/grid.ts index 15971dc4e31..20b6e2d6d33 100644 --- a/dotcom-rendering/src/grid.ts +++ b/dotcom-rendering/src/grid.ts @@ -94,7 +94,7 @@ const paddedContainer = ` * The rule is self-contained on the nth child element rather than on the grid * container, so that `top: 0` aligns to that element's top edge. `bottom` * uses a large negative value to extend the rule down to the container's - * bottom, so `overflow: hidden` is applied to the container. + * bottom, so `contain: paint` is applied to the container. * * @example * css` @@ -108,7 +108,7 @@ const paddedContainer = ` * ` */ const centreRule = (n: number, color?: string): string => `/* CENTRE RULE */ - overflow: hidden; + contain: paint; & > *:nth-child(${n}) { position: relative; From 5f40d428aac5da1b53c20634c94f2a7bf5b536e5 Mon Sep 17 00:00:00 2001 From: James Mockett <1166188+jamesmockett@users.noreply.github.com> Date: Fri, 12 Jun 2026 10:08:58 +0100 Subject: [PATCH 082/293] Handle long home team names in Match Day component (#16132) * Pad home team name to avoid match status and align right * Update team name in match day fixture --- dotcom-rendering/fixtures/manual/footballData.ts | 2 +- dotcom-rendering/src/components/FootballMatchDay.tsx | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dotcom-rendering/fixtures/manual/footballData.ts b/dotcom-rendering/fixtures/manual/footballData.ts index 22723d05228..da7491b5b45 100644 --- a/dotcom-rendering/fixtures/manual/footballData.ts +++ b/dotcom-rendering/fixtures/manual/footballData.ts @@ -98,7 +98,7 @@ export const matchDayWorldCup: FootballMatches = [ score: 0, }, awayTeam: { - name: 'Bosnia-Herzegovina', + name: 'Bosnia and Herzegovina', id: '7531', score: 0, }, diff --git a/dotcom-rendering/src/components/FootballMatchDay.tsx b/dotcom-rendering/src/components/FootballMatchDay.tsx index fafa0ec7b74..6c2c3c23c38 100644 --- a/dotcom-rendering/src/components/FootballMatchDay.tsx +++ b/dotcom-rendering/src/components/FootballMatchDay.tsx @@ -317,6 +317,10 @@ const teamCss = css` display: flex; align-items: center; gap: ${space[1]}px; + text-align: right; + ${from.phablet} { + padding-left: 8ch; + } `; const awayTeamCss = css` @@ -324,6 +328,10 @@ const awayTeamCss = css` flex-direction: row-reverse; justify-self: start; padding-right: ${space[4]}px; + text-align: left; + ${from.phablet} { + padding-left: 0; + } `; const Score = ({ match }: { match: FootballMatch }) => { From f7dd6f01bc46d0ee912a873a815ed80ecb6e022c Mon Sep 17 00:00:00 2001 From: Jamie B <53781962+JamieB-gu@users.noreply.github.com> Date: Fri, 12 Jun 2026 11:38:00 +0100 Subject: [PATCH 083/293] `before` for football header borders (#16145) This ensures that parts of the design, such as the central border, remain aligned with other parts of the page. --- .../CricketMatchHeader/CricketMatchHeader.tsx | 16 +++++++++++----- .../FootballMatchHeader/FootballMatchHeader.tsx | 16 +++++++++++----- .../src/components/FootballMatchHeader/Tabs.tsx | 16 +++++++++++----- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx index 03fbef966ed..701ec20776a 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx @@ -246,21 +246,27 @@ const Team = (props: { team: CricketTeam; match: CricketMatch }) => { flex: '1 1 50%', wordBreak: 'break-word', borderLeftStyle: 'solid', + borderLeftColor: 'var(--border-left-colour)', '&:last-of-type': { paddingLeft: space[2], borderLeftWidth: 1, }, [from.leftCol]: { - paddingLeft: space[2], - borderLeftWidth: 1, paddingTop: space[3], - '&:first-of-type': { - marginLeft: `-10px`, + position: 'relative', + '&:first-of-type::before': { + content: '""', + top: 0, + left: -10, + width: 1, + backgroundColor: 'var(--border-left-colour)', + position: 'absolute', + height: '100%', }, }, }} style={{ - borderLeftColor: palette(border(props.match.kind)), + '--border-left-colour': palette(border(props.match.kind)), }} > diff --git a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx index a63a18de38f..dadda3068ea 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx @@ -334,21 +334,27 @@ const Team = (props: { flex: '1 1 50%', wordBreak: 'break-word', borderLeftStyle: 'solid', + borderLeftColor: 'var(--border-left-colour)', '&:last-of-type': { paddingLeft: space[2], borderLeftWidth: 1, }, [from.leftCol]: { - paddingLeft: space[2], - borderLeftWidth: 1, paddingTop: space[3], - '&:first-of-type': { - marginLeft: `-10px`, + position: 'relative', + '&:first-of-type::before': { + content: '""', + top: 0, + left: -10, + width: 1, + backgroundColor: 'var(--border-left-colour)', + position: 'absolute', + height: '100%', }, }, }} style={{ - borderLeftColor: palette(border(props.match.kind)), + '--border-left-colour': palette(border(props.match.kind)), }} > diff --git a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx index 6f59bceb75c..342a9926e8a 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx @@ -113,21 +113,27 @@ const Tab = (props: { // Ensures that if there are only two tabs they take up exactly 50% flex: '1 1 50%', borderLeftStyle: 'solid', + borderLeftColor: 'var(--border-left-colour)', '&:not(:first-of-type)': { paddingLeft: space[2], borderLeftWidth: 1, }, [from.leftCol]: { - paddingLeft: space[2], - borderLeftWidth: 1, flex: '0 0 auto', - '&:first-of-type': { - marginLeft: `-10px`, + position: 'relative', + '&:first-of-type::before': { + content: '""', + top: 0, + left: -10, + width: 1, + backgroundColor: 'var(--border-left-colour)', + position: 'absolute', + height: '100%', }, }, }} style={{ - borderLeftColor: palette(border(props.matchKind)), + '--border-left-colour': palette(border(props.matchKind)), }} > From a6a40643a90cb178f8e59f87d76aa4a657c77791 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Fri, 12 Jun 2026 11:41:37 +0100 Subject: [PATCH 084/293] updated jsdom to 27.0.0 --- dotcom-rendering/jest.config.js | 3 +- dotcom-rendering/package.json | 6 +- pnpm-lock.yaml | 6401 ++++++++++++++++++------------- 3 files changed, 3683 insertions(+), 2727 deletions(-) diff --git a/dotcom-rendering/jest.config.js b/dotcom-rendering/jest.config.js index e282699b5c1..9afcca4ce16 100644 --- a/dotcom-rendering/jest.config.js +++ b/dotcom-rendering/jest.config.js @@ -2,6 +2,7 @@ const swcConfig = require('./webpack/.swcrc.json'); const esModules = [ '@guardian/', + '@csstools', 'screenfull', 'node-fetch', 'data-uri-to-buffer', @@ -14,7 +15,7 @@ module.exports = { testEnvironment: 'jsdom', moduleDirectories: ['node_modules', 'src'], transform: { - '^.+\\.(js|ts|tsx)$': ['@swc/jest', swcConfig], + '^.+\\.(mjs|js|ts|tsx)$': ['@swc/jest', swcConfig], }, testMatch: ['**/*.test.+(ts|tsx|js)'], setupFilesAfterEnv: ['/scripts/jest/setup.ts'], diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index 0be3e36ec39..267233b01fd 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -27,13 +27,13 @@ "@emotion/cache": "11.14.0", "@emotion/react": "11.14.0", "@emotion/server": "11.11.0", - "@guardian/ab-testing-config": "workspace:ab-testing-config", + "@guardian/ab-testing-config": "workspace:^", "@guardian/braze-components": "22.2.0", "@guardian/bridget": "8.11.0", "@guardian/browserslist-config": "6.1.0", "@guardian/cdk": "catalog:", - "@guardian/consent-manager": "1.0.0", "@guardian/commercial-core": "34.0.0", + "@guardian/consent-manager": "1.0.0", "@guardian/core-web-vitals": "7.0.0", "@guardian/eslint-config": "catalog:", "@guardian/identity-auth": "6.0.1", @@ -124,7 +124,7 @@ "is-mobile": "3.1.1", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jsdom": "26.0.0", + "jsdom": "27.0.0", "lodash.debounce": "4.0.8", "log4js": "6.9.1", "lz-string": "1.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ba33937db4..6dff7a8cb5a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -219,28 +219,28 @@ importers: version: link:../config '@sveltejs/adapter-auto': specifier: 6.1.1 - version: 6.1.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) + version: 6.1.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))) '@sveltejs/adapter-static': specifier: 3.0.10 - version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) + version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))) '@sveltejs/kit': specifier: 2.60.1 - version: 2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + version: 2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) '@sveltejs/vite-plugin-svelte': specifier: 5.1.1 - version: 5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + version: 5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) svelte: specifier: 5.55.7 - version: 5.55.7(@typescript-eslint/types@8.59.2) + version: 5.55.7(@typescript-eslint/types@8.61.0) svelte-check: specifier: 4.3.3 - version: 4.3.3(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3) + version: 4.3.3(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3) typescript: specifier: 'catalog:' version: 5.9.3 vite: specifier: 6.4.2 - version: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) + version: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) ab-testing/notification-lambda: dependencies: @@ -312,7 +312,7 @@ importers: specifier: 11.11.0 version: 11.11.0 '@guardian/ab-testing-config': - specifier: workspace:ab-testing-config + specifier: workspace:^ version: link:../ab-testing/config '@guardian/braze-components': specifier: 22.2.0 @@ -379,13 +379,13 @@ importers: version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/addon-docs': specifier: 10.3.3 - version: 10.3.3(@types/react@18.3.1)(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) + version: 10.3.3(@types/react@18.3.1)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1) '@storybook/addon-webpack5-compiler-swc': specifier: 4.0.3 version: 4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1) '@storybook/react-webpack5': specifier: 10.3.3 - version: 10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + version: 10.3.3(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) '@svgr/webpack': specifier: 8.1.0 version: 8.1.0(typescript@5.9.3) @@ -487,13 +487,13 @@ importers: version: 0.0.6 '@types/webpack-bundle-analyzer': specifier: 4.7.0 - version: 4.7.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 4.7.0(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) '@types/webpack-env': specifier: 1.18.8 version: 1.18.8 '@types/webpack-node-externals': specifier: 3.0.4 - version: 3.0.4(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 3.0.4(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) '@types/youtube': specifier: 0.0.50 version: 0.0.50 @@ -603,8 +603,8 @@ importers: specifier: 29.7.0 version: 29.7.0 jsdom: - specifier: 26.0.0 - version: 26.0.0 + specifier: 27.0.0 + version: 27.0.0 lodash.debounce: specifier: 4.0.8 version: 4.0.8 @@ -622,7 +622,7 @@ importers: version: 3.3.2 postcss-styled-syntax: specifier: 0.7.1 - version: 0.7.1(postcss@8.5.9) + version: 0.7.1(postcss@8.5.15) preact: specifier: 10.15.1 version: 10.15.1 @@ -721,7 +721,7 @@ importers: version: 4.2.3 webpack: specifier: 5.104.1 - version: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-assets-manifest: specifier: 6.3.0 version: 6.3.0(webpack@5.104.1) @@ -733,7 +733,7 @@ importers: version: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) webpack-dev-server: specifier: 5.2.4 - version: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) + version: 5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1) webpack-hot-server-middleware: specifier: 0.6.1 version: 0.6.1(webpack@5.104.1) @@ -758,24 +758,26 @@ importers: packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} + '@adobe/css-tools@4.5.0': + resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} - '@adobe/css-tools@4.4.4': - resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} + '@asamuzakjp/css-color@4.1.2': + resolution: {integrity: sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==} - '@asamuzakjp/css-color@3.2.0': - resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} + '@asamuzakjp/dom-selector@6.8.1': + resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} + + '@asamuzakjp/nwsapi@2.3.9': + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} '@aws-cdk/asset-awscli-v1@2.2.273': resolution: {integrity: sha512-X57HYUtHt9BQrlrzUNcMyRsDUCoakYNnY6qh5lNwRCHPtQoTfXmuISkfLk0AjLkcbS5lw1LLTQFiQhTDXfiTvg==} - '@aws-cdk/asset-node-proxy-agent-v6@2.1.1': - resolution: {integrity: sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==} + '@aws-cdk/asset-node-proxy-agent-v6@2.1.2': + resolution: {integrity: sha512-pDiuqH+qY3zM9lhhLjbKJ1tnKOHzQ2V4Wr/3qsxyKeKAkuPMI/BVGvZG1PbrikUw949cGVTfVEt4ETKKYnrj0Q==} - '@aws-cdk/cloud-assembly-schema@53.27.0': - resolution: {integrity: sha512-OTxe/L2Vc60r2nYih7kFaFpn93sa7shJu9T0tQZsryeDE3HHOAuazKNmS6tLInOjJjVx/dvM5XGyUA+lZAiKxA==} + '@aws-cdk/cloud-assembly-schema@53.28.0': + resolution: {integrity: sha512-pZS+9bLGv2tCqcgxfA0WD3XjcqT3yE4ICvKeJEicw6aTdCxBl8FQ/AUsorY/6f2JrMS3kUQgvhXxA30MWcji0A==} engines: {node: '>= 18.0.0'} bundledDependencies: - jsonschema @@ -808,16 +810,16 @@ packages: resolution: {integrity: sha512-frCYjEyaOvQ6dZ8qaz+KZX+scPJnO7uN3HICDrkhpqdHEsSEDKtJFkCbYayAC0m0RyTWfX9gPqKDVmUOnUytHA==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-cognito-identity@3.1053.0': - resolution: {integrity: sha512-fMwSPTOWcYrKsB1NG1z9uRSLE/GDJR/375tjiAyO6z2UTlpLSuWkfoYx98oMwHaJpqb1fEhtZZQ7o8czblShJQ==} + '@aws-sdk/client-cognito-identity@3.1065.0': + resolution: {integrity: sha512-dGKFCiGbX5IrK+1NcqNgHKqWZtF3f5K2tDWJKDvGBurOO2q1SHu/XntEJydLWqEzYzJTimOZHaDzp/fqwYzu+g==} engines: {node: '>=20.0.0'} '@aws-sdk/client-cognito-identity@3.995.0': resolution: {integrity: sha512-CBGYQb6v6uIxvbID+ZzuYk/eGYGBVyXNUY8eu890WimzfahtyF/eLhvQTQJI0GrtKl8inSLKPqZOQ4tnrVAofQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-ec2@3.1053.0': - resolution: {integrity: sha512-8qfMGgfJdIOefogdYcF50yvX6rF9DNxljxh3qHz6CGuZTsXgJUzQ0U51z9mBUdh5YYTkK19o3c6LKuSHtT0MxQ==} + '@aws-sdk/client-ec2@3.1065.0': + resolution: {integrity: sha512-QQFyk3gf64pGuqrXA8vn4o/RRrt1oJuVpDY60juj8p3u30haqK6bgrXyyOCI3Klz4Av0uFr524xTnL94Fm4O8g==} engines: {node: '>=20.0.0'} '@aws-sdk/client-s3@3.995.0': @@ -828,8 +830,8 @@ packages: resolution: {integrity: sha512-CD+Kvf3mOp6lCDMiCkZ2o4hoHLRhBA2lwiZRZoAV7xTe2FR0zlnoC5irRRIWldhMEEPE/OZbLgfuCcWkuJUjtQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-ssm@3.1053.0': - resolution: {integrity: sha512-LxfEs7UWnGwRMZWtCWhqyUej6eJkszy4rBPjlLrMe/nrZm3RrpDRqCcZkkg4DcIkU6z4kcutX78tePitUhiPtA==} + '@aws-sdk/client-ssm@3.1065.0': + resolution: {integrity: sha512-qHdmHVrx6gtUPwF9lnDd2cxkvUdbs8JOzn0esVTOXcwLxH+KKzrkMWrV5FHfiWh3Nsd121waRpKSfEX1Tg25VQ==} engines: {node: '>=20.0.0'} '@aws-sdk/client-ssm@3.995.0': @@ -844,6 +846,10 @@ packages: resolution: {integrity: sha512-+Y5/4tHki0uYgyx8eun146DegRVQBpdKGK5RbV0FTKJPpaKTchvqVxrrRFK6Wk0JksO4iAZKw3eqxGEIwtO98w==} engines: {node: '>=20.0.0'} + '@aws-sdk/core@3.974.20': + resolution: {integrity: sha512-7sDi2B2N3mc3nf1nz6FyEx/FCrJ1N1QnBmraHHQNabFaeAh2IaOOLml48/rHOD1bICHgTRkbBgNTvUzEr5Z35g==} + engines: {node: '>=20.0.0'} + '@aws-sdk/crc64-nvme@3.972.0': resolution: {integrity: sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==} engines: {node: '>=20.0.0'} @@ -852,8 +858,8 @@ packages: resolution: {integrity: sha512-WLdg4ErAu1Zkf9uPKQFC+UryHjaLTXji5SyBF3pTtqbbYOQHIfmf9Gsvn5zFol1T4SOWE4nDc8entfBAkAVHYQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-cognito-identity@3.972.36': - resolution: {integrity: sha512-DkibmGSpgUKUwqvbooEnwoU/18pbrneuOcysCwHolC85Q6UXGesZ73Sk00oK/SpWOe+lfjDxq2nMDypJvi2OmQ==} + '@aws-sdk/credential-provider-cognito-identity@3.972.44': + resolution: {integrity: sha512-OjovzYsHOTZmOdrSQI2/CjGNgHO0c0ZHTFIkt3bBfrhgNFPTLnbZDvmGdMst7U5c1dqq4gzpUwZC6X9HA12MDQ==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-env@3.972.21': @@ -864,6 +870,10 @@ packages: resolution: {integrity: sha512-29wX9zpAvEt1vcj0psha+y6ygBHy2V/S72mp6e7q0KARLWXq+pwE/lR6qGkwknQvruh52lXvlqZIga8Hdxkucw==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-env@3.972.46': + resolution: {integrity: sha512-+GPXVS2srMOlH74S+SmC1gVuP2TvUZ0siuC0onKO93q+udP+M72dmY8wJfVQ5CX9z/9X5A1HHwz5yRIGBtskvQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.23': resolution: {integrity: sha512-4XZ3+Gu5DY8/n8zQFHBgcKTF7hWQl42G6CY9xfXVo2d25FM/lYkpmuzhYopYoPL1ITWkJ2OSBQfYEu5JRfHOhA==} engines: {node: '>=20.0.0'} @@ -872,6 +882,10 @@ packages: resolution: {integrity: sha512-IA3CQTjtJkb6u1H4mE4936c8OPBMa9Jggtwe8U2Mqw/vvb/tZ5Ebd0mcZcX0uKWQhOyYo/+qNIwkV5Xh+FeJJA==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-http@3.972.48': + resolution: {integrity: sha512-fA5loSdlocacRxyUXtpoHSMuk5rsIKRDzQYVMnMxjcmFeZshaJlJ8lymy/hYKji6sne/UmNGj5pxuEs6kq/Qcg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.972.23': resolution: {integrity: sha512-PZLSmU0JFpNCDFReidBezsgL5ji9jOBry8CnZdw4Jj6d0K2z3Ftnp44NXgADqYx5BLMu/ZHujfeJReaDoV+IwQ==} engines: {node: '>=20.0.0'} @@ -880,12 +894,16 @@ packages: resolution: {integrity: sha512-4mzII+3mZEVXXE1xzrLQrCJL7/r62A63bA6SVzZoNL5rqCJghpf+xgGltVrIBBs0n+mOZBKrQl2tRREtvZ5l6A==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-ini@3.972.52': + resolution: {integrity: sha512-szg1nnebqC+Svv6Vfsdf6P/QK8x5g/ghG2CKa/1WkHifRnq0BBmDELj2Qnqk9nPsUvEu/OEcYic97CPLpKqF9g==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-login@3.972.23': resolution: {integrity: sha512-OmE/pSkbMM3dCj1HdOnZ5kXnKK+R/Yz+kbBugraBecp0pGAs21eEURfQRz+1N2gzIHLVyGIP1MEjk/uSrFsngg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.43': - resolution: {integrity: sha512-HG7kQCwXtbv3oBV61Ins0oNX8KKyvrMqqRkb6ZiAfQHbMuHaiNaEb2KnpKLPkNpqImSBK82UkVE/kaY6IfWikA==} + '@aws-sdk/credential-provider-login@3.972.51': + resolution: {integrity: sha512-csHFsH+/VjnI40oqm1l1OqMY4B4kza36DbfcbHcgcbobgjebasqUbTU34xvwUkvtoNGGizbfyMSlMzJWUPv3dQ==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-node@3.972.24': @@ -896,6 +914,10 @@ packages: resolution: {integrity: sha512-sDaBIT0yrNNIPfvlsiTCmANm07zKju+ipWODjEXgZlsjMeIJR3LVp7RDyAOzUoAsTbDfYKDWp+i5WrFiQP6rmQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-node@3.972.54': + resolution: {integrity: sha512-vinTSQtziNHxi2nqXF+76jr2sO44q88Ind1qFFVaotNgBaC1rcWDjBug8yoE8n0ov33s21xks9WY5XDHH9SENw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.21': resolution: {integrity: sha512-nRxbeOJ1E1gVA0lNQezuMVndx+ZcuyaW/RB05pUsznN5BxykSlH6KkZ/7Ca/ubJf3i5N3p0gwNO5zgPSCzj+ww==} engines: {node: '>=20.0.0'} @@ -904,6 +926,10 @@ packages: resolution: {integrity: sha512-2k/amBifLd75eXNwgvPw/2lKYSQ3NhvHQgkVKVjfUq13/eJ3JRtHmznuFenn74OK3sSfp4SMy1YB2w+UVXoKqA==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-process@3.972.46': + resolution: {integrity: sha512-VUoNFBIjWrUN8NbFiQiuxQEgFjvziAlBRPK+ddh27aj65gk0BYu6bLZnrdrNZwpW6vAihtSUtEMQ1PUJ32QRPA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.972.23': resolution: {integrity: sha512-APUccADuYPLL0f2htpM8Z4czabSmHOdo4r41W6lKEZdy++cNJ42Radqy6x4TopENzr3hR6WYMyhiuiqtbf/nAA==} engines: {node: '>=20.0.0'} @@ -912,6 +938,10 @@ packages: resolution: {integrity: sha512-LPc3+Y4vhH1T4x6CMqwCM6hk5+SRf/Lwmgm8INm95wxTtIRHcMwQUVkDzWu4Iw/RSncxYM2BC01OrYbxOPZvyg==} engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-sso@3.972.51': + resolution: {integrity: sha512-60qhpQcSDIKIr0AuBlmJezKX0b5nbJPCINiR49N9yJXrEI5tTRwsXVBr0IdSvvsNJyqgiINyoBd++Ed0yvggbw==} + engines: {node: '>=20.0.0'} + '@aws-sdk/credential-provider-web-identity@3.972.23': resolution: {integrity: sha512-H5JNqtIwOu/feInmMMWcK0dL5r897ReEn7n2m16Dd0DPD9gA2Hg8Cq4UDzZ/9OzaLh/uqBM6seixz0U6Fi2Eag==} engines: {node: '>=20.0.0'} @@ -920,8 +950,12 @@ packages: resolution: {integrity: sha512-wQtL34lUD/09VXjwAUo2T+I3aEXRDxMB3DKmTJL/Zj0Gi6sLDTrVhae1XVt01yzkquOWajI/sZW72JGDZ1ciTw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-providers@3.1053.0': - resolution: {integrity: sha512-jMzNBhYIIzaKiVOFndhyWSvEIosiU/zSxgcOaGXrHGcwlRXcFgTgZEcOFL504hxg4BdrrAIVdGw55Zk9zMhs7g==} + '@aws-sdk/credential-provider-web-identity@3.972.51': + resolution: {integrity: sha512-0X5eWsUIp8ItRJeJBBrhQAPzc9AQelDetRTVTsycCAISCCzM17R4hs/vFAPeQ0o0B35sciLiqe/Pwmml909cZA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-providers@3.1065.0': + resolution: {integrity: sha512-g5FGZvk9UbAD7HeGFCp+fQGJiNAneJJabpAZY13SSmVeI2Yw/V66U3na1StnqvZCYfXvGybJvSGtq2IdoCrK4g==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-providers@3.995.0': @@ -940,6 +974,10 @@ packages: resolution: {integrity: sha512-E663+r/UQpvF3aJkD40p5ZANVQFsUcbE39jifMtN7wc0t1M0+2gJJp3i75R49aY9OiSX5lfVyPUNjN/BNRCCZA==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-host-header@3.972.21': + resolution: {integrity: sha512-+SRZL54/T9Ryxa/NmHM7WZAliU6wnfzeosT/+4IVuTgq0zSCpPx2j3yaEP4JFZlvWvoOCbKgr+4tBqSAG/dl5Q==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-host-header@3.972.8': resolution: {integrity: sha512-wAr2REfKsqoKQ+OkNqvOShnBoh+nkPurDKW7uAeVSu6kUECnWlSJiPvnoqxGlfousEY/v9LfS9sNc46hjSYDIQ==} engines: {node: '>=20.0.0'} @@ -948,16 +986,24 @@ packages: resolution: {integrity: sha512-nIg64CVrsXp67vbK0U1/Is8rik3huS3QkRHn2DRDx4NldrEFMgdkZGI/+cZMKD9k4YOS110Dfu21KZLHrFA/1g==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-logger@3.972.20': + resolution: {integrity: sha512-8oOvo7XNDeOlwa5ys2Q0UTLCKmtvRiqf8rOU63lKniPmP3dnI5lnoy9dteZ79lxb9hmXCrO28aZMqds6C5AEoA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-logger@3.972.8': resolution: {integrity: sha512-CWl5UCM57WUFaFi5kB7IBY1UmOeLvNZAZ2/OZ5l20ldiJ3TiIz1pC65gYj8X0BCPWkeR1E32mpsCk1L1I4n+lA==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-recursion-detection@3.972.22': + resolution: {integrity: sha512-q4H/CoOYrTbyAW0d9RrHf9kTYKVXpAwoK0VEy3UT2Asad+6aa6vzQgz35dh20tRA7zlEo/Nsyjy9PVlHgdq0Vg==} + engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-recursion-detection@3.972.8': resolution: {integrity: sha512-BnnvYs2ZEpdlmZ2PNlV2ZyQ8j8AEkMTjN79y/YA475ER1ByFYrkVR85qmhni8oeTaJcDqbx364wDpitDAA/wCA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-ec2@3.972.27': - resolution: {integrity: sha512-jOUHykRIV8Ki+004htgSf/IhfHHdvIw7aQ+qaiTA3qa7gSLFCsqm17Sgj/vZcZicNuiIthuURStKmcYeFS/bIg==} + '@aws-sdk/middleware-sdk-ec2@3.972.34': + resolution: {integrity: sha512-xOxVjHBm04meFPYBBNN3X1eMP1epESN5E1t+JCWCbkQMTkijOnrbR3/ZOdWxRCPoCba5NG6mXaZ9Kg5oy5CywQ==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-sdk-s3@3.972.11': @@ -972,6 +1018,10 @@ packages: resolution: {integrity: sha512-dLTWy6IfAMhNiSEvMr07g/qZ54be6pLqlxVblbF6AzafmmGAzMMj8qMoY9B4+YgT+gY9IcuxZslNh03L6PyMCQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/middleware-user-agent@3.972.50': + resolution: {integrity: sha512-5JIDcDFWy3DUW95sOlXLbeb7RkGFUcNh1QidKsznqtlm5YGsXP0EGWaqzxBTvVmOhqKs2RmNmI6w9V/5dS3CLQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/nested-clients@3.995.0': resolution: {integrity: sha512-7gq9gismVhESiRsSt0eYe1y1b6jS20LqLk+e/YSyPmGi9yHdndHQLIq73RbEJnK/QPpkQGFqq70M1mI46M1HGw==} engines: {node: '>=20.0.0'} @@ -980,8 +1030,12 @@ packages: resolution: {integrity: sha512-ptZ1HF4yYHNJX8cgFF+8NdYO69XJKZn7ft0/ynV3c0hCbN+89fAbrLS+fqniU2tW8o9Kfqhj8FUh+IPXb2Qsuw==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.997.11': - resolution: {integrity: sha512-nWXXJ1r/r8N2Gw1pWolRgED38/A9A8DHR2ETWIv220zh4PZHcybbR4hUVWWktmNXTRHzDJwRluapHn0rZxuoqA==} + '@aws-sdk/nested-clients@3.997.19': + resolution: {integrity: sha512-P2Otgf15GBJMKzG6j5Ddf7w+Kz6z2jvesMy874TD3jlMfDWNK7clJeUd7hgigdeVOotjoUP4emcTWVdS9sfZDw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/region-config-resolver@3.972.24': + resolution: {integrity: sha512-WY6uVMsq0EvxY4BcYhZmG2Ivd1EzNvZAqsXFlL3pTPMG0P4J83TYVQIs8P0nd5lc+Bp3llrYwggruvXzrfUtsQ==} engines: {node: '>=20.0.0'} '@aws-sdk/region-config-resolver@3.972.9': @@ -992,8 +1046,8 @@ packages: resolution: {integrity: sha512-9Qx5JcAucnxnomREPb2D6L8K8GLG0rknt3+VK/BU3qTUynAcV4W21DQ04Z2RKDw+DYpW88lsZpXbVetWST2WUg==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.28': - resolution: {integrity: sha512-qs9z5LqXO/CZC2Lg9SGKpoLU8Rhi+m2pFKZqfO9pytX1clc0katqtsDNupJxFy0xT9wsZSPzM2v1y+/H/zfp5Q==} + '@aws-sdk/signature-v4-multi-region@3.996.33': + resolution: {integrity: sha512-Hn0RThJEbyOZWV2PV9Z4YD3nitGPxybmyU17dSe9b61WOBcKnqS0WTtM3c1zyZq9WnGiyrfi/i+UBPUk7cM8Ug==} engines: {node: '>=20.0.0'} '@aws-sdk/token-providers@3.1014.0': @@ -1004,6 +1058,14 @@ packages: resolution: {integrity: sha512-QqZNB3so7UIDxZtroc85TQaLVxdZRFm0eWM1CSR2N+b06as9TOrilvrlTZuj3guYlxMs6yLOgGxnklJ5qMYtTw==} engines: {node: '>=20.0.0'} + '@aws-sdk/token-providers@3.1065.0': + resolution: {integrity: sha512-qdHQntq82gMqG6Tf8xrgmhJxacaYkxW4PEeDg/ISMVJ84EWe7iD6JyCTgbyox3uNDH6vqEJ8GUiTaXCq307zVw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/types@3.973.12': + resolution: {integrity: sha512-43ajd1NF0RMgX5k0hxCNUyEdrtFUsb2aHT2QvpktSC/2Eyb2Jr/JPVqdp0XIoaHWikZJq5tNWSLO6kB5q2eMCA==} + engines: {node: '>=20.0.0'} + '@aws-sdk/types@3.973.6': resolution: {integrity: sha512-Atfcy4E++beKtwJHiDln2Nby8W/mam64opFPTiHEqgsthqeydFS1pY+OUlN1ouNOmf8ArPU/6cDS65anOP3KQw==} engines: {node: '>=20.0.0'} @@ -1028,6 +1090,13 @@ packages: resolution: {integrity: sha512-f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw==} engines: {node: '>=14.0.0'} + '@aws-sdk/util-locate-window@3.965.7': + resolution: {integrity: sha512-M0D6oIpohdNHjc7udzTHEQyot0+0iuA36jc2I9Hps+f/GtKi2HO/pyijQnCnNcwZqLB5+rtn81z3eZK/GyjAmA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/util-user-agent-browser@3.972.21': + resolution: {integrity: sha512-Y9MPH4VZaIebwxiVK6dMzSt5L04oyNiK3NNwFe4qP5B2Hfo+pmEVpSJSa+gARPtcJeRyehUMPu5/I9DLdW0cBg==} + '@aws-sdk/util-user-agent-browser@3.972.8': resolution: {integrity: sha512-B3KGXJviV2u6Cdw2SDY2aDhoJkVfY/Q/Trwk2CMSkikE1Oi6gRzxhvhIfiRpHfmIsAhV4EA54TVEX8K6CbHbkA==} @@ -1040,6 +1109,10 @@ packages: aws-crt: optional: true + '@aws-sdk/util-user-agent-node@3.973.36': + resolution: {integrity: sha512-wsmSmHTrK9lV+5SKBekp1J7W6PufdZE08X0xv5Lz1OdgYRmyuYDy/++SslKdXhcVQjxLtzMTZaLqqLZmTx6OaQ==} + engines: {node: '>=20.0.0'} + '@aws-sdk/xml-builder@3.972.15': resolution: {integrity: sha512-PxMRlCFNiQnke9YR29vjFQwz4jq+6Q04rOVFeTDR2K7Qpv9h9FOWOxG+zJjageimYbWqE3bTuLjmryWHAWbvaA==} engines: {node: '>=20.0.0'} @@ -1048,148 +1121,158 @@ packages: resolution: {integrity: sha512-GH+Kjz4nPKWKHnsiQpnhP1MJdTGIcK4rAka6tzakgjjUkVgNsmPeEbbRAf09SzS1hjGu6duGHCBsxYke0BhHjQ==} engines: {node: '>=20.0.0'} + '@aws-sdk/xml-builder@3.972.29': + resolution: {integrity: sha512-fk0niuGFxfi8yIJuMVM4mhwObkiQSuwZFj3tAPrLVx64Pk3BkrEIpqjzHKY4hKoEBUD6Jg/S74Zj9jy+5F3DnQ==} + engines: {node: '>=20.0.0'} + '@aws/lambda-invoke-store@0.2.2': resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} engines: {node: '>=18.0.0'} - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + '@aws/lambda-invoke-store@0.2.4': + resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} + engines: {node: '>=18.0.0'} + + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} '@babel/compat-data@7.29.7': resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} engines: {node: '>=6.9.0'} - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.29.7': resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.3': - resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + '@babel/helper-create-class-features-plugin@7.29.7': + resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} + '@babel/helper-create-regexp-features-plugin@7.29.7': + resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.5': - resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} + '@babel/helper-define-polyfill-provider@0.6.8': + resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + '@babel/helper-member-expression-to-functions@7.29.7': + resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + '@babel/helper-optimise-call-expression@7.29.7': + resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + '@babel/helper-remap-async-to-generator@7.29.7': + resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + '@babel/helper-replace-supers@7.29.7': + resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.29.7': resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.28.3': - resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} + '@babel/helper-wrap-function@7.29.7': + resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7': + resolution: {integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7': + resolution: {integrity: sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7': + resolution: {integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7': + resolution: {integrity: sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7': + resolution: {integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': - resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7': + resolution: {integrity: sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1215,14 +1298,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + '@babel/plugin-syntax-import-assertions@7.29.7': + resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.29.7': + resolution: {integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1237,8 +1326,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1273,14 +1362,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-top-level-await@7.14.5': resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + '@babel/plugin-syntax-typescript@7.29.7': + resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1291,350 +1386,350 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + '@babel/plugin-transform-arrow-functions@7.29.7': + resolution: {integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.28.0': - resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} + '@babel/plugin-transform-async-generator-functions@7.29.7': + resolution: {integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} + '@babel/plugin-transform-async-to-generator@7.29.7': + resolution: {integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + '@babel/plugin-transform-block-scoped-functions@7.29.7': + resolution: {integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.28.4': - resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==} + '@babel/plugin-transform-block-scoping@7.29.7': + resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} + '@babel/plugin-transform-class-properties@7.29.7': + resolution: {integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.28.3': - resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} + '@babel/plugin-transform-class-static-block@7.29.7': + resolution: {integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.28.4': - resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} + '@babel/plugin-transform-classes@7.29.7': + resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} + '@babel/plugin-transform-computed-properties@7.29.7': + resolution: {integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.28.0': - resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==} + '@babel/plugin-transform-destructuring@7.29.7': + resolution: {integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} + '@babel/plugin-transform-dotall-regex@7.29.7': + resolution: {integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + '@babel/plugin-transform-duplicate-keys@7.29.7': + resolution: {integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + '@babel/plugin-transform-dynamic-import@7.29.7': + resolution: {integrity: sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-explicit-resource-management@7.28.0': - resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} + '@babel/plugin-transform-explicit-resource-management@7.29.7': + resolution: {integrity: sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} + '@babel/plugin-transform-exponentiation-operator@7.29.7': + resolution: {integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + '@babel/plugin-transform-export-namespace-from@7.29.7': + resolution: {integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + '@babel/plugin-transform-for-of@7.29.7': + resolution: {integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + '@babel/plugin-transform-function-name@7.29.7': + resolution: {integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} + '@babel/plugin-transform-json-strings@7.29.7': + resolution: {integrity: sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + '@babel/plugin-transform-literals@7.29.7': + resolution: {integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} + '@babel/plugin-transform-logical-assignment-operators@7.29.7': + resolution: {integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + '@babel/plugin-transform-member-expression-literals@7.29.7': + resolution: {integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + '@babel/plugin-transform-modules-amd@7.29.7': + resolution: {integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + '@babel/plugin-transform-modules-commonjs@7.29.7': + resolution: {integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.29.4': - resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} + '@babel/plugin-transform-modules-systemjs@7.29.7': + resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + '@babel/plugin-transform-modules-umd@7.29.7': + resolution: {integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + '@babel/plugin-transform-new-target@7.29.7': + resolution: {integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + '@babel/plugin-transform-nullish-coalescing-operator@7.29.7': + resolution: {integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} + '@babel/plugin-transform-numeric-separator@7.29.7': + resolution: {integrity: sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.28.4': - resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} + '@babel/plugin-transform-object-rest-spread@7.29.7': + resolution: {integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + '@babel/plugin-transform-object-super@7.29.7': + resolution: {integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} + '@babel/plugin-transform-optional-catch-binding@7.29.7': + resolution: {integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} + '@babel/plugin-transform-optional-chaining@7.29.7': + resolution: {integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + '@babel/plugin-transform-parameters@7.29.7': + resolution: {integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} + '@babel/plugin-transform-private-methods@7.29.7': + resolution: {integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} + '@babel/plugin-transform-private-property-in-object@7.29.7': + resolution: {integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + '@babel/plugin-transform-property-literals@7.29.7': + resolution: {integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-constant-elements@7.23.3': - resolution: {integrity: sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==} + '@babel/plugin-transform-react-constant-elements@7.29.7': + resolution: {integrity: sha512-J0wGhKan+rIiE2OhfhRptySLrJ6SjQYM6b6N1FMlhyhCcw1Mig8vQjWchyB+bgHGDvaWo6Diu6CLRMra2uMtmg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.27.1': - resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} + '@babel/plugin-transform-react-display-name@7.29.7': + resolution: {integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + '@babel/plugin-transform-react-jsx-development@7.29.7': + resolution: {integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + '@babel/plugin-transform-react-jsx@7.29.7': + resolution: {integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} + '@babel/plugin-transform-react-pure-annotations@7.29.7': + resolution: {integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.28.4': - resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} + '@babel/plugin-transform-regenerator@7.29.7': + resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.27.1': - resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} + '@babel/plugin-transform-regexp-modifiers@7.29.7': + resolution: {integrity: sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + '@babel/plugin-transform-reserved-words@7.29.7': + resolution: {integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + '@babel/plugin-transform-shorthand-properties@7.29.7': + resolution: {integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} + '@babel/plugin-transform-spread@7.29.7': + resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + '@babel/plugin-transform-sticky-regex@7.29.7': + resolution: {integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + '@babel/plugin-transform-template-literals@7.29.7': + resolution: {integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + '@babel/plugin-transform-typeof-symbol@7.29.7': + resolution: {integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.27.1': - resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} + '@babel/plugin-transform-typescript@7.29.7': + resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + '@babel/plugin-transform-unicode-escapes@7.29.7': + resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} + '@babel/plugin-transform-unicode-property-regex@7.29.7': + resolution: {integrity: sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + '@babel/plugin-transform-unicode-regex@7.29.7': + resolution: {integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} + '@babel/plugin-transform-unicode-sets-regex@7.29.7': + resolution: {integrity: sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.28.3': - resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} + '@babel/preset-env@7.29.7': + resolution: {integrity: sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1644,45 +1739,48 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.27.1': - resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} + '@babel/preset-react@7.29.7': + resolution: {integrity: sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.27.1': - resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} + '@babel/preset-typescript@7.29.7': + resolution: {integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + '@babel/runtime@7.29.7': + resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@borewit/text-codec@0.2.2': + resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} + '@braze/web-sdk@6.5.0': resolution: {integrity: sha512-MdfwZn+tfe7+tR8Ir5468/njQDGhgVB9tBthq7gwSETsjv6Q+Hw2bXiQy3scDcACI2RLqiq+dNXKh6fD+pN4/Q==} - '@cacheable/memory@2.0.8': - resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==} + '@cacheable/memory@2.0.9': + resolution: {integrity: sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==} - '@cacheable/utils@2.4.0': - resolution: {integrity: sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==} + '@cacheable/utils@2.4.1': + resolution: {integrity: sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==} '@creditkarma/thrift-server-core@1.0.4': resolution: {integrity: sha512-Jook5uFJqPeM/D0taSdKHeoerZB6HboSDMqBDWhVDJVSKJGWPSMch4GNALRqr8nCekLKMYkdCgj4FAVetnxpGA==} @@ -1691,23 +1789,23 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@csstools/color-helpers@5.1.0': - resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} - engines: {node: '>=18'} + '@csstools/color-helpers@6.0.2': + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + engines: {node: '>=20.19.0'} - '@csstools/css-calc@2.1.4': - resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} - engines: {node: '>=18'} + '@csstools/css-calc@3.2.1': + resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@3.1.0': - resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} - engines: {node: '>=18'} + '@csstools/css-color-parser@4.1.1': + resolution: {integrity: sha512-eZ5XOtyhK+mggRafYUWzA0tvaYOFgdY8AkgQiCJF9qNAePnUo/zmsqqYubBBb3sQ8uNUaSKTY9s9klfRaAXL0g==} + engines: {node: '>=20.19.0'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 '@csstools/css-parser-algorithms@3.0.5': resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} @@ -1715,8 +1813,14 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-syntax-patches-for-csstree@1.1.1': - resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} + '@csstools/css-parser-algorithms@4.0.0': + resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@csstools/css-tokenizer': ^4.0.0 + + '@csstools/css-syntax-patches-for-csstree@1.1.5': + resolution: {integrity: sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==} peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: @@ -1727,6 +1831,10 @@ packages: resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} + '@csstools/css-tokenizer@4.0.0': + resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + engines: {node: '>=20.19.0'} + '@csstools/media-query-list-parser@4.0.3': resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} engines: {node: '>=18'} @@ -1821,8 +1929,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1845,8 +1953,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1869,8 +1977,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1893,8 +2001,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1917,8 +2025,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1941,8 +2049,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1965,8 +2073,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1989,8 +2097,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2013,8 +2121,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2037,8 +2145,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2061,8 +2169,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2085,8 +2193,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2109,8 +2217,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2133,8 +2241,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2157,8 +2265,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2181,8 +2289,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2205,8 +2313,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2223,8 +2331,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2247,8 +2355,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2265,8 +2373,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2289,8 +2397,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -2307,8 +2415,8 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -2331,8 +2439,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2355,8 +2463,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2379,8 +2487,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2403,8 +2511,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2646,8 +2754,8 @@ packages: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + '@istanbuljs/schema@0.1.6': + resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} engines: {node: '>=8'} '@jest/console@29.7.0': @@ -2663,8 +2771,8 @@ packages: node-notifier: optional: true - '@jest/create-cache-key-function@30.2.0': - resolution: {integrity: sha512-44F4l4Enf+MirJN8X/NhdGkl71k5rBYiwdVlo4HxOwbu0sHV8QKrGEedb1VUU4K3W7fBKE0HGfbn7eZm0Ti3zg==} + '@jest/create-cache-key-function@30.4.1': + resolution: {integrity: sha512-R+xGEtzA95NIsvpXJSROG4t01956dDOt17KpamguY4XOnGvdHNFFXE7Er0C1OAsRjOwiIxpKqOvGlznIGZIQlQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/environment@29.7.0': @@ -2687,8 +2795,8 @@ packages: resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/pattern@30.0.1': - resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + '@jest/pattern@30.4.0': + resolution: {integrity: sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/reporters@29.7.0': @@ -2704,8 +2812,8 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/schemas@30.0.5': - resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + '@jest/schemas@30.4.1': + resolution: {integrity: sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/source-map@29.6.3': @@ -2728,8 +2836,8 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/types@30.2.0': - resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} + '@jest/types@30.4.1': + resolution: {integrity: sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jridgewell/gen-mapping@0.3.13': @@ -2760,36 +2868,120 @@ packages: peerDependencies: tslib: '2' + '@jsonjoy.com/base64@17.67.0': + resolution: {integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@jsonjoy.com/buffers@1.2.1': resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + '@jsonjoy.com/buffers@17.67.0': + resolution: {integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@jsonjoy.com/codegen@1.0.0': resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + '@jsonjoy.com/codegen@17.67.0': + resolution: {integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-core@4.57.6': + resolution: {integrity: sha512-uI++Wx6VkBJqVmkb4ZeExwAVpZiA2Do5NrEtXoDk0Pdvce3ytFXJoviT1sLOj16+qDIMnD5nWPfOhVpnDmRJKg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-fsa@4.57.6': + resolution: {integrity: sha512-pKkw/yC5CzSZKhIIUIsH1przOa+K5jGmZIg1sWaSF24JojyrUFbjcQv7QrcGAudriei6HQ6R0BFj+V8NbQinJw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node-builtins@4.57.6': + resolution: {integrity: sha512-V4DgEFT3Cg5S9fCMOZSCVdTxdJWWLBO0WnAazV7hnCM96u5zXHyW/ubDAfcSVwqjkMJ50W1Y44IXtxRoIwaCVg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node-to-fsa@4.57.6': + resolution: {integrity: sha512-+JptNw3iifihxH2rEXrninDzX4FFVW8JD/wPR8GbJPAeL9CQUSblrlumOPB5gZuS7tYRX+PJPLtT7XzKoRhv/Q==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node-utils@4.57.6': + resolution: {integrity: sha512-foyUrfS7WmYEUzqYXSNxmJBcSj04TABrkpFabwO9SCDCpVCfJ+qG+2sk5FjfiflG2n0SDFZDCJ6vYlJAEpxJFg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-node@4.57.6': + resolution: {integrity: sha512-Kbn1jdkvDN4F2+BhoB6mMu7NCbhP0bgA5NcI1aJj/Q5UcU+I1JLLW+dEQean33iV4tXv35AzBVKPICnDltBpxw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-print@4.57.6': + resolution: {integrity: sha512-96eAn4Dudtt67LTeuU47yUD+pg9/G/oKpI10zei9ljk3X3WK4lYKc+n3cpaPCAbKPzoyfxl0mXm8f8Y7BOSFXw==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/fs-snapshot@4.57.6': + resolution: {integrity: sha512-V57CMzbOgTzUWGOWQ8GzHQdpJP6JnrYVNCtTBNxVYEnlVRvo4uEJqHhtAT8vhDFrIuJOXLrTL1Fki4h5oI7xxg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@jsonjoy.com/json-pack@1.21.0': resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + '@jsonjoy.com/json-pack@17.67.0': + resolution: {integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@jsonjoy.com/json-pointer@1.0.2': resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + '@jsonjoy.com/json-pointer@17.67.0': + resolution: {integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@jsonjoy.com/util@1.9.0': resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' + '@jsonjoy.com/util@17.67.0': + resolution: {integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + '@keyv/bigmap@1.3.1': resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} engines: {node: '>= 18'} @@ -2808,8 +3000,124 @@ packages: '@types/react': '>=16' react: '>=16' - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@napi-rs/nice-android-arm-eabi@1.1.1': + resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/nice-android-arm64@1.1.1': + resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/nice-darwin-arm64@1.1.1': + resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/nice-darwin-x64@1.1.1': + resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/nice-freebsd-x64@1.1.1': + resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-arm64-musl@1.1.1': + resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} + engines: {node: '>= 10'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} + engines: {node: '>= 10'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-x64-gnu@1.1.1': + resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-x64-musl@1.1.1': + resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@napi-rs/nice-openharmony-arm64@1.1.1': + resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [openharmony] + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/nice-win32-x64-msvc@1.1.1': + resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/nice@1.1.1': + resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} + engines: {node: '>= 10'} + + '@napi-rs/wasm-runtime@1.1.5': + resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 '@noble/hashes@1.4.0': resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} @@ -2818,6 +3126,9 @@ packages: '@nodable/entities@2.1.0': resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} + '@nodable/entities@2.1.1': + resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2870,9 +3181,9 @@ packages: resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} engines: {node: '>=20.0.0'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@pkgr/core@0.3.6': + resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} + engines: {node: ^14.18.0 || >=16.0.0} '@playwright/test@1.60.0': resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==} @@ -3194,9 +3505,6 @@ packages: cpu: [x64] os: [win32] - '@sec-ant/readable-stream@0.4.1': - resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@sentry-internal/browser-utils@10.52.0': resolution: {integrity: sha512-x/yEPZdpH6NGQeoeQnV9tj8reAH8twNttiltGZl2o8Rk7sQeUfe7E8yuYP2XbJ2RqyZK5qRS3COrNyMPzf6KFA==} engines: {node: '>=18'} @@ -3221,18 +3529,18 @@ packages: resolution: {integrity: sha512-VA/kAqLhkMnRWY2RXdBLyTemR9D4m7MVRy/gyapoq9yvllVPx9WXbvKgnMP2LQp7mFgT/oLFvw58aQKaYTGn3A==} engines: {node: '>=18'} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.27.10': + resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} - '@sinclair/typebox@0.34.41': - resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} + '@sinclair/typebox@0.34.49': + resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} '@sindresorhus/is@5.6.0': resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} - '@sinonjs/commons@3.0.0': - resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} @@ -3253,6 +3561,10 @@ packages: resolution: {integrity: sha512-iIzMC5NmOUP6WL6o8iPBjFhUhBZ9pPjpUpQYWMUFQqKyXXzOftbfK8zcQCz/jFV1Psmf05BK5ypx4K2r4Tnwdg==} engines: {node: '>=18.0.0'} + '@smithy/config-resolver@4.5.6': + resolution: {integrity: sha512-AXbvUX9aNY2qCLOMCikpl1Df5w2CNFEqbEb6XafG81FJbAbB8avIT7BOx1KDqiO86J/38qKQ3YuakfAfY3iBkQ==} + engines: {node: '>=18.0.0'} + '@smithy/core@3.23.12': resolution: {integrity: sha512-o9VycsYNtgC+Dy3I0yrwCqv9CWicDnke0L7EVOrZtJpjb2t0EjaEofmMrYc0T1Kn3yk32zm6cspxF9u9Bj7e5w==} engines: {node: '>=18.0.0'} @@ -3261,6 +3573,10 @@ packages: resolution: {integrity: sha512-3UNRKEyQyAgVgM0LGlerCLm+ChZWZ1GPfde+jBEW6bm6bSBGU1p0EbblaUV3unbhwvidjLA5Zs3sOs7mnZwvAw==} engines: {node: '>=18.0.0'} + '@smithy/core@3.24.6': + resolution: {integrity: sha512-wBXDRup6UU97VKyaiRo8AssnfStPtG0oAAfpq/bC0a1YYau8pM86YB4kM6ccoVi1mS8l/UHbn9oDM+7uozr/ug==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.2.12': resolution: {integrity: sha512-cr2lR792vNZcYMriSIj+Um3x9KWrjcu98kn234xA6reOAFMmbRpQMOv8KPgEmLLtx3eldU6c5wALKFqNOhugmg==} engines: {node: '>=18.0.0'} @@ -3269,6 +3585,10 @@ packages: resolution: {integrity: sha512-vKW0MEFRU4Y3MkVZUkpJm+g9qyPGLCXhc0YLggUdSdBB4g7IaSSsCE75P9rBXyWHrXY1UYSQUl8/DwsTR7QciA==} engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.3.8': + resolution: {integrity: sha512-5cAM+KZC02sTqDt6NaLXyu50M/GNMd1eTzDVR8Lb0BBsVtu7RWHo47VPPEEv1vt3Yub6uzr+M5FHC+GtoT0USg==} + engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@4.2.8': resolution: {integrity: sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==} engines: {node: '>=18.0.0'} @@ -3297,6 +3617,10 @@ packages: resolution: {integrity: sha512-qM7AUKI4G6d7lNgaZD3lA1tWSolh5r6gcixfTZAPstVURfjIbvreVTPz+994M0yC3HbX4YYhDRgr31Xy3XwWOQ==} engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@5.4.6': + resolution: {integrity: sha512-FEwEYJ1jlBKdhe9TPzfghEi1bP55ZeEImlDkEa62bBBYzUcnB6RUCyuiS2mqKt6ZVjUbBgcNhzfIctH+Hevx9g==} + engines: {node: '>=18.0.0'} + '@smithy/hash-blob-browser@4.2.9': resolution: {integrity: sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==} engines: {node: '>=18.0.0'} @@ -3305,6 +3629,10 @@ packages: resolution: {integrity: sha512-QhBYbGrbxTkZ43QoTPrK72DoYviDeg6YKDrHTMJbbC+A0sml3kSjzFtXP7BtbyJnXojLfTQldGdUR0RGD8dA3w==} engines: {node: '>=18.0.0'} + '@smithy/hash-node@4.3.6': + resolution: {integrity: sha512-lIZyQ7gDxURrnfkjalM0lKmDnfZYuPzNBYlkza3czPTQNVYsg4e0o90Zx/RpxhamKKOGsQGCsopp0ULsJqltNQ==} + engines: {node: '>=18.0.0'} + '@smithy/hash-stream-node@4.2.8': resolution: {integrity: sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==} engines: {node: '>=18.0.0'} @@ -3313,6 +3641,10 @@ packages: resolution: {integrity: sha512-/4F1zb7Z8LOu1PalTdESFHR0RbPwHd3FcaG1sI3UEIriQTWakysgJr65lc1jj6QY5ye7aFsisajotH6UhWfm/g==} engines: {node: '>=18.0.0'} + '@smithy/invalid-dependency@4.3.6': + resolution: {integrity: sha512-jUH1Eth7Sgn4KPBX5OKYDRpNjzul7AzsIhxKXT1rHXPTSfY00/7Kb9RtNil5SDAlPPsxaUiesR/rql2wjackmw==} + engines: {node: '>=18.0.0'} + '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} @@ -3325,34 +3657,58 @@ packages: resolution: {integrity: sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-compression@4.3.32': - resolution: {integrity: sha512-k2juJHA58gqAgnEshBW4b+CqCEaYEGSr6Hms4YIsDdUCHSbFy/JWDWEaNpjNDrlt9h/QuoRycTp1gTXJ1vdpdg==} + '@smithy/middleware-compression@4.4.6': + resolution: {integrity: sha512-wZQpnjrGSO2IFxhwWNaeRzHh2swSwRGWaCVgQN9zqYdtP98tcNYyqI7YvPeVTwf9CvQTas7xlmR3NY5L1i32mg==} engines: {node: '>=18.0.0'} '@smithy/middleware-content-length@4.2.12': resolution: {integrity: sha512-YE58Yz+cvFInWI/wOTrB+DbvUVz/pLn5mC5MvOV4fdRUc6qGwygyngcucRQjAhiCEbmfLOXX0gntSIcgMvAjmA==} engines: {node: '>=18.0.0'} + '@smithy/middleware-content-length@4.3.6': + resolution: {integrity: sha512-nfpYCrzSFAgfIXmIHFTjOGNeTV3DVF5E5rfi3ZuNfsOjKSpePBOJF3rjyXlWYND0anvxVoqioIwClWCNdKt4Og==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.4.27': resolution: {integrity: sha512-T3TFfUgXQlpcg+UdzcAISdZpj4Z+XECZ/cefgA6wLBd6V4lRi0svN2hBouN/be9dXQ31X4sLWz3fAQDf+nt6BA==} engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.5.6': + resolution: {integrity: sha512-zdG5bJZOiM2PRgL2lwcgui6uwZ+s5y6Qsk/rk05Q69sZJT6oi1x+v8Kn++V/q9VY94EgOtEe5kivpu+eGau0wQ==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.4.44': resolution: {integrity: sha512-Y1Rav7m5CFRPQyM4CI0koD/bXjyjJu3EQxZZhtLGD88WIrBrQ7kqXM96ncd6rYnojwOo/u9MXu57JrEvu/nLrA==} engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.6.6': + resolution: {integrity: sha512-MWppaYUlc+W4cU2JZnYuMFeOxCWbKO4A57BWti6aCb7hRBK3+CL6llADGpX084hjImsqr3EvCGewArOj7G81eA==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.2.15': resolution: {integrity: sha512-ExYhcltZSli0pgAKOpQQe1DLFBLryeZ22605y/YS+mQpdNWekum9Ujb/jMKfJKgjtz1AZldtwA/wCYuKJgjjlg==} engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.3.6': + resolution: {integrity: sha512-I3fPVYKKEog3a3qdqt1nttP1NBuQOAlNoQxEp6j5pMogSx0HHfid63difhcDgslV6p1XsTXG6D6ieTe13ycJtQ==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@4.2.12': resolution: {integrity: sha512-kruC5gRHwsCOuyCd4ouQxYjgRAym2uDlCvQ5acuMtRrcdfg7mFBg6blaxcJ09STpt3ziEkis6bhg1uwrWU7txw==} engines: {node: '>=18.0.0'} + '@smithy/middleware-stack@4.3.6': + resolution: {integrity: sha512-QhNiWfg47Kl4SJHmuQvnlzCtlD1eX1J7d/vuuttIE17Ra2YUKp9Srv5lCwa3OvoYaSNWMKYn0PjGIsfCLMJsEA==} + engines: {node: '>=18.0.0'} + '@smithy/node-config-provider@4.3.12': resolution: {integrity: sha512-tr2oKX2xMcO+rBOjobSwVAkV05SIfUKz8iI53rzxEmgW3GOOPOv0UioSDk+J8OpRQnpnhsO3Af6IEBabQBVmiw==} engines: {node: '>=18.0.0'} + '@smithy/node-config-provider@4.4.6': + resolution: {integrity: sha512-M+gG6eQ0y073mSmNB+erRXJvwpsqsN72ol2w6vcd8FEKeG7pqYK0JvzfVqONkPj2ElBB2pg+cU13I850b//Wag==} + engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.5.0': resolution: {integrity: sha512-Rnq9vQWiR1+/I6NZZMNzJHV6pZYyEHt2ZnuV3MG8z2NNenC4i/8Kzttz7CjZiHSmsN5frhXhg17z3Zqjjhmz1A==} engines: {node: '>=18.0.0'} @@ -3361,6 +3717,10 @@ packages: resolution: {integrity: sha512-HIeF+1vrDGzPkkv39Hj2vlHSXHY3p958jd/8ZnePIY6+ZOsQX8coyEUKO5yQu4r0bQIVsbpotVIrXXwyycMStQ==} engines: {node: '>=18.0.0'} + '@smithy/node-http-handler@4.7.7': + resolution: {integrity: sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==} + engines: {node: '>=18.0.0'} + '@smithy/property-provider@4.2.12': resolution: {integrity: sha512-jqve46eYU1v7pZ5BM+fmkbq3DerkSluPr5EhvOcHxygxzD05ByDRppRwRPPpFrsFo5yDtCYLKu+kreHKVrvc7A==} engines: {node: '>=18.0.0'} @@ -3369,6 +3729,10 @@ packages: resolution: {integrity: sha512-fit0GZK9I1xoRlR4jXmbLhoN0OdEpa96ul8M65XdmXnxXkuMxM0Y8HDT0Fh0Xb4I85MBvBClOzgSrV1X2s1Hxw==} engines: {node: '>=18.0.0'} + '@smithy/protocol-http@5.4.6': + resolution: {integrity: sha512-H6S7NyaaL+7qO8kIL7VQ7KyrGnKXdllGzJqvtp3hvDen25UOydKV51qGDVK0UciW125jV3CoLJQy/ihc0OEC6A==} + engines: {node: '>=18.0.0'} + '@smithy/querystring-builder@4.2.12': resolution: {integrity: sha512-6wTZjGABQufekycfDGMEB84BgtdOE/rCVTov+EDXQ8NHKTUNIp/j27IliwP7tjIU9LR+sSzyGBOXjeEtVgzCHg==} engines: {node: '>=18.0.0'} @@ -3393,10 +3757,18 @@ packages: resolution: {integrity: sha512-e5UtkMvsatzBfbeBZjEOt0k0Z3BEsjTFL/n6fdO5vtBLe67tdy0dX7xw2DU7uZ3acwoHyeCqpU2Fzb7pxwHb6Q==} engines: {node: '>=18.0.0'} + '@smithy/signature-v4@5.4.6': + resolution: {integrity: sha512-Ojg4B6oIDlIr1R86xCDJt1zJWnYa0VINmqdjfe9qxWjdRivHalZ3iSlQgVqYbW0MdpFOC5XfHEWsnbmdnpIILQ==} + engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.12.7': resolution: {integrity: sha512-q3gqnwml60G44FECaEEsdQMplYhDMZYCtYhMCzadCnRnnHIobZJjegmdoUo6ieLQlPUzvrMdIJUpx6DoPmzANQ==} engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.13.6': + resolution: {integrity: sha512-tAf35/JW/DvMlACcazcoIOKOV0JBqyOvxjPTEME9W+m9wLcE0G1rwADc7Ntu38rY5C9OH8jZjpo4tbtjmIjEBQ==} + engines: {node: '>=18.0.0'} + '@smithy/types@4.13.1': resolution: {integrity: sha512-787F3yzE2UiJIQ+wYW1CVg2odHjmaWLGksnKQHUrK/lYZSEcy1msuLVvxaR/sI2/aDe9U+TBuLsXnr3vod1g0g==} engines: {node: '>=18.0.0'} @@ -3405,22 +3777,42 @@ packages: resolution: {integrity: sha512-P+otAxbV4CqBybp7EkcJCrig63yE2E7PuNVOmilVMRcx/O+QDzGULTrKsq4DV13gSfak9ObPrWaHl/9bL5YcWw==} engines: {node: '>=18.0.0'} + '@smithy/types@4.14.3': + resolution: {integrity: sha512-YupL0ZWmFtJexUN2cHzkvvF/b9pKrtAIfT1o7/oY/Ppu8IYeZ+lDPM5vZdQJaSeA132dJCqojjGC9NhXeF71VQ==} + engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.2.12': resolution: {integrity: sha512-wOPKPEpso+doCZGIlr+e1lVI6+9VAKfL4kZWFgzVgGWY2hZxshNKod4l2LXS3PRC9otH/JRSjtEHqQ/7eLciRA==} engines: {node: '>=18.0.0'} + '@smithy/url-parser@4.3.6': + resolution: {integrity: sha512-9MRJzwUrlswwHogOR7raDcykuzojZn74qGdQdbEQLVaixlvJuMiIT0g/CejKcmAIgrUVs8brBrnGtmYmBc0iuA==} + engines: {node: '>=18.0.0'} + '@smithy/util-base64@4.3.2': resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} engines: {node: '>=18.0.0'} + '@smithy/util-base64@4.4.6': + resolution: {integrity: sha512-V6ApAGvCQnb7Wy1Sy60AQc+7UOEaNQxvAXBLdMi5Zzm66cmX0srvfAxDmg7BGuJ+9H9ez0PPWS/AeFgWxwGavA==} + engines: {node: '>=18.0.0'} + '@smithy/util-body-length-browser@4.2.2': resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} engines: {node: '>=18.0.0'} + '@smithy/util-body-length-browser@4.3.6': + resolution: {integrity: sha512-+3vGcNHuvzuFLVWL9/wJgucOuQWufhuGhb3oxVDj9SWFGtwkOmtC2nFUwVC2IJoPe45uhs6TAb8bgE4IXDSPzA==} + engines: {node: '>=18.0.0'} + '@smithy/util-body-length-node@4.2.3': resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} engines: {node: '>=18.0.0'} + '@smithy/util-body-length-node@4.3.6': + resolution: {integrity: sha512-T15zTQJ/xKYdS0/3CFckhz1QBbhxmhk/xjL6FKvHKgkJPN4E985If2FI9CcV2kh2v0sfiWMfXVEOKFbqgw4m4w==} + engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} @@ -3437,14 +3829,26 @@ packages: resolution: {integrity: sha512-Qd/0wCKMaXxev/z00TvNzGCH2jlKKKxXP1aDxB6oKwSQthe3Og2dMhSayGCnsma1bK/kQX1+X7SMP99t6FgiiQ==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@4.4.6': + resolution: {integrity: sha512-dRCZKu05AL7KQWrVuRJPotfjCRnvGkCjV56XNP067CRfyTtvgi/Ygu44qrBKb814Hsa52bWwDJ+Vt3pd04BjPA==} + engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.2.47': resolution: {integrity: sha512-qSRbYp1EQ7th+sPFuVcVO05AE0QH635hycdEXlpzIahqHHf2Fyd/Zl+8v0XYMJ3cgDVPa0lkMefU7oNUjAP+DQ==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.3.6': + resolution: {integrity: sha512-tTR8tayMoa0WeRhtMH7j3WpHUtggBXjh7rBdf7j6POYI69R85gpWBW6B32kaJRnlQU8+0gOGAzJj50S7SU1Egw==} + engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.3.3': resolution: {integrity: sha512-VACQVe50j0HZPjpwWcjyT51KUQ4AnsvEaQ2lKHOSL4mNLD0G9BjEniQ+yCt1qqfKfiAHRAts26ud7hBjamrwig==} engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.5.6': + resolution: {integrity: sha512-kaB41eVUYC7ajVWUsZRqagxwRaa3VupjQ/Z2Z2v/Vffh/gJ/fFOS25s6mTyR2Lw1FrnBbRWo1iShR9BhekpPeQ==} + engines: {node: '>=18.0.0'} + '@smithy/util-hex-encoding@4.2.2': resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} engines: {node: '>=18.0.0'} @@ -3453,10 +3857,18 @@ packages: resolution: {integrity: sha512-Er805uFUOvgc0l8nv0e0su0VFISoxhJ/AwOn3gL2NWNY2LUEldP5WtVcRYSQBcjg0y9NfG8JYrCJaYDpupBHJQ==} engines: {node: '>=18.0.0'} + '@smithy/util-middleware@4.3.6': + resolution: {integrity: sha512-TrAgOcL63TRi7G92arTzq0n+VDrmZifwP1I1T9y2xU3lJpybsHdm33S2d3xaFfG0c8zJNIF9yYRqLSe6rbhH/A==} + engines: {node: '>=18.0.0'} + '@smithy/util-retry@4.2.12': resolution: {integrity: sha512-1zopLDUEOwumjcHdJ1mwBHddubYF8GMQvstVCLC54Y46rqoHwlIU+8ZzUeaBcD+WCJHyDGSeZ2ml9YSe9aqcoQ==} engines: {node: '>=18.0.0'} + '@smithy/util-retry@4.4.6': + resolution: {integrity: sha512-E/kFnvWQL6rIPr0Ucjk8oDgJSkKx2bv0nJkJ/cB3ywys7xCqeL1AXP9liHjgYONdQ+MKw/xT06IQK3vgbtu2Ww==} + engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.5.20': resolution: {integrity: sha512-4yXLm5n/B5SRBR2p8cZ90Sbv4zL4NKsgxdzCzp/83cXw2KxLEumt5p+GAVyRNZgQOSrzXn9ARpO0lUe8XSlSDw==} engines: {node: '>=18.0.0'} @@ -3473,10 +3885,18 @@ packages: resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} engines: {node: '>=18.0.0'} + '@smithy/util-utf8@4.3.6': + resolution: {integrity: sha512-tAa4sePYB7mlJzdYbdBqdv37KwFKWixmM/r3ihcI0HFOVjf+a5oGvtcLXcGm4S1bY4DFsLAIOHgjubtp+oRufw==} + engines: {node: '>=18.0.0'} + '@smithy/util-waiter@4.2.13': resolution: {integrity: sha512-2zdZ9DTHngRtcYxJK1GUDxruNr53kv5W2Lupe0LMU+Imr6ohQg8M2T14MNkj1Y0wS3FFwpgpGQyvuaMF7CiTmQ==} engines: {node: '>=18.0.0'} + '@smithy/util-waiter@4.4.6': + resolution: {integrity: sha512-oTt3OP9NcJkrySCSCCdSbP6XLSMNgOmt/ulaiYtb0Ng6tfEWtXQ1mwfyqmLd+GapmDUjbU2mgkf7QIq9H4ij/g==} + engines: {node: '>=18.0.0'} + '@smithy/uuid@1.1.2': resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} engines: {node: '>=18.0.0'} @@ -3535,8 +3955,8 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@storybook/icons@2.0.1': - resolution: {integrity: sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==} + '@storybook/icons@2.0.2': + resolution: {integrity: sha512-KZBCpXsshAIjczYNXR/rlxEtCUX/eAbpFNwKi8bcOomrLA4t/SyPz5RF+lVPO2oZBUE4sAkt43mfJUevQDSEEw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3810,8 +4230,8 @@ packages: peerDependencies: '@swc/core': '*' - '@swc/types@0.1.25': - resolution: {integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==} + '@swc/types@0.1.26': + resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} @@ -3846,6 +4266,10 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@tokenizer/inflate@0.2.7': + resolution: {integrity: sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==} + engines: {node: '>=18'} + '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -3853,8 +4277,8 @@ packages: resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==} engines: {node: '>= 10'} - '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -3895,6 +4319,9 @@ packages: '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/clean-css@4.2.11': resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} @@ -3910,8 +4337,8 @@ packages: '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} @@ -3962,8 +4389,8 @@ packages: '@types/html-minifier-terser@7.0.2': resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} @@ -4004,23 +4431,23 @@ packages: '@types/lodash.get@4.4.9': resolution: {integrity: sha512-J5dvW98sxmGnamqf+/aLP87PYXyrha9xIgc2ZlHl6OHMFR2Ejdxep50QfU0abO1+CH6+ugx+8wEUN1toImAinA==} - '@types/lodash@4.14.202': - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + '@types/lodash@4.17.24': + resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + '@types/mdx@2.0.14': + resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==} '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@16.18.68': - resolution: {integrity: sha512-sG3hPIQwJLoewrN7cr0dwEy+yF5nD4D/4FxtQpFciRD/xwUzgD+G05uxZHv5mhfXo4F9Jkp13jjn0CC2q325sg==} + '@types/node@16.18.126': + resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==} '@types/node@24.12.4': resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} @@ -4035,8 +4462,8 @@ packages: resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. - '@types/prop-types@15.7.5': - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} '@types/qs@6.9.15': resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} @@ -4101,8 +4528,8 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/tough-cookie@4.0.2': - resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -4128,8 +4555,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.33': - resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} '@types/youtube@0.0.50': resolution: {integrity: sha512-d4GpH4uPYp9W07kc487tiq6V/EUHl18vZWFMbQoe4Sk9LXEWzFi/BMf9x7TI4m7/j7gU3KeX8H6M8aPBgykeLw==} @@ -4176,8 +4603,8 @@ packages: resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.59.2': - resolution: {integrity: sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==} + '@typescript-eslint/types@8.61.0': + resolution: {integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.57.1': @@ -4197,110 +4624,126 @@ packages: resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - deprecated: Potential CWE-502 - Update to 1.3.1 or higher + '@ungap/structured-clone@1.3.1': + resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + '@unrs/resolver-binding-android-arm64@1.12.2': + resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + '@unrs/resolver-binding-darwin-arm64@1.12.2': + resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + '@unrs/resolver-binding-darwin-x64@1.12.2': + resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + '@unrs/resolver-binding-freebsd-x64@1.12.2': + resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} cpu: [arm64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} cpu: [arm64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} cpu: [ppc64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} cpu: [riscv64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} cpu: [riscv64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} cpu: [s390x] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} cpu: [x64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + '@unrs/resolver-binding-linux-x64-musl@1.12.2': + resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} cpu: [x64] os: [linux] libc: [musl] - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + '@unrs/resolver-binding-openharmony-arm64@1.12.2': + resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} + cpu: [arm64] + os: [openharmony] + + '@unrs/resolver-binding-wasm32-wasi@1.12.2': + resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} cpu: [x64] os: [win32] @@ -4386,40 +4829,40 @@ packages: webpack-dev-server: optional: true - '@xhmikosr/archive-type@7.0.0': - resolution: {integrity: sha512-sIm84ZneCOJuiy3PpWR5bxkx3HaNt1pqaN+vncUBZIlPZCq8ASZH+hBVdu5H8znR7qYC6sKwx+ie2Q7qztJTxA==} - engines: {node: ^14.14.0 || >=16.0.0} + '@xhmikosr/archive-type@7.1.0': + resolution: {integrity: sha512-xZEpnGplg1sNPyEgFh0zbHxqlw5dtYg6viplmWSxUj12+QjU9SKu3U/2G73a15pEjLaOqTefNSZ1fOPUOT4Xgg==} + engines: {node: '>=18'} - '@xhmikosr/bin-check@7.0.3': - resolution: {integrity: sha512-4UnCLCs8DB+itHJVkqFp9Zjg+w/205/J2j2wNBsCEAm/BuBmtua2hhUOdAMQE47b1c7P9Xmddj0p+X1XVsfHsA==} + '@xhmikosr/bin-check@7.1.0': + resolution: {integrity: sha512-y1O95J4mnl+6MpVmKfMYXec17hMEwE/yeCglFNdx+QvLLtP0yN4rSYcbkXnth+lElBuKKek2NbvOfOGPpUXCvw==} engines: {node: '>=18'} - '@xhmikosr/bin-wrapper@13.0.5': - resolution: {integrity: sha512-DT2SAuHDeOw0G5bs7wZbQTbf4hd8pJ14tO0i4cWhRkIJfgRdKmMfkDilpaJ8uZyPA0NVRwasCNAmMJcWA67osw==} + '@xhmikosr/bin-wrapper@13.2.0': + resolution: {integrity: sha512-t9U9X0sDPRGDk5TGx4dv5xiOvniVJpXnfTuynVKwHgtib95NYEw4MkZdJqhoSiz820D9m0o6PCqOPMXz0N9fIw==} engines: {node: '>=18'} - '@xhmikosr/decompress-tar@8.0.1': - resolution: {integrity: sha512-dpEgs0cQKJ2xpIaGSO0hrzz3Kt8TQHYdizHsgDtLorWajuHJqxzot9Hbi0huRxJuAGG2qiHSQkwyvHHQtlE+fg==} + '@xhmikosr/decompress-tar@8.1.0': + resolution: {integrity: sha512-m0q8x6lwxenh1CrsTby0Jrjq4vzW/QU1OLhTHMQLEdHpmjR1lgahGz++seZI0bXF3XcZw3U3xHfqZSz+JPP2Gg==} engines: {node: '>=18'} - '@xhmikosr/decompress-tarbz2@8.0.1': - resolution: {integrity: sha512-OF+6DysDZP5YTDO8uHuGG6fMGZjc+HszFPBkVltjoje2Cf60hjBg/YP5OQndW1hfwVWOdP7f3CnJiPZHJUTtEg==} + '@xhmikosr/decompress-tarbz2@8.1.0': + resolution: {integrity: sha512-aCLfr3A/FWZnOu5eqnJfme1Z1aumai/WRw55pCvBP+hCGnTFrcpsuiaVN5zmWTR53a8umxncY2JuYsD42QQEbw==} engines: {node: '>=18'} - '@xhmikosr/decompress-targz@8.0.1': - resolution: {integrity: sha512-mvy5AIDIZjQ2IagMI/wvauEiSNHhu/g65qpdM4EVoYHUJBAmkQWqcPJa8Xzi1aKVTmOA5xLJeDk7dqSjlHq8Mg==} + '@xhmikosr/decompress-targz@8.1.0': + resolution: {integrity: sha512-fhClQ2wTmzxzdz2OhSQNo9ExefrAagw93qaG1YggoIz/QpI7atSRa7eOHv4JZkpHWs91XNn8Hry3CwUlBQhfPA==} engines: {node: '>=18'} - '@xhmikosr/decompress-unzip@7.0.0': - resolution: {integrity: sha512-GQMpzIpWTsNr6UZbISawsGI0hJ4KA/mz5nFq+cEoPs12UybAqZWKbyIaZZyLbJebKl5FkLpsGBkrplJdjvUoSQ==} + '@xhmikosr/decompress-unzip@7.1.0': + resolution: {integrity: sha512-oqTYAcObqTlg8owulxFTqiaJkfv2SHsxxxz9Wg4krJAHVzGWlZsU8tAB30R6ow+aHrfv4Kub6WQ8u04NWVPUpA==} engines: {node: '>=18'} - '@xhmikosr/decompress@10.0.1': - resolution: {integrity: sha512-6uHnEEt5jv9ro0CDzqWlFgPycdE+H+kbJnwyxgZregIMLQ7unQSCNVsYG255FoqU8cP46DyggI7F7LohzEl8Ag==} + '@xhmikosr/decompress@10.2.1': + resolution: {integrity: sha512-ceGT3K2JR73Usj5o+HM2RRZw0XPUes4rhb7uVTY9PefUQQMpuj8x+V29XVG09JnS7EOj9SIBhHn3K4bFNNb7hA==} engines: {node: '>=18'} - '@xhmikosr/downloader@15.0.1': - resolution: {integrity: sha512-fiuFHf3Dt6pkX8HQrVBsK0uXtkgkVlhrZEh8b7VgoDqFf+zrgFBPyrwCqE/3nDwn3hLeNz+BsrS7q3mu13Lp1g==} + '@xhmikosr/downloader@15.2.0': + resolution: {integrity: sha512-lAqbig3uRGTt0sHNIM4vUG9HoM+mRl8K28WuYxyXLCUT6pyzl4Y4i0LZ3jMEsCYZ6zjPZbO9XkG91OSTd4si7g==} engines: {node: '>=18'} '@xhmikosr/os-filter-obj@3.0.0': @@ -4458,8 +4901,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} acorn@8.16.0: @@ -4544,6 +4987,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + anynum@1.0.0: + resolution: {integrity: sha512-xjR9/zBVnUOP6ztMIIgShjsxui80nQUQH+5xJnvrYLs+90bF25/KJqaAi8mk+B4RDtX1Nspi6fmp4YTEts8SfA==} + arch@3.0.0: resolution: {integrity: sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q==} @@ -4656,16 +5102,21 @@ packages: engines: {node: '>= 18.0.0'} hasBin: true - axe-core@4.11.1: - resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} + axe-core@4.12.1: + resolution: {integrity: sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==} engines: {node: '>=4'} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + b4a@1.8.1: + resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} @@ -4685,25 +5136,25 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - babel-plugin-polyfill-corejs2@0.4.14: - resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} + babel-plugin-polyfill-corejs2@0.4.17: + resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.13.0: - resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} + babel-plugin-polyfill-corejs3@0.14.2: + resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.5: - resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} + babel-plugin-polyfill-regenerator@0.6.8: + resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0 || ^8.0.0-0 babel-preset-jest@29.6.3: resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} @@ -4724,29 +5175,61 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - bare-events@2.8.0: - resolution: {integrity: sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==} + bare-events@2.9.1: + resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.7.2: + resolution: {integrity: sha512-aTvMFUWkBmjzKtEQMDGGDNF8bkfpD5N1b/FCwt7A3wrU4t1o/e/85Wzkluh6JlODCjqVESYCkQCdTXqZ9G7VFg==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.9.1: + resolution: {integrity: sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.1: + resolution: {integrity: sha512-ghj2DSK/2e99a1anTVPCV4m4YIYtrbXhfM7V3D7XZLOTsybnYyaJloymGqssQc8l/or0UoDyRtNQkmkEF/ysgQ==} + + bare-stream@2.13.1: + resolution: {integrity: sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==} peerDependencies: bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' peerDependenciesMeta: bare-abort-controller: optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.4.5: + resolution: {integrity: sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.32: - resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} + baseline-browser-mapping@2.10.35: + resolution: {integrity: sha512-honAfLBde0HAFLdNyBEfuuENkF6zR+ozxqxa/2zJKHBe1qzLqyTSeRKpdPEHAP03rlDGyQOPnCSxnVpVqQo9Mg==} engines: {node: '>=6.0.0'} hasBin: true - baseline-browser-mapping@2.9.19: - resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} - hasBin: true - batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -4774,8 +5257,8 @@ packages: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} - bonjour-service@1.4.0: - resolution: {integrity: sha512-fGQtj1qdR9vIKjFiWPQd52qIqwjaYqhcI40JEiDuvlZ86E7ZBPBwY9fPgHy9r2rYGIjiRfctNPYz6OQU73ww2w==} + bonjour-service@1.4.1: + resolution: {integrity: sha512-9KM4QMPKnaJqaja1v7gYO/+TXZGLtzPA05NmUTqDAJjcsWeVoOXKMvU9g0gfuuoYTQqJZ924hivICd5R/bCJbA==} boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -4783,14 +5266,17 @@ packages: bowser@2.12.1: resolution: {integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + bowser@2.14.1: + resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + + brace-expansion@1.1.15: + resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.1.1: + resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} - brace-expansion@5.0.3: - resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -4802,11 +5288,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.28.2: resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -4815,9 +5296,6 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-from@0.1.2: resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==} @@ -4858,15 +5336,15 @@ packages: resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} engines: {node: '>=14.16'} - cacheable@2.3.4: - resolution: {integrity: sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==} + cacheable@2.3.5: + resolution: {integrity: sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} engines: {node: '>= 0.4'} call-bound@1.0.4: @@ -4888,11 +5366,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001769: - resolution: {integrity: sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==} - - caniuse-lite@1.0.30001793: - resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} + caniuse-lite@1.0.30001797: + resolution: {integrity: sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==} case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -5008,12 +5483,12 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - codemaker@1.132.0: - resolution: {integrity: sha512-YClvZlj95oAovTr64MtsmxBN5FicfnrDkcxdZI4PvaDO7VbPIh3ka9lHIyqZfTGzJokFX0H95LAIF1UKG271dQ==} + codemaker@1.134.0: + resolution: {integrity: sha512-B8AVQL8iyk9eSzdh9mNSyF71JxLk78+KfuPG8BgPa/Wp2GDrJEDOOoyjVlRTwiWJHarOBA86rRe3xEc1V/Sbhg==} engines: {node: '>= 14.17.0'} - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -5068,8 +5543,8 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - comment-parser@1.4.6: - resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} + comment-parser@1.4.7: + resolution: {integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==} engines: {node: '>= 12.0.0'} commondir@1.0.1: @@ -5108,14 +5583,18 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} - content-disposition@1.0.1: - resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + content-disposition@1.1.0: + resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} engines: {node: '>=18'} content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + content-type@2.0.0: + resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} + engines: {node: '>=18'} + convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -5137,13 +5616,10 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - copy-file@11.0.0: - resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==} + copy-file@11.1.0: + resolution: {integrity: sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==} engines: {node: '>=18'} - core-js-compat@3.46.0: - resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} - core-js-compat@3.49.0: resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} @@ -5163,8 +5639,8 @@ packages: typescript: optional: true - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + cosmiconfig@9.0.2: + resolution: {integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -5207,8 +5683,8 @@ packages: css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.2.2: + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -5248,12 +5724,12 @@ packages: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} - cssstyle@4.6.0: - resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} - engines: {node: '>=18'} + cssstyle@5.3.7: + resolution: {integrity: sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==} + engines: {node: '>=20'} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -5266,9 +5742,9 @@ packages: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + data-urls@6.0.1: + resolution: {integrity: sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==} + engines: {node: '>=20'} data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} @@ -5286,8 +5762,8 @@ packages: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} - dayjs@1.11.20: - resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + dayjs@1.11.21: + resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -5333,8 +5809,8 @@ packages: decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} @@ -5343,8 +5819,8 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + dedent@1.7.2: + resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -5370,9 +5846,9 @@ packages: resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} engines: {node: '>=18'} - defaults@3.0.0: - resolution: {integrity: sha512-RsqXDEAALjfRTro+IFNKpcPCt0/Cy2FqHSIlnomiJp9YGadpQnrtbRpSgN2+np21qHcIKiva4fiOQGjS9/qR/A==} - engines: {node: '>=18'} + defaults@2.0.2: + resolution: {integrity: sha512-cuIw0PImdp76AOfgkjbW4VhQODRmNNcKR73vdCH5cLd/ifj7aamfoXvYgfGkEAjNJZ3ozMIy9Gu2LutUkGEPbA==} + engines: {node: '>=16'} defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} @@ -5427,8 +5903,8 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -5484,9 +5960,6 @@ packages: domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -5509,11 +5982,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.286: - resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} - - electron-to-chromium@1.5.364: - resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==} + electron-to-chromium@1.5.371: + resolution: {integrity: sha512-e9htk9mAYL6AzmkEhSvVVw7IWGSBJ/Bqdn2eRyRLrj1g6sncN4WbFt5qnILYoCktktr45pyjIrOiRvBThQ808w==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -5539,8 +6009,8 @@ packages: endent@2.1.0: resolution: {integrity: sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==} - enhanced-resolve@5.19.0: - resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} + enhanced-resolve@5.23.0: + resolution: {integrity: sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA==} engines: {node: '>=10.13.0'} entities@2.2.0: @@ -5562,16 +6032,16 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.14.0: - resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} + envinfo@7.21.0: + resolution: {integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==} engines: {node: '>=4'} hasBin: true error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -5582,18 +6052,18 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + es-iterator-helpers@1.3.3: + resolution: {integrity: sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -5623,8 +6093,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} engines: {node: '>=18'} hasBin: true @@ -5845,6 +6315,9 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -5924,8 +6397,8 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} @@ -5950,15 +6423,18 @@ packages: fflate@0.8.1: resolution: {integrity: sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==} - file-entry-cache@11.1.2: - resolution: {integrity: sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==} + fflate@0.8.3: + resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} + + file-entry-cache@11.1.3: + resolution: {integrity: sha512-oMbq0PD6VIiIwMF6LIa7MEwd/l9huKwmqRKXqmrkqIZv8CvRbfowL+L0ryAl8h//HfAS0zS+4SbYoRyAoA6BJA==} file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - file-type@19.6.0: - resolution: {integrity: sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==} + file-type@20.5.0: + resolution: {integrity: sha512-BfHZtG/l9iMm4Ecianu7P8HRD2tBHLtjXinm4X62XBOYzi7CYA7jyqfJzOvXHqzVrVPYqBo2/GvbARMaaJkKVg==} engines: {node: '>=18'} filename-reserved-regex@3.0.0: @@ -6015,8 +6491,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.21: - resolution: {integrity: sha512-2u7cJfSf7Th7NxEk/VzQjnPoglok2YCsevS7TSbJjcDQWJPbqUUnSYtriHSvtnq+fRZHy1s0ugk4ApnQyhPGoQ==} + flat-cache@6.1.22: + resolution: {integrity: sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -6049,10 +6525,6 @@ packages: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} engines: {node: '>= 14.17'} - form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} - engines: {node: '>= 6'} - form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} @@ -6143,10 +6615,6 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-stream@9.0.1: - resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} - engines: {node: '>=18'} - get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -6154,6 +6622,9 @@ packages: get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + git-up@8.1.1: resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==} @@ -6272,48 +6743,25 @@ packages: resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} engines: {node: '>=20'} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} - engines: {node: '>= 0.4'} - hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} - hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.0.2: - resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} - - hast-util-to-html@9.0.0: - resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - - hast-util-to-string@3.0.0: - resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -6330,8 +6778,8 @@ packages: hookified@1.15.1: resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} - hookified@2.1.0: - resolution: {integrity: sha512-ootKng4eaxNxa7rx6FJv2YKef3DuhqbEj3l70oGXwddPQEEnISm50TEZQclqiLTAtilT2nu7TErtCO523hHkyg==} + hookified@2.2.0: + resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6351,8 +6799,8 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} - html-entities@2.4.0: - resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} + html-entities@2.6.0: + resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -6378,8 +6826,8 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - html-webpack-plugin@5.6.6: - resolution: {integrity: sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==} + html-webpack-plugin@5.6.7: + resolution: {integrity: sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==} engines: {node: '>=10.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -6396,8 +6844,8 @@ packages: htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} http-deceiver@1.2.7: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} @@ -6580,10 +7028,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - is-core-module@2.16.2: resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} @@ -6719,10 +7163,6 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-stream@4.0.1: - resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} - engines: {node: '>=18'} - is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} @@ -6775,8 +7215,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} - istanbul-lib-instrument@6.0.1: - resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} istanbul-lib-report@3.0.1: @@ -6787,8 +7227,8 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} - istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} iterator.prototype@1.1.5: @@ -6887,8 +7327,8 @@ packages: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-regex-util@30.0.1: - resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + jest-regex-util@30.4.0: + resolution: {integrity: sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-resolve-dependencies@29.7.0: @@ -6948,8 +7388,8 @@ packages: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + js-yaml@4.2.0: + resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true jsdom@20.0.3: @@ -6961,9 +7401,9 @@ packages: canvas: optional: true - jsdom@26.0.0: - resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} - engines: {node: '>=18'} + jsdom@27.0.0: + resolution: {integrity: sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==} + engines: {node: '>=20'} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -6999,14 +7439,14 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} @@ -7037,15 +7477,15 @@ packages: known-css-properties@0.37.0: resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - launch-editor@2.13.2: - resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} + launch-editor@2.14.1: + resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} launder@1.7.1: resolution: {integrity: sha512-mU6WRz5EusL9ZZuiZ5SO4Y6C0P9PAUR9iwdb6bzj4KDihm28DiHFw+/yk9DBH4f+Pv1wuzQ4e2jV3oQ7mkIqvw==} @@ -7074,8 +7514,8 @@ packages: resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} engines: {node: '>=18.0.0'} - loader-runner@4.3.1: - resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + loader-runner@4.3.2: + resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} loader-utils@1.4.2: @@ -7130,9 +7570,6 @@ packages: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.5.1: resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} engines: {node: 20 || >=22} @@ -7172,11 +7609,11 @@ packages: mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -7202,8 +7639,10 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} - memfs@4.49.0: - resolution: {integrity: sha512-L9uC9vGuc4xFybbdOpRLoOAOq1YEBBsocCs5NVW32DfU+CZWWIn3OVF+lB8Gp4ttBVSMazwrTrjv8ussX/e3VQ==} + memfs@4.57.6: + resolution: {integrity: sha512-WQK+DGjKCnPdpSyJUXphz+COF2uEhhsxQ3VIWBSbzpbbXuch3h4FePMqXrXGdLjsTgo4JFzBFsP6AWd9pVazGw==} + peerDependencies: + tslib: '2' meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} @@ -7227,59 +7666,59 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} micromark-util-character@2.1.1: resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} @@ -7287,8 +7726,8 @@ packages: micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -7346,8 +7785,8 @@ packages: minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -7367,10 +7806,6 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -7396,6 +7831,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + napi-postinstall@0.3.4: resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -7419,40 +7859,30 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - nice-napi@1.0.2: - resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} - os: ['!win32'] - no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@3.2.1: - resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} - hasBin: true - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - - node-releases@2.0.46: - resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + node-releases@2.0.47: + resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} engines: {node: '>=18'} normalize-package-data@2.5.0: @@ -7466,8 +7896,8 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + normalize-url@8.1.1: + resolution: {integrity: sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==} engines: {node: '>=14.16'} npm-run-path@4.0.1: @@ -7481,8 +7911,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.23: - resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} + nwsapi@2.2.24: + resolution: {integrity: sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -7552,8 +7982,8 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} own-keys@1.0.1: @@ -7600,8 +8030,8 @@ packages: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} - p-timeout@6.1.2: - resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} engines: {node: '>=14.16'} p-try@2.2.0: @@ -7633,9 +8063,6 @@ packages: resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} engines: {node: '>=14.13.0'} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -7679,8 +8106,8 @@ packages: path-to-regexp@0.1.13: resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} - path-to-regexp@8.4.1: - resolution: {integrity: sha512-fvU78fIjZ+SBM9YwCknCvKOUKkLVqtWDVctl0s7xIqfmfb38t2TT4ZU2gHm+Z8xGwgW+QWEU3oQSAzIbo89Ggw==} + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -7693,10 +8120,6 @@ packages: resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} - peek-readable@5.3.1: - resolution: {integrity: sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==} - engines: {node: '>=14.16'} - pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -7716,12 +8139,12 @@ packages: engines: {node: '>=0.10'} hasBin: true - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} - piscina@4.3.1: - resolution: {integrity: sha512-MBj0QYm3hJQ/C/wIXTN1OCYC8uQ4BBJ4LVele2P4ZwVQAH04vkk8E1SpDbuemLAL1dZorbuOob9rYqJeWCcCRg==} + piscina@4.9.2: + resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==} pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} @@ -7755,14 +8178,14 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-modules-local-by-default@4.0.5: - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 - postcss-modules-scope@3.2.0: - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -7782,12 +8205,8 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + postcss-selector-parser@7.1.2: + resolution: {integrity: sha512-Wjvt4scRFouioIInHf51IFNP4ltJ2EngJM+cZPGiqbKetBfmP3vpdPV8ID2S6JS6/jdo74N8+aEYH9lQr2C6sA==} engines: {node: '>=4'} postcss-styled-syntax@0.7.1: @@ -7799,8 +8218,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} postcss@8.5.9: @@ -7852,8 +8271,8 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@6.4.0: - resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} + property-information@7.2.0: + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} protocols@2.0.2: resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} @@ -7862,8 +8281,8 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -7872,8 +8291,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pure-rand@6.0.4: - resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} pvtsutils@1.3.6: resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} @@ -7882,12 +8301,12 @@ packages: resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} engines: {node: '>=16.0.0'} - qified@0.9.0: - resolution: {integrity: sha512-4q61YgkHbY6gmwkqm0BsxyLDO3UYdrdiJTJ7JiaZb3xpW1duxn135SB7KqUEkCiuu5O4W+TtwEWP2VjmSRanvA==} + qified@0.10.1: + resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} engines: {node: '>=20'} - qs@6.14.1: - resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + qs@6.14.2: + resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} engines: {node: '>=0.6'} qs@6.15.2: @@ -7900,9 +8319,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -7933,8 +8349,8 @@ packages: resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} engines: {node: '>=16.14.0'} - react-docgen@8.0.2: - resolution: {integrity: sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==} + react-docgen@8.0.3: + resolution: {integrity: sha512-aEZ9qP+/M+58x2qgfSFEWH1BxLyHe5+qkLNJOZQb5iGS017jpbRnoKhNRrXPeA6RfBrZO5wZrT9DMC1UqE1f1w==} engines: {node: ^20.9.0 || >=22} react-dom@18.3.1: @@ -8035,8 +8451,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.13.0: - resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + regjsparser@0.13.1: + resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} hasBin: true rehype-autolink-headings@7.1.0: @@ -8090,8 +8506,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} resolve@1.22.12: @@ -8099,8 +8515,9 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + resolve@2.0.0-next.7: + resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} + engines: {node: '>= 0.4'} hasBin: true responselike@3.0.0: @@ -8115,12 +8532,12 @@ packages: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -8162,8 +8579,8 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -8180,8 +8597,8 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} safer-buffer@2.1.2: @@ -8245,13 +8662,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.8.1: - resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} + semver@7.8.4: + resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} engines: {node: '>=10'} hasBin: true @@ -8309,8 +8721,8 @@ packages: resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} engines: {node: '>= 0.4'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -8321,8 +8733,8 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} signal-exit@3.0.7: @@ -8332,8 +8744,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sirv@2.0.3: - resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} sirv@3.0.2: @@ -8457,8 +8869,8 @@ packages: resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} engines: {node: '>=8.0'} - streamx@2.21.0: - resolution: {integrity: sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==} + streamx@2.27.0: + resolution: {integrity: sha512-WZ189TKnHoAokYHvwzaAQMpd55cgUmFIcJFzBSgGcb886jau5DL+XdDhTWV4ps3FLvk+OORp0dLRTPsLZ21CSA==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -8487,12 +8899,12 @@ packages: string.prototype.repeat@1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + string.prototype.trim@1.2.11: + resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + string.prototype.trimend@1.0.10: + resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: @@ -8508,8 +8920,8 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -8553,12 +8965,12 @@ packages: strnum@2.2.1: resolution: {integrity: sha512-BwRvNd5/QoAtyW1na1y1LsJGQNvRlkde6Q/ipqqEaivoMdV+B1OMOTVdwR+N/cwVUcIt9PYyHmV8HyexCZSupg==} - strnum@2.3.0: - resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} + strnum@2.4.0: + resolution: {integrity: sha512-sHrVyWWdq28RbhjuJdZsA1SnGRJV6NiXbk6AXBxDOsgAcA+lmpUZCYjOdLBxkXMwis6RRe7dlZt4VlIWFVzkmg==} - strtok3@9.1.1: - resolution: {integrity: sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==} - engines: {node: '>=16'} + strtok3@10.3.5: + resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} + engines: {node: '>=18'} style-loader@4.0.0: resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} @@ -8641,8 +9053,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.12: - resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} + synckit@0.11.13: + resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} engines: {node: ^14.18.0 || >=16.0.0} table@6.9.0: @@ -8653,31 +9065,61 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar-stream@3.2.0: + resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - terser-webpack-plugin@5.4.0: - resolution: {integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==} + terser-webpack-plugin@5.6.1: + resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} engines: {node: '>= 10.13.0'} peerDependencies: + '@minify-html/node': '*' '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' uglify-js: '*' webpack: ^5.1.0 peerDependenciesMeta: + '@minify-html/node': + optional: true '@swc/core': optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true esbuild: optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true uglify-js: optional: true - terser@5.46.0: - resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} + terser@5.48.0: + resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} engines: {node: '>=10'} hasBin: true @@ -8685,11 +9127,11 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - text-decoder@1.2.2: - resolution: {integrity: sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==} + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - thingies@2.5.0: - resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} + thingies@2.6.0: + resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 @@ -8706,14 +9148,14 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -8722,11 +9164,11 @@ packages: resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.86: - resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + tldts-core@7.4.2: + resolution: {integrity: sha512-nwEyF4vl4RSJjwSjBUmOSxc3BFPoIFdlRthJ6e+5v9P3bHNsoD06UjuqMUspqp7vsEZ1beaHi1km+optiE17yA==} - tldts@6.1.86: - resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + tldts@7.4.2: + resolution: {integrity: sha512-kCwffuaH8ntKtygnWe1b4BJKWiCUH30n5KfoTr6IchcXOwR7chAOFJxFrH3vjANafUYrIA4a7SDL+nn7SiR4Sw==} hasBin: true tmpl@1.0.5: @@ -8743,8 +9185,8 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - token-types@6.0.0: - resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==} + token-types@6.1.2: + resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} totalist@3.0.1: @@ -8755,17 +9197,17 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} - tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + tough-cookie@6.0.1: + resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} engines: {node: '>=16'} tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} - tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} - engines: {node: '>=18'} + tr46@6.0.0: + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} + engines: {node: '>=20'} traverse-chain@0.1.0: resolution: {integrity: sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==} @@ -8779,8 +9221,8 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trough@2.1.0: - resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} trusted-types@2.0.0: resolution: {integrity: sha512-Eam+AUp6lg04YjmYkuLNhEJX+6ByocrKTpY/TtfRK/gV6OmxeN0OwkIasor28SUJ606snArpPLGtPMGbqdaaUA==} @@ -8791,8 +9233,8 @@ packages: peerDependencies: typescript: '>=4.8.4' - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + ts-dedent@2.3.0: + resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} engines: {node: '>=6.10'} ts-node@10.9.2: @@ -8872,17 +9314,17 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-fest@5.6.0: - resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} + type-fest@5.7.0: + resolution: {integrity: sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==} engines: {node: '>=20'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - type-is@2.0.1: - resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} - engines: {node: '>= 0.6'} + type-is@2.1.0: + resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} + engines: {node: '>= 18'} typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} @@ -8896,8 +9338,8 @@ packages: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + typed-array-length@1.0.8: + resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} typescript-eslint@8.57.1: @@ -8921,8 +9363,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - uint8array-extras@1.4.0: - resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} unbox-primitive@1.1.0: @@ -8958,8 +9400,8 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} @@ -8967,11 +9409,11 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -8997,8 +9439,8 @@ packages: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + unrs-resolver@1.12.2: + resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} @@ -9046,8 +9488,8 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} valibot@0.28.1: @@ -9060,11 +9502,8 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -9135,9 +9574,6 @@ packages: wbuf@1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -9149,6 +9585,10 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + webidl-conversions@8.0.1: + resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} + engines: {node: '>=20'} + webpack-assets-manifest@6.3.0: resolution: {integrity: sha512-UcjiDm66jLTchxcXnvUDLg8Eoje8wsbjiA30RPymfLhi9UIVH1xA6pmqw5DLHVelr8hlzkeE74ofOrQNMwNX5A==} engines: {node: '>=20.10.0'} @@ -9252,8 +9692,8 @@ packages: webpack-cli: optional: true - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + websocket-driver@0.7.5: + resolution: {integrity: sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==} engines: {node: '>=0.8.0'} websocket-extensions@0.1.4: @@ -9278,13 +9718,17 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} + whatwg-mimetype@5.0.0: + resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} + engines: {node: '>=20'} + whatwg-url@11.0.0: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} - whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} + whatwg-url@15.1.0: + resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} + engines: {node: '>=20'} which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} @@ -9298,8 +9742,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + which-typed-array@1.1.22: + resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} engines: {node: '>= 0.4'} which@1.3.1: @@ -9314,6 +9758,10 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -9333,8 +9781,8 @@ packages: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@7.5.10: - resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + ws@7.5.11: + resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -9345,18 +9793,6 @@ packages: utf-8-validate: optional: true - ws@8.19.0: - resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.21.0: resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} @@ -9402,8 +9838,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} yaml@2.3.4: @@ -9418,8 +9854,8 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yauzl@3.2.0: - resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==} + yauzl@3.4.0: + resolution: {integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==} engines: {node: '>=12'} yn@3.1.1: @@ -9447,29 +9883,37 @@ packages: snapshots: - '@aashutoshrathi/word-wrap@1.2.6': {} + '@adobe/css-tools@4.5.0': {} - '@adobe/css-tools@4.4.4': {} + '@asamuzakjp/css-color@4.1.2': + dependencies: + '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + lru-cache: 11.5.1 - '@asamuzakjp/css-color@3.2.0': + '@asamuzakjp/dom-selector@6.8.1': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - lru-cache: 10.4.3 + '@asamuzakjp/nwsapi': 2.3.9 + bidi-js: 1.0.3 + css-tree: 3.2.1 + is-potential-custom-element-name: 1.0.1 + lru-cache: 11.5.1 + + '@asamuzakjp/nwsapi@2.3.9': {} '@aws-cdk/asset-awscli-v1@2.2.273': {} - '@aws-cdk/asset-node-proxy-agent-v6@2.1.1': {} + '@aws-cdk/asset-node-proxy-agent-v6@2.1.2': {} - '@aws-cdk/cloud-assembly-schema@53.27.0': {} + '@aws-cdk/cloud-assembly-schema@53.28.0': {} '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.9 - tslib: 2.8.1 + '@aws-sdk/types': 3.973.12 + tslib: 2.6.2 '@aws-crypto/crc32c@5.2.0': dependencies: @@ -9491,106 +9935,174 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.9 - '@aws-sdk/util-locate-window': 3.465.0 + '@aws-sdk/types': 3.973.12 + '@aws-sdk/util-locate-window': 3.965.7 '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + tslib: 2.6.2 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.9 - tslib: 2.8.1 + '@aws-sdk/types': 3.973.12 + tslib: 2.6.2 '@aws-crypto/supports-web-crypto@5.2.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.12 '@smithy/util-utf8': 2.3.0 - tslib: 2.8.1 + tslib: 2.6.2 '@aws-sdk/client-cloudwatch@3.995.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/credential-provider-node': 3.972.54 + '@aws-sdk/middleware-host-header': 3.972.21 + '@aws-sdk/middleware-logger': 3.972.20 + '@aws-sdk/middleware-recursion-detection': 3.972.22 + '@aws-sdk/middleware-user-agent': 3.972.50 + '@aws-sdk/region-config-resolver': 3.972.24 + '@aws-sdk/types': 3.973.12 + '@aws-sdk/util-endpoints': 3.995.0 + '@aws-sdk/util-user-agent-browser': 3.972.21 + '@aws-sdk/util-user-agent-node': 3.973.36 + '@smithy/config-resolver': 4.5.6 + '@smithy/core': 3.24.6 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/hash-node': 4.3.6 + '@smithy/invalid-dependency': 4.3.6 + '@smithy/middleware-compression': 4.4.6 + '@smithy/middleware-content-length': 4.3.6 + '@smithy/middleware-endpoint': 4.5.6 + '@smithy/middleware-retry': 4.6.6 + '@smithy/middleware-serde': 4.3.6 + '@smithy/middleware-stack': 4.3.6 + '@smithy/node-config-provider': 4.4.6 + '@smithy/node-http-handler': 4.7.7 + '@smithy/protocol-http': 5.4.6 + '@smithy/smithy-client': 4.13.6 + '@smithy/types': 4.14.3 + '@smithy/url-parser': 4.3.6 + '@smithy/util-base64': 4.4.6 + '@smithy/util-body-length-browser': 4.3.6 + '@smithy/util-body-length-node': 4.3.6 + '@smithy/util-defaults-mode-browser': 4.4.6 + '@smithy/util-defaults-mode-node': 4.3.6 + '@smithy/util-endpoints': 3.5.6 + '@smithy/util-middleware': 4.3.6 + '@smithy/util-retry': 4.4.6 + '@smithy/util-utf8': 4.3.6 + '@smithy/util-waiter': 4.4.6 + tslib: 2.6.2 + + '@aws-sdk/client-cognito-identity@3.1065.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/credential-provider-node': 3.972.54 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/node-http-handler': 4.7.7 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + + '@aws-sdk/client-cognito-identity@3.995.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/core': 3.973.23 '@aws-sdk/credential-provider-node': 3.972.24 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.24 - '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/middleware-host-header': 3.972.21 + '@aws-sdk/middleware-logger': 3.972.20 + '@aws-sdk/middleware-recursion-detection': 3.972.22 + '@aws-sdk/middleware-user-agent': 3.972.50 + '@aws-sdk/region-config-resolver': 3.972.24 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.995.0 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.10 + '@aws-sdk/util-user-agent-browser': 3.972.21 + '@aws-sdk/util-user-agent-node': 3.973.36 '@smithy/config-resolver': 4.4.13 '@smithy/core': 3.23.12 - '@smithy/fetch-http-handler': 5.3.15 - '@smithy/hash-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/middleware-compression': 4.3.32 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/hash-node': 4.3.6 + '@smithy/invalid-dependency': 4.3.6 + '@smithy/middleware-content-length': 4.3.6 + '@smithy/middleware-endpoint': 4.5.6 + '@smithy/middleware-retry': 4.6.6 + '@smithy/middleware-serde': 4.3.6 + '@smithy/middleware-stack': 4.3.6 '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.5.0 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 + '@smithy/node-http-handler': 4.7.7 + '@smithy/protocol-http': 5.4.6 + '@smithy/smithy-client': 4.13.6 '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.2.12 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-utf8': 4.2.2 - '@smithy/util-waiter': 4.2.13 + '@smithy/url-parser': 4.3.6 + '@smithy/util-base64': 4.4.6 + '@smithy/util-body-length-browser': 4.3.6 + '@smithy/util-body-length-node': 4.3.6 + '@smithy/util-defaults-mode-browser': 4.4.6 + '@smithy/util-defaults-mode-node': 4.3.6 + '@smithy/util-endpoints': 3.5.6 + '@smithy/util-middleware': 4.3.6 + '@smithy/util-retry': 4.4.6 + '@smithy/util-utf8': 4.3.6 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/client-cognito-identity@3.1053.0': + '@aws-sdk/client-ec2@3.1065.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-node': 3.972.44 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/credential-provider-node': 3.972.54 + '@aws-sdk/middleware-sdk-ec2': 3.972.34 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/node-http-handler': 4.7.7 + '@smithy/types': 4.14.3 + tslib: 2.6.2 - '@aws-sdk/client-cognito-identity@3.995.0': + '@aws-sdk/client-s3@3.995.0': dependencies: + '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/core': 3.974.13 '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/middleware-bucket-endpoint': 3.972.3 + '@aws-sdk/middleware-expect-continue': 3.972.3 + '@aws-sdk/middleware-flexible-checksums': 3.972.9 '@aws-sdk/middleware-host-header': 3.972.8 + '@aws-sdk/middleware-location-constraint': 3.972.3 '@aws-sdk/middleware-logger': 3.972.8 '@aws-sdk/middleware-recursion-detection': 3.972.8 + '@aws-sdk/middleware-sdk-s3': 3.972.11 + '@aws-sdk/middleware-ssec': 3.972.3 '@aws-sdk/middleware-user-agent': 3.972.24 '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/signature-v4-multi-region': 3.995.0 '@aws-sdk/types': 3.973.9 '@aws-sdk/util-endpoints': 3.995.0 '@aws-sdk/util-user-agent-browser': 3.972.8 '@aws-sdk/util-user-agent-node': 3.973.10 '@smithy/config-resolver': 4.4.13 '@smithy/core': 3.24.4 + '@smithy/eventstream-serde-browser': 4.2.8 + '@smithy/eventstream-serde-config-resolver': 4.3.8 + '@smithy/eventstream-serde-node': 4.2.8 '@smithy/fetch-http-handler': 5.4.4 + '@smithy/hash-blob-browser': 4.2.9 '@smithy/hash-node': 4.2.12 + '@smithy/hash-stream-node': 4.2.8 '@smithy/invalid-dependency': 4.2.12 + '@smithy/md5-js': 4.2.8 '@smithy/middleware-content-length': 4.2.12 '@smithy/middleware-endpoint': 4.4.27 '@smithy/middleware-retry': 4.4.44 @@ -9610,86 +10122,14 @@ snapshots: '@smithy/util-endpoints': 3.3.3 '@smithy/util-middleware': 4.2.12 '@smithy/util-retry': 4.2.12 + '@smithy/util-stream': 4.5.20 '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.2.13 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-ec2@3.1053.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-node': 3.972.44 - '@aws-sdk/middleware-sdk-ec2': 3.972.27 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/client-s3@3.995.0': - dependencies: - '@aws-crypto/sha1-browser': 5.2.0 - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-node': 3.972.44 - '@aws-sdk/middleware-bucket-endpoint': 3.972.3 - '@aws-sdk/middleware-expect-continue': 3.972.3 - '@aws-sdk/middleware-flexible-checksums': 3.972.9 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-location-constraint': 3.972.3 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-sdk-s3': 3.972.11 - '@aws-sdk/middleware-ssec': 3.972.3 - '@aws-sdk/middleware-user-agent': 3.972.24 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/signature-v4-multi-region': 3.995.0 - '@aws-sdk/types': 3.973.9 - '@aws-sdk/util-endpoints': 3.995.0 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.10 - '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.24.4 - '@smithy/eventstream-serde-browser': 4.2.8 - '@smithy/eventstream-serde-config-resolver': 4.3.8 - '@smithy/eventstream-serde-node': 4.2.8 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/hash-blob-browser': 4.2.9 - '@smithy/hash-node': 4.2.12 - '@smithy/hash-stream-node': 4.2.8 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/md5-js': 4.2.8 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.4 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-stream': 4.5.20 - '@smithy/util-utf8': 4.2.2 - '@smithy/util-waiter': 4.2.13 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-ses@3.995.0': + '@aws-sdk/client-ses@3.995.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 @@ -9734,18 +10174,18 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-ssm@3.1053.0': + '@aws-sdk/client-ssm@3.1065.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-node': 3.972.44 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/credential-provider-node': 3.972.54 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/node-http-handler': 4.7.7 + '@smithy/types': 4.14.3 + tslib: 2.6.2 '@aws-sdk/client-ssm@3.995.0': dependencies: @@ -9794,15 +10234,15 @@ snapshots: '@aws-sdk/core@3.973.23': dependencies: - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.6 '@aws-sdk/xml-builder': 3.972.15 - '@smithy/core': 3.24.4 + '@smithy/core': 3.23.12 '@smithy/node-config-provider': 4.3.12 '@smithy/property-provider': 4.2.12 '@smithy/protocol-http': 5.3.12 '@smithy/signature-v4': 5.3.12 '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 '@smithy/util-base64': 4.3.2 '@smithy/util-middleware': 4.2.12 '@smithy/util-utf8': 4.2.2 @@ -9819,6 +10259,17 @@ snapshots: bowser: 2.12.1 tslib: 2.8.1 + '@aws-sdk/core@3.974.20': + dependencies: + '@aws-sdk/types': 3.973.12 + '@aws-sdk/xml-builder': 3.972.29 + '@aws/lambda-invoke-store': 0.2.4 + '@smithy/core': 3.24.6 + '@smithy/signature-v4': 5.4.6 + '@smithy/types': 4.14.3 + bowser: 2.14.1 + tslib: 2.6.2 + '@aws-sdk/crc64-nvme@3.972.0': dependencies: '@smithy/types': 4.14.2 @@ -9827,27 +10278,25 @@ snapshots: '@aws-sdk/credential-provider-cognito-identity@3.972.16': dependencies: '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/credential-provider-cognito-identity@3.972.36': + '@aws-sdk/credential-provider-cognito-identity@3.972.44': dependencies: - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 '@aws-sdk/credential-provider-env@3.972.21': dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 '@aws-sdk/credential-provider-env@3.972.39': @@ -9858,16 +10307,24 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.46': + dependencies: + '@aws-sdk/core': 3.974.20 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@aws-sdk/credential-provider-http@3.972.23': dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/types': 3.973.6 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/node-http-handler': 4.7.7 '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 + '@smithy/protocol-http': 5.4.6 + '@smithy/smithy-client': 4.13.6 + '@smithy/types': 4.13.1 '@smithy/util-stream': 4.5.20 tslib: 2.8.1 @@ -9881,9 +10338,19 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.48': + dependencies: + '@aws-sdk/core': 3.974.20 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/node-http-handler': 4.7.7 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@aws-sdk/credential-provider-ini@3.972.23': dependencies: - '@aws-sdk/core': 3.974.13 + '@aws-sdk/core': 3.973.23 '@aws-sdk/credential-provider-env': 3.972.21 '@aws-sdk/credential-provider-http': 3.972.23 '@aws-sdk/credential-provider-login': 3.972.23 @@ -9891,52 +10358,64 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.972.23 '@aws-sdk/credential-provider-web-identity': 3.972.23 '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.6 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt '@aws-sdk/credential-provider-ini@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 '@aws-sdk/credential-provider-env': 3.972.39 '@aws-sdk/credential-provider-http': 3.972.41 - '@aws-sdk/credential-provider-login': 3.972.43 + '@aws-sdk/credential-provider-login': 3.972.51 '@aws-sdk/credential-provider-process': 3.972.39 '@aws-sdk/credential-provider-sso': 3.972.43 '@aws-sdk/credential-provider-web-identity': 3.972.43 - '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/nested-clients': 3.997.19 '@aws-sdk/types': 3.973.9 '@smithy/core': 3.24.4 '@smithy/credential-provider-imds': 4.3.4 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.972.52': + dependencies: + '@aws-sdk/core': 3.974.20 + '@aws-sdk/credential-provider-env': 3.972.46 + '@aws-sdk/credential-provider-http': 3.972.48 + '@aws-sdk/credential-provider-login': 3.972.51 + '@aws-sdk/credential-provider-process': 3.972.46 + '@aws-sdk/credential-provider-sso': 3.972.51 + '@aws-sdk/credential-provider-web-identity': 3.972.51 + '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/credential-provider-imds': 4.3.8 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@aws-sdk/credential-provider-login@3.972.23': dependencies: - '@aws-sdk/core': 3.974.13 + '@aws-sdk/core': 3.973.23 '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.3.12 + '@smithy/protocol-http': 5.4.6 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/credential-provider-login@3.972.43': + '@aws-sdk/credential-provider-login@3.972.51': dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 '@aws-sdk/credential-provider-node@3.972.24': dependencies: @@ -9946,14 +10425,12 @@ snapshots: '@aws-sdk/credential-provider-process': 3.972.21 '@aws-sdk/credential-provider-sso': 3.972.23 '@aws-sdk/credential-provider-web-identity': 3.972.23 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.6 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt '@aws-sdk/credential-provider-node@3.972.44': dependencies: @@ -9969,13 +10446,27 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-node@3.972.54': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.46 + '@aws-sdk/credential-provider-http': 3.972.48 + '@aws-sdk/credential-provider-ini': 3.972.52 + '@aws-sdk/credential-provider-process': 3.972.46 + '@aws-sdk/credential-provider-sso': 3.972.51 + '@aws-sdk/credential-provider-web-identity': 3.972.51 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/credential-provider-imds': 4.3.8 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@aws-sdk/credential-provider-process@3.972.21': dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 '@aws-sdk/credential-provider-process@3.972.39': @@ -9986,69 +10477,92 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.46': + dependencies: + '@aws-sdk/core': 3.974.20 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@aws-sdk/credential-provider-sso@3.972.23': dependencies: - '@aws-sdk/core': 3.974.13 + '@aws-sdk/core': 3.973.23 '@aws-sdk/nested-clients': 3.996.13 '@aws-sdk/token-providers': 3.1014.0 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt '@aws-sdk/credential-provider-sso@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/nested-clients': 3.997.19 '@aws-sdk/token-providers': 3.1052.0 '@aws-sdk/types': 3.973.9 '@smithy/core': 3.24.4 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.972.51': + dependencies: + '@aws-sdk/core': 3.974.20 + '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/token-providers': 3.1065.0 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@aws-sdk/credential-provider-web-identity@3.972.23': dependencies: - '@aws-sdk/core': 3.974.13 + '@aws-sdk/core': 3.973.23 '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt '@aws-sdk/credential-provider-web-identity@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/nested-clients': 3.997.19 '@aws-sdk/types': 3.973.9 '@smithy/core': 3.24.4 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-providers@3.1053.0': + '@aws-sdk/credential-provider-web-identity@3.972.51': dependencies: - '@aws-sdk/client-cognito-identity': 3.1053.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-cognito-identity': 3.972.36 - '@aws-sdk/credential-provider-env': 3.972.39 - '@aws-sdk/credential-provider-http': 3.972.41 - '@aws-sdk/credential-provider-ini': 3.972.43 - '@aws-sdk/credential-provider-login': 3.972.43 - '@aws-sdk/credential-provider-node': 3.972.44 - '@aws-sdk/credential-provider-process': 3.972.39 - '@aws-sdk/credential-provider-sso': 3.972.43 - '@aws-sdk/credential-provider-web-identity': 3.972.43 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/credential-provider-imds': 4.3.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + + '@aws-sdk/credential-providers@3.1065.0': + dependencies: + '@aws-sdk/client-cognito-identity': 3.1065.0 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/credential-provider-cognito-identity': 3.972.44 + '@aws-sdk/credential-provider-env': 3.972.46 + '@aws-sdk/credential-provider-http': 3.972.48 + '@aws-sdk/credential-provider-ini': 3.972.52 + '@aws-sdk/credential-provider-login': 3.972.51 + '@aws-sdk/credential-provider-node': 3.972.54 + '@aws-sdk/credential-provider-process': 3.972.46 + '@aws-sdk/credential-provider-sso': 3.972.51 + '@aws-sdk/credential-provider-web-identity': 3.972.51 + '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/credential-provider-imds': 4.3.8 + '@smithy/types': 4.14.3 + tslib: 2.6.2 '@aws-sdk/credential-providers@3.995.0': dependencies: @@ -10072,8 +10586,6 @@ snapshots: '@smithy/property-provider': 4.2.12 '@smithy/types': 4.13.1 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt '@aws-sdk/middleware-bucket-endpoint@3.972.3': dependencies: @@ -10109,6 +10621,11 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.972.21': + dependencies: + '@aws-sdk/core': 3.974.20 + tslib: 2.6.2 + '@aws-sdk/middleware-host-header@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 @@ -10122,12 +10639,22 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/middleware-logger@3.972.20': + dependencies: + '@aws-sdk/core': 3.974.20 + tslib: 2.6.2 + '@aws-sdk/middleware-logger@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/middleware-recursion-detection@3.972.22': + dependencies: + '@aws-sdk/core': 3.974.20 + tslib: 2.6.2 + '@aws-sdk/middleware-recursion-detection@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 @@ -10136,14 +10663,14 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-ec2@3.972.27': + '@aws-sdk/middleware-sdk-ec2@3.972.34': dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/signature-v4': 5.4.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/signature-v4': 5.4.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 '@aws-sdk/middleware-sdk-s3@3.972.11': dependencies: @@ -10179,104 +10706,110 @@ snapshots: '@smithy/util-retry': 4.2.12 tslib: 2.8.1 + '@aws-sdk/middleware-user-agent@3.972.50': + dependencies: + '@aws-sdk/core': 3.974.20 + tslib: 2.6.2 + '@aws-sdk/nested-clients@3.995.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.24 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/middleware-host-header': 3.972.21 + '@aws-sdk/middleware-logger': 3.972.20 + '@aws-sdk/middleware-recursion-detection': 3.972.22 + '@aws-sdk/middleware-user-agent': 3.972.50 + '@aws-sdk/region-config-resolver': 3.972.24 + '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.995.0 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.10 + '@aws-sdk/util-user-agent-browser': 3.972.21 + '@aws-sdk/util-user-agent-node': 3.973.36 '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/hash-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 + '@smithy/core': 3.23.12 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/hash-node': 4.3.6 + '@smithy/invalid-dependency': 4.3.6 + '@smithy/middleware-content-length': 4.3.6 + '@smithy/middleware-endpoint': 4.5.6 + '@smithy/middleware-retry': 4.6.6 + '@smithy/middleware-serde': 4.3.6 + '@smithy/middleware-stack': 4.3.6 '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.4 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-utf8': 4.2.2 + '@smithy/node-http-handler': 4.7.7 + '@smithy/protocol-http': 5.4.6 + '@smithy/smithy-client': 4.13.6 + '@smithy/types': 4.13.1 + '@smithy/url-parser': 4.3.6 + '@smithy/util-base64': 4.4.6 + '@smithy/util-body-length-browser': 4.3.6 + '@smithy/util-body-length-node': 4.3.6 + '@smithy/util-defaults-mode-browser': 4.4.6 + '@smithy/util-defaults-mode-node': 4.3.6 + '@smithy/util-endpoints': 3.5.6 + '@smithy/util-middleware': 4.3.6 + '@smithy/util-retry': 4.4.6 + '@smithy/util-utf8': 4.3.6 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt '@aws-sdk/nested-clients@3.996.13': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.24 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/middleware-host-header': 3.972.21 + '@aws-sdk/middleware-logger': 3.972.20 + '@aws-sdk/middleware-recursion-detection': 3.972.22 + '@aws-sdk/middleware-user-agent': 3.972.50 + '@aws-sdk/region-config-resolver': 3.972.24 + '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.10 + '@aws-sdk/util-user-agent-browser': 3.972.21 + '@aws-sdk/util-user-agent-node': 3.973.36 '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/hash-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 + '@smithy/core': 3.23.12 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/hash-node': 4.3.6 + '@smithy/invalid-dependency': 4.3.6 + '@smithy/middleware-content-length': 4.3.6 + '@smithy/middleware-endpoint': 4.5.6 + '@smithy/middleware-retry': 4.6.6 + '@smithy/middleware-serde': 4.3.6 + '@smithy/middleware-stack': 4.3.6 '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.4 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-utf8': 4.2.2 + '@smithy/node-http-handler': 4.7.7 + '@smithy/protocol-http': 5.4.6 + '@smithy/smithy-client': 4.13.6 + '@smithy/types': 4.13.1 + '@smithy/url-parser': 4.3.6 + '@smithy/util-base64': 4.4.6 + '@smithy/util-body-length-browser': 4.3.6 + '@smithy/util-body-length-node': 4.3.6 + '@smithy/util-defaults-mode-browser': 4.4.6 + '@smithy/util-defaults-mode-node': 4.3.6 + '@smithy/util-endpoints': 3.5.6 + '@smithy/util-middleware': 4.3.6 + '@smithy/util-retry': 4.4.6 + '@smithy/util-utf8': 4.3.6 tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - '@aws-sdk/nested-clients@3.997.11': + '@aws-sdk/nested-clients@3.997.19': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/signature-v4-multi-region': 3.996.28 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/core': 3.974.20 + '@aws-sdk/signature-v4-multi-region': 3.996.33 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/fetch-http-handler': 5.4.6 + '@smithy/node-http-handler': 4.7.7 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + + '@aws-sdk/region-config-resolver@3.972.24': + dependencies: + '@aws-sdk/core': 3.974.20 + tslib: 2.6.2 '@aws-sdk/region-config-resolver@3.972.9': dependencies: @@ -10295,36 +10828,49 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.28': + '@aws-sdk/signature-v4-multi-region@3.996.33': dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/signature-v4': 5.4.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 + '@aws-sdk/types': 3.973.12 + '@smithy/signature-v4': 5.4.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 '@aws-sdk/token-providers@3.1014.0': dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/nested-clients': 3.996.13 + '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 '@aws-sdk/token-providers@3.1052.0': dependencies: '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/nested-clients': 3.997.19 '@aws-sdk/types': 3.973.9 '@smithy/core': 3.24.4 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@aws-sdk/token-providers@3.1065.0': + dependencies: + '@aws-sdk/core': 3.974.20 + '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + + '@aws-sdk/types@3.973.12': + dependencies: + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@aws-sdk/types@3.973.6': dependencies: - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 '@aws-sdk/types@3.973.9': @@ -10337,12 +10883,12 @@ snapshots: tslib: 2.8.1 '@aws-sdk/util-endpoints@3.995.0': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-endpoints': 3.3.3 - tslib: 2.8.1 + dependencies: + '@aws-sdk/types': 3.973.12 + '@smithy/types': 4.14.3 + '@smithy/url-parser': 4.3.6 + '@smithy/util-endpoints': 3.5.6 + tslib: 2.6.2 '@aws-sdk/util-endpoints@3.996.5': dependencies: @@ -10356,6 +10902,15 @@ snapshots: dependencies: tslib: 2.8.1 + '@aws-sdk/util-locate-window@3.965.7': + dependencies: + tslib: 2.6.2 + + '@aws-sdk/util-user-agent-browser@3.972.21': + dependencies: + '@aws-sdk/core': 3.974.20 + tslib: 2.6.2 + '@aws-sdk/util-user-agent-browser@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 @@ -10372,9 +10927,14 @@ snapshots: '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 + '@aws-sdk/util-user-agent-node@3.973.36': + dependencies: + '@aws-sdk/core': 3.974.20 + tslib: 2.6.2 + '@aws-sdk/xml-builder@3.972.15': dependencies: - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 fast-xml-parser: 5.5.8 tslib: 2.8.1 @@ -10385,27 +10945,35 @@ snapshots: fast-xml-parser: 5.7.3 tslib: 2.8.1 + '@aws-sdk/xml-builder@3.972.29': + dependencies: + '@smithy/types': 4.14.3 + fast-xml-parser: 5.7.3 + tslib: 2.6.2 + '@aws/lambda-invoke-store@0.2.2': {} - '@babel/code-frame@7.29.0': + '@aws/lambda-invoke-store@0.2.4': {} + + '@babel/code-frame@7.29.7': dependencies: - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 js-tokens: 4.0.0 picocolors: 1.1.1 '@babel/compat-data@7.29.7': {} - '@babel/core@7.29.0': + '@babel/core@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -10415,17 +10983,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.29.1': + '@babel/generator@7.29.7': dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.27.3': + '@babel/helper-annotate-as-pure@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@babel/helper-compilation-targets@7.29.7': dependencies: @@ -10435,809 +11003,834 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.29.0)': + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.29.0)': + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.29.0)': + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.29.7 debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.12 transitivePeerDependencies: - supports-color - '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.29.7': {} - '@babel/helper-member-expression-to-functions@7.27.1': + '@babel/helper-member-expression-to-functions@7.29.7': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.28.6': + '@babel/helper-module-imports@7.29.7': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.27.1': + '@babel/helper-optimise-call-expression@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 - '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-plugin-utils@7.29.7': {} - '@babel/helper-plugin-utils@7.28.6': {} - - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-wrap-function': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)': + '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} '@babel/helper-validator-option@7.29.7': {} - '@babel/helper-wrap-function@7.28.3': + '@babel/helper-wrap-function@7.29.7': dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.6': + '@babel/helpers@7.29.7': dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 - '@babel/parser@7.29.0': + '@babel/parser@7.29.7': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.29.0)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': + '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.29.0)': + '@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.29.0)': + '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.29.0)': + '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.29.0)': + '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + '@babel/helper-globals': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.28.6 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/template': 7.29.7 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.29.0)': + '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.29.0)': + '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0)': + '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.29.0)': + '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.29.0)': + '@babel/plugin-transform-react-constant-elements@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/types': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.29.0)': + '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/preset-env@7.28.3(@babel/core@7.29.0)': + '@babel/preset-env@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.29.0) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.29.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.0) - core-js-compat: 3.46.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7) + '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.49.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.29.0 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/types': 7.29.7 esutils: 2.0.3 - '@babel/preset-react@7.27.1(@babel/core@7.29.0)': + '@babel/preset-react@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-pure-annotations': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.27.1(@babel/core@7.29.0)': + '@babel/preset-typescript@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - '@babel/runtime@7.28.4': {} + '@babel/runtime@7.29.7': {} - '@babel/template@7.28.6': + '@babel/template@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 - '@babel/traverse@7.29.0': + '@babel/traverse@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': + '@babel/types@7.29.7': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 '@bcoe/v8-coverage@0.2.3': {} + '@borewit/text-codec@0.2.2': {} + '@braze/web-sdk@6.5.0': {} - '@cacheable/memory@2.0.8': + '@cacheable/memory@2.0.9': dependencies: - '@cacheable/utils': 2.4.0 + '@cacheable/utils': 2.4.1 '@keyv/bigmap': 1.3.1(keyv@5.6.0) hookified: 1.15.1 keyv: 5.6.0 - '@cacheable/utils@2.4.0': + '@cacheable/utils@2.4.1': dependencies: hashery: 1.5.1 keyv: 5.6.0 '@creditkarma/thrift-server-core@1.0.4': dependencies: - '@types/lodash': 4.14.202 + '@types/lodash': 4.17.24 lodash: 4.18.1 '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/color-helpers@5.1.0': {} + '@csstools/color-helpers@6.0.2': {} - '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-color-parser@4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: - '@csstools/color-helpers': 5.1.0 - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/color-helpers': 6.0.2 + '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-syntax-patches-for-csstree@1.1.1(css-tree@3.2.1)': + '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/css-syntax-patches-for-csstree@1.1.5(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 '@csstools/css-tokenizer@3.0.4': {} + '@csstools/css-tokenizer@4.0.0': {} + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.2)': dependencies: - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.2 '@discoveryjs/json-ext@0.5.7': {} @@ -11248,23 +11841,23 @@ snapshots: '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 - tslib: 2.8.1 + tslib: 2.6.2 optional: true '@emnapi/runtime@1.10.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 optional: true '@emnapi/wasi-threads@1.2.1': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 optional: true '@emotion/babel-plugin@11.13.5': dependencies: - '@babel/helper-module-imports': 7.28.6 - '@babel/runtime': 7.28.4 + '@babel/helper-module-imports': 7.29.7 + '@babel/runtime': 7.29.7 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -11291,7 +11884,7 @@ snapshots: '@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.7 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 @@ -11311,7 +11904,7 @@ snapshots: '@emotion/memoize': 0.9.0 '@emotion/unitless': 0.10.0 '@emotion/utils': 1.4.2 - csstype: 3.1.3 + csstype: 3.2.3 '@emotion/server@11.11.0': dependencies: @@ -11338,7 +11931,7 @@ snapshots: '@esbuild/aix-ppc64@0.27.0': optional: true - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.27.7': optional: true '@esbuild/android-arm64@0.18.20': @@ -11350,7 +11943,7 @@ snapshots: '@esbuild/android-arm64@0.27.0': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-arm64@0.27.7': optional: true '@esbuild/android-arm@0.18.20': @@ -11362,7 +11955,7 @@ snapshots: '@esbuild/android-arm@0.27.0': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/android-arm@0.27.7': optional: true '@esbuild/android-x64@0.18.20': @@ -11374,7 +11967,7 @@ snapshots: '@esbuild/android-x64@0.27.0': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/android-x64@0.27.7': optional: true '@esbuild/darwin-arm64@0.18.20': @@ -11386,7 +11979,7 @@ snapshots: '@esbuild/darwin-arm64@0.27.0': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-arm64@0.27.7': optional: true '@esbuild/darwin-x64@0.18.20': @@ -11398,7 +11991,7 @@ snapshots: '@esbuild/darwin-x64@0.27.0': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.27.7': optional: true '@esbuild/freebsd-arm64@0.18.20': @@ -11410,7 +12003,7 @@ snapshots: '@esbuild/freebsd-arm64@0.27.0': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.27.7': optional: true '@esbuild/freebsd-x64@0.18.20': @@ -11422,7 +12015,7 @@ snapshots: '@esbuild/freebsd-x64@0.27.0': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-x64@0.27.7': optional: true '@esbuild/linux-arm64@0.18.20': @@ -11434,7 +12027,7 @@ snapshots: '@esbuild/linux-arm64@0.27.0': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/linux-arm64@0.27.7': optional: true '@esbuild/linux-arm@0.18.20': @@ -11446,7 +12039,7 @@ snapshots: '@esbuild/linux-arm@0.27.0': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/linux-arm@0.27.7': optional: true '@esbuild/linux-ia32@0.18.20': @@ -11458,7 +12051,7 @@ snapshots: '@esbuild/linux-ia32@0.27.0': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-ia32@0.27.7': optional: true '@esbuild/linux-loong64@0.18.20': @@ -11470,7 +12063,7 @@ snapshots: '@esbuild/linux-loong64@0.27.0': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-loong64@0.27.7': optional: true '@esbuild/linux-mips64el@0.18.20': @@ -11482,7 +12075,7 @@ snapshots: '@esbuild/linux-mips64el@0.27.0': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-mips64el@0.27.7': optional: true '@esbuild/linux-ppc64@0.18.20': @@ -11494,7 +12087,7 @@ snapshots: '@esbuild/linux-ppc64@0.27.0': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-ppc64@0.27.7': optional: true '@esbuild/linux-riscv64@0.18.20': @@ -11506,7 +12099,7 @@ snapshots: '@esbuild/linux-riscv64@0.27.0': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-riscv64@0.27.7': optional: true '@esbuild/linux-s390x@0.18.20': @@ -11518,7 +12111,7 @@ snapshots: '@esbuild/linux-s390x@0.27.0': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-s390x@0.27.7': optional: true '@esbuild/linux-x64@0.18.20': @@ -11530,7 +12123,7 @@ snapshots: '@esbuild/linux-x64@0.27.0': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-x64@0.27.7': optional: true '@esbuild/netbsd-arm64@0.25.12': @@ -11539,7 +12132,7 @@ snapshots: '@esbuild/netbsd-arm64@0.27.0': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/netbsd-arm64@0.27.7': optional: true '@esbuild/netbsd-x64@0.18.20': @@ -11551,7 +12144,7 @@ snapshots: '@esbuild/netbsd-x64@0.27.0': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/netbsd-x64@0.27.7': optional: true '@esbuild/openbsd-arm64@0.25.12': @@ -11560,7 +12153,7 @@ snapshots: '@esbuild/openbsd-arm64@0.27.0': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/openbsd-arm64@0.27.7': optional: true '@esbuild/openbsd-x64@0.18.20': @@ -11572,7 +12165,7 @@ snapshots: '@esbuild/openbsd-x64@0.27.0': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/openbsd-x64@0.27.7': optional: true '@esbuild/openharmony-arm64@0.25.12': @@ -11581,7 +12174,7 @@ snapshots: '@esbuild/openharmony-arm64@0.27.0': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@esbuild/openharmony-arm64@0.27.7': optional: true '@esbuild/sunos-x64@0.18.20': @@ -11593,7 +12186,7 @@ snapshots: '@esbuild/sunos-x64@0.27.0': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/sunos-x64@0.27.7': optional: true '@esbuild/win32-arm64@0.18.20': @@ -11605,7 +12198,7 @@ snapshots: '@esbuild/win32-arm64@0.27.0': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/win32-arm64@0.27.7': optional: true '@esbuild/win32-ia32@0.18.20': @@ -11617,7 +12210,7 @@ snapshots: '@esbuild/win32-ia32@0.27.0': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/win32-ia32@0.27.7': optional: true '@esbuild/win32-x64@0.18.20': @@ -11629,7 +12222,7 @@ snapshots: '@esbuild/win32-x64@0.27.0': optional: true - '@esbuild/win32-x64@0.27.3': + '@esbuild/win32-x64@0.27.7': optional: true '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@9.39.1)': @@ -11669,7 +12262,7 @@ snapshots: globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -11700,16 +12293,16 @@ snapshots: '@guardian/cdk@63.3.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1124.1)(constructs@10.6.0)': dependencies: - '@aws-sdk/client-ec2': 3.1053.0 - '@aws-sdk/client-ssm': 3.1053.0 - '@aws-sdk/credential-providers': 3.1053.0 + '@aws-sdk/client-ec2': 3.1065.0 + '@aws-sdk/client-ssm': 3.1065.0 + '@aws-sdk/credential-providers': 3.1065.0 aws-cdk: 2.1124.1 aws-cdk-lib: 2.257.0(constructs@10.6.0) chalk: 4.1.2 - codemaker: 1.132.0 + codemaker: 1.134.0 constructs: 10.6.0 git-url-parse: 16.1.0 - js-yaml: 4.1.1 + js-yaml: 4.2.0 read-pkg-up: 7.0.1 yargs: 17.7.2 @@ -11803,7 +12396,7 @@ snapshots: '@guardian/shimport@1.0.2': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@guardian/source-development-kitchen@28.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.1)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3)': dependencies: @@ -11858,7 +12451,7 @@ snapshots: js-yaml: 3.14.2 resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.3': {} + '@istanbuljs/schema@0.1.6': {} '@jest/console@29.7.0': dependencies: @@ -11904,9 +12497,9 @@ snapshots: - supports-color - ts-node - '@jest/create-cache-key-function@30.2.0': + '@jest/create-cache-key-function@30.4.1': dependencies: - '@jest/types': 30.2.0 + '@jest/types': 30.4.1 '@jest/environment@29.7.0': dependencies: @@ -11944,10 +12537,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/pattern@30.0.1': + '@jest/pattern@30.4.0': dependencies: '@types/node': 24.12.4 - jest-regex-util: 30.0.1 + jest-regex-util: 30.4.0 '@jest/reporters@29.7.0': dependencies: @@ -11959,32 +12552,32 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 '@types/node': 24.12.4 chalk: 4.1.2 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.1 + istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.2.0 jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 + v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color '@jest/schemas@29.6.3': dependencies: - '@sinclair/typebox': 0.27.8 + '@sinclair/typebox': 0.27.10 - '@jest/schemas@30.0.5': + '@jest/schemas@30.4.1': dependencies: - '@sinclair/typebox': 0.34.41 + '@sinclair/typebox': 0.34.49 '@jest/source-map@29.6.3': dependencies: @@ -11997,7 +12590,7 @@ snapshots: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 '@jest/test-sequencer@29.7.0': dependencies: @@ -12008,7 +12601,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 @@ -12020,7 +12613,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.6 + pirates: 4.0.7 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -12032,17 +12625,17 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 24.12.4 - '@types/yargs': 17.0.33 + '@types/yargs': 17.0.35 chalk: 4.1.2 - '@jest/types@30.2.0': + '@jest/types@30.4.1': dependencies: - '@jest/pattern': 30.0.1 - '@jest/schemas': 30.0.5 + '@jest/pattern': 30.4.0 + '@jest/schemas': 30.4.1 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 24.12.4 - '@types/yargs': 17.0.33 + '@types/yargs': 17.0.35 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.13': @@ -12074,41 +12667,132 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + '@jsonjoy.com/base64@1.1.2(tslib@2.6.2)': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 - '@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)': + '@jsonjoy.com/base64@17.67.0(tslib@2.6.2)': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 - '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)': + '@jsonjoy.com/buffers@1.2.1(tslib@2.6.2)': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 + + '@jsonjoy.com/buffers@17.67.0(tslib@2.6.2)': + dependencies: + tslib: 2.6.2 + + '@jsonjoy.com/codegen@1.0.0(tslib@2.6.2)': + dependencies: + tslib: 2.6.2 + + '@jsonjoy.com/codegen@17.67.0(tslib@2.6.2)': + dependencies: + tslib: 2.6.2 + + '@jsonjoy.com/fs-core@4.57.6(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) + thingies: 2.6.0(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/fs-fsa@4.57.6(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/fs-core': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) + thingies: 2.6.0(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/fs-node-builtins@4.57.6(tslib@2.6.2)': + dependencies: + tslib: 2.6.2 + + '@jsonjoy.com/fs-node-to-fsa@4.57.6(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/fs-fsa': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/fs-node-utils@4.57.6(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/fs-node@4.57.6(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/fs-core': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-print': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-snapshot': 4.57.6(tslib@2.6.2) + glob-to-regex.js: 1.2.0(tslib@2.6.2) + thingies: 2.6.0(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/fs-print@4.57.6(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) + tree-dump: 1.1.0(tslib@2.6.2) + tslib: 2.6.2 - '@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)': + '@jsonjoy.com/fs-snapshot@4.57.6(tslib@2.6.2)': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/json-pack': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/json-pack@1.21.0(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.6.2) + '@jsonjoy.com/buffers': 1.2.1(tslib@2.6.2) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) + '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.6.2) + '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) hyperdyperid: 1.2.0 - thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 + thingies: 2.6.0(tslib@2.6.2) + tree-dump: 1.1.0(tslib@2.6.2) + tslib: 2.6.2 - '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': + '@jsonjoy.com/json-pack@17.67.0(tslib@2.6.2)': dependencies: - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - tslib: 2.8.1 + '@jsonjoy.com/base64': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/codegen': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/json-pointer': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) + hyperdyperid: 1.2.0 + thingies: 2.6.0(tslib@2.6.2) + tree-dump: 1.1.0(tslib@2.6.2) + tslib: 2.6.2 - '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': + '@jsonjoy.com/json-pointer@1.0.2(tslib@2.6.2)': dependencies: - '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) - tslib: 2.8.1 + '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) + '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/json-pointer@17.67.0(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/util@1.9.0(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/buffers': 1.2.1(tslib@2.6.2) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) + tslib: 2.6.2 + + '@jsonjoy.com/util@17.67.0(tslib@2.6.2)': + dependencies: + '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/codegen': 17.67.0(tslib@2.6.2) + tslib: 2.6.2 '@keyv/bigmap@1.3.1(keyv@5.6.0)': dependencies: @@ -12122,11 +12806,83 @@ snapshots: '@mdx-js/react@3.1.1(@types/react@18.3.1)(react@18.3.1)': dependencies: - '@types/mdx': 2.0.13 + '@types/mdx': 2.0.14 '@types/react': 18.3.1 react: 18.3.1 - '@napi-rs/wasm-runtime@0.2.12': + '@napi-rs/nice-android-arm-eabi@1.1.1': + optional: true + + '@napi-rs/nice-android-arm64@1.1.1': + optional: true + + '@napi-rs/nice-darwin-arm64@1.1.1': + optional: true + + '@napi-rs/nice-darwin-x64@1.1.1': + optional: true + + '@napi-rs/nice-freebsd-x64@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm64-musl@1.1.1': + optional: true + + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-x64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-x64-musl@1.1.1': + optional: true + + '@napi-rs/nice-openharmony-arm64@1.1.1': + optional: true + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + optional: true + + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + optional: true + + '@napi-rs/nice-win32-x64-msvc@1.1.1': + optional: true + + '@napi-rs/nice@1.1.1': + optionalDependencies: + '@napi-rs/nice-android-arm-eabi': 1.1.1 + '@napi-rs/nice-android-arm64': 1.1.1 + '@napi-rs/nice-darwin-arm64': 1.1.1 + '@napi-rs/nice-darwin-x64': 1.1.1 + '@napi-rs/nice-freebsd-x64': 1.1.1 + '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1 + '@napi-rs/nice-linux-arm64-gnu': 1.1.1 + '@napi-rs/nice-linux-arm64-musl': 1.1.1 + '@napi-rs/nice-linux-ppc64-gnu': 1.1.1 + '@napi-rs/nice-linux-riscv64-gnu': 1.1.1 + '@napi-rs/nice-linux-s390x-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-musl': 1.1.1 + '@napi-rs/nice-openharmony-arm64': 1.1.1 + '@napi-rs/nice-win32-arm64-msvc': 1.1.1 + '@napi-rs/nice-win32-ia32-msvc': 1.1.1 + '@napi-rs/nice-win32-x64-msvc': 1.1.1 + optional: true + + '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 @@ -12137,6 +12893,8 @@ snapshots: '@nodable/entities@2.1.0': {} + '@nodable/entities@2.1.1': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -12147,7 +12905,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.20.1 '@package-json/types@0.0.12': {} @@ -12245,7 +13003,7 @@ snapshots: tslib: 2.8.1 tsyringe: 4.10.0 - '@pkgr/core@0.2.9': {} + '@pkgr/core@0.3.6': {} '@playwright/test@1.60.0': dependencies: @@ -12439,8 +13197,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.60.1': optional: true - '@sec-ant/readable-stream@0.4.1': {} - '@sentry-internal/browser-utils@10.52.0': dependencies: '@sentry/core': 10.52.0 @@ -12469,19 +13225,19 @@ snapshots: '@sentry/core@10.52.0': {} - '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.27.10': {} - '@sinclair/typebox@0.34.41': {} + '@sinclair/typebox@0.34.49': {} '@sindresorhus/is@5.6.0': {} - '@sinonjs/commons@3.0.0': + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 '@sinonjs/fake-timers@10.3.0': dependencies: - '@sinonjs/commons': 3.0.0 + '@sinonjs/commons': 3.0.1 '@smithy/abort-controller@4.2.12': dependencies: @@ -12506,10 +13262,15 @@ snapshots: '@smithy/util-middleware': 4.2.12 tslib: 2.8.1 + '@smithy/config-resolver@4.5.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/core@3.23.12': dependencies: '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 '@smithy/url-parser': 4.2.12 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 @@ -12525,12 +13286,18 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/core@3.24.6': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@smithy/credential-provider-imds@4.2.12': dependencies: '@smithy/node-config-provider': 4.3.12 '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 + '@smithy/types': 4.13.1 + '@smithy/url-parser': 4.3.6 tslib: 2.8.1 '@smithy/credential-provider-imds@4.3.4': @@ -12539,6 +13306,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/credential-provider-imds@4.3.8': + dependencies: + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@smithy/eventstream-codec@4.2.8': dependencies: '@aws-crypto/crc32': 5.2.0 @@ -12573,7 +13346,7 @@ snapshots: dependencies: '@smithy/protocol-http': 5.3.12 '@smithy/querystring-builder': 4.2.12 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 '@smithy/util-base64': 4.3.2 tslib: 2.8.1 @@ -12583,6 +13356,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/fetch-http-handler@5.4.6': + dependencies: + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@smithy/hash-blob-browser@4.2.9': dependencies: '@smithy/chunked-blob-reader': 5.2.0 @@ -12597,6 +13376,11 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@smithy/hash-node@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/hash-stream-node@4.2.8': dependencies: '@smithy/types': 4.14.2 @@ -12608,9 +13392,14 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/invalid-dependency@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/is-array-buffer@2.2.0': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/is-array-buffer@4.2.2': dependencies: @@ -12622,18 +13411,12 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/middleware-compression@4.3.32': + '@smithy/middleware-compression@4.4.6': dependencies: - '@smithy/core': 3.24.4 - '@smithy/is-array-buffer': 4.2.2 - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-utf8': 4.2.2 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 fflate: 0.8.1 - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/middleware-content-length@4.2.12': dependencies: @@ -12641,6 +13424,11 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/middleware-content-length@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/middleware-endpoint@4.4.27': dependencies: '@smithy/core': 3.24.4 @@ -12652,6 +13440,11 @@ snapshots: '@smithy/util-middleware': 4.2.12 tslib: 2.8.1 + '@smithy/middleware-endpoint@4.5.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/middleware-retry@4.4.44': dependencies: '@smithy/node-config-provider': 4.3.12 @@ -12664,6 +13457,11 @@ snapshots: '@smithy/uuid': 1.1.2 tslib: 2.8.1 + '@smithy/middleware-retry@4.6.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/middleware-serde@4.2.15': dependencies: '@smithy/core': 3.24.4 @@ -12671,11 +13469,21 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/middleware-serde@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/middleware-stack@4.2.12': dependencies: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/middleware-stack@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/node-config-provider@4.3.12': dependencies: '@smithy/property-provider': 4.2.12 @@ -12683,12 +13491,17 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/node-config-provider@4.4.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/node-http-handler@4.5.0': dependencies: '@smithy/abort-controller': 4.2.12 '@smithy/protocol-http': 5.3.12 '@smithy/querystring-builder': 4.2.12 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 '@smithy/node-http-handler@4.7.4': @@ -12697,9 +13510,15 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/node-http-handler@4.7.7': + dependencies: + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@smithy/property-provider@4.2.12': dependencies: - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 tslib: 2.8.1 '@smithy/protocol-http@5.3.12': @@ -12707,9 +13526,14 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/protocol-http@5.4.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/querystring-builder@4.2.12': dependencies: - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 '@smithy/util-uri-escape': 4.2.2 tslib: 2.8.1 @@ -12731,7 +13555,7 @@ snapshots: dependencies: '@smithy/is-array-buffer': 4.2.2 '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 + '@smithy/types': 4.13.1 '@smithy/util-hex-encoding': 4.2.2 '@smithy/util-middleware': 4.2.12 '@smithy/util-uri-escape': 4.2.2 @@ -12744,6 +13568,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/signature-v4@5.4.6': + dependencies: + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@smithy/smithy-client@4.12.7': dependencies: '@smithy/core': 3.24.4 @@ -12754,6 +13584,12 @@ snapshots: '@smithy/util-stream': 4.5.20 tslib: 2.8.1 + '@smithy/smithy-client@4.13.6': + dependencies: + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 + tslib: 2.6.2 + '@smithy/types@4.13.1': dependencies: tslib: 2.8.1 @@ -12762,30 +13598,54 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/types@4.14.3': + dependencies: + tslib: 2.6.2 + '@smithy/url-parser@4.2.12': dependencies: '@smithy/querystring-parser': 4.2.12 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/url-parser@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-base64@4.3.2': dependencies: '@smithy/util-buffer-from': 4.2.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + '@smithy/util-base64@4.4.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-body-length-browser@4.2.2': dependencies: tslib: 2.8.1 + '@smithy/util-body-length-browser@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-body-length-node@4.2.3': dependencies: tslib: 2.8.1 + '@smithy/util-body-length-node@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/util-buffer-from@4.2.2': dependencies: @@ -12803,6 +13663,11 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.4.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-defaults-mode-node@4.2.47': dependencies: '@smithy/config-resolver': 4.4.13 @@ -12813,12 +13678,22 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-endpoints@3.3.3': dependencies: '@smithy/node-config-provider': 4.3.12 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/util-endpoints@3.5.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-hex-encoding@4.2.2': dependencies: tslib: 2.8.1 @@ -12828,12 +13703,22 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/util-middleware@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-retry@4.2.12': dependencies: '@smithy/service-error-classification': 4.2.12 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/util-retry@4.4.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-stream@4.5.20': dependencies: '@smithy/fetch-http-handler': 5.4.4 @@ -12852,19 +13737,29 @@ snapshots: '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 - tslib: 2.8.1 + tslib: 2.6.2 '@smithy/util-utf8@4.2.2': dependencies: '@smithy/util-buffer-from': 4.2.2 tslib: 2.8.1 + '@smithy/util-utf8@4.3.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/util-waiter@4.2.13': dependencies: '@smithy/abort-controller': 4.2.12 '@smithy/types': 4.14.2 tslib: 2.8.1 + '@smithy/util-waiter@4.4.6': + dependencies: + '@smithy/core': 3.24.6 + tslib: 2.6.2 + '@smithy/uuid@1.1.2': dependencies: tslib: 2.8.1 @@ -12874,19 +13769,19 @@ snapshots: '@storybook/addon-a11y@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@storybook/global': 5.0.0 - axe-core: 4.11.1 + axe-core: 4.12.1 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': + '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1)': dependencies: '@mdx-js/react': 3.1.1(@types/react@18.3.1)(react@18.3.1) - '@storybook/csf-plugin': 10.3.3(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) - '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/csf-plugin': 10.3.3(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1) + '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react-dom-shim': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - ts-dedent: 2.2.0 + ts-dedent: 2.3.0 transitivePeerDependencies: - '@types/react' - esbuild @@ -12903,7 +13798,7 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/builder-webpack5@10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/builder-webpack5@10.3.3(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) case-sensitive-paths-webpack-plugin: 2.4.0 @@ -12911,48 +13806,57 @@ snapshots: css-loader: 7.1.2(webpack@5.104.1) es-module-lexer: 1.7.0 fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.104.1) - html-webpack-plugin: 5.6.6(webpack@5.104.1) + html-webpack-plugin: 5.6.7(webpack@5.104.1) magic-string: 0.30.21 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) style-loader: 4.0.0(webpack@5.104.1) - terser-webpack-plugin: 5.4.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack@5.104.1) - ts-dedent: 2.2.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + terser-webpack-plugin: 5.6.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack@5.104.1) + ts-dedent: 2.3.0 + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-dev-middleware: 6.1.3(webpack@5.104.1) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: + - '@minify-html/node' - '@rspack/core' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - lightningcss + - postcss - uglify-js - webpack-cli '@storybook/core-webpack@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - ts-dedent: 2.2.0 + ts-dedent: 2.3.0 - '@storybook/csf-plugin@10.3.3(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': + '@storybook/csf-plugin@10.3.3(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1)': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unplugin: 2.3.11 optionalDependencies: - esbuild: 0.27.3 + esbuild: 0.27.7 rollup: 4.60.1 - vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) '@storybook/global@5.0.0': {} - '@storybook/icons@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/preset-react-webpack@10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/preset-react-webpack@10.3.3(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.104.1) @@ -12962,15 +13866,24 @@ snapshots: react-docgen: 7.1.1 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.12 - semver: 7.8.1 + semver: 7.8.4 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tsconfig-paths: 4.2.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: + - '@minify-html/node' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - lightningcss + - postcss - supports-color - uglify-js - webpack-cli @@ -12983,9 +13896,9 @@ snapshots: flat-cache: 3.2.0 micromatch: 4.0.8 react-docgen-typescript: 2.4.0(typescript@5.9.3) - tslib: 2.8.1 + tslib: 2.6.2 typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color @@ -12995,10 +13908,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-webpack5@10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/react-webpack5@10.3.3(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: - '@storybook/builder-webpack5': 10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) - '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 10.3.3(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) '@storybook/react': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13006,9 +13919,18 @@ snapshots: optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: + - '@minify-html/node' - '@rspack/core' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - lightningcss + - postcss - supports-color - uglify-js - webpack-cli @@ -13018,7 +13940,7 @@ snapshots: '@storybook/global': 5.0.0 '@storybook/react-dom-shim': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 - react-docgen: 8.0.2 + react-docgen: 8.0.3 react-docgen-typescript: 2.4.0(typescript@5.9.3) react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13030,7 +13952,7 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@9.39.1)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) - '@typescript-eslint/types': 8.59.2 + '@typescript-eslint/types': 8.61.0 eslint: 9.39.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -13041,19 +13963,19 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': + '@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) - '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) - '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': + '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -13064,81 +13986,81 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.55.7(@typescript-eslint/types@8.59.2) - vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) + svelte: 5.55.7(@typescript-eslint/types@8.61.0) + vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) optionalDependencies: typescript: 5.9.3 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) debug: 4.4.3 - svelte: 5.55.7(@typescript-eslint/types@8.59.2) - vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) + svelte: 5.55.7(@typescript-eslint/types@8.61.0) + vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.55.7(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.55.7(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) debug: 4.4.3 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.21 - svelte: 5.55.7(@typescript-eslint/types@8.59.2) - vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) - vitefu: 1.1.1(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + svelte: 5.55.7(@typescript-eslint/types@8.61.0) + vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) + vitefu: 1.1.1(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) transitivePeerDependencies: - supports-color - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.29.0)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 - '@svgr/babel-preset@8.1.0(@babel/core@7.29.0)': + '@svgr/babel-preset@8.1.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.29.0 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.29.0) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.29.0) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.29.7) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.29.7) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.29.7) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.29.7) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.29.7) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.29.7) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.29.7) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.29.7) '@svgr/core@8.1.0(typescript@5.9.3)': dependencies: - '@babel/core': 7.29.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.29.7) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.9.3) snake-case: 3.0.4 @@ -13148,13 +14070,13 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 entities: 4.5.0 '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))': dependencies: - '@babel/core': 7.29.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@svgr/babel-preset': 8.1.0(@babel/core@7.29.7) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -13172,11 +14094,11 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.9.3)': dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.29.0) - '@babel/preset-env': 7.28.3(@babel/core@7.29.0) - '@babel/preset-react': 7.27.1(@babel/core@7.29.0) - '@babel/preset-typescript': 7.27.1(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-constant-elements': 7.29.7(@babel/core@7.29.7) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) + '@babel/preset-react': 7.29.7(@babel/core@7.29.7) + '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3) @@ -13188,18 +14110,21 @@ snapshots: dependencies: '@swc/core': 1.13.5 '@swc/counter': 0.1.3 - '@xhmikosr/bin-wrapper': 13.0.5 + '@xhmikosr/bin-wrapper': 13.2.0 commander: 8.3.0 minimatch: 9.0.9 - piscina: 4.3.1 + piscina: 4.9.2 semver: 7.5.4 slash: 3.0.0 source-map: 0.7.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 optionalDependencies: chokidar: 4.0.3 transitivePeerDependencies: - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color '@swc/core-darwin-arm64@1.13.5': optional: true @@ -13234,7 +14159,7 @@ snapshots: '@swc/core@1.13.5': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.25 + '@swc/types': 0.1.26 optionalDependencies: '@swc/core-darwin-arm64': 1.13.5 '@swc/core-darwin-x64': 1.13.5 @@ -13251,12 +14176,12 @@ snapshots: '@swc/jest@0.2.39(@swc/core@1.13.5)': dependencies: - '@jest/create-cache-key-function': 30.2.0 + '@jest/create-cache-key-function': 30.4.1 '@swc/core': 1.13.5 '@swc/counter': 0.1.3 - jsonc-parser: 3.2.0 + jsonc-parser: 3.3.1 - '@swc/types@0.1.25': + '@swc/types@0.1.26': dependencies: '@swc/counter': 0.1.3 @@ -13266,8 +14191,8 @@ snapshots: '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/runtime': 7.28.4 + '@babel/code-frame': 7.29.7 + '@babel/runtime': 7.29.7 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -13277,7 +14202,7 @@ snapshots: '@testing-library/jest-dom@6.9.1': dependencies: - '@adobe/css-tools': 4.4.4 + '@adobe/css-tools': 4.5.0 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -13286,7 +14211,7 @@ snapshots: '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.7 '@testing-library/dom': 10.4.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13298,11 +14223,19 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 + '@tokenizer/inflate@0.2.7': + dependencies: + debug: 4.4.3 + fflate: 0.8.3 + token-types: 6.1.2 + transitivePeerDependencies: + - supports-color + '@tokenizer/token@0.3.0': {} '@tootallnate/once@2.0.1': {} - '@tsconfig/node10@1.0.9': {} + '@tsconfig/node10@1.0.12': {} '@tsconfig/node12@1.0.11': {} @@ -13312,7 +14245,7 @@ snapshots: '@tybys/wasm-util@0.10.2': dependencies: - tslib: 2.8.1 + tslib: 2.6.2 optional: true '@types/aria-query@5.0.4': {} @@ -13321,24 +14254,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/body-parser@1.19.2': dependencies: @@ -13353,6 +14286,11 @@ snapshots: dependencies: '@types/deep-eql': 4.0.2 + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/clean-css@4.2.11': dependencies: '@types/node': 24.12.4 @@ -13364,7 +14302,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.1.1 + '@types/express-serve-static-core': 4.19.8 '@types/node': 24.12.4 '@types/connect@3.4.38': @@ -13373,9 +14311,9 @@ snapshots: '@types/cookie@0.6.0': {} - '@types/debug@4.1.12': + '@types/debug@4.1.13': dependencies: - '@types/ms': 0.7.34 + '@types/ms': 2.1.0 '@types/deep-eql@4.0.2': {} @@ -13440,7 +14378,7 @@ snapshots: '@types/html-minifier-terser@7.0.2': {} - '@types/http-cache-semantics@4.0.4': {} + '@types/http-cache-semantics@4.2.0': {} '@types/http-errors@2.0.5': {} @@ -13466,14 +14404,14 @@ snapshots: '@types/jsdom@20.0.1': dependencies: '@types/node': 24.12.4 - '@types/tough-cookie': 4.0.2 - parse5: 7.1.2 + '@types/tough-cookie': 4.0.5 + parse5: 7.3.0 '@types/jsdom@21.1.1': dependencies: '@types/node': 24.12.4 - '@types/tough-cookie': 4.0.2 - parse5: 7.1.2 + '@types/tough-cookie': 4.0.5 + parse5: 7.3.0 '@types/json-schema@7.0.15': {} @@ -13483,25 +14421,25 @@ snapshots: '@types/lodash.debounce@4.0.7': dependencies: - '@types/lodash': 4.14.202 + '@types/lodash': 4.17.24 '@types/lodash.get@4.4.9': dependencies: - '@types/lodash': 4.14.202 + '@types/lodash': 4.17.24 - '@types/lodash@4.14.202': {} + '@types/lodash@4.17.24': {} '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 - '@types/mdx@2.0.13': {} + '@types/mdx@2.0.14': {} '@types/mime@1.3.5': {} - '@types/ms@0.7.34': {} + '@types/ms@2.1.0': {} - '@types/node@16.18.68': {} + '@types/node@16.18.126': {} '@types/node@24.12.4': dependencies: @@ -13515,7 +14453,7 @@ snapshots: dependencies: parse-path: 7.1.0 - '@types/prop-types@15.7.5': {} + '@types/prop-types@15.7.15': {} '@types/qs@6.9.15': {} @@ -13535,8 +14473,8 @@ snapshots: '@types/react@18.3.1': dependencies: - '@types/prop-types': 15.7.5 - csstype: 3.1.3 + '@types/prop-types': 15.7.15 + csstype: 3.2.3 '@types/relateurl@0.2.33': {} @@ -13586,7 +14524,7 @@ snapshots: '@types/stack-utils@2.0.3': {} - '@types/tough-cookie@4.0.2': {} + '@types/tough-cookie@4.0.5': {} '@types/trusted-types@2.0.7': {} @@ -13594,26 +14532,44 @@ snapshots: '@types/unist@3.0.3': {} - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1)': + '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1)': dependencies: '@types/node': 24.12.4 - tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + tapable: 2.3.3 + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) transitivePeerDependencies: + - '@minify-html/node' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - lightningcss + - postcss - uglify-js - webpack-cli '@types/webpack-env@1.18.8': {} - '@types/webpack-node-externals@3.0.4(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1)': + '@types/webpack-node-externals@3.0.4(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1)': dependencies: '@types/node': 24.12.4 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) transitivePeerDependencies: + - '@minify-html/node' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - lightningcss + - postcss - uglify-js - webpack-cli @@ -13623,7 +14579,7 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.33': + '@types/yargs@17.0.35': dependencies: '@types/yargs-parser': 21.0.3 @@ -13660,7 +14616,7 @@ snapshots: '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) - '@typescript-eslint/types': 8.59.2 + '@typescript-eslint/types': 8.57.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: @@ -13689,7 +14645,7 @@ snapshots: '@typescript-eslint/types@8.57.1': {} - '@typescript-eslint/types@8.59.2': {} + '@typescript-eslint/types@8.61.0': {} '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': dependencies: @@ -13698,9 +14654,9 @@ snapshots: '@typescript-eslint/types': 8.57.1 '@typescript-eslint/visitor-keys': 8.57.1 debug: 4.4.3 - minimatch: 10.2.4 - semver: 7.8.1 - tinyglobby: 0.2.16 + minimatch: 10.2.5 + semver: 7.8.4 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -13722,70 +14678,81 @@ snapshots: '@typescript-eslint/types': 8.57.1 eslint-visitor-keys: 5.0.1 - '@ungap/structured-clone@1.3.0': {} + '@ungap/structured-clone@1.3.1': {} + + '@unrs/resolver-binding-android-arm-eabi@1.12.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.12.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.12.2': + optional: true - '@unrs/resolver-binding-android-arm-eabi@1.11.1': + '@unrs/resolver-binding-darwin-x64@1.12.2': optional: true - '@unrs/resolver-binding-android-arm64@1.11.1': + '@unrs/resolver-binding-freebsd-x64@1.12.2': optional: true - '@unrs/resolver-binding-darwin-arm64@1.11.1': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': optional: true - '@unrs/resolver-binding-darwin-x64@1.11.1': + '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': optional: true - '@unrs/resolver-binding-freebsd-x64@1.11.1': + '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + '@unrs/resolver-binding-linux-arm64-musl@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + '@unrs/resolver-binding-linux-loong64-musl@1.12.2': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + '@unrs/resolver-binding-linux-x64-gnu@1.12.2': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + '@unrs/resolver-binding-linux-x64-musl@1.12.2': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.11.1': + '@unrs/resolver-binding-openharmony-arm64@1.12.2': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.11.1': + '@unrs/resolver-binding-wasm32-wasi@1.12.2': dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + '@unrs/resolver-binding-win32-x64-msvc@1.12.2': optional: true '@vitest/expect@3.2.4': dependencies: - '@types/chai': 5.2.2 + '@types/chai': 5.2.3 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 @@ -13883,96 +14850,117 @@ snapshots: '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) '@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack-dev-server@5.2.4)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) optionalDependencies: - webpack-dev-server: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) + webpack-dev-server: 5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1) - '@xhmikosr/archive-type@7.0.0': + '@xhmikosr/archive-type@7.1.0': dependencies: - file-type: 19.6.0 + file-type: 20.5.0 + transitivePeerDependencies: + - supports-color - '@xhmikosr/bin-check@7.0.3': + '@xhmikosr/bin-check@7.1.0': dependencies: execa: 5.1.1 isexe: 2.0.0 - '@xhmikosr/bin-wrapper@13.0.5': + '@xhmikosr/bin-wrapper@13.2.0': dependencies: - '@xhmikosr/bin-check': 7.0.3 - '@xhmikosr/downloader': 15.0.1 + '@xhmikosr/bin-check': 7.1.0 + '@xhmikosr/downloader': 15.2.0 '@xhmikosr/os-filter-obj': 3.0.0 bin-version-check: 5.1.0 transitivePeerDependencies: - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color - '@xhmikosr/decompress-tar@8.0.1': + '@xhmikosr/decompress-tar@8.1.0': dependencies: - file-type: 19.6.0 + file-type: 20.5.0 is-stream: 2.0.1 - tar-stream: 3.1.7 + tar-stream: 3.2.0 transitivePeerDependencies: - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color - '@xhmikosr/decompress-tarbz2@8.0.1': + '@xhmikosr/decompress-tarbz2@8.1.0': dependencies: - '@xhmikosr/decompress-tar': 8.0.1 - file-type: 19.6.0 + '@xhmikosr/decompress-tar': 8.1.0 + file-type: 20.5.0 is-stream: 2.0.1 seek-bzip: 2.0.0 unbzip2-stream: 1.4.3 transitivePeerDependencies: - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color - '@xhmikosr/decompress-targz@8.0.1': + '@xhmikosr/decompress-targz@8.1.0': dependencies: - '@xhmikosr/decompress-tar': 8.0.1 - file-type: 19.6.0 + '@xhmikosr/decompress-tar': 8.1.0 + file-type: 20.5.0 is-stream: 2.0.1 transitivePeerDependencies: - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color - '@xhmikosr/decompress-unzip@7.0.0': + '@xhmikosr/decompress-unzip@7.1.0': dependencies: - file-type: 19.6.0 + file-type: 20.5.0 get-stream: 6.0.1 - yauzl: 3.2.0 + yauzl: 3.4.0 + transitivePeerDependencies: + - supports-color - '@xhmikosr/decompress@10.0.1': + '@xhmikosr/decompress@10.2.1': dependencies: - '@xhmikosr/decompress-tar': 8.0.1 - '@xhmikosr/decompress-tarbz2': 8.0.1 - '@xhmikosr/decompress-targz': 8.0.1 - '@xhmikosr/decompress-unzip': 7.0.0 + '@xhmikosr/decompress-tar': 8.1.0 + '@xhmikosr/decompress-tarbz2': 8.1.0 + '@xhmikosr/decompress-targz': 8.1.0 + '@xhmikosr/decompress-unzip': 7.1.0 graceful-fs: 4.2.11 - make-dir: 4.0.0 strip-dirs: 3.0.0 transitivePeerDependencies: - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color - '@xhmikosr/downloader@15.0.1': + '@xhmikosr/downloader@15.2.0': dependencies: - '@xhmikosr/archive-type': 7.0.0 - '@xhmikosr/decompress': 10.0.1 + '@xhmikosr/archive-type': 7.1.0 + '@xhmikosr/decompress': 10.2.1 content-disposition: 0.5.4 - defaults: 3.0.0 + defaults: 2.0.2 ext-name: 5.0.0 - file-type: 19.6.0 + file-type: 20.5.0 filenamify: 6.0.0 get-stream: 6.0.1 got: 13.0.0 transitivePeerDependencies: - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color '@xhmikosr/os-filter-obj@3.0.0': dependencies: @@ -13997,7 +14985,7 @@ snapshots: acorn-globals@7.0.1: dependencies: acorn: 8.16.0 - acorn-walk: 8.3.1 + acorn-walk: 8.3.5 acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: @@ -14007,7 +14995,9 @@ snapshots: dependencies: acorn: 8.16.0 - acorn-walk@8.3.1: {} + acorn-walk@8.3.5: + dependencies: + acorn: 8.16.0 acorn@8.16.0: {} @@ -14080,6 +15070,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 + anynum@1.0.0: {} + arch@3.0.0: {} arg@4.1.3: {} @@ -14107,11 +15099,11 @@ snapshots: array-includes@3.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 is-string: 1.1.1 math-intrinsics: 1.1.0 @@ -14120,41 +15112,41 @@ snapshots: array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -14171,7 +15163,7 @@ snapshots: ast-types@0.16.1: dependencies: - tslib: 2.8.1 + tslib: 2.6.2 astral-regex@2.0.0: {} @@ -14186,25 +15178,25 @@ snapshots: aws-cdk-lib@2.257.0(constructs@10.6.0): dependencies: '@aws-cdk/asset-awscli-v1': 2.2.273 - '@aws-cdk/asset-node-proxy-agent-v6': 2.1.1 - '@aws-cdk/cloud-assembly-schema': 53.27.0 + '@aws-cdk/asset-node-proxy-agent-v6': 2.1.2 + '@aws-cdk/cloud-assembly-schema': 53.28.0 constructs: 10.6.0 aws-cdk@2.1124.1: {} - axe-core@4.11.1: {} + axe-core@4.12.1: {} axobject-query@4.1.0: {} - b4a@1.6.7: {} + b4a@1.8.1: {} - babel-jest@29.7.0(@babel/core@7.29.0): + babel-jest@29.7.0(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.29.0) + babel-preset-jest: 29.6.3(@babel/core@7.29.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -14213,9 +15205,9 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.29.7 '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: @@ -14223,62 +15215,65 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.7 cosmiconfig: 7.1.0 resolve: 1.22.12 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.29.0): + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): dependencies: '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) - core-js-compat: 3.46.0 + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.49.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.29.0): + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7): dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.0.1(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) - - babel-preset-jest@29.6.3(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 + babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.7) + + babel-preset-jest@29.6.3(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.29.0) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7) bail@2.0.2: {} @@ -14288,17 +15283,48 @@ snapshots: balanced-match@4.0.4: {} - bare-events@2.8.0: - optional: true + bare-events@2.9.1: {} - base64-js@1.5.1: {} + bare-fs@4.7.2: + dependencies: + bare-events: 2.9.1 + bare-path: 3.0.1 + bare-stream: 2.13.1(bare-events@2.9.1) + bare-url: 2.4.5 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.9.1: {} + + bare-path@3.0.1: + dependencies: + bare-os: 3.9.1 + + bare-stream@2.13.1(bare-events@2.9.1): + dependencies: + streamx: 2.27.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.9.1 + transitivePeerDependencies: + - react-native-b4a - baseline-browser-mapping@2.10.32: {} + bare-url@2.4.5: + dependencies: + bare-path: 3.0.1 + + base64-js@1.5.1: {} - baseline-browser-mapping@2.9.19: {} + baseline-browser-mapping@2.10.35: {} batch@0.6.1: {} + bidi-js@1.0.3: + dependencies: + require-from-string: 2.0.2 + big.js@5.2.2: {} bin-version-check@5.1.0: @@ -14324,7 +15350,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.14.1 + qs: 6.14.2 raw-body: 2.5.3 type-is: 1.6.18 unpipe: 1.0.0 @@ -14356,13 +15382,13 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.14.1 + qs: 6.15.2 raw-body: 3.0.2 - type-is: 2.0.1 + type-is: 2.1.0 transitivePeerDependencies: - supports-color - bonjour-service@1.4.0: + bonjour-service@1.4.1: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 @@ -14371,16 +15397,18 @@ snapshots: bowser@2.12.1: {} - brace-expansion@1.1.12: + bowser@2.14.1: {} + + brace-expansion@1.1.15: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.1.1: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.3: + brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -14390,33 +15418,23 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001769 - electron-to-chromium: 1.5.286 - node-releases: 2.0.27 + caniuse-lite: 1.0.30001797 + electron-to-chromium: 1.5.371 + node-releases: 2.0.47 update-browserslist-db: 1.2.3(browserslist@4.24.4) - browserslist@4.28.1: - dependencies: - baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001769 - electron-to-chromium: 1.5.286 - node-releases: 2.0.27 - update-browserslist-db: 1.2.3(browserslist@4.28.1) - browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.32 - caniuse-lite: 1.0.30001793 - electron-to-chromium: 1.5.364 - node-releases: 2.0.46 + baseline-browser-mapping: 2.10.35 + caniuse-lite: 1.0.30001797 + electron-to-chromium: 1.5.371 + node-releases: 2.0.47 update-browserslist-db: 1.2.3(browserslist@4.28.2) bser@2.1.1: dependencies: node-int64: 0.4.0 - buffer-crc32@0.2.13: {} - buffer-from@0.1.2: {} buffer-from@1.1.2: {} @@ -14447,28 +15465,28 @@ snapshots: cacheable-request@10.2.14: dependencies: - '@types/http-cache-semantics': 4.0.4 + '@types/http-cache-semantics': 4.2.0 get-stream: 6.0.1 - http-cache-semantics: 4.1.1 + http-cache-semantics: 4.2.0 keyv: 4.5.4 mimic-response: 4.0.0 - normalize-url: 8.0.1 + normalize-url: 8.1.1 responselike: 3.0.0 - cacheable@2.3.4: + cacheable@2.3.5: dependencies: - '@cacheable/memory': 2.0.8 - '@cacheable/utils': 2.4.0 + '@cacheable/memory': 2.0.9 + '@cacheable/utils': 2.4.1 hookified: 1.15.1 keyv: 5.6.0 - qified: 0.9.0 + qified: 0.10.1 call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: + call-bind@1.0.9: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -14485,15 +15503,13 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.8.1 + tslib: 2.6.2 camelcase@5.3.1: {} camelcase@6.3.0: {} - caniuse-lite@1.0.30001769: {} - - caniuse-lite@1.0.30001793: {} + caniuse-lite@1.0.30001797: {} case-sensitive-paths-webpack-plugin@2.4.0: {} @@ -14595,13 +15611,13 @@ snapshots: co@4.6.0: {} - codemaker@1.132.0: + codemaker@1.134.0: dependencies: camelcase: 6.3.0 decamelize: 5.0.1 fs-extra: 10.1.0 - collect-v8-coverage@1.0.2: {} + collect-v8-coverage@1.0.3: {} color-convert@1.9.3: dependencies: @@ -14639,7 +15655,7 @@ snapshots: commander@8.3.0: {} - comment-parser@1.4.6: {} + comment-parser@1.4.7: {} commondir@1.0.1: {} @@ -14685,10 +15701,12 @@ snapshots: dependencies: safe-buffer: 5.2.1 - content-disposition@1.0.1: {} + content-disposition@1.1.0: {} content-type@1.0.5: {} + content-type@2.0.0: {} + convert-source-map@1.9.0: {} convert-source-map@2.0.0: {} @@ -14701,15 +15719,11 @@ snapshots: cookie@0.7.2: {} - copy-file@11.0.0: + copy-file@11.1.0: dependencies: graceful-fs: 4.2.11 p-event: 6.0.1 - core-js-compat@3.46.0: - dependencies: - browserslist: 4.28.2 - core-js-compat@3.49.0: dependencies: browserslist: 4.28.2 @@ -14722,29 +15736,29 @@ snapshots: import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 - yaml: 1.10.2 + yaml: 1.10.3 cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: typescript: 5.9.3 - cosmiconfig@9.0.0(typescript@5.9.3): + cosmiconfig@9.0.2(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 parse-json: 5.2.0 optionalDependencies: typescript: 5.9.3 cpy@11.0.0: dependencies: - copy-file: 11.0.0 + copy-file: 11.1.0 globby: 13.2.2 junk: 4.0.1 micromatch: 4.0.8 @@ -14778,16 +15792,16 @@ snapshots: css-loader@7.1.2(webpack@5.104.1): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.0.5(postcss@8.5.6) - postcss-modules-scope: 3.2.0(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) + postcss-modules-scope: 3.2.1(postcss@8.5.15) + postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 semver: 7.5.4 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) css-select@4.3.0: dependencies: @@ -14797,12 +15811,12 @@ snapshots: domutils: 2.8.0 nth-check: 2.1.1 - css-select@5.1.0: + css-select@5.2.2: dependencies: boolbase: 1.0.0 css-what: 6.2.2 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.2 nth-check: 2.1.1 css-tree@2.2.1: @@ -14838,12 +15852,14 @@ snapshots: dependencies: cssom: 0.3.8 - cssstyle@4.6.0: + cssstyle@5.3.7: dependencies: - '@asamuzakjp/css-color': 3.2.0 - rrweb-cssom: 0.8.0 + '@asamuzakjp/css-color': 4.1.2 + '@csstools/css-syntax-patches-for-csstree': 1.1.5(css-tree@3.2.1) + css-tree: 3.2.1 + lru-cache: 11.5.1 - csstype@3.1.3: {} + csstype@3.2.3: {} damerau-levenshtein@1.0.8: {} @@ -14855,10 +15871,10 @@ snapshots: whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - data-urls@5.0.0: + data-urls@6.0.1: dependencies: - whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 + whatwg-mimetype: 5.0.0 + whatwg-url: 15.1.0 data-view-buffer@1.0.2: dependencies: @@ -14880,7 +15896,7 @@ snapshots: date-format@4.0.14: {} - dayjs@1.11.20: {} + dayjs@1.11.21: {} debounce@1.2.1: {} @@ -14904,7 +15920,7 @@ snapshots: decimal.js@10.6.0: {} - decode-named-character-reference@1.0.2: + decode-named-character-reference@1.3.0: dependencies: character-entities: 2.0.2 @@ -14914,7 +15930,7 @@ snapshots: dedent@0.7.0: {} - dedent@1.6.0(babel-plugin-macros@3.1.0): + dedent@1.7.2(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -14931,7 +15947,7 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.1 - defaults@3.0.0: {} + defaults@2.0.2: {} defer-to-connect@2.0.1: {} @@ -14971,7 +15987,7 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: {} + diff@4.0.4: {} dir-glob@3.0.1: dependencies: @@ -15033,12 +16049,6 @@ snapshots: domelementtype: 2.3.0 domhandler: 4.3.1 - domutils@3.1.0: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -15048,7 +16058,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.2 dunder-proto@1.0.1: dependencies: @@ -15066,9 +16076,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.286: {} - - electron-to-chromium@1.5.364: {} + electron-to-chromium@1.5.371: {} emittery@0.13.1: {} @@ -15088,10 +16096,10 @@ snapshots: fast-json-parse: 1.0.3 objectorarray: 1.0.5 - enhanced-resolve@5.19.0: + enhanced-resolve@5.23.0: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.3 entities@2.2.0: {} @@ -15103,25 +16111,25 @@ snapshots: env-paths@2.2.1: {} - envinfo@7.14.0: {} + envinfo@7.21.0: {} error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.0: + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -15133,7 +16141,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -15151,31 +16159,31 @@ snapshots: object.assign: 4.1.7 own-keys: 1.0.1 regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 + safe-array-concat: 1.1.4 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 + string.prototype.trim: 1.2.11 + string.prototype.trimend: 1.0.10 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 + typed-array-length: 1.0.8 unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 + which-typed-array: 1.1.22 es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.2.1: + es-iterator-helpers@1.3.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -15187,13 +16195,13 @@ snapshots: has-symbols: 1.1.0 internal-slot: 1.1.0 iterator.prototype: 1.1.5 - safe-array-concat: 1.1.3 + math-intrinsics: 1.1.0 es-module-lexer@1.7.0: {} - es-module-lexer@2.0.0: {} + es-module-lexer@2.1.0: {} - es-object-atoms@1.1.1: + es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 @@ -15202,11 +16210,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.2 + hasown: 2.0.4 es-to-primitive@1.3.0: dependencies: @@ -15297,34 +16305,34 @@ snapshots: '@esbuild/win32-ia32': 0.27.0 '@esbuild/win32-x64': 0.27.0 - esbuild@0.27.3: + esbuild@0.27.7: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 escalade@3.2.0: {} @@ -15350,23 +16358,23 @@ snapshots: dependencies: eslint: 9.39.1 - eslint-import-context@0.1.9(unrs-resolver@1.11.1): + eslint-import-context@0.1.9(unrs-resolver@1.12.2): dependencies: - get-tsconfig: 4.13.0 + get-tsconfig: 4.14.0 stable-hash-x: 0.2.0 optionalDependencies: - unrs-resolver: 1.11.1 + unrs-resolver: 1.12.2 eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1))(eslint@9.39.1): dependencies: debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - get-tsconfig: 4.13.0 + eslint-import-context: 0.1.9(unrs-resolver@1.12.2) + get-tsconfig: 4.14.0 is-bun-module: 2.0.0 stable-hash-x: 0.2.0 - tinyglobby: 0.2.16 - unrs-resolver: 1.11.1 + tinyglobby: 0.2.17 + unrs-resolver: 1.12.2 optionalDependencies: eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) transitivePeerDependencies: @@ -15376,12 +16384,12 @@ snapshots: dependencies: debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - get-tsconfig: 4.13.0 + eslint-import-context: 0.1.9(unrs-resolver@1.12.2) + get-tsconfig: 4.14.0 is-bun-module: 2.0.0 stable-hash-x: 0.2.0 - tinyglobby: 0.2.16 - unrs-resolver: 1.11.1 + tinyglobby: 0.2.17 + unrs-resolver: 1.12.2 optionalDependencies: eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) transitivePeerDependencies: @@ -15393,16 +16401,16 @@ snapshots: eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1): dependencies: - '@typescript-eslint/types': 8.59.2 - comment-parser: 1.4.6 + '@typescript-eslint/types': 8.61.0 + comment-parser: 1.4.7 debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 - minimatch: 10.2.4 - semver: 7.8.1 + minimatch: 10.2.5 + semver: 7.8.4 stable-hash-x: 0.2.0 - unrs-resolver: 1.11.1 + unrs-resolver: 1.12.2 optionalDependencies: '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) transitivePeerDependencies: @@ -15411,16 +16419,16 @@ snapshots: eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1): dependencies: '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.59.2 - comment-parser: 1.4.6 + '@typescript-eslint/types': 8.61.0 + comment-parser: 1.4.7 debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 - minimatch: 10.2.4 - semver: 7.7.4 + minimatch: 10.2.5 + semver: 7.8.4 stable-hash-x: 0.2.0 - unrs-resolver: 1.11.1 + unrs-resolver: 1.12.2 optionalDependencies: '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) transitivePeerDependencies: @@ -15432,12 +16440,12 @@ snapshots: array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.11.1 + axe-core: 4.12.1 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 eslint: 9.39.1 - hasown: 2.0.2 + hasown: 2.0.4 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.5 @@ -15450,15 +16458,15 @@ snapshots: eslint: 9.39.1 prettier: 3.8.3 prettier-linter-helpers: 1.0.1 - synckit: 0.11.12 + synckit: 0.11.13 optionalDependencies: '@types/eslint': 9.6.1 eslint-config-prettier: 10.1.8(eslint@9.39.1) eslint-plugin-react-hooks@7.0.1(eslint@9.39.1): dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 + '@babel/core': 7.29.7 + '@babel/parser': 7.29.7 eslint: 9.39.1 hermes-parser: 0.25.1 zod: 4.1.12 @@ -15473,17 +16481,17 @@ snapshots: array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 + es-iterator-helpers: 1.3.3 eslint: 9.39.1 estraverse: 5.3.0 - hasown: 2.0.2 + hasown: 2.0.4 jsx-ast-utils: 3.3.5 minimatch: 3.1.5 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.7 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 @@ -15495,7 +16503,7 @@ snapshots: eslint-plugin-unicorn@64.0.0(eslint@9.39.1): dependencies: - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) change-case: 5.4.4 ci-info: 4.4.0 @@ -15509,8 +16517,8 @@ snapshots: jsesc: 3.1.0 pluralize: 8.0.0 regexp-tree: 0.1.27 - regjsparser: 0.13.0 - semver: 7.7.4 + regjsparser: 0.13.1 + semver: 7.8.4 strip-indent: 4.1.1 eslint-scope@5.1.1: @@ -15569,7 +16577,7 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.5 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 transitivePeerDependencies: - supports-color @@ -15587,11 +16595,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.9(@typescript-eslint/types@8.59.2): + esrap@2.2.9(@typescript-eslint/types@8.61.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.59.2 + '@typescript-eslint/types': 8.61.0 esrecurse@4.3.0: dependencies: @@ -15611,6 +16619,12 @@ snapshots: eventemitter3@5.0.1: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.9.1 + transitivePeerDependencies: + - bare-abort-controller + events@3.3.0: {} execa@5.1.1: @@ -15687,7 +16701,7 @@ snapshots: dependencies: accepts: 2.0.0 body-parser: 2.2.2 - content-disposition: 1.0.1 + content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 @@ -15705,13 +16719,13 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.1 + qs: 6.15.2 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 serve-static: 2.2.1 statuses: 2.0.2 - type-is: 2.0.1 + type-is: 2.1.0 vary: 1.1.2 transitivePeerDependencies: - supports-color @@ -15762,20 +16776,20 @@ snapshots: fast-xml-parser@5.7.3: dependencies: - '@nodable/entities': 2.1.0 + '@nodable/entities': 2.1.1 fast-xml-builder: 1.2.0 path-expression-matcher: 1.5.0 - strnum: 2.3.0 + strnum: 2.4.0 fastest-levenshtein@1.0.16: {} - fastq@1.15.0: + fastq@1.20.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 faye-websocket@0.11.4: dependencies: - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 fb-watchman@2.0.2: dependencies: @@ -15792,20 +16806,24 @@ snapshots: fflate@0.8.1: {} - file-entry-cache@11.1.2: + fflate@0.8.3: {} + + file-entry-cache@11.1.3: dependencies: - flat-cache: 6.1.21 + flat-cache: 6.1.22 file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - file-type@19.6.0: + file-type@20.5.0: dependencies: - get-stream: 9.0.1 - strtok3: 9.1.1 - token-types: 6.0.0 - uint8array-extras: 1.4.0 + '@tokenizer/inflate': 0.2.7 + strtok3: 10.3.5 + token-types: 6.1.2 + uint8array-extras: 1.5.0 + transitivePeerDependencies: + - supports-color filename-reserved-regex@3.0.0: {} @@ -15879,9 +16897,9 @@ snapshots: flatted: 3.4.2 keyv: 4.5.4 - flat-cache@6.1.21: + flat-cache@6.1.22: dependencies: - cacheable: 2.3.4 + cacheable: 2.3.5 flatted: 3.4.2 hookified: 1.15.1 @@ -15897,7 +16915,7 @@ snapshots: fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.104.1): dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 chalk: 4.1.2 chokidar: 4.0.3 cosmiconfig: 8.3.6(typescript@5.9.3) @@ -15908,20 +16926,12 @@ snapshots: node-abort-controller: 3.1.1 schema-utils: 3.3.0 semver: 7.5.4 - tapable: 2.3.0 + tapable: 2.3.3 typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) form-data-encoder@2.1.4: {} - form-data@4.0.4: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 - form-data@4.0.5: dependencies: asynckit: 0.4.0 @@ -15943,7 +16953,7 @@ snapshots: fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.2.0 + jsonfile: 6.2.1 universalify: 2.0.1 fs-extra@8.1.0: @@ -15966,11 +16976,11 @@ snapshots: function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 - hasown: 2.0.2 + hasown: 2.0.4 is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -15988,12 +16998,12 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-package-type@0.1.0: {} @@ -16001,17 +17011,12 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-stream@6.0.1: {} get-stream@8.0.1: {} - get-stream@9.0.1: - dependencies: - '@sec-ant/readable-stream': 0.4.1 - is-stream: 4.0.1 - get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -16022,6 +17027,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.14.0: + dependencies: + resolve-pkg-maps: 1.0.0 + git-up@8.1.1: dependencies: is-ssh: 1.4.1 @@ -16041,9 +17050,9 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regex.js@1.2.0(tslib@2.8.1): + glob-to-regex.js@1.2.0(tslib@2.6.2): dependencies: - tslib: 2.8.1 + tslib: 2.6.2 glob-to-regexp@0.4.1: {} @@ -16148,29 +17157,10 @@ snapshots: dependencies: hookified: 1.15.1 - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hasown@2.0.3: - dependencies: - function-bind: 1.1.2 - hasown@2.0.4: dependencies: function-bind: 1.1.2 - hast-util-from-parse5@8.0.1: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - devlop: 1.1.0 - hastscript: 8.0.0 - property-information: 6.4.0 - vfile: 6.0.3 - vfile-location: 5.0.2 - web-namespaces: 2.0.1 - hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -16179,52 +17169,21 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-parse-selector@4.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-raw@9.0.2: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.0 - hast-util-from-parse5: 8.0.1 - hast-util-to-parse5: 8.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - parse5: 7.3.0 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-to-html@9.0.0: + hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 - hast-util-raw: 9.0.2 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - property-information: 6.4.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.3 - zwitch: 2.0.4 - - hast-util-to-parse5@8.0.0: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 6.4.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.2.0 space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 + stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-string@3.0.0: + hast-util-to-string@3.0.1: dependencies: '@types/hast': 3.0.4 @@ -16232,14 +17191,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hastscript@8.0.0: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 6.4.0 - space-separated-tokens: 2.0.2 - he@1.2.0: {} hermes-estree@0.25.1: {} @@ -16254,7 +17205,7 @@ snapshots: hookified@1.15.1: {} - hookified@2.1.0: {} + hookified@2.2.0: {} hosted-git-info@2.8.9: {} @@ -16277,7 +17228,7 @@ snapshots: dependencies: whatwg-encoding: 3.1.1 - html-entities@2.4.0: {} + html-entities@2.6.0: {} html-escaper@2.0.2: {} @@ -16289,7 +17240,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.46.0 + terser: 5.48.0 html-minifier-terser@7.2.0: dependencies: @@ -16299,7 +17250,7 @@ snapshots: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.46.0 + terser: 5.48.0 html-tags@3.3.1: {} @@ -16313,15 +17264,15 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.6(webpack@5.104.1): + html-webpack-plugin@5.6.7(webpack@5.104.1): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.18.1 pretty-error: 4.0.0 - tapable: 2.3.0 + tapable: 2.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) htmlparser2@10.1.0: dependencies: @@ -16337,7 +17288,7 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 - http-cache-semantics@4.1.1: {} + http-cache-semantics@4.2.0: {} http-deceiver@1.2.7: {} @@ -16433,9 +17384,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.6): + icss-utils@5.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 ieee754@1.2.1: {} @@ -16477,8 +17428,8 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 + hasown: 2.0.4 + side-channel: 1.1.1 interpret@3.1.1: {} @@ -16488,7 +17439,7 @@ snapshots: is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 @@ -16521,17 +17472,13 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 is-callable@1.2.7: {} - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - is-core-module@2.16.2: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-data-view@1.0.2: dependencies: @@ -16624,7 +17571,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 is-set@2.0.3: {} @@ -16640,8 +17587,6 @@ snapshots: is-stream@3.0.0: {} - is-stream@4.0.1: {} - is-string@1.1.1: dependencies: call-bound: 1.0.4 @@ -16655,7 +17600,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.19 + which-typed-array: 1.1.22 is-weakmap@2.0.2: {} @@ -16686,19 +17631,19 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 - '@istanbuljs/schema': 0.1.3 + '@babel/core': 7.29.7 + '@babel/parser': 7.29.7 + '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color - istanbul-lib-instrument@6.0.1: + istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 - '@istanbuljs/schema': 0.1.3 + '@babel/core': 7.29.7 + '@babel/parser': 7.29.7 + '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 transitivePeerDependencies: @@ -16718,7 +17663,7 @@ snapshots: transitivePeerDependencies: - supports-color - istanbul-reports@3.1.6: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -16726,7 +17671,7 @@ snapshots: iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 @@ -16747,7 +17692,7 @@ snapshots: '@types/node': 24.12.4 chalk: 4.1.2 co: 4.6.0 - dedent: 1.6.0(babel-plugin-macros@3.1.0) + dedent: 1.7.2(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -16757,7 +17702,7 @@ snapshots: jest-util: 29.7.0 p-limit: 3.1.0 pretty-format: 29.7.0 - pure-rand: 6.0.4 + pure-rand: 6.1.0 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: @@ -16785,10 +17730,10 @@ snapshots: jest-config@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)): dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.29.0) + babel-jest: 29.7.0(@babel/core@7.29.7) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -16889,7 +17834,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -16911,7 +17856,7 @@ snapshots: jest-regex-util@29.6.3: {} - jest-regex-util@30.0.1: {} + jest-regex-util@30.4.0: {} jest-resolve-dependencies@29.7.0: dependencies: @@ -16929,7 +17874,7 @@ snapshots: jest-util: 29.7.0 jest-validate: 29.7.0 resolve: 1.22.12 - resolve.exports: 2.0.2 + resolve.exports: 2.0.3 slash: 3.0.0 jest-runner@29.7.0: @@ -16970,7 +17915,7 @@ snapshots: '@types/node': 24.12.4 chalk: 4.1.2 cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 glob: 7.2.3 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 @@ -16987,15 +17932,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) - '@babel/types': 7.29.0 + '@babel/core': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/types': 7.29.7 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.29.0) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -17071,7 +18016,7 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.1: + js-yaml@4.2.0: dependencies: argparse: 2.0.1 @@ -17086,13 +18031,13 @@ snapshots: decimal.js: 10.6.0 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.4 + form-data: 4.0.5 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.23 - parse5: 7.1.2 + nwsapi: 2.2.24 + parse5: 7.3.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -17108,27 +18053,26 @@ snapshots: - supports-color - utf-8-validate - jsdom@26.0.0: + jsdom@27.0.0: dependencies: - cssstyle: 4.6.0 - data-urls: 5.0.0 + '@asamuzakjp/dom-selector': 6.8.1 + cssstyle: 5.3.7 + data-urls: 6.0.1 decimal.js: 10.6.0 - form-data: 4.0.5 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.23 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.1.2 + tough-cookie: 6.0.1 w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 + webidl-conversions: 8.0.1 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 + whatwg-url: 15.1.0 ws: 8.21.0 xml-name-validator: 5.0.0 transitivePeerDependencies: @@ -17154,13 +18098,13 @@ snapshots: json5@2.2.3: {} - jsonc-parser@3.2.0: {} + jsonc-parser@3.3.1: {} jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.2.0: + jsonfile@6.2.1: dependencies: universalify: 2.0.1 optionalDependencies: @@ -17191,20 +18135,20 @@ snapshots: known-css-properties@0.37.0: {} - language-subtag-registry@0.3.22: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 - launch-editor@2.13.2: + launch-editor@2.14.1: dependencies: picocolors: 1.1.1 shell-quote: 1.8.4 launder@1.7.1: dependencies: - dayjs: 1.11.20 + dayjs: 1.11.21 leven@3.1.0: {} @@ -17238,10 +18182,10 @@ snapshots: colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 6.0.0 - rfdc: 1.3.0 + rfdc: 1.4.1 wrap-ansi: 9.0.2 - loader-runner@4.3.1: {} + loader-runner@4.3.2: {} loader-utils@1.4.2: dependencies: @@ -17284,7 +18228,7 @@ snapshots: date-format: 4.0.14 debug: 4.4.3 flatted: 3.4.2 - rfdc: 1.3.0 + rfdc: 1.4.1 streamroller: 3.1.5 transitivePeerDependencies: - supports-color @@ -17297,12 +18241,10 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.8.1 + tslib: 2.6.2 lowercase-keys@3.0.0: {} - lru-cache@10.4.3: {} - lru-cache@11.5.1: {} lru-cache@5.1.1: @@ -17337,33 +18279,33 @@ snapshots: mathml-tag-names@2.1.3: {} - mdast-util-from-markdown@2.0.0: + mdast-util-from-markdown@2.0.3: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-decode-string: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color - mdast-util-to-hast@13.2.0: + mdast-util-to-hast@13.2.1: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.3.1 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 mdast-util-to-string@4.0.0: @@ -17384,14 +18326,22 @@ snapshots: dependencies: fs-monkey: 1.1.0 - memfs@4.49.0: - dependencies: - '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) - glob-to-regex.js: 1.2.0(tslib@2.8.1) - thingies: 2.5.0(tslib@2.8.1) - tree-dump: 1.1.0(tslib@2.8.1) - tslib: 2.8.1 + memfs@4.57.6(tslib@2.6.2): + dependencies: + '@jsonjoy.com/fs-core': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-fsa': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-to-fsa': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-print': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/fs-snapshot': 4.57.6(tslib@2.6.2) + '@jsonjoy.com/json-pack': 1.21.0(tslib@2.6.2) + '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) + glob-to-regex.js: 1.2.0(tslib@2.6.2) + thingies: 2.6.0(tslib@2.6.2) + tree-dump: 1.1.0(tslib@2.6.2) + tslib: 2.6.2 meow@13.2.0: {} @@ -17405,53 +18355,53 @@ snapshots: methods@1.1.2: {} - micromark-core-commonmark@2.0.0: + micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-destination@2.0.0: + micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-label@2.0.0: + micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-space@2.0.0: + micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-types: 2.0.2 - micromark-factory-title@2.0.0: + micromark-factory-title@2.0.1: dependencies: - micromark-factory-space: 2.0.0 + micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-whitespace@2.0.0: + micromark-factory-whitespace@2.0.1: dependencies: - micromark-factory-space: 2.0.0 + micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -17461,41 +18411,41 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-chunked@2.0.0: + micromark-util-chunked@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-classify-character@2.0.0: + micromark-util-classify-character@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-combine-extensions@2.0.0: + micromark-util-combine-extensions@2.0.1: dependencies: - micromark-util-chunked: 2.0.0 + micromark-util-chunked: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-decode-numeric-character-reference@2.0.1: + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-decode-string@2.0.0: + micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.3.0 micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 micromark-util-encode@2.0.1: {} - micromark-util-html-tag-name@2.0.0: {} + micromark-util-html-tag-name@2.0.1: {} - micromark-util-normalize-identifier@2.0.0: + micromark-util-normalize-identifier@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-resolve-all@2.0.0: + micromark-util-resolve-all@2.0.1: dependencies: micromark-util-types: 2.0.2 @@ -17505,10 +18455,10 @@ snapshots: micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@2.0.0: + micromark-util-subtokenize@2.1.0: dependencies: devlop: 1.1.0 - micromark-util-chunked: 2.0.0 + micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -17516,23 +18466,23 @@ snapshots: micromark-util-types@2.0.2: {} - micromark@4.0.0: + micromark@4.0.2: dependencies: - '@types/debug': 4.1.12 + '@types/debug': 4.1.13 debug: 4.4.3 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 - micromark-factory-space: 2.0.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.0.0 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 transitivePeerDependencies: @@ -17576,17 +18526,17 @@ snapshots: minimalistic-assert@1.0.1: {} - minimatch@10.2.4: + minimatch@10.2.5: dependencies: - brace-expansion: 5.0.3 + brace-expansion: 5.0.6 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.15 minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.1.1 minimist@1.2.8: {} @@ -17594,8 +18544,6 @@ snapshots: mri@1.2.0: {} - mrmime@1.0.1: {} - mrmime@2.0.1: {} ms@2.0.0: {} @@ -17616,6 +18564,8 @@ snapshots: nanoid@3.3.11: {} + nanoid@3.3.12: {} + napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -17628,38 +18578,31 @@ snapshots: neo-async@2.6.2: {} - nice-napi@1.0.2: - dependencies: - node-addon-api: 3.2.1 - node-gyp-build: 4.8.0 - optional: true - no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.8.1 + tslib: 2.6.2 node-abort-controller@3.1.1: {} - node-addon-api@3.2.1: - optional: true - node-domexception@1.0.0: {} + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-gyp-build@4.8.0: - optional: true - node-int64@0.4.0: {} - node-releases@2.0.27: {} - - node-releases@2.0.46: {} + node-releases@2.0.47: {} normalize-package-data@2.5.0: dependencies: @@ -17676,7 +18619,7 @@ snapshots: normalize-path@3.0.0: {} - normalize-url@8.0.1: {} + normalize-url@8.1.1: {} npm-run-path@4.0.1: dependencies: @@ -17690,7 +18633,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.23: {} + nwsapi@2.2.24: {} object-assign@4.1.1: {} @@ -17702,33 +18645,33 @@ snapshots: object.assign@4.1.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-symbols: 1.1.0 object-keys: 1.1.1 object.entries@1.1.9: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 object.values@1.2.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 objectorarray@1.0.5: {} @@ -17763,14 +18706,14 @@ snapshots: opener@1.5.2: {} - optionator@0.9.3: + optionator@0.9.4: dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 own-keys@1.0.1: dependencies: @@ -17782,7 +18725,7 @@ snapshots: p-event@6.0.1: dependencies: - p-timeout: 6.1.2 + p-timeout: 6.1.4 p-filter@3.0.0: dependencies: @@ -17816,14 +18759,14 @@ snapshots: is-network-error: 1.3.2 retry: 0.13.1 - p-timeout@6.1.2: {} + p-timeout@6.1.4: {} p-try@2.2.0: {} param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.2 parent-module@1.0.1: dependencies: @@ -17831,14 +18774,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 index-to-position: 1.2.0 type-fest: 4.41.0 @@ -17853,10 +18796,6 @@ snapshots: '@types/parse-path': 7.1.0 parse-path: 7.1.0 - parse5@7.1.2: - dependencies: - entities: 4.5.0 - parse5@7.3.0: dependencies: entities: 6.0.1 @@ -17866,7 +18805,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.2 path-equal@1.2.5: {} @@ -17886,7 +18825,7 @@ snapshots: path-to-regexp@0.1.13: {} - path-to-regexp@8.4.1: {} + path-to-regexp@8.4.2: {} path-type@4.0.0: {} @@ -17894,8 +18833,6 @@ snapshots: pathval@2.0.1: {} - peek-readable@5.3.1: {} - pend@1.2.0: {} picocolors@1.1.1: {} @@ -17906,11 +18843,11 @@ snapshots: pidtree@0.6.0: {} - pirates@4.0.6: {} + pirates@4.0.7: {} - piscina@4.3.1: + piscina@4.9.2: optionalDependencies: - nice-napi: 1.0.2 + '@napi-rs/nice': 1.1.1 pkg-dir@4.2.0: dependencies: @@ -17937,53 +18874,48 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + postcss-modules-extract-imports@3.1.0(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 - postcss-modules-local-by-default@4.0.5(postcss@8.5.6): + postcss-modules-local-by-default@4.2.0(postcss@8.5.15): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-selector-parser: 7.1.2 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.5.6): + postcss-modules-scope@3.2.1(postcss@8.5.15): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 + postcss: 8.5.15 + postcss-selector-parser: 7.1.2 - postcss-modules-values@4.0.0(postcss@8.5.6): + postcss-modules-values@4.0.0(postcss@8.5.15): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.5.6): + postcss-safe-parser@7.0.1(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 - postcss-selector-parser@6.1.2: + postcss-selector-parser@7.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.1: + postcss-styled-syntax@0.7.1(postcss@8.5.15): dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-styled-syntax@0.7.1(postcss@8.5.9): - dependencies: - postcss: 8.5.9 + postcss: 8.5.15 typescript: 5.9.3 postcss-value-parser@4.2.0: {} - postcss@8.5.6: + postcss@8.5.15: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -18040,7 +18972,7 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@6.4.0: {} + property-information@7.2.0: {} protocols@2.0.2: {} @@ -18049,13 +18981,15 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - psl@1.9.0: {} + psl@1.15.0: + dependencies: + punycode: 2.3.1 punycode@1.4.1: {} punycode@2.3.1: {} - pure-rand@6.0.4: {} + pure-rand@6.1.0: {} pvtsutils@1.3.6: dependencies: @@ -18063,24 +18997,22 @@ snapshots: pvutils@1.1.5: {} - qified@0.9.0: + qified@0.10.1: dependencies: - hookified: 2.1.0 + hookified: 2.2.0 - qs@6.14.1: + qs@6.14.2: dependencies: - side-channel: 1.1.0 + side-channel: 1.1.1 qs@6.15.2: dependencies: - side-channel: 1.1.0 + side-channel: 1.1.1 querystringify@2.2.0: {} queue-microtask@1.2.3: {} - queue-tick@1.0.1: {} - quick-lru@5.1.1: {} range-parser@1.2.1: {} @@ -18111,9 +19043,9 @@ snapshots: react-docgen@7.1.1: dependencies: - '@babel/core': 7.29.0 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/core': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 @@ -18124,11 +19056,11 @@ snapshots: transitivePeerDependencies: - supports-color - react-docgen@8.0.2: + react-docgen@8.0.3: dependencies: - '@babel/core': 7.29.0 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/core': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 @@ -18165,7 +19097,7 @@ snapshots: dependencies: find-up-simple: 1.0.1 read-pkg: 10.1.0 - type-fest: 5.6.0 + type-fest: 5.7.0 read-pkg-up@7.0.1: dependencies: @@ -18178,7 +19110,7 @@ snapshots: '@types/normalize-package-data': 2.4.4 normalize-package-data: 8.0.0 parse-json: 8.3.0 - type-fest: 5.6.0 + type-fest: 5.7.0 unicorn-magic: 0.4.0 read-pkg@5.2.0: @@ -18223,7 +19155,7 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.8.1 + tslib: 2.6.2 rechoir@0.8.0: dependencies: @@ -18238,11 +19170,11 @@ snapshots: reflect.getprototypeof@1.0.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -18257,7 +19189,7 @@ snapshots: regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 es-errors: 1.3.0 get-proto: 1.0.1 @@ -18269,37 +19201,37 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.13.0 + regjsparser: 0.13.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 regjsgen@0.8.0: {} - regjsparser@0.13.0: + regjsparser@0.13.1: dependencies: jsesc: 3.1.0 rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.3.1 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 rehype-slug@6.0.0: dependencies: '@types/hast': 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.0 - unist-util-visit: 5.0.0 + hast-util-to-string: 3.0.1 + unist-util-visit: 5.1.0 rehype-stringify@10.0.1: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.0 + hast-util-to-html: 9.0.5 unified: 11.0.5 relateurl@0.2.7: {} @@ -18307,7 +19239,7 @@ snapshots: remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.0 + mdast-util-from-markdown: 2.0.3 micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -18317,7 +19249,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 + mdast-util-to-hast: 13.2.1 unified: 11.0.5 vfile: 6.0.3 @@ -18347,7 +19279,7 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve.exports@2.0.2: {} + resolve.exports@2.0.3: {} resolve@1.22.12: dependencies: @@ -18356,9 +19288,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: + resolve@2.0.0-next.7: dependencies: - is-core-module: 2.16.1 + es-errors: 1.3.0 + is-core-module: 2.16.2 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -18373,9 +19308,9 @@ snapshots: retry@0.13.1: {} - reusify@1.0.4: {} + reusify@1.1.0: {} - rfdc@1.3.0: {} + rfdc@1.4.1: {} rimraf@3.0.2: dependencies: @@ -18460,7 +19395,7 @@ snapshots: depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.4.1 + path-to-regexp: 8.4.2 transitivePeerDependencies: - supports-color @@ -18476,9 +19411,9 @@ snapshots: dependencies: mri: 1.2.0 - safe-array-concat@1.1.3: + safe-array-concat@1.1.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 @@ -18499,7 +19434,7 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safe-stable-stringify@2.4.3: {} + safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} @@ -18511,7 +19446,7 @@ snapshots: is-plain-object: 5.0.0 launder: 1.7.1 parse-srcset: 1.0.2 - postcss: 8.5.9 + postcss: 8.5.15 sax@1.6.0: {} @@ -18563,9 +19498,7 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.7.4: {} - - semver@7.8.1: {} + semver@7.8.4: {} send@0.19.2: dependencies: @@ -18653,7 +19586,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 setprototypeof@1.2.0: {} @@ -18669,7 +19602,7 @@ snapshots: shell-quote@1.8.4: {} - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -18689,11 +19622,11 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: + side-channel@1.1.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -18701,10 +19634,10 @@ snapshots: signal-exit@4.1.0: {} - sirv@2.0.3: + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.29 - mrmime: 1.0.1 + mrmime: 2.0.1 totalist: 3.0.1 sirv@3.0.2: @@ -18738,13 +19671,13 @@ snapshots: snake-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.8.1 + tslib: 2.6.2 sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 sort-keys-length@1.0.1: dependencies: @@ -18829,17 +19762,17 @@ snapshots: storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@storybook/global': 5.0.0 - '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 - esbuild: 0.27.3 + esbuild: 0.27.7 open: 10.2.0 recast: 0.23.11 - semver: 7.7.4 + semver: 7.8.4 use-sync-external-store: 1.6.0(react@18.3.1) - ws: 8.19.0 + ws: 8.21.0 optionalDependencies: prettier: 3.8.3 transitivePeerDependencies: @@ -18857,15 +19790,14 @@ snapshots: transitivePeerDependencies: - supports-color - streamx@2.21.0: + streamx@2.27.0: dependencies: + events-universal: 1.0.1 fast-fifo: 1.3.2 - queue-tick: 1.0.1 - text-decoder: 1.2.2 - optionalDependencies: - bare-events: 2.8.0 + text-decoder: 1.2.7 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a string-argv@0.3.2: {} @@ -18888,53 +19820,54 @@ snapshots: string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 string.prototype.matchall@4.0.12: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.1.0 + side-channel: 1.1.1 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.2 - string.prototype.trim@1.2.10: + string.prototype.trim@1.2.11: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-object-atoms: 1.1.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 + safe-regex-test: 1.1.0 - string.prototype.trimend@1.0.9: + string.prototype.trimend@1.0.10: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string_decoder@0.10.31: {} @@ -18946,7 +19879,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - stringify-entities@4.0.3: + stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 @@ -18982,16 +19915,17 @@ snapshots: strnum@2.2.1: {} - strnum@2.3.0: {} + strnum@2.4.0: + dependencies: + anynum: 1.0.0 - strtok3@9.1.1: + strtok3@10.3.5: dependencies: '@tokenizer/token': 0.3.0 - peek-readable: 5.3.1 style-loader@4.0.0(webpack@5.104.1): dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) stylelint-config-recommended@14.0.0(stylelint@16.26.1(typescript@5.9.3)): dependencies: @@ -19000,20 +19934,20 @@ snapshots: stylelint@16.26.1(typescript@5.9.3): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-syntax-patches-for-csstree': 1.1.1(css-tree@3.2.1) + '@csstools/css-syntax-patches-for-csstree': 1.1.5(css-tree@3.2.1) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.2) '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig: 9.0.2(typescript@5.9.3) css-functions-list: 3.3.3 css-tree: 3.2.1 debug: 4.4.3 fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 11.1.2 + file-entry-cache: 11.1.3 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -19027,10 +19961,10 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.15 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.6) - postcss-selector-parser: 7.1.1 + postcss-safe-parser: 7.0.1(postcss@8.5.15) + postcss-selector-parser: 7.1.2 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -19065,19 +19999,19 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.3.3(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.59.2))(typescript@5.9.3): + svelte-check@4.3.3(picomatch@4.0.4)(svelte@5.55.7(@typescript-eslint/types@8.61.0))(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.55.7(@typescript-eslint/types@8.59.2) + svelte: 5.55.7(@typescript-eslint/types@8.61.0) typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte@5.55.7(@typescript-eslint/types@8.59.2): + svelte@5.55.7(@typescript-eslint/types@8.61.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -19090,7 +20024,7 @@ snapshots: clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.9(@typescript-eslint/types@8.59.2) + esrap: 2.2.9(@typescript-eslint/types@8.61.0) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -19105,7 +20039,7 @@ snapshots: svgo@3.3.3: dependencies: commander: 7.2.0 - css-select: 5.1.0 + css-select: 5.2.2 css-tree: 2.3.1 css-what: 6.2.2 csso: 5.0.5 @@ -19116,7 +20050,7 @@ snapshots: dependencies: '@swc/core': 1.13.5 '@swc/counter': 0.1.3 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) swr@1.3.0(react@18.3.1): dependencies: @@ -19124,9 +20058,9 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.11.12: + synckit@0.11.13: dependencies: - '@pkgr/core': 0.2.9 + '@pkgr/core': 0.3.6 table@6.9.0: dependencies: @@ -19138,28 +20072,41 @@ snapshots: tagged-tag@1.0.0: {} - tapable@2.3.0: {} + tapable@2.3.3: {} - tar-stream@3.1.7: + tar-stream@3.2.0: dependencies: - b4a: 1.6.7 + b4a: 1.8.1 + bare-fs: 4.7.2 fast-fifo: 1.3.2 - streamx: 2.21.0 + streamx: 2.27.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + teex@1.0.1: + dependencies: + streamx: 2.27.0 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a - terser-webpack-plugin@5.4.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack@5.104.1): + terser-webpack-plugin@5.6.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack@5.104.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - terser: 5.46.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + terser: 5.48.0 + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) optionalDependencies: '@swc/core': 1.13.5 - esbuild: 0.27.3 + clean-css: 5.3.3 + esbuild: 0.27.7 + html-minifier-terser: 7.2.0 + postcss: 8.5.15 - terser@5.46.0: + terser@5.48.0: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -19168,17 +20115,19 @@ snapshots: test-exclude@6.0.0: dependencies: - '@istanbuljs/schema': 0.1.3 + '@istanbuljs/schema': 0.1.6 glob: 7.2.3 minimatch: 3.1.5 - text-decoder@1.2.2: + text-decoder@1.2.7: dependencies: - b4a: 1.6.7 + b4a: 1.8.1 + transitivePeerDependencies: + - react-native-b4a - thingies@2.5.0(tslib@2.8.1): + thingies@2.6.0(tslib@2.6.2): dependencies: - tslib: 2.8.1 + tslib: 2.6.2 through2@0.4.2: dependencies: @@ -19191,12 +20140,12 @@ snapshots: tiny-invariant@1.3.3: {} - tinyglobby@0.2.15: + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinyglobby@0.2.16: + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 @@ -19205,11 +20154,11 @@ snapshots: tinyspy@4.0.4: {} - tldts-core@6.1.86: {} + tldts-core@7.4.2: {} - tldts@6.1.86: + tldts@7.4.2: dependencies: - tldts-core: 6.1.86 + tldts-core: 7.4.2 tmpl@1.0.5: {} @@ -19223,8 +20172,9 @@ snapshots: toidentifier@1.0.1: {} - token-types@6.0.0: + token-types@6.1.2: dependencies: + '@borewit/text-codec': 0.2.2 '@tokenizer/token': 0.3.0 ieee754: 1.2.1 @@ -19232,32 +20182,32 @@ snapshots: tough-cookie@4.1.4: dependencies: - psl: 1.9.0 + psl: 1.15.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 - tough-cookie@5.1.2: + tough-cookie@6.0.1: dependencies: - tldts: 6.1.86 + tldts: 7.4.2 tr46@3.0.0: dependencies: punycode: 2.3.1 - tr46@5.1.1: + tr46@6.0.0: dependencies: punycode: 2.3.1 traverse-chain@0.1.0: {} - tree-dump@1.1.0(tslib@2.8.1): + tree-dump@1.1.0(tslib@2.6.2): dependencies: - tslib: 2.8.1 + tslib: 2.6.2 trim-lines@3.0.1: {} - trough@2.1.0: {} + trough@2.2.0: {} trusted-types@2.0.0: {} @@ -19265,21 +20215,21 @@ snapshots: dependencies: typescript: 5.9.3 - ts-dedent@2.2.0: {} + ts-dedent@2.3.0: {} - ts-node@10.9.2(@swc/core@1.13.5)(@types/node@16.18.68)(typescript@5.1.6): + ts-node@10.9.2(@swc/core@1.13.5)(@types/node@16.18.126)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 16.18.68 + '@types/node': 16.18.126 acorn: 8.16.0 - acorn-walk: 8.3.1 + acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 4.0.4 make-error: 1.3.6 typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 @@ -19290,16 +20240,16 @@ snapshots: ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 24.12.4 acorn: 8.16.0 - acorn-walk: 8.3.1 + acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 4.0.4 make-error: 1.3.6 typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 @@ -19336,7 +20286,7 @@ snapshots: tsx@4.6.2: dependencies: esbuild: 0.18.20 - get-tsconfig: 4.13.0 + get-tsconfig: 4.14.0 optionalDependencies: fsevents: 2.3.3 @@ -19362,7 +20312,7 @@ snapshots: type-fest@4.41.0: {} - type-fest@5.6.0: + type-fest@5.7.0: dependencies: tagged-tag: 1.0.0 @@ -19371,9 +20321,9 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - type-is@2.0.1: + type-is@2.1.0: dependencies: - content-type: 1.0.5 + content-type: 2.0.0 media-typer: 1.1.0 mime-types: 3.0.2 @@ -19385,7 +20335,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -19394,16 +20344,16 @@ snapshots: typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.7: + typed-array-length@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 @@ -19424,11 +20374,11 @@ snapshots: typescript-json-schema@0.64.0(@swc/core@1.13.5): dependencies: '@types/json-schema': 7.0.15 - '@types/node': 16.18.68 + '@types/node': 16.18.126 glob: 7.2.3 path-equal: 1.2.5 - safe-stable-stringify: 2.4.3 - ts-node: 10.9.2(@swc/core@1.13.5)(@types/node@16.18.68)(typescript@5.1.6) + safe-stable-stringify: 2.5.0 + ts-node: 10.9.2(@swc/core@1.13.5)(@types/node@16.18.126)(typescript@5.1.6) typescript: 5.1.6 yargs: 17.7.2 transitivePeerDependencies: @@ -19439,7 +20389,7 @@ snapshots: typescript@5.9.3: {} - uint8array-extras@1.4.0: {} + uint8array-extras@1.5.0: {} unbox-primitive@1.1.0: dependencies: @@ -19475,10 +20425,10 @@ snapshots: devlop: 1.1.0 extend: 3.0.2 is-plain-obj: 4.1.0 - trough: 2.1.0 + trough: 2.2.0 vfile: 6.0.3 - unist-util-is@6.0.0: + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -19490,16 +20440,16 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 universalify@0.1.2: {} @@ -19521,29 +20471,32 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.11.1: + unrs-resolver@1.12.2: dependencies: napi-postinstall: 0.3.4 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.11.1 - '@unrs/resolver-binding-android-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-x64': 1.11.1 - '@unrs/resolver-binding-freebsd-x64': 1.11.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-musl': 1.11.1 - '@unrs/resolver-binding-wasm32-wasi': 1.11.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + '@unrs/resolver-binding-android-arm-eabi': 1.12.2 + '@unrs/resolver-binding-android-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-arm64': 1.12.2 + '@unrs/resolver-binding-darwin-x64': 1.12.2 + '@unrs/resolver-binding-freebsd-x64': 1.12.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 + '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 + '@unrs/resolver-binding-linux-x64-musl': 1.12.2 + '@unrs/resolver-binding-openharmony-arm64': 1.12.2 + '@unrs/resolver-binding-wasm32-wasi': 1.12.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 update-browserslist-db@1.2.3(browserslist@4.24.4): dependencies: @@ -19551,12 +20504,6 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - update-browserslist-db@1.2.3(browserslist@4.28.1): - dependencies: - browserslist: 4.28.1 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 @@ -19575,7 +20522,7 @@ snapshots: url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.14.1 + qs: 6.15.2 use-local-storage-state@19.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -19596,7 +20543,7 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.2.0: + v8-to-istanbul@9.3.0: dependencies: '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 @@ -19611,12 +20558,7 @@ snapshots: vary@1.1.2: {} - vfile-location@5.0.2: - dependencies: - '@types/unist': 3.0.3 - vfile: 6.0.3 - - vfile-message@4.0.2: + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -19624,9 +20566,9 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.2 + vfile-message: 4.0.3 - vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2): + vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.4) @@ -19637,12 +20579,12 @@ snapshots: optionalDependencies: '@types/node': 24.12.4 fsevents: 2.3.3 - terser: 5.46.0 + terser: 5.48.0 tsx: 4.6.2 - vitefu@1.1.1(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)): + vitefu@1.1.1(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)): optionalDependencies: - vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) + vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) w3c-xmlserializer@4.0.0: dependencies: @@ -19665,27 +20607,27 @@ snapshots: dependencies: minimalistic-assert: 1.0.1 - web-namespaces@2.0.1: {} - web-streams-polyfill@3.3.3: {} web-vitals@4.2.3: {} webidl-conversions@7.0.0: {} + webidl-conversions@8.0.1: {} + webpack-assets-manifest@6.3.0(webpack@5.104.1): dependencies: deepmerge: 4.3.1 lockfile: 1.0.4 schema-utils: 4.3.3 - tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + tapable: 2.3.3 + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-bundle-analyzer@4.10.2: dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.16.0 - acorn-walk: 8.3.1 + acorn-walk: 8.3.5 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 @@ -19693,8 +20635,8 @@ snapshots: html-escaper: 2.0.2 opener: 1.5.2 picocolors: 1.1.1 - sirv: 2.0.3 - ws: 7.5.10 + sirv: 2.0.4 + ws: 7.5.11 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -19708,16 +20650,16 @@ snapshots: colorette: 2.0.20 commander: 12.1.0 cross-spawn: 7.0.6 - envinfo: 7.14.0 + envinfo: 7.21.0 fastest-levenshtein: 1.0.16 import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-merge: 6.0.1 optionalDependencies: webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) + webpack-dev-server: 5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1) webpack-dev-middleware@6.1.3(webpack@5.104.1): dependencies: @@ -19727,20 +20669,22 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) - webpack-dev-middleware@7.4.5(webpack@5.104.1): + webpack-dev-middleware@7.4.5(tslib@2.6.2)(webpack@5.104.1): dependencies: colorette: 2.0.20 - memfs: 4.49.0 + memfs: 4.57.6(tslib@2.6.2) mime-types: 3.0.2 on-finished: 2.4.1 range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) + transitivePeerDependencies: + - tslib - webpack-dev-server@5.2.4(webpack-cli@6.0.1)(webpack@5.104.1): + webpack-dev-server@5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -19751,7 +20695,7 @@ snapshots: '@types/sockjs': 0.3.36 '@types/ws': 8.18.1 ansi-html-community: 0.0.8 - bonjour-service: 1.4.0 + bonjour-service: 1.4.1 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.8.1 @@ -19760,7 +20704,7 @@ snapshots: graceful-fs: 4.2.11 http-proxy-middleware: 2.0.9(@types/express@4.17.25) ipaddr.js: 2.4.0 - launch-editor: 2.13.2 + launch-editor: 2.14.1 open: 10.2.0 p-retry: 6.2.1 schema-utils: 4.3.3 @@ -19768,15 +20712,16 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(webpack@5.104.1) + webpack-dev-middleware: 7.4.5(tslib@2.6.2)(webpack@5.104.1) ws: 8.21.0 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) transitivePeerDependencies: - bufferutil - debug - supports-color + - tslib - utf-8-validate webpack-format-messages@2.0.6: @@ -19786,7 +20731,7 @@ snapshots: webpack-hot-middleware@2.26.1: dependencies: ansi-html-community: 0.0.8 - html-entities: 2.4.0 + html-entities: 2.6.0 strip-ansi: 6.0.1 webpack-hot-server-middleware@0.6.1(webpack@5.104.1): @@ -19794,14 +20739,14 @@ snapshots: debug: 3.2.7 require-from-string: 2.0.2 source-map-support: 0.5.21 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color webpack-manifest-plugin@6.0.1(webpack@5.104.1): dependencies: - tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + tapable: 2.3.3 + webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) webpack-sources: 3.3.3 webpack-merge@6.0.1: @@ -19822,41 +20767,50 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1): + webpack@5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.16.0 acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.1 + browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.19.0 - es-module-lexer: 2.0.0 + enhanced-resolve: 5.23.0 + es-module-lexer: 2.1.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 + loader-runner: 4.3.2 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.4.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack@5.104.1) + tapable: 2.3.3 + terser-webpack-plugin: 5.6.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack@5.104.1) watchpack: 2.5.1 webpack-sources: 3.3.3 optionalDependencies: webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) transitivePeerDependencies: + - '@minify-html/node' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - lightningcss + - postcss - uglify-js - websocket-driver@0.7.4: + websocket-driver@0.7.5: dependencies: http-parser-js: 0.5.10 safe-buffer: 5.2.1 @@ -19876,15 +20830,17 @@ snapshots: whatwg-mimetype@4.0.0: {} + whatwg-mimetype@5.0.0: {} + whatwg-url@11.0.0: dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 - whatwg-url@14.2.0: + whatwg-url@15.1.0: dependencies: - tr46: 5.1.1 - webidl-conversions: 7.0.0 + tr46: 6.0.0 + webidl-conversions: 8.0.1 which-boxed-primitive@1.1.1: dependencies: @@ -19908,7 +20864,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.19 + which-typed-array: 1.1.22 which-collection@1.0.2: dependencies: @@ -19917,10 +20873,10 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.19: + which-typed-array@1.1.22: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 for-each: 0.3.5 get-proto: 1.0.1 @@ -19937,6 +20893,8 @@ snapshots: wildcard@2.0.1: {} + word-wrap@1.2.5: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -19961,9 +20919,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@7.5.10: {} - - ws@8.19.0: {} + ws@7.5.11: {} ws@8.21.0: {} @@ -19989,7 +20945,7 @@ snapshots: yallist@4.0.0: {} - yaml@1.10.2: {} + yaml@1.10.3: {} yaml@2.3.4: {} @@ -20005,9 +20961,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yauzl@3.2.0: + yauzl@3.4.0: dependencies: - buffer-crc32: 0.2.13 pend: 1.2.0 yn@3.1.1: {} From a839a819e5009057f3d29c800924a6dd6315d3d8 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Fri, 12 Jun 2026 14:32:38 +0100 Subject: [PATCH 085/293] patch jsdom --- dotcom-rendering/webpack/jsdom-patch.js | 17 +++++++++++++++++ .../webpack/webpack.config.server.js | 5 +++++ 2 files changed, 22 insertions(+) create mode 100644 dotcom-rendering/webpack/jsdom-patch.js diff --git a/dotcom-rendering/webpack/jsdom-patch.js b/dotcom-rendering/webpack/jsdom-patch.js new file mode 100644 index 00000000000..5460a62ef8d --- /dev/null +++ b/dotcom-rendering/webpack/jsdom-patch.js @@ -0,0 +1,17 @@ +const fs = require('fs'); +const path = require('path'); + +module.exports = function (src) { + const defaultCSSPath = path.join( + path.dirname(this.resourcePath), + '../../browser/default-stylesheet.css', + ); + + const defaultCSS = fs.readFileSync(defaultCSSPath, 'utf-8'); + + // inline the contents of the css file into the bundled file + return src.replace( + /const defaultStyleSheet[^;]*/, + `const defaultStyleSheet = ${JSON.stringify(defaultCSS)}`, + ); +}; diff --git a/dotcom-rendering/webpack/webpack.config.server.js b/dotcom-rendering/webpack/webpack.config.server.js index aadda70fa24..6de696bdab6 100644 --- a/dotcom-rendering/webpack/webpack.config.server.js +++ b/dotcom-rendering/webpack/webpack.config.server.js @@ -1,4 +1,5 @@ // @ts-check +const path = require('path'); const nodeExternals = require('webpack-node-externals'); const swcConfig = require('./.swcrc.json'); const { svgr } = require('./svg.cjs'); @@ -82,6 +83,10 @@ module.exports = { use: swcLoader, }, svgr, + { + test: /jsdom\/.+\/style-rules\.js$/, // make sure we're only patching the jsdom style rules file + use: [path.resolve(__dirname, './jsdom-patch.js')], + }, ], }, }; From 370795dd28a4f76bced2ef7de430e38d137bab8f Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Fri, 12 Jun 2026 14:35:35 +0100 Subject: [PATCH 086/293] Increase the frequency of the football match-header client side calls to improve liveness Co-authored-by: Ravi <7014230+arelra@users.noreply.github.com> --- .../src/components/FootballMatchHeaderWrapper.island.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotcom-rendering/src/components/FootballMatchHeaderWrapper.island.tsx b/dotcom-rendering/src/components/FootballMatchHeaderWrapper.island.tsx index 27c81a08921..89027741865 100644 --- a/dotcom-rendering/src/components/FootballMatchHeaderWrapper.island.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeaderWrapper.island.tsx @@ -31,7 +31,7 @@ export const FootballMatchHeaderWrapper = (props: Props) => ( article={props.article} format={props.format} getHeaderData={getHeaderData} - refreshInterval={16_000} + refreshInterval={10_000} renderingTarget={props.renderingTarget} notificationsClient={getNotificationsClient()} matchNotificationsClient={getMatchNotificationsClient()} From 648a9d809939a5d29bad7681ae4d6f1b2084272f Mon Sep 17 00:00:00 2001 From: George Richmond Date: Fri, 12 Jun 2026 14:46:27 +0100 Subject: [PATCH 087/293] Tweak modal overlay slide up on iOS (#16143) --- dotcom-rendering/scripts/jest/setup.ts | 17 +++++++++ .../src/components/ModalOverlay.test.tsx | 8 ++-- .../src/components/ModalOverlay.tsx | 38 +++++++++---------- 3 files changed, 40 insertions(+), 23 deletions(-) diff --git a/dotcom-rendering/scripts/jest/setup.ts b/dotcom-rendering/scripts/jest/setup.ts index 452ba1227a2..1113806bfb0 100644 --- a/dotcom-rendering/scripts/jest/setup.ts +++ b/dotcom-rendering/scripts/jest/setup.ts @@ -109,5 +109,22 @@ if (!isServer) { global.TextEncoder = TextEncoder as unknown as typeof global.TextEncoder; global.TextDecoder = TextDecoder as unknown as typeof global.TextDecoder; +if (!isServer) { + Object.defineProperty(window, 'matchMedia', { + writable: true, + value: (query: string): MediaQueryList => + ({ + matches: false, + media: query, + onchange: null, + addListener: () => {}, + removeListener: () => {}, + addEventListener: () => {}, + removeEventListener: () => {}, + dispatchEvent: () => false, + }) as MediaQueryList, + }); +} + // Mocks the version number used by CDK, we don't want our tests to fail every time we update our cdk dependency. jest.mock('@guardian/cdk/lib/constants/tracking-tag'); diff --git a/dotcom-rendering/src/components/ModalOverlay.test.tsx b/dotcom-rendering/src/components/ModalOverlay.test.tsx index cac148c2595..11f0703c744 100644 --- a/dotcom-rendering/src/components/ModalOverlay.test.tsx +++ b/dotcom-rendering/src/components/ModalOverlay.test.tsx @@ -48,12 +48,12 @@ describe('ModalOverlay', () => { expect(onClose).toHaveBeenCalledTimes(1); }); - it('calls onClose when the overlay backdrop receives a mousedown', () => { + it('calls onClose when the overlay backdrop receives a pointerdown', () => { const onClose = jest.fn(); renderOverlay(onClose); const overlay = screen.getByRole('dialog').parentElement!; - fireEvent.mouseDown(overlay); + fireEvent.pointerDown(overlay); act(() => { jest.runAllTimers(); @@ -62,11 +62,11 @@ describe('ModalOverlay', () => { expect(onClose).toHaveBeenCalledTimes(1); }); - it('does not call onClose when the dialog itself receives a mousedown', () => { + it('does not call onClose when the dialog itself receives a pointerdown', () => { const onClose = jest.fn(); renderOverlay(onClose); - fireEvent.mouseDown(screen.getByRole('dialog')); + fireEvent.pointerDown(screen.getByRole('dialog')); act(() => { jest.runAllTimers(); diff --git a/dotcom-rendering/src/components/ModalOverlay.tsx b/dotcom-rendering/src/components/ModalOverlay.tsx index b6248e89acd..f72d5b68efb 100644 --- a/dotcom-rendering/src/components/ModalOverlay.tsx +++ b/dotcom-rendering/src/components/ModalOverlay.tsx @@ -14,6 +14,10 @@ import { getZIndex } from '../lib/getZIndex'; const OPEN_ANIMATION_DURATION_MS = 300; const CLOSE_ANIMATION_DURATION_MS = 225; +const prefersReducedMotion = (): boolean => + typeof window !== 'undefined' && + window.matchMedia('(prefers-reduced-motion: reduce)').matches; + const ModalRequestCloseContext = createContext<(() => void) | null>(null); export const useModalRequestClose = (): (() => void) => { @@ -130,19 +134,15 @@ export const ModalOverlay = ({ const overlayRef = useRef(null); const dialogRef = useRef(null); const closeTimeoutRef = useRef(null); - const [isVisible, setIsVisible] = useState(false); + + const [isVisible, setIsVisible] = useState(() => prefersReducedMotion()); const requestClose = useCallback(() => { if (closeTimeoutRef.current !== null) { return; } - const prefersReducedMotion = - window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? - false; - - if (prefersReducedMotion) { - closeTimeoutRef.current = 0; + if (prefersReducedMotion()) { onClose(); return; } @@ -156,12 +156,7 @@ export const ModalOverlay = ({ // Trigger open animation on mount useEffect(() => { - const prefersReducedMotion = - window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? - false; - - if (prefersReducedMotion) { - setIsVisible(true); + if (prefersReducedMotion()) { return; } @@ -205,7 +200,9 @@ export const ModalOverlay = ({ ? document.activeElement : null; - dialogElement.focus(); + // preventScroll stops iOS Safari from jerking the viewport to bring + // the off-screen element into view before the slide-up animation runs. + dialogElement.focus({ preventScroll: true }); return () => { if ( @@ -282,18 +279,22 @@ export const ModalOverlay = ({ return; } - const handleOverlayMouseDown = (event: MouseEvent) => { + const handleOverlayPointerDown = (event: PointerEvent) => { if (event.target === overlayElement) { + event.preventDefault(); requestClose(); } }; - overlayElement.addEventListener('mousedown', handleOverlayMouseDown); + overlayElement.addEventListener( + 'pointerdown', + handleOverlayPointerDown, + ); return () => { overlayElement.removeEventListener( - 'mousedown', - handleOverlayMouseDown, + 'pointerdown', + handleOverlayPointerDown, ); }; }, [requestClose]); @@ -305,7 +306,6 @@ export const ModalOverlay = ({ return createPortal(
Date: Fri, 12 Jun 2026 14:51:22 +0100 Subject: [PATCH 088/293] added explaining documentation --- dotcom-rendering/webpack/jsdom-patch.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dotcom-rendering/webpack/jsdom-patch.js b/dotcom-rendering/webpack/jsdom-patch.js index 5460a62ef8d..ce0da2d78f5 100644 --- a/dotcom-rendering/webpack/jsdom-patch.js +++ b/dotcom-rendering/webpack/jsdom-patch.js @@ -1,3 +1,12 @@ +/* +This is a patch found at: https://github.com/jsdom/jsdom/issues/3951 + +When jsdom upgraded to v27.0.0 they stopped inlining a default-stylesheet.css file +and instead started loading it from another directory. We do not have access to +that directory on the server so this patch replaces the "loading" code with the +contents of the css file. +*/ + const fs = require('fs'); const path = require('path'); From 27358c465ed385151da1d343294da6f4eec4e074 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Fri, 12 Jun 2026 15:00:52 +0100 Subject: [PATCH 089/293] updated jsdom to v28.0.0 --- dotcom-rendering/jest.config.js | 3 + dotcom-rendering/package.json | 2 +- dotcom-rendering/scripts/jest/setup.ts | 5 + pnpm-lock.yaml | 129 ++++++++++++++----------- 4 files changed, 84 insertions(+), 55 deletions(-) diff --git a/dotcom-rendering/jest.config.js b/dotcom-rendering/jest.config.js index 9afcca4ce16..d8e9c7562a4 100644 --- a/dotcom-rendering/jest.config.js +++ b/dotcom-rendering/jest.config.js @@ -3,12 +3,15 @@ const swcConfig = require('./webpack/.swcrc.json'); const esModules = [ '@guardian/', '@csstools', + '@exodus', 'screenfull', 'node-fetch', 'data-uri-to-buffer', 'fetch-blob', 'formdata-polyfill', 'storybook', + 'parse5', + 'entities', ].join('|'); module.exports = { diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index 267233b01fd..a93115d0fd9 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -124,7 +124,7 @@ "is-mobile": "3.1.1", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jsdom": "27.0.0", + "jsdom": "28.0.0", "lodash.debounce": "4.0.8", "log4js": "6.9.1", "lz-string": "1.5.0", diff --git a/dotcom-rendering/scripts/jest/setup.ts b/dotcom-rendering/scripts/jest/setup.ts index 452ba1227a2..f22f7d7e53c 100644 --- a/dotcom-rendering/scripts/jest/setup.ts +++ b/dotcom-rendering/scripts/jest/setup.ts @@ -1,6 +1,8 @@ // add some helpful assertions import '@testing-library/jest-dom'; +import { ReadableStream } from 'node:stream/web'; import { TextDecoder, TextEncoder } from 'node:util'; +import { MessagePort } from 'node:worker_threads'; import { isServer } from '../../src/lib/isServer'; import type { Guardian } from '../../src/model/guardian'; @@ -108,6 +110,9 @@ if (!isServer) { */ global.TextEncoder = TextEncoder as unknown as typeof global.TextEncoder; global.TextDecoder = TextDecoder as unknown as typeof global.TextDecoder; +global.ReadableStream = + ReadableStream as unknown as typeof global.ReadableStream; +global.MessagePort = MessagePort as unknown as typeof global.MessagePort; // Mocks the version number used by CDK, we don't want our tests to fail every time we update our cdk dependency. jest.mock('@guardian/cdk/lib/constants/tracking-tag'); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6dff7a8cb5a..cd5ef3b0373 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -603,8 +603,8 @@ importers: specifier: 29.7.0 version: 29.7.0 jsdom: - specifier: 27.0.0 - version: 27.0.0 + specifier: 28.0.0 + version: 28.0.0 lodash.debounce: specifier: 4.0.8 version: 4.0.8 @@ -758,6 +758,9 @@ importers: packages: + '@acemir/cssom@0.9.31': + resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} + '@adobe/css-tools@4.5.0': resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} @@ -1800,8 +1803,8 @@ packages: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.1.1': - resolution: {integrity: sha512-eZ5XOtyhK+mggRafYUWzA0tvaYOFgdY8AkgQiCJF9qNAePnUo/zmsqqYubBBb3sQ8uNUaSKTY9s9klfRaAXL0g==} + '@csstools/css-color-parser@4.1.2': + resolution: {integrity: sha512-n6Zd8mpVhObnaOqq6TC/lBCKgYncAGfFwuvJGQZTDRAwEoxwXIZu9kXBQeXkcqHsE6Sp6LyxDMrvXj5gOxnryw==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -2561,6 +2564,15 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@exodus/bytes@1.15.1': + resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@noble/hashes': ^1.8.0 || ^2.0.0 + peerDependenciesMeta: + '@noble/hashes': + optional: true + '@guardian/braze-components@22.2.0': resolution: {integrity: sha512-uSkHd6mBVTAD+BrvJZNt+oSipYHQXBdVt9Pu/VTvkliXHzT8OUsep7ObIWM1lkf3znWbqLDhoXtwS5apX2AEWQ==} engines: {node: ^18.15 || ^20.8} @@ -5742,9 +5754,9 @@ packages: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} - data-urls@6.0.1: - resolution: {integrity: sha512-euIQENZg6x8mj3fO6o9+fOW8MimUI4PpD/fZBhJfeioZVy9TUpM4UY7KjQNVZFlqwJ0UdzRDzkycB997HEq1BQ==} - engines: {node: '>=20'} + data-urls@7.0.0: + resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} @@ -6028,6 +6040,10 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} + entities@8.0.0: + resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} + engines: {node: '>=20.19.0'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6795,9 +6811,9 @@ packages: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + html-encoding-sniffer@6.0.0: + resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} @@ -7401,9 +7417,9 @@ packages: canvas: optional: true - jsdom@27.0.0: - resolution: {integrity: sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==} - engines: {node: '>=20'} + jsdom@28.0.0: + resolution: {integrity: sha512-KDYJgZ6T2TKdU8yBfYueq5EPG/EylMsBvCaenWMJb2OXmjgczzwveRCoJ+Hgj1lXPDyasvrgneSn4GBuR1hYyA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -8066,6 +8082,9 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -8565,9 +8584,6 @@ packages: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} - rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - run-applescript@7.1.0: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} @@ -9377,6 +9393,10 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici@7.27.2: + resolution: {integrity: sha512-uZsKNuzQxDMUY6M3pIMvy5tvlGmtq8XJ2oLAkfRKGNu+1VQAIvLy2xIVG5ATZl5wDXl/tddByAWCizRbOme+TA==} + engines: {node: '>=20.18.1'} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -9705,19 +9725,10 @@ packages: engines: {node: '>=12'} deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation - whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - whatwg-mimetype@5.0.0: resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} engines: {node: '>=20'} @@ -9726,9 +9737,9 @@ packages: resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} engines: {node: '>=12'} - whatwg-url@15.1.0: - resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} - engines: {node: '>=20'} + whatwg-url@16.0.1: + resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} @@ -9883,12 +9894,14 @@ packages: snapshots: + '@acemir/cssom@0.9.31': {} + '@adobe/css-tools@4.5.0': {} '@asamuzakjp/css-color@4.1.2': dependencies: '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 lru-cache: 11.5.1 @@ -11800,7 +11813,7 @@ snapshots: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@4.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.1.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/color-helpers': 6.0.2 '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) @@ -12277,6 +12290,8 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 + '@exodus/bytes@1.15.1': {} + '@guardian/braze-components@22.2.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.1)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1)': dependencies: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) @@ -15871,10 +15886,12 @@ snapshots: whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - data-urls@6.0.1: + data-urls@7.0.0: dependencies: whatwg-mimetype: 5.0.0 - whatwg-url: 15.1.0 + whatwg-url: 16.0.1 + transitivePeerDependencies: + - '@noble/hashes' data-view-buffer@1.0.2: dependencies: @@ -16109,6 +16126,8 @@ snapshots: entities@7.0.1: {} + entities@8.0.0: {} + env-paths@2.2.1: {} envinfo@7.21.0: {} @@ -17224,9 +17243,11 @@ snapshots: dependencies: whatwg-encoding: 2.0.0 - html-encoding-sniffer@4.0.0: + html-encoding-sniffer@6.0.0: dependencies: - whatwg-encoding: 3.1.1 + '@exodus/bytes': 1.15.1 + transitivePeerDependencies: + - '@noble/hashes' html-entities@2.6.0: {} @@ -18053,32 +18074,31 @@ snapshots: - supports-color - utf-8-validate - jsdom@27.0.0: + jsdom@28.0.0: dependencies: + '@acemir/cssom': 0.9.31 '@asamuzakjp/dom-selector': 6.8.1 + '@exodus/bytes': 1.15.1 cssstyle: 5.3.7 - data-urls: 6.0.1 + data-urls: 7.0.0 decimal.js: 10.6.0 - html-encoding-sniffer: 4.0.0 + html-encoding-sniffer: 6.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - parse5: 7.3.0 - rrweb-cssom: 0.8.0 + parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.1 + undici: 7.27.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 15.1.0 - ws: 8.21.0 + whatwg-mimetype: 5.0.0 + whatwg-url: 16.0.1 xml-name-validator: 5.0.0 transitivePeerDependencies: - - bufferutil + - '@noble/hashes' - supports-color - - utf-8-validate jsesc@3.1.0: {} @@ -18800,6 +18820,10 @@ snapshots: dependencies: entities: 6.0.1 + parse5@8.0.1: + dependencies: + entities: 8.0.0 + parseurl@1.3.3: {} pascal-case@3.1.2: @@ -19399,8 +19423,6 @@ snapshots: transitivePeerDependencies: - supports-color - rrweb-cssom@0.8.0: {} - run-applescript@7.1.0: {} run-parallel@1.2.0: @@ -20405,6 +20427,8 @@ snapshots: undici-types@7.16.0: {} + undici@7.27.2: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -20822,14 +20846,8 @@ snapshots: dependencies: iconv-lite: 0.6.3 - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - whatwg-mimetype@3.0.0: {} - whatwg-mimetype@4.0.0: {} - whatwg-mimetype@5.0.0: {} whatwg-url@11.0.0: @@ -20837,10 +20855,13 @@ snapshots: tr46: 3.0.0 webidl-conversions: 7.0.0 - whatwg-url@15.1.0: + whatwg-url@16.0.1: dependencies: + '@exodus/bytes': 1.15.1 tr46: 6.0.0 webidl-conversions: 8.0.1 + transitivePeerDependencies: + - '@noble/hashes' which-boxed-primitive@1.1.1: dependencies: From eaf6f29f78a122a0df2d482467fa987fbb7a67a8 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:07:05 +0100 Subject: [PATCH 090/293] updated jsdom to 29.1.1 and fix patch --- dotcom-rendering/jest.config.js | 2 + dotcom-rendering/package.json | 2 +- dotcom-rendering/webpack/jsdom-patch.js | 23 +++- .../webpack/webpack.config.server.js | 2 +- pnpm-lock.yaml | 100 +++++++----------- 5 files changed, 59 insertions(+), 70 deletions(-) diff --git a/dotcom-rendering/jest.config.js b/dotcom-rendering/jest.config.js index d8e9c7562a4..5257a547f9c 100644 --- a/dotcom-rendering/jest.config.js +++ b/dotcom-rendering/jest.config.js @@ -4,6 +4,8 @@ const esModules = [ '@guardian/', '@csstools', '@exodus', + '@asamuzakjp', + '@bramus', 'screenfull', 'node-fetch', 'data-uri-to-buffer', diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index a93115d0fd9..9a1a91711cb 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -124,7 +124,7 @@ "is-mobile": "3.1.1", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "jsdom": "28.0.0", + "jsdom": "29.1.1", "lodash.debounce": "4.0.8", "log4js": "6.9.1", "lz-string": "1.5.0", diff --git a/dotcom-rendering/webpack/jsdom-patch.js b/dotcom-rendering/webpack/jsdom-patch.js index ce0da2d78f5..bf90393550a 100644 --- a/dotcom-rendering/webpack/jsdom-patch.js +++ b/dotcom-rendering/webpack/jsdom-patch.js @@ -5,6 +5,14 @@ When jsdom upgraded to v27.0.0 they stopped inlining a default-stylesheet.css fi and instead started loading it from another directory. We do not have access to that directory on the server so this patch replaces the "loading" code with the contents of the css file. + +Currently the loading of default-stylesheet.css happens in: + +node_modules/jsdom/lib/jsdom/living/helpers/css/helpers/computed-style.js + +and the default-stylesheet.css file is found in: + +node_modules/jsdom/lib/jsdon/browser */ const fs = require('fs'); @@ -13,14 +21,21 @@ const path = require('path'); module.exports = function (src) { const defaultCSSPath = path.join( path.dirname(this.resourcePath), - '../../browser/default-stylesheet.css', + '../../../browser/default-stylesheet.css', // when jsdom is updated this might be in a different relative directory ); const defaultCSS = fs.readFileSync(defaultCSSPath, 'utf-8'); - // inline the contents of the css file into the bundled file + const regexToFindCodeToReplace = /const defaultStyleSheet[^;]*/; + + if (!regexToFindCodeToReplace.test(src)) { + throw new Error( + "jsdom patch failed: couldn't find a reference to defaultStyleSheet", + ); + } + return src.replace( - /const defaultStyleSheet[^;]*/, - `const defaultStyleSheet = ${JSON.stringify(defaultCSS)}`, + regexToFindCodeToReplace, + `const defaultStyleSheet = ${JSON.stringify(defaultCSS)};`, ); }; diff --git a/dotcom-rendering/webpack/webpack.config.server.js b/dotcom-rendering/webpack/webpack.config.server.js index 6de696bdab6..bb3282477b8 100644 --- a/dotcom-rendering/webpack/webpack.config.server.js +++ b/dotcom-rendering/webpack/webpack.config.server.js @@ -84,7 +84,7 @@ module.exports = { }, svgr, { - test: /jsdom\/.+\/style-rules\.js$/, // make sure we're only patching the jsdom style rules file + test: /jsdom.*computed-style\.js$/, use: [path.resolve(__dirname, './jsdom-patch.js')], }, ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd5ef3b0373..507ca834561 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -603,8 +603,8 @@ importers: specifier: 29.7.0 version: 29.7.0 jsdom: - specifier: 28.0.0 - version: 28.0.0 + specifier: 29.1.1 + version: 29.1.1 lodash.debounce: specifier: 4.0.8 version: 4.0.8 @@ -758,17 +758,20 @@ importers: packages: - '@acemir/cssom@0.9.31': - resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} - '@adobe/css-tools@4.5.0': resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} - '@asamuzakjp/css-color@4.1.2': - resolution: {integrity: sha512-NfBUvBaYgKIuq6E/RBLY1m0IohzNHAYyaJGuTK79Z23uNwmz2jl1mPsC5ZxCCxylinKhT1Amn5oNTlx1wN8cQg==} + '@asamuzakjp/css-color@5.1.11': + resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + + '@asamuzakjp/dom-selector@7.1.1': + resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@asamuzakjp/dom-selector@6.8.1': - resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} + '@asamuzakjp/generational-cache@1.0.1': + resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} @@ -1776,6 +1779,10 @@ packages: '@borewit/text-codec@0.2.2': resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} + '@bramus/specificity@2.4.2': + resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + hasBin: true + '@braze/web-sdk@6.5.0': resolution: {integrity: sha512-MdfwZn+tfe7+tR8Ir5468/njQDGhgVB9tBthq7gwSETsjv6Q+Hw2bXiQy3scDcACI2RLqiq+dNXKh6fD+pN4/Q==} @@ -4926,10 +4933,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - aggregate-error@4.0.1: resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==} engines: {node: '>=12'} @@ -5736,10 +5739,6 @@ packages: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} - cssstyle@5.3.7: - resolution: {integrity: sha512-7D2EPVltRrsTkhpQmksIu+LxeWAIEk6wRDMJ1qljlv+CKHJM+cJLlfhWIzNA44eAsHXSNe3+vO6DW1yCYx8SuQ==} - engines: {node: '>=20'} - csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -6881,10 +6880,6 @@ packages: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - http-proxy-middleware@2.0.9: resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} engines: {node: '>=12.0.0'} @@ -6906,10 +6901,6 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -7417,9 +7408,9 @@ packages: canvas: optional: true - jsdom@28.0.0: - resolution: {integrity: sha512-KDYJgZ6T2TKdU8yBfYueq5EPG/EylMsBvCaenWMJb2OXmjgczzwveRCoJ+Hgj1lXPDyasvrgneSn4GBuR1hYyA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + jsdom@29.1.1: + resolution: {integrity: sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -9894,25 +9885,25 @@ packages: snapshots: - '@acemir/cssom@0.9.31': {} - '@adobe/css-tools@4.5.0': {} - '@asamuzakjp/css-color@4.1.2': + '@asamuzakjp/css-color@5.1.11': dependencies: + '@asamuzakjp/generational-cache': 1.0.1 '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-color-parser': 4.1.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.5.1 - '@asamuzakjp/dom-selector@6.8.1': + '@asamuzakjp/dom-selector@7.1.1': dependencies: + '@asamuzakjp/generational-cache': 1.0.1 '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.5.1 + + '@asamuzakjp/generational-cache@1.0.1': {} '@asamuzakjp/nwsapi@2.3.9': {} @@ -11783,6 +11774,10 @@ snapshots: '@borewit/text-codec@0.2.2': {} + '@bramus/specificity@2.4.2': + dependencies: + css-tree: 3.2.1 + '@braze/web-sdk@6.5.0': {} '@cacheable/memory@2.0.9': @@ -15022,8 +15017,6 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.4: {} - aggregate-error@4.0.1: dependencies: clean-stack: 4.2.0 @@ -15867,13 +15860,6 @@ snapshots: dependencies: cssom: 0.3.8 - cssstyle@5.3.7: - dependencies: - '@asamuzakjp/css-color': 4.1.2 - '@csstools/css-syntax-patches-for-csstree': 1.1.5(css-tree@3.2.1) - css-tree: 3.2.1 - lru-cache: 11.5.1 - csstype@3.2.3: {} damerau-levenshtein@1.0.8: {} @@ -17339,13 +17325,6 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - http-proxy-middleware@2.0.9(@types/express@4.17.25): dependencies: '@types/http-proxy': 1.17.17 @@ -17378,13 +17357,6 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - human-signals@2.1.0: {} human-signals@5.0.0: {} @@ -18074,18 +18046,19 @@ snapshots: - supports-color - utf-8-validate - jsdom@28.0.0: + jsdom@29.1.1: dependencies: - '@acemir/cssom': 0.9.31 - '@asamuzakjp/dom-selector': 6.8.1 + '@asamuzakjp/css-color': 5.1.11 + '@asamuzakjp/dom-selector': 7.1.1 + '@bramus/specificity': 2.4.2 + '@csstools/css-syntax-patches-for-csstree': 1.1.5(css-tree@3.2.1) '@exodus/bytes': 1.15.1 - cssstyle: 5.3.7 + css-tree: 3.2.1 data-urls: 7.0.0 decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 + lru-cache: 11.5.1 parse5: 8.0.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -18098,7 +18071,6 @@ snapshots: xml-name-validator: 5.0.0 transitivePeerDependencies: - '@noble/hashes' - - supports-color jsesc@3.1.0: {} From b083bec2f3120b62091d9b8834be5e11f025fd4b Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:27:01 +0100 Subject: [PATCH 091/293] removed extra semi-colon --- dotcom-rendering/webpack/jsdom-patch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotcom-rendering/webpack/jsdom-patch.js b/dotcom-rendering/webpack/jsdom-patch.js index bf90393550a..522222b2a58 100644 --- a/dotcom-rendering/webpack/jsdom-patch.js +++ b/dotcom-rendering/webpack/jsdom-patch.js @@ -36,6 +36,6 @@ module.exports = function (src) { return src.replace( regexToFindCodeToReplace, - `const defaultStyleSheet = ${JSON.stringify(defaultCSS)};`, + `const defaultStyleSheet = ${JSON.stringify(defaultCSS)}`, ); }; From 38aea78157d7d0d34dc24aca129d87714de29509 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jun 2026 18:34:41 +0000 Subject: [PATCH 092/293] Bump the swc group across 1 directory with 2 updates Bumps the swc group with 2 updates in the / directory: [@swc/cli](https://github.com/swc-project/pkgs) and [@swc/core](https://github.com/swc-project/swc/tree/HEAD/packages/core). Updates `@swc/cli` from 0.7.8 to 0.8.1 - [Commits](https://github.com/swc-project/pkgs/commits) Updates `@swc/core` from 1.13.5 to 1.15.41 - [Release notes](https://github.com/swc-project/swc/releases) - [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md) - [Commits](https://github.com/swc-project/swc/commits/v1.15.41/packages/core) --- updated-dependencies: - dependency-name: "@swc/cli" dependency-version: 0.8.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: swc - dependency-name: "@swc/core" dependency-version: 1.15.41 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: swc ... Signed-off-by: dependabot[bot] --- dotcom-rendering/package.json | 4 +- pnpm-lock.yaml | 1189 +++++++++++++++++++++------------ 2 files changed, 777 insertions(+), 416 deletions(-) diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index 492c5156ab4..8c6c6bf5cef 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -53,8 +53,8 @@ "@storybook/addon-webpack5-compiler-swc": "4.0.3", "@storybook/react-webpack5": "10.3.3", "@svgr/webpack": "8.1.0", - "@swc/cli": "0.7.8", - "@swc/core": "1.13.5", + "@swc/cli": "0.8.1", + "@swc/core": "1.15.41", "@swc/jest": "0.2.39", "@testing-library/dom": "10.4.1", "@testing-library/jest-dom": "6.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 67c6f7610b3..acab814e6f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -385,19 +385,19 @@ importers: version: 4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1) '@storybook/react-webpack5': specifier: 10.3.3 - version: 10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + version: 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) '@svgr/webpack': specifier: 8.1.0 version: 8.1.0(typescript@5.9.3) '@swc/cli': - specifier: 0.7.8 - version: 0.7.8(@swc/core@1.13.5)(chokidar@4.0.3) + specifier: 0.8.1 + version: 0.8.1(@swc/core@1.15.41) '@swc/core': - specifier: 1.13.5 - version: 1.13.5 + specifier: 1.15.41 + version: 1.15.41 '@swc/jest': specifier: 0.2.39 - version: 0.2.39(@swc/core@1.13.5) + version: 0.2.39(@swc/core@1.15.41) '@testing-library/dom': specifier: 10.4.1 version: 10.4.1 @@ -487,13 +487,13 @@ importers: version: 0.0.6 '@types/webpack-bundle-analyzer': specifier: 4.7.0 - version: 4.7.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 4.7.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) '@types/webpack-env': specifier: 1.18.8 version: 1.18.8 '@types/webpack-node-externals': specifier: 3.0.4 - version: 3.0.4(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 3.0.4(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) '@types/youtube': specifier: 0.0.50 version: 0.0.50 @@ -598,7 +598,7 @@ importers: version: 3.1.1 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) jest-environment-jsdom: specifier: 29.7.0 version: 29.7.0 @@ -676,7 +676,7 @@ importers: version: 14.0.0(stylelint@16.26.1(typescript@5.9.3)) swc-loader: specifier: 0.2.6 - version: 0.2.6(@swc/core@1.13.5)(webpack@5.104.1) + version: 0.2.6(@swc/core@1.15.41)(webpack@5.104.1) swr: specifier: 1.3.0 version: 1.3.0(react@18.3.1) @@ -706,7 +706,7 @@ importers: version: 8.57.1(eslint@9.39.1)(typescript@5.9.3) typescript-json-schema: specifier: 0.64.0 - version: 0.64.0(@swc/core@1.13.5) + version: 0.64.0(@swc/core@1.15.41) unified: specifier: 11.0.5 version: 11.0.5 @@ -721,7 +721,7 @@ importers: version: 4.2.3 webpack: specifier: 5.104.1 - version: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-assets-manifest: specifier: 6.3.0 version: 6.3.0(webpack@5.104.1) @@ -1675,6 +1675,9 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@borewit/text-codec@0.2.2': + resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} + '@braze/web-sdk@6.5.0': resolution: {integrity: sha512-MdfwZn+tfe7+tR8Ir5468/njQDGhgVB9tBthq7gwSETsjv6Q+Hw2bXiQy3scDcACI2RLqiq+dNXKh6fD+pN4/Q==} @@ -2808,6 +2811,119 @@ packages: '@types/react': '>=16' react: '>=16' + '@napi-rs/nice-android-arm-eabi@1.1.1': + resolution: {integrity: sha512-kjirL3N6TnRPv5iuHw36wnucNqXAO46dzK9oPb0wj076R5Xm8PfUVA9nAFB5ZNMmfJQJVKACAPd/Z2KYMppthw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@napi-rs/nice-android-arm64@1.1.1': + resolution: {integrity: sha512-blG0i7dXgbInN5urONoUCNf+DUEAavRffrO7fZSeoRMJc5qD+BJeNcpr54msPF6qfDD6kzs9AQJogZvT2KD5nw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@napi-rs/nice-darwin-arm64@1.1.1': + resolution: {integrity: sha512-s/E7w45NaLqTGuOjC2p96pct4jRfo61xb9bU1unM/MJ/RFkKlJyJDx7OJI/O0ll/hrfpqKopuAFDV8yo0hfT7A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@napi-rs/nice-darwin-x64@1.1.1': + resolution: {integrity: sha512-dGoEBnVpsdcC+oHHmW1LRK5eiyzLwdgNQq3BmZIav+9/5WTZwBYX7r5ZkQC07Nxd3KHOCkgbHSh4wPkH1N1LiQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@napi-rs/nice-freebsd-x64@1.1.1': + resolution: {integrity: sha512-kHv4kEHAylMYmlNwcQcDtXjklYp4FCf0b05E+0h6nDHsZ+F0bDe04U/tXNOqrx5CmIAth4vwfkjjUmp4c4JktQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + resolution: {integrity: sha512-E1t7K0efyKXZDoZg1LzCOLxgolxV58HCkaEkEvIYQx12ht2pa8hoBo+4OB3qh7e+QiBlp1SRf+voWUZFxyhyqg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + resolution: {integrity: sha512-CIKLA12DTIZlmTaaKhQP88R3Xao+gyJxNWEn04wZwC2wmRapNnxCUZkVwggInMJvtVElA+D4ZzOU5sX4jV+SmQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-arm64-musl@1.1.1': + resolution: {integrity: sha512-+2Rzdb3nTIYZ0YJF43qf2twhqOCkiSrHx2Pg6DJaCPYhhaxbLcdlV8hCRMHghQ+EtZQWGNcS2xF4KxBhSGeutg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + resolution: {integrity: sha512-4FS8oc0GeHpwvv4tKciKkw3Y4jKsL7FRhaOeiPei0X9T4Jd619wHNe4xCLmN2EMgZoeGg+Q7GY7BsvwKpL22Tg==} + engines: {node: '>= 10'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + resolution: {integrity: sha512-HU0nw9uD4FO/oGCCk409tCi5IzIZpH2agE6nN4fqpwVlCn5BOq0MS1dXGjXaG17JaAvrlpV5ZeyZwSon10XOXw==} + engines: {node: '>= 10'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + resolution: {integrity: sha512-2YqKJWWl24EwrX0DzCQgPLKQBxYDdBxOHot1KWEq7aY2uYeX+Uvtv4I8xFVVygJDgf6/92h9N3Y43WPx8+PAgQ==} + engines: {node: '>= 10'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-x64-gnu@1.1.1': + resolution: {integrity: sha512-/gaNz3R92t+dcrfCw/96pDopcmec7oCcAQ3l/M+Zxr82KT4DljD37CpgrnXV+pJC263JkW572pdbP3hP+KjcIg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@napi-rs/nice-linux-x64-musl@1.1.1': + resolution: {integrity: sha512-xScCGnyj/oppsNPMnevsBe3pvNaoK7FGvMjT35riz9YdhB2WtTG47ZlbxtOLpjeO9SqqQ2J2igCmz6IJOD5JYw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@napi-rs/nice-openharmony-arm64@1.1.1': + resolution: {integrity: sha512-6uJPRVwVCLDeoOaNyeiW0gp2kFIM4r7PL2MczdZQHkFi9gVlgm+Vn+V6nTWRcu856mJ2WjYJiumEajfSm7arPQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [openharmony] + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + resolution: {integrity: sha512-uoTb4eAvM5B2aj/z8j+Nv8OttPf2m+HVx3UjA5jcFxASvNhQriyCQF1OB1lHL43ZhW+VwZlgvjmP5qF3+59atA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + resolution: {integrity: sha512-CNQqlQT9MwuCsg1Vd/oKXiuH+TcsSPJmlAFc5frFyX/KkOh0UpBLEj7aoY656d5UKZQMQFP7vJNa1DNUNORvug==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@napi-rs/nice-win32-x64-msvc@1.1.1': + resolution: {integrity: sha512-vB+4G/jBQCAh0jelMTY3+kgFy00Hlx2f2/1zjMoH821IbplbWZOkLiTYXQkygNTzQJTq5cvwBDgn2ppHD+bglQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@napi-rs/nice@1.1.1': + resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} + engines: {node: '>= 10'} + '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -3227,9 +3343,13 @@ packages: '@sinclair/typebox@0.34.41': resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} + '@sindresorhus/is@7.2.0': + resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} + engines: {node: '>=18'} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} '@sinonjs/commons@3.0.0': resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} @@ -3718,83 +3838,97 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} - '@swc/cli@0.7.8': - resolution: {integrity: sha512-27Ov4rm0s2C6LLX+NDXfDVB69LGs8K94sXtFhgeUyQ4DBywZuCgTBu2loCNHRr8JhT9DeQvJM5j9FAu/THbo4w==} - engines: {node: '>= 16.14.0'} + '@swc/cli@0.8.1': + resolution: {integrity: sha512-L+ACCGHCiS0VqHVep/INLVnvRvJ2XooQFLZq4L8snhxw1jsqz+XRcY313UsyPVturPPE1shW3jic7rt3qEQTSQ==} + engines: {node: '>= 20.19.0'} hasBin: true peerDependencies: '@swc/core': ^1.2.66 - chokidar: ^4.0.1 + chokidar: ^5.0.0 peerDependenciesMeta: chokidar: optional: true - '@swc/core-darwin-arm64@1.13.5': - resolution: {integrity: sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==} + '@swc/core-darwin-arm64@1.15.41': + resolution: {integrity: sha512-kREh6J5paQFvP3i7f/4FbqRNOJREutVFVOkder4GVyCBQ39YmER55cW/y1NNjwrchzFqgYswFn0mMDCqbqKzrw==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.13.5': - resolution: {integrity: sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==} + '@swc/core-darwin-x64@1.15.41': + resolution: {integrity: sha512-N8B56ESFazZAWZyIkecADSPCwlLEinW7QLMEeotCpv4J7VXwfH+OLkmRL8o96UZ+1355fwHxDTS6/wK7yucvkA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.13.5': - resolution: {integrity: sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==} + '@swc/core-linux-arm-gnueabihf@1.15.41': + resolution: {integrity: sha512-6XrId2fyle0mS5xxON8rU84mPd2Cq1kDJRj+4BnQKTd7u+2kSA6Ww+JkOP0iTNqOqt9OXhPOEAjBHAuonWcdCg==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.13.5': - resolution: {integrity: sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==} + '@swc/core-linux-arm64-gnu@1.15.41': + resolution: {integrity: sha512-ynLIarxlkVnqHn1D0fKOVht6mNU5ks6lrH+MY3kkS+XFaGGgDxFZVjWKJlkYTKm3RCvBTfA8Ng5fLufXheMRKQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [glibc] - '@swc/core-linux-arm64-musl@1.13.5': - resolution: {integrity: sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==} + '@swc/core-linux-arm64-musl@1.15.41': + resolution: {integrity: sha512-dXu/5vd4gh8symyhRF+4G7gOPkjmb4pONhh7sl+6GSiW0LOKZlfu5kXmyFbTz9smOT7jgr002qY9b1nujjXt2A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [musl] - '@swc/core-linux-x64-gnu@1.13.5': - resolution: {integrity: sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==} + '@swc/core-linux-ppc64-gnu@1.15.41': + resolution: {integrity: sha512-XGO6zVPXoPE0gf/XnI4jBbafNT13AYgoh6ns0JCSdOetI/kqVf0vhpz7NuNgAzZrMVCsmieqjPoTwViDgh4mOQ==} + engines: {node: '>=10'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@swc/core-linux-s390x-gnu@1.15.41': + resolution: {integrity: sha512-0WUglRwyZtW+iMi7J3iFdrCxreZZIKf4egTwEQfIYRsqFax69A0OrFj+NIoFSE03xBT/IFRrg+S8K6f9Ky+4hA==} + engines: {node: '>=10'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@swc/core-linux-x64-gnu@1.15.41': + resolution: {integrity: sha512-VxkuQK59c0tHm6uJZCUrS3cyA2JhGGfdU6e41SZz0x/JS+4Sm7C1mIc97In14vkZJopEt7yXA2TouCqZDSygEA==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [glibc] - '@swc/core-linux-x64-musl@1.13.5': - resolution: {integrity: sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==} + '@swc/core-linux-x64-musl@1.15.41': + resolution: {integrity: sha512-/0qXIu1ZxggLuovLb22vFfKHq2AA4n6Whw5UwmVCHk4pkw7KWnPIQpMCEqUMPsNkFJig7PPp/TSYFu8ZEb2rtQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [musl] - '@swc/core-win32-arm64-msvc@1.13.5': - resolution: {integrity: sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==} + '@swc/core-win32-arm64-msvc@1.15.41': + resolution: {integrity: sha512-Y481sMNZM6rECh9VO4+y26N1lWEDAyxnBZskUf37fl90uHE946VHfmiVQWT0uMFOhyJJFovGTRuF4W82dwewUg==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.13.5': - resolution: {integrity: sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==} + '@swc/core-win32-ia32-msvc@1.15.41': + resolution: {integrity: sha512-BAchBD5qeUzy3hiPSLJtaaoSm4blCLyYffOF1bGE4ETcV+OisqjUAwDQMJj++4bTpvMCDzwC+Bj3PmQyBCtscw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.13.5': - resolution: {integrity: sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==} + '@swc/core-win32-x64-msvc@1.15.41': + resolution: {integrity: sha512-WOkA+fJ/ViVBQDsSV9JC52NACTe5PhlurA6viASDZGb7HR3KS01ZG7RZ+Bg6SVQFIoq3gSbTsskQVe6EbHFAYw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.13.5': - resolution: {integrity: sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==} + '@swc/core@1.15.41': + resolution: {integrity: sha512-03nQq/082QRJJiOvp3FGbgxTGyyxMxohPTjhk/W9bD2J0tk4ukITI7goOhOO2WbaHn/lsPmo/zf8+DIXhwpgYQ==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -3811,12 +3945,8 @@ packages: peerDependencies: '@swc/core': '*' - '@swc/types@0.1.25': - resolution: {integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} + '@swc/types@0.1.26': + resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} @@ -3847,6 +3977,10 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@tokenizer/inflate@0.4.1': + resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} + engines: {node: '>=18'} + '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -3963,8 +4097,8 @@ packages: '@types/html-minifier-terser@7.0.2': resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} @@ -4387,45 +4521,45 @@ packages: webpack-dev-server: optional: true - '@xhmikosr/archive-type@7.0.0': - resolution: {integrity: sha512-sIm84ZneCOJuiy3PpWR5bxkx3HaNt1pqaN+vncUBZIlPZCq8ASZH+hBVdu5H8znR7qYC6sKwx+ie2Q7qztJTxA==} - engines: {node: ^14.14.0 || >=16.0.0} + '@xhmikosr/archive-type@8.1.0': + resolution: {integrity: sha512-EXOjEbnZFE5c/nFMf4FOrEURVanzHpnkPYmnmr78u02/8hAhE0FMq8p9TK1IM0/bFr5VcyBUY0gfLm8f7dKy+Q==} + engines: {node: '>=20'} - '@xhmikosr/bin-check@7.0.3': - resolution: {integrity: sha512-4UnCLCs8DB+itHJVkqFp9Zjg+w/205/J2j2wNBsCEAm/BuBmtua2hhUOdAMQE47b1c7P9Xmddj0p+X1XVsfHsA==} - engines: {node: '>=18'} + '@xhmikosr/bin-check@8.2.1': + resolution: {integrity: sha512-DNruLq+kalxcE7JeDxtqrN9kyWjLW8VqsQPLRTwD1t9ck/1rF4qBL0mX5Fe2/xLOMjo5wPb67BNX2kSAhzfLjA==} + engines: {node: '>=20'} - '@xhmikosr/bin-wrapper@13.0.5': - resolution: {integrity: sha512-DT2SAuHDeOw0G5bs7wZbQTbf4hd8pJ14tO0i4cWhRkIJfgRdKmMfkDilpaJ8uZyPA0NVRwasCNAmMJcWA67osw==} - engines: {node: '>=18'} + '@xhmikosr/bin-wrapper@14.3.0': + resolution: {integrity: sha512-rDYWjJ/xmH2vhcGUj6ZdUBmJghKPAlQNhzQY2LxI/6CTE2W/TMhnnrTlpET3TfYql6koTYD2sUiO/t9ew1JaCQ==} + engines: {node: '>=20'} - '@xhmikosr/decompress-tar@8.0.1': - resolution: {integrity: sha512-dpEgs0cQKJ2xpIaGSO0hrzz3Kt8TQHYdizHsgDtLorWajuHJqxzot9Hbi0huRxJuAGG2qiHSQkwyvHHQtlE+fg==} - engines: {node: '>=18'} + '@xhmikosr/decompress-tar@9.0.1': + resolution: {integrity: sha512-4AkVR1SoqTxYY22IRRYKDeLirPIDGqMqYsqgjKYuwhgRcBb+yDP4t5Xph33UCzL/nahK/aADmlMEjTNstbX7kw==} + engines: {node: '>=20'} - '@xhmikosr/decompress-tarbz2@8.0.1': - resolution: {integrity: sha512-OF+6DysDZP5YTDO8uHuGG6fMGZjc+HszFPBkVltjoje2Cf60hjBg/YP5OQndW1hfwVWOdP7f3CnJiPZHJUTtEg==} - engines: {node: '>=18'} + '@xhmikosr/decompress-tarbz2@9.0.2': + resolution: {integrity: sha512-m0DvZhE7remCxtS8xY2iHSjivT4v+iyYDdfNoeuu8Nm+7g8xEXdLKSyDEicu4u1ImJLLGEfjMuTLera/F6UGWw==} + engines: {node: '>=20'} - '@xhmikosr/decompress-targz@8.0.1': - resolution: {integrity: sha512-mvy5AIDIZjQ2IagMI/wvauEiSNHhu/g65qpdM4EVoYHUJBAmkQWqcPJa8Xzi1aKVTmOA5xLJeDk7dqSjlHq8Mg==} - engines: {node: '>=18'} + '@xhmikosr/decompress-targz@9.0.1': + resolution: {integrity: sha512-1JXu2b6yrpm5EuBoOzMU57B4qrHXJKWQQ7LlMynNEiz85mEjDciO3ayf//GXaTLLCEKiHjWlU3q3THjgf7uODA==} + engines: {node: '>=20'} - '@xhmikosr/decompress-unzip@7.0.0': - resolution: {integrity: sha512-GQMpzIpWTsNr6UZbISawsGI0hJ4KA/mz5nFq+cEoPs12UybAqZWKbyIaZZyLbJebKl5FkLpsGBkrplJdjvUoSQ==} - engines: {node: '>=18'} + '@xhmikosr/decompress-unzip@8.2.0': + resolution: {integrity: sha512-ciiD6OsxR053GE6Bs72NBVGkm1oZoES06gTfMnm4xRtZUbN1IKDE/EbuBL4tYrMrzX1ZgjNlxcQ1WgL+/CGZcQ==} + engines: {node: '>=20'} - '@xhmikosr/decompress@10.0.1': - resolution: {integrity: sha512-6uHnEEt5jv9ro0CDzqWlFgPycdE+H+kbJnwyxgZregIMLQ7unQSCNVsYG255FoqU8cP46DyggI7F7LohzEl8Ag==} - engines: {node: '>=18'} + '@xhmikosr/decompress@11.1.3': + resolution: {integrity: sha512-NiyhJq6z7ERsYghcnXZUI6ooDXgZtoB+G9eUsYhfSM4VLp2rKx9UxhKI1NEf1PqosrNPxG3bnSsr2UBVbNurlg==} + engines: {node: '>=20'} - '@xhmikosr/downloader@15.0.1': - resolution: {integrity: sha512-fiuFHf3Dt6pkX8HQrVBsK0uXtkgkVlhrZEh8b7VgoDqFf+zrgFBPyrwCqE/3nDwn3hLeNz+BsrS7q3mu13Lp1g==} - engines: {node: '>=18'} + '@xhmikosr/downloader@16.2.0': + resolution: {integrity: sha512-5vFLFTOFdDyuPJ6DDaqFPviMnMLrjWvpvbTp+go+JDoyzUBLd4dTjb+1PXIRiUMvJSvlxjpC8GIVN8mYVhQfhg==} + engines: {node: '>=20'} - '@xhmikosr/os-filter-obj@3.0.0': - resolution: {integrity: sha512-siPY6BD5dQ2SZPl3I0OZBHL27ZqZvLEosObsZRQ1NUB8qcxegwt0T9eKtV96JMFQpIz1elhkzqOg4c/Ri6Dp9A==} - engines: {node: ^14.14.0 || >=16.0.0} + '@xhmikosr/os-filter-obj@4.1.0': + resolution: {integrity: sha512-y5ArHvQ7BVule/+L9yE2nYMhceiJhgsqo58lOfnisQ7bg+Kjfmkgr7JBuVFiTkl+ErdShpp829QstZQyLugl8g==} + engines: {node: '>=20'} '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -4545,9 +4679,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - arch@3.0.0: - resolution: {integrity: sha512-AmIAC+Wtm2AU8lGfTtHsw0Y9Qtftx2YXEEtiBP10xFUtMOA+sHHx6OAddyL52mUKh1vsXQ6/w1mVDptZCyUt4Q==} - arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -4665,8 +4796,13 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + b4a@1.8.1: + resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} @@ -4725,8 +4861,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - bare-events@2.8.0: - resolution: {integrity: sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==} + bare-events@2.9.1: + resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==} peerDependencies: bare-abort-controller: '*' peerDependenciesMeta: @@ -4751,18 +4887,18 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - bin-version-check@5.1.0: - resolution: {integrity: sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==} - engines: {node: '>=12'} - - bin-version@6.0.0: - resolution: {integrity: sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==} - engines: {node: '>=12'} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + binary-version-check@6.1.0: + resolution: {integrity: sha512-REKdLKmuViV2WrtWXvNSiPX04KbIjfUV3Cy8batUeOg+FtmowavzJorfFhWq95cVJzINnL/44ixP26TrdJZACA==} + engines: {node: '>=18'} + + binary-version@7.1.0: + resolution: {integrity: sha512-Iy//vPc3ANPNlIWd242Npqc8MK0a/i4kVcHDlDA6HNMv5zMxz4ulIFhOSYJVKw/8AbHdHy0CnGYEt1QqSXxPsw==} + engines: {node: '>=18'} + body-parser@1.20.4: resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -4787,13 +4923,17 @@ packages: brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.1.1: + resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} brace-expansion@5.0.3: resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -4816,9 +4956,6 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - buffer-from@0.1.2: resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==} @@ -4839,6 +4976,10 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} + byte-counter@0.1.0: + resolution: {integrity: sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ==} + engines: {node: '>=20'} + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -4855,9 +4996,9 @@ packages: resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} engines: {node: '>=14.16'} - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} + cacheable-request@13.0.19: + resolution: {integrity: sha512-SVXGH037+Mo1aIMO5B2UcleR43FGjFdN+M8JObSyEoQ2Mn4CODRWx28gN5jiTF0n5ItsgtIZfyargMNs8GX4kg==} + engines: {node: '>=18'} cacheable@2.3.4: resolution: {integrity: sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==} @@ -5113,10 +5254,18 @@ packages: resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} engines: {node: '>=18'} + content-disposition@2.0.1: + resolution: {integrity: sha512-e+H0ZXHSWYrENhQzw1LPuP4oF5MzVKmDU6d3hxlvaPEYLLg62MxtQNPRx4SYSuYJSBUgnQIG4HIN2tEtNv7Dog==} + engines: {node: '>=18'} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -5337,9 +5486,9 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + decompress-response@10.0.0: + resolution: {integrity: sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==} + engines: {node: '>=20'} dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -5371,14 +5520,6 @@ packages: resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} engines: {node: '>=18'} - defaults@3.0.0: - resolution: {integrity: sha512-RsqXDEAALjfRTro+IFNKpcPCt0/Cy2FqHSIlnomiJp9YGadpQnrtbRpSgN2+np21qHcIKiva4fiOQGjS9/qR/A==} - engines: {node: '>=18'} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -5842,6 +5983,9 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -5854,6 +5998,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + execa@9.6.1: + resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} + engines: {node: ^18.19.0 || >=20.5.0} + exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -5947,6 +6095,10 @@ packages: fflate@0.8.1: resolution: {integrity: sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==} + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-entry-cache@11.1.2: resolution: {integrity: sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==} @@ -5954,17 +6106,17 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - file-type@19.6.0: - resolution: {integrity: sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==} - engines: {node: '>=18'} + file-type@21.3.4: + resolution: {integrity: sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==} + engines: {node: '>=20'} - filename-reserved-regex@3.0.0: - resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + filename-reserved-regex@4.0.0: + resolution: {integrity: sha512-9ZT504KxEQDamsOogZImAWGEN24R1uFAxU3ZS4AZqn2ooidmN68Olh7n4/RcA4lLatZztjA0ZSuxeLHVoCc8JA==} + engines: {node: '>=20'} - filenamify@6.0.0: - resolution: {integrity: sha512-vqIlNogKeyD3yzrm0yhRMQg8hOVwYcYRfjEoODd49iCprMn4HL85gK3HcykQE53EPIpX3HcAbGA5ELQv216dAQ==} - engines: {node: '>=16'} + filenamify@7.0.1: + resolution: {integrity: sha512-9b4rfnaX2MkJCgp27wypV6DAMvj4WMOSgJ+TdcpJIO84Dql+Cv6iJjdG4XDTLubOWkfNiBv3joO59sau/TXw+Q==} + engines: {node: '>=20'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -5997,9 +6149,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-versions@5.1.0: - resolution: {integrity: sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==} - engines: {node: '>=12'} + find-versions@6.0.0: + resolution: {integrity: sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==} + engines: {node: '>=18'} find@0.3.0: resolution: {integrity: sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==} @@ -6042,9 +6194,9 @@ packages: typescript: '>3.6.0' webpack: ^5.11.0 - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} + form-data-encoder@4.1.0: + resolution: {integrity: sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==} + engines: {node: '>= 18'} form-data@4.0.4: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} @@ -6093,6 +6245,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function-timeout@1.0.2: + resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} + engines: {node: '>=18'} + function.prototype.name@1.1.8: resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} @@ -6220,9 +6376,9 @@ packages: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} - got@13.0.0: - resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} - engines: {node: '>=16'} + got@14.6.6: + resolution: {integrity: sha512-QLV1qeYSo5l13mQzWgP/y0LbMr5Plr5fJilgAIwgnwseproEbtNym8xpLsDzeZ6MWXgNE6kdWGBjdh3zT/Qerg==} + engines: {node: '>=20'} graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -6385,8 +6541,8 @@ packages: htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} http-deceiver@1.2.7: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} @@ -6443,6 +6599,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + human-signals@8.0.1: + resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} + engines: {node: '>=18.18.0'} + husky@9.1.7: resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} @@ -6724,6 +6884,10 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -6752,6 +6916,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -7140,6 +7308,10 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + make-asynchronous@1.1.0: + resolution: {integrity: sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==} + engines: {node: '>=18'} + make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -7316,10 +7488,6 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - mimic-response@4.0.0: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7339,6 +7507,10 @@ packages: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} @@ -7408,19 +7580,12 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - nice-napi@1.0.2: - resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} - os: ['!win32'] - no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-addon-api@3.2.1: - resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -7430,10 +7595,6 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} - hasBin: true - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -7455,8 +7616,8 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-url@8.0.1: - resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + normalize-url@8.1.1: + resolution: {integrity: sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==} engines: {node: '>=14.16'} npm-run-path@4.0.1: @@ -7467,6 +7628,10 @@ packages: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -7553,9 +7718,9 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} + p-cancelable@4.0.1: + resolution: {integrity: sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==} + engines: {node: '>=14.16'} p-event@6.0.1: resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==} @@ -7616,6 +7781,10 @@ packages: resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} engines: {node: '>=18'} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + parse-path@7.1.0: resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} @@ -7683,10 +7852,6 @@ packages: resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} - peek-readable@5.3.1: - resolution: {integrity: sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==} - engines: {node: '>=14.16'} - pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} @@ -7710,8 +7875,8 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - piscina@4.3.1: - resolution: {integrity: sha512-MBj0QYm3hJQ/C/wIXTN1OCYC8uQ4BBJ4LVele2P4ZwVQAH04vkk8E1SpDbuemLAL1dZorbuOob9rYqJeWCcCRg==} + piscina@4.9.2: + resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==} pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} @@ -7832,6 +7997,10 @@ packages: pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} + pretty-ms@9.3.0: + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} + engines: {node: '>=18'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -7890,9 +8059,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -8093,9 +8259,9 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} + responselike@4.0.2: + resolution: {integrity: sha512-cGk8IbWEAnaCpdAt1BHzJ3Ahz5ewDJa0KseTsE3qIRMJ3C698W8psM7byCeWVpd/Ha7FUYzuRVzXoKoM6nRUbA==} + engines: {node: '>=20'} restore-cursor@4.0.0: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} @@ -8248,6 +8414,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.4: + resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} + engines: {node: '>=10'} + hasBin: true + send@0.19.2: resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} engines: {node: '>= 0.8.0'} @@ -8450,8 +8621,8 @@ packages: resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} engines: {node: '>=8.0'} - streamx@2.21.0: - resolution: {integrity: sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==} + streamx@2.27.0: + resolution: {integrity: sha512-WZ189TKnHoAokYHvwzaAQMpd55cgUmFIcJFzBSgGcb886jau5DL+XdDhTWV4ps3FLvk+OORp0dLRTPsLZ21CSA==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -8531,6 +8702,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -8549,9 +8724,9 @@ packages: strnum@2.3.0: resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} - strtok3@9.1.1: - resolution: {integrity: sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==} - engines: {node: '>=16'} + strtok3@10.3.5: + resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} + engines: {node: '>=18'} style-loader@4.0.0: resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} @@ -8573,6 +8748,10 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + super-regex@1.1.0: + resolution: {integrity: sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==} + engines: {node: '>=18'} + superstruct@2.0.2: resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} engines: {node: '>=14.0.0'} @@ -8638,6 +8817,10 @@ packages: resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} + system-architecture@1.0.0: + resolution: {integrity: sha512-0OJWD12D7XX3KUg1DYkMaTTjSTo2k/mhIYI3HlBlceXSMcJhW/1qO735fPKS5prcyjvn57Ub151vvASYXpQrEw==} + engines: {node: '>=18'} + table@6.9.0: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} @@ -8678,8 +8861,8 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - text-decoder@1.2.2: - resolution: {integrity: sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==} + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} thingies@2.5.0: resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} @@ -8696,17 +8879,21 @@ packages: thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -8736,8 +8923,8 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - token-types@6.0.0: - resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==} + token-types@6.1.2: + resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} totalist@3.0.1: @@ -8914,8 +9101,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - uint8array-extras@1.4.0: - resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} unbox-primitive@1.1.0: @@ -8944,6 +9131,10 @@ packages: resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unicorn-magic@0.4.0: resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} engines: {node: '>=20'} @@ -9138,6 +9329,9 @@ packages: web-vitals@4.2.3: resolution: {integrity: sha512-/CFAm1mNxSmOj6i0Co+iGFJ58OS4NRGVP+AWS/l509uIK5a1bSoIVaHz/ZumpHTfHSZBpgrJ+wjfpAOrTHok5Q==} + web-worker@1.5.0: + resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==} + webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -9411,8 +9605,8 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yauzl@3.2.0: - resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==} + yauzl@3.4.0: + resolution: {integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==} engines: {node: '>=12'} yn@3.1.1: @@ -9423,6 +9617,10 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + zimmerframe@1.1.4: resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} @@ -11176,6 +11374,8 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@borewit/text-codec@0.2.2': {} + '@braze/web-sdk@6.5.0': {} '@cacheable/memory@2.0.8': @@ -11862,7 +12062,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -11876,7 +12076,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12119,6 +12319,78 @@ snapshots: '@types/react': 18.3.1 react: 18.3.1 + '@napi-rs/nice-android-arm-eabi@1.1.1': + optional: true + + '@napi-rs/nice-android-arm64@1.1.1': + optional: true + + '@napi-rs/nice-darwin-arm64@1.1.1': + optional: true + + '@napi-rs/nice-darwin-x64@1.1.1': + optional: true + + '@napi-rs/nice-freebsd-x64@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm-gnueabihf@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-arm64-musl@1.1.1': + optional: true + + '@napi-rs/nice-linux-ppc64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-riscv64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-s390x-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-x64-gnu@1.1.1': + optional: true + + '@napi-rs/nice-linux-x64-musl@1.1.1': + optional: true + + '@napi-rs/nice-openharmony-arm64@1.1.1': + optional: true + + '@napi-rs/nice-win32-arm64-msvc@1.1.1': + optional: true + + '@napi-rs/nice-win32-ia32-msvc@1.1.1': + optional: true + + '@napi-rs/nice-win32-x64-msvc@1.1.1': + optional: true + + '@napi-rs/nice@1.1.1': + optionalDependencies: + '@napi-rs/nice-android-arm-eabi': 1.1.1 + '@napi-rs/nice-android-arm64': 1.1.1 + '@napi-rs/nice-darwin-arm64': 1.1.1 + '@napi-rs/nice-darwin-x64': 1.1.1 + '@napi-rs/nice-freebsd-x64': 1.1.1 + '@napi-rs/nice-linux-arm-gnueabihf': 1.1.1 + '@napi-rs/nice-linux-arm64-gnu': 1.1.1 + '@napi-rs/nice-linux-arm64-musl': 1.1.1 + '@napi-rs/nice-linux-ppc64-gnu': 1.1.1 + '@napi-rs/nice-linux-riscv64-gnu': 1.1.1 + '@napi-rs/nice-linux-s390x-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-gnu': 1.1.1 + '@napi-rs/nice-linux-x64-musl': 1.1.1 + '@napi-rs/nice-openharmony-arm64': 1.1.1 + '@napi-rs/nice-win32-arm64-msvc': 1.1.1 + '@napi-rs/nice-win32-ia32-msvc': 1.1.1 + '@napi-rs/nice-win32-x64-msvc': 1.1.1 + optional: true + '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.10.0 @@ -12466,7 +12738,9 @@ snapshots: '@sinclair/typebox@0.34.41': {} - '@sindresorhus/is@5.6.0': {} + '@sindresorhus/is@7.2.0': {} + + '@sindresorhus/merge-streams@4.0.0': {} '@sinonjs/commons@3.0.0': dependencies: @@ -12889,14 +13163,14 @@ snapshots: '@storybook/addon-webpack5-compiler-swc@4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1)': dependencies: - '@swc/core': 1.13.5 + '@swc/core': 1.15.41 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - swc-loader: 0.2.6(@swc/core@1.13.5)(webpack@5.104.1) + swc-loader: 0.2.6(@swc/core@1.15.41)(webpack@5.104.1) transitivePeerDependencies: - '@swc/helpers' - webpack - '@storybook/builder-webpack5@10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) case-sensitive-paths-webpack-plugin: 2.4.0 @@ -12908,9 +13182,9 @@ snapshots: magic-string: 0.30.21 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) style-loader: 4.0.0(webpack@5.104.1) - terser-webpack-plugin: 5.4.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack@5.104.1) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack@5.104.1) ts-dedent: 2.2.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-dev-middleware: 6.1.3(webpack@5.104.1) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 @@ -12936,7 +13210,7 @@ snapshots: esbuild: 0.27.3 rollup: 4.60.1 vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) '@storybook/global@5.0.0': {} @@ -12945,7 +13219,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/preset-react-webpack@10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.104.1) @@ -12955,10 +13229,10 @@ snapshots: react-docgen: 7.1.1 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.12 - semver: 7.8.1 + semver: 7.8.4 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tsconfig-paths: 4.2.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -12978,7 +13252,7 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@5.9.3) tslib: 2.8.1 typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color @@ -12988,10 +13262,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-webpack5@10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: - '@storybook/builder-webpack5': 10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) - '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.13.5)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) '@storybook/react': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13170,86 +13444,90 @@ snapshots: - supports-color - typescript - '@swc/cli@0.7.8(@swc/core@1.13.5)(chokidar@4.0.3)': + '@swc/cli@0.8.1(@swc/core@1.15.41)': dependencies: - '@swc/core': 1.13.5 + '@swc/core': 1.15.41 '@swc/counter': 0.1.3 - '@xhmikosr/bin-wrapper': 13.0.5 + '@xhmikosr/bin-wrapper': 14.3.0 commander: 8.3.0 minimatch: 9.0.9 - piscina: 4.3.1 + piscina: 4.9.2 semver: 7.5.4 slash: 3.0.0 source-map: 0.7.4 - tinyglobby: 0.2.15 - optionalDependencies: - chokidar: 4.0.3 + tinyglobby: 0.2.17 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a + - supports-color + + '@swc/core-darwin-arm64@1.15.41': + optional: true + + '@swc/core-darwin-x64@1.15.41': + optional: true - '@swc/core-darwin-arm64@1.13.5': + '@swc/core-linux-arm-gnueabihf@1.15.41': optional: true - '@swc/core-darwin-x64@1.13.5': + '@swc/core-linux-arm64-gnu@1.15.41': optional: true - '@swc/core-linux-arm-gnueabihf@1.13.5': + '@swc/core-linux-arm64-musl@1.15.41': optional: true - '@swc/core-linux-arm64-gnu@1.13.5': + '@swc/core-linux-ppc64-gnu@1.15.41': optional: true - '@swc/core-linux-arm64-musl@1.13.5': + '@swc/core-linux-s390x-gnu@1.15.41': optional: true - '@swc/core-linux-x64-gnu@1.13.5': + '@swc/core-linux-x64-gnu@1.15.41': optional: true - '@swc/core-linux-x64-musl@1.13.5': + '@swc/core-linux-x64-musl@1.15.41': optional: true - '@swc/core-win32-arm64-msvc@1.13.5': + '@swc/core-win32-arm64-msvc@1.15.41': optional: true - '@swc/core-win32-ia32-msvc@1.13.5': + '@swc/core-win32-ia32-msvc@1.15.41': optional: true - '@swc/core-win32-x64-msvc@1.13.5': + '@swc/core-win32-x64-msvc@1.15.41': optional: true - '@swc/core@1.13.5': + '@swc/core@1.15.41': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.25 + '@swc/types': 0.1.26 optionalDependencies: - '@swc/core-darwin-arm64': 1.13.5 - '@swc/core-darwin-x64': 1.13.5 - '@swc/core-linux-arm-gnueabihf': 1.13.5 - '@swc/core-linux-arm64-gnu': 1.13.5 - '@swc/core-linux-arm64-musl': 1.13.5 - '@swc/core-linux-x64-gnu': 1.13.5 - '@swc/core-linux-x64-musl': 1.13.5 - '@swc/core-win32-arm64-msvc': 1.13.5 - '@swc/core-win32-ia32-msvc': 1.13.5 - '@swc/core-win32-x64-msvc': 1.13.5 + '@swc/core-darwin-arm64': 1.15.41 + '@swc/core-darwin-x64': 1.15.41 + '@swc/core-linux-arm-gnueabihf': 1.15.41 + '@swc/core-linux-arm64-gnu': 1.15.41 + '@swc/core-linux-arm64-musl': 1.15.41 + '@swc/core-linux-ppc64-gnu': 1.15.41 + '@swc/core-linux-s390x-gnu': 1.15.41 + '@swc/core-linux-x64-gnu': 1.15.41 + '@swc/core-linux-x64-musl': 1.15.41 + '@swc/core-win32-arm64-msvc': 1.15.41 + '@swc/core-win32-ia32-msvc': 1.15.41 + '@swc/core-win32-x64-msvc': 1.15.41 '@swc/counter@0.1.3': {} - '@swc/jest@0.2.39(@swc/core@1.13.5)': + '@swc/jest@0.2.39(@swc/core@1.15.41)': dependencies: '@jest/create-cache-key-function': 30.2.0 - '@swc/core': 1.13.5 + '@swc/core': 1.15.41 '@swc/counter': 0.1.3 jsonc-parser: 3.2.0 - '@swc/types@0.1.25': + '@swc/types@0.1.26': dependencies: '@swc/counter': 0.1.3 - '@szmarczak/http-timer@5.0.1': - dependencies: - defer-to-connect: 2.0.1 - '@testing-library/dom@10.4.1': dependencies: '@babel/code-frame': 7.29.0 @@ -13284,6 +13562,13 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 + '@tokenizer/inflate@0.4.1': + dependencies: + debug: 4.4.3 + token-types: 6.1.2 + transitivePeerDependencies: + - supports-color + '@tokenizer/token@0.3.0': {} '@tootallnate/once@2.0.1': {} @@ -13426,7 +13711,7 @@ snapshots: '@types/html-minifier-terser@7.0.2': {} - '@types/http-cache-semantics@4.0.4': {} + '@types/http-cache-semantics@4.2.0': {} '@types/http-errors@2.0.5': {} @@ -13580,11 +13865,11 @@ snapshots: '@types/unist@3.0.3': {} - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1)': + '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1)': dependencies: '@types/node': 24.12.4 tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13593,10 +13878,10 @@ snapshots: '@types/webpack-env@1.18.8': {} - '@types/webpack-node-externals@3.0.4(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1)': + '@types/webpack-node-externals@3.0.4(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1)': dependencies: '@types/node': 24.12.4 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13684,9 +13969,9 @@ snapshots: '@typescript-eslint/types': 8.57.1 '@typescript-eslint/visitor-keys': 8.57.1 debug: 4.4.3 - minimatch: 10.2.4 - semver: 7.8.1 - tinyglobby: 0.2.16 + minimatch: 10.2.5 + semver: 7.8.4 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -13869,100 +14154,112 @@ snapshots: '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) '@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack-dev-server@5.2.4)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) optionalDependencies: webpack-dev-server: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) - '@xhmikosr/archive-type@7.0.0': + '@xhmikosr/archive-type@8.1.0': dependencies: - file-type: 19.6.0 + file-type: 21.3.4 + transitivePeerDependencies: + - supports-color - '@xhmikosr/bin-check@7.0.3': + '@xhmikosr/bin-check@8.2.1': dependencies: - execa: 5.1.1 - isexe: 2.0.0 + execa: 9.6.1 + isexe: 4.0.0 - '@xhmikosr/bin-wrapper@13.0.5': + '@xhmikosr/bin-wrapper@14.3.0': dependencies: - '@xhmikosr/bin-check': 7.0.3 - '@xhmikosr/downloader': 15.0.1 - '@xhmikosr/os-filter-obj': 3.0.0 - bin-version-check: 5.1.0 + '@xhmikosr/bin-check': 8.2.1 + '@xhmikosr/downloader': 16.2.0 + '@xhmikosr/os-filter-obj': 4.1.0 + binary-version-check: 6.1.0 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a + - supports-color - '@xhmikosr/decompress-tar@8.0.1': + '@xhmikosr/decompress-tar@9.0.1': dependencies: - file-type: 19.6.0 - is-stream: 2.0.1 + file-type: 21.3.4 + is-stream: 4.0.1 tar-stream: 3.1.7 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a + - supports-color - '@xhmikosr/decompress-tarbz2@8.0.1': + '@xhmikosr/decompress-tarbz2@9.0.2': dependencies: - '@xhmikosr/decompress-tar': 8.0.1 - file-type: 19.6.0 - is-stream: 2.0.1 + '@xhmikosr/decompress-tar': 9.0.1 + file-type: 21.3.4 + is-stream: 4.0.1 seek-bzip: 2.0.0 unbzip2-stream: 1.4.3 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a + - supports-color - '@xhmikosr/decompress-targz@8.0.1': + '@xhmikosr/decompress-targz@9.0.1': dependencies: - '@xhmikosr/decompress-tar': 8.0.1 - file-type: 19.6.0 - is-stream: 2.0.1 + '@xhmikosr/decompress-tar': 9.0.1 + file-type: 21.3.4 + is-stream: 4.0.1 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a + - supports-color - '@xhmikosr/decompress-unzip@7.0.0': + '@xhmikosr/decompress-unzip@8.2.0': dependencies: - file-type: 19.6.0 - get-stream: 6.0.1 - yauzl: 3.2.0 + file-type: 21.3.4 + yauzl: 3.4.0 + transitivePeerDependencies: + - supports-color - '@xhmikosr/decompress@10.0.1': + '@xhmikosr/decompress@11.1.3': dependencies: - '@xhmikosr/decompress-tar': 8.0.1 - '@xhmikosr/decompress-tarbz2': 8.0.1 - '@xhmikosr/decompress-targz': 8.0.1 - '@xhmikosr/decompress-unzip': 7.0.0 + '@xhmikosr/decompress-tar': 9.0.1 + '@xhmikosr/decompress-tarbz2': 9.0.2 + '@xhmikosr/decompress-targz': 9.0.1 + '@xhmikosr/decompress-unzip': 8.2.0 graceful-fs: 4.2.11 - make-dir: 4.0.0 strip-dirs: 3.0.0 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a + - supports-color - '@xhmikosr/downloader@15.0.1': + '@xhmikosr/downloader@16.2.0': dependencies: - '@xhmikosr/archive-type': 7.0.0 - '@xhmikosr/decompress': 10.0.1 - content-disposition: 0.5.4 - defaults: 3.0.0 + '@xhmikosr/archive-type': 8.1.0 + '@xhmikosr/decompress': 11.1.3 + content-disposition: 2.0.1 ext-name: 5.0.0 - file-type: 19.6.0 - filenamify: 6.0.0 - get-stream: 6.0.1 - got: 13.0.0 + file-type: 21.3.4 + filenamify: 7.0.1 + got: 14.6.6 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a + - supports-color - '@xhmikosr/os-filter-obj@3.0.0': + '@xhmikosr/os-filter-obj@4.1.0': dependencies: - arch: 3.0.0 + system-architecture: 1.0.0 '@xtuc/ieee754@1.2.0': {} @@ -14066,8 +14363,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 - arch@3.0.0: {} - arg@4.1.3: {} argparse@1.0.10: @@ -14182,7 +14477,7 @@ snapshots: axobject-query@4.1.0: {} - b4a@1.6.7: {} + b4a@1.8.1: {} babel-jest@29.7.0(@babel/core@7.29.0): dependencies: @@ -14274,8 +14569,7 @@ snapshots: balanced-match@4.0.4: {} - bare-events@2.8.0: - optional: true + bare-events@2.9.1: {} base64-js@1.5.1: {} @@ -14287,18 +14581,18 @@ snapshots: big.js@5.2.2: {} - bin-version-check@5.1.0: + binary-extensions@2.3.0: {} + + binary-version-check@6.1.0: dependencies: - bin-version: 6.0.0 - semver: 7.5.4 + binary-version: 7.1.0 + semver: 7.8.4 semver-truncate: 3.0.0 - bin-version@6.0.0: + binary-version@7.1.0: dependencies: - execa: 5.1.1 - find-versions: 5.1.0 - - binary-extensions@2.3.0: {} + execa: 8.0.1 + find-versions: 6.0.0 body-parser@1.20.4: dependencies: @@ -14362,7 +14656,7 @@ snapshots: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.1.1: dependencies: balanced-match: 1.0.2 @@ -14370,6 +14664,10 @@ snapshots: dependencies: balanced-match: 4.0.4 + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -14401,8 +14699,6 @@ snapshots: dependencies: node-int64: 0.4.0 - buffer-crc32@0.2.13: {} - buffer-from@0.1.2: {} buffer-from@1.1.2: {} @@ -14423,6 +14719,8 @@ snapshots: dependencies: run-applescript: 7.1.0 + byte-counter@0.1.0: {} + bytes@3.0.0: {} bytes@3.1.2: {} @@ -14431,15 +14729,15 @@ snapshots: cacheable-lookup@7.0.0: {} - cacheable-request@10.2.14: + cacheable-request@13.0.19: dependencies: - '@types/http-cache-semantics': 4.0.4 - get-stream: 6.0.1 - http-cache-semantics: 4.1.1 - keyv: 4.5.4 + '@types/http-cache-semantics': 4.2.0 + get-stream: 9.0.1 + http-cache-semantics: 4.2.0 + keyv: 5.6.0 mimic-response: 4.0.0 - normalize-url: 8.0.1 - responselike: 3.0.0 + normalize-url: 8.1.1 + responselike: 4.0.2 cacheable@2.3.4: dependencies: @@ -14673,8 +14971,12 @@ snapshots: content-disposition@1.0.1: {} + content-disposition@2.0.1: {} + content-type@1.0.5: {} + convert-hrtime@5.0.0: {} + convert-source-map@1.9.0: {} convert-source-map@2.0.0: {} @@ -14737,13 +15039,13 @@ snapshots: p-filter: 3.0.0 p-map: 6.0.0 - create-jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)): + create-jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -14773,7 +15075,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.5.4 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) css-select@4.3.0: dependencies: @@ -14894,9 +15196,9 @@ snapshots: dependencies: character-entities: 2.0.2 - decompress-response@6.0.0: + decompress-response@10.0.0: dependencies: - mimic-response: 3.1.0 + mimic-response: 4.0.0 dedent@0.7.0: {} @@ -14917,10 +15219,6 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.1 - defaults@3.0.0: {} - - defer-to-connect@2.0.1: {} - define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -15595,6 +15893,12 @@ snapshots: eventemitter3@5.0.1: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.9.1 + transitivePeerDependencies: + - bare-abort-controller + events@3.3.0: {} execa@5.1.1: @@ -15621,6 +15925,21 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + execa@9.6.1: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.3.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.2 + exit@0.1.2: {} expect@29.7.0: @@ -15776,6 +16095,10 @@ snapshots: fflate@0.8.1: {} + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + file-entry-cache@11.1.2: dependencies: flat-cache: 6.1.21 @@ -15784,18 +16107,20 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-type@19.6.0: + file-type@21.3.4: dependencies: - get-stream: 9.0.1 - strtok3: 9.1.1 - token-types: 6.0.0 - uint8array-extras: 1.4.0 + '@tokenizer/inflate': 0.4.1 + strtok3: 10.3.5 + token-types: 6.1.2 + uint8array-extras: 1.5.0 + transitivePeerDependencies: + - supports-color - filename-reserved-regex@3.0.0: {} + filename-reserved-regex@4.0.0: {} - filenamify@6.0.0: + filenamify@7.0.1: dependencies: - filename-reserved-regex: 3.0.0 + filename-reserved-regex: 4.0.0 fill-range@7.1.1: dependencies: @@ -15844,9 +16169,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-versions@5.1.0: + find-versions@6.0.0: dependencies: semver-regex: 4.0.5 + super-regex: 1.1.0 find@0.3.0: dependencies: @@ -15894,9 +16220,9 @@ snapshots: semver: 7.5.4 tapable: 2.3.0 typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) - form-data-encoder@2.1.4: {} + form-data-encoder@4.1.0: {} form-data@4.0.4: dependencies: @@ -15940,6 +16266,8 @@ snapshots: function-bind@1.1.2: {} + function-timeout@1.0.2: {} + function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 @@ -16078,19 +16406,20 @@ snapshots: gopd@1.2.0: {} - got@13.0.0: + got@14.6.6: dependencies: - '@sindresorhus/is': 5.6.0 - '@szmarczak/http-timer': 5.0.1 + '@sindresorhus/is': 7.2.0 + byte-counter: 0.1.0 cacheable-lookup: 7.0.0 - cacheable-request: 10.2.14 - decompress-response: 6.0.0 - form-data-encoder: 2.1.4 - get-stream: 6.0.1 + cacheable-request: 13.0.19 + decompress-response: 10.0.0 + form-data-encoder: 4.1.0 http2-wrapper: 2.2.1 + keyv: 5.6.0 lowercase-keys: 3.0.0 - p-cancelable: 3.0.0 - responselike: 3.0.0 + p-cancelable: 4.0.1 + responselike: 4.0.2 + type-fest: 4.41.0 graceful-fs@4.2.11: {} @@ -16293,7 +16622,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) htmlparser2@10.1.0: dependencies: @@ -16309,7 +16638,7 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 - http-cache-semantics@4.1.1: {} + http-cache-semantics@4.2.0: {} http-deceiver@1.2.7: {} @@ -16389,6 +16718,8 @@ snapshots: human-signals@5.0.0: {} + human-signals@8.0.1: {} + husky@9.1.7: {} hyperdyperid@1.2.0: {} @@ -16493,7 +16824,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.8.1 + semver: 7.8.4 is-callable@1.2.7: {} @@ -16629,6 +16960,8 @@ snapshots: dependencies: which-typed-array: 1.1.19 + is-unicode-supported@2.1.0: {} + is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -16652,6 +16985,8 @@ snapshots: isexe@2.0.0: {} + isexe@4.0.0: {} + isobject@3.0.1: {} istanbul-lib-coverage@3.2.2: {} @@ -16736,16 +17071,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + create-jest: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -16755,7 +17090,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): dependencies: '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 @@ -16781,7 +17116,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 24.12.4 - ts-node: 10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -17024,12 +17359,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)): + jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -17291,6 +17626,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + make-asynchronous@1.1.0: + dependencies: + p-event: 6.0.1 + type-fest: 4.41.0 + web-worker: 1.5.0 + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -17538,8 +17879,6 @@ snapshots: mimic-fn@4.0.0: {} - mimic-response@3.1.0: {} - mimic-response@4.0.0: {} min-indent@1.0.1: {} @@ -17552,13 +17891,17 @@ snapshots: dependencies: brace-expansion: 5.0.3 + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.6 + minimatch@3.1.5: dependencies: brace-expansion: 1.1.12 minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.1.1 minimist@1.2.8: {} @@ -17600,12 +17943,6 @@ snapshots: neo-async@2.6.2: {} - nice-napi@1.0.2: - dependencies: - node-addon-api: 3.2.1 - node-gyp-build: 4.8.0 - optional: true - no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -17613,9 +17950,6 @@ snapshots: node-abort-controller@3.1.1: {} - node-addon-api@3.2.1: - optional: true - node-domexception@1.0.0: {} node-fetch@3.3.2: @@ -17624,9 +17958,6 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-gyp-build@4.8.0: - optional: true - node-int64@0.4.0: {} node-releases@2.0.27: {} @@ -17648,7 +17979,7 @@ snapshots: normalize-path@3.0.0: {} - normalize-url@8.0.1: {} + normalize-url@8.1.1: {} npm-run-path@4.0.1: dependencies: @@ -17658,6 +17989,11 @@ snapshots: dependencies: path-key: 4.0.0 + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -17752,7 +18088,7 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - p-cancelable@3.0.0: {} + p-cancelable@4.0.1: {} p-event@6.0.1: dependencies: @@ -17816,6 +18152,8 @@ snapshots: index-to-position: 1.2.0 type-fest: 4.41.0 + parse-ms@4.0.0: {} + parse-path@7.1.0: dependencies: protocols: 2.0.2 @@ -17864,8 +18202,6 @@ snapshots: pathval@2.0.1: {} - peek-readable@5.3.1: {} - pend@1.2.0: {} picocolors@1.1.1: {} @@ -17878,9 +18214,9 @@ snapshots: pirates@4.0.6: {} - piscina@4.3.1: + piscina@4.9.2: optionalDependencies: - nice-napi: 1.0.2 + '@napi-rs/nice': 1.1.1 pkg-dir@4.2.0: dependencies: @@ -17997,6 +18333,10 @@ snapshots: pretty-format@3.8.0: {} + pretty-ms@9.3.0: + dependencies: + parse-ms: 4.0.0 + process-nextick-args@2.0.1: {} prompts@2.4.2: @@ -18049,8 +18389,6 @@ snapshots: queue-microtask@1.2.3: {} - queue-tick@1.0.1: {} - quick-lru@5.1.1: {} range-parser@1.2.1: {} @@ -18332,7 +18670,7 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - responselike@3.0.0: + responselike@4.0.2: dependencies: lowercase-keys: 3.0.0 @@ -18539,6 +18877,8 @@ snapshots: semver@7.8.1: {} + semver@7.8.4: {} + send@0.19.2: dependencies: debug: 2.6.9 @@ -18829,15 +19169,14 @@ snapshots: transitivePeerDependencies: - supports-color - streamx@2.21.0: + streamx@2.27.0: dependencies: + events-universal: 1.0.1 fast-fifo: 1.3.2 - queue-tick: 1.0.1 - text-decoder: 1.2.2 - optionalDependencies: - bare-events: 2.8.0 + text-decoder: 1.2.7 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a string-argv@0.3.2: {} @@ -18944,6 +19283,8 @@ snapshots: strip-final-newline@3.0.0: {} + strip-final-newline@4.0.0: {} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 @@ -18956,14 +19297,13 @@ snapshots: strnum@2.3.0: {} - strtok3@9.1.1: + strtok3@10.3.5: dependencies: '@tokenizer/token': 0.3.0 - peek-readable: 5.3.1 style-loader@4.0.0(webpack@5.104.1): dependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) stylelint-config-recommended@14.0.0(stylelint@16.26.1(typescript@5.9.3)): dependencies: @@ -19016,6 +19356,12 @@ snapshots: stylis@4.2.0: {} + super-regex@1.1.0: + dependencies: + function-timeout: 1.0.2 + make-asynchronous: 1.1.0 + time-span: 5.1.0 + superstruct@2.0.2: {} supports-color@5.5.0: @@ -19085,11 +19431,11 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swc-loader@0.2.6(@swc/core@1.13.5)(webpack@5.104.1): + swc-loader@0.2.6(@swc/core@1.15.41)(webpack@5.104.1): dependencies: - '@swc/core': 1.13.5 + '@swc/core': 1.15.41 '@swc/counter': 0.1.3 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) swr@1.3.0(react@18.3.1): dependencies: @@ -19101,6 +19447,8 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 + system-architecture@1.0.0: {} + table@6.9.0: dependencies: ajv: 8.18.0 @@ -19115,21 +19463,22 @@ snapshots: tar-stream@3.1.7: dependencies: - b4a: 1.6.7 + b4a: 1.8.1 fast-fifo: 1.3.2 - streamx: 2.21.0 + streamx: 2.27.0 transitivePeerDependencies: - bare-abort-controller + - react-native-b4a - terser-webpack-plugin@5.4.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack@5.104.1): + terser-webpack-plugin@5.4.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack@5.104.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.46.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) optionalDependencies: - '@swc/core': 1.13.5 + '@swc/core': 1.15.41 esbuild: 0.27.3 terser@5.46.0: @@ -19145,9 +19494,11 @@ snapshots: glob: 7.2.3 minimatch: 3.1.5 - text-decoder@1.2.2: + text-decoder@1.2.7: dependencies: - b4a: 1.6.7 + b4a: 1.8.1 + transitivePeerDependencies: + - react-native-b4a thingies@2.5.0(tslib@2.8.1): dependencies: @@ -19162,14 +19513,18 @@ snapshots: thunky@1.1.0: {} + time-span@5.1.0: + dependencies: + convert-hrtime: 5.0.0 + tiny-invariant@1.3.3: {} - tinyglobby@0.2.15: + tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - tinyglobby@0.2.16: + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 @@ -19196,8 +19551,9 @@ snapshots: toidentifier@1.0.1: {} - token-types@6.0.0: + token-types@6.1.2: dependencies: + '@borewit/text-codec': 0.2.2 '@tokenizer/token': 0.3.0 ieee754: 1.2.1 @@ -19240,7 +19596,7 @@ snapshots: ts-dedent@2.2.0: {} - ts-node@10.9.2(@swc/core@1.13.5)(@types/node@16.18.68)(typescript@5.1.6): + ts-node@10.9.2(@swc/core@1.15.41)(@types/node@16.18.68)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 @@ -19258,9 +19614,9 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.13.5 + '@swc/core': 1.15.41 - ts-node@10.9.2(@swc/core@1.13.5)(@types/node@24.12.4)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 @@ -19278,7 +19634,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.13.5 + '@swc/core': 1.15.41 optional: true ts-unused-exports@10.1.0(typescript@5.9.3): @@ -19394,14 +19750,14 @@ snapshots: transitivePeerDependencies: - supports-color - typescript-json-schema@0.64.0(@swc/core@1.13.5): + typescript-json-schema@0.64.0(@swc/core@1.15.41): dependencies: '@types/json-schema': 7.0.15 '@types/node': 16.18.68 glob: 7.2.3 path-equal: 1.2.5 safe-stable-stringify: 2.4.3 - ts-node: 10.9.2(@swc/core@1.13.5)(@types/node@16.18.68)(typescript@5.1.6) + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@16.18.68)(typescript@5.1.6) typescript: 5.1.6 yargs: 17.7.2 transitivePeerDependencies: @@ -19412,7 +19768,7 @@ snapshots: typescript@5.9.3: {} - uint8array-extras@1.4.0: {} + uint8array-extras@1.5.0: {} unbox-primitive@1.1.0: dependencies: @@ -19439,6 +19795,8 @@ snapshots: unicode-property-aliases-ecmascript@2.2.0: {} + unicorn-magic@0.3.0: {} + unicorn-magic@0.4.0: {} unified@11.0.5: @@ -19644,6 +20002,8 @@ snapshots: web-vitals@4.2.3: {} + web-worker@1.5.0: {} + webidl-conversions@7.0.0: {} webpack-assets-manifest@6.3.0(webpack@5.104.1): @@ -19652,7 +20012,7 @@ snapshots: lockfile: 1.0.4 schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-bundle-analyzer@4.10.2: dependencies: @@ -19686,7 +20046,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-merge: 6.0.1 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -19700,7 +20060,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-dev-middleware@7.4.5(webpack@5.104.1): dependencies: @@ -19711,7 +20071,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-dev-server@5.2.4(webpack-cli@6.0.1)(webpack@5.104.1): dependencies: @@ -19744,7 +20104,7 @@ snapshots: webpack-dev-middleware: 7.4.5(webpack@5.104.1) ws: 8.21.0 optionalDependencies: - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) transitivePeerDependencies: - bufferutil @@ -19767,14 +20127,14 @@ snapshots: debug: 3.2.7 require-from-string: 2.0.2 source-map-support: 0.5.21 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color webpack-manifest-plugin@6.0.1(webpack@5.104.1): dependencies: tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-sources: 3.3.3 webpack-merge@6.0.1: @@ -19795,7 +20155,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.104.1(@swc/core@1.13.5)(esbuild@0.27.3)(webpack-cli@6.0.1): + webpack@5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -19819,7 +20179,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.4.0(@swc/core@1.13.5)(esbuild@0.27.3)(webpack@5.104.1) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack@5.104.1) watchpack: 2.5.1 webpack-sources: 3.3.3 optionalDependencies: @@ -19978,15 +20338,16 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yauzl@3.2.0: + yauzl@3.4.0: dependencies: - buffer-crc32: 0.2.13 pend: 1.2.0 yn@3.1.1: {} yocto-queue@0.1.0: {} + yoctocolors@2.1.2: {} + zimmerframe@1.1.4: {} zod-validation-error@4.0.2(zod@4.1.12): From 782875921f6a7cf29946ae99d053b8dff113a1a6 Mon Sep 17 00:00:00 2001 From: Jake <1731150+Jakeii@users.noreply.github.com> Date: Mon, 15 Jun 2026 09:57:46 +0100 Subject: [PATCH 093/293] Tweak sports tabs for rendering cricket scorecard client-side (#16131) * make sports tabs suitable for client side rendering * lint * undo directory changes * different tabs for cricket/football * update aria role * fix story regressions * remove extraneous story args * restore original tab components * regression * remove unnecessary story additions --- .../CricketMatchHeader.stories.tsx | 139 +++++++++--------- .../CricketMatchHeader/CricketMatchHeader.tsx | 15 +- .../CricketScorecardPageNew.stories.tsx | 23 ++- .../components/CricketScorecardPageNew.tsx | 22 ++- .../FootballMatchHeader.stories.tsx | 5 +- .../FootballMatchHeader.tsx | 16 +- .../FootballMatchHeader/Tabs.stories.tsx | 3 + .../components/FootballMatchHeader/Tabs.tsx | 51 +++---- .../FootballMatchHeader/headerData.ts | 46 ++---- .../src/components/FootballMatchInfoPage.tsx | 2 - 10 files changed, 167 insertions(+), 155 deletions(-) diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx index bd95b65c057..20dc456bb0b 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx @@ -1,4 +1,6 @@ import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { CricketMatch } from '../../cricketMatchV2'; +import type { EditionId } from '../../lib/edition'; import { CricketMatchHeader } from './CricketMatchHeader'; const meta = { @@ -9,39 +11,40 @@ export default meta; type Story = StoryObj; -export const Fixture = { - args: { - edition: 'UK', - match: { - kind: 'Fixture', - series: 'Ashes 2025–2026', - competition: 'Second Test Match', - venue: 'Brisbane Cricket Ground', - matchDate: new Date('2026-01-26'), - homeTeam: { - paID: 'f7f611a1-e667-2aa2-c3e0-6dbc6981cfa4', - name: 'Australia', - }, - awayTeam: { - paID: 'a359844f-fc07-9cfa-d4cc-9a9ac0d5d075', - name: 'England', - }, - innings: [], +const baseArgs = { + edition: 'UK' as EditionId, + match: { + kind: 'Fixture' as CricketMatch['kind'], + series: 'Ashes 2025–2026', + competition: 'Second Test Match', + venue: 'Brisbane Cricket Ground', + matchDate: new Date('2026-01-26'), + homeTeam: { + paID: 'f7f611a1-e667-2aa2-c3e0-6dbc6981cfa4', + name: 'Australia', }, - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Fixture', + awayTeam: { + paID: 'a359844f-fc07-9cfa-d4cc-9a9ac0d5d075', + name: 'England', }, + innings: [], }, + selectedTab: 'info' as 'info' | 'live' | 'report', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), +}; + +export const Fixture = { + args: baseArgs, } satisfies Story; export const Live = { args: { - edition: 'UK', + ...baseArgs, match: { ...Fixture.args.match, - kind: 'Live', + kind: 'Live' as CricketMatch['kind'], day: 2, innings: [ { @@ -62,21 +65,21 @@ export const Live = { }, ], }, - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Live', - liveURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', - ), - }, + selectedTab: 'info', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), }, } satisfies Story; export const LiveYetToBat = { name: 'Live (Team yet to bat)', args: { - edition: 'UK', + ...baseArgs, + edition: 'UK' as EditionId, match: { ...Fixture.args.match, kind: 'Live', @@ -92,20 +95,20 @@ export const LiveYetToBat = { }, ], }, - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Live', - liveURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', - ), - }, + selectedTab: 'info', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), }, } satisfies Story; export const Result = { args: { - edition: 'UK', + ...baseArgs, + edition: 'UK' as EditionId, match: { ...Fixture.args.match, kind: 'Result', @@ -154,20 +157,20 @@ export const Result = { }, }, }, - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Result', - liveURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', - ), - }, + selectedTab: 'info', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), }, } satisfies Story; export const ResultWinByWickets = { args: { - edition: 'UK', + ...baseArgs, + edition: 'UK' as EditionId, match: { ...Fixture.args.match, kind: 'Result', @@ -198,20 +201,21 @@ export const ResultWinByWickets = { }, }, }, - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Result', - liveURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', - ), - }, + selectedTab: 'info', + + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), }, } satisfies Story; export const ResultDrawn = { args: { - edition: 'UK', + ...baseArgs, + edition: 'UK' as EditionId, match: { ...Fixture.args.match, kind: 'Result', @@ -254,13 +258,12 @@ export const ResultDrawn = { type: 'draw', }, }, - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Result', - liveURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', - ), - }, + selectedTab: 'info', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), }, } satisfies Story; diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx index 818bd75a80f..98e9067f0c2 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx @@ -13,7 +13,6 @@ import { textSansItalic15Object, until, } from '@guardian/source/foundations'; -import type { ComponentProps } from 'react'; import { Fragment, type ReactNode, useMemo } from 'react'; import type { CricketMatch, @@ -42,7 +41,10 @@ import { Tabs } from '../FootballMatchHeader/Tabs'; type Props = { edition: EditionId; match: CricketMatch; - tabs: ComponentProps; + selectedTab: 'info' | 'live' | 'report'; + reportURL?: URL; + liveURL?: URL; + infoURL?: URL; }; export const CricketMatchHeader = (props: Props) => { @@ -77,7 +79,14 @@ export const CricketMatchHeader = (props: Props) => { {match.result && }
- +
); diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx index 5c96803064a..3f72bb81157 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx @@ -32,6 +32,10 @@ const baseArgs = { }, innings: [], }, + selectedTab: 'info' as 'info' | 'live' | 'report', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), allInnings: [], officials: [ 'P R Reiffel', @@ -69,11 +73,6 @@ const baseArgs = { ], }, edition: 'UK', - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Fixture', - }, } satisfies ComponentProps; export const CricketScorecardPageNewFixture = meta.story({ @@ -85,14 +84,12 @@ export const CricketScorecardPageNewLive = meta.story({ name: 'Cricket Scorecard Page Live (New)', args: { ...baseArgs, - tabs: { - selected: 'info', - sportKind: 'cricket', - matchKind: 'Live', - liveURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', - ), - }, + selectedTab: 'info', + + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), + match: { ...baseArgs.match, kind: 'Live', diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx index 86cb51f06c0..74ad9f84e9e 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx @@ -1,13 +1,12 @@ import { css } from '@emotion/react'; import { from, space } from '@guardian/source/foundations'; -import type { ComponentProps } from 'react'; import type { CricketMatch, Innings } from '../cricketMatchV2'; import { grid } from '../grid'; import { type EditionId } from '../lib/edition'; import { palette } from '../palette'; import { CricketMatchHeader } from './CricketMatchHeader/CricketMatchHeader'; import { CricketScorecardNew } from './CricketScorecardNew'; -import type { Tabs } from './FootballMatchHeader/Tabs'; +import type { TabName } from './FootballMatchHeader/Tabs'; export const CricketScorecardPageNew = ({ match, @@ -15,7 +14,10 @@ export const CricketScorecardPageNew = ({ edition, lineups, officials, - tabs, + selectedTab, + infoURL, + liveURL, + reportURL, }: { match: CricketMatch; allInnings: Innings[]; @@ -25,11 +27,21 @@ export const CricketScorecardPageNew = ({ awayTeam: string[]; }; officials: string[]; - tabs: ComponentProps; + selectedTab: TabName; + infoURL?: URL; + liveURL?: URL; + reportURL?: URL; }) => { return (
- +
['selected']; + initialTab: TabName; initialData?: HeaderData; leagueName: string; leagueURL?: string; @@ -146,7 +147,14 @@ export const FootballMatchHeader = (props: Props) => { liveActivitiesClient={props.liveActivitiesClient} />
- +
); @@ -164,7 +172,7 @@ const swrOptions = (refreshInterval: number): SWRConfiguration => ({ const fetcher = ( - selected: Props['initialTab'], + selected: TabName, renderingTarget: RenderingTarget, getHeaderData: Props['getHeaderData'], ) => diff --git a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx index 82450937a12..eb744c7137a 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx @@ -10,6 +10,7 @@ const meta = preview.meta({ export const MatchInfoWhenFixture = meta.story({ args: { selected: 'info', + sportKind: 'football', matchKind: 'Fixture', }, parameters: { @@ -25,6 +26,7 @@ export const LiveWhenLive = meta.story({ ...MatchInfoWhenFixture.input, args: { selected: 'live', + sportKind: 'football', matchKind: 'Live', infoURL: new URL( 'https://www.theguardian.com/football/match/2025/nov/26/arsenal-v-bayernmunich', @@ -42,6 +44,7 @@ export const ReportWhenResult = meta.story({ ...MatchInfoWhenFixture.input, args: { selected: 'report', + sportKind: 'football', matchKind: 'Result', liveURL: new URL( 'https://www.theguardian.com/football/live/2025/nov/26/arsenal-v-bayern-munich-champions-league-live', diff --git a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx index 342a9926e8a..0de0b39793f 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx @@ -13,27 +13,16 @@ import type { RenderingTarget } from '../../types/renderingTarget'; import { useConfig } from '../ConfigContext'; import { border, primaryText, selected } from './colours'; +export type TabName = 'info' | 'live' | 'report'; + type Props = { matchKind: FootballMatch['kind']; - // eslint-disable-next-line react/no-unused-prop-types -- false positive, this is passed into the tab components - sportKind?: 'football' | 'cricket'; -} & ( - | { - selected: 'info'; - reportURL?: URL; - liveURL?: URL; - } - | { - selected: 'live'; - reportURL?: URL; - infoURL: URL; - } - | { - selected: 'report'; - liveURL?: URL; - infoURL: URL; - } -); + sportKind: 'football' | 'cricket'; + selected: TabName; + reportURL?: URL; + liveURL?: URL; + infoURL?: URL; +}; export const Tabs = (props: Props) => ( ); -const MatchReport = (props: Props) => { +const MatchReport = ( + props: Pick, +) => { if (props.selected === 'report') { return Match report; } @@ -74,7 +65,7 @@ const MatchReport = (props: Props) => { return null; }; -const LiveFeed = (props: Props) => { +const LiveFeed = (props: Pick) => { if (props.selected === 'live') { return Live feed; } @@ -90,17 +81,23 @@ const LiveFeed = (props: Props) => { return null; }; -const MatchInfo = (props: Props) => { +const MatchInfo = ( + props: Pick, +) => { const tabText = props.sportKind === 'cricket' ? 'Scorecard' : 'Match info'; if (props.selected === 'info') { return {tabText}; } - return ( - - {tabText} - - ); + if (props.infoURL !== undefined) { + return ( + + {tabText} + + ); + } + + return null; }; const Tab = (props: { diff --git a/dotcom-rendering/src/components/FootballMatchHeader/headerData.ts b/dotcom-rendering/src/components/FootballMatchHeader/headerData.ts index 5c6db2338a3..af85cf7f16b 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/headerData.ts +++ b/dotcom-rendering/src/components/FootballMatchHeader/headerData.ts @@ -1,4 +1,3 @@ -import type { ComponentProps } from 'react'; import { safeParse } from 'valibot'; import { type FootballMatch, @@ -11,18 +10,19 @@ import { import { safeParseURL } from '../../lib/parse'; import { error, fromValibot, ok, type Result } from '../../lib/result'; import type { RenderingTarget } from '../../types/renderingTarget'; -import type { Tabs } from './Tabs'; +import type { TabName } from './Tabs'; export type HeaderData = { - tabs: ComponentProps; + tabs: { + liveURL?: URL; + reportURL?: URL; + infoURL?: URL; + }; match: FootballMatch; }; export const parse = - ( - selected: HeaderData['tabs']['selected'], - renderingTarget: RenderingTarget, - ) => + (selected: TabName, renderingTarget: RenderingTarget) => (json: unknown): Result => { const feData = fromValibot( safeParse(feFootballMatchHeaderSchema, json), @@ -80,7 +80,7 @@ const getInfoUrl = ( }; const createTabs = ( - selected: HeaderData['tabs']['selected'], + selected: TabName, feData: FEFootballMatchHeader, matchKind: FootballMatch['kind'], renderingTarget: RenderingTarget, @@ -105,27 +105,11 @@ const createTabs = ( return error({ kind: 'info' }); } - switch (selected) { - case 'info': - return ok({ - matchKind, - selected, - reportURL: reportURL?.value, - liveURL: liveURL?.value, - }); - case 'live': - return ok({ - matchKind, - selected, - reportURL: reportURL?.value, - infoURL: infoURL.value, - }); - case 'report': - return ok({ - matchKind, - selected, - liveURL: liveURL?.value, - infoURL: infoURL.value, - }); - } + return ok({ + matchKind, + selected, + reportURL: reportURL?.value, + liveURL: liveURL?.value, + infoURL: infoURL.value, + }); }; diff --git a/dotcom-rendering/src/components/FootballMatchInfoPage.tsx b/dotcom-rendering/src/components/FootballMatchInfoPage.tsx index 2a217fe24af..d19c0079ea1 100644 --- a/dotcom-rendering/src/components/FootballMatchInfoPage.tsx +++ b/dotcom-rendering/src/components/FootballMatchInfoPage.tsx @@ -36,8 +36,6 @@ export const FootballMatchInfoPage = ({ initialData={{ match: matchInfo, tabs: { - selected: 'info', - matchKind: matchInfo.kind, // We don't have these urls in the data yet. This will be fixed in upcoming PRs. reportURL: undefined, liveURL: undefined, From 4861a1ebb04f3445858856d8cc7f91a0b17d7bc4 Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Fri, 12 Jun 2026 09:54:40 +0100 Subject: [PATCH 094/293] Extend dcar cricket match to include all header and stats data --- .../CricketMatchHeader.stories.tsx | 243 ++++-- .../CricketMatchHeader/CricketMatchHeader.tsx | 28 +- .../CricketScorecardNew.stories.tsx | 18 +- .../src/components/CricketScorecardNew.tsx | 21 +- .../CricketScorecardPageNew.stories.tsx | 689 +++++++++--------- .../components/CricketScorecardPageNew.tsx | 10 +- dotcom-rendering/src/cricketMatchV2.test.ts | 104 +-- dotcom-rendering/src/cricketMatchV2.ts | 61 +- 8 files changed, 620 insertions(+), 554 deletions(-) diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx index 20dc456bb0b..4230553befe 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx @@ -11,6 +11,82 @@ export default meta; type Story = StoryObj; +const defaultFallOfWickets = [ + { + order: 1, + name: 'Emilio Gay', + runs: 16, + }, + { + order: 2, + name: 'Ben Duckett', + runs: 31, + }, + { + order: 3, + name: 'Jacob Bethell', + runs: 33, + }, + { + order: 4, + name: 'Joe Root', + runs: 34, + }, + { + order: 5, + name: 'Jamie Smith', + runs: 55, + }, + { + order: 6, + name: 'Ben Stokes', + runs: 94, + }, + { + order: 7, + name: 'Gus Atkinson', + runs: 108, + }, + { + order: 8, + name: 'Harry Brook', + runs: 113, + }, + { + order: 9, + name: 'Ollie Robinson', + runs: 118, + }, + { + order: 10, + name: 'Shoaib Bashir', + runs: 140, + }, +]; + +const defaultInnings = { + description: 'Australia 169/10 (20.0 overs)', + battingTeam: 'Australia', + bowlers: [], + batters: [], + extras: { + byes: 0, + legByes: 0, + noBalls: 0, + penalties: 0, + wides: 0, + }, + declared: false, + forfeited: false, + inningsTotals: { + runs: 169, + overs: '20.0', + wickets: 0, + extras: 0, + }, + fallOfWickets: defaultFallOfWickets, +}; + const baseArgs = { edition: 'UK' as EditionId, match: { @@ -22,12 +98,15 @@ const baseArgs = { homeTeam: { paID: 'f7f611a1-e667-2aa2-c3e0-6dbc6981cfa4', name: 'Australia', + lineup: ['David Warner', 'Travis Head'], }, awayTeam: { paID: 'a359844f-fc07-9cfa-d4cc-9a9ac0d5d075', name: 'England', + lineup: ['Zak Crawley', 'Alex Lees'], }, innings: [], + officials: [], }, selectedTab: 'info' as 'info' | 'live' | 'report', infoURL: new URL( @@ -48,20 +127,28 @@ export const Live = { day: 2, innings: [ { - declared: false, - forfeited: false, + ...defaultInnings, + description: 'Australia 169/10 (20.0 overs)', battingTeam: 'Australia', - runs: 169, - overs: '20.0', - fallOfWickets: 0, + inningsTotals: { + runs: 169, + overs: '20.0', + wickets: 0, + extras: 0, + }, + fallOfWickets: [], }, { - declared: false, - forfeited: false, + ...defaultInnings, + description: 'England 173/3 (19.3 overs)', battingTeam: 'England', - runs: 173, - overs: '19.3', - fallOfWickets: 3, + inningsTotals: { + runs: 173, + overs: '19.3', + wickets: 3, + extras: 0, + }, + fallOfWickets: defaultFallOfWickets.slice(0, 3), }, ], }, @@ -86,12 +173,16 @@ export const LiveYetToBat = { day: 2, innings: [ { - declared: false, - forfeited: false, + ...defaultInnings, + description: 'Australia 169 all out (20.0 overs)', battingTeam: 'Australia', - runs: 169, - overs: '20.0', - fallOfWickets: 10, + inningsTotals: { + runs: 169, + overs: '20.0', + wickets: 10, + extras: 0, + }, + fallOfWickets: defaultFallOfWickets, }, ], }, @@ -115,36 +206,44 @@ export const Result = { day: 4, innings: [ { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'Australia', - runs: 245, - overs: '65.0', - fallOfWickets: 10, + inningsTotals: { + runs: 245, + overs: '65.0', + wickets: 10, + extras: 0, + }, }, { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'England', - runs: 361, - overs: '89.5', - fallOfWickets: 10, + inningsTotals: { + runs: 361, + overs: '89.5', + wickets: 10, + extras: 0, + }, }, { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'Australia', - runs: 258, - overs: '78.1', - fallOfWickets: 10, + inningsTotals: { + runs: 258, + overs: '78.1', + wickets: 10, + extras: 0, + }, }, { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'England', - runs: 364, - overs: '92.5', - fallOfWickets: 10, + inningsTotals: { + runs: 364, + overs: '92.5', + wickets: 10, + extras: 0, + }, }, ], result: { @@ -176,20 +275,26 @@ export const ResultWinByWickets = { kind: 'Result', innings: [ { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'Australia', - runs: 186, - overs: '16.2', - fallOfWickets: 3, + inningsTotals: { + runs: 186, + overs: '16.2', + wickets: 3, + extras: 0, + }, + fallOfWickets: defaultFallOfWickets.slice(0, 3), }, { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'England', - runs: 182, - overs: '20.0', - fallOfWickets: 8, + inningsTotals: { + runs: 182, + overs: '20.0', + wickets: 8, + extras: 0, + }, + fallOfWickets: defaultFallOfWickets.slice(0, 8), }, ], result: { @@ -222,36 +327,48 @@ export const ResultDrawn = { day: 4, innings: [ { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'Australia', - runs: 302, - overs: '120.3', - fallOfWickets: 10, + inningsTotals: { + runs: 302, + overs: '120.3', + wickets: 10, + extras: 0, + }, }, { - declared: false, - forfeited: false, + ...defaultInnings, battingTeam: 'England', - runs: 226, - overs: '60.2', - fallOfWickets: 10, + inningsTotals: { + runs: 226, + overs: '60.2', + wickets: 10, + extras: 0, + }, }, { + ...defaultInnings, declared: true, - forfeited: false, battingTeam: 'Australia', - runs: 218, - overs: '72.5', - fallOfWickets: 5, + inningsTotals: { + runs: 218, + overs: '72.5', + wickets: 5, + extras: 0, + }, + fallOfWickets: defaultFallOfWickets.slice(0, 5), }, { - declared: false, + ...defaultInnings, forfeited: false, battingTeam: 'England', - runs: 239, - overs: '67.4', - fallOfWickets: 7, + inningsTotals: { + runs: 239, + overs: '67.4', + wickets: 7, + extras: 0, + }, + fallOfWickets: defaultFallOfWickets.slice(0, 7), }, ], result: { diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx index 98e9067f0c2..edce73ffbcd 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx @@ -18,7 +18,6 @@ import type { CricketMatch, CricketResult, CricketTeam, - InningsOverview, } from '../../cricketMatchV2'; import { grid } from '../../grid'; import { @@ -293,13 +292,20 @@ const Team = (props: { team: CricketTeam; match: CricketMatch }) => { innings.map((inning, index) => ( - {!!inning.overs && ( + {!!inning.inningsTotals.overs && ( <> - + { ), }} > - {inning.overs} overs + {inning.inningsTotals.overs} overs )} @@ -335,13 +341,19 @@ const Team = (props: { team: CricketTeam; match: CricketMatch }) => { ); }; -const EndOfInningReason = (props: { inning: InningsOverview }) => { +const EndOfInningReason = (props: { + inning: { + wickets: number; + declared: boolean; + forfeited: boolean; + }; +}) => { const styles = { ...textSans14Object, marginRight: space[1], }; - if (props.inning.fallOfWickets === 10) { + if (props.inning.wickets === 10) { return All out; } if (props.inning.declared) { diff --git a/dotcom-rendering/src/components/CricketScorecardNew.stories.tsx b/dotcom-rendering/src/components/CricketScorecardNew.stories.tsx index 187ecf6ff98..db4c84dec67 100644 --- a/dotcom-rendering/src/components/CricketScorecardNew.stories.tsx +++ b/dotcom-rendering/src/components/CricketScorecardNew.stories.tsx @@ -23,6 +23,8 @@ export const CricketScorecardNew = meta.story({ { description: 'India first innings', battingTeam: 'India', + declared: false, + forfeited: false, inningsTotals: { runs: 254, overs: '49.0', @@ -186,6 +188,8 @@ export const CricketScorecardNew = meta.story({ { description: 'New Zealand first innings', battingTeam: 'New Zealand', + declared: false, + forfeited: false, inningsTotals: { runs: 254, overs: '49.0', @@ -336,13 +340,7 @@ export const CricketScorecardNew = meta.story({ homeTeam: { paID: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', name: 'India', - }, - awayTeam: { - paID: 'b2c3d4e5-f6a7-8901-bcde-f12345678901', - name: 'New Zealand', - }, - lineups: { - homeTeam: [ + lineup: [ 'Rohit Sharma', 'Shubman Gill', 'Virat Kohli', @@ -355,7 +353,11 @@ export const CricketScorecardNew = meta.story({ 'Kuldeep Yadav', 'Varun Chakaravarthy', ], - awayTeam: [ + }, + awayTeam: { + paID: 'b2c3d4e5-f6a7-8901-bcde-f12345678901', + name: 'New Zealand', + lineup: [ 'Rachin Ravindra', 'Will Young', 'Kane Williamson', diff --git a/dotcom-rendering/src/components/CricketScorecardNew.tsx b/dotcom-rendering/src/components/CricketScorecardNew.tsx index 75ccc38aa8b..416c285d166 100644 --- a/dotcom-rendering/src/components/CricketScorecardNew.tsx +++ b/dotcom-rendering/src/components/CricketScorecardNew.tsx @@ -631,11 +631,9 @@ const FallOfWickets = ({ const LineupTeam = ({ team, teamType, - lineup, }: { team: CricketTeam; teamType: 'homeTeam' | 'awayTeam'; - lineup: string[]; }) => (
    - {lineup.map((player) => ( + {team.lineup.map((player) => (
  • {player}
  • @@ -669,10 +667,6 @@ type Props = { homeTeam: CricketTeam; awayTeam: CricketTeam; matchResult?: CricketResult; - lineups: { - homeTeam: string[]; - awayTeam: string[]; - }; }; export const CricketScorecardNew = ({ @@ -681,7 +675,6 @@ export const CricketScorecardNew = ({ homeTeam, awayTeam, matchResult, - lineups, }: Props) => (
    {allInnings.map((innings, index) => { @@ -723,16 +716,8 @@ export const CricketScorecardNew = ({

    Lineups

    - - + +
    diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx index 3f72bb81157..e168d6e892e 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx @@ -25,51 +25,48 @@ const baseArgs = { homeTeam: { paID: 'f822b9f9-9fdc-399f-54f9-e621edaf0a28', name: 'India', + lineup: [ + 'Rohit Sharma', + 'Shubman Gill', + 'Virat Kohli', + 'Shreyas Iyer', + 'Axar Patel', + 'Lokesh Rahul', + 'Hardik Pandya', + 'Ravindra Jadeja', + 'Mohammed Shami', + 'Kuldeep Yadav', + 'Varun Chakaravarthy', + ], }, awayTeam: { paID: '110c70b5-c05f-3be7-6670-baecd50a8c6b', name: 'New Zealand', + lineup: [ + 'Rachin Ravindra', + 'Will Young', + 'Kane Williamson', + 'Daryl Mitchell', + 'Tom Latham', + 'Glenn Phillips', + 'Michael Bracewell', + 'Mitchell Santner', + 'Nathan Smith', + 'Kyle Jamieson', + "Will O'Rourke", + ], }, + selectedTab: 'info' as 'info' | 'live' | 'report', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), innings: [], - }, - selectedTab: 'info' as 'info' | 'live' | 'report', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), - allInnings: [], - officials: [ - 'P R Reiffel', - 'R K Illingworth', - 'J S Wilson', - 'H D P K Dharmasena', - 'R S Madugalle', - ], - lineups: { - homeTeam: [ - 'Rohit Sharma', - 'Shubman Gill', - 'Virat Kohli', - 'Shreyas Iyer', - 'Axar Patel', - 'Lokesh Rahul', - 'Hardik Pandya', - 'Ravindra Jadeja', - 'Mohammed Shami', - 'Kuldeep Yadav', - 'Varun Chakaravarthy', - ], - awayTeam: [ - 'Rachin Ravindra', - 'Will Young', - 'Kane Williamson', - 'Daryl Mitchell', - 'Tom Latham', - 'Glenn Phillips', - 'Michael Bracewell', - 'Mitchell Santner', - 'Nathan Smith', - 'Kyle Jamieson', - "Will O'Rourke", + officials: [ + 'P R Reiffel', + 'R K Illingworth', + 'J S Wilson', + 'H D P K Dharmasena', + 'R S Madugalle', ], }, edition: 'UK', @@ -96,329 +93,315 @@ export const CricketScorecardPageNewLive = meta.story({ day: 2, innings: [ { + description: 'India first innings', + battingTeam: 'India', declared: false, forfeited: false, - battingTeam: 'India', - runs: 254, - overs: '49.0', - fallOfWickets: 3, + inningsTotals: { + runs: 254, + overs: '49.0', + extras: 8, + wickets: 3, + }, + extras: { + byes: 1, + legByes: 2, + wides: 5, + noBalls: 0, + penalties: 0, + }, + batters: [ + { + name: 'Rohit Sharma', + ballsFaced: 83, + runs: 76, + fours: 7, + sixes: 3, + howOut: 'st Latham b Ravindra', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Shubman Gill', + ballsFaced: 50, + runs: 31, + fours: 0, + sixes: 1, + howOut: 'c Phillips b Santner', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Virat Kohli', + ballsFaced: 2, + runs: 1, + fours: 0, + sixes: 0, + howOut: 'lbw b Bracewell', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Shreyas Iyer', + ballsFaced: 62, + runs: 48, + fours: 2, + sixes: 2, + howOut: 'c Ravindra b Santner', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Lokesh Rahul', + ballsFaced: 45, + runs: 39, + fours: 3, + sixes: 0, + howOut: 'run out (Williamson)', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Hardik Pandya', + ballsFaced: 18, + runs: 22, + fours: 2, + sixes: 1, + howOut: 'c Bracewell b Smith', + out: true, + nonStrike: true, + onStrike: false, + }, + { + name: 'Ravindra Jadeja', + ballsFaced: 24, + runs: 30, + fours: 1, + sixes: 0, + howOut: 'not out', + out: false, + onStrike: true, + nonStrike: true, + }, + ], + bowlers: [ + { + name: 'Mohammed Shami', + overs: 9, + maidens: 0, + runs: 74, + wickets: 1, + balls: 55, + }, + { + name: 'Hardik Pandya', + overs: 3, + maidens: 0, + runs: 30, + wickets: 0, + balls: 18, + }, + { + name: 'Varun Chakaravarthy', + overs: 10, + maidens: 0, + runs: 45, + wickets: 2, + balls: 60, + }, + { + name: 'Kuldeep Yadav', + overs: 10, + maidens: 0, + runs: 40, + wickets: 2, + balls: 60, + }, + { + name: 'Axar Patel', + overs: 8, + maidens: 0, + runs: 29, + wickets: 0, + balls: 48, + }, + { + name: 'Ravindra Jadeja', + overs: 10, + maidens: 0, + runs: 30, + wickets: 1, + balls: 60, + }, + ], + fallOfWickets: [ + { + order: 1, + name: 'Shubman Gill', + runs: 105, + }, + { + order: 2, + name: 'Virat Kohli', + runs: 106, + }, + { + order: 3, + name: 'Rohit Sharma', + runs: 122, + }, + ], }, { + description: 'New Zealand first innings', + battingTeam: 'New Zealand', declared: false, forfeited: false, - battingTeam: 'New Zealand', - runs: 254, - overs: '49.0', - fallOfWickets: 2, - }, - ], - }, - allInnings: [ - { - description: 'India first innings', - battingTeam: 'India', - inningsTotals: { - runs: 254, - overs: '49.0', - extras: 8, - wickets: 7, - }, - extras: { - byes: 1, - legByes: 2, - wides: 5, - noBalls: 0, - penalties: 0, - }, - batters: [ - { - name: 'Rohit Sharma', - ballsFaced: 83, - runs: 76, - fours: 7, - sixes: 3, - howOut: 'st Latham b Ravindra', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Shubman Gill', - ballsFaced: 50, - runs: 31, - fours: 0, - sixes: 1, - howOut: 'c Phillips b Santner', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Virat Kohli', - ballsFaced: 2, - runs: 1, - fours: 0, - sixes: 0, - howOut: 'lbw b Bracewell', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Shreyas Iyer', - ballsFaced: 62, - runs: 48, - fours: 2, - sixes: 2, - howOut: 'c Ravindra b Santner', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Lokesh Rahul', - ballsFaced: 45, - runs: 39, - fours: 3, - sixes: 0, - howOut: 'run out (Williamson)', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Hardik Pandya', - ballsFaced: 18, - runs: 22, - fours: 2, - sixes: 1, - howOut: 'c Bracewell b Smith', - out: true, - nonStrike: true, - onStrike: false, - }, - { - name: 'Ravindra Jadeja', - ballsFaced: 24, - runs: 30, - fours: 1, - sixes: 0, - howOut: 'not out', - out: false, - onStrike: true, - nonStrike: true, - }, - ], - bowlers: [ - { - name: 'Mohammed Shami', - overs: 9, - maidens: 0, - runs: 74, - wickets: 1, - balls: 55, - }, - { - name: 'Hardik Pandya', - overs: 3, - maidens: 0, - runs: 30, - wickets: 0, - balls: 18, - }, - { - name: 'Varun Chakaravarthy', - overs: 10, - maidens: 0, - runs: 45, - wickets: 2, - balls: 60, - }, - { - name: 'Kuldeep Yadav', - overs: 10, - maidens: 0, - runs: 40, + inningsTotals: { + runs: 254, + overs: '49.0', + extras: 8, wickets: 2, - balls: 60, - }, - { - name: 'Axar Patel', - overs: 8, - maidens: 0, - runs: 29, - wickets: 0, - balls: 48, - }, - { - name: 'Ravindra Jadeja', - overs: 10, - maidens: 0, - runs: 30, - wickets: 1, - balls: 60, - }, - ], - fallOfWickets: [ - { - order: 1, - name: 'Shubman Gill', - runs: 105, }, - { - order: 2, - name: 'Virat Kohli', - runs: 106, + extras: { + byes: 0, + legByes: 3, + noBalls: 0, + penalties: 0, + wides: 13, }, - { - order: 3, - name: 'Rohit Sharma', - runs: 122, - }, - ], - }, - { - description: 'New Zealand first innings', - battingTeam: 'New Zealand', - inningsTotals: { - runs: 254, - overs: '49.0', - extras: 8, - wickets: 7, - }, - extras: { - byes: 0, - legByes: 3, - noBalls: 0, - penalties: 0, - wides: 13, + batters: [ + { + name: 'Will Young', + ballsFaced: 23, + runs: 15, + fours: 2, + sixes: 0, + howOut: 'lbw b Vinod', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Rachin Ravindra', + ballsFaced: 29, + runs: 37, + fours: 4, + sixes: 1, + howOut: 'b Yadav', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Kane Williamson', + ballsFaced: 14, + runs: 11, + fours: 1, + sixes: 0, + howOut: 'c & b Yadav', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Daryl Mitchell', + ballsFaced: 101, + runs: 63, + fours: 3, + sixes: 0, + howOut: 'c Sharma b Ahmed', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Tom Latham', + ballsFaced: 56, + runs: 44, + fours: 4, + sixes: 0, + howOut: 'c Kohli b Shami', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Glenn Phillips', + ballsFaced: 34, + runs: 55, + fours: 3, + sixes: 3, + howOut: 'not out', + out: false, + onStrike: true, + nonStrike: true, + }, + { + name: 'Michael Bracewell', + ballsFaced: 8, + runs: 5, + fours: 0, + sixes: 0, + howOut: 'not out', + out: false, + onStrike: false, + nonStrike: true, + }, + ], + bowlers: [ + { + name: 'Mohammed Shami', + overs: 9, + maidens: 0, + runs: 74, + wickets: 1, + balls: 54, + }, + { + name: 'Hardik Pandya', + overs: 3, + maidens: 0, + runs: 30, + wickets: 0, + balls: 18, + }, + { + name: 'Varun Chakaravarthy', + overs: 10, + maidens: 0, + runs: 45, + wickets: 2, + balls: 60, + }, + { + name: 'Kuldeep Yadav', + overs: 10, + maidens: 0, + runs: 40, + wickets: 2, + balls: 60, + }, + ], + fallOfWickets: [ + { + order: 1, + name: 'Will Young', + runs: 57, + }, + { + order: 2, + name: 'Rachin Ravindra', + runs: 69, + }, + ], }, - batters: [ - { - name: 'Will Young', - ballsFaced: 23, - runs: 15, - fours: 2, - sixes: 0, - howOut: 'lbw b Vinod', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Rachin Ravindra', - ballsFaced: 29, - runs: 37, - fours: 4, - sixes: 1, - howOut: 'b Yadav', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Kane Williamson', - ballsFaced: 14, - runs: 11, - fours: 1, - sixes: 0, - howOut: 'c & b Yadav', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Daryl Mitchell', - ballsFaced: 101, - runs: 63, - fours: 3, - sixes: 0, - howOut: 'c Sharma b Ahmed', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Tom Latham', - ballsFaced: 56, - runs: 44, - fours: 4, - sixes: 0, - howOut: 'c Kohli b Shami', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Glenn Phillips', - ballsFaced: 34, - runs: 55, - fours: 3, - sixes: 3, - howOut: 'not out', - out: false, - onStrike: true, - nonStrike: true, - }, - { - name: 'Michael Bracewell', - ballsFaced: 8, - runs: 5, - fours: 0, - sixes: 0, - howOut: 'not out', - out: false, - onStrike: false, - nonStrike: true, - }, - ], - bowlers: [ - { - name: 'Mohammed Shami', - overs: 9, - maidens: 0, - runs: 74, - wickets: 1, - balls: 54, - }, - { - name: 'Hardik Pandya', - overs: 3, - maidens: 0, - runs: 30, - wickets: 0, - balls: 18, - }, - { - name: 'Varun Chakaravarthy', - overs: 10, - maidens: 0, - runs: 45, - wickets: 2, - balls: 60, - }, - { - name: 'Kuldeep Yadav', - overs: 10, - maidens: 0, - runs: 40, - wickets: 2, - balls: 60, - }, - ], - fallOfWickets: [ - { - order: 1, - name: 'Will Young', - runs: 57, - }, - { - order: 2, - name: 'Rachin Ravindra', - runs: 69, - }, - ], - }, - ], + ], + }, }, }); diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx index 74ad9f84e9e..d3ffaeeab2c 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx @@ -1,6 +1,7 @@ import { css } from '@emotion/react'; import { from, space } from '@guardian/source/foundations'; -import type { CricketMatch, Innings } from '../cricketMatchV2'; +import type { ComponentProps } from 'react'; +import type { CricketMatch } from '../cricketMatchV2'; import { grid } from '../grid'; import { type EditionId } from '../lib/edition'; import { palette } from '../palette'; @@ -10,7 +11,6 @@ import type { TabName } from './FootballMatchHeader/Tabs'; export const CricketScorecardPageNew = ({ match, - allInnings, edition, lineups, officials, @@ -20,7 +20,6 @@ export const CricketScorecardPageNew = ({ reportURL, }: { match: CricketMatch; - allInnings: Innings[]; edition: EditionId; lineups: { homeTeam: string[]; @@ -49,9 +48,8 @@ export const CricketScorecardPageNew = ({ `} > { - const expected: CricketMatch = { - kind: 'Result', - series: 'First Test Match', - competition: 'First Test Match', - venue: "Lord's", - day: 4, - matchDate: new Date('2026-06-04T10:00:00.000Z'), - homeTeam: { - name: 'England', - paID: 'a359844f-fc07-9cfa-d4cc-9a9ac0d5d075', - }, - awayTeam: { - name: 'New Zealand', - paID: '110c70b5-c05f-3be7-6670-baecd50a8c6b', - }, - innings: [ - { - battingTeam: 'England', - runs: 140, - overs: '39.4', - declared: false, - forfeited: false, - fallOfWickets: 10, - }, - { - battingTeam: 'New Zealand', - runs: 113, - overs: '29.5', - declared: false, - forfeited: false, - fallOfWickets: 10, - }, - { - battingTeam: 'England', - runs: 226, - overs: '56.0', - declared: false, - forfeited: false, - fallOfWickets: 10, - }, - { - battingTeam: 'New Zealand', - runs: 138, - overs: '40.3', - declared: false, - forfeited: false, - fallOfWickets: 10, - }, - ], - result: { + it('parses a winner result cricket match correctly', () => { + const result = parseCricketMatchV2( + cricketMatchData.cricketMatch, + ).getOrThrow('Expected parsing cricket match to succeed'); + + expect(result.kind).toEqual('Result'); + expect(result.result).toEqual({ type: 'home-win', description: 'England win by 115 runs', winner: { @@ -60,14 +16,8 @@ describe('parseCricketMatchV2', () => { team: 'England', margin: 115, }, - }, - }; - it('parses a winner result cricket match correctly', () => { - const result = parseCricketMatchV2( - cricketMatchData.cricketMatch, - ).getOrThrow('Expected parsing cricket match to succeed'); - - expect(result).toEqual(expected); + }); + expect(result.matchDate).toEqual(new Date('2026-06-04T10:00:00.000Z')); }); it('parses a cricket match in pre-match status', () => { @@ -77,11 +27,8 @@ describe('parseCricketMatchV2', () => { fullResult: undefined, }).getOrThrow('Expected parsing cricket match to succeed'); - expect(result).toEqual({ - ...expected, - kind: 'Fixture', - result: undefined, - }); + expect(result.kind).toEqual('Fixture'); + expect(result.result).toEqual(undefined); }); it('parses a cricket match in in-play status', () => { @@ -91,11 +38,8 @@ describe('parseCricketMatchV2', () => { fullResult: undefined, }).getOrThrow('Expected parsing cricket match to succeed'); - expect(result).toEqual({ - ...expected, - kind: 'Live', - result: undefined, - }); + expect(result.kind).toEqual('Live'); + expect(result.result).toEqual(undefined); }); it('parses an abandoned cricket match correctly', () => { @@ -108,13 +52,10 @@ describe('parseCricketMatchV2', () => { }, }).getOrThrow('Expected parsing cricket match to succeed'); - expect(result).toEqual({ - ...expected, - result: { - type: 'abandoned', - description: 'Match abandoned due to rain', - winner: undefined, - }, + expect(result.result).toEqual({ + type: 'abandoned', + description: 'Match abandoned due to rain', + winner: undefined, }); }); @@ -128,13 +69,10 @@ describe('parseCricketMatchV2', () => { }, }).getOrThrow('Expected parsing cricket match to succeed'); - expect(result).toEqual({ - ...expected, - result: { - type: 'no-result', - description: 'No result', - winner: undefined, - }, + expect(result.result).toEqual({ + type: 'no-result', + description: 'No result', + winner: undefined, }); }); }); diff --git a/dotcom-rendering/src/cricketMatchV2.ts b/dotcom-rendering/src/cricketMatchV2.ts index 42d8420a735..14f853411b5 100644 --- a/dotcom-rendering/src/cricketMatchV2.ts +++ b/dotcom-rendering/src/cricketMatchV2.ts @@ -56,6 +56,7 @@ export type FallOfWicket = { export type CricketTeam = { name: string; paID: string; + lineup: string[]; }; export type Innings = { @@ -64,19 +65,10 @@ export type Innings = { bowlers: Bowler[]; batters: Batter[]; extras: Extras; - declared?: boolean; - forfeited?: boolean; - inningsTotals: InningsTotals; - fallOfWickets: FallOfWicket[]; -}; - -export type InningsOverview = { - battingTeam: string; - runs: number; - overs: string; declared: boolean; forfeited: boolean; - fallOfWickets: number; + inningsTotals: InningsTotals; + fallOfWickets: FallOfWicket[]; }; const winnerTypesSchema = picklist([ @@ -133,8 +125,9 @@ export type CricketMatch = { matchDate: Date; homeTeam: CricketTeam; awayTeam: CricketTeam; - innings: InningsOverview[]; + innings: Innings[]; result?: CricketResult; + officials: string[]; }; const paCricketStatusToMatchKind: Record = { @@ -218,10 +211,12 @@ const parseTeams = ( homeTeam: { name: homeSource.name, paID: homeSource.id, + lineup: homeSource.lineup, }, awayTeam: { name: awaySource.name, paID: awaySource.id, + lineup: awaySource.lineup, }, }); }; @@ -338,14 +333,50 @@ export const parseCricketMatchV2 = ( homeTeam, awayTeam, innings: feMatch.innings.map((innings) => ({ + description: innings.description, battingTeam: innings.battingTeam, - runs: innings.runsScored, - overs: innings.overs, + bowlers: innings.bowlers.map((bowler) => ({ + name: bowler.name, + overs: bowler.overs, + maidens: bowler.maidens, + runs: bowler.runs, + wickets: bowler.wickets, + balls: bowler.balls, + })), + batters: innings.batters.map((batter) => ({ + name: batter.name, + ballsFaced: batter.ballsFaced, + runs: batter.runs, + fours: batter.fours, + sixes: batter.sixes, + howOut: batter.howOut, + out: batter.out, + onStrike: batter.onStrike, + nonStrike: batter.nonStrike, + })), + extras: { + byes: innings.byes, + legByes: innings.legByes, + noBalls: innings.noBalls, + penalties: innings.penalties, + wides: innings.wides, + }, declared: innings.declared, forfeited: innings.forfeited, - fallOfWickets: innings.fallOfWicket.length, + fallOfWickets: innings.fallOfWicket.map((fallOfWicket) => ({ + order: fallOfWicket.order, + name: fallOfWicket.name, + runs: fallOfWicket.runs, + })), + inningsTotals: { + extras: innings.extras, + runs: innings.runsScored, + overs: innings.overs, + wickets: innings.wickets, + }, })), result: parsedResult, + officials: feMatch.officials, }), ), ); From f6afb2fa1b01b77de56902e709f429ea28f27c65 Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Mon, 15 Jun 2026 10:05:22 +0100 Subject: [PATCH 095/293] Fix rebase conflicts and lint errors --- .../src/components/CricketScorecardPageNew.stories.tsx | 8 ++++---- .../src/components/CricketScorecardPageNew.tsx | 8 -------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx index e168d6e892e..ff54be283bd 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx @@ -56,10 +56,6 @@ const baseArgs = { "Will O'Rourke", ], }, - selectedTab: 'info' as 'info' | 'live' | 'report', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), innings: [], officials: [ 'P R Reiffel', @@ -69,6 +65,10 @@ const baseArgs = { 'R S Madugalle', ], }, + selectedTab: 'info' as 'info' | 'live' | 'report', + infoURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', + ), edition: 'UK', } satisfies ComponentProps; diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx index d3ffaeeab2c..20210933518 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx @@ -1,6 +1,5 @@ import { css } from '@emotion/react'; import { from, space } from '@guardian/source/foundations'; -import type { ComponentProps } from 'react'; import type { CricketMatch } from '../cricketMatchV2'; import { grid } from '../grid'; import { type EditionId } from '../lib/edition'; @@ -12,8 +11,6 @@ import type { TabName } from './FootballMatchHeader/Tabs'; export const CricketScorecardPageNew = ({ match, edition, - lineups, - officials, selectedTab, infoURL, liveURL, @@ -21,11 +18,6 @@ export const CricketScorecardPageNew = ({ }: { match: CricketMatch; edition: EditionId; - lineups: { - homeTeam: string[]; - awayTeam: string[]; - }; - officials: string[]; selectedTab: TabName; infoURL?: URL; liveURL?: URL; From a1fc18586eac77ae41808dbc91e23834c3a9882a Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Mon, 15 Jun 2026 08:34:02 +0100 Subject: [PATCH 096/293] Fixes an issue where End events can be sent without preceding milestones (i.e. 25/50/75) --- dotcom-rendering/src/lib/useVideoMilestoneTracking.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dotcom-rendering/src/lib/useVideoMilestoneTracking.ts b/dotcom-rendering/src/lib/useVideoMilestoneTracking.ts index ac861f87448..ba6054651b4 100644 --- a/dotcom-rendering/src/lib/useVideoMilestoneTracking.ts +++ b/dotcom-rendering/src/lib/useVideoMilestoneTracking.ts @@ -56,6 +56,7 @@ export const useVideoMilestoneTracking = ( if ('ended' in progress) { reachedEnd = true; + percent = 100; } else if ('duration' in progress && progress.duration > 0) { percent = (progress.currentTime / progress.duration) * 100; @@ -65,6 +66,7 @@ export const useVideoMilestoneTracking = ( */ if (Math.abs(progress.duration - progress.currentTime) < 0.5) { reachedEnd = true; + percent = 100; } } From e06bd088148679cb31d1c528d0e0232cedfa6b6e Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Mon, 15 Jun 2026 09:03:02 +0100 Subject: [PATCH 097/293] Discard handling end events if they not from a playing state --- .../src/components/SelfHostedVideo.island.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index bf20c993dfe..ecfa45c97d0 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -1117,9 +1117,11 @@ export const SelfHostedVideo = ({ }; const handleEnded = () => { - trackMilestones({ ended: true }); - resetMilestones(); - setPlayerState('ENDED'); + if (playerState === 'PLAYING') { + trackMilestones({ ended: true }); + resetMilestones(); + setPlayerState('ENDED'); + } }; /** From 423736c4ca175178a70ed3220e74143c537e84d2 Mon Sep 17 00:00:00 2001 From: Jonathon Herbert Date: Sun, 14 Jun 2026 21:28:34 +0100 Subject: [PATCH 098/293] Add test to prove liveblog is not rendering pagination controls for destinations that are empty strings --- .../src/components/Pagination.test.tsx | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 dotcom-rendering/src/components/Pagination.test.tsx diff --git a/dotcom-rendering/src/components/Pagination.test.tsx b/dotcom-rendering/src/components/Pagination.test.tsx new file mode 100644 index 00000000000..2e0e586eeeb --- /dev/null +++ b/dotcom-rendering/src/components/Pagination.test.tsx @@ -0,0 +1,64 @@ +import { render } from '@testing-library/react'; +import { Pagination } from './Pagination'; + +describe('Pagination', () => { + describe('newer and newest', () => { + it('does not render the newer/newest controls when the props are undefined', () => { + const { queryAllByText, queryByText } = render( + , + ); + + expect(queryAllByText('Newest').length).toBe(0); + expect(queryByText('Previous')).toBeNull(); + }); + + it('renders the newer/newest controls when the props are empty strings', () => { + const { queryAllByText, queryByText } = render( + , + ); + + expect(queryAllByText('Newest').length).toBeGreaterThan(0); + expect(queryByText('Previous')).not.toBeNull(); + }); + }); + + describe('older and oldest', () => { + it('does not render the older/oldest controls when the props are undefined', () => { + const { queryAllByText, queryByText } = render( + , + ); + + expect(queryAllByText('Oldest').length).toBe(0); + expect(queryByText('Next')).toBeNull(); + }); + + it('renders the older/oldest controls when the props are empty strings', () => { + const { queryAllByText, queryByText } = render( + , + ); + + expect(queryAllByText('Oldest').length).toBeGreaterThan(0); + expect(queryByText('Next')).not.toBeNull(); + }); + }); +}); From 072656e49f92fc0bf4a96c7335a500c500eef517 Mon Sep 17 00:00:00 2001 From: Jonathon Herbert Date: Sun, 14 Jun 2026 21:28:49 +0100 Subject: [PATCH 099/293] Fix tests --- dotcom-rendering/src/components/Pagination.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dotcom-rendering/src/components/Pagination.tsx b/dotcom-rendering/src/components/Pagination.tsx index 5baf7bb3fac..793ba3c2eb2 100644 --- a/dotcom-rendering/src/components/Pagination.tsx +++ b/dotcom-rendering/src/components/Pagination.tsx @@ -93,7 +93,7 @@ export const Pagination = ({ style={{ gridArea: 'newer', justifySelf: 'start' }} css={flexSection} > - {!!newest && ( + {newest !== undefined && ( <> )} - {!!newer && ( + {newer !== undefined && ( - {!!older && ( + {older !== undefined && ( )} - {!!oldest && ( + {oldest !== undefined && ( <> Date: Mon, 15 Jun 2026 09:33:54 +0100 Subject: [PATCH 100/293] Add more representative fixture data --- dotcom-rendering/src/components/Pagination.test.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dotcom-rendering/src/components/Pagination.test.tsx b/dotcom-rendering/src/components/Pagination.test.tsx index 2e0e586eeeb..051c3221497 100644 --- a/dotcom-rendering/src/components/Pagination.test.tsx +++ b/dotcom-rendering/src/components/Pagination.test.tsx @@ -51,8 +51,8 @@ describe('Pagination', () => { , ); From 1fb47ed2b073dea6f92780d1ba9617a25cdf41e5 Mon Sep 17 00:00:00 2001 From: Jonathon Herbert Date: Mon, 15 Jun 2026 10:01:38 +0100 Subject: [PATCH 101/293] Don't start a query string in pagination links if there are no params --- .../src/components/Pagination.test.tsx | 20 +++++++++++++++++++ .../src/components/Pagination.tsx | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/dotcom-rendering/src/components/Pagination.test.tsx b/dotcom-rendering/src/components/Pagination.test.tsx index 051c3221497..e591d718ba3 100644 --- a/dotcom-rendering/src/components/Pagination.test.tsx +++ b/dotcom-rendering/src/components/Pagination.test.tsx @@ -30,6 +30,26 @@ describe('Pagination', () => { expect(queryAllByText('Newest').length).toBeGreaterThan(0); expect(queryByText('Previous')).not.toBeNull(); }); + + it('does not add an empty query string when there are no params to render', () => { + const { getAllByRole } = render( + , + ); + + expect( + getAllByRole('link').map((a) => (a as HTMLAnchorElement).href), + ).toEqual([ + 'http://localhost/#maincontent', + 'http://localhost/#maincontent', + 'http://localhost/#liveblog-navigation', + ]); + }); }); describe('older and oldest', () => { diff --git a/dotcom-rendering/src/components/Pagination.tsx b/dotcom-rendering/src/components/Pagination.tsx index 793ba3c2eb2..0bab3822c2c 100644 --- a/dotcom-rendering/src/components/Pagination.tsx +++ b/dotcom-rendering/src/components/Pagination.tsx @@ -72,6 +72,12 @@ const getPagePath = ({ searchParams.append('dcr', 'apps'); } + const fragmentPart = `#${fragment}`; + + if (!searchParams.size) { + return fragmentPart; + } + return `?${searchParams.toString()}#${fragment}`; }; From e6e2f43a26c16d1d86c310322711a14969e53321 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:12:31 +0100 Subject: [PATCH 102/293] use a prebuilt csstree.esm file --- dotcom-rendering/webpack/webpack.config.server.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dotcom-rendering/webpack/webpack.config.server.js b/dotcom-rendering/webpack/webpack.config.server.js index bb3282477b8..46b5b32c831 100644 --- a/dotcom-rendering/webpack/webpack.config.server.js +++ b/dotcom-rendering/webpack/webpack.config.server.js @@ -89,4 +89,9 @@ module.exports = { }, ], }, + resolve: { + alias: { + 'css-tree': require.resolve('css-tree/dist/csstree.esm'), + }, + }, }; From fb64354ff5dc96feac3501d7ee5b9a3738fbd442 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:22:07 +0100 Subject: [PATCH 103/293] moved css-tree alias to commonConfigs --- dotcom-rendering/webpack/webpack.config.js | 3 +++ dotcom-rendering/webpack/webpack.config.server.js | 5 ----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/dotcom-rendering/webpack/webpack.config.js b/dotcom-rendering/webpack/webpack.config.js index 9f55fe42a08..edae2c02715 100644 --- a/dotcom-rendering/webpack/webpack.config.js +++ b/dotcom-rendering/webpack/webpack.config.js @@ -31,6 +31,9 @@ const commonConfigs = ({ platform }) => ({ : 'eval-cheap-module-source-map', resolve: { extensions: ['.js', '.ts', '.tsx', '.jsx'], + alias: { + 'css-tree': require.resolve('css-tree/dist/csstree.esm'), + }, }, ignoreWarnings: [ /** diff --git a/dotcom-rendering/webpack/webpack.config.server.js b/dotcom-rendering/webpack/webpack.config.server.js index 46b5b32c831..bb3282477b8 100644 --- a/dotcom-rendering/webpack/webpack.config.server.js +++ b/dotcom-rendering/webpack/webpack.config.server.js @@ -89,9 +89,4 @@ module.exports = { }, ], }, - resolve: { - alias: { - 'css-tree': require.resolve('css-tree/dist/csstree.esm'), - }, - }, }; From 756cd703f1a19526808f866aad3c95c0ddaaa774 Mon Sep 17 00:00:00 2001 From: Jonathon Herbert Date: Mon, 15 Jun 2026 12:04:33 +0100 Subject: [PATCH 104/293] Revert "Don't start a query string in pagination links if there are no params" This reverts commit 2fb5a73499947d65391a798a68dd5bba8e1ea531. --- .../src/components/Pagination.test.tsx | 20 ------------------- .../src/components/Pagination.tsx | 6 ------ 2 files changed, 26 deletions(-) diff --git a/dotcom-rendering/src/components/Pagination.test.tsx b/dotcom-rendering/src/components/Pagination.test.tsx index e591d718ba3..051c3221497 100644 --- a/dotcom-rendering/src/components/Pagination.test.tsx +++ b/dotcom-rendering/src/components/Pagination.test.tsx @@ -30,26 +30,6 @@ describe('Pagination', () => { expect(queryAllByText('Newest').length).toBeGreaterThan(0); expect(queryByText('Previous')).not.toBeNull(); }); - - it('does not add an empty query string when there are no params to render', () => { - const { getAllByRole } = render( - , - ); - - expect( - getAllByRole('link').map((a) => (a as HTMLAnchorElement).href), - ).toEqual([ - 'http://localhost/#maincontent', - 'http://localhost/#maincontent', - 'http://localhost/#liveblog-navigation', - ]); - }); }); describe('older and oldest', () => { diff --git a/dotcom-rendering/src/components/Pagination.tsx b/dotcom-rendering/src/components/Pagination.tsx index 0bab3822c2c..793ba3c2eb2 100644 --- a/dotcom-rendering/src/components/Pagination.tsx +++ b/dotcom-rendering/src/components/Pagination.tsx @@ -72,12 +72,6 @@ const getPagePath = ({ searchParams.append('dcr', 'apps'); } - const fragmentPart = `#${fragment}`; - - if (!searchParams.size) { - return fragmentPart; - } - return `?${searchParams.toString()}#${fragment}`; }; From 0a41f96f5e4d2ece9d2b322349cdbf74b97924df Mon Sep 17 00:00:00 2001 From: andresilva-guardian Date: Mon, 15 Jun 2026 12:18:04 +0100 Subject: [PATCH 105/293] Feast Contextual Nudges (#15752) * Add Feast contextual nudge component and integrate into recipe article layout * Remove Feast contextual nudge component from StandardLayout * Integrate Feast contextual nudge into recipe articles and add related stories * Refactor Feast contextual nudge injection to target every SubheadingBlockElement in recipe articles * Rename variable for clarity in Feast contextual nudge injection within ArticleRenderer * Add compact mode to Feast contextual nudge for multi-recipe articles * Refactor Feast contextual nudge injection to apply only for recipe articles * Add dark mode support to Feast contextual nudge component and stories * Add FeastRecipeNudge component and its stories; integrate into ArticleRenderer for recipe articles * Hide FeastRecipeNudge in wide view to prevent overlap with sticky left column * Add Feast Recipe Nudges documentation outlining components, functionality, and A/B testing details * Remove unused textSans14 import from FeastRecipeNudge component * Update Feast Recipe Nudges documentation for clarity and structure * Refine Feast Recipe Nudges documentation for clarity and consistency * Add comprehensive documentation for the recipe article data pipeline * Add RecipeBlockElement and related types for recipe functionality * Enhance Feast components to support structured recipe data and improve deep linking functionality * feat: add RecipeCardInline and RecipeCardLeftCol components with stories - Introduced RecipeCardInline component to display recipe details inline with dismiss functionality. - Added RecipeCardLeftCol component for sticky left-column recipe display. - Created stories for both components to showcase various states and dark mode. - Updated ArticleRenderer to integrate new RecipeCard components, replacing previous FeastRecipeNudge components. * refactor: remove RecipeCardInlineIsland and update ArticleRenderer to use RecipeCardInline directly * feat: enhance RecipeCard components with structured recipe data and improved layout * feat: add RecipeBlockElement for Spring onion pancakes with detailed recipe information * feat: update featured image URLs for RecipeCard components to enhance visual consistency * feat: display feast ID in RecipeCard components for better identification * feat: update RecipeBlockElement structure and remove unnecessary fields for improved clarity and performance refactor: simplify RecipeCardInline and RecipeCardLeftCol components by removing unused props and styles fix: adjust ArticleRenderer to handle new RecipeJson structure for better data management * feat: remove isAppReady field from RecipeBlockElement and related components for cleaner structure * feat: remove A/B test for Feast contextual nudge and clean up related code * Revert file to original version * feat: enforce URI format for RecipeFeaturedImage URLs and mediaApiUri * Revert file back to original version * fix: reorder import statements for consistency in ArticleRenderer * Refactor RecipeCard components and remove unused RecipeCardLeftCol * Remove outdated documentation for recipe article data and payload reference * Refactor RecipeCardInline and ArticleRenderer components for improved readability and performance * Add FeastContextualNudge component and update references in stories and ArticleRenderer * Remove RecipeCardInline component and its associated stories * Update darkModeAvailable condition in ArticleRenderer for web rendering target * Remove darkModeAvailable prop from ArticleRenderer and update FeastContextualNudge to use config context for dark mode handling * Conditionally render FeastContextualNudge in ArticleRenderer for recipe sections * Refactor FeastContextualNudge component: update styles, remove unused props, and enhance accessibility attributes * Refactor FeastContextualNudge and ArticleRenderer: update recipe name prop to recipeArticleTitle and adjust styles for consistency * Refactor FeastContextualNudge: remove unused text styles for cleaner code * Refactor FeastContextualNudge: implement deep link generation and update button behavior for Feast app * Refactor FeastContextualNudge and ArticleRenderer: remove unused brazeBannersSystemPlacementIdIndex prop for cleaner code * Refactor FeastContextualNudge stories: rename recipeName prop to recipeArticleTitle for consistency * Refactor FeastContextualNudge and ArticleRenderer: add isDev prop for development logging * Refactor FeastContextualNudge stories: add isDev prop for development logging * Refactor FeastContextualNudge: reorder import statement for consistency * Add RecipeBlockElement and RecipeFeaturedImage definitions to block schemas * Refactor FeastContextualNudge: improve URL encoding and enforce recipe prop * Add tests for ArticleRenderer to validate rendering of RecipeBlockElement and FeastContextualNudge * Add type annotation for tags in defaultProps * Fix import order in ArticleRenderer.test.tsx * Refactor FeastContextualNudge: move to island component and update imports in ArticleRenderer * Add Feast contextual nudge AB test and integrate into component * Remove unused utility function `stripHtmlTags` from FeastContextualNudge component * Update FeastContextualNudge: simplify heading and enhance app download prompt * Add mockBetaABVariant1 function to stories for FeastContextualNudge and DecideLayout * Add role attribute to Island component in ArticleRenderer for accessibility * Enhance FeastContextualNudge description styles: bold text for emphasis * Refactor import statements: move useBetaAB import to maintain consistency in component files * Refactor import statements: reposition useBetaAB import for consistency * Fix indentation for withSignInGateSlot function call in ArticleRenderer * Refactor import statements: replace useBetaAB with useAB for consistency * Update audienceSize in feast-recipe-nudge ABTest to 100% * Add audienceSpace "D" to ABTest configuration and validation --- ab-testing/config/abTests.ts | 13 + .../config/scripts/validation/enoughSpace.ts | 2 +- ab-testing/config/types.ts | 3 +- .../fixtures/generated/fe-articles/Recipe.ts | 14 + .../FeastContextualNudge.island.tsx | 224 ++++++++++++++++ .../FeastContextualNudge.stories.tsx | 68 +++++ .../src/frontend/schemas/feArticle.json | 71 ++++++ .../src/layouts/DecideLayout.stories.tsx | 21 ++ .../src/lib/ArticleRenderer.test.tsx | 240 ++++++++++++++++++ dotcom-rendering/src/lib/ArticleRenderer.tsx | 93 ++++++- dotcom-rendering/src/model/block-schema.json | 71 ++++++ dotcom-rendering/src/types/content.ts | 25 +- 12 files changed, 839 insertions(+), 6 deletions(-) create mode 100644 dotcom-rendering/src/components/FeastContextualNudge.island.tsx create mode 100644 dotcom-rendering/src/components/FeastContextualNudge.stories.tsx create mode 100644 dotcom-rendering/src/lib/ArticleRenderer.test.tsx diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index 15692d9a3f5..aef2224674e 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -184,6 +184,19 @@ const ABTests: ABTest[] = [ groups: ["control", "variant"], shouldForceMetricsCollection: false, }, + { + name: "feast-recipe-nudge", + description: + "Measures the impact of showing the Feast contextual nudge on recipe article pages", + owners: ["feast@theguardian.com"], + status: "ON", + expirationDate: "2027-01-01", + type: "client", + audienceSize: 1, + audienceSpace: "D", + groups: ["control", "variant-1"], + shouldForceMetricsCollection: false, + }, ]; const activeABtests = ABTests.filter((test) => test.status === "ON"); diff --git a/ab-testing/config/scripts/validation/enoughSpace.ts b/ab-testing/config/scripts/validation/enoughSpace.ts index a37c2b96cc5..083139c3a32 100644 --- a/ab-testing/config/scripts/validation/enoughSpace.ts +++ b/ab-testing/config/scripts/validation/enoughSpace.ts @@ -8,7 +8,7 @@ export function enoughSpace(allTests: ABTest[]) { acc[space] += test.audienceSize; return acc; }, - { A: 0, B: 0, C: 0 }, + { A: 0, B: 0, C: 0, D: 0 }, ); Object.entries(spaceTotalSize).forEach(([space, size]) => { diff --git a/ab-testing/config/types.ts b/ab-testing/config/types.ts index c705429674f..1ea5f4352ed 100644 --- a/ab-testing/config/types.ts +++ b/ab-testing/config/types.ts @@ -13,6 +13,7 @@ type Team = | "newsletters" | "fronts-and-curation" | "growth" + | "feast" | "martech"; type TestName = `${Team}-${string}`; @@ -44,7 +45,7 @@ type ABTest = { * Having multiple test spaces allows deliberate overlapping of test audiences * Defaults to A */ - audienceSpace?: "A" | "B" | "C"; + audienceSpace?: "A" | "B" | "C" | "D"; /** Test group definition */ groups: string[]; /** diff --git a/dotcom-rendering/fixtures/generated/fe-articles/Recipe.ts b/dotcom-rendering/fixtures/generated/fe-articles/Recipe.ts index 23e2a439f2d..70e2128cea9 100644 --- a/dotcom-rendering/fixtures/generated/fe-articles/Recipe.ts +++ b/dotcom-rendering/fixtures/generated/fe-articles/Recipe.ts @@ -286,6 +286,20 @@ export const Recipe: FEArticle = { html: '

    Spring onion pancakes with sesame sauce

    ', elementId: '6338873b-49fd-48e4-9851-fefd51c92dab', }, + { + _type: 'model.dotcomrendering.pageElements.RecipeBlockElement', + id: 'e5a2cb2a63b788eae68ff654f739eff53a0cee28', + title: 'Spring onion pancakes with sesame sauce', + description: + "The world of pancakes is so vast, it is hard to think that on Pancake Day, there could be only one type proffered across the world. This offering is for cong you bing, a flaky, coiled, spring onion pancake ubiquitous across China. It's as enjoyable to make as it is to eat and, happily, there's no whiff of abstinence about it.", + featuredImage: { + url: 'https://i.guim.co.uk/img/media/9dcb491db0315d5598fc47aa51d049e12eedcbbc/0_18_2831_3539/master/2831.jpg?width=620&dpr=2&s=none&crop=none', + mediaId: 'e5a2cb2a63b788eae68ff654f739eff53a0cee28', + cropId: '0_0_3731_4384', + caption: + "Meera Sodha's spring onion pancakes with sesame sauce", + }, + }, { _type: 'model.dotcomrendering.pageElements.TextBlockElement', html: '

    Prep 5 min
    Rest 30 min
    Cook 1 hr
    Makes 4, to serve 2 for lunch

    ', diff --git a/dotcom-rendering/src/components/FeastContextualNudge.island.tsx b/dotcom-rendering/src/components/FeastContextualNudge.island.tsx new file mode 100644 index 00000000000..db65578bac4 --- /dev/null +++ b/dotcom-rendering/src/components/FeastContextualNudge.island.tsx @@ -0,0 +1,224 @@ +import { css } from '@emotion/react'; +import { + article15, + from, + palette as sourcePalette, + space, +} from '@guardian/source/foundations'; +import { LinkButton } from '@guardian/source/react-components'; +import { useEffect, useState } from 'react'; +import { useAB } from '../lib/useAB'; +import type { StageType } from '../types/config'; +import type { RecipeBlockElement } from '../types/content'; +import { useConfig } from './ConfigContext'; + +// ── Feast brand colours ─────────────────────────────────────────────────────── + +const FEAST_BG = '#F3F3E9'; +const FEAST_BG_DARK = '#2B2B26'; +const FEAST_TEXT = sourcePalette.neutral[10]; +const FEAST_TEXT_DARK = sourcePalette.neutral[100]; +const FEAST_SUBTEXT = sourcePalette.neutral[20]; +const FEAST_SUBTEXT_DARK = sourcePalette.neutral[93]; +const FEAST_GREEN = '#68773C'; +const FEAST_GREEN_HOVER = '#4d5c2b'; +const FEAST_BORDER = FEAST_GREEN; +const FEAST_BORDER_DARK = FEAST_GREEN; + +// ── CSS custom properties ───────────────────────────────────────────────────── + +const lightVars = css` + --feast-nudge-bg: ${FEAST_BG}; + --feast-nudge-heading: ${FEAST_TEXT}; + --feast-nudge-subtext: ${FEAST_SUBTEXT}; + --feast-nudge-border: ${FEAST_BORDER}; +`; + +const darkVars = css` + --feast-nudge-bg: ${FEAST_BG_DARK}; + --feast-nudge-heading: ${FEAST_TEXT_DARK}; + --feast-nudge-subtext: ${FEAST_SUBTEXT_DARK}; + --feast-nudge-border: ${FEAST_BORDER_DARK}; +`; + +// ── Deep-link helpers ───────────────────────────────────────────────────────── + +const FEAST_ADJUST_TOKEN_PROD = '20wmhy68'; +const FEAST_ADJUST_TOKEN_CODE = '20o7ykck'; + +const buildFeastLink = (recipeId: string, stage: StageType): string => { + const token = + stage === 'PROD' ? FEAST_ADJUST_TOKEN_PROD : FEAST_ADJUST_TOKEN_CODE; + return `https://guardian-feast.go.link/recipe/${encodeURIComponent( + recipeId, + )}?adj_t=${encodeURIComponent(token)}`; +}; + +// ── Button themes ───────────────────────────────────────────────────────────── + +const primaryCtaTheme = { + backgroundPrimary: FEAST_GREEN, + backgroundPrimaryHover: FEAST_GREEN_HOVER, + textPrimary: sourcePalette.neutral[100], +} as const; + +// ── Grid template ───────────────────────────────────────────────────────────── + +const cardGridStyles = css` + grid-template: + 'image info' + 'buttons buttons' + 'details details' / 1fr 1fr; + ${from.mobileLandscape} { + grid-template: + 'image info' auto + 'image buttons' 1fr + 'details details' / 1fr 1fr; + } +`; + +// ── Card styles ─────────────────────────────────────────────────────────────── + +const showcaseCardStyles = css` + ${lightVars}; + padding: 5px ${space[2]}px 10px ${space[2]}px; + max-width: 100%; + background-color: var(--feast-nudge-bg); + border-top: 1px solid ${FEAST_GREEN}; + display: flex; + flex-direction: column; + gap: ${space[2]}px; + margin: ${space[2]}px 0; +`; + +// ── Grid area styles ────────────────────────────────────────────────────────── + +const productInfoContainerStyles = css` + display: flex; + flex-direction: column; + gap: ${space[1]}px; +`; + +const buttonWrapperStyles = css` + grid-area: buttons; + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: ${space[1]}px; +`; + +const descriptionStyles = css` + ${article15}; + color: var(--feast-nudge-subtext); + b { + font-weight: bold; + } +`; + +// ── Props ───────────────────────────────────────────────────────────────────── + +type FeastContextualNudgeProps = { + recipe: RecipeBlockElement; + recipeArticleTitle: string; + pageId: string; + isDev: boolean; +}; + +/** + * Inline contextual nudge prompting readers to open the current recipe in the + * Feast app. Rendered as an island so that client-only concerns (stage + * detection, dark-mode, Storybook colour-scheme) are handled safely without + * hydration mismatches. + * + * ## Why does this need to be an Island? + * + * The component reads `window.guardian.config.stage` at runtime to build the + * correct Adjust deep-link token. Reading `window.*` during SSR would cause a + * hydration mismatch; wrapping it as an island means it is only ever executed + * on the client. + */ +export const FeastContextualNudge = ({ + recipe, + recipeArticleTitle, + pageId, + isDev, +}: FeastContextualNudgeProps) => { + const abTests = useAB(); + const isVariant = + abTests?.isUserInTestGroup('feast-recipe-nudge', 'variant-1') ?? false; + + const { darkModeAvailable } = useConfig(); + + const [isStorybook, setIsStorybook] = useState(false); + useEffect(() => { + if (!('STORIES' in window)) return; + setIsStorybook(true); + }, []); + + const [stage, setStage] = useState('PROD'); + useEffect(() => { + setStage(window.guardian.config.stage); + }, []); + + const title = recipe.title ?? recipeArticleTitle; + const feastId = recipe.id; + + useEffect(() => { + if (isDev) { + console.log( + `Contextual nudge for the Feast app, related to the recipe: ${title}. (id: ${feastId}; pageId: ${pageId})`, + ); + } + }, [feastId, title, pageId, isDev]); + + if (!isVariant) return null; + + return ( +
    + {/* info: title · id */} +
    +
    + Want to save this recipe? Download the Guardian Feast + app to add this to your collection. +
    +
    + + {/* buttons */} +
    + + Download the app + +
    +
    + ); +}; diff --git a/dotcom-rendering/src/components/FeastContextualNudge.stories.tsx b/dotcom-rendering/src/components/FeastContextualNudge.stories.tsx new file mode 100644 index 00000000000..89eff8100fb --- /dev/null +++ b/dotcom-rendering/src/components/FeastContextualNudge.stories.tsx @@ -0,0 +1,68 @@ +import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import { mocked } from 'storybook/test'; +import { darkDecorator } from '../../.storybook/decorators/themeDecorator'; +import { ArticleDesign, ArticleDisplay, Pillar } from '../lib/articleFormat'; +import { useAB } from '../lib/useAB'; +import type { RecipeBlockElement } from '../types/content'; +import { FeastContextualNudge } from './FeastContextualNudge.island'; + +const mockBetaABVariant1 = () => { + mocked(useAB).mockReturnValue({ + isUserInTestGroup: (_testId: string, group: string) => + group === 'variant-1', + isUserInTest: () => true, + getParticipations: () => ({}), + trackABTests: () => ({}), + }); +}; + +const recipeFormat = { + design: ArticleDesign.Recipe, + display: ArticleDisplay.Standard, + theme: Pillar.Lifestyle, +}; + +const mockRecipe: RecipeBlockElement = { + _type: 'model.dotcomrendering.pageElements.RecipeBlockElement', + id: 'a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4', + title: "Meera Sodha's spring onion pancakes", + description: + 'Crisp and savoury, these spring onion pancakes are a perfect weekend brunch or a quick weeknight snack. Serve with the chilli oil for a serious kick.', + featuredImage: { + url: 'https://i.guim.co.uk/img/media/9dcb491db0315d5598fc47aa51d049e12eedcbbc/0_18_2831_3539/master/2831.jpg?width=620&dpr=2&s=none&crop=none', + mediaId: 'a4a7c9d0d6a5b2e0f0c0d1e2f3a4b5c6d7e8f9a0', + cropId: '0_0_5000_3000', + caption: 'Spring onion pancakes with chilli oil', + }, +}; +const meta = { + title: 'Components/FeastContextualNudge', + component: FeastContextualNudge, + args: { + pageId: 'food/2021/feb/06/meera-sodhas-vegan-recipe-for-spring-onion-pancakes', + recipeArticleTitle: "Meera Sodha's spring onion pancakes", + recipe: mockRecipe, + isDev: true, + }, + parameters: { + chromatic: { viewports: [375, 740, 980] }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +/** Default — recipe name + CTAs */ +export const Default: Story = { + beforeEach() { + mockBetaABVariant1(); + }, +}; + +/** Dark mode */ +export const DefaultDark: Story = { + beforeEach() { + mockBetaABVariant1(); + }, + decorators: [darkDecorator([recipeFormat])], +}; diff --git a/dotcom-rendering/src/frontend/schemas/feArticle.json b/dotcom-rendering/src/frontend/schemas/feArticle.json index 028f4748dea..3c7cdf9ab7d 100644 --- a/dotcom-rendering/src/frontend/schemas/feArticle.json +++ b/dotcom-rendering/src/frontend/schemas/feArticle.json @@ -893,6 +893,9 @@ }, { "$ref": "#/definitions/ProductSummaryElement" + }, + { + "$ref": "#/definitions/RecipeBlockElement" } ] }, @@ -4817,6 +4820,74 @@ "variant" ] }, + "RecipeBlockElement": { + "type": "object", + "properties": { + "_type": { + "type": "string", + "const": "model.dotcomrendering.pageElements.RecipeBlockElement" + }, + "elementId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "featuredImage": { + "$ref": "#/definitions/RecipeFeaturedImage" + } + }, + "required": [ + "_type", + "id" + ] + }, + "RecipeFeaturedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "mediaId": { + "type": "string" + }, + "cropId": { + "type": "string" + }, + "source": { + "type": "string" + }, + "photographer": { + "type": "string" + }, + "imageType": { + "type": "string" + }, + "caption": { + "type": "string" + }, + "width": { + "type": "number" + }, + "height": { + "type": "number" + }, + "mediaApiUri": { + "type": "string" + } + }, + "required": [ + "cropId", + "mediaId", + "url" + ] + }, "Block": { "type": "object", "properties": { diff --git a/dotcom-rendering/src/layouts/DecideLayout.stories.tsx b/dotcom-rendering/src/layouts/DecideLayout.stories.tsx index e65424200ac..dfcd63a9eb1 100644 --- a/dotcom-rendering/src/layouts/DecideLayout.stories.tsx +++ b/dotcom-rendering/src/layouts/DecideLayout.stories.tsx @@ -2,6 +2,7 @@ import { isObject } from '@guardian/libs'; import { breakpoints } from '@guardian/source/foundations'; import type { Decorator, StoryObj } from '@storybook/react-webpack5'; import { useEffect } from 'react'; +import { mocked } from 'storybook/test'; import { colourSchemeDecorator } from '../../.storybook/decorators/themeDecorator'; import { AffiliateProductShowcase as AffiliateProductShowcaseFixture } from '../../fixtures/generated/fe-articles/AffiliateProductShowcase'; import { AffiliateProductStandard as AffiliateProductStandardFixture } from '../../fixtures/generated/fe-articles/AffiliateProductStandard'; @@ -25,6 +26,7 @@ import { Pillar, } from '../lib/articleFormat'; import { getCurrentPillar } from '../lib/layoutHelpers'; +import { useAB } from '../lib/useAB'; import { extractNAV } from '../model/extract-nav'; import { type Article, enhanceArticleType } from '../types/article'; import { DecideLayout, type Props as DecideLayoutProps } from './DecideLayout'; @@ -292,7 +294,20 @@ const recipeStandardLifestyleWebFixture: Article = enhanceArticleType( 'Web', ); +const mockBetaFeastContextualNudgeABVariant1 = () => { + mocked(useAB).mockReturnValue({ + isUserInTestGroup: (_testId: string, group: string) => + group === 'variant-1', + isUserInTest: () => true, + getParticipations: () => ({}), + trackABTests: () => {}, + }); +}; + export const WebRecipeStandardLabsLight: Story = { + beforeEach() { + mockBetaFeastContextualNudgeABVariant1(); + }, args: { article: { ...recipeStandardLifestyleWebFixture, @@ -303,6 +318,9 @@ export const WebRecipeStandardLabsLight: Story = { }; export const AppsRecipeStandardLifestyleLight = { + beforeEach() { + mockBetaFeastContextualNudgeABVariant1(); + }, args: { article: enhanceArticleType(RecipeStandardLifestyleFixture, 'Apps'), colourScheme: 'light', @@ -311,6 +329,9 @@ export const AppsRecipeStandardLifestyleLight = { } satisfies Story; export const AppsRecipeStandardLifestyleDark: Story = { + beforeEach() { + mockBetaFeastContextualNudgeABVariant1(); + }, args: { article: AppsRecipeStandardLifestyleLight.args.article, colourScheme: 'dark', diff --git a/dotcom-rendering/src/lib/ArticleRenderer.test.tsx b/dotcom-rendering/src/lib/ArticleRenderer.test.tsx new file mode 100644 index 00000000000..374b01b00b8 --- /dev/null +++ b/dotcom-rendering/src/lib/ArticleRenderer.test.tsx @@ -0,0 +1,240 @@ +import { render, screen } from '@testing-library/react'; +import { ConfigProvider } from '../components/ConfigContext'; +import type { + FEElement, + RecipeBlockElement, + SubheadingBlockElement, + TextBlockElement, +} from '../types/content'; +import type { TagType } from '../types/tag'; +import { + ArticleDesign, + ArticleDisplay, + type ArticleFormat, + Pillar, +} from './articleFormat'; +import { ArticleRenderer } from './ArticleRenderer'; + +// ── Mocks ───────────────────────────────────────────────────────────────────── + +jest.mock('../components/FeastContextualNudge.island', () => ({ + FeastContextualNudge: ({ recipe }: { recipe: { id: string } }) => ( +
    + ), +})); + +jest.mock('./renderElement', () => ({ + RenderArticleElement: ({ index }: { index: number }) => ( +
    + ), +})); + +// ── Helpers ─────────────────────────────────────────────────────────────────── + +/** + * Wraps the component with a ConfigProvider using the Apps rendering target, + * which bypasses the withSignInGateSlot path and keeps tests focused on + * augmentedElements logic. + */ +const renderWithConfig = (ui: React.ReactElement) => + render( + + {ui} + , + ); + +const recipeFormat: ArticleFormat = { + design: ArticleDesign.Recipe, + display: ArticleDisplay.Standard, + theme: Pillar.Lifestyle, +}; + +const standardFormat: ArticleFormat = { + design: ArticleDesign.Standard, + display: ArticleDisplay.Standard, + theme: Pillar.News, +}; + +const defaultProps = { + pageId: 'test/page-id', + webTitle: 'Test Article', + ajaxUrl: 'https://api.test', + contentType: 'Article', + sectionId: 'food', + tags: [] as TagType[], + isPaidContent: false, + idUrl: 'https://id.test', + switches: {}, + isDev: false, + isAdFreeUser: false, + isSensitive: false, + abTests: {}, + editionId: 'UK' as const, + contributionsServiceUrl: 'https://contributions.test', + shouldHideAds: false, +} as const; + +const makeSubheading = (html: string, index = 0): SubheadingBlockElement => ({ + _type: 'model.dotcomrendering.pageElements.SubheadingBlockElement', + elementId: `subheading-${index}`, + html, +}); + +const makeRecipe = (id: string): RecipeBlockElement => ({ + _type: 'model.dotcomrendering.pageElements.RecipeBlockElement', + id, + title: `Recipe ${id}`, +}); + +const makeText = (index = 0): TextBlockElement => ({ + _type: 'model.dotcomrendering.pageElements.TextBlockElement', + elementId: `text-${index}`, + html: '

    Body text

    ', +}); + +// ── Tests ───────────────────────────────────────────────────────────────────── + +describe('ArticleRenderer — augmentedElements', () => { + it('passes elements through unchanged for non-Recipe formats', () => { + const elements: FEElement[] = [makeText(0), makeText(1)]; + + renderWithConfig( + , + ); + + expect(screen.getByTestId('article-element-0')).toBeInTheDocument(); + expect(screen.getByTestId('article-element-1')).toBeInTheDocument(); + expect(screen.queryByTestId('feast-nudge')).not.toBeInTheDocument(); + }); + + it('renders pre-section elements that appear before the first subheading', () => { + const elements: FEElement[] = [ + makeText(0), + makeSubheading('

    Recipe One

    '), + ]; + + renderWithConfig( + , + ); + + expect(screen.getByTestId('article-element-0')).toBeInTheDocument(); + }); + + it('renders FeastContextualNudge after the subheading when a RecipeBlockElement is present', () => { + const elements: FEElement[] = [ + makeSubheading('

    Pasta Recipe

    '), + makeRecipe('recipe-001'), + makeText(0), + ]; + + renderWithConfig( + , + ); + + const nudge = screen.getByTestId('feast-nudge'); + expect(nudge).toBeInTheDocument(); + expect(nudge).toHaveAttribute('data-recipe-id', 'recipe-001'); + }); + + it('does not render FeastContextualNudge when no RecipeBlockElement is in the section', () => { + const elements: FEElement[] = [ + makeSubheading('

    Pasta Recipe

    '), + makeText(0), + ]; + + renderWithConfig( + , + ); + + expect(screen.queryByTestId('feast-nudge')).not.toBeInTheDocument(); + }); + + it('suppresses the RecipeBlockElement from body rendering', () => { + // index 0 = subheading, index 1 = recipe (suppressed), index 2 = text + const elements: FEElement[] = [ + makeSubheading('

    Pasta Recipe

    '), + makeRecipe('recipe-001'), + makeText(0), + ]; + + renderWithConfig( + , + ); + + expect( + screen.queryByTestId('article-element-1'), + ).not.toBeInTheDocument(); + expect(screen.getByTestId('article-element-2')).toBeInTheDocument(); + }); + + it('handles multiple sections, each with its own nudge', () => { + const elements: FEElement[] = [ + makeSubheading('

    Recipe One

    ', 0), + makeRecipe('recipe-001'), + makeText(0), + makeSubheading('

    Recipe Two

    ', 1), + makeRecipe('recipe-002'), + makeText(1), + ]; + + renderWithConfig( + , + ); + + const nudges = screen.getAllByTestId('feast-nudge'); + expect(nudges).toHaveLength(2); + expect(nudges[0]).toHaveAttribute('data-recipe-id', 'recipe-001'); + expect(nudges[1]).toHaveAttribute('data-recipe-id', 'recipe-002'); + }); + + it('renders body elements within each section in order', () => { + const elements: FEElement[] = [ + makeSubheading('

    Recipe

    '), + makeRecipe('recipe-001'), + makeText(0), // index 2 + makeText(1), // index 3 + ]; + + renderWithConfig( + , + ); + + expect(screen.getByTestId('article-element-2')).toBeInTheDocument(); + expect(screen.getByTestId('article-element-3')).toBeInTheDocument(); + }); +}); diff --git a/dotcom-rendering/src/lib/ArticleRenderer.tsx b/dotcom-rendering/src/lib/ArticleRenderer.tsx index ee4845a046e..c5878173c14 100644 --- a/dotcom-rendering/src/lib/ArticleRenderer.tsx +++ b/dotcom-rendering/src/lib/ArticleRenderer.tsx @@ -1,8 +1,11 @@ import { css } from '@emotion/react'; +import { Fragment } from 'react'; import { useConfig } from '../components/ConfigContext'; +import { FeastContextualNudge } from '../components/FeastContextualNudge.island'; +import { Island } from '../components/Island'; import { interactiveLegacyClasses } from '../layouts/lib/interactiveLegacyStyling'; import type { ServerSideTests, Switches } from '../types/config'; -import type { FEElement } from '../types/content'; +import type { FEElement, RecipeBlockElement } from '../types/content'; import type { TagType } from '../types/tag'; import { spacefinderAdStyles } from './adStyles'; import { ArticleDesign, type ArticleFormat } from './articleFormat'; @@ -100,6 +103,90 @@ export const ArticleRenderer = ({ */ const { renderingTarget } = useConfig(); + /** + * For recipe articles, group elements into per-recipe sections separated + * by SubheadingBlockElements. Each section gets the subheading followed by + * a FeastContextualNudge (populated from the RecipeBlockElement if present, or + * showing a fallback using the recipe name), then the remaining body elements. + * + * Elements that precede the first subheading are rendered as-is. + */ + const augmentedElements = (() => { + if (format.design !== ArticleDesign.Recipe) { + return renderedElements; + } + + type RecipeSection = { + subheadingEl: JSX.Element; + recipe?: RecipeBlockElement; + recipeArticleTitle: string; + contentEls: JSX.Element[]; + index: number; + }; + + const preSection: JSX.Element[] = []; + const sections: RecipeSection[] = []; + let current: RecipeSection | null = null; + + for (const [i, el] of renderedElements.entries()) { + const data = elements[i]; + if ( + data?._type === + 'model.dotcomrendering.pageElements.SubheadingBlockElement' + ) { + const recipeArticleTitle = data.html + .replace(/<[^>]+>/g, '') + .trim(); + current = { + subheadingEl: el, + recipeArticleTitle, + contentEls: [], + index: sections.length, + }; + sections.push(current); + } else if (current) { + if ( + data?._type === + 'model.dotcomrendering.pageElements.RecipeBlockElement' + ) { + // Store structured recipe data for the nudge; don't render as a body element. + current.recipe = data; + } else { + current.contentEls.push(el); + } + } else { + preSection.push(el); + } + } + + const result: (JSX.Element | null | undefined)[] = [...preSection]; + + for (const section of sections) { + result.push( + + {section.subheadingEl} + {section.recipe && ( + + + + )} + {section.contentEls} + , + ); + } + + return result; + })(); + // const cleanedElements = elements.map(element => // 'html' in element ? { ...element, html: clean(element.html) } : element, // ); @@ -121,10 +208,10 @@ export const ArticleRenderer = ({ css={[commercialPosition, spacefinderAdStyles]} > {renderingTarget === 'Apps' - ? renderedElements + ? augmentedElements : /* Insert the placeholder for the sign in gate on the 2nd article element */ withSignInGateSlot({ - renderedElements, + renderedElements: augmentedElements, contentType, sectionId, tags, diff --git a/dotcom-rendering/src/model/block-schema.json b/dotcom-rendering/src/model/block-schema.json index bacc1cec7b6..230ae08536f 100644 --- a/dotcom-rendering/src/model/block-schema.json +++ b/dotcom-rendering/src/model/block-schema.json @@ -370,6 +370,9 @@ }, { "$ref": "#/definitions/ProductSummaryElement" + }, + { + "$ref": "#/definitions/RecipeBlockElement" } ] }, @@ -4294,6 +4297,74 @@ "variant" ] }, + "RecipeBlockElement": { + "type": "object", + "properties": { + "_type": { + "type": "string", + "const": "model.dotcomrendering.pageElements.RecipeBlockElement" + }, + "elementId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "featuredImage": { + "$ref": "#/definitions/RecipeFeaturedImage" + } + }, + "required": [ + "_type", + "id" + ] + }, + "RecipeFeaturedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "mediaId": { + "type": "string" + }, + "cropId": { + "type": "string" + }, + "source": { + "type": "string" + }, + "photographer": { + "type": "string" + }, + "imageType": { + "type": "string" + }, + "caption": { + "type": "string" + }, + "width": { + "type": "number" + }, + "height": { + "type": "number" + }, + "mediaApiUri": { + "type": "string" + } + }, + "required": [ + "cropId", + "mediaId", + "url" + ] + }, "Attributes": { "type": "object", "properties": { diff --git a/dotcom-rendering/src/types/content.ts b/dotcom-rendering/src/types/content.ts index 91fa4b73e05..6c5f9bd858d 100644 --- a/dotcom-rendering/src/types/content.ts +++ b/dotcom-rendering/src/types/content.ts @@ -532,6 +532,28 @@ export interface ProductSummaryElement { variant: 'carousel' | 'stacked-default' | 'stacked-expanded'; } +export interface RecipeFeaturedImage { + url: string; + mediaId: string; + cropId: string; + source?: string; + photographer?: string; + imageType?: string; + caption?: string; + width?: number; + height?: number; + mediaApiUri?: string; +} + +export interface RecipeBlockElement { + _type: 'model.dotcomrendering.pageElements.RecipeBlockElement'; + elementId?: string; + id: string; + title?: string; + description?: string; + featuredImage?: RecipeFeaturedImage; +} + interface ProfileAtomBlockElement { _type: 'model.dotcomrendering.pageElements.ProfileAtomBlockElement'; elementId: string; @@ -902,7 +924,8 @@ export type FEElement = | WitnessTypeBlockElement | CrosswordElement | ProductBlockElement - | ProductSummaryElement; + | ProductSummaryElement + | RecipeBlockElement; // ------------------------------------- // Misc From 9957eef49ae63f88f7442a49412564b4a1762a3c Mon Sep 17 00:00:00 2001 From: Demetrios Date: Mon, 15 Jun 2026 12:25:46 +0100 Subject: [PATCH 106/293] extends prebid pricefloors test expiry date --- ab-testing/config/abTests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index aef2224674e..d099d0a919d 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -99,7 +99,7 @@ const ABTests: ABTest[] = [ description: "This test will be the 5% holdback group for the prebid price floor", owners: ["commercial.dev@guardian.co.uk"], - expirationDate: "2026-06-17", + expirationDate: "2026-07-16", type: "client", status: "ON", audienceSize: 5 / 100, From 3134ddd4390ddaa42904224d26a6dcf32edf61bf Mon Sep 17 00:00:00 2001 From: Juarez Mota Date: Mon, 15 Jun 2026 12:47:58 +0100 Subject: [PATCH 107/293] Upgrade @guardian/braze-components from 22.2.0 to 23.0.1 --- dotcom-rendering/package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index 492c5156ab4..3494080c515 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -28,7 +28,7 @@ "@emotion/react": "11.14.0", "@emotion/server": "11.11.0", "@guardian/ab-testing-config": "workspace:ab-testing-config", - "@guardian/braze-components": "22.2.0", + "@guardian/braze-components": "23.0.1", "@guardian/bridget": "8.13.1", "@guardian/browserslist-config": "6.1.0", "@guardian/cdk": "catalog:", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 67c6f7610b3..6b0fe37bd82 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -315,8 +315,8 @@ importers: specifier: workspace:ab-testing-config version: link:../ab-testing/config '@guardian/braze-components': - specifier: 22.2.0 - version: 22.2.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1) + specifier: 23.0.1 + version: 23.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1) '@guardian/bridget': specifier: 8.13.1 version: 8.13.1 @@ -2453,13 +2453,13 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@guardian/braze-components@22.2.0': - resolution: {integrity: sha512-uSkHd6mBVTAD+BrvJZNt+oSipYHQXBdVt9Pu/VTvkliXHzT8OUsep7ObIWM1lkf3znWbqLDhoXtwS5apX2AEWQ==} - engines: {node: ^18.15 || ^20.8} + '@guardian/braze-components@23.0.1': + resolution: {integrity: sha512-gYGu1lJCkjQ9PzYl4ucNBaeOiyb1bO9ColC5vSDr/+u1CsCyypF6c9uWCjfLiWXDUY9ywwggPNspqVZ5i8A+zA==} + engines: {node: '24.2'} peerDependencies: - '@emotion/react': ^11.1.2 - '@guardian/libs': ^16.0.0 - '@guardian/source': ^9.0.0 + '@emotion/react': 11.1.2 + '@guardian/libs': 27.1.0 + '@guardian/source': 12.2.0 react: 17.0.2 || 18.2.0 '@guardian/bridget@8.13.1': @@ -11677,7 +11677,7 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@guardian/braze-components@22.2.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1)': + '@guardian/braze-components@23.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1)': dependencies: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) From 073d9e7d1c92b6b438edd3e0c7ca67fe2f80e369 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Mon, 15 Jun 2026 12:58:05 +0100 Subject: [PATCH 108/293] updated comments --- dotcom-rendering/webpack/jsdom-patch.js | 20 +++++++++----------- dotcom-rendering/webpack/webpack.config.js | 1 + 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/dotcom-rendering/webpack/jsdom-patch.js b/dotcom-rendering/webpack/jsdom-patch.js index 522222b2a58..7d521fb22fa 100644 --- a/dotcom-rendering/webpack/jsdom-patch.js +++ b/dotcom-rendering/webpack/jsdom-patch.js @@ -1,28 +1,26 @@ /* This is a patch found at: https://github.com/jsdom/jsdom/issues/3951 -When jsdom upgraded to v27.0.0 they stopped inlining a default-stylesheet.css file -and instead started loading it from another directory. We do not have access to -that directory on the server so this patch replaces the "loading" code with the -contents of the css file. +When jsdom upgraded to v27.0.0 they removed a default-stylesheet.css file from +the bundle and instead started loading it from another directory. That directory +is not bundled so we do not have access to that directory on the server so this +patch replaces the "loading" code with the contents of the css file. Currently the loading of default-stylesheet.css happens in: -node_modules/jsdom/lib/jsdom/living/helpers/css/helpers/computed-style.js +node_modules/jsdom/lib/jsdom/living/css/helpers/computed-style.js and the default-stylesheet.css file is found in: -node_modules/jsdom/lib/jsdon/browser +node_modules/jsdom/lib/jsdom/browser/default-stylesheet.css */ const fs = require('fs'); -const path = require('path'); module.exports = function (src) { - const defaultCSSPath = path.join( - path.dirname(this.resourcePath), - '../../../browser/default-stylesheet.css', // when jsdom is updated this might be in a different relative directory - ); + // when jsdom is updated this might be in a different relative directory + const defaultCSSPath = + 'node_modules/jsdom/lib/jsdom/browser/default-stylesheet.css'; const defaultCSS = fs.readFileSync(defaultCSSPath, 'utf-8'); diff --git a/dotcom-rendering/webpack/webpack.config.js b/dotcom-rendering/webpack/webpack.config.js index edae2c02715..f4a89198a5c 100644 --- a/dotcom-rendering/webpack/webpack.config.js +++ b/dotcom-rendering/webpack/webpack.config.js @@ -32,6 +32,7 @@ const commonConfigs = ({ platform }) => ({ resolve: { extensions: ['.js', '.ts', '.tsx', '.jsx'], alias: { + // css-tree wasn't bundling properly due to CJS build's createRequire so this points imports to the esm dist 'css-tree': require.resolve('css-tree/dist/csstree.esm'), }, }, From da347a13ffe8a050c36e122fea76abf45c68bb36 Mon Sep 17 00:00:00 2001 From: akash1810 Date: Mon, 15 Jun 2026 11:46:45 +0100 Subject: [PATCH 109/293] ci: Use `guardian/actions-build-facts` to correctly reference commit sha In the context of a GitHub Workflow triggered on `pull_request`, `github.sha` is NOT the sha of the latest commit on the branch. See https://github.com/orgs/community/discussions/26325. This change uses https://github.com/guardian/actions-build-facts to understand the commit sha. --- .github/workflows/cicd.yml | 12 ++++++++++++ .github/workflows/container.yml | 9 +++++++-- .github/workflows/dcr-chromatic.yml | 16 +++++++++++----- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index ceb24e9681e..e26f73b8038 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -4,10 +4,22 @@ on: push: jobs: + facts: + runs-on: ubuntu-slim + permissions: {} + outputs: + commitSha: ${{ steps.get-build-facts.outputs.commitSha }} + steps: + - uses: guardian/actions-build-facts@v0.0.1 + id: get-build-facts + container: permissions: packages: write uses: ./.github/workflows/container.yml + needs: [facts] + with: + commitSha: ${{ needs.facts.outputs.commitSha }} prettier: uses: ./.github/workflows/prettier.yml diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index 6ac78859080..6a5fc06b78f 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -2,6 +2,11 @@ # Commercial rely on a container image built from the main branch with the tag 'main' on: workflow_call: + inputs: + commitSha: + description: 'The SHA of the commit being built. Will be used as an image tag.' + required: true + type: string outputs: container-image: description: 'The generated container image path' @@ -27,7 +32,7 @@ jobs: - name: Add commit hash for PRout working-directory: dotcom-rendering run: | - echo 'export const GIT_COMMIT_HASH = "${{ github.sha }}";' > src/server/prout.ts + echo 'export const GIT_COMMIT_HASH = "${{ inputs.commitSha }}";' > src/server/prout.ts - name: Generate production bundle run: make riffraff-bundle @@ -39,7 +44,7 @@ jobs: with: image: dotcom-rendering # Commercial rely on a container image built from the main branch with the tag 'main' - tags: ${{ github.sha }} ${{ github.ref == 'refs/heads/main' && 'main' || '' }} + tags: ${{ inputs.commitSha }} ${{ github.ref == 'refs/heads/main' && 'main' || '' }} context: ./ containerfiles: ./dotcom-rendering/Containerfile diff --git a/.github/workflows/dcr-chromatic.yml b/.github/workflows/dcr-chromatic.yml index 03af91631b6..c3a179bbfdd 100644 --- a/.github/workflows/dcr-chromatic.yml +++ b/.github/workflows/dcr-chromatic.yml @@ -7,6 +7,15 @@ on: types: [opened, labeled, synchronize] jobs: + facts: + runs-on: ubuntu-slim + permissions: {} + outputs: + commitSha: ${{ steps.get-build-facts.outputs.commitSha }} + steps: + - uses: guardian/actions-build-facts@v0.0.1 + id: get-build-facts + check-paths: name: Check changed paths uses: ./.github/workflows/check-chromatic-paths.yml @@ -14,7 +23,7 @@ jobs: chromatic: name: Chromatic runs-on: ubuntu-latest - needs: check-paths + needs: [facts, check-paths] # Always run so the required "UI Tests: dotcom_rendering" status check is always # reported. When skipping, Chromatic posts a passing status without building Storybook. steps: @@ -23,10 +32,7 @@ jobs: if: ${{ github.event_name == 'pull_request'}} with: fetch-depth: 0 - # By default the pull_request event will run on a ephermeral merge commit which simulates a merge between the pull request - # and the target branch. This can cause issues with Chromatic https://www.chromatic.com/docs/turbosnap#github-pullrequest-triggers - # Hopefully by checking out the HEAD commit of a PR instead of the merge commit we can avoid some of those issues. - ref: ${{ github.event.pull_request.head.sha }} + ref: ${{ needs.facts.outputs.commitSha }} - name: Checkout - On Push Event uses: actions/checkout@v6 if: ${{ github.event_name == 'push'}} From b7c10ac2729626b7db300f6c748e5c6e2a865be0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 13:16:30 +0100 Subject: [PATCH 110/293] Bump chromaui/action from 16.10.0 to 17.4.1 in /.github/workflows (#16136) Bumps [chromaui/action](https://github.com/chromaui/action) from 16.10.0 to 17.4.1. - [Release notes](https://github.com/chromaui/action/releases) - [Changelog](https://github.com/chromaui/action/blob/main/CHANGELOG.md) - [Commits](https://github.com/chromaui/action/compare/v16.10.0...v17.4.1) --- updated-dependencies: - dependency-name: chromaui/action dependency-version: 17.4.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/dcr-chromatic.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dcr-chromatic.yml b/.github/workflows/dcr-chromatic.yml index 03af91631b6..ea378ab324b 100644 --- a/.github/workflows/dcr-chromatic.yml +++ b/.github/workflows/dcr-chromatic.yml @@ -47,7 +47,7 @@ jobs: - name: Chromatic - DCR env: NODE_OPTIONS: '--max_old_space_size=4096' - uses: chromaui/action@v16.10.0 + uses: chromaui/action@v17.4.1 if: | github.ref == 'refs/heads/main' || (github.event_name == 'pull_request' && From 5510a63e15ffb86627286c68162b70a3cf64eceb Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Mon, 15 Jun 2026 14:13:38 +0100 Subject: [PATCH 111/293] attempting to fix lockfile --- pnpm-lock.yaml | 122 +++++++++++++++++++++++++------------------------ 1 file changed, 62 insertions(+), 60 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef2b8d328d6..5d2fefb8fdc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -219,22 +219,22 @@ importers: version: link:../config '@sveltejs/adapter-auto': specifier: 7.0.1 - version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) + version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))) '@sveltejs/adapter-static': specifier: 3.0.10 - version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) + version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))) '@sveltejs/kit': specifier: 2.60.1 - version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) '@sveltejs/vite-plugin-svelte': specifier: 7.1.2 - version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) svelte: specifier: 5.56.3 - version: 5.56.3(@typescript-eslint/types@8.59.2) + version: 5.56.3(@typescript-eslint/types@8.61.0) svelte-check: specifier: 4.6.0 - version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3) + version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3) typescript: specifier: 'catalog:' version: 5.9.3 @@ -10020,7 +10020,7 @@ snapshots: '@smithy/fetch-http-handler': 5.4.6 '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/client-cognito-identity@3.995.0': dependencies: @@ -10076,7 +10076,7 @@ snapshots: '@smithy/fetch-http-handler': 5.4.6 '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/client-s3@3.995.0': dependencies: @@ -10194,7 +10194,7 @@ snapshots: '@smithy/fetch-http-handler': 5.4.6 '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/client-ssm@3.995.0': dependencies: @@ -10298,7 +10298,7 @@ snapshots: '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-provider-env@3.972.21': dependencies: @@ -10355,7 +10355,7 @@ snapshots: '@smithy/fetch-http-handler': 5.4.6 '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-provider-ini@3.972.23': dependencies: @@ -10404,7 +10404,7 @@ snapshots: '@smithy/core': 3.24.6 '@smithy/credential-provider-imds': 4.3.8 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-provider-login@3.972.23': dependencies: @@ -10424,7 +10424,7 @@ snapshots: '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-provider-node@3.972.24': dependencies: @@ -10492,7 +10492,7 @@ snapshots: '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-provider-sso@3.972.23': dependencies: @@ -10523,7 +10523,7 @@ snapshots: '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-provider-web-identity@3.972.23': dependencies: @@ -10551,7 +10551,7 @@ snapshots: '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-providers@3.1065.0': dependencies: @@ -10571,7 +10571,7 @@ snapshots: '@smithy/core': 3.24.6 '@smithy/credential-provider-imds': 4.3.8 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/credential-providers@3.995.0': dependencies: @@ -10679,7 +10679,7 @@ snapshots: '@smithy/core': 3.24.6 '@smithy/signature-v4': 5.4.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/middleware-sdk-s3@3.972.11': dependencies: @@ -10813,7 +10813,7 @@ snapshots: '@smithy/fetch-http-handler': 5.4.6 '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/region-config-resolver@3.972.24': dependencies: @@ -10842,7 +10842,7 @@ snapshots: '@aws-sdk/types': 3.973.12 '@smithy/signature-v4': 5.4.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/token-providers@3.1014.0': dependencies: @@ -10856,11 +10856,11 @@ snapshots: '@aws-sdk/token-providers@3.1052.0': dependencies: - '@aws-sdk/core': 3.974.13 + '@aws-sdk/core': 3.974.20 '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.12 + '@smithy/core': 3.24.6 + '@smithy/types': 4.14.3 tslib: 2.8.1 '@aws-sdk/token-providers@3.1065.0': @@ -10870,7 +10870,7 @@ snapshots: '@aws-sdk/types': 3.973.12 '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/types@3.973.12': dependencies: @@ -11854,17 +11854,17 @@ snapshots: '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 - tslib: 2.6.2 + tslib: 2.8.1 optional: true '@emnapi/runtime@1.10.0': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 optional: true '@emnapi/wasi-threads@1.2.1': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 optional: true '@emotion/babel-plugin@11.13.5': @@ -12290,6 +12290,8 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 + '@exodus/bytes@1.15.1': {} + '@guardian/braze-components@22.2.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1)': dependencies: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) @@ -12306,9 +12308,9 @@ snapshots: '@guardian/cdk@63.6.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1126.0)(constructs@10.6.0)': dependencies: - '@aws-sdk/client-ec2': 3.1053.0 - '@aws-sdk/client-ssm': 3.1053.0 - '@aws-sdk/credential-providers': 3.1053.0 + '@aws-sdk/client-ec2': 3.1065.0 + '@aws-sdk/client-ssm': 3.1065.0 + '@aws-sdk/credential-providers': 3.1065.0 aws-cdk: 2.1126.0 aws-cdk-lib: 2.257.0(constructs@10.6.0) chalk: 4.1.2 @@ -13323,12 +13325,12 @@ snapshots: dependencies: '@smithy/core': 3.24.6 '@smithy/types': 4.14.3 - tslib: 2.6.2 + tslib: 2.8.1 '@smithy/eventstream-codec@4.2.8': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.14.2 + '@smithy/types': 4.14.3 '@smithy/util-hex-encoding': 4.2.2 tslib: 2.8.1 @@ -13412,7 +13414,7 @@ snapshots: '@smithy/is-array-buffer@2.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 '@smithy/is-array-buffer@4.2.2': dependencies: @@ -13658,7 +13660,7 @@ snapshots: '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 - tslib: 2.6.2 + tslib: 2.8.1 '@smithy/util-buffer-from@4.2.2': dependencies: @@ -13909,7 +13911,7 @@ snapshots: flat-cache: 3.2.0 micromatch: 4.0.8 react-docgen-typescript: 2.4.0(typescript@5.9.3) - tslib: 2.6.2 + tslib: 2.8.1 typescript: 5.9.3 webpack: 5.104.1(@swc/core@1.13.5)(clean-css@5.3.3)(esbuild@0.27.7)(html-minifier-terser@7.2.0)(postcss@8.5.15)(webpack-cli@6.0.1) transitivePeerDependencies: @@ -13980,19 +13982,19 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': + '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) - '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) - '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': + '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -14003,21 +14005,21 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.56.3(@typescript-eslint/types@8.59.2) - vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) optionalDependencies: typescript: 5.9.3 '@sveltejs/load-config@0.1.1': {} - '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': + '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.2 - svelte: 5.56.3(@typescript-eslint/types@8.59.2) - vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) - vitefu: 1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) + vitefu: 1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.7)': dependencies: @@ -14251,7 +14253,7 @@ snapshots: '@tybys/wasm-util@0.10.2': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 optional: true '@types/aria-query@5.0.4': {} @@ -15167,7 +15169,7 @@ snapshots: ast-types@0.16.1: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 astral-regex@2.0.0: {} @@ -16057,7 +16059,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.8.1 dunder-proto@1.0.1: dependencies: @@ -16596,7 +16598,7 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.11(@typescript-eslint/types@8.59.2): + esrap@2.2.11(@typescript-eslint/types@8.61.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: @@ -18229,7 +18231,7 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.8.1 lowercase-keys@3.0.0: {} @@ -18569,7 +18571,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.8.1 node-abort-controller@3.1.1: {} @@ -18799,7 +18801,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.8.1 path-equal@1.2.5: {} @@ -19991,7 +19993,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3): + svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 '@sveltejs/load-config': 0.1.1 @@ -19999,12 +20001,12 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.56.3(@typescript-eslint/types@8.59.2) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte@5.56.3(@typescript-eslint/types@8.59.2): + svelte@5.56.3(@typescript-eslint/types@8.61.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -20017,7 +20019,7 @@ snapshots: clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.11(@typescript-eslint/types@8.59.2) + esrap: 2.2.11(@typescript-eslint/types@8.61.0) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -20577,7 +20579,7 @@ snapshots: terser: 5.48.0 tsx: 4.6.2 - vitefu@1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)): + vitefu@1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)): optionalDependencies: vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) From 05ed98777a0c1de92284f2ba78e92c8c94fcf8c3 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:52:15 +0100 Subject: [PATCH 112/293] updated copy --- dotcom-rendering/src/components/FootballMiniMatchStats.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dotcom-rendering/src/components/FootballMiniMatchStats.tsx b/dotcom-rendering/src/components/FootballMiniMatchStats.tsx index eb50475c101..c400c8d5dd7 100644 --- a/dotcom-rendering/src/components/FootballMiniMatchStats.tsx +++ b/dotcom-rendering/src/components/FootballMiniMatchStats.tsx @@ -124,8 +124,8 @@ export const FootballMiniMatchStats = (props: Props) => { ), }} > - More stats, line-ups and tables - Stats and line ups + More match info + More match info
    ); From 7282f34ea591d456745083b3c71dfce76264639e Mon Sep 17 00:00:00 2001 From: Charlotte <43961396+cemms1@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:09:37 +0100 Subject: [PATCH 113/293] Add Hosted Gallery Layout (#16077) --- .../src/components/ArticleHeadline.tsx | 3 +- .../src/components/ArticleTitle.tsx | 4 +- .../src/components/HostedContentPage.tsx | 83 ++++--- .../src/components/MainMediaGallery.tsx | 15 +- .../src/components/OnwardsUpper.island.tsx | 4 +- .../src/components/Standfirst.tsx | 2 + dotcom-rendering/src/layouts/DecideLayout.tsx | 4 +- .../layouts/HostedGalleryLayout.stories.tsx | 12 +- .../src/layouts/HostedGalleryLayout.tsx | 209 +++++++++++++----- dotcom-rendering/src/paletteDeclarations.ts | 72 +++++- dotcom-rendering/src/types/article.ts | 14 +- 11 files changed, 300 insertions(+), 122 deletions(-) diff --git a/dotcom-rendering/src/components/ArticleHeadline.tsx b/dotcom-rendering/src/components/ArticleHeadline.tsx index 7d7758c7a05..8d48e3ebe44 100644 --- a/dotcom-rendering/src/components/ArticleHeadline.tsx +++ b/dotcom-rendering/src/components/ArticleHeadline.tsx @@ -888,7 +888,8 @@ export const ArticleHeadline = ({
    ); - case ArticleDesign.Gallery: { + case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: { return (
    (
    diff --git a/dotcom-rendering/src/components/HostedContentPage.tsx b/dotcom-rendering/src/components/HostedContentPage.tsx index 4a586f294fe..860d2c1cf48 100644 --- a/dotcom-rendering/src/components/HostedContentPage.tsx +++ b/dotcom-rendering/src/components/HostedContentPage.tsx @@ -28,55 +28,52 @@ interface AppProps extends BaseProps { renderingTarget: 'Apps'; } +const decideLayout = (article: Article, renderingTarget: 'Web' | 'Apps') => { + const format = { + design: article.design, + display: article.display, + theme: article.theme, + }; + switch (article.design) { + case ArticleDesign.HostedGallery: + return ( + + ); + case ArticleDesign.HostedVideo: + return ( + + ); + case ArticleDesign.HostedArticle: + return ( + + ); + default: + return null; + } +}; + /** * @description * HostedContentPage is a high level wrapper for hosted content pages on Dotcom. Sets strict mode and some globals */ export const HostedContentPage = (props: WebProps | AppProps) => { - const { - article: { design, display, theme, frontendData }, - renderingTarget, - } = props; - + const { article, renderingTarget } = props; + const { frontendData, design, display, theme } = article; const isWeb = renderingTarget === 'Web'; const { darkModeAvailable } = useConfig(); - - const format = { - design, - display, - theme, - }; - - const decideLayout = () => { - switch (format.design) { - case ArticleDesign.HostedVideo: - return ( - - ); - case ArticleDesign.HostedGallery: - return ( - - ); - case ArticleDesign.HostedArticle: - return ( - - ); - default: - return null; - } - }; + const format = { design, display, theme }; return ( @@ -137,7 +134,7 @@ export const HostedContentPage = (props: WebProps | AppProps) => { )} - {decideLayout()} + {decideLayout(article, renderingTarget)} ); }; diff --git a/dotcom-rendering/src/components/MainMediaGallery.tsx b/dotcom-rendering/src/components/MainMediaGallery.tsx index e961021076d..3b403ddd565 100644 --- a/dotcom-rendering/src/components/MainMediaGallery.tsx +++ b/dotcom-rendering/src/components/MainMediaGallery.tsx @@ -2,7 +2,7 @@ import { css } from '@emotion/react'; import { isUndefined } from '@guardian/libs'; import { from } from '@guardian/source/foundations'; import { grid } from '../grid'; -import { type ArticleFormat } from '../lib/articleFormat'; +import { ArticleDesign, type ArticleFormat } from '../lib/articleFormat'; import { getImage } from '../lib/image'; import { type ImageBlockElement } from '../types/content'; import { type RenderingTarget } from '../types/renderingTarget'; @@ -27,11 +27,24 @@ const styles = css` } `; +/** + * We don't show main media on hosted gallery pages + * but need to do this to keep the rest of the grid layout happy + */ +const hostedStyles = css` + ${grid.column.all} + grid-row: 1/8; + height: 0; +`; + export const MainMediaGallery = ({ mainMedia, format, renderingTarget, }: Props) => { + if (format.design === ArticleDesign.HostedGallery) { + return
    ; + } // This is to support some galleries created in 2007 where mainMedia is missing if (isUndefined(mainMedia)) { return
    ; diff --git a/dotcom-rendering/src/components/OnwardsUpper.island.tsx b/dotcom-rendering/src/components/OnwardsUpper.island.tsx index 1dca2e1c4ea..7f6cb674881 100644 --- a/dotcom-rendering/src/components/OnwardsUpper.island.tsx +++ b/dotcom-rendering/src/components/OnwardsUpper.island.tsx @@ -318,7 +318,9 @@ export const OnwardsUpper = ({ const showCuratedContainer = !!curatedDataUrl && !isPaidContent && canHaveCuratedContent; - const isGalleryArticle = format.design === ArticleDesign.Gallery; + const isGalleryArticle = + format.design === ArticleDesign.Gallery || + format.design === ArticleDesign.HostedGallery; return (
    diff --git a/dotcom-rendering/src/components/Standfirst.tsx b/dotcom-rendering/src/components/Standfirst.tsx index 61be63fe1a3..57be3cf9816 100644 --- a/dotcom-rendering/src/components/Standfirst.tsx +++ b/dotcom-rendering/src/components/Standfirst.tsx @@ -83,6 +83,7 @@ const decideFont = ({ display, design, theme }: ArticleFormat) => { const isLabs = theme === ArticleSpecial.Labs; switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: if (isLabs) { return css` ${textSansBold15}; @@ -322,6 +323,7 @@ const standfirstStyles = ({ display, design, theme }: ArticleFormat) => { color: ${palette('--standfirst-text')}; `; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return css` ${grid.span('centre-column-start', 5)} color: ${palette('--standfirst-text')}; diff --git a/dotcom-rendering/src/layouts/DecideLayout.tsx b/dotcom-rendering/src/layouts/DecideLayout.tsx index aae1cbfca5c..8188ce304ed 100644 --- a/dotcom-rendering/src/layouts/DecideLayout.tsx +++ b/dotcom-rendering/src/layouts/DecideLayout.tsx @@ -185,7 +185,7 @@ const DecideLayoutApps = ({ article, renderingTarget }: AppProps) => { case ArticleDesign.HostedGallery: return ( @@ -398,7 +398,7 @@ const DecideLayoutWeb = ({ article, NAV, renderingTarget }: WebProps) => { case ArticleDesign.HostedGallery: return ( diff --git a/dotcom-rendering/src/layouts/HostedGalleryLayout.stories.tsx b/dotcom-rendering/src/layouts/HostedGalleryLayout.stories.tsx index b44cc58ab6c..65de50cda57 100644 --- a/dotcom-rendering/src/layouts/HostedGalleryLayout.stories.tsx +++ b/dotcom-rendering/src/layouts/HostedGalleryLayout.stories.tsx @@ -27,9 +27,13 @@ const format = { display: ArticleDisplay.Standard, }; +const appsHostedGallery = enhanceArticleType(hostedGallery, 'Apps'); +if (appsHostedGallery.design !== ArticleDesign.HostedGallery) { + throw new Error('Expected hosted gallery'); +} export const Apps = meta.story({ args: { - content: enhanceArticleType(hostedGallery, 'Apps'), + gallery: appsHostedGallery, format, renderingTarget: 'Apps', }, @@ -40,9 +44,13 @@ export const Apps = meta.story({ }, }); +const webHostedGallery = enhanceArticleType(hostedGallery, 'Web'); +if (webHostedGallery.design !== ArticleDesign.HostedGallery) { + throw new Error('Expected hosted gallery'); +} export const Web = meta.story({ args: { - content: enhanceArticleType(hostedGallery, 'Web'), + gallery: webHostedGallery, format, renderingTarget: 'Web', }, diff --git a/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx b/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx index 45f7683df7e..215c6c5d419 100644 --- a/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx +++ b/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx @@ -4,20 +4,28 @@ import { palette as sourcePalette, space, } from '@guardian/source/foundations'; +import { ArticleHeadline } from '../components/ArticleHeadline'; +import { ArticleTitle } from '../components/ArticleTitle'; +import { GalleryImage } from '../components/GalleryImage'; import { HostedContentHeader } from '../components/HostedContentHeader.island'; import { Island } from '../components/Island'; +import { MainMediaGallery } from '../components/MainMediaGallery'; +import { OnwardsUpper } from '../components/OnwardsUpper.island'; import { Section } from '../components/Section'; import { ShareButton } from '../components/ShareButton.island'; +import { Standfirst } from '../components/Standfirst'; import { grid } from '../grid'; import type { ArticleFormat } from '../lib/articleFormat'; -import type { Article } from '../types/article'; +import { palette } from '../palette'; +import type { Gallery } from '../types/article'; import type { RenderingTarget } from '../types/renderingTarget'; import { Stuck } from './lib/stickiness'; interface Props { - content: Article; + gallery: Gallery; format: ArticleFormat; renderingTarget: RenderingTarget; + serverTime?: number; } interface WebProps extends Props { @@ -28,29 +36,30 @@ interface AppProps extends Props { renderingTarget: 'Apps'; } -const border = css` - border: 1px solid black; +const headerStyles = css` + ${grid.container} + background-color: ${palette('--article-inner-background')}; + + ${from.tablet} { + border-bottom: 1px solid ${palette('--article-border')}; + } `; -const metaFlex = css` - margin-bottom: ${space[3]}px; - display: flex; - justify-content: space-between; - flex-wrap: wrap; +const shareButtonStyles = css` + margin-top: ${space[4]}px; + padding: ${space[1]}px; `; export const HostedGalleryLayout = (props: WebProps | AppProps) => { - const { - content: { frontendData }, - format, - } = props; + const { gallery, renderingTarget, format, serverTime } = props; + const { frontendData } = gallery; + const { commercialProperties, editionId } = frontendData; - const { branding } = - frontendData.commercialProperties[frontendData.editionId]; + const { branding } = commercialProperties[editionId]; return ( <> - {props.renderingTarget === 'Web' && branding ? ( + {branding ? (
    {
    ) : null} -
    -
    -
    - {props.content.frontendData.headline} -
    -
    -
    -
    -
    Gallery
    -
    Onward
    -
    -
    -
    -
    -
    -
    - {props.renderingTarget === 'Web' && ( - - - - )} +
    +
    + + + + + + {renderingTarget === 'Web' && ( +
    +
    + + +
    -
    -
    + )} + +
    + + + ); }; + +const GalleryBody = (props: { + renderingTarget: RenderingTarget; + format: ArticleFormat; + bodyElements: Gallery['bodyElements']; + pageId: string; + webTitle: string; +}) => ( + <> + {props.bodyElements.map((element) => { + switch (element._type) { + case 'model.dotcomrendering.pageElements.ImageBlockElement': + return ( + + ); + default: + return null; + } + })} + +); diff --git a/dotcom-rendering/src/paletteDeclarations.ts b/dotcom-rendering/src/paletteDeclarations.ts index 58878d6861f..c6edc53c8e4 100644 --- a/dotcom-rendering/src/paletteDeclarations.ts +++ b/dotcom-rendering/src/paletteDeclarations.ts @@ -107,6 +107,7 @@ const headlineTextLight: PaletteFunction = ({ design, display, theme }) => { } } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[100]; case ArticleDesign.LiveBlog: { switch (theme) { @@ -179,6 +180,7 @@ const headlineTextDark: PaletteFunction = ({ design, display, theme }) => { } } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return sourcePalette.neutral[97]; @@ -211,6 +213,7 @@ const headlineBackgroundLight: PaletteFunction = ({ case ArticleDisplay.Standard: switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; case ArticleDesign.Interview: return sourcePalette.neutral[7]; @@ -249,6 +252,7 @@ const headlineBackgroundDark: PaletteFunction = ({ return sourcePalette.neutral[20]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[10]; case ArticleDesign.Standard: case ArticleDesign.Review: @@ -359,6 +363,7 @@ const headlineBylineDark: PaletteFunction = ({ design, display, theme }) => { const bylineLight: PaletteFunction = ({ design, theme }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; case ArticleDesign.Picture: case ArticleDesign.Video: @@ -509,6 +514,7 @@ const bylineBackgroundDark: PaletteFunction = ({ design, theme }) => { const bylineAnchorLight: PaletteFunction = ({ design, theme, display }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; case ArticleDesign.Analysis: switch (theme) { @@ -619,6 +625,7 @@ const bylineAnchorLight: PaletteFunction = ({ design, theme, display }) => { const bylineAnchorDark: PaletteFunction = ({ design, theme, display }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; case ArticleDesign.Analysis: switch (theme) { @@ -979,6 +986,7 @@ export const tabs = { const datelineLight: PaletteFunction = ({ design, theme }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: switch (theme) { case ArticleSpecial.Labs: return sourcePalette.neutral[86]; @@ -1196,6 +1204,7 @@ const avatarDark: PaletteFunction = () => sourcePalette.neutral[93]; const followTextLight: PaletteFunction = ({ design }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; case ArticleDesign.LiveBlog: case ArticleDesign.Picture: @@ -1212,6 +1221,7 @@ const followTextDark: PaletteFunction = ({ design }) => { case ArticleDesign.DeadBlog: return sourcePalette.neutral[100]; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return sourcePalette.neutral[86]; @@ -1242,6 +1252,7 @@ const followIconBackgroundLight: PaletteFunction = ({ design, theme }) => { return sourcePalette.news[800]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; case ArticleDesign.Comment: case ArticleDesign.Letter: @@ -1303,6 +1314,7 @@ const followIconBackgroundDark: PaletteFunction = ({ theme, design }) => { const followIconFillLight: PaletteFunction = ({ design, theme }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: switch (theme) { case Pillar.Opinion: return sourcePalette.opinion[500]; @@ -1976,6 +1988,7 @@ const appsFooterBackgroundLight: PaletteFunction = () => const appsFooterBackgroundDark: PaletteFunction = (format: ArticleFormat) => { switch (format.design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[10]; default: return sourcePalette.neutral[0]; @@ -2010,6 +2023,7 @@ const brandingLabelLight: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[7]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return sourcePalette.neutral[20]; @@ -2135,6 +2149,7 @@ const standfirstBulletDark: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[86]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: default: switch (theme) { case Pillar.News: @@ -2265,6 +2280,7 @@ const standfirstBackgroundLight: PaletteFunction = ({ return sourcePalette.neutral[93]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; default: return articleBackgroundLight({ design, display, theme }); @@ -2308,6 +2324,7 @@ const standfirstBackgroundDark: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[10]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: default: return sourcePalette.neutral[10]; } @@ -2374,6 +2391,7 @@ const standfirstLinkTextLight: PaletteFunction = ({ design, theme }) => { } case ArticleDesign.Audio: case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: switch (theme) { @@ -2405,6 +2423,7 @@ const standfirstLinkTextDark: PaletteFunction = ({ design, theme }) => { case ArticleDesign.Video: return sourcePalette.neutral[86]; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: case ArticleDesign.Picture: switch (theme) { case Pillar.News: @@ -2463,6 +2482,7 @@ const standfirstTextLight: PaletteFunction = (format) => { return sourcePalette.neutral[86]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: if ( @@ -2481,6 +2501,7 @@ const standfirstTextDark: PaletteFunction = ({ design, display, theme }) => { case ArticleDesign.DeadBlog: return sourcePalette.neutral[93]; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; case ArticleDesign.Picture: case ArticleDesign.Video: @@ -2729,6 +2750,7 @@ const captionTextLight: PaletteFunction = ({ design, theme }) => { case ArticleDesign.Video: case ArticleDesign.Audio: case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return sourcePalette.neutral[46]; @@ -2757,6 +2779,7 @@ const captionTextDark: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[60]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return sourcePalette.neutral[60]; @@ -2768,6 +2791,7 @@ const captionMainMediaTextLight: PaletteFunction = (format) => { case ArticleDesign.PhotoEssay: return sourcePalette.neutral[46]; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: switch (format.theme) { case ArticleSpecial.Labs: return captionTextLight(format); @@ -2796,6 +2820,7 @@ const captionLink: PaletteFunction = ({ design, theme }) => { case ArticleDesign.NewsletterSignup: return sourcePalette.neutral[0]; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: switch (theme) { @@ -3153,6 +3178,7 @@ const articleBackgroundLight: PaletteFunction = ({ case ArticleDesign.FullPageInteractive: return 'transparent'; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return '#0d0d0d'; default: switch (theme) { @@ -3198,6 +3224,7 @@ const articleBackgroundDark: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[10]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: default: return sourcePalette.neutral[10]; } @@ -3214,6 +3241,7 @@ const articleInnerBackgroundLight: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[0]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; default: @@ -3232,6 +3260,7 @@ const articleInnerBackgroundDark: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[0]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[10]; default: @@ -3359,7 +3388,12 @@ const articleLinkBorderLight: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[46]; } - if (design === ArticleDesign.Gallery) return sourcePalette.neutral[46]; + if ( + design === ArticleDesign.Gallery || + design === ArticleDesign.HostedGallery + ) { + return sourcePalette.neutral[46]; + } if (theme === ArticleSpecial.Labs) return sourcePalette.neutral[60]; if (theme === ArticleSpecial.SpecialReport) { return sourcePalette.specialReport[300]; @@ -3531,7 +3565,10 @@ const articleBorderLight: PaletteFunction = ({ design, theme }) => { }; const articleSectionBorderLight: PaletteFunction = (format) => { - if (format.design === ArticleDesign.Gallery) { + if ( + format.design === ArticleDesign.Gallery || + format.design === ArticleDesign.HostedGallery + ) { return sourcePalette.neutral[86]; } @@ -3553,7 +3590,10 @@ const footerBorderDark: PaletteFunction = () => { const articleBorderDark: PaletteFunction = () => sourcePalette.neutral[20]; const straightLinesLight: PaletteFunction = (format) => { - if (format.design === ArticleDesign.Gallery) { + if ( + format.design === ArticleDesign.Gallery || + format.design === ArticleDesign.HostedGallery + ) { return sourcePalette.neutral[20]; } if (format.theme === ArticleSpecial.SpecialReportAlt) { @@ -3798,7 +3838,6 @@ const shareButtonHoverLight: PaletteFunction = ({ design, theme }) => { case ArticleDesign.Video: case ArticleDesign.Picture: case ArticleDesign.HostedArticle: - case ArticleDesign.HostedGallery: case ArticleDesign.HostedVideo: switch (theme) { case ArticleSpecial.Labs: @@ -3807,6 +3846,7 @@ const shareButtonHoverLight: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[7]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; default: return sourcePalette.neutral[100]; @@ -3835,6 +3875,7 @@ const shareButtonBorderDark: PaletteFunction = () => sourcePalette.neutral[20]; const shareButtonBorderMetaLight: PaletteFunction = ({ design }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[38]; default: return sourcePalette.neutral[86]; @@ -3850,6 +3891,7 @@ const shareButtonBorderXSmallLight: PaletteFunction = ({ design }) => { case ArticleDesign.Audio: case ArticleDesign.Video: case ArticleDesign.Picture: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[46]; default: return sourcePalette.neutral[86]; @@ -3862,6 +3904,7 @@ const shareButtonCopiedLight: PaletteFunction = ({ design }) => { case ArticleDesign.Audio: case ArticleDesign.Video: case ArticleDesign.Picture: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return sourcePalette.neutral[7]; @@ -3873,12 +3916,12 @@ const shareButtonCopiedDark: PaletteFunction = () => sourcePalette.neutral[86]; const shareButtonLight: PaletteFunction = ({ design, theme, display }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; case ArticleDesign.Audio: case ArticleDesign.Video: case ArticleDesign.Picture: case ArticleDesign.HostedArticle: - case ArticleDesign.HostedGallery: case ArticleDesign.HostedVideo: switch (theme) { case ArticleSpecial.Labs: @@ -4025,7 +4068,10 @@ const liveBlockBorderBottomDark: PaletteFunction = () => const subMetaLabelTextLight: PaletteFunction = ({ theme, design }) => { switch (theme) { case ArticleSpecial.Labs: - if (design === ArticleDesign.Gallery) { + if ( + design === ArticleDesign.Gallery || + design === ArticleDesign.HostedGallery + ) { return sourcePalette.neutral[60]; } return sourcePalette.neutral[7]; @@ -4097,6 +4143,7 @@ const subMetaBackgroundLight: PaletteFunction = ({ return sourcePalette.neutral[7]; } case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; default: @@ -4152,6 +4199,7 @@ const subMetaTextLight: PaletteFunction = ({ design, theme }) => { case ArticleSpecial.Labs: switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return sourcePalette.neutral[7]; @@ -4164,6 +4212,7 @@ const subMetaTextLight: PaletteFunction = ({ design, theme }) => { case ArticleDesign.Video: case ArticleDesign.Audio: case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; case ArticleDesign.DeadBlog: case ArticleDesign.LiveBlog: @@ -4216,6 +4265,7 @@ const subMetaTextDark: PaletteFunction = ({ design, theme }) => { switch (design) { case ArticleDesign.Picture: case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[86]; default: return pillarPalette(theme, 500); @@ -4229,10 +4279,12 @@ const subMetaTextHoverLight: PaletteFunction = ({ design, theme }) => { case ArticleDesign.Audio: case ArticleDesign.Video: case ArticleDesign.Picture: + case ArticleDesign.HostedGallery: switch (theme) { case ArticleSpecial.Labs: switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; default: return sourcePalette.neutral[100]; @@ -4930,6 +4982,7 @@ const seriesTitleBackgroundLight: PaletteFunction = ({ default: switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: switch (theme) { case Pillar.Opinion: case Pillar.News: @@ -4955,6 +5008,7 @@ const seriesTitleBackgroundDark: PaletteFunction = ({ }) => { switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: switch (theme) { case Pillar.Opinion: case Pillar.News: @@ -5039,7 +5093,10 @@ const seriesTitleTextLight: PaletteFunction = ({ theme, display, design }) => { return sourcePalette.specialReport[300]; } - if (design === ArticleDesign.Gallery) { + if ( + design === ArticleDesign.Gallery || + design === ArticleDesign.HostedGallery + ) { return sourcePalette.neutral[100]; } @@ -5130,6 +5187,7 @@ const seriesTitleTextDark: PaletteFunction = ({ design, theme, display }) => { if (display === ArticleDisplay.Immersive) return sourcePalette.neutral[100]; switch (design) { case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[100]; case ArticleDesign.Analysis: switch (theme) { diff --git a/dotcom-rendering/src/types/article.ts b/dotcom-rendering/src/types/article.ts index fce46392341..f61945ad199 100644 --- a/dotcom-rendering/src/types/article.ts +++ b/dotcom-rendering/src/types/article.ts @@ -47,14 +47,16 @@ export type ArticleFields = { serverTime?: number | undefined; }; +export type GalleryDesign = ArticleDesign.Gallery | ArticleDesign.HostedGallery; + export type Gallery = ArticleFields & { - design: ArticleDesign.Gallery; + design: GalleryDesign; bodyElements: (ImageBlockElement | AdPlaceholderBlockElement)[]; mainMedia?: ImageBlockElement; }; export type OtherArticles = ArticleFields & { - design: Exclude; + design: Exclude; }; export type Article = Gallery | OtherArticles; @@ -120,13 +122,17 @@ export const enhanceArticleType = ( data.main, )(data.mainMediaElements); + const isGalleryPage = (design: ArticleDesign): design is GalleryDesign => + design === ArticleDesign.Gallery || + design === ArticleDesign.HostedGallery; + const storyPackage = parseStoryPackage( data.storyPackage, format.design === ArticleDesign.Gallery, ); - if (format.design === ArticleDesign.Gallery) { - const design = ArticleDesign.Gallery; + if (isGalleryPage(format.design)) { + const { design } = format; return { frontendData: { From f7eb69aca7cf30a7972640a1c6fb2e82b83db44d Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:18:48 +0100 Subject: [PATCH 114/293] added football/australia to worldCup2026PageIds --- dotcom-rendering/src/lib/worldCup2026.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/dotcom-rendering/src/lib/worldCup2026.ts b/dotcom-rendering/src/lib/worldCup2026.ts index 14f86d253d4..dc34aebb782 100644 --- a/dotcom-rendering/src/lib/worldCup2026.ts +++ b/dotcom-rendering/src/lib/worldCup2026.ts @@ -2,6 +2,7 @@ export const worldCup2026PageIds = [ 'football/world-cup-2026', 'football/world-cup-2026/fixtures', 'football/world-cup-2026/overview', + 'football/australia', ]; export const worldCupTagId = 'football/world-cup-2026'; From b5311ff8041547d4a9bf408760bf51ed7e44d922 Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Mon, 15 Jun 2026 14:19:31 +0100 Subject: [PATCH 115/293] Wire up cricket header in live blog --- ab-testing/config/abTests.ts | 11 ++ .../CricketMatchHeader.stories.tsx | 26 ++-- .../CricketMatchHeader/CricketMatchHeader.tsx | 67 +++++++++- .../CricketMatchHeader/headerData.ts | 95 ++++++++++++++ .../CricketMatchHeaderWrapper.island.tsx | 32 +++++ .../CricketScorecardPageNew.stories.tsx | 4 +- .../components/CricketScorecardPageNew.tsx | 14 +- .../src/frontend/feCricketMatchHeader.ts | 2 - dotcom-rendering/src/layouts/LiveLayout.tsx | 120 ++++++++++++++---- 9 files changed, 320 insertions(+), 51 deletions(-) create mode 100644 dotcom-rendering/src/components/CricketMatchHeader/headerData.ts create mode 100644 dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index aef2224674e..d96358110c2 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -197,6 +197,17 @@ const ABTests: ABTest[] = [ groups: ["control", "variant-1"], shouldForceMetricsCollection: false, }, + { + name: "webx-cricket-redesign", + description: "Redesign of the cricket header and scorecard on web", + owners: ["dotcom.platform@theguardian.com"], + status: "ON", + expirationDate: "2026-08-01", + type: "server", + audienceSize: 0 / 100, + groups: ["enable"], + shouldForceMetricsCollection: false, + }, ]; const activeABtests = ABTests.filter((test) => test.status === "ON"); diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx index 4230553befe..197e87fadbe 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx @@ -89,7 +89,7 @@ const defaultInnings = { const baseArgs = { edition: 'UK' as EditionId, - match: { + initialData: { kind: 'Fixture' as CricketMatch['kind'], series: 'Ashes 2025–2026', competition: 'Second Test Match', @@ -112,6 +112,10 @@ const baseArgs = { infoURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', ), + matchHeaderURL: + 'https://api.nextgen.guardianapps.co.uk/sport/cricket/match-header/2026-06-13/australia-women-s-cricket-team.json', + refreshInterval: 3_000, + getHeaderData: () => Promise.resolve(undefined), }; export const Fixture = { @@ -121,8 +125,8 @@ export const Fixture = { export const Live = { args: { ...baseArgs, - match: { - ...Fixture.args.match, + initialData: { + ...Fixture.args.initialData, kind: 'Live' as CricketMatch['kind'], day: 2, innings: [ @@ -167,8 +171,8 @@ export const LiveYetToBat = { args: { ...baseArgs, edition: 'UK' as EditionId, - match: { - ...Fixture.args.match, + initialData: { + ...Fixture.args.initialData, kind: 'Live', day: 2, innings: [ @@ -200,8 +204,8 @@ export const Result = { args: { ...baseArgs, edition: 'UK' as EditionId, - match: { - ...Fixture.args.match, + initialData: { + ...Fixture.args.initialData, kind: 'Result', day: 4, innings: [ @@ -270,8 +274,8 @@ export const ResultWinByWickets = { args: { ...baseArgs, edition: 'UK' as EditionId, - match: { - ...Fixture.args.match, + initialData: { + ...Fixture.args.initialData, kind: 'Result', innings: [ { @@ -321,8 +325,8 @@ export const ResultDrawn = { args: { ...baseArgs, edition: 'UK' as EditionId, - match: { - ...Fixture.args.match, + initialData: { + ...Fixture.args.initialData, kind: 'Result', day: 4, innings: [ diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx index edce73ffbcd..23819d5b59e 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx @@ -1,4 +1,5 @@ import { css } from '@emotion/react'; +import { log } from '@guardian/libs'; import { from, headlineBold20Object, @@ -14,6 +15,8 @@ import { until, } from '@guardian/source/foundations'; import { Fragment, type ReactNode, useMemo } from 'react'; +import type { SWRConfiguration } from 'swr'; +import useSWR from 'swr'; import type { CricketMatch, CricketResult, @@ -35,19 +38,47 @@ import { primaryText, secondaryText, } from '../FootballMatchHeader/colours'; +import type { TabName } from '../FootballMatchHeader/Tabs'; import { Tabs } from '../FootballMatchHeader/Tabs'; +import { Placeholder } from '../Placeholder'; +import type { CricketHeaderData } from './headerData'; +import { parse as parseHeaderData } from './headerData'; -type Props = { +export type CricketMatchHeaderProps = { + initialData?: CricketMatch; + matchHeaderURL: string; edition: EditionId; - match: CricketMatch; selectedTab: 'info' | 'live' | 'report'; reportURL?: URL; liveURL?: URL; infoURL?: URL; }; +type Props = CricketMatchHeaderProps & { + getHeaderData: (url: string) => Promise; + refreshInterval: number; +}; + export const CricketMatchHeader = (props: Props) => { - const match = props.match; + const { data } = useSWR( + props.matchHeaderURL, + fetcher(props.selectedTab, props.getHeaderData), + swrOptions(props.refreshInterval), + ); + const match = data?.match ?? props.initialData; + + if (match === undefined) { + return ( + + ); + } return (
    { ); }; +const swrOptions = ( + refreshInterval: number, +): SWRConfiguration => ({ + errorRetryCount: 1, + refreshInterval: (latestData: CricketHeaderData | undefined) => { + return latestData?.match.kind === 'Live' || + latestData?.match.kind === 'Fixture' + ? refreshInterval + : 0; + }, +}); + +const fetcher = + (selected: TabName, getHeaderData: Props['getHeaderData']) => + (url: string): Promise => + getHeaderData(url) + .then(parseHeaderData(selected)) + .then((result) => { + if (!result.ok) { + log('dotcom', result.error); + throw new Error(); + } else { + return result.value; + } + }) + .catch(() => { + log('dotcom', 'Failed to fetch match header json'); + throw new Error(); + }); + const StatusLine = (props: { match: CricketMatch; edition: EditionId }) => (

    ; + match: CricketMatch; +}; + +export const parse = + (selected: CricketHeaderData['tabs']['selected']) => + (json: unknown): Result => { + const feData = fromValibot(safeParse(feCricketMatchHeaderSchema, json)); + + if (!feData.ok) { + return error('Failed to validate match header json'); + } + + const parsedMatch = parseCricketMatchV2(feData.value.cricketMatch); + + if (!parsedMatch.ok) { + return error('Failed to parse the match from the header json'); + } + + const maybeTabs = createTabs( + selected, + feData.value, + parsedMatch.value.kind, + ); + + if (!maybeTabs.ok) { + return error( + `The match header data contained an invalid ${maybeTabs.error.kind} URL`, + ); + } + + return ok({ + match: parsedMatch.value, + tabs: maybeTabs.value, + }); + }; + +type MatchURLError = { + kind: 'live' | 'report'; +}; + +const createTabs = ( + selected: CricketHeaderData['tabs']['selected'], + feData: FECricketMatchHeader, + matchKind: CricketMatch['kind'], +): Result => { + const reportURL = + feData.reportURL !== undefined + ? safeParseURL(feData.reportURL) + : undefined; + const liveURL = + feData.liveURL !== undefined ? safeParseURL(feData.liveURL) : undefined; + if (reportURL !== undefined && !reportURL.ok) { + return error({ kind: 'report' }); + } + + if (liveURL !== undefined && !liveURL.ok) { + return error({ kind: 'live' }); + } + + switch (selected) { + case 'info': + return ok({ + matchKind, + sportKind: 'cricket', + selected, + reportURL: reportURL?.value, + liveURL: liveURL?.value, + }); + case 'live': + return ok({ + matchKind, + sportKind: 'cricket', + selected, + reportURL: reportURL?.value, + }); + case 'report': + return ok({ + matchKind, + sportKind: 'cricket', + selected, + liveURL: liveURL?.value, + }); + } +}; diff --git a/dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx b/dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx new file mode 100644 index 00000000000..c4d34f4ca93 --- /dev/null +++ b/dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx @@ -0,0 +1,32 @@ +import type { CricketMatch } from '../cricketMatchV2'; +import type { CricketMatchHeaderProps } from './CricketMatchHeader/CricketMatchHeader'; +import { CricketMatchHeader } from './CricketMatchHeader/CricketMatchHeader'; + +type Props = + | (CricketMatchHeaderProps & { + selectedTab: 'info'; + initialData: CricketMatch; + }) + | (CricketMatchHeaderProps & { + selectedTab: 'live' | 'report'; + initialData?: never; + }); + +export const CricketMatchHeaderWrapper = (props: Props) => ( + +); + +const fixHydration = (initialData: CricketMatch): CricketMatch => ({ + ...initialData, + matchDate: new Date(initialData.matchDate), +}); + +const getHeaderData = (url: string): Promise => + fetch(url).then((res) => res.json()); diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx index ff54be283bd..8c8ddf21c7b 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx @@ -65,10 +65,11 @@ const baseArgs = { 'R S Madugalle', ], }, - selectedTab: 'info' as 'info' | 'live' | 'report', infoURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', ), + matchHeaderURL: + 'https://api.nextgen.guardianapps.co.uk/sport/cricket/match-header/2026-06-13/australia-women-s-cricket-team.json', edition: 'UK', } satisfies ComponentProps; @@ -81,7 +82,6 @@ export const CricketScorecardPageNewLive = meta.story({ name: 'Cricket Scorecard Page Live (New)', args: { ...baseArgs, - selectedTab: 'info', liveURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx index 20210933518..3929b47b8b4 100644 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx +++ b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx @@ -4,31 +4,31 @@ import type { CricketMatch } from '../cricketMatchV2'; import { grid } from '../grid'; import { type EditionId } from '../lib/edition'; import { palette } from '../palette'; -import { CricketMatchHeader } from './CricketMatchHeader/CricketMatchHeader'; +import { CricketMatchHeaderWrapper } from './CricketMatchHeaderWrapper.island'; import { CricketScorecardNew } from './CricketScorecardNew'; -import type { TabName } from './FootballMatchHeader/Tabs'; export const CricketScorecardPageNew = ({ match, edition, - selectedTab, + matchHeaderURL, infoURL, liveURL, reportURL, }: { match: CricketMatch; edition: EditionId; - selectedTab: TabName; + matchHeaderURL: string; infoURL?: URL; liveURL?: URL; reportURL?: URL; }) => { return (

    - ; diff --git a/dotcom-rendering/src/layouts/LiveLayout.tsx b/dotcom-rendering/src/layouts/LiveLayout.tsx index c195252f4fe..b884d368114 100644 --- a/dotcom-rendering/src/layouts/LiveLayout.tsx +++ b/dotcom-rendering/src/layouts/LiveLayout.tsx @@ -19,6 +19,7 @@ import { ArticleMetaApps } from '../components/ArticleMeta.apps'; import { ArticleMeta } from '../components/ArticleMeta.web'; import { ArticleTitle } from '../components/ArticleTitle'; import { Carousel } from '../components/Carousel.island'; +import { CricketMatchHeaderWrapper } from '../components/CricketMatchHeaderWrapper.island'; import { DecideLines } from '../components/DecideLines'; import { DirectoryPageNavIsland } from '../components/DirectoryPageNavIsland'; import { DiscussionLayout } from '../components/DiscussionLayout'; @@ -50,6 +51,7 @@ import { canRenderAds } from '../lib/canRenderAds'; import { getContributionsServiceUrl } from '../lib/contributions'; import { decideStoryPackageTrails } from '../lib/decideTrail'; import { getZIndex } from '../lib/getZIndex'; +import { useAB } from '../lib/useAB'; import { worldCupTagId } from '../lib/worldCup2026'; import type { NavType } from '../model/extract-nav'; import { palette as themePalette } from '../palette'; @@ -281,6 +283,15 @@ export const LiveLayout = (props: WebProps | AppsProps) => { const { branding } = article.commercialProperties[article.editionId]; + const ab = useAB(); + const isCricketRedesignEnabled = Boolean( + ab?.isUserInTestGroup('webx-cricket-redesign', 'enable'), + ); + + const isSportsMatch = + article.matchType === 'FootballMatchType' || + article.matchType === 'CricketMatchType'; + const footballMatchUrl = article.matchType === 'FootballMatchType' ? article.matchUrl @@ -302,6 +313,11 @@ export const LiveLayout = (props: WebProps | AppsProps) => { const cricketMatchUrl = article.matchType === 'CricketMatchType' ? article.matchUrl : undefined; + const cricketMatchHeaderUrl = + article.matchType === 'CricketMatchType' + ? article.matchHeaderUrl + : undefined; + const hasKeyEvents = !!article.keyEvents.length; const renderAds = canRenderAds(article); @@ -383,32 +399,22 @@ export const LiveLayout = (props: WebProps | AppsProps) => { )} - {footballMatchUrl ? ( - footballMatchHeaderUrl && ( - <> - - - - - - ) + {isSportsMatch ? ( + ) : (
    { ); }; + +const MatchHeader = (props: { + football: { + footballMatchLeagueName: string; + footballMatchLeagueUrl: string; + footballMatchHeaderUrl?: string; + footballMatchUrl?: string; + }; + cricket: { + cricketMatchHeaderUrl?: string; + isCricketRedesignEnabled: boolean; + }; + renderingTarget: RenderingTarget; + format: ArticleFormat; + article: ArticleDeprecated; +}) => { + if ( + props.football.footballMatchUrl && + props.football.footballMatchHeaderUrl + ) { + return ( + <> + + + + + + ); + } + + if ( + props.cricket.cricketMatchHeaderUrl && + props.cricket.isCricketRedesignEnabled + ) { + return ( + + + + ); + } + + return null; +}; From 3626d26ca3a3e29a04993cb04da6a81801840324 Mon Sep 17 00:00:00 2001 From: andresilva-guardian Date: Tue, 16 Jun 2026 08:19:56 +0100 Subject: [PATCH 116/293] Update AB test audience configuration and validation logic for Feast Web nudge (#16163) --- ab-testing/config/abTests.ts | 6 +++--- ab-testing/config/scripts/validation/enoughSpace.ts | 2 +- ab-testing/config/types.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index d099d0a919d..0f00d2ba863 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -192,9 +192,9 @@ const ABTests: ABTest[] = [ status: "ON", expirationDate: "2027-01-01", type: "client", - audienceSize: 1, - audienceSpace: "D", - groups: ["control", "variant-1"], + audienceSize: 50 / 100, + audienceSpace: "A", + groups: ["variant-1"], shouldForceMetricsCollection: false, }, ]; diff --git a/ab-testing/config/scripts/validation/enoughSpace.ts b/ab-testing/config/scripts/validation/enoughSpace.ts index 083139c3a32..a37c2b96cc5 100644 --- a/ab-testing/config/scripts/validation/enoughSpace.ts +++ b/ab-testing/config/scripts/validation/enoughSpace.ts @@ -8,7 +8,7 @@ export function enoughSpace(allTests: ABTest[]) { acc[space] += test.audienceSize; return acc; }, - { A: 0, B: 0, C: 0, D: 0 }, + { A: 0, B: 0, C: 0 }, ); Object.entries(spaceTotalSize).forEach(([space, size]) => { diff --git a/ab-testing/config/types.ts b/ab-testing/config/types.ts index 1ea5f4352ed..bfbd0fcbd78 100644 --- a/ab-testing/config/types.ts +++ b/ab-testing/config/types.ts @@ -45,7 +45,7 @@ type ABTest = { * Having multiple test spaces allows deliberate overlapping of test audiences * Defaults to A */ - audienceSpace?: "A" | "B" | "C" | "D"; + audienceSpace?: "A" | "B" | "C"; /** Test group definition */ groups: string[]; /** From d73d4c6fe0e5d4001411365cd260b30419d6234a Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Tue, 16 Jun 2026 09:01:02 +0100 Subject: [PATCH 117/293] Add interaction tests for cricket header stories The tests are still not covering all scenarios. This will need to be improved after the tabs logic is implemented --- .../CricketMatchHeader.stories.tsx | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx index 197e87fadbe..83635424295 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx @@ -1,4 +1,5 @@ import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import { expect, within } from 'storybook/test'; import type { CricketMatch } from '../../cricketMatchV2'; import type { EditionId } from '../../lib/edition'; import { CricketMatchHeader } from './CricketMatchHeader'; @@ -120,6 +121,35 @@ const baseArgs = { export const Fixture = { args: baseArgs, + play: async ({ canvas, canvasElement, step }) => { + const nav = canvas.getByRole('navigation'); + + await step( + 'Placeholder not shown as we have initial data and can render header', + async () => { + void expect( + canvasElement.querySelector('[data-name="placeholder"]'), + ).toBeNull(); + + const initialTabs = within(nav).getAllByRole('listitem'); + + void expect(initialTabs.length).toBe(1); + void expect(initialTabs[0]).toHaveTextContent('Scorecard'); + }, + ); + + await step('Fetch updated match header data', async () => { + // Wait for 'Ashes 2025–2026' to appear which indicates match header + // data has been fetched and the UI updated on the client + await canvas.findByText('Ashes 2025–2026'); + void canvas.findByText('England'); + void canvas.findByText('Australia'); + + const updatedTabs = within(nav).getAllByRole('listitem'); + void expect(updatedTabs.length).toBe(1); + void expect(updatedTabs[0]).toHaveTextContent('Scorecard'); + }); + }, } satisfies Story; export const Live = { @@ -164,6 +194,29 @@ export const Live = { 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', ), }, + play: async ({ canvas, step }) => { + await step('Fetch match header data and render UI', async () => { + // Wait for 'Ashes 2025–2026' to appear which signals match header + // data has been fetched and the UI rendered on the client + await canvas.findByText('Ashes 2025–2026'); + void canvas.findByText('England'); + void canvas.findByText('Australia'); + + void expect( + canvas.getByLabelText('169 runs, 0 wickets fallen'), + ).toBeInTheDocument(); + void expect( + canvas.getByLabelText('173 runs, 3 wickets fallen'), + ).toBeInTheDocument(); + + const nav = canvas.getByRole('navigation'); + const tabs = within(nav).getAllByRole('listitem'); + + void expect(tabs.length).toBe(2); + void expect(tabs[0]).toHaveTextContent('Live feed'); + void expect(tabs[1]).toHaveTextContent('Scorecard'); + }); + }, } satisfies Story; export const LiveYetToBat = { @@ -268,6 +321,22 @@ export const Result = { 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', ), }, + play: async ({ canvas, step }) => { + await step('Fetch match header data and render UI', async () => { + // Wait for 'Ashes 2025–2026' to appear which signals match header + // data has been fetched and the UI rendered on the client + await canvas.findByText('Ashes 2025–2026'); + void canvas.findByText('England'); + void canvas.findByText('Australia'); + + const nav = canvas.getByRole('navigation'); + const tabs = within(nav).getAllByRole('listitem'); + + void expect(tabs.length).toBe(2); + void expect(tabs[0]).toHaveTextContent('Live feed'); + void expect(tabs[1]).toHaveTextContent('Scorecard'); + }); + }, } satisfies Story; export const ResultWinByWickets = { From 051bed3d645bde7588e1a9cb1423fc3fa6e39710 Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Tue, 16 Jun 2026 09:28:03 +0100 Subject: [PATCH 118/293] Ensure right header is rendered in live layout --- dotcom-rendering/src/layouts/LiveLayout.tsx | 113 +++++++++----------- 1 file changed, 52 insertions(+), 61 deletions(-) diff --git a/dotcom-rendering/src/layouts/LiveLayout.tsx b/dotcom-rendering/src/layouts/LiveLayout.tsx index b884d368114..4973f891c81 100644 --- a/dotcom-rendering/src/layouts/LiveLayout.tsx +++ b/dotcom-rendering/src/layouts/LiveLayout.tsx @@ -288,10 +288,6 @@ export const LiveLayout = (props: WebProps | AppsProps) => { ab?.isUserInTestGroup('webx-cricket-redesign', 'enable'), ); - const isSportsMatch = - article.matchType === 'FootballMatchType' || - article.matchType === 'CricketMatchType'; - const footballMatchUrl = article.matchType === 'FootballMatchType' ? article.matchUrl @@ -399,61 +395,21 @@ export const LiveLayout = (props: WebProps | AppsProps) => { )} - {isSportsMatch ? ( - - ) : ( -
    - - - - - -
    - {!footballMatchUrl && ( - - )} -
    -
    -
    -
    - )} - +
    { ); }; -const MatchHeader = (props: { +const Header = (props: { football: { footballMatchLeagueName: string; footballMatchLeagueUrl: string; @@ -1213,5 +1169,40 @@ const MatchHeader = (props: { ); } - return null; + return ( +
    + + + + + +
    + {!props.football.footballMatchUrl && ( + + )} +
    +
    +
    +
    + ); }; From e17b2509f05a412bf60a07eaee0c6f13819513a8 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Tue, 16 Jun 2026 09:55:25 +0100 Subject: [PATCH 119/293] fixing lockfile --- pnpm-lock.yaml | 5430 +++++++++++++++++++++--------------------------- 1 file changed, 2387 insertions(+), 3043 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a442c084710..42600d2a0dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -219,28 +219,28 @@ importers: version: link:../config '@sveltejs/adapter-auto': specifier: 7.0.1 - version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))) + version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) '@sveltejs/adapter-static': specifier: 3.0.10 - version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))) + version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) '@sveltejs/kit': specifier: 2.60.1 - version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) + version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) '@sveltejs/vite-plugin-svelte': specifier: 7.1.2 - version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) + version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) svelte: specifier: 5.56.3 - version: 5.56.3(@typescript-eslint/types@8.61.0) + version: 5.56.3(@typescript-eslint/types@8.59.2) svelte-check: specifier: 4.6.0 - version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3) + version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3) typescript: specifier: 'catalog:' version: 5.9.3 vite: specifier: 6.4.2 - version: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) + version: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) ab-testing/notification-lambda: dependencies: @@ -312,7 +312,7 @@ importers: specifier: 11.11.0 version: 11.11.0 '@guardian/ab-testing-config': - specifier: workspace:^ + specifier: workspace:ab-testing-config version: link:../ab-testing/config '@guardian/braze-components': specifier: 23.0.1 @@ -379,7 +379,7 @@ importers: version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/addon-docs': specifier: 10.3.3 - version: 10.3.3(@types/react@18.3.1)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1) + version: 10.3.3(@types/react@18.3.1)(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) '@storybook/addon-webpack5-compiler-swc': specifier: 4.0.3 version: 4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1) @@ -622,7 +622,7 @@ importers: version: 3.3.2 postcss-styled-syntax: specifier: 0.7.1 - version: 0.7.1(postcss@8.5.15) + version: 0.7.1(postcss@8.5.9) preact: specifier: 10.15.1 version: 10.15.1 @@ -733,7 +733,7 @@ importers: version: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) webpack-dev-server: specifier: 5.2.4 - version: 5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1) + version: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) webpack-hot-server-middleware: specifier: 0.6.1 version: 0.6.1(webpack@5.104.1) @@ -758,8 +758,12 @@ importers: packages: - '@adobe/css-tools@4.5.0': - resolution: {integrity: sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==} + '@aashutoshrathi/word-wrap@1.2.6': + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + + '@adobe/css-tools@4.4.4': + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} '@asamuzakjp/css-color@5.1.11': resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} @@ -779,11 +783,11 @@ packages: '@aws-cdk/asset-awscli-v1@2.2.273': resolution: {integrity: sha512-X57HYUtHt9BQrlrzUNcMyRsDUCoakYNnY6qh5lNwRCHPtQoTfXmuISkfLk0AjLkcbS5lw1LLTQFiQhTDXfiTvg==} - '@aws-cdk/asset-node-proxy-agent-v6@2.1.2': - resolution: {integrity: sha512-pDiuqH+qY3zM9lhhLjbKJ1tnKOHzQ2V4Wr/3qsxyKeKAkuPMI/BVGvZG1PbrikUw949cGVTfVEt4ETKKYnrj0Q==} + '@aws-cdk/asset-node-proxy-agent-v6@2.1.1': + resolution: {integrity: sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==} - '@aws-cdk/cloud-assembly-schema@53.28.0': - resolution: {integrity: sha512-pZS+9bLGv2tCqcgxfA0WD3XjcqT3yE4ICvKeJEicw6aTdCxBl8FQ/AUsorY/6f2JrMS3kUQgvhXxA30MWcji0A==} + '@aws-cdk/cloud-assembly-schema@53.27.0': + resolution: {integrity: sha512-OTxe/L2Vc60r2nYih7kFaFpn93sa7shJu9T0tQZsryeDE3HHOAuazKNmS6tLInOjJjVx/dvM5XGyUA+lZAiKxA==} engines: {node: '>= 18.0.0'} bundledDependencies: - jsonschema @@ -816,16 +820,16 @@ packages: resolution: {integrity: sha512-frCYjEyaOvQ6dZ8qaz+KZX+scPJnO7uN3HICDrkhpqdHEsSEDKtJFkCbYayAC0m0RyTWfX9gPqKDVmUOnUytHA==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-cognito-identity@3.1065.0': - resolution: {integrity: sha512-dGKFCiGbX5IrK+1NcqNgHKqWZtF3f5K2tDWJKDvGBurOO2q1SHu/XntEJydLWqEzYzJTimOZHaDzp/fqwYzu+g==} + '@aws-sdk/client-cognito-identity@3.1053.0': + resolution: {integrity: sha512-fMwSPTOWcYrKsB1NG1z9uRSLE/GDJR/375tjiAyO6z2UTlpLSuWkfoYx98oMwHaJpqb1fEhtZZQ7o8czblShJQ==} engines: {node: '>=20.0.0'} '@aws-sdk/client-cognito-identity@3.995.0': resolution: {integrity: sha512-CBGYQb6v6uIxvbID+ZzuYk/eGYGBVyXNUY8eu890WimzfahtyF/eLhvQTQJI0GrtKl8inSLKPqZOQ4tnrVAofQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-ec2@3.1065.0': - resolution: {integrity: sha512-QQFyk3gf64pGuqrXA8vn4o/RRrt1oJuVpDY60juj8p3u30haqK6bgrXyyOCI3Klz4Av0uFr524xTnL94Fm4O8g==} + '@aws-sdk/client-ec2@3.1053.0': + resolution: {integrity: sha512-8qfMGgfJdIOefogdYcF50yvX6rF9DNxljxh3qHz6CGuZTsXgJUzQ0U51z9mBUdh5YYTkK19o3c6LKuSHtT0MxQ==} engines: {node: '>=20.0.0'} '@aws-sdk/client-s3@3.995.0': @@ -836,8 +840,8 @@ packages: resolution: {integrity: sha512-CD+Kvf3mOp6lCDMiCkZ2o4hoHLRhBA2lwiZRZoAV7xTe2FR0zlnoC5irRRIWldhMEEPE/OZbLgfuCcWkuJUjtQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-ssm@3.1065.0': - resolution: {integrity: sha512-qHdmHVrx6gtUPwF9lnDd2cxkvUdbs8JOzn0esVTOXcwLxH+KKzrkMWrV5FHfiWh3Nsd121waRpKSfEX1Tg25VQ==} + '@aws-sdk/client-ssm@3.1053.0': + resolution: {integrity: sha512-LxfEs7UWnGwRMZWtCWhqyUej6eJkszy4rBPjlLrMe/nrZm3RrpDRqCcZkkg4DcIkU6z4kcutX78tePitUhiPtA==} engines: {node: '>=20.0.0'} '@aws-sdk/client-ssm@3.995.0': @@ -852,10 +856,6 @@ packages: resolution: {integrity: sha512-+Y5/4tHki0uYgyx8eun146DegRVQBpdKGK5RbV0FTKJPpaKTchvqVxrrRFK6Wk0JksO4iAZKw3eqxGEIwtO98w==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.974.20': - resolution: {integrity: sha512-7sDi2B2N3mc3nf1nz6FyEx/FCrJ1N1QnBmraHHQNabFaeAh2IaOOLml48/rHOD1bICHgTRkbBgNTvUzEr5Z35g==} - engines: {node: '>=20.0.0'} - '@aws-sdk/crc64-nvme@3.972.0': resolution: {integrity: sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==} engines: {node: '>=20.0.0'} @@ -864,8 +864,8 @@ packages: resolution: {integrity: sha512-WLdg4ErAu1Zkf9uPKQFC+UryHjaLTXji5SyBF3pTtqbbYOQHIfmf9Gsvn5zFol1T4SOWE4nDc8entfBAkAVHYQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-cognito-identity@3.972.44': - resolution: {integrity: sha512-OjovzYsHOTZmOdrSQI2/CjGNgHO0c0ZHTFIkt3bBfrhgNFPTLnbZDvmGdMst7U5c1dqq4gzpUwZC6X9HA12MDQ==} + '@aws-sdk/credential-provider-cognito-identity@3.972.36': + resolution: {integrity: sha512-DkibmGSpgUKUwqvbooEnwoU/18pbrneuOcysCwHolC85Q6UXGesZ73Sk00oK/SpWOe+lfjDxq2nMDypJvi2OmQ==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-env@3.972.21': @@ -876,10 +876,6 @@ packages: resolution: {integrity: sha512-29wX9zpAvEt1vcj0psha+y6ygBHy2V/S72mp6e7q0KARLWXq+pwE/lR6qGkwknQvruh52lXvlqZIga8Hdxkucw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.46': - resolution: {integrity: sha512-+GPXVS2srMOlH74S+SmC1gVuP2TvUZ0siuC0onKO93q+udP+M72dmY8wJfVQ5CX9z/9X5A1HHwz5yRIGBtskvQ==} - engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.23': resolution: {integrity: sha512-4XZ3+Gu5DY8/n8zQFHBgcKTF7hWQl42G6CY9xfXVo2d25FM/lYkpmuzhYopYoPL1ITWkJ2OSBQfYEu5JRfHOhA==} engines: {node: '>=20.0.0'} @@ -888,10 +884,6 @@ packages: resolution: {integrity: sha512-IA3CQTjtJkb6u1H4mE4936c8OPBMa9Jggtwe8U2Mqw/vvb/tZ5Ebd0mcZcX0uKWQhOyYo/+qNIwkV5Xh+FeJJA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.48': - resolution: {integrity: sha512-fA5loSdlocacRxyUXtpoHSMuk5rsIKRDzQYVMnMxjcmFeZshaJlJ8lymy/hYKji6sne/UmNGj5pxuEs6kq/Qcg==} - engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.23': resolution: {integrity: sha512-PZLSmU0JFpNCDFReidBezsgL5ji9jOBry8CnZdw4Jj6d0K2z3Ftnp44NXgADqYx5BLMu/ZHujfeJReaDoV+IwQ==} engines: {node: '>=20.0.0'} @@ -900,16 +892,12 @@ packages: resolution: {integrity: sha512-4mzII+3mZEVXXE1xzrLQrCJL7/r62A63bA6SVzZoNL5rqCJghpf+xgGltVrIBBs0n+mOZBKrQl2tRREtvZ5l6A==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.52': - resolution: {integrity: sha512-szg1nnebqC+Svv6Vfsdf6P/QK8x5g/ghG2CKa/1WkHifRnq0BBmDELj2Qnqk9nPsUvEu/OEcYic97CPLpKqF9g==} - engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.23': resolution: {integrity: sha512-OmE/pSkbMM3dCj1HdOnZ5kXnKK+R/Yz+kbBugraBecp0pGAs21eEURfQRz+1N2gzIHLVyGIP1MEjk/uSrFsngg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.51': - resolution: {integrity: sha512-csHFsH+/VjnI40oqm1l1OqMY4B4kza36DbfcbHcgcbobgjebasqUbTU34xvwUkvtoNGGizbfyMSlMzJWUPv3dQ==} + '@aws-sdk/credential-provider-login@3.972.43': + resolution: {integrity: sha512-HG7kQCwXtbv3oBV61Ins0oNX8KKyvrMqqRkb6ZiAfQHbMuHaiNaEb2KnpKLPkNpqImSBK82UkVE/kaY6IfWikA==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-node@3.972.24': @@ -920,10 +908,6 @@ packages: resolution: {integrity: sha512-sDaBIT0yrNNIPfvlsiTCmANm07zKju+ipWODjEXgZlsjMeIJR3LVp7RDyAOzUoAsTbDfYKDWp+i5WrFiQP6rmQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.54': - resolution: {integrity: sha512-vinTSQtziNHxi2nqXF+76jr2sO44q88Ind1qFFVaotNgBaC1rcWDjBug8yoE8n0ov33s21xks9WY5XDHH9SENw==} - engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.21': resolution: {integrity: sha512-nRxbeOJ1E1gVA0lNQezuMVndx+ZcuyaW/RB05pUsznN5BxykSlH6KkZ/7Ca/ubJf3i5N3p0gwNO5zgPSCzj+ww==} engines: {node: '>=20.0.0'} @@ -932,10 +916,6 @@ packages: resolution: {integrity: sha512-2k/amBifLd75eXNwgvPw/2lKYSQ3NhvHQgkVKVjfUq13/eJ3JRtHmznuFenn74OK3sSfp4SMy1YB2w+UVXoKqA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.46': - resolution: {integrity: sha512-VUoNFBIjWrUN8NbFiQiuxQEgFjvziAlBRPK+ddh27aj65gk0BYu6bLZnrdrNZwpW6vAihtSUtEMQ1PUJ32QRPA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.23': resolution: {integrity: sha512-APUccADuYPLL0f2htpM8Z4czabSmHOdo4r41W6lKEZdy++cNJ42Radqy6x4TopENzr3hR6WYMyhiuiqtbf/nAA==} engines: {node: '>=20.0.0'} @@ -944,10 +924,6 @@ packages: resolution: {integrity: sha512-LPc3+Y4vhH1T4x6CMqwCM6hk5+SRf/Lwmgm8INm95wxTtIRHcMwQUVkDzWu4Iw/RSncxYM2BC01OrYbxOPZvyg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.51': - resolution: {integrity: sha512-60qhpQcSDIKIr0AuBlmJezKX0b5nbJPCINiR49N9yJXrEI5tTRwsXVBr0IdSvvsNJyqgiINyoBd++Ed0yvggbw==} - engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.23': resolution: {integrity: sha512-H5JNqtIwOu/feInmMMWcK0dL5r897ReEn7n2m16Dd0DPD9gA2Hg8Cq4UDzZ/9OzaLh/uqBM6seixz0U6Fi2Eag==} engines: {node: '>=20.0.0'} @@ -956,12 +932,8 @@ packages: resolution: {integrity: sha512-wQtL34lUD/09VXjwAUo2T+I3aEXRDxMB3DKmTJL/Zj0Gi6sLDTrVhae1XVt01yzkquOWajI/sZW72JGDZ1ciTw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.51': - resolution: {integrity: sha512-0X5eWsUIp8ItRJeJBBrhQAPzc9AQelDetRTVTsycCAISCCzM17R4hs/vFAPeQ0o0B35sciLiqe/Pwmml909cZA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/credential-providers@3.1065.0': - resolution: {integrity: sha512-g5FGZvk9UbAD7HeGFCp+fQGJiNAneJJabpAZY13SSmVeI2Yw/V66U3na1StnqvZCYfXvGybJvSGtq2IdoCrK4g==} + '@aws-sdk/credential-providers@3.1053.0': + resolution: {integrity: sha512-jMzNBhYIIzaKiVOFndhyWSvEIosiU/zSxgcOaGXrHGcwlRXcFgTgZEcOFL504hxg4BdrrAIVdGw55Zk9zMhs7g==} engines: {node: '>=20.0.0'} '@aws-sdk/credential-providers@3.995.0': @@ -980,10 +952,6 @@ packages: resolution: {integrity: sha512-E663+r/UQpvF3aJkD40p5ZANVQFsUcbE39jifMtN7wc0t1M0+2gJJp3i75R49aY9OiSX5lfVyPUNjN/BNRCCZA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.972.21': - resolution: {integrity: sha512-+SRZL54/T9Ryxa/NmHM7WZAliU6wnfzeosT/+4IVuTgq0zSCpPx2j3yaEP4JFZlvWvoOCbKgr+4tBqSAG/dl5Q==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.972.8': resolution: {integrity: sha512-wAr2REfKsqoKQ+OkNqvOShnBoh+nkPurDKW7uAeVSu6kUECnWlSJiPvnoqxGlfousEY/v9LfS9sNc46hjSYDIQ==} engines: {node: '>=20.0.0'} @@ -992,24 +960,16 @@ packages: resolution: {integrity: sha512-nIg64CVrsXp67vbK0U1/Is8rik3huS3QkRHn2DRDx4NldrEFMgdkZGI/+cZMKD9k4YOS110Dfu21KZLHrFA/1g==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.972.20': - resolution: {integrity: sha512-8oOvo7XNDeOlwa5ys2Q0UTLCKmtvRiqf8rOU63lKniPmP3dnI5lnoy9dteZ79lxb9hmXCrO28aZMqds6C5AEoA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.972.8': resolution: {integrity: sha512-CWl5UCM57WUFaFi5kB7IBY1UmOeLvNZAZ2/OZ5l20ldiJ3TiIz1pC65gYj8X0BCPWkeR1E32mpsCk1L1I4n+lA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.972.22': - resolution: {integrity: sha512-q4H/CoOYrTbyAW0d9RrHf9kTYKVXpAwoK0VEy3UT2Asad+6aa6vzQgz35dh20tRA7zlEo/Nsyjy9PVlHgdq0Vg==} - engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.972.8': resolution: {integrity: sha512-BnnvYs2ZEpdlmZ2PNlV2ZyQ8j8AEkMTjN79y/YA475ER1ByFYrkVR85qmhni8oeTaJcDqbx364wDpitDAA/wCA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-ec2@3.972.34': - resolution: {integrity: sha512-xOxVjHBm04meFPYBBNN3X1eMP1epESN5E1t+JCWCbkQMTkijOnrbR3/ZOdWxRCPoCba5NG6mXaZ9Kg5oy5CywQ==} + '@aws-sdk/middleware-sdk-ec2@3.972.27': + resolution: {integrity: sha512-jOUHykRIV8Ki+004htgSf/IhfHHdvIw7aQ+qaiTA3qa7gSLFCsqm17Sgj/vZcZicNuiIthuURStKmcYeFS/bIg==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-sdk-s3@3.972.11': @@ -1024,10 +984,6 @@ packages: resolution: {integrity: sha512-dLTWy6IfAMhNiSEvMr07g/qZ54be6pLqlxVblbF6AzafmmGAzMMj8qMoY9B4+YgT+gY9IcuxZslNh03L6PyMCQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.972.50': - resolution: {integrity: sha512-5JIDcDFWy3DUW95sOlXLbeb7RkGFUcNh1QidKsznqtlm5YGsXP0EGWaqzxBTvVmOhqKs2RmNmI6w9V/5dS3CLQ==} - engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.995.0': resolution: {integrity: sha512-7gq9gismVhESiRsSt0eYe1y1b6jS20LqLk+e/YSyPmGi9yHdndHQLIq73RbEJnK/QPpkQGFqq70M1mI46M1HGw==} engines: {node: '>=20.0.0'} @@ -1036,12 +992,8 @@ packages: resolution: {integrity: sha512-ptZ1HF4yYHNJX8cgFF+8NdYO69XJKZn7ft0/ynV3c0hCbN+89fAbrLS+fqniU2tW8o9Kfqhj8FUh+IPXb2Qsuw==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.997.19': - resolution: {integrity: sha512-P2Otgf15GBJMKzG6j5Ddf7w+Kz6z2jvesMy874TD3jlMfDWNK7clJeUd7hgigdeVOotjoUP4emcTWVdS9sfZDw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/region-config-resolver@3.972.24': - resolution: {integrity: sha512-WY6uVMsq0EvxY4BcYhZmG2Ivd1EzNvZAqsXFlL3pTPMG0P4J83TYVQIs8P0nd5lc+Bp3llrYwggruvXzrfUtsQ==} + '@aws-sdk/nested-clients@3.997.11': + resolution: {integrity: sha512-nWXXJ1r/r8N2Gw1pWolRgED38/A9A8DHR2ETWIv220zh4PZHcybbR4hUVWWktmNXTRHzDJwRluapHn0rZxuoqA==} engines: {node: '>=20.0.0'} '@aws-sdk/region-config-resolver@3.972.9': @@ -1052,8 +1004,8 @@ packages: resolution: {integrity: sha512-9Qx5JcAucnxnomREPb2D6L8K8GLG0rknt3+VK/BU3qTUynAcV4W21DQ04Z2RKDw+DYpW88lsZpXbVetWST2WUg==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.33': - resolution: {integrity: sha512-Hn0RThJEbyOZWV2PV9Z4YD3nitGPxybmyU17dSe9b61WOBcKnqS0WTtM3c1zyZq9WnGiyrfi/i+UBPUk7cM8Ug==} + '@aws-sdk/signature-v4-multi-region@3.996.28': + resolution: {integrity: sha512-qs9z5LqXO/CZC2Lg9SGKpoLU8Rhi+m2pFKZqfO9pytX1clc0katqtsDNupJxFy0xT9wsZSPzM2v1y+/H/zfp5Q==} engines: {node: '>=20.0.0'} '@aws-sdk/token-providers@3.1014.0': @@ -1064,14 +1016,6 @@ packages: resolution: {integrity: sha512-QqZNB3so7UIDxZtroc85TQaLVxdZRFm0eWM1CSR2N+b06as9TOrilvrlTZuj3guYlxMs6yLOgGxnklJ5qMYtTw==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1065.0': - resolution: {integrity: sha512-qdHQntq82gMqG6Tf8xrgmhJxacaYkxW4PEeDg/ISMVJ84EWe7iD6JyCTgbyox3uNDH6vqEJ8GUiTaXCq307zVw==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/types@3.973.12': - resolution: {integrity: sha512-43ajd1NF0RMgX5k0hxCNUyEdrtFUsb2aHT2QvpktSC/2Eyb2Jr/JPVqdp0XIoaHWikZJq5tNWSLO6kB5q2eMCA==} - engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.973.6': resolution: {integrity: sha512-Atfcy4E++beKtwJHiDln2Nby8W/mam64opFPTiHEqgsthqeydFS1pY+OUlN1ouNOmf8ArPU/6cDS65anOP3KQw==} engines: {node: '>=20.0.0'} @@ -1096,13 +1040,6 @@ packages: resolution: {integrity: sha512-f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw==} engines: {node: '>=14.0.0'} - '@aws-sdk/util-locate-window@3.965.7': - resolution: {integrity: sha512-M0D6oIpohdNHjc7udzTHEQyot0+0iuA36jc2I9Hps+f/GtKi2HO/pyijQnCnNcwZqLB5+rtn81z3eZK/GyjAmA==} - engines: {node: '>=20.0.0'} - - '@aws-sdk/util-user-agent-browser@3.972.21': - resolution: {integrity: sha512-Y9MPH4VZaIebwxiVK6dMzSt5L04oyNiK3NNwFe4qP5B2Hfo+pmEVpSJSa+gARPtcJeRyehUMPu5/I9DLdW0cBg==} - '@aws-sdk/util-user-agent-browser@3.972.8': resolution: {integrity: sha512-B3KGXJviV2u6Cdw2SDY2aDhoJkVfY/Q/Trwk2CMSkikE1Oi6gRzxhvhIfiRpHfmIsAhV4EA54TVEX8K6CbHbkA==} @@ -1115,10 +1052,6 @@ packages: aws-crt: optional: true - '@aws-sdk/util-user-agent-node@3.973.36': - resolution: {integrity: sha512-wsmSmHTrK9lV+5SKBekp1J7W6PufdZE08X0xv5Lz1OdgYRmyuYDy/++SslKdXhcVQjxLtzMTZaLqqLZmTx6OaQ==} - engines: {node: '>=20.0.0'} - '@aws-sdk/xml-builder@3.972.15': resolution: {integrity: sha512-PxMRlCFNiQnke9YR29vjFQwz4jq+6Q04rOVFeTDR2K7Qpv9h9FOWOxG+zJjageimYbWqE3bTuLjmryWHAWbvaA==} engines: {node: '>=20.0.0'} @@ -1127,158 +1060,148 @@ packages: resolution: {integrity: sha512-GH+Kjz4nPKWKHnsiQpnhP1MJdTGIcK4rAka6tzakgjjUkVgNsmPeEbbRAf09SzS1hjGu6duGHCBsxYke0BhHjQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/xml-builder@3.972.29': - resolution: {integrity: sha512-fk0niuGFxfi8yIJuMVM4mhwObkiQSuwZFj3tAPrLVx64Pk3BkrEIpqjzHKY4hKoEBUD6Jg/S74Zj9jy+5F3DnQ==} - engines: {node: '>=20.0.0'} - '@aws/lambda-invoke-store@0.2.2': resolution: {integrity: sha512-C0NBLsIqzDIae8HFw9YIrIBsbc0xTiOtt7fAukGPnqQ/+zZNaq+4jhuccltK0QuWHBnNm/a6kLIRA6GFiM10eg==} engines: {node: '>=18.0.0'} - '@aws/lambda-invoke-store@0.2.4': - resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} - engines: {node: '>=18.0.0'} - - '@babel/code-frame@7.29.7': - resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} '@babel/compat-data@7.29.7': resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} engines: {node: '>=6.9.0'} - '@babel/core@7.29.7': - resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.7': - resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.29.7': - resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.29.7': resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.29.7': - resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} + '@babel/helper-create-class-features-plugin@7.28.3': + resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.29.7': - resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==} + '@babel/helper-create-regexp-features-plugin@7.27.1': + resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.8': - resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} + '@babel/helper-define-polyfill-provider@0.6.5': + resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-globals@7.29.7': - resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.29.7': - resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} + '@babel/helper-member-expression-to-functions@7.27.1': + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.29.7': - resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.29.7': - resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.29.7': - resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.29.7': - resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.29.7': - resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==} + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.29.7': - resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.29.7': - resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.29.7': - resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.29.7': - resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.29.7': resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.29.7': - resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==} + '@babel/helper-wrap-function@7.28.3': + resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.29.7': - resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7': - resolution: {integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7': - resolution: {integrity: sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': + resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7': - resolution: {integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7': - resolution: {integrity: sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7': - resolution: {integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7': - resolution: {integrity: sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': + resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -1304,20 +1227,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/plugin-syntax-import-assertions@7.27.1': + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.29.7': - resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.29.7': - resolution: {integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==} + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1332,8 +1249,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.29.7': - resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1368,20 +1285,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-top-level-await@7.14.5': resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.29.7': - resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1392,350 +1303,350 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.29.7': - resolution: {integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==} + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.29.7': - resolution: {integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==} + '@babel/plugin-transform-async-generator-functions@7.28.0': + resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.29.7': - resolution: {integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==} + '@babel/plugin-transform-async-to-generator@7.27.1': + resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.29.7': - resolution: {integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==} + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.29.7': - resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==} + '@babel/plugin-transform-block-scoping@7.28.4': + resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.29.7': - resolution: {integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==} + '@babel/plugin-transform-class-properties@7.27.1': + resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.29.7': - resolution: {integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==} + '@babel/plugin-transform-class-static-block@7.28.3': + resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.29.7': - resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==} + '@babel/plugin-transform-classes@7.28.4': + resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.29.7': - resolution: {integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==} + '@babel/plugin-transform-computed-properties@7.27.1': + resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.29.7': - resolution: {integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==} + '@babel/plugin-transform-destructuring@7.28.0': + resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.29.7': - resolution: {integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==} + '@babel/plugin-transform-dotall-regex@7.27.1': + resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.29.7': - resolution: {integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==} + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7': - resolution: {integrity: sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-dynamic-import@7.29.7': - resolution: {integrity: sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==} + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-explicit-resource-management@7.29.7': - resolution: {integrity: sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==} + '@babel/plugin-transform-explicit-resource-management@7.28.0': + resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.29.7': - resolution: {integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==} + '@babel/plugin-transform-exponentiation-operator@7.27.1': + resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.29.7': - resolution: {integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==} + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.29.7': - resolution: {integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==} + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.29.7': - resolution: {integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==} + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.29.7': - resolution: {integrity: sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==} + '@babel/plugin-transform-json-strings@7.27.1': + resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.29.7': - resolution: {integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==} + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.29.7': - resolution: {integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==} + '@babel/plugin-transform-logical-assignment-operators@7.27.1': + resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.29.7': - resolution: {integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==} + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.29.7': - resolution: {integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==} + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.29.7': - resolution: {integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==} + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.29.7': - resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==} + '@babel/plugin-transform-modules-systemjs@7.29.4': + resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.29.7': - resolution: {integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==} + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.29.7': - resolution: {integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==} + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.29.7': - resolution: {integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==} + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.29.7': - resolution: {integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==} + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': + resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.29.7': - resolution: {integrity: sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==} + '@babel/plugin-transform-numeric-separator@7.27.1': + resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.29.7': - resolution: {integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==} + '@babel/plugin-transform-object-rest-spread@7.28.4': + resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.29.7': - resolution: {integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==} + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.29.7': - resolution: {integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==} + '@babel/plugin-transform-optional-catch-binding@7.27.1': + resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.29.7': - resolution: {integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==} + '@babel/plugin-transform-optional-chaining@7.27.1': + resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.29.7': - resolution: {integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==} + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.29.7': - resolution: {integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==} + '@babel/plugin-transform-private-methods@7.27.1': + resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.29.7': - resolution: {integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==} + '@babel/plugin-transform-private-property-in-object@7.27.1': + resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.29.7': - resolution: {integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==} + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-constant-elements@7.29.7': - resolution: {integrity: sha512-J0wGhKan+rIiE2OhfhRptySLrJ6SjQYM6b6N1FMlhyhCcw1Mig8vQjWchyB+bgHGDvaWo6Diu6CLRMra2uMtmg==} + '@babel/plugin-transform-react-constant-elements@7.23.3': + resolution: {integrity: sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.29.7': - resolution: {integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==} + '@babel/plugin-transform-react-display-name@7.27.1': + resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.29.7': - resolution: {integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==} + '@babel/plugin-transform-react-jsx-development@7.27.1': + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.29.7': - resolution: {integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==} + '@babel/plugin-transform-react-jsx@7.27.1': + resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.29.7': - resolution: {integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==} + '@babel/plugin-transform-react-pure-annotations@7.27.1': + resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.29.7': - resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==} + '@babel/plugin-transform-regenerator@7.28.4': + resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.29.7': - resolution: {integrity: sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==} + '@babel/plugin-transform-regexp-modifiers@7.27.1': + resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-reserved-words@7.29.7': - resolution: {integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==} + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.29.7': - resolution: {integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==} + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.29.7': - resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==} + '@babel/plugin-transform-spread@7.27.1': + resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.29.7': - resolution: {integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==} + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.29.7': - resolution: {integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==} + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.29.7': - resolution: {integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==} + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.29.7': - resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} + '@babel/plugin-transform-typescript@7.27.1': + resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.29.7': - resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==} + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.29.7': - resolution: {integrity: sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==} + '@babel/plugin-transform-unicode-property-regex@7.27.1': + resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.29.7': - resolution: {integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==} + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.29.7': - resolution: {integrity: sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==} + '@babel/plugin-transform-unicode-sets-regex@7.27.1': + resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.29.7': - resolution: {integrity: sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==} + '@babel/preset-env@7.28.3': + resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1745,32 +1656,32 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.29.7': - resolution: {integrity: sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==} + '@babel/preset-react@7.27.1': + resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.29.7': - resolution: {integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==} + '@babel/preset-typescript@7.27.1': + resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.7': - resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.29.7': - resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.7': - resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -1779,14 +1690,18 @@ packages: '@borewit/text-codec@0.2.2': resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} + '@bramus/specificity@2.4.2': + resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + hasBin: true + '@braze/web-sdk@6.5.0': resolution: {integrity: sha512-MdfwZn+tfe7+tR8Ir5468/njQDGhgVB9tBthq7gwSETsjv6Q+Hw2bXiQy3scDcACI2RLqiq+dNXKh6fD+pN4/Q==} - '@cacheable/memory@2.0.9': - resolution: {integrity: sha512-HdMx6DoGywB30vacDbBsITbIX4pgFqj1zsrV58jZBUw3klzkNoXhj7qOqAgledhxG7YZI5rBSJg7Zp8/VG0DuA==} + '@cacheable/memory@2.0.8': + resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==} - '@cacheable/utils@2.4.1': - resolution: {integrity: sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==} + '@cacheable/utils@2.4.0': + resolution: {integrity: sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==} '@creditkarma/thrift-server-core@1.0.4': resolution: {integrity: sha512-Jook5uFJqPeM/D0taSdKHeoerZB6HboSDMqBDWhVDJVSKJGWPSMch4GNALRqr8nCekLKMYkdCgj4FAVetnxpGA==} @@ -1806,8 +1721,8 @@ packages: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.1.2': - resolution: {integrity: sha512-n6Zd8mpVhObnaOqq6TC/lBCKgYncAGfFwuvJGQZTDRAwEoxwXIZu9kXBQeXkcqHsE6Sp6LyxDMrvXj5gOxnryw==} + '@csstools/css-color-parser@4.1.4': + resolution: {integrity: sha512-yI8kNhHiOrLb8Rlulsk07DeQz0PwyT69FX9dkz5rAp7p9RUwFKEXnZpBGzURiLHgi66YqIWxOHn1nij8Lrg27Q==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -1825,6 +1740,14 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 + '@csstools/css-syntax-patches-for-csstree@1.1.1': + resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} + peerDependencies: + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true + '@csstools/css-syntax-patches-for-csstree@1.1.5': resolution: {integrity: sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==} peerDependencies: @@ -1935,8 +1858,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1959,8 +1882,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1983,8 +1906,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -2007,8 +1930,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -2031,8 +1954,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -2055,8 +1978,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -2079,8 +2002,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -2103,8 +2026,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2127,8 +2050,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2151,8 +2074,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2175,8 +2098,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2199,8 +2122,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2223,8 +2146,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2247,8 +2170,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2271,8 +2194,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2295,8 +2218,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2319,8 +2242,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2337,8 +2260,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2361,8 +2284,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2379,8 +2302,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2403,8 +2326,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -2421,8 +2344,8 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -2445,8 +2368,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2469,8 +2392,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2493,8 +2416,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2517,8 +2440,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2567,6 +2490,15 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@exodus/bytes@1.15.1': + resolution: {integrity: sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@noble/hashes': ^1.8.0 || ^2.0.0 + peerDependenciesMeta: + '@noble/hashes': + optional: true + '@guardian/braze-components@23.0.1': resolution: {integrity: sha512-gYGu1lJCkjQ9PzYl4ucNBaeOiyb1bO9ColC5vSDr/+u1CsCyypF6c9uWCjfLiWXDUY9ywwggPNspqVZ5i8A+zA==} engines: {node: '24.2'} @@ -2760,8 +2692,8 @@ packages: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} - '@istanbuljs/schema@0.1.6': - resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} '@jest/console@29.7.0': @@ -2777,8 +2709,8 @@ packages: node-notifier: optional: true - '@jest/create-cache-key-function@30.4.1': - resolution: {integrity: sha512-R+xGEtzA95NIsvpXJSROG4t01956dDOt17KpamguY4XOnGvdHNFFXE7Er0C1OAsRjOwiIxpKqOvGlznIGZIQlQ==} + '@jest/create-cache-key-function@30.2.0': + resolution: {integrity: sha512-44F4l4Enf+MirJN8X/NhdGkl71k5rBYiwdVlo4HxOwbu0sHV8QKrGEedb1VUU4K3W7fBKE0HGfbn7eZm0Ti3zg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/environment@29.7.0': @@ -2801,8 +2733,8 @@ packages: resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/pattern@30.4.0': - resolution: {integrity: sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==} + '@jest/pattern@30.0.1': + resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/reporters@29.7.0': @@ -2818,8 +2750,8 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/schemas@30.4.1': - resolution: {integrity: sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==} + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/source-map@29.6.3': @@ -2842,8 +2774,8 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/types@30.4.1': - resolution: {integrity: sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==} + '@jest/types@30.2.0': + resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jridgewell/gen-mapping@0.3.13': @@ -2874,120 +2806,36 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/base64@17.67.0': - resolution: {integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - '@jsonjoy.com/buffers@1.2.1': resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/buffers@17.67.0': - resolution: {integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - '@jsonjoy.com/codegen@1.0.0': resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/codegen@17.67.0': - resolution: {integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-core@4.57.6': - resolution: {integrity: sha512-uI++Wx6VkBJqVmkb4ZeExwAVpZiA2Do5NrEtXoDk0Pdvce3ytFXJoviT1sLOj16+qDIMnD5nWPfOhVpnDmRJKg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-fsa@4.57.6': - resolution: {integrity: sha512-pKkw/yC5CzSZKhIIUIsH1przOa+K5jGmZIg1sWaSF24JojyrUFbjcQv7QrcGAudriei6HQ6R0BFj+V8NbQinJw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node-builtins@4.57.6': - resolution: {integrity: sha512-V4DgEFT3Cg5S9fCMOZSCVdTxdJWWLBO0WnAazV7hnCM96u5zXHyW/ubDAfcSVwqjkMJ50W1Y44IXtxRoIwaCVg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node-to-fsa@4.57.6': - resolution: {integrity: sha512-+JptNw3iifihxH2rEXrninDzX4FFVW8JD/wPR8GbJPAeL9CQUSblrlumOPB5gZuS7tYRX+PJPLtT7XzKoRhv/Q==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node-utils@4.57.6': - resolution: {integrity: sha512-foyUrfS7WmYEUzqYXSNxmJBcSj04TABrkpFabwO9SCDCpVCfJ+qG+2sk5FjfiflG2n0SDFZDCJ6vYlJAEpxJFg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node@4.57.6': - resolution: {integrity: sha512-Kbn1jdkvDN4F2+BhoB6mMu7NCbhP0bgA5NcI1aJj/Q5UcU+I1JLLW+dEQean33iV4tXv35AzBVKPICnDltBpxw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-print@4.57.6': - resolution: {integrity: sha512-96eAn4Dudtt67LTeuU47yUD+pg9/G/oKpI10zei9ljk3X3WK4lYKc+n3cpaPCAbKPzoyfxl0mXm8f8Y7BOSFXw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-snapshot@4.57.6': - resolution: {integrity: sha512-V57CMzbOgTzUWGOWQ8GzHQdpJP6JnrYVNCtTBNxVYEnlVRvo4uEJqHhtAT8vhDFrIuJOXLrTL1Fki4h5oI7xxg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - '@jsonjoy.com/json-pack@1.21.0': resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@17.67.0': - resolution: {integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - '@jsonjoy.com/json-pointer@1.0.2': resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/json-pointer@17.67.0': - resolution: {integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - '@jsonjoy.com/util@1.9.0': resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/util@17.67.0': - resolution: {integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - '@keyv/bigmap@1.3.1': resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} engines: {node: '>= 18'} @@ -3129,9 +2977,6 @@ packages: '@nodable/entities@2.1.0': resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} - '@nodable/entities@2.1.1': - resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} - '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3184,9 +3029,9 @@ packages: resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} engines: {node: '>=20.0.0'} - '@pkgr/core@0.3.6': - resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} - engines: {node: ^14.18.0 || >=16.0.0} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@playwright/test@1.60.0': resolution: {integrity: sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==} @@ -3508,6 +3353,9 @@ packages: cpu: [x64] os: [win32] + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@sentry-internal/browser-utils@10.52.0': resolution: {integrity: sha512-x/yEPZdpH6NGQeoeQnV9tj8reAH8twNttiltGZl2o8Rk7sQeUfe7E8yuYP2XbJ2RqyZK5qRS3COrNyMPzf6KFA==} engines: {node: '>=18'} @@ -3532,11 +3380,11 @@ packages: resolution: {integrity: sha512-VA/kAqLhkMnRWY2RXdBLyTemR9D4m7MVRy/gyapoq9yvllVPx9WXbvKgnMP2LQp7mFgT/oLFvw58aQKaYTGn3A==} engines: {node: '>=18'} - '@sinclair/typebox@0.27.10': - resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sinclair/typebox@0.34.49': - resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==} + '@sinclair/typebox@0.34.41': + resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} '@sindresorhus/is@7.2.0': resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} @@ -3546,8 +3394,8 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + '@sinonjs/commons@3.0.0': + resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} @@ -3568,10 +3416,6 @@ packages: resolution: {integrity: sha512-iIzMC5NmOUP6WL6o8iPBjFhUhBZ9pPjpUpQYWMUFQqKyXXzOftbfK8zcQCz/jFV1Psmf05BK5ypx4K2r4Tnwdg==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.5.6': - resolution: {integrity: sha512-AXbvUX9aNY2qCLOMCikpl1Df5w2CNFEqbEb6XafG81FJbAbB8avIT7BOx1KDqiO86J/38qKQ3YuakfAfY3iBkQ==} - engines: {node: '>=18.0.0'} - '@smithy/core@3.23.12': resolution: {integrity: sha512-o9VycsYNtgC+Dy3I0yrwCqv9CWicDnke0L7EVOrZtJpjb2t0EjaEofmMrYc0T1Kn3yk32zm6cspxF9u9Bj7e5w==} engines: {node: '>=18.0.0'} @@ -3580,10 +3424,6 @@ packages: resolution: {integrity: sha512-3UNRKEyQyAgVgM0LGlerCLm+ChZWZ1GPfde+jBEW6bm6bSBGU1p0EbblaUV3unbhwvidjLA5Zs3sOs7mnZwvAw==} engines: {node: '>=18.0.0'} - '@smithy/core@3.24.6': - resolution: {integrity: sha512-wBXDRup6UU97VKyaiRo8AssnfStPtG0oAAfpq/bC0a1YYau8pM86YB4kM6ccoVi1mS8l/UHbn9oDM+7uozr/ug==} - engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.2.12': resolution: {integrity: sha512-cr2lR792vNZcYMriSIj+Um3x9KWrjcu98kn234xA6reOAFMmbRpQMOv8KPgEmLLtx3eldU6c5wALKFqNOhugmg==} engines: {node: '>=18.0.0'} @@ -3592,10 +3432,6 @@ packages: resolution: {integrity: sha512-vKW0MEFRU4Y3MkVZUkpJm+g9qyPGLCXhc0YLggUdSdBB4g7IaSSsCE75P9rBXyWHrXY1UYSQUl8/DwsTR7QciA==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.3.8': - resolution: {integrity: sha512-5cAM+KZC02sTqDt6NaLXyu50M/GNMd1eTzDVR8Lb0BBsVtu7RWHo47VPPEEv1vt3Yub6uzr+M5FHC+GtoT0USg==} - engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.2.8': resolution: {integrity: sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==} engines: {node: '>=18.0.0'} @@ -3624,10 +3460,6 @@ packages: resolution: {integrity: sha512-qM7AUKI4G6d7lNgaZD3lA1tWSolh5r6gcixfTZAPstVURfjIbvreVTPz+994M0yC3HbX4YYhDRgr31Xy3XwWOQ==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.4.6': - resolution: {integrity: sha512-FEwEYJ1jlBKdhe9TPzfghEi1bP55ZeEImlDkEa62bBBYzUcnB6RUCyuiS2mqKt6ZVjUbBgcNhzfIctH+Hevx9g==} - engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.2.9': resolution: {integrity: sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==} engines: {node: '>=18.0.0'} @@ -3636,10 +3468,6 @@ packages: resolution: {integrity: sha512-QhBYbGrbxTkZ43QoTPrK72DoYviDeg6YKDrHTMJbbC+A0sml3kSjzFtXP7BtbyJnXojLfTQldGdUR0RGD8dA3w==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.3.6': - resolution: {integrity: sha512-lIZyQ7gDxURrnfkjalM0lKmDnfZYuPzNBYlkza3czPTQNVYsg4e0o90Zx/RpxhamKKOGsQGCsopp0ULsJqltNQ==} - engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.2.8': resolution: {integrity: sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==} engines: {node: '>=18.0.0'} @@ -3648,10 +3476,6 @@ packages: resolution: {integrity: sha512-/4F1zb7Z8LOu1PalTdESFHR0RbPwHd3FcaG1sI3UEIriQTWakysgJr65lc1jj6QY5ye7aFsisajotH6UhWfm/g==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.3.6': - resolution: {integrity: sha512-jUH1Eth7Sgn4KPBX5OKYDRpNjzul7AzsIhxKXT1rHXPTSfY00/7Kb9RtNil5SDAlPPsxaUiesR/rql2wjackmw==} - engines: {node: '>=18.0.0'} - '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} @@ -3664,58 +3488,34 @@ packages: resolution: {integrity: sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==} engines: {node: '>=18.0.0'} - '@smithy/middleware-compression@4.4.6': - resolution: {integrity: sha512-wZQpnjrGSO2IFxhwWNaeRzHh2swSwRGWaCVgQN9zqYdtP98tcNYyqI7YvPeVTwf9CvQTas7xlmR3NY5L1i32mg==} + '@smithy/middleware-compression@4.3.32': + resolution: {integrity: sha512-k2juJHA58gqAgnEshBW4b+CqCEaYEGSr6Hms4YIsDdUCHSbFy/JWDWEaNpjNDrlt9h/QuoRycTp1gTXJ1vdpdg==} engines: {node: '>=18.0.0'} '@smithy/middleware-content-length@4.2.12': resolution: {integrity: sha512-YE58Yz+cvFInWI/wOTrB+DbvUVz/pLn5mC5MvOV4fdRUc6qGwygyngcucRQjAhiCEbmfLOXX0gntSIcgMvAjmA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.3.6': - resolution: {integrity: sha512-nfpYCrzSFAgfIXmIHFTjOGNeTV3DVF5E5rfi3ZuNfsOjKSpePBOJF3rjyXlWYND0anvxVoqioIwClWCNdKt4Og==} - engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.27': resolution: {integrity: sha512-T3TFfUgXQlpcg+UdzcAISdZpj4Z+XECZ/cefgA6wLBd6V4lRi0svN2hBouN/be9dXQ31X4sLWz3fAQDf+nt6BA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.5.6': - resolution: {integrity: sha512-zdG5bJZOiM2PRgL2lwcgui6uwZ+s5y6Qsk/rk05Q69sZJT6oi1x+v8Kn++V/q9VY94EgOtEe5kivpu+eGau0wQ==} - engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.44': resolution: {integrity: sha512-Y1Rav7m5CFRPQyM4CI0koD/bXjyjJu3EQxZZhtLGD88WIrBrQ7kqXM96ncd6rYnojwOo/u9MXu57JrEvu/nLrA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.6.6': - resolution: {integrity: sha512-MWppaYUlc+W4cU2JZnYuMFeOxCWbKO4A57BWti6aCb7hRBK3+CL6llADGpX084hjImsqr3EvCGewArOj7G81eA==} - engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.2.15': resolution: {integrity: sha512-ExYhcltZSli0pgAKOpQQe1DLFBLryeZ22605y/YS+mQpdNWekum9Ujb/jMKfJKgjtz1AZldtwA/wCYuKJgjjlg==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.3.6': - resolution: {integrity: sha512-I3fPVYKKEog3a3qdqt1nttP1NBuQOAlNoQxEp6j5pMogSx0HHfid63difhcDgslV6p1XsTXG6D6ieTe13ycJtQ==} - engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.2.12': resolution: {integrity: sha512-kruC5gRHwsCOuyCd4ouQxYjgRAym2uDlCvQ5acuMtRrcdfg7mFBg6blaxcJ09STpt3ziEkis6bhg1uwrWU7txw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.3.6': - resolution: {integrity: sha512-QhNiWfg47Kl4SJHmuQvnlzCtlD1eX1J7d/vuuttIE17Ra2YUKp9Srv5lCwa3OvoYaSNWMKYn0PjGIsfCLMJsEA==} - engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.3.12': resolution: {integrity: sha512-tr2oKX2xMcO+rBOjobSwVAkV05SIfUKz8iI53rzxEmgW3GOOPOv0UioSDk+J8OpRQnpnhsO3Af6IEBabQBVmiw==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.4.6': - resolution: {integrity: sha512-M+gG6eQ0y073mSmNB+erRXJvwpsqsN72ol2w6vcd8FEKeG7pqYK0JvzfVqONkPj2ElBB2pg+cU13I850b//Wag==} - engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.5.0': resolution: {integrity: sha512-Rnq9vQWiR1+/I6NZZMNzJHV6pZYyEHt2ZnuV3MG8z2NNenC4i/8Kzttz7CjZiHSmsN5frhXhg17z3Zqjjhmz1A==} engines: {node: '>=18.0.0'} @@ -3724,10 +3524,6 @@ packages: resolution: {integrity: sha512-HIeF+1vrDGzPkkv39Hj2vlHSXHY3p958jd/8ZnePIY6+ZOsQX8coyEUKO5yQu4r0bQIVsbpotVIrXXwyycMStQ==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.7.7': - resolution: {integrity: sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==} - engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.2.12': resolution: {integrity: sha512-jqve46eYU1v7pZ5BM+fmkbq3DerkSluPr5EhvOcHxygxzD05ByDRppRwRPPpFrsFo5yDtCYLKu+kreHKVrvc7A==} engines: {node: '>=18.0.0'} @@ -3736,10 +3532,6 @@ packages: resolution: {integrity: sha512-fit0GZK9I1xoRlR4jXmbLhoN0OdEpa96ul8M65XdmXnxXkuMxM0Y8HDT0Fh0Xb4I85MBvBClOzgSrV1X2s1Hxw==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.4.6': - resolution: {integrity: sha512-H6S7NyaaL+7qO8kIL7VQ7KyrGnKXdllGzJqvtp3hvDen25UOydKV51qGDVK0UciW125jV3CoLJQy/ihc0OEC6A==} - engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.2.12': resolution: {integrity: sha512-6wTZjGABQufekycfDGMEB84BgtdOE/rCVTov+EDXQ8NHKTUNIp/j27IliwP7tjIU9LR+sSzyGBOXjeEtVgzCHg==} engines: {node: '>=18.0.0'} @@ -3764,18 +3556,10 @@ packages: resolution: {integrity: sha512-e5UtkMvsatzBfbeBZjEOt0k0Z3BEsjTFL/n6fdO5vtBLe67tdy0dX7xw2DU7uZ3acwoHyeCqpU2Fzb7pxwHb6Q==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.4.6': - resolution: {integrity: sha512-Ojg4B6oIDlIr1R86xCDJt1zJWnYa0VINmqdjfe9qxWjdRivHalZ3iSlQgVqYbW0MdpFOC5XfHEWsnbmdnpIILQ==} - engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.12.7': resolution: {integrity: sha512-q3gqnwml60G44FECaEEsdQMplYhDMZYCtYhMCzadCnRnnHIobZJjegmdoUo6ieLQlPUzvrMdIJUpx6DoPmzANQ==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.13.6': - resolution: {integrity: sha512-tAf35/JW/DvMlACcazcoIOKOV0JBqyOvxjPTEME9W+m9wLcE0G1rwADc7Ntu38rY5C9OH8jZjpo4tbtjmIjEBQ==} - engines: {node: '>=18.0.0'} - '@smithy/types@4.13.1': resolution: {integrity: sha512-787F3yzE2UiJIQ+wYW1CVg2odHjmaWLGksnKQHUrK/lYZSEcy1msuLVvxaR/sI2/aDe9U+TBuLsXnr3vod1g0g==} engines: {node: '>=18.0.0'} @@ -3784,42 +3568,22 @@ packages: resolution: {integrity: sha512-P+otAxbV4CqBybp7EkcJCrig63yE2E7PuNVOmilVMRcx/O+QDzGULTrKsq4DV13gSfak9ObPrWaHl/9bL5YcWw==} engines: {node: '>=18.0.0'} - '@smithy/types@4.14.3': - resolution: {integrity: sha512-YupL0ZWmFtJexUN2cHzkvvF/b9pKrtAIfT1o7/oY/Ppu8IYeZ+lDPM5vZdQJaSeA132dJCqojjGC9NhXeF71VQ==} - engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.2.12': resolution: {integrity: sha512-wOPKPEpso+doCZGIlr+e1lVI6+9VAKfL4kZWFgzVgGWY2hZxshNKod4l2LXS3PRC9otH/JRSjtEHqQ/7eLciRA==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.3.6': - resolution: {integrity: sha512-9MRJzwUrlswwHogOR7raDcykuzojZn74qGdQdbEQLVaixlvJuMiIT0g/CejKcmAIgrUVs8brBrnGtmYmBc0iuA==} - engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.3.2': resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.4.6': - resolution: {integrity: sha512-V6ApAGvCQnb7Wy1Sy60AQc+7UOEaNQxvAXBLdMi5Zzm66cmX0srvfAxDmg7BGuJ+9H9ez0PPWS/AeFgWxwGavA==} - engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@4.2.2': resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@4.3.6': - resolution: {integrity: sha512-+3vGcNHuvzuFLVWL9/wJgucOuQWufhuGhb3oxVDj9SWFGtwkOmtC2nFUwVC2IJoPe45uhs6TAb8bgE4IXDSPzA==} - engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@4.2.3': resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@4.3.6': - resolution: {integrity: sha512-T15zTQJ/xKYdS0/3CFckhz1QBbhxmhk/xjL6FKvHKgkJPN4E985If2FI9CcV2kh2v0sfiWMfXVEOKFbqgw4m4w==} - engines: {node: '>=18.0.0'} - '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} @@ -3836,26 +3600,14 @@ packages: resolution: {integrity: sha512-Qd/0wCKMaXxev/z00TvNzGCH2jlKKKxXP1aDxB6oKwSQthe3Og2dMhSayGCnsma1bK/kQX1+X7SMP99t6FgiiQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.4.6': - resolution: {integrity: sha512-dRCZKu05AL7KQWrVuRJPotfjCRnvGkCjV56XNP067CRfyTtvgi/Ygu44qrBKb814Hsa52bWwDJ+Vt3pd04BjPA==} - engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.47': resolution: {integrity: sha512-qSRbYp1EQ7th+sPFuVcVO05AE0QH635hycdEXlpzIahqHHf2Fyd/Zl+8v0XYMJ3cgDVPa0lkMefU7oNUjAP+DQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.3.6': - resolution: {integrity: sha512-tTR8tayMoa0WeRhtMH7j3WpHUtggBXjh7rBdf7j6POYI69R85gpWBW6B32kaJRnlQU8+0gOGAzJj50S7SU1Egw==} - engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.3.3': resolution: {integrity: sha512-VACQVe50j0HZPjpwWcjyT51KUQ4AnsvEaQ2lKHOSL4mNLD0G9BjEniQ+yCt1qqfKfiAHRAts26ud7hBjamrwig==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.5.6': - resolution: {integrity: sha512-kaB41eVUYC7ajVWUsZRqagxwRaa3VupjQ/Z2Z2v/Vffh/gJ/fFOS25s6mTyR2Lw1FrnBbRWo1iShR9BhekpPeQ==} - engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@4.2.2': resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} engines: {node: '>=18.0.0'} @@ -3864,18 +3616,10 @@ packages: resolution: {integrity: sha512-Er805uFUOvgc0l8nv0e0su0VFISoxhJ/AwOn3gL2NWNY2LUEldP5WtVcRYSQBcjg0y9NfG8JYrCJaYDpupBHJQ==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.3.6': - resolution: {integrity: sha512-TrAgOcL63TRi7G92arTzq0n+VDrmZifwP1I1T9y2xU3lJpybsHdm33S2d3xaFfG0c8zJNIF9yYRqLSe6rbhH/A==} - engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.2.12': resolution: {integrity: sha512-1zopLDUEOwumjcHdJ1mwBHddubYF8GMQvstVCLC54Y46rqoHwlIU+8ZzUeaBcD+WCJHyDGSeZ2ml9YSe9aqcoQ==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.4.6': - resolution: {integrity: sha512-E/kFnvWQL6rIPr0Ucjk8oDgJSkKx2bv0nJkJ/cB3ywys7xCqeL1AXP9liHjgYONdQ+MKw/xT06IQK3vgbtu2Ww==} - engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.20': resolution: {integrity: sha512-4yXLm5n/B5SRBR2p8cZ90Sbv4zL4NKsgxdzCzp/83cXw2KxLEumt5p+GAVyRNZgQOSrzXn9ARpO0lUe8XSlSDw==} engines: {node: '>=18.0.0'} @@ -3892,18 +3636,10 @@ packages: resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} engines: {node: '>=18.0.0'} - '@smithy/util-utf8@4.3.6': - resolution: {integrity: sha512-tAa4sePYB7mlJzdYbdBqdv37KwFKWixmM/r3ihcI0HFOVjf+a5oGvtcLXcGm4S1bY4DFsLAIOHgjubtp+oRufw==} - engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.2.13': resolution: {integrity: sha512-2zdZ9DTHngRtcYxJK1GUDxruNr53kv5W2Lupe0LMU+Imr6ohQg8M2T14MNkj1Y0wS3FFwpgpGQyvuaMF7CiTmQ==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.4.6': - resolution: {integrity: sha512-oTt3OP9NcJkrySCSCCdSbP6XLSMNgOmt/ulaiYtb0Ng6tfEWtXQ1mwfyqmLd+GapmDUjbU2mgkf7QIq9H4ij/g==} - engines: {node: '>=18.0.0'} - '@smithy/uuid@1.1.2': resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} engines: {node: '>=18.0.0'} @@ -3962,8 +3698,8 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@storybook/icons@2.0.2': - resolution: {integrity: sha512-KZBCpXsshAIjczYNXR/rlxEtCUX/eAbpFNwKi8bcOomrLA4t/SyPz5RF+lVPO2oZBUE4sAkt43mfJUevQDSEEw==} + '@storybook/icons@2.0.1': + resolution: {integrity: sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -4295,8 +4031,8 @@ packages: resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==} engines: {node: '>= 10'} - '@tsconfig/node10@1.0.12': - resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} + '@tsconfig/node10@1.0.9': + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -4337,9 +4073,6 @@ packages: '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} - '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - '@types/clean-css@4.2.11': resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} @@ -4355,8 +4088,8 @@ packages: '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/debug@4.1.13': - resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} @@ -4449,23 +4182,23 @@ packages: '@types/lodash.get@4.4.9': resolution: {integrity: sha512-J5dvW98sxmGnamqf+/aLP87PYXyrha9xIgc2ZlHl6OHMFR2Ejdxep50QfU0abO1+CH6+ugx+8wEUN1toImAinA==} - '@types/lodash@4.17.24': - resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} + '@types/lodash@4.14.202': + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/mdx@2.0.14': - resolution: {integrity: sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==} + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@16.18.126': - resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==} + '@types/node@16.18.68': + resolution: {integrity: sha512-sG3hPIQwJLoewrN7cr0dwEy+yF5nD4D/4FxtQpFciRD/xwUzgD+G05uxZHv5mhfXo4F9Jkp13jjn0CC2q325sg==} '@types/node@24.12.4': resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} @@ -4480,8 +4213,8 @@ packages: resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} deprecated: This is a stub types definition. parse-path provides its own type definitions, so you do not need this installed. - '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@types/prop-types@15.7.5': + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} '@types/qs@6.9.15': resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} @@ -4546,8 +4279,8 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/tough-cookie@4.0.2': + resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -4573,8 +4306,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.35': - resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} '@types/youtube@0.0.50': resolution: {integrity: sha512-d4GpH4uPYp9W07kc487tiq6V/EUHl18vZWFMbQoe4Sk9LXEWzFi/BMf9x7TI4m7/j7gU3KeX8H6M8aPBgykeLw==} @@ -4621,8 +4354,8 @@ packages: resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.61.0': - resolution: {integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==} + '@typescript-eslint/types@8.59.2': + resolution: {integrity: sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.57.1': @@ -4642,126 +4375,110 @@ packages: resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.1': - resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} cpu: [arm] os: [android] - '@unrs/resolver-binding-android-arm64@1.12.2': - resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} cpu: [arm64] os: [android] - '@unrs/resolver-binding-darwin-arm64@1.12.2': - resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.12.2': - resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.12.2': - resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} - cpu: [loong64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} - cpu: [loong64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] libc: [musl] - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] libc: [glibc] - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] libc: [musl] - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} - cpu: [arm64] - os: [openharmony] - - '@unrs/resolver-binding-wasm32-wasi@1.12.2': - resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} cpu: [x64] os: [win32] @@ -4919,8 +4636,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.5: - resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} + acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} acorn@8.16.0: @@ -5110,8 +4827,8 @@ packages: engines: {node: '>= 18.0.0'} hasBin: true - axe-core@4.12.1: - resolution: {integrity: sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==} + axe-core@4.11.1: + resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} axobject-query@4.1.0: @@ -5144,25 +4861,25 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - babel-plugin-polyfill-corejs2@0.4.17: - resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} + babel-plugin-polyfill-corejs2@0.4.14: + resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.14.2: - resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.8: - resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} + babel-plugin-polyfill-regenerator@0.6.5: + resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-preset-current-node-syntax@1.2.0: - resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + babel-preset-current-node-syntax@1.0.1: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: - '@babel/core': ^7.0.0 || ^8.0.0-0 + '@babel/core': ^7.0.0 babel-preset-jest@29.6.3: resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} @@ -5187,27 +4904,22 @@ packages: resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==} peerDependencies: bare-abort-controller: '*' - bare-buffer: '*' - bare-events: '*' peerDependenciesMeta: bare-abort-controller: optional: true - bare-buffer: - optional: true - bare-events: - optional: true - - bare-url@2.4.5: - resolution: {integrity: sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.35: - resolution: {integrity: sha512-honAfLBde0HAFLdNyBEfuuENkF6zR+ozxqxa/2zJKHBe1qzLqyTSeRKpdPEHAP03rlDGyQOPnCSxnVpVqQo9Mg==} + baseline-browser-mapping@2.10.32: + resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} engines: {node: '>=6.0.0'} hasBin: true + baseline-browser-mapping@2.9.19: + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} + hasBin: true + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -5241,8 +4953,8 @@ packages: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} - bonjour-service@1.4.1: - resolution: {integrity: sha512-9KM4QMPKnaJqaja1v7gYO/+TXZGLtzPA05NmUTqDAJjcsWeVoOXKMvU9g0gfuuoYTQqJZ924hivICd5R/bCJbA==} + bonjour-service@1.4.0: + resolution: {integrity: sha512-fGQtj1qdR9vIKjFiWPQd52qIqwjaYqhcI40JEiDuvlZ86E7ZBPBwY9fPgHy9r2rYGIjiRfctNPYz6OQU73ww2w==} boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -5250,17 +4962,14 @@ packages: bowser@2.12.1: resolution: {integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==} - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} brace-expansion@2.1.1: resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} - brace-expansion@2.1.1: - resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} - - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + brace-expansion@5.0.3: + resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} engines: {node: 18 || 20 || >=22} brace-expansion@5.0.6: @@ -5276,6 +4985,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + browserslist@4.28.2: resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -5328,15 +5042,15 @@ packages: resolution: {integrity: sha512-SVXGH037+Mo1aIMO5B2UcleR43FGjFdN+M8JObSyEoQ2Mn4CODRWx28gN5jiTF0n5ItsgtIZfyargMNs8GX4kg==} engines: {node: '>=18'} - cacheable@2.3.5: - resolution: {integrity: sha512-EQfaKe09tl615iNvq/TBRWTFf1AKJNXYQSsMx0Z3EI0nA+pVsVPS8wJhnRlkbdacKPh1d0qVIhwTc2zsQNFEEg==} + cacheable@2.3.4: + resolution: {integrity: sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==} call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} call-bound@1.0.4: @@ -5358,8 +5072,11 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001797: - resolution: {integrity: sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==} + caniuse-lite@1.0.30001769: + resolution: {integrity: sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==} + + caniuse-lite@1.0.30001793: + resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -5475,12 +5192,12 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - codemaker@1.134.0: - resolution: {integrity: sha512-B8AVQL8iyk9eSzdh9mNSyF71JxLk78+KfuPG8BgPa/Wp2GDrJEDOOoyjVlRTwiWJHarOBA86rRe3xEc1V/Sbhg==} + codemaker@1.132.0: + resolution: {integrity: sha512-YClvZlj95oAovTr64MtsmxBN5FicfnrDkcxdZI4PvaDO7VbPIh3ka9lHIyqZfTGzJokFX0H95LAIF1UKG271dQ==} engines: {node: '>= 14.17.0'} - collect-v8-coverage@1.0.3: - resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -5535,8 +5252,8 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - comment-parser@1.4.7: - resolution: {integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==} + comment-parser@1.4.6: + resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} engines: {node: '>= 12.0.0'} commondir@1.0.1: @@ -5575,8 +5292,8 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} - content-disposition@1.1.0: - resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} + content-disposition@1.0.1: + resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} engines: {node: '>=18'} content-disposition@2.0.1: @@ -5612,10 +5329,13 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - copy-file@11.1.0: - resolution: {integrity: sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==} + copy-file@11.0.0: + resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==} engines: {node: '>=18'} + core-js-compat@3.46.0: + resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} + core-js-compat@3.49.0: resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} @@ -5635,8 +5355,8 @@ packages: typescript: optional: true - cosmiconfig@9.0.2: - resolution: {integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -5679,8 +5399,8 @@ packages: css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} @@ -5720,8 +5440,8 @@ packages: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} - csstype@3.2.3: - resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -5754,8 +5474,8 @@ packages: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} - dayjs@1.11.21: - resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} @@ -5801,8 +5521,8 @@ packages: decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - decode-named-character-reference@1.3.0: - resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} decompress-response@10.0.0: resolution: {integrity: sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==} @@ -5811,8 +5531,8 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dedent@1.7.2: - resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} + dedent@1.6.0: + resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -5887,8 +5607,8 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@4.0.4: - resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -5944,6 +5664,9 @@ packages: domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -5966,8 +5689,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.371: - resolution: {integrity: sha512-e9htk9mAYL6AzmkEhSvVVw7IWGSBJ/Bqdn2eRyRLrj1g6sncN4WbFt5qnILYoCktktr45pyjIrOiRvBThQ808w==} + electron-to-chromium@1.5.286: + resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} + + electron-to-chromium@1.5.364: + resolution: {integrity: sha512-G/dYE3+AYhyHwzTwg8UbnXf7zqMERYh7l2jJ3QujhFsH8agSYwtnGAR2aZ7f0AakIKJXd5En/Hre4igIUrdlYw==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -5993,8 +5719,8 @@ packages: endent@2.1.0: resolution: {integrity: sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==} - enhanced-resolve@5.23.0: - resolution: {integrity: sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA==} + enhanced-resolve@5.19.0: + resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} engines: {node: '>=10.13.0'} entities@2.2.0: @@ -6004,10 +5730,6 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - entities@7.0.1: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} @@ -6020,16 +5742,16 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.21.0: - resolution: {integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==} + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} engines: {node: '>=4'} hasBin: true error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-abstract@1.24.2: - resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -6040,18 +5762,18 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.3.3: - resolution: {integrity: sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==} + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} - es-object-atoms@1.1.2: - resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -6081,8 +5803,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} hasBin: true @@ -6389,8 +6111,8 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} @@ -6484,8 +6206,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.22: - resolution: {integrity: sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==} + flat-cache@6.1.21: + resolution: {integrity: sha512-2u7cJfSf7Th7NxEk/VzQjnPoglok2YCsevS7TSbJjcDQWJPbqUUnSYtriHSvtnq+fRZHy1s0ugk4ApnQyhPGoQ==} flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -6518,8 +6240,8 @@ packages: resolution: {integrity: sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==} engines: {node: '>= 18'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + form-data@4.0.4: + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} formdata-polyfill@4.0.10: @@ -6612,6 +6334,10 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -6619,9 +6345,6 @@ packages: get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} - get-tsconfig@4.14.0: - resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - git-up@8.1.1: resolution: {integrity: sha512-FDenSF3fVqBYSaJoYy1KSc2wosx0gCvKP+c+PRBht7cAaiCeQlBtfBDX9vgnNOHmdePlSFITVcn4pFfcgNvx3g==} @@ -6740,25 +6463,44 @@ packages: resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} engines: {node: '>=20'} - hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hasown@2.0.3: + resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} + + hast-util-to-html@9.0.0: + resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -6775,8 +6517,8 @@ packages: hookified@1.15.1: resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} - hookified@2.2.0: - resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} + hookified@2.1.0: + resolution: {integrity: sha512-ootKng4eaxNxa7rx6FJv2YKef3DuhqbEj3l70oGXwddPQEEnISm50TEZQclqiLTAtilT2nu7TErtCO523hHkyg==} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6796,8 +6538,8 @@ packages: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - html-entities@2.6.0: - resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} + html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -6823,8 +6565,8 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - html-webpack-plugin@5.6.7: - resolution: {integrity: sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==} + html-webpack-plugin@5.6.6: + resolution: {integrity: sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==} engines: {node: '>=10.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -7021,6 +6763,10 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + is-core-module@2.16.2: resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} @@ -7156,6 +6902,10 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} @@ -7216,8 +6966,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + istanbul-lib-instrument@6.0.1: + resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} engines: {node: '>=10'} istanbul-lib-report@3.0.1: @@ -7228,8 +6978,8 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} - istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} iterator.prototype@1.1.5: @@ -7328,8 +7078,8 @@ packages: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-regex-util@30.4.0: - resolution: {integrity: sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg==} + jest-regex-util@30.0.1: + resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-resolve-dependencies@29.7.0: @@ -7389,8 +7139,8 @@ packages: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true - js-yaml@4.2.0: - resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true jsdom@20.0.3: @@ -7440,14 +7190,14 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.1: - resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} @@ -7478,15 +7228,15 @@ packages: known-css-properties@0.37.0: resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - launch-editor@2.14.1: - resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} + launch-editor@2.13.2: + resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} launder@1.7.1: resolution: {integrity: sha512-mU6WRz5EusL9ZZuiZ5SO4Y6C0P9PAUR9iwdb6bzj4KDihm28DiHFw+/yk9DBH4f+Pv1wuzQ4e2jV3oQ7mkIqvw==} @@ -7515,8 +7265,8 @@ packages: resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} engines: {node: '>=18.0.0'} - loader-runner@4.3.2: - resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} loader-utils@1.4.2: @@ -7614,11 +7364,11 @@ packages: mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - mdast-util-from-markdown@2.0.3: - resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} + mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} - mdast-util-to-hast@13.2.1: - resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -7644,10 +7394,8 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} - memfs@4.57.6: - resolution: {integrity: sha512-WQK+DGjKCnPdpSyJUXphz+COF2uEhhsxQ3VIWBSbzpbbXuch3h4FePMqXrXGdLjsTgo4JFzBFsP6AWd9pVazGw==} - peerDependencies: - tslib: '2' + memfs@4.49.0: + resolution: {integrity: sha512-L9uC9vGuc4xFybbdOpRLoOAOq1YEBBsocCs5NVW32DfU+CZWWIn3OVF+lB8Gp4ttBVSMazwrTrjv8ussX/e3VQ==} meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} @@ -7671,59 +7419,59 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} micromark-util-character@2.1.1: resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} @@ -7731,8 +7479,8 @@ packages: micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -7786,8 +7534,8 @@ packages: minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} minimatch@10.2.5: @@ -7811,6 +7559,10 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -7836,11 +7588,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - napi-postinstall@0.3.4: resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -7875,10 +7622,6 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead - node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} - engines: {node: '>= 0.4'} - node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7886,8 +7629,11 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.47: - resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + node-releases@2.0.46: + resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} normalize-package-data@2.5.0: @@ -7920,8 +7666,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.24: - resolution: {integrity: sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==} + nwsapi@2.2.23: + resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -7995,8 +7741,8 @@ packages: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} own-keys@1.0.1: @@ -8043,8 +7789,8 @@ packages: resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} engines: {node: '>=16.17'} - p-timeout@6.1.4: - resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} engines: {node: '>=14.16'} p-try@2.2.0: @@ -8080,8 +7826,8 @@ packages: resolution: {integrity: sha512-bCgsFI+GeGWPAvAiUv63ZorMeif3/U0zaXABGJbOWt5OH2KCaPHF6S+0ok4aqM9RuIPGyZdx9tR9l13PsW4AYQ==} engines: {node: '>=14.13.0'} - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} parse5@8.0.1: resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} @@ -8126,8 +7872,8 @@ packages: path-to-regexp@0.1.13: resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} - path-to-regexp@8.4.2: - resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + path-to-regexp@8.4.1: + resolution: {integrity: sha512-fvU78fIjZ+SBM9YwCknCvKOUKkLVqtWDVctl0s7xIqfmfb38t2TT4ZU2gHm+Z8xGwgW+QWEU3oQSAzIbo89Ggw==} path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -8159,8 +7905,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} piscina@4.9.2: @@ -8198,14 +7944,14 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + postcss-modules-local-by-default@4.0.5: + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} + postcss-modules-scope@3.2.0: + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -8225,8 +7971,12 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-selector-parser@7.1.2: - resolution: {integrity: sha512-Wjvt4scRFouioIInHf51IFNP4ltJ2EngJM+cZPGiqbKetBfmP3vpdPV8ID2S6JS6/jdo74N8+aEYH9lQr2C6sA==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-selector-parser@7.1.1: + resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} postcss-styled-syntax@0.7.1: @@ -8238,8 +7988,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} postcss@8.5.9: @@ -8295,8 +8045,8 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@7.2.0: - resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} + property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} protocols@2.0.2: resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} @@ -8305,8 +8055,8 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -8315,8 +8065,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pure-rand@6.0.4: + resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} pvtsutils@1.3.6: resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} @@ -8325,12 +8075,12 @@ packages: resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} engines: {node: '>=16.0.0'} - qified@0.10.1: - resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} + qified@0.9.0: + resolution: {integrity: sha512-4q61YgkHbY6gmwkqm0BsxyLDO3UYdrdiJTJ7JiaZb3xpW1duxn135SB7KqUEkCiuu5O4W+TtwEWP2VjmSRanvA==} engines: {node: '>=20'} - qs@6.14.2: - resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} + qs@6.14.1: + resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} qs@6.15.2: @@ -8373,8 +8123,8 @@ packages: resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} engines: {node: '>=16.14.0'} - react-docgen@8.0.3: - resolution: {integrity: sha512-aEZ9qP+/M+58x2qgfSFEWH1BxLyHe5+qkLNJOZQb5iGS017jpbRnoKhNRrXPeA6RfBrZO5wZrT9DMC1UqE1f1w==} + react-docgen@8.0.2: + resolution: {integrity: sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==} engines: {node: ^20.9.0 || >=22} react-dom@18.3.1: @@ -8475,8 +8225,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.13.1: - resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true rehype-autolink-headings@7.1.0: @@ -8530,8 +8280,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} resolve@1.22.12: @@ -8539,9 +8289,8 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@2.0.0-next.7: - resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==} - engines: {node: '>= 0.4'} + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true responselike@4.0.2: @@ -8556,12 +8305,12 @@ packages: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -8600,8 +8349,8 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - safe-array-concat@1.1.4: - resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -8618,8 +8367,8 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} safer-buffer@2.1.2: @@ -8683,8 +8432,13 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.8.4: - resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} engines: {node: '>=10'} hasBin: true @@ -8747,8 +8501,8 @@ packages: resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} engines: {node: '>= 0.4'} - side-channel-list@1.0.1: - resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -8759,8 +8513,8 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.1: - resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} signal-exit@3.0.7: @@ -8770,8 +8524,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + sirv@2.0.3: + resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} sirv@3.0.2: @@ -8925,12 +8679,12 @@ packages: string.prototype.repeat@1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.trim@1.2.11: - resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.10: - resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: @@ -8946,8 +8700,8 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -8995,8 +8749,8 @@ packages: strnum@2.2.1: resolution: {integrity: sha512-BwRvNd5/QoAtyW1na1y1LsJGQNvRlkde6Q/ipqqEaivoMdV+B1OMOTVdwR+N/cwVUcIt9PYyHmV8HyexCZSupg==} - strnum@2.4.0: - resolution: {integrity: sha512-sHrVyWWdq28RbhjuJdZsA1SnGRJV6NiXbk6AXBxDOsgAcA+lmpUZCYjOdLBxkXMwis6RRe7dlZt4VlIWFVzkmg==} + strnum@2.3.0: + resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} strtok3@10.3.5: resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} @@ -9087,8 +8841,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.13: - resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} system-architecture@1.0.0: @@ -9103,61 +8857,31 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - tar-stream@3.2.0: - resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - teex@1.0.1: - resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - - terser-webpack-plugin@5.6.1: - resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} + terser-webpack-plugin@5.4.0: + resolution: {integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==} engines: {node: '>= 10.13.0'} peerDependencies: - '@minify-html/node': '*' '@swc/core': '*' - '@swc/css': '*' - '@swc/html': '*' - clean-css: '*' - cssnano: '*' - csso: '*' esbuild: '*' - html-minifier-terser: '*' - lightningcss: '*' - postcss: '*' uglify-js: '*' webpack: ^5.1.0 peerDependenciesMeta: - '@minify-html/node': - optional: true '@swc/core': optional: true - '@swc/css': + esbuild: optional: true - '@swc/html': - optional: true - clean-css: - optional: true - cssnano: - optional: true - csso: - optional: true - esbuild: - optional: true - html-minifier-terser: - optional: true - lightningcss: - optional: true - postcss: - optional: true - uglify-js: + uglify-js: optional: true - terser@5.48.0: - resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} + terser@5.46.0: + resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} engines: {node: '>=10'} hasBin: true @@ -9168,8 +8892,8 @@ packages: text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - thingies@2.6.0: - resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} + thingies@2.5.0: + resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 @@ -9263,8 +8987,8 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} trusted-types@2.0.0: resolution: {integrity: sha512-Eam+AUp6lg04YjmYkuLNhEJX+6ByocrKTpY/TtfRK/gV6OmxeN0OwkIasor28SUJ606snArpPLGtPMGbqdaaUA==} @@ -9275,8 +8999,8 @@ packages: peerDependencies: typescript: '>=4.8.4' - ts-dedent@2.3.0: - resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} ts-node@10.9.2: @@ -9356,17 +9080,17 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-fest@5.7.0: - resolution: {integrity: sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==} + type-fest@5.6.0: + resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} engines: {node: '>=20'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - type-is@2.1.0: - resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} - engines: {node: '>= 18'} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} @@ -9380,8 +9104,8 @@ packages: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.8: - resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} typescript-eslint@8.57.1: @@ -9450,8 +9174,8 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-is@6.0.1: - resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} @@ -9459,11 +9183,11 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@6.0.2: - resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - unist-util-visit@5.1.0: - resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -9489,8 +9213,8 @@ packages: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} - unrs-resolver@1.12.2: - resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} @@ -9538,8 +9262,8 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} + v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} valibot@0.28.1: @@ -9552,8 +9276,11 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -9624,6 +9351,9 @@ packages: wbuf@1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -9745,8 +9475,8 @@ packages: webpack-cli: optional: true - websocket-driver@0.7.5: - resolution: {integrity: sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==} + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} engines: {node: '>=0.8.0'} websocket-extensions@0.1.4: @@ -9786,8 +9516,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.22: - resolution: {integrity: sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} which@1.3.1: @@ -9802,10 +9532,6 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -9825,8 +9551,8 @@ packages: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@7.5.11: - resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -9837,6 +9563,18 @@ packages: utf-8-validate: optional: true + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.21.0: resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} @@ -9882,8 +9620,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@1.10.3: - resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} yaml@2.3.4: @@ -9931,13 +9669,15 @@ packages: snapshots: - '@adobe/css-tools@4.5.0': {} + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@adobe/css-tools@4.4.4': {} '@asamuzakjp/css-color@5.1.11': dependencies: '@asamuzakjp/generational-cache': 1.0.1 '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.1.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.4(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 @@ -9955,15 +9695,15 @@ snapshots: '@aws-cdk/asset-awscli-v1@2.2.273': {} - '@aws-cdk/asset-node-proxy-agent-v6@2.1.2': {} + '@aws-cdk/asset-node-proxy-agent-v6@2.1.1': {} - '@aws-cdk/cloud-assembly-schema@53.28.0': {} + '@aws-cdk/cloud-assembly-schema@53.27.0': {} '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.12 - tslib: 2.6.2 + '@aws-sdk/types': 3.973.9 + tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: @@ -9985,138 +9725,142 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.12 - '@aws-sdk/util-locate-window': 3.965.7 + '@aws-sdk/types': 3.973.9 + '@aws-sdk/util-locate-window': 3.465.0 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.12 - tslib: 2.6.2 + '@aws-sdk/types': 3.973.9 + tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.12 + '@aws-sdk/types': 3.973.9 '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 + tslib: 2.8.1 '@aws-sdk/client-cloudwatch@3.995.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-node': 3.972.54 - '@aws-sdk/middleware-host-header': 3.972.21 - '@aws-sdk/middleware-logger': 3.972.20 - '@aws-sdk/middleware-recursion-detection': 3.972.22 - '@aws-sdk/middleware-user-agent': 3.972.50 - '@aws-sdk/region-config-resolver': 3.972.24 - '@aws-sdk/types': 3.973.12 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/credential-provider-node': 3.972.24 + '@aws-sdk/middleware-host-header': 3.972.8 + '@aws-sdk/middleware-logger': 3.972.8 + '@aws-sdk/middleware-recursion-detection': 3.972.8 + '@aws-sdk/middleware-user-agent': 3.972.24 + '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.995.0 - '@aws-sdk/util-user-agent-browser': 3.972.21 - '@aws-sdk/util-user-agent-node': 3.973.36 - '@smithy/config-resolver': 4.5.6 - '@smithy/core': 3.24.6 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/hash-node': 4.3.6 - '@smithy/invalid-dependency': 4.3.6 - '@smithy/middleware-compression': 4.4.6 - '@smithy/middleware-content-length': 4.3.6 - '@smithy/middleware-endpoint': 4.5.6 - '@smithy/middleware-retry': 4.6.6 - '@smithy/middleware-serde': 4.3.6 - '@smithy/middleware-stack': 4.3.6 - '@smithy/node-config-provider': 4.4.6 - '@smithy/node-http-handler': 4.7.7 - '@smithy/protocol-http': 5.4.6 - '@smithy/smithy-client': 4.13.6 - '@smithy/types': 4.14.3 - '@smithy/url-parser': 4.3.6 - '@smithy/util-base64': 4.4.6 - '@smithy/util-body-length-browser': 4.3.6 - '@smithy/util-body-length-node': 4.3.6 - '@smithy/util-defaults-mode-browser': 4.4.6 - '@smithy/util-defaults-mode-node': 4.3.6 - '@smithy/util-endpoints': 3.5.6 - '@smithy/util-middleware': 4.3.6 - '@smithy/util-retry': 4.4.6 - '@smithy/util-utf8': 4.3.6 - '@smithy/util-waiter': 4.4.6 - tslib: 2.6.2 + '@aws-sdk/util-user-agent-browser': 3.972.8 + '@aws-sdk/util-user-agent-node': 3.973.10 + '@smithy/config-resolver': 4.4.13 + '@smithy/core': 3.23.12 + '@smithy/fetch-http-handler': 5.3.15 + '@smithy/hash-node': 4.2.12 + '@smithy/invalid-dependency': 4.2.12 + '@smithy/middleware-compression': 4.3.32 + '@smithy/middleware-content-length': 4.2.12 + '@smithy/middleware-endpoint': 4.4.27 + '@smithy/middleware-retry': 4.4.44 + '@smithy/middleware-serde': 4.2.15 + '@smithy/middleware-stack': 4.2.12 + '@smithy/node-config-provider': 4.3.12 + '@smithy/node-http-handler': 4.5.0 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.13.1 + '@smithy/url-parser': 4.2.12 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.43 + '@smithy/util-defaults-mode-node': 4.2.47 + '@smithy/util-endpoints': 3.3.3 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-retry': 4.2.12 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.2.13 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/client-cognito-identity@3.1065.0': + '@aws-sdk/client-cognito-identity@3.1053.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-node': 3.972.54 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/node-http-handler': 4.7.7 - '@smithy/types': 4.14.3 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/client-cognito-identity@3.995.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.23 - '@aws-sdk/credential-provider-node': 3.972.24 - '@aws-sdk/middleware-host-header': 3.972.21 - '@aws-sdk/middleware-logger': 3.972.20 - '@aws-sdk/middleware-recursion-detection': 3.972.22 - '@aws-sdk/middleware-user-agent': 3.972.50 - '@aws-sdk/region-config-resolver': 3.972.24 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/middleware-host-header': 3.972.8 + '@aws-sdk/middleware-logger': 3.972.8 + '@aws-sdk/middleware-recursion-detection': 3.972.8 + '@aws-sdk/middleware-user-agent': 3.972.24 + '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/types': 3.973.9 '@aws-sdk/util-endpoints': 3.995.0 - '@aws-sdk/util-user-agent-browser': 3.972.21 - '@aws-sdk/util-user-agent-node': 3.973.36 + '@aws-sdk/util-user-agent-browser': 3.972.8 + '@aws-sdk/util-user-agent-node': 3.973.10 '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.23.12 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/hash-node': 4.3.6 - '@smithy/invalid-dependency': 4.3.6 - '@smithy/middleware-content-length': 4.3.6 - '@smithy/middleware-endpoint': 4.5.6 - '@smithy/middleware-retry': 4.6.6 - '@smithy/middleware-serde': 4.3.6 - '@smithy/middleware-stack': 4.3.6 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/hash-node': 4.2.12 + '@smithy/invalid-dependency': 4.2.12 + '@smithy/middleware-content-length': 4.2.12 + '@smithy/middleware-endpoint': 4.4.27 + '@smithy/middleware-retry': 4.4.44 + '@smithy/middleware-serde': 4.2.15 + '@smithy/middleware-stack': 4.2.12 '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.7 - '@smithy/protocol-http': 5.4.6 - '@smithy/smithy-client': 4.13.6 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.3.6 - '@smithy/util-base64': 4.4.6 - '@smithy/util-body-length-browser': 4.3.6 - '@smithy/util-body-length-node': 4.3.6 - '@smithy/util-defaults-mode-browser': 4.4.6 - '@smithy/util-defaults-mode-node': 4.3.6 - '@smithy/util-endpoints': 3.5.6 - '@smithy/util-middleware': 4.3.6 - '@smithy/util-retry': 4.4.6 - '@smithy/util-utf8': 4.3.6 + '@smithy/node-http-handler': 4.7.4 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.43 + '@smithy/util-defaults-mode-node': 4.2.47 + '@smithy/util-endpoints': 3.3.3 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-retry': 4.2.12 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/client-ec2@3.1065.0': + '@aws-sdk/client-ec2@3.1053.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-node': 3.972.54 - '@aws-sdk/middleware-sdk-ec2': 3.972.34 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/node-http-handler': 4.7.7 - '@smithy/types': 4.14.3 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/middleware-sdk-ec2': 3.972.27 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/client-s3@3.995.0': @@ -10224,17 +9968,17 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-ssm@3.1065.0': + '@aws-sdk/client-ssm@3.1053.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-node': 3.972.54 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/node-http-handler': 4.7.7 - '@smithy/types': 4.14.3 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/client-ssm@3.995.0': @@ -10284,15 +10028,15 @@ snapshots: '@aws-sdk/core@3.973.23': dependencies: - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.9 '@aws-sdk/xml-builder': 3.972.15 - '@smithy/core': 3.23.12 + '@smithy/core': 3.24.4 '@smithy/node-config-provider': 4.3.12 '@smithy/property-provider': 4.2.12 '@smithy/protocol-http': 5.3.12 '@smithy/signature-v4': 5.3.12 '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 '@smithy/util-base64': 4.3.2 '@smithy/util-middleware': 4.2.12 '@smithy/util-utf8': 4.2.2 @@ -10309,17 +10053,6 @@ snapshots: bowser: 2.12.1 tslib: 2.8.1 - '@aws-sdk/core@3.974.20': - dependencies: - '@aws-sdk/types': 3.973.12 - '@aws-sdk/xml-builder': 3.972.29 - '@aws/lambda-invoke-store': 0.2.4 - '@smithy/core': 3.24.6 - '@smithy/signature-v4': 5.4.6 - '@smithy/types': 4.14.3 - bowser: 2.14.1 - tslib: 2.6.2 - '@aws-sdk/crc64-nvme@3.972.0': dependencies: '@smithy/types': 4.14.2 @@ -10328,25 +10061,27 @@ snapshots: '@aws-sdk/credential-provider-cognito-identity@3.972.16': dependencies: '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.9 '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/credential-provider-cognito-identity@3.972.44': + '@aws-sdk/credential-provider-cognito-identity@3.972.36': dependencies: - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/credential-provider-env@3.972.21': dependencies: - '@aws-sdk/core': 3.973.23 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/credential-provider-env@3.972.39': @@ -10357,24 +10092,16 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.46': - dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@aws-sdk/credential-provider-http@3.972.23': dependencies: - '@aws-sdk/core': 3.973.23 - '@aws-sdk/types': 3.973.6 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/node-http-handler': 4.7.7 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.4.6 - '@smithy/smithy-client': 4.13.6 - '@smithy/types': 4.13.1 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 '@smithy/util-stream': 4.5.20 tslib: 2.8.1 @@ -10388,19 +10115,9 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.48': - dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/node-http-handler': 4.7.7 - '@smithy/types': 4.14.3 - tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.23': dependencies: - '@aws-sdk/core': 3.973.23 + '@aws-sdk/core': 3.974.13 '@aws-sdk/credential-provider-env': 3.972.21 '@aws-sdk/credential-provider-http': 3.972.23 '@aws-sdk/credential-provider-login': 3.972.23 @@ -10408,63 +10125,51 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.972.23 '@aws-sdk/credential-provider-web-identity': 3.972.23 '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.9 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-ini@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 '@aws-sdk/credential-provider-env': 3.972.39 '@aws-sdk/credential-provider-http': 3.972.41 - '@aws-sdk/credential-provider-login': 3.972.51 + '@aws-sdk/credential-provider-login': 3.972.43 '@aws-sdk/credential-provider-process': 3.972.39 '@aws-sdk/credential-provider-sso': 3.972.43 '@aws-sdk/credential-provider-web-identity': 3.972.43 - '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/nested-clients': 3.997.11 '@aws-sdk/types': 3.973.9 '@smithy/core': 3.24.4 '@smithy/credential-provider-imds': 4.3.4 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.52': - dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-env': 3.972.46 - '@aws-sdk/credential-provider-http': 3.972.48 - '@aws-sdk/credential-provider-login': 3.972.51 - '@aws-sdk/credential-provider-process': 3.972.46 - '@aws-sdk/credential-provider-sso': 3.972.51 - '@aws-sdk/credential-provider-web-identity': 3.972.51 - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/credential-provider-imds': 4.3.8 - '@smithy/types': 4.14.3 - tslib: 2.8.1 - '@aws-sdk/credential-provider-login@3.972.23': dependencies: - '@aws-sdk/core': 3.973.23 + '@aws-sdk/core': 3.974.13 '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.9 '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.4.6 + '@smithy/protocol-http': 5.3.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/credential-provider-login@3.972.51': + '@aws-sdk/credential-provider-login@3.972.43': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/credential-provider-node@3.972.24': @@ -10475,12 +10180,14 @@ snapshots: '@aws-sdk/credential-provider-process': 3.972.21 '@aws-sdk/credential-provider-sso': 3.972.23 '@aws-sdk/credential-provider-web-identity': 3.972.23 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.9 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-node@3.972.44': dependencies: @@ -10496,27 +10203,13 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-node@3.972.54': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.46 - '@aws-sdk/credential-provider-http': 3.972.48 - '@aws-sdk/credential-provider-ini': 3.972.52 - '@aws-sdk/credential-provider-process': 3.972.46 - '@aws-sdk/credential-provider-sso': 3.972.51 - '@aws-sdk/credential-provider-web-identity': 3.972.51 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/credential-provider-imds': 4.3.8 - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@aws-sdk/credential-provider-process@3.972.21': dependencies: - '@aws-sdk/core': 3.973.23 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/credential-provider-process@3.972.39': @@ -10527,91 +10220,68 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-process@3.972.46': - dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.23': dependencies: - '@aws-sdk/core': 3.973.23 + '@aws-sdk/core': 3.974.13 '@aws-sdk/nested-clients': 3.996.13 '@aws-sdk/token-providers': 3.1014.0 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.9 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-sso@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/nested-clients': 3.997.11 '@aws-sdk/token-providers': 3.1052.0 '@aws-sdk/types': 3.973.9 '@smithy/core': 3.24.4 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.51': - dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/token-providers': 3.1065.0 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.8.1 - '@aws-sdk/credential-provider-web-identity@3.972.23': dependencies: - '@aws-sdk/core': 3.973.23 + '@aws-sdk/core': 3.974.13 '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/types': 3.973.9 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/credential-provider-web-identity@3.972.43': dependencies: '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.19 + '@aws-sdk/nested-clients': 3.997.11 '@aws-sdk/types': 3.973.9 '@smithy/core': 3.24.4 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/credential-provider-web-identity@3.972.51': + '@aws-sdk/credential-providers@3.1053.0': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.8.1 - - '@aws-sdk/credential-providers@3.1065.0': - dependencies: - '@aws-sdk/client-cognito-identity': 3.1065.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/credential-provider-cognito-identity': 3.972.44 - '@aws-sdk/credential-provider-env': 3.972.46 - '@aws-sdk/credential-provider-http': 3.972.48 - '@aws-sdk/credential-provider-ini': 3.972.52 - '@aws-sdk/credential-provider-login': 3.972.51 - '@aws-sdk/credential-provider-node': 3.972.54 - '@aws-sdk/credential-provider-process': 3.972.46 - '@aws-sdk/credential-provider-sso': 3.972.51 - '@aws-sdk/credential-provider-web-identity': 3.972.51 - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/credential-provider-imds': 4.3.8 - '@smithy/types': 4.14.3 + '@aws-sdk/client-cognito-identity': 3.1053.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-cognito-identity': 3.972.36 + '@aws-sdk/credential-provider-env': 3.972.39 + '@aws-sdk/credential-provider-http': 3.972.41 + '@aws-sdk/credential-provider-ini': 3.972.43 + '@aws-sdk/credential-provider-login': 3.972.43 + '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/credential-provider-process': 3.972.39 + '@aws-sdk/credential-provider-sso': 3.972.43 + '@aws-sdk/credential-provider-web-identity': 3.972.43 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/credential-provider-imds': 4.3.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/credential-providers@3.995.0': @@ -10636,6 +10306,8 @@ snapshots: '@smithy/property-provider': 4.2.12 '@smithy/types': 4.13.1 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/middleware-bucket-endpoint@3.972.3': dependencies: @@ -10671,11 +10343,6 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.972.21': - dependencies: - '@aws-sdk/core': 3.974.20 - tslib: 2.6.2 - '@aws-sdk/middleware-host-header@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 @@ -10689,22 +10356,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.972.20': - dependencies: - '@aws-sdk/core': 3.974.20 - tslib: 2.6.2 - '@aws-sdk/middleware-logger@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.972.22': - dependencies: - '@aws-sdk/core': 3.974.20 - tslib: 2.6.2 - '@aws-sdk/middleware-recursion-detection@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 @@ -10713,13 +10370,13 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-ec2@3.972.34': + '@aws-sdk/middleware-sdk-ec2@3.972.27': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/signature-v4': 5.4.6 - '@smithy/types': 4.14.3 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/middleware-sdk-s3@3.972.11': @@ -10756,111 +10413,105 @@ snapshots: '@smithy/util-retry': 4.2.12 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.50': - dependencies: - '@aws-sdk/core': 3.974.20 - tslib: 2.6.2 - '@aws-sdk/nested-clients@3.995.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.23 - '@aws-sdk/middleware-host-header': 3.972.21 - '@aws-sdk/middleware-logger': 3.972.20 - '@aws-sdk/middleware-recursion-detection': 3.972.22 - '@aws-sdk/middleware-user-agent': 3.972.50 - '@aws-sdk/region-config-resolver': 3.972.24 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/middleware-host-header': 3.972.8 + '@aws-sdk/middleware-logger': 3.972.8 + '@aws-sdk/middleware-recursion-detection': 3.972.8 + '@aws-sdk/middleware-user-agent': 3.972.24 + '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/types': 3.973.9 '@aws-sdk/util-endpoints': 3.995.0 - '@aws-sdk/util-user-agent-browser': 3.972.21 - '@aws-sdk/util-user-agent-node': 3.973.36 + '@aws-sdk/util-user-agent-browser': 3.972.8 + '@aws-sdk/util-user-agent-node': 3.973.10 '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.23.12 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/hash-node': 4.3.6 - '@smithy/invalid-dependency': 4.3.6 - '@smithy/middleware-content-length': 4.3.6 - '@smithy/middleware-endpoint': 4.5.6 - '@smithy/middleware-retry': 4.6.6 - '@smithy/middleware-serde': 4.3.6 - '@smithy/middleware-stack': 4.3.6 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/hash-node': 4.2.12 + '@smithy/invalid-dependency': 4.2.12 + '@smithy/middleware-content-length': 4.2.12 + '@smithy/middleware-endpoint': 4.4.27 + '@smithy/middleware-retry': 4.4.44 + '@smithy/middleware-serde': 4.2.15 + '@smithy/middleware-stack': 4.2.12 '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.7 - '@smithy/protocol-http': 5.4.6 - '@smithy/smithy-client': 4.13.6 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.3.6 - '@smithy/util-base64': 4.4.6 - '@smithy/util-body-length-browser': 4.3.6 - '@smithy/util-body-length-node': 4.3.6 - '@smithy/util-defaults-mode-browser': 4.4.6 - '@smithy/util-defaults-mode-node': 4.3.6 - '@smithy/util-endpoints': 3.5.6 - '@smithy/util-middleware': 4.3.6 - '@smithy/util-retry': 4.4.6 - '@smithy/util-utf8': 4.3.6 + '@smithy/node-http-handler': 4.7.4 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.43 + '@smithy/util-defaults-mode-node': 4.2.47 + '@smithy/util-endpoints': 3.3.3 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-retry': 4.2.12 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt '@aws-sdk/nested-clients@3.996.13': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.23 - '@aws-sdk/middleware-host-header': 3.972.21 - '@aws-sdk/middleware-logger': 3.972.20 - '@aws-sdk/middleware-recursion-detection': 3.972.22 - '@aws-sdk/middleware-user-agent': 3.972.50 - '@aws-sdk/region-config-resolver': 3.972.24 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/middleware-host-header': 3.972.8 + '@aws-sdk/middleware-logger': 3.972.8 + '@aws-sdk/middleware-recursion-detection': 3.972.8 + '@aws-sdk/middleware-user-agent': 3.972.24 + '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/types': 3.973.9 '@aws-sdk/util-endpoints': 3.996.5 - '@aws-sdk/util-user-agent-browser': 3.972.21 - '@aws-sdk/util-user-agent-node': 3.973.36 + '@aws-sdk/util-user-agent-browser': 3.972.8 + '@aws-sdk/util-user-agent-node': 3.973.10 '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.23.12 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/hash-node': 4.3.6 - '@smithy/invalid-dependency': 4.3.6 - '@smithy/middleware-content-length': 4.3.6 - '@smithy/middleware-endpoint': 4.5.6 - '@smithy/middleware-retry': 4.6.6 - '@smithy/middleware-serde': 4.3.6 - '@smithy/middleware-stack': 4.3.6 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/hash-node': 4.2.12 + '@smithy/invalid-dependency': 4.2.12 + '@smithy/middleware-content-length': 4.2.12 + '@smithy/middleware-endpoint': 4.4.27 + '@smithy/middleware-retry': 4.4.44 + '@smithy/middleware-serde': 4.2.15 + '@smithy/middleware-stack': 4.2.12 '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.7 - '@smithy/protocol-http': 5.4.6 - '@smithy/smithy-client': 4.13.6 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.3.6 - '@smithy/util-base64': 4.4.6 - '@smithy/util-body-length-browser': 4.3.6 - '@smithy/util-body-length-node': 4.3.6 - '@smithy/util-defaults-mode-browser': 4.4.6 - '@smithy/util-defaults-mode-node': 4.3.6 - '@smithy/util-endpoints': 3.5.6 - '@smithy/util-middleware': 4.3.6 - '@smithy/util-retry': 4.4.6 - '@smithy/util-utf8': 4.3.6 + '@smithy/node-http-handler': 4.7.4 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.43 + '@smithy/util-defaults-mode-node': 4.2.47 + '@smithy/util-endpoints': 3.3.3 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-retry': 4.2.12 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/nested-clients@3.997.19': + '@aws-sdk/nested-clients@3.997.11': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.20 - '@aws-sdk/signature-v4-multi-region': 3.996.33 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/fetch-http-handler': 5.4.6 - '@smithy/node-http-handler': 4.7.7 - '@smithy/types': 4.14.3 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/signature-v4-multi-region': 3.996.28 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/region-config-resolver@3.972.24': - dependencies: - '@aws-sdk/core': 3.974.20 - tslib: 2.6.2 - '@aws-sdk/region-config-resolver@3.972.9': dependencies: '@aws-sdk/types': 3.973.9 @@ -10878,49 +10529,36 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.33': + '@aws-sdk/signature-v4-multi-region@3.996.28': dependencies: - '@aws-sdk/types': 3.973.12 - '@smithy/signature-v4': 5.4.6 - '@smithy/types': 4.14.3 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/token-providers@3.1014.0': dependencies: - '@aws-sdk/core': 3.973.23 - '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.6 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/token-providers@3.1052.0': dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.1065.0': - dependencies: - '@aws-sdk/core': 3.974.20 - '@aws-sdk/nested-clients': 3.997.19 - '@aws-sdk/types': 3.973.12 - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 tslib: 2.8.1 - '@aws-sdk/types@3.973.12': - dependencies: - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@aws-sdk/types@3.973.6': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@aws-sdk/types@3.973.9': @@ -10934,11 +10572,11 @@ snapshots: '@aws-sdk/util-endpoints@3.995.0': dependencies: - '@aws-sdk/types': 3.973.12 - '@smithy/types': 4.14.3 - '@smithy/url-parser': 4.3.6 - '@smithy/util-endpoints': 3.5.6 - tslib: 2.6.2 + '@aws-sdk/types': 3.973.9 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-endpoints': 3.3.3 + tslib: 2.8.1 '@aws-sdk/util-endpoints@3.996.5': dependencies: @@ -10952,15 +10590,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.965.7': - dependencies: - tslib: 2.6.2 - - '@aws-sdk/util-user-agent-browser@3.972.21': - dependencies: - '@aws-sdk/core': 3.974.20 - tslib: 2.6.2 - '@aws-sdk/util-user-agent-browser@3.972.8': dependencies: '@aws-sdk/types': 3.973.9 @@ -10977,14 +10606,9 @@ snapshots: '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.973.36': - dependencies: - '@aws-sdk/core': 3.974.20 - tslib: 2.6.2 - '@aws-sdk/xml-builder@3.972.15': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 fast-xml-parser: 5.5.8 tslib: 2.8.1 @@ -10995,35 +10619,27 @@ snapshots: fast-xml-parser: 5.7.3 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.29': - dependencies: - '@smithy/types': 4.14.3 - fast-xml-parser: 5.7.3 - tslib: 2.6.2 - '@aws/lambda-invoke-store@0.2.2': {} - '@aws/lambda-invoke-store@0.2.4': {} - - '@babel/code-frame@7.29.7': + '@babel/code-frame@7.29.0': dependencies: - '@babel/helper-validator-identifier': 7.29.7 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 '@babel/compat-data@7.29.7': {} - '@babel/core@7.29.7': + '@babel/core@7.29.0': dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -11033,17 +10649,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.29.7': + '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.29.7': + '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.0 '@babel/helper-compilation-targets@7.29.7': dependencies: @@ -11053,768 +10669,751 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)': + '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-member-expression-to-functions': 7.29.7 - '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)': + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.12 transitivePeerDependencies: - supports-color - '@babel/helper-globals@7.29.7': {} + '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.29.7': + '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.29.7': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.29.7': + '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-plugin-utils@7.29.7': {} + '@babel/helper-plugin-utils@7.28.6': {} - '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-wrap-function': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.3 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-member-expression-to-functions': 7.29.7 - '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-identifier@7.28.5': {} '@babel/helper-validator-option@7.29.7': {} - '@babel/helper-wrap-function@7.29.7': + '@babel/helper-wrap-function@7.28.3': dependencies: - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helpers@7.29.7': + '@babel/helpers@7.28.6': dependencies: - '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 - '@babel/parser@7.29.7': + '@babel/parser@7.29.0': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.7)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.7)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.7)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.7)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.7)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.7)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.7)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.7)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.7)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.7)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - - '@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-globals': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) - '@babel/traverse': 7.29.7 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/template': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.28.6 - '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) - '@babel/traverse': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-constant-elements@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) - '@babel/types': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.29.7(@babel/core@7.29.7)': + '@babel/preset-env@7.28.3(@babel/core@7.29.0)': dependencies: '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7) - '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7) - '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7) - babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) - babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7) - babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7) - core-js-compat: 3.49.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.29.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.29.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.0) + core-js-compat: 3.46.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/types': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.29.0 esutils: 2.0.3 - '@babel/preset-react@7.29.7(@babel/core@7.29.7)': + '@babel/preset-react@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-react-pure-annotations': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.29.7(@babel/core@7.29.7)': + '@babel/preset-typescript@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - '@babel/runtime@7.29.7': {} + '@babel/runtime@7.28.4': {} - '@babel/template@7.29.7': + '@babel/template@7.28.6': dependencies: - '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 - '@babel/traverse@7.29.7': + '@babel/traverse@7.29.0': dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 - '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.29.7': + '@babel/types@7.29.0': dependencies: - '@babel/helper-string-parser': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@bcoe/v8-coverage@0.2.3': {} @@ -11826,21 +11425,21 @@ snapshots: '@braze/web-sdk@6.5.0': {} - '@cacheable/memory@2.0.9': + '@cacheable/memory@2.0.8': dependencies: - '@cacheable/utils': 2.4.1 + '@cacheable/utils': 2.4.0 '@keyv/bigmap': 1.3.1(keyv@5.6.0) hookified: 1.15.1 keyv: 5.6.0 - '@cacheable/utils@2.4.1': + '@cacheable/utils@2.4.0': dependencies: hashery: 1.5.1 keyv: 5.6.0 '@creditkarma/thrift-server-core@1.0.4': dependencies: - '@types/lodash': 4.17.24 + '@types/lodash': 4.14.202 lodash: 4.18.1 '@cspotcode/source-map-support@0.8.1': @@ -11854,7 +11453,7 @@ snapshots: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - '@csstools/css-color-parser@4.1.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.1.4(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/color-helpers': 6.0.2 '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) @@ -11869,6 +11468,10 @@ snapshots: dependencies: '@csstools/css-tokenizer': 4.0.0 + '@csstools/css-syntax-patches-for-csstree@1.1.1(css-tree@3.2.1)': + optionalDependencies: + css-tree: 3.2.1 + '@csstools/css-syntax-patches-for-csstree@1.1.5(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 @@ -11882,9 +11485,9 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.2)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': dependencies: - postcss-selector-parser: 7.1.2 + postcss-selector-parser: 7.1.1 '@discoveryjs/json-ext@0.5.7': {} @@ -11910,8 +11513,8 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: - '@babel/helper-module-imports': 7.29.7 - '@babel/runtime': 7.29.7 + '@babel/helper-module-imports': 7.28.6 + '@babel/runtime': 7.28.4 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -11938,7 +11541,7 @@ snapshots: '@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1)': dependencies: - '@babel/runtime': 7.29.7 + '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 @@ -11958,7 +11561,7 @@ snapshots: '@emotion/memoize': 0.9.0 '@emotion/unitless': 0.10.0 '@emotion/utils': 1.4.2 - csstype: 3.2.3 + csstype: 3.1.3 '@emotion/server@11.11.0': dependencies: @@ -11985,7 +11588,7 @@ snapshots: '@esbuild/aix-ppc64@0.27.0': optional: true - '@esbuild/aix-ppc64@0.27.7': + '@esbuild/aix-ppc64@0.27.3': optional: true '@esbuild/android-arm64@0.18.20': @@ -11997,7 +11600,7 @@ snapshots: '@esbuild/android-arm64@0.27.0': optional: true - '@esbuild/android-arm64@0.27.7': + '@esbuild/android-arm64@0.27.3': optional: true '@esbuild/android-arm@0.18.20': @@ -12009,7 +11612,7 @@ snapshots: '@esbuild/android-arm@0.27.0': optional: true - '@esbuild/android-arm@0.27.7': + '@esbuild/android-arm@0.27.3': optional: true '@esbuild/android-x64@0.18.20': @@ -12021,7 +11624,7 @@ snapshots: '@esbuild/android-x64@0.27.0': optional: true - '@esbuild/android-x64@0.27.7': + '@esbuild/android-x64@0.27.3': optional: true '@esbuild/darwin-arm64@0.18.20': @@ -12033,7 +11636,7 @@ snapshots: '@esbuild/darwin-arm64@0.27.0': optional: true - '@esbuild/darwin-arm64@0.27.7': + '@esbuild/darwin-arm64@0.27.3': optional: true '@esbuild/darwin-x64@0.18.20': @@ -12045,7 +11648,7 @@ snapshots: '@esbuild/darwin-x64@0.27.0': optional: true - '@esbuild/darwin-x64@0.27.7': + '@esbuild/darwin-x64@0.27.3': optional: true '@esbuild/freebsd-arm64@0.18.20': @@ -12057,7 +11660,7 @@ snapshots: '@esbuild/freebsd-arm64@0.27.0': optional: true - '@esbuild/freebsd-arm64@0.27.7': + '@esbuild/freebsd-arm64@0.27.3': optional: true '@esbuild/freebsd-x64@0.18.20': @@ -12069,7 +11672,7 @@ snapshots: '@esbuild/freebsd-x64@0.27.0': optional: true - '@esbuild/freebsd-x64@0.27.7': + '@esbuild/freebsd-x64@0.27.3': optional: true '@esbuild/linux-arm64@0.18.20': @@ -12081,7 +11684,7 @@ snapshots: '@esbuild/linux-arm64@0.27.0': optional: true - '@esbuild/linux-arm64@0.27.7': + '@esbuild/linux-arm64@0.27.3': optional: true '@esbuild/linux-arm@0.18.20': @@ -12093,7 +11696,7 @@ snapshots: '@esbuild/linux-arm@0.27.0': optional: true - '@esbuild/linux-arm@0.27.7': + '@esbuild/linux-arm@0.27.3': optional: true '@esbuild/linux-ia32@0.18.20': @@ -12105,7 +11708,7 @@ snapshots: '@esbuild/linux-ia32@0.27.0': optional: true - '@esbuild/linux-ia32@0.27.7': + '@esbuild/linux-ia32@0.27.3': optional: true '@esbuild/linux-loong64@0.18.20': @@ -12117,7 +11720,7 @@ snapshots: '@esbuild/linux-loong64@0.27.0': optional: true - '@esbuild/linux-loong64@0.27.7': + '@esbuild/linux-loong64@0.27.3': optional: true '@esbuild/linux-mips64el@0.18.20': @@ -12129,7 +11732,7 @@ snapshots: '@esbuild/linux-mips64el@0.27.0': optional: true - '@esbuild/linux-mips64el@0.27.7': + '@esbuild/linux-mips64el@0.27.3': optional: true '@esbuild/linux-ppc64@0.18.20': @@ -12141,7 +11744,7 @@ snapshots: '@esbuild/linux-ppc64@0.27.0': optional: true - '@esbuild/linux-ppc64@0.27.7': + '@esbuild/linux-ppc64@0.27.3': optional: true '@esbuild/linux-riscv64@0.18.20': @@ -12153,7 +11756,7 @@ snapshots: '@esbuild/linux-riscv64@0.27.0': optional: true - '@esbuild/linux-riscv64@0.27.7': + '@esbuild/linux-riscv64@0.27.3': optional: true '@esbuild/linux-s390x@0.18.20': @@ -12165,7 +11768,7 @@ snapshots: '@esbuild/linux-s390x@0.27.0': optional: true - '@esbuild/linux-s390x@0.27.7': + '@esbuild/linux-s390x@0.27.3': optional: true '@esbuild/linux-x64@0.18.20': @@ -12177,7 +11780,7 @@ snapshots: '@esbuild/linux-x64@0.27.0': optional: true - '@esbuild/linux-x64@0.27.7': + '@esbuild/linux-x64@0.27.3': optional: true '@esbuild/netbsd-arm64@0.25.12': @@ -12186,7 +11789,7 @@ snapshots: '@esbuild/netbsd-arm64@0.27.0': optional: true - '@esbuild/netbsd-arm64@0.27.7': + '@esbuild/netbsd-arm64@0.27.3': optional: true '@esbuild/netbsd-x64@0.18.20': @@ -12198,7 +11801,7 @@ snapshots: '@esbuild/netbsd-x64@0.27.0': optional: true - '@esbuild/netbsd-x64@0.27.7': + '@esbuild/netbsd-x64@0.27.3': optional: true '@esbuild/openbsd-arm64@0.25.12': @@ -12207,7 +11810,7 @@ snapshots: '@esbuild/openbsd-arm64@0.27.0': optional: true - '@esbuild/openbsd-arm64@0.27.7': + '@esbuild/openbsd-arm64@0.27.3': optional: true '@esbuild/openbsd-x64@0.18.20': @@ -12219,7 +11822,7 @@ snapshots: '@esbuild/openbsd-x64@0.27.0': optional: true - '@esbuild/openbsd-x64@0.27.7': + '@esbuild/openbsd-x64@0.27.3': optional: true '@esbuild/openharmony-arm64@0.25.12': @@ -12228,7 +11831,7 @@ snapshots: '@esbuild/openharmony-arm64@0.27.0': optional: true - '@esbuild/openharmony-arm64@0.27.7': + '@esbuild/openharmony-arm64@0.27.3': optional: true '@esbuild/sunos-x64@0.18.20': @@ -12240,7 +11843,7 @@ snapshots: '@esbuild/sunos-x64@0.27.0': optional: true - '@esbuild/sunos-x64@0.27.7': + '@esbuild/sunos-x64@0.27.3': optional: true '@esbuild/win32-arm64@0.18.20': @@ -12252,7 +11855,7 @@ snapshots: '@esbuild/win32-arm64@0.27.0': optional: true - '@esbuild/win32-arm64@0.27.7': + '@esbuild/win32-arm64@0.27.3': optional: true '@esbuild/win32-ia32@0.18.20': @@ -12264,7 +11867,7 @@ snapshots: '@esbuild/win32-ia32@0.27.0': optional: true - '@esbuild/win32-ia32@0.27.7': + '@esbuild/win32-ia32@0.27.3': optional: true '@esbuild/win32-x64@0.18.20': @@ -12276,7 +11879,7 @@ snapshots: '@esbuild/win32-x64@0.27.0': optional: true - '@esbuild/win32-x64@0.27.7': + '@esbuild/win32-x64@0.27.3': optional: true '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@9.39.1)': @@ -12316,7 +11919,7 @@ snapshots: globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.2.0 + js-yaml: 4.1.1 minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -12349,16 +11952,16 @@ snapshots: '@guardian/cdk@63.6.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1126.0)(constructs@10.6.0)': dependencies: - '@aws-sdk/client-ec2': 3.1065.0 - '@aws-sdk/client-ssm': 3.1065.0 - '@aws-sdk/credential-providers': 3.1065.0 + '@aws-sdk/client-ec2': 3.1053.0 + '@aws-sdk/client-ssm': 3.1053.0 + '@aws-sdk/credential-providers': 3.1053.0 aws-cdk: 2.1126.0 aws-cdk-lib: 2.257.0(constructs@10.6.0) chalk: 4.1.2 - codemaker: 1.134.0 + codemaker: 1.132.0 constructs: 10.6.0 git-url-parse: 16.1.0 - js-yaml: 4.2.0 + js-yaml: 4.1.1 read-pkg-up: 7.0.1 yargs: 17.7.2 @@ -12452,7 +12055,7 @@ snapshots: '@guardian/shimport@1.0.2': dependencies: - tslib: 2.6.2 + tslib: 2.8.1 '@guardian/source-development-kitchen@28.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3)': dependencies: @@ -12507,7 +12110,7 @@ snapshots: js-yaml: 3.14.2 resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.6': {} + '@istanbuljs/schema@0.1.3': {} '@jest/console@29.7.0': dependencies: @@ -12553,9 +12156,9 @@ snapshots: - supports-color - ts-node - '@jest/create-cache-key-function@30.4.1': + '@jest/create-cache-key-function@30.2.0': dependencies: - '@jest/types': 30.4.1 + '@jest/types': 30.2.0 '@jest/environment@29.7.0': dependencies: @@ -12593,10 +12196,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/pattern@30.4.0': + '@jest/pattern@30.0.1': dependencies: '@types/node': 24.12.4 - jest-regex-util: 30.4.0 + jest-regex-util: 30.0.1 '@jest/reporters@29.7.0': dependencies: @@ -12608,32 +12211,32 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 '@types/node': 24.12.4 chalk: 4.1.2 - collect-v8-coverage: 1.0.3 + collect-v8-coverage: 1.0.2 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 + istanbul-lib-instrument: 6.0.1 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.2.0 + istanbul-reports: 3.1.6 jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 + v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color '@jest/schemas@29.6.3': dependencies: - '@sinclair/typebox': 0.27.10 + '@sinclair/typebox': 0.27.8 - '@jest/schemas@30.4.1': + '@jest/schemas@30.0.5': dependencies: - '@sinclair/typebox': 0.34.49 + '@sinclair/typebox': 0.34.41 '@jest/source-map@29.6.3': dependencies: @@ -12646,7 +12249,7 @@ snapshots: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.3 + collect-v8-coverage: 1.0.2 '@jest/test-sequencer@29.7.0': dependencies: @@ -12657,7 +12260,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 @@ -12669,7 +12272,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.7 + pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -12681,17 +12284,17 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 24.12.4 - '@types/yargs': 17.0.35 + '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jest/types@30.4.1': + '@jest/types@30.2.0': dependencies: - '@jest/pattern': 30.4.0 - '@jest/schemas': 30.4.1 + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 24.12.4 - '@types/yargs': 17.0.35 + '@types/yargs': 17.0.33 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.13': @@ -12723,132 +12326,41 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@jsonjoy.com/base64@1.1.2(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/base64@17.67.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/buffers@1.2.1(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/buffers@17.67.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/codegen@1.0.0(tslib@2.6.2)': + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/codegen@17.67.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/fs-core@4.57.6(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-fsa@4.57.6(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-core': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-node-builtins@4.57.6(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/fs-node-to-fsa@4.57.6(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-fsa': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-node-utils@4.57.6(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-node@4.57.6(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-core': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-print': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-snapshot': 4.57.6(tslib@2.6.2) - glob-to-regex.js: 1.2.0(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-print@4.57.6(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 + tslib: 2.8.1 - '@jsonjoy.com/fs-snapshot@4.57.6(tslib@2.6.2)': + '@jsonjoy.com/buffers@1.2.1(tslib@2.8.1)': dependencies: - '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/json-pack': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) - tslib: 2.6.2 + tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.21.0(tslib@2.6.2)': + '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.2) - '@jsonjoy.com/buffers': 1.2.1(tslib@2.6.2) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) - '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.6.2) - '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) - hyperdyperid: 1.2.0 - thingies: 2.6.0(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 + tslib: 2.8.1 - '@jsonjoy.com/json-pack@17.67.0(tslib@2.6.2)': + '@jsonjoy.com/json-pack@1.21.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/base64': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/codegen': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/json-pointer': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) hyperdyperid: 1.2.0 - thingies: 2.6.0(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/json-pointer@1.0.2(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) - '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/json-pointer@17.67.0(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) - tslib: 2.6.2 + thingies: 2.5.0(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 - '@jsonjoy.com/util@1.9.0(tslib@2.6.2)': + '@jsonjoy.com/json-pointer@1.0.2(tslib@2.8.1)': dependencies: - '@jsonjoy.com/buffers': 1.2.1(tslib@2.6.2) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) - tslib: 2.6.2 + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + tslib: 2.8.1 - '@jsonjoy.com/util@17.67.0(tslib@2.6.2)': + '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': dependencies: - '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/codegen': 17.67.0(tslib@2.6.2) - tslib: 2.6.2 + '@jsonjoy.com/buffers': 1.2.1(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + tslib: 2.8.1 '@keyv/bigmap@1.3.1(keyv@5.6.0)': dependencies: @@ -12862,7 +12374,7 @@ snapshots: '@mdx-js/react@3.1.1(@types/react@18.3.1)(react@18.3.1)': dependencies: - '@types/mdx': 2.0.14 + '@types/mdx': 2.0.13 '@types/react': 18.3.1 react: 18.3.1 @@ -12949,8 +12461,6 @@ snapshots: '@nodable/entities@2.1.0': {} - '@nodable/entities@2.1.1': {} - '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -12961,7 +12471,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + fastq: 1.15.0 '@package-json/types@0.0.12': {} @@ -13059,7 +12569,7 @@ snapshots: tslib: 2.8.1 tsyringe: 4.10.0 - '@pkgr/core@0.3.6': {} + '@pkgr/core@0.2.9': {} '@playwright/test@1.60.0': dependencies: @@ -13253,6 +12763,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.60.1': optional: true + '@sec-ant/readable-stream@0.4.1': {} + '@sentry-internal/browser-utils@10.52.0': dependencies: '@sentry/core': 10.52.0 @@ -13281,21 +12793,21 @@ snapshots: '@sentry/core@10.52.0': {} - '@sinclair/typebox@0.27.10': {} + '@sinclair/typebox@0.27.8': {} - '@sinclair/typebox@0.34.49': {} + '@sinclair/typebox@0.34.41': {} '@sindresorhus/is@7.2.0': {} '@sindresorhus/merge-streams@4.0.0': {} - '@sinonjs/commons@3.0.1': + '@sinonjs/commons@3.0.0': dependencies: type-detect: 4.0.8 '@sinonjs/fake-timers@10.3.0': dependencies: - '@sinonjs/commons': 3.0.1 + '@sinonjs/commons': 3.0.0 '@smithy/abort-controller@4.2.12': dependencies: @@ -13320,15 +12832,10 @@ snapshots: '@smithy/util-middleware': 4.2.12 tslib: 2.8.1 - '@smithy/config-resolver@4.5.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/core@3.23.12': dependencies: '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 '@smithy/url-parser': 4.2.12 '@smithy/util-base64': 4.3.2 '@smithy/util-body-length-browser': 4.2.2 @@ -13344,18 +12851,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/core@3.24.6': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@smithy/credential-provider-imds@4.2.12': dependencies: '@smithy/node-config-provider': 4.3.12 '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.13.1 - '@smithy/url-parser': 4.3.6 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 tslib: 2.8.1 '@smithy/credential-provider-imds@4.3.4': @@ -13364,16 +12865,10 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.3.8': - dependencies: - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.8.1 - '@smithy/eventstream-codec@4.2.8': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.14.3 + '@smithy/types': 4.14.2 '@smithy/util-hex-encoding': 4.2.2 tslib: 2.8.1 @@ -13404,7 +12899,7 @@ snapshots: dependencies: '@smithy/protocol-http': 5.3.12 '@smithy/querystring-builder': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 '@smithy/util-base64': 4.3.2 tslib: 2.8.1 @@ -13414,12 +12909,6 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.4.6': - dependencies: - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@smithy/hash-blob-browser@4.2.9': dependencies: '@smithy/chunked-blob-reader': 5.2.0 @@ -13434,11 +12923,6 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/hash-node@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/hash-stream-node@4.2.8': dependencies: '@smithy/types': 4.14.2 @@ -13450,11 +12934,6 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/invalid-dependency@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 @@ -13469,12 +12948,18 @@ snapshots: '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/middleware-compression@4.4.6': + '@smithy/middleware-compression@4.3.32': dependencies: - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 + '@smithy/core': 3.24.4 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/node-config-provider': 4.3.12 + '@smithy/protocol-http': 5.3.12 + '@smithy/types': 4.14.2 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-utf8': 4.2.2 fflate: 0.8.1 - tslib: 2.6.2 + tslib: 2.8.1 '@smithy/middleware-content-length@4.2.12': dependencies: @@ -13482,11 +12967,6 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/middleware-content-length@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/middleware-endpoint@4.4.27': dependencies: '@smithy/core': 3.24.4 @@ -13498,11 +12978,6 @@ snapshots: '@smithy/util-middleware': 4.2.12 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.5.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/middleware-retry@4.4.44': dependencies: '@smithy/node-config-provider': 4.3.12 @@ -13515,33 +12990,18 @@ snapshots: '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/middleware-retry@4.6.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/middleware-serde@4.2.15': dependencies: '@smithy/core': 3.24.4 '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@smithy/middleware-serde@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 + '@smithy/types': 4.14.2 + tslib: 2.8.1 '@smithy/middleware-stack@4.2.12': dependencies: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/middleware-stack@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/node-config-provider@4.3.12': dependencies: '@smithy/property-provider': 4.2.12 @@ -13549,17 +13009,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/node-config-provider@4.4.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/node-http-handler@4.5.0': dependencies: '@smithy/abort-controller': 4.2.12 '@smithy/protocol-http': 5.3.12 '@smithy/querystring-builder': 4.2.12 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@smithy/node-http-handler@4.7.4': @@ -13568,15 +13023,9 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/node-http-handler@4.7.7': - dependencies: - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@smithy/property-provider@4.2.12': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 tslib: 2.8.1 '@smithy/protocol-http@5.3.12': @@ -13584,14 +13033,9 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/protocol-http@5.4.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/querystring-builder@4.2.12': dependencies: - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 '@smithy/util-uri-escape': 4.2.2 tslib: 2.8.1 @@ -13613,7 +13057,7 @@ snapshots: dependencies: '@smithy/is-array-buffer': 4.2.2 '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.13.1 + '@smithy/types': 4.14.2 '@smithy/util-hex-encoding': 4.2.2 '@smithy/util-middleware': 4.2.12 '@smithy/util-uri-escape': 4.2.2 @@ -13626,12 +13070,6 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/signature-v4@5.4.6': - dependencies: - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@smithy/smithy-client@4.12.7': dependencies: '@smithy/core': 3.24.4 @@ -13642,12 +13080,6 @@ snapshots: '@smithy/util-stream': 4.5.20 tslib: 2.8.1 - '@smithy/smithy-client@4.13.6': - dependencies: - '@smithy/core': 3.24.6 - '@smithy/types': 4.14.3 - tslib: 2.6.2 - '@smithy/types@4.13.1': dependencies: tslib: 2.8.1 @@ -13656,50 +13088,26 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/types@4.14.3': - dependencies: - tslib: 2.6.2 - '@smithy/url-parser@4.2.12': dependencies: '@smithy/querystring-parser': 4.2.12 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/url-parser@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-base64@4.3.2': dependencies: '@smithy/util-buffer-from': 4.2.2 '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/util-base64@4.4.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-body-length-browser@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-browser@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-body-length-node@4.2.3': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-node@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 @@ -13721,11 +13129,6 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.4.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-defaults-mode-node@4.2.47': dependencies: '@smithy/config-resolver': 4.4.13 @@ -13736,22 +13139,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-endpoints@3.3.3': dependencies: '@smithy/node-config-provider': 4.3.12 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/util-endpoints@3.5.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-hex-encoding@4.2.2': dependencies: tslib: 2.8.1 @@ -13761,22 +13154,12 @@ snapshots: '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/util-middleware@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-retry@4.2.12': dependencies: '@smithy/service-error-classification': 4.2.12 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/util-retry@4.4.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-stream@4.5.20': dependencies: '@smithy/fetch-http-handler': 5.4.4 @@ -13795,29 +13178,19 @@ snapshots: '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 - tslib: 2.6.2 + tslib: 2.8.1 '@smithy/util-utf8@4.2.2': dependencies: '@smithy/util-buffer-from': 4.2.2 tslib: 2.8.1 - '@smithy/util-utf8@4.3.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/util-waiter@4.2.13': dependencies: '@smithy/abort-controller': 4.2.12 '@smithy/types': 4.14.2 tslib: 2.8.1 - '@smithy/util-waiter@4.4.6': - dependencies: - '@smithy/core': 3.24.6 - tslib: 2.6.2 - '@smithy/uuid@1.1.2': dependencies: tslib: 2.8.1 @@ -13827,19 +13200,19 @@ snapshots: '@storybook/addon-a11y@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@storybook/global': 5.0.0 - axe-core: 4.12.1 + axe-core: 4.11.1 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1)': + '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': dependencies: '@mdx-js/react': 3.1.1(@types/react@18.3.1)(react@18.3.1) - '@storybook/csf-plugin': 10.3.3(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1) - '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/csf-plugin': 10.3.3(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) + '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react-dom-shim': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - ts-dedent: 2.3.0 + ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - esbuild @@ -13864,7 +13237,7 @@ snapshots: css-loader: 7.1.2(webpack@5.104.1) es-module-lexer: 1.7.0 fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.104.1) - html-webpack-plugin: 5.6.7(webpack@5.104.1) + html-webpack-plugin: 5.6.6(webpack@5.104.1) magic-string: 0.30.21 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) style-loader: 4.0.0(webpack@5.104.1) @@ -13877,39 +13250,30 @@ snapshots: optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - - '@minify-html/node' - '@rspack/core' - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss - uglify-js - webpack-cli '@storybook/core-webpack@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - ts-dedent: 2.3.0 + ts-dedent: 2.2.0 - '@storybook/csf-plugin@10.3.3(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2))(webpack@5.104.1)': + '@storybook/csf-plugin@10.3.3(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unplugin: 2.3.11 optionalDependencies: - esbuild: 0.27.7 + esbuild: 0.27.3 rollup: 4.60.1 vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) '@storybook/global@5.0.0': {} - '@storybook/icons@2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13931,17 +13295,8 @@ snapshots: optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - - '@minify-html/node' - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss - supports-color - uglify-js - webpack-cli @@ -13977,18 +13332,9 @@ snapshots: optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - - '@minify-html/node' - '@rspack/core' - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss - supports-color - uglify-js - webpack-cli @@ -13998,7 +13344,7 @@ snapshots: '@storybook/global': 5.0.0 '@storybook/react-dom-shim': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 - react-docgen: 8.0.3 + react-docgen: 8.0.2 react-docgen-typescript: 2.4.0(typescript@5.9.3) react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -14010,7 +13356,7 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@9.39.1)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) - '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/types': 8.59.2 eslint: 9.39.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -14025,19 +13371,19 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))': + '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) - '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))': + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) - '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))': + '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) + '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -14048,70 +13394,70 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.56.3(@typescript-eslint/types@8.61.0) - vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) + svelte: 5.56.3(@typescript-eslint/types@8.59.2) + vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) optionalDependencies: typescript: 5.9.3 '@sveltejs/load-config@0.1.1': {} - '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0))': + '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.2 - svelte: 5.56.3(@typescript-eslint/types@8.61.0) - vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) - vitefu: 1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)) + svelte: 5.56.3(@typescript-eslint/types@8.59.2) + vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) + vitefu: 1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.29.7)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 - '@svgr/babel-preset@8.1.0(@babel/core@7.29.7)': + '@svgr/babel-preset@8.1.0(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.29.7 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.29.7) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.29.7) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.29.7) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.29.7) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.29.7) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.29.7) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.29.7) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.29.0) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.29.0) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.29.0) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.29.0) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.29.0) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.29.0) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.29.0) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.29.0) '@svgr/core@8.1.0(typescript@5.9.3)': dependencies: - '@babel/core': 7.29.7 - '@svgr/babel-preset': 8.1.0(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.9.3) snake-case: 3.0.4 @@ -14121,13 +13467,13 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.0 entities: 4.5.0 '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))': dependencies: - '@babel/core': 7.29.7 - '@svgr/babel-preset': 8.1.0(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -14145,11 +13491,11 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.9.3)': dependencies: - '@babel/core': 7.29.7 - '@babel/plugin-transform-react-constant-elements': 7.29.7(@babel/core@7.29.7) - '@babel/preset-env': 7.29.7(@babel/core@7.29.7) - '@babel/preset-react': 7.29.7(@babel/core@7.29.7) - '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.29.0) + '@babel/preset-env': 7.28.3(@babel/core@7.29.0) + '@babel/preset-react': 7.27.1(@babel/core@7.29.0) + '@babel/preset-typescript': 7.27.1(@babel/core@7.29.0) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3) @@ -14235,7 +13581,7 @@ snapshots: '@jest/create-cache-key-function': 30.2.0 '@swc/core': 1.15.41 '@swc/counter': 0.1.3 - jsonc-parser: 3.3.1 + jsonc-parser: 3.2.0 '@swc/types@0.1.26': dependencies: @@ -14243,8 +13589,8 @@ snapshots: '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.29.7 - '@babel/runtime': 7.29.7 + '@babel/code-frame': 7.29.0 + '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -14254,7 +13600,7 @@ snapshots: '@testing-library/jest-dom@6.9.1': dependencies: - '@adobe/css-tools': 4.5.0 + '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -14263,7 +13609,7 @@ snapshots: '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.29.7 + '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -14286,7 +13632,7 @@ snapshots: '@tootallnate/once@2.0.1': {} - '@tsconfig/node10@1.0.12': {} + '@tsconfig/node10@1.0.9': {} '@tsconfig/node12@1.0.11': {} @@ -14305,24 +13651,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.0 '@types/body-parser@1.19.2': dependencies: @@ -14337,11 +13683,6 @@ snapshots: dependencies: '@types/deep-eql': 4.0.2 - '@types/chai@5.2.3': - dependencies: - '@types/deep-eql': 4.0.2 - assertion-error: 2.0.1 - '@types/clean-css@4.2.11': dependencies: '@types/node': 24.12.4 @@ -14353,7 +13694,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.8 + '@types/express-serve-static-core': 5.1.1 '@types/node': 24.12.4 '@types/connect@3.4.38': @@ -14362,9 +13703,9 @@ snapshots: '@types/cookie@0.6.0': {} - '@types/debug@4.1.13': + '@types/debug@4.1.12': dependencies: - '@types/ms': 2.1.0 + '@types/ms': 0.7.34 '@types/deep-eql@4.0.2': {} @@ -14455,14 +13796,14 @@ snapshots: '@types/jsdom@20.0.1': dependencies: '@types/node': 24.12.4 - '@types/tough-cookie': 4.0.5 - parse5: 7.3.0 + '@types/tough-cookie': 4.0.2 + parse5: 7.1.2 '@types/jsdom@21.1.1': dependencies: '@types/node': 24.12.4 - '@types/tough-cookie': 4.0.5 - parse5: 7.3.0 + '@types/tough-cookie': 4.0.2 + parse5: 7.1.2 '@types/json-schema@7.0.15': {} @@ -14472,25 +13813,25 @@ snapshots: '@types/lodash.debounce@4.0.7': dependencies: - '@types/lodash': 4.17.24 + '@types/lodash': 4.14.202 '@types/lodash.get@4.4.9': dependencies: - '@types/lodash': 4.17.24 + '@types/lodash': 4.14.202 - '@types/lodash@4.17.24': {} + '@types/lodash@4.14.202': {} '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 - '@types/mdx@2.0.14': {} + '@types/mdx@2.0.13': {} '@types/mime@1.3.5': {} - '@types/ms@2.1.0': {} + '@types/ms@0.7.34': {} - '@types/node@16.18.126': {} + '@types/node@16.18.68': {} '@types/node@24.12.4': dependencies: @@ -14504,7 +13845,7 @@ snapshots: dependencies: parse-path: 7.1.0 - '@types/prop-types@15.7.15': {} + '@types/prop-types@15.7.5': {} '@types/qs@6.9.15': {} @@ -14524,8 +13865,8 @@ snapshots: '@types/react@18.3.1': dependencies: - '@types/prop-types': 15.7.15 - csstype: 3.2.3 + '@types/prop-types': 15.7.5 + csstype: 3.1.3 '@types/relateurl@0.2.33': {} @@ -14575,7 +13916,7 @@ snapshots: '@types/stack-utils@2.0.3': {} - '@types/tough-cookie@4.0.5': {} + '@types/tough-cookie@4.0.2': {} '@types/trusted-types@2.0.7': {} @@ -14589,17 +13930,8 @@ snapshots: tapable: 2.3.0 webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) transitivePeerDependencies: - - '@minify-html/node' - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss - uglify-js - webpack-cli @@ -14610,17 +13942,8 @@ snapshots: '@types/node': 24.12.4 webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) transitivePeerDependencies: - - '@minify-html/node' - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss - uglify-js - webpack-cli @@ -14630,7 +13953,7 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.35': + '@types/yargs@17.0.33': dependencies: '@types/yargs-parser': 21.0.3 @@ -14667,7 +13990,7 @@ snapshots: '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/types': 8.59.2 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: @@ -14696,7 +14019,7 @@ snapshots: '@typescript-eslint/types@8.57.1': {} - '@typescript-eslint/types@8.61.0': {} + '@typescript-eslint/types@8.59.2': {} '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': dependencies: @@ -14729,81 +14052,70 @@ snapshots: '@typescript-eslint/types': 8.57.1 eslint-visitor-keys: 5.0.1 - '@ungap/structured-clone@1.3.1': {} - - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - optional: true - - '@unrs/resolver-binding-android-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.12.2': - optional: true + '@ungap/structured-clone@1.3.0': {} - '@unrs/resolver-binding-darwin-x64@1.12.2': + '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true - '@unrs/resolver-binding-freebsd-x64@1.12.2': + '@unrs/resolver-binding-android-arm64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': + '@unrs/resolver-binding-darwin-arm64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': + '@unrs/resolver-binding-darwin-x64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': + '@unrs/resolver-binding-freebsd-x64@1.11.1': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': optional: true - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.12.2': + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': optional: true - '@unrs/resolver-binding-openharmony-arm64@1.12.2': + '@unrs/resolver-binding-linux-x64-musl@1.11.1': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.12.2': + '@unrs/resolver-binding-wasm32-wasi@1.11.1': dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 0.2.12 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true '@vitest/expect@3.2.4': dependencies: - '@types/chai': 5.2.3 + '@types/chai': 5.2.2 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 @@ -14914,7 +14226,7 @@ snapshots: webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) optionalDependencies: - webpack-dev-server: 5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1) + webpack-dev-server: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) '@xhmikosr/archive-type@8.1.0': dependencies: @@ -15027,7 +14339,7 @@ snapshots: acorn-globals@7.0.1: dependencies: acorn: 8.16.0 - acorn-walk: 8.3.5 + acorn-walk: 8.3.1 acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: @@ -15037,9 +14349,7 @@ snapshots: dependencies: acorn: 8.16.0 - acorn-walk@8.3.5: - dependencies: - acorn: 8.16.0 + acorn-walk@8.3.1: {} acorn@8.16.0: {} @@ -15135,11 +14445,11 @@ snapshots: array-includes@3.1.9: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.2 - es-object-atoms: 1.1.2 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 math-intrinsics: 1.1.0 @@ -15148,41 +14458,41 @@ snapshots: array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 @@ -15214,25 +14524,25 @@ snapshots: aws-cdk-lib@2.257.0(constructs@10.6.0): dependencies: '@aws-cdk/asset-awscli-v1': 2.2.273 - '@aws-cdk/asset-node-proxy-agent-v6': 2.1.2 - '@aws-cdk/cloud-assembly-schema': 53.28.0 + '@aws-cdk/asset-node-proxy-agent-v6': 2.1.1 + '@aws-cdk/cloud-assembly-schema': 53.27.0 constructs: 10.6.0 aws-cdk@2.1126.0: {} - axe-core@4.12.1: {} + axe-core@4.11.1: {} axobject-query@4.1.0: {} b4a@1.8.1: {} - babel-jest@29.7.0(@babel/core@7.29.7): + babel-jest@29.7.0(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.29.7) + babel-preset-jest: 29.6.3(@babel/core@7.29.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -15241,9 +14551,9 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.6 + '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 test-exclude: 6.0.0 transitivePeerDependencies: @@ -15251,65 +14561,62 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.29.7 + '@babel/runtime': 7.28.4 cosmiconfig: 7.1.0 resolve: 1.22.12 - babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.29.0): dependencies: '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) - core-js-compat: 3.49.0 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) + core-js-compat: 3.46.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.29.0): dependencies: - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.7): - dependencies: - '@babel/core': 7.29.7 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.7) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.7) - '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.7) - - babel-preset-jest@29.6.3(@babel/core@7.29.7): - dependencies: - '@babel/core': 7.29.7 + babel-preset-current-node-syntax@1.0.1(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) + + babel-preset-jest@29.6.3(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.29.0) bail@2.0.2: {} @@ -15321,39 +14628,11 @@ snapshots: bare-events@2.9.1: {} - bare-fs@4.7.2: - dependencies: - bare-events: 2.9.1 - bare-path: 3.0.1 - bare-stream: 2.13.1(bare-events@2.9.1) - bare-url: 2.4.5 - fast-fifo: 1.3.2 - transitivePeerDependencies: - - bare-abort-controller - - react-native-b4a - - bare-os@3.9.1: {} - - bare-path@3.0.1: - dependencies: - bare-os: 3.9.1 - - bare-stream@2.13.1(bare-events@2.9.1): - dependencies: - streamx: 2.27.0 - teex: 1.0.1 - optionalDependencies: - bare-events: 2.9.1 - transitivePeerDependencies: - - react-native-b4a - - bare-url@2.4.5: - dependencies: - bare-path: 3.0.1 - base64-js@1.5.1: {} - baseline-browser-mapping@2.10.35: {} + baseline-browser-mapping@2.10.32: {} + + baseline-browser-mapping@2.9.19: {} batch@0.6.1: {} @@ -15386,7 +14665,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.14.2 + qs: 6.14.1 raw-body: 2.5.3 type-is: 1.6.18 unpipe: 1.0.0 @@ -15418,13 +14697,13 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.15.2 + qs: 6.14.1 raw-body: 3.0.2 - type-is: 2.1.0 + type-is: 2.0.1 transitivePeerDependencies: - supports-color - bonjour-service@1.4.1: + bonjour-service@1.4.0: dependencies: fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 @@ -15433,9 +14712,7 @@ snapshots: bowser@2.12.1: {} - bowser@2.14.1: {} - - brace-expansion@1.1.15: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 @@ -15444,7 +14721,7 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.6: + brace-expansion@5.0.3: dependencies: balanced-match: 4.0.4 @@ -15458,17 +14735,25 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001797 - electron-to-chromium: 1.5.371 - node-releases: 2.0.47 + caniuse-lite: 1.0.30001769 + electron-to-chromium: 1.5.286 + node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.24.4) + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001769 + electron-to-chromium: 1.5.286 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.35 - caniuse-lite: 1.0.30001797 - electron-to-chromium: 1.5.371 - node-releases: 2.0.47 + baseline-browser-mapping: 2.10.32 + caniuse-lite: 1.0.30001793 + electron-to-chromium: 1.5.364 + node-releases: 2.0.46 update-browserslist-db: 1.2.3(browserslist@4.28.2) bser@2.1.1: @@ -15515,20 +14800,20 @@ snapshots: normalize-url: 8.1.1 responselike: 4.0.2 - cacheable@2.3.5: + cacheable@2.3.4: dependencies: - '@cacheable/memory': 2.0.9 - '@cacheable/utils': 2.4.1 + '@cacheable/memory': 2.0.8 + '@cacheable/utils': 2.4.0 hookified: 1.15.1 keyv: 5.6.0 - qified: 0.10.1 + qified: 0.9.0 call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.9: + call-bind@1.0.8: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -15545,13 +14830,15 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 + tslib: 2.8.1 camelcase@5.3.1: {} camelcase@6.3.0: {} - caniuse-lite@1.0.30001797: {} + caniuse-lite@1.0.30001769: {} + + caniuse-lite@1.0.30001793: {} case-sensitive-paths-webpack-plugin@2.4.0: {} @@ -15653,13 +14940,13 @@ snapshots: co@4.6.0: {} - codemaker@1.134.0: + codemaker@1.132.0: dependencies: camelcase: 6.3.0 decamelize: 5.0.1 fs-extra: 10.1.0 - collect-v8-coverage@1.0.3: {} + collect-v8-coverage@1.0.2: {} color-convert@1.9.3: dependencies: @@ -15697,7 +14984,7 @@ snapshots: commander@8.3.0: {} - comment-parser@1.4.7: {} + comment-parser@1.4.6: {} commondir@1.0.1: {} @@ -15743,7 +15030,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - content-disposition@1.1.0: {} + content-disposition@1.0.1: {} content-disposition@2.0.1: {} @@ -15763,11 +15050,15 @@ snapshots: cookie@0.7.2: {} - copy-file@11.1.0: + copy-file@11.0.0: dependencies: graceful-fs: 4.2.11 p-event: 6.0.1 + core-js-compat@3.46.0: + dependencies: + browserslist: 4.28.2 + core-js-compat@3.49.0: dependencies: browserslist: 4.28.2 @@ -15780,29 +15071,29 @@ snapshots: import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 - yaml: 1.10.3 + yaml: 1.10.2 cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 - js-yaml: 4.2.0 + js-yaml: 4.1.1 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: typescript: 5.9.3 - cosmiconfig@9.0.2(typescript@5.9.3): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.2.0 + js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: typescript: 5.9.3 cpy@11.0.0: dependencies: - copy-file: 11.1.0 + copy-file: 11.0.0 globby: 13.2.2 junk: 4.0.1 micromatch: 4.0.8 @@ -15836,12 +15127,12 @@ snapshots: css-loader@7.1.2(webpack@5.104.1): dependencies: - icss-utils: 5.1.0(postcss@8.5.15) - postcss: 8.5.15 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) - postcss-modules-scope: 3.2.1(postcss@8.5.15) - postcss-modules-values: 4.0.0(postcss@8.5.15) + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) + postcss-modules-local-by-default: 4.0.5(postcss@8.5.6) + postcss-modules-scope: 3.2.0(postcss@8.5.6) + postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 semver: 7.5.4 optionalDependencies: @@ -15855,12 +15146,12 @@ snapshots: domutils: 2.8.0 nth-check: 2.1.1 - css-select@5.2.2: + css-select@5.1.0: dependencies: boolbase: 1.0.0 css-what: 6.2.2 domhandler: 5.0.3 - domutils: 3.2.2 + domutils: 3.1.0 nth-check: 2.1.1 css-tree@2.2.1: @@ -15896,7 +15187,7 @@ snapshots: dependencies: cssom: 0.3.8 - csstype@3.2.3: {} + csstype@3.1.3: {} damerau-levenshtein@1.0.8: {} @@ -15935,7 +15226,7 @@ snapshots: date-format@4.0.14: {} - dayjs@1.11.21: {} + dayjs@1.11.20: {} debounce@1.2.1: {} @@ -15959,7 +15250,7 @@ snapshots: decimal.js@10.6.0: {} - decode-named-character-reference@1.3.0: + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -15969,7 +15260,7 @@ snapshots: dedent@0.7.0: {} - dedent@1.7.2(babel-plugin-macros@3.1.0): + dedent@1.6.0(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -16022,7 +15313,7 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.4: {} + diff@4.0.2: {} dir-glob@3.0.1: dependencies: @@ -16084,6 +15375,12 @@ snapshots: domelementtype: 2.3.0 domhandler: 4.3.1 + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -16111,7 +15408,9 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.371: {} + electron-to-chromium@1.5.286: {} + + electron-to-chromium@1.5.364: {} emittery@0.13.1: {} @@ -16131,42 +15430,40 @@ snapshots: fast-json-parse: 1.0.3 objectorarray: 1.0.5 - enhanced-resolve@5.23.0: + enhanced-resolve@5.19.0: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.3 + tapable: 2.3.0 entities@2.2.0: {} entities@4.5.0: {} - entities@6.0.1: {} - entities@7.0.1: {} entities@8.0.0: {} env-paths@2.2.1: {} - envinfo@7.21.0: {} + envinfo@7.14.0: {} error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.2: + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -16178,7 +15475,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.4 + hasown: 2.0.2 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 @@ -16196,31 +15493,31 @@ snapshots: object.assign: 4.1.7 own-keys: 1.0.1 regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.4 + safe-array-concat: 1.1.3 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.11 - string.prototype.trimend: 1.0.10 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.8 + typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.22 + which-typed-array: 1.1.19 es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.3.3: + es-iterator-helpers@1.2.1: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 @@ -16232,13 +15529,13 @@ snapshots: has-symbols: 1.1.0 internal-slot: 1.1.0 iterator.prototype: 1.1.5 - math-intrinsics: 1.1.0 + safe-array-concat: 1.1.3 es-module-lexer@1.7.0: {} - es-module-lexer@2.1.0: {} + es-module-lexer@2.0.0: {} - es-object-atoms@1.1.2: + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -16247,11 +15544,11 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.4 + hasown: 2.0.2 es-shim-unscopables@1.1.0: dependencies: - hasown: 2.0.4 + hasown: 2.0.2 es-to-primitive@1.3.0: dependencies: @@ -16342,34 +15639,34 @@ snapshots: '@esbuild/win32-ia32': 0.27.0 '@esbuild/win32-x64': 0.27.0 - esbuild@0.27.7: + esbuild@0.27.3: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 escalade@3.2.0: {} @@ -16395,23 +15692,23 @@ snapshots: dependencies: eslint: 9.39.1 - eslint-import-context@0.1.9(unrs-resolver@1.12.2): + eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: - get-tsconfig: 4.14.0 + get-tsconfig: 4.13.0 stable-hash-x: 0.2.0 optionalDependencies: - unrs-resolver: 1.12.2 + unrs-resolver: 1.11.1 eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1))(eslint@9.39.1): dependencies: debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) - get-tsconfig: 4.14.0 + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + get-tsconfig: 4.13.0 is-bun-module: 2.0.0 stable-hash-x: 0.2.0 - tinyglobby: 0.2.17 - unrs-resolver: 1.12.2 + tinyglobby: 0.2.16 + unrs-resolver: 1.11.1 optionalDependencies: eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) transitivePeerDependencies: @@ -16421,12 +15718,12 @@ snapshots: dependencies: debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) - get-tsconfig: 4.14.0 + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) + get-tsconfig: 4.13.0 is-bun-module: 2.0.0 stable-hash-x: 0.2.0 - tinyglobby: 0.2.17 - unrs-resolver: 1.12.2 + tinyglobby: 0.2.16 + unrs-resolver: 1.11.1 optionalDependencies: eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) transitivePeerDependencies: @@ -16438,16 +15735,16 @@ snapshots: eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1): dependencies: - '@typescript-eslint/types': 8.61.0 - comment-parser: 1.4.7 + '@typescript-eslint/types': 8.59.2 + comment-parser: 1.4.6 debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.2.5 - semver: 7.8.4 + minimatch: 10.2.4 + semver: 7.8.1 stable-hash-x: 0.2.0 - unrs-resolver: 1.12.2 + unrs-resolver: 1.11.1 optionalDependencies: '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) transitivePeerDependencies: @@ -16456,16 +15753,16 @@ snapshots: eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1): dependencies: '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.61.0 - comment-parser: 1.4.7 + '@typescript-eslint/types': 8.59.2 + comment-parser: 1.4.6 debug: 4.4.3 eslint: 9.39.1 - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) + eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.2.5 - semver: 7.8.4 + minimatch: 10.2.4 + semver: 7.7.4 stable-hash-x: 0.2.0 - unrs-resolver: 1.12.2 + unrs-resolver: 1.11.1 optionalDependencies: '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) transitivePeerDependencies: @@ -16477,12 +15774,12 @@ snapshots: array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.12.1 + axe-core: 4.11.1 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 eslint: 9.39.1 - hasown: 2.0.4 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.5 @@ -16495,15 +15792,15 @@ snapshots: eslint: 9.39.1 prettier: 3.8.3 prettier-linter-helpers: 1.0.1 - synckit: 0.11.13 + synckit: 0.11.12 optionalDependencies: '@types/eslint': 9.6.1 eslint-config-prettier: 10.1.8(eslint@9.39.1) eslint-plugin-react-hooks@7.0.1(eslint@9.39.1): dependencies: - '@babel/core': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 eslint: 9.39.1 hermes-parser: 0.25.1 zod: 4.1.12 @@ -16518,17 +15815,17 @@ snapshots: array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.3.3 + es-iterator-helpers: 1.2.1 eslint: 9.39.1 estraverse: 5.3.0 - hasown: 2.0.4 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.5 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 - resolve: 2.0.0-next.7 + resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 @@ -16540,7 +15837,7 @@ snapshots: eslint-plugin-unicorn@64.0.0(eslint@9.39.1): dependencies: - '@babel/helper-validator-identifier': 7.29.7 + '@babel/helper-validator-identifier': 7.28.5 '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) change-case: 5.4.4 ci-info: 4.4.0 @@ -16554,8 +15851,8 @@ snapshots: jsesc: 3.1.0 pluralize: 8.0.0 regexp-tree: 0.1.27 - regjsparser: 0.13.1 - semver: 7.8.4 + regjsparser: 0.13.0 + semver: 7.7.4 strip-indent: 4.1.1 eslint-scope@5.1.1: @@ -16614,7 +15911,7 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.5 natural-compare: 1.4.0 - optionator: 0.9.4 + optionator: 0.9.3 transitivePeerDependencies: - supports-color @@ -16632,11 +15929,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.11(@typescript-eslint/types@8.61.0): + esrap@2.2.11(@typescript-eslint/types@8.59.2): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/types': 8.59.2 esrecurse@4.3.0: dependencies: @@ -16753,7 +16050,7 @@ snapshots: dependencies: accepts: 2.0.0 body-parser: 2.2.2 - content-disposition: 1.1.0 + content-disposition: 1.0.1 content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 @@ -16771,13 +16068,13 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.15.2 + qs: 6.14.1 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 serve-static: 2.2.1 statuses: 2.0.2 - type-is: 2.1.0 + type-is: 2.0.1 vary: 1.1.2 transitivePeerDependencies: - supports-color @@ -16828,20 +16125,20 @@ snapshots: fast-xml-parser@5.7.3: dependencies: - '@nodable/entities': 2.1.1 + '@nodable/entities': 2.1.0 fast-xml-builder: 1.2.0 path-expression-matcher: 1.5.0 - strnum: 2.4.0 + strnum: 2.3.0 fastest-levenshtein@1.0.16: {} - fastq@1.20.1: + fastq@1.15.0: dependencies: - reusify: 1.1.0 + reusify: 1.0.4 faye-websocket@0.11.4: dependencies: - websocket-driver: 0.7.5 + websocket-driver: 0.7.4 fb-watchman@2.0.2: dependencies: @@ -16864,7 +16161,7 @@ snapshots: file-entry-cache@11.1.2: dependencies: - flat-cache: 6.1.22 + flat-cache: 6.1.21 file-entry-cache@8.0.0: dependencies: @@ -16952,9 +16249,9 @@ snapshots: flatted: 3.4.2 keyv: 4.5.4 - flat-cache@6.1.22: + flat-cache@6.1.21: dependencies: - cacheable: 2.3.5 + cacheable: 2.3.4 flatted: 3.4.2 hookified: 1.15.1 @@ -16970,7 +16267,7 @@ snapshots: fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.104.1): dependencies: - '@babel/code-frame': 7.29.7 + '@babel/code-frame': 7.29.0 chalk: 4.1.2 chokidar: 4.0.3 cosmiconfig: 8.3.6(typescript@5.9.3) @@ -16981,18 +16278,18 @@ snapshots: node-abort-controller: 3.1.1 schema-utils: 3.3.0 semver: 7.5.4 - tapable: 2.3.3 + tapable: 2.3.0 typescript: 5.9.3 webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) form-data-encoder@4.1.0: {} - form-data@4.0.5: + form-data@4.0.4: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.4 + hasown: 2.0.2 mime-types: 2.1.35 formdata-polyfill@4.0.10: @@ -17008,7 +16305,7 @@ snapshots: fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.2.1 + jsonfile: 6.2.0 universalify: 2.0.1 fs-extra@8.1.0: @@ -17033,11 +16330,11 @@ snapshots: function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 - hasown: 2.0.4 + hasown: 2.0.3 is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -17055,12 +16352,12 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.4 + hasown: 2.0.2 math-intrinsics: 1.1.0 get-package-type@0.1.0: {} @@ -17068,12 +16365,17 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 get-stream@6.0.1: {} get-stream@8.0.1: {} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -17084,10 +16386,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-tsconfig@4.14.0: - dependencies: - resolve-pkg-maps: 1.0.0 - git-up@8.1.1: dependencies: is-ssh: 1.4.1 @@ -17107,9 +16405,9 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regex.js@1.2.0(tslib@2.6.2): + glob-to-regex.js@1.2.0(tslib@2.8.1): dependencies: - tslib: 2.6.2 + tslib: 2.8.1 glob-to-regexp@0.4.1: {} @@ -17215,10 +16513,25 @@ snapshots: dependencies: hookified: 1.15.1 - hasown@2.0.4: + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hasown@2.0.3: dependencies: function-bind: 1.1.2 + hast-util-from-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.4.0 + vfile: 6.0.3 + vfile-location: 5.0.2 + web-namespaces: 2.0.1 + hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -17227,21 +16540,52 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-to-html@9.0.5: + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-html@9.0.0: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 + hast-util-raw: 9.0.2 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - property-information: 7.2.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.4.0 space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 + web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-string@3.0.1: + hast-util-to-string@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -17249,6 +16593,14 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + he@1.2.0: {} hermes-estree@0.25.1: {} @@ -17263,7 +16615,7 @@ snapshots: hookified@1.15.1: {} - hookified@2.2.0: {} + hookified@2.1.0: {} hosted-git-info@2.8.9: {} @@ -17288,7 +16640,7 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' - html-entities@2.6.0: {} + html-entities@2.4.0: {} html-escaper@2.0.2: {} @@ -17300,7 +16652,7 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.48.0 + terser: 5.46.0 html-minifier-terser@7.2.0: dependencies: @@ -17310,7 +16662,7 @@ snapshots: entities: 4.5.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.48.0 + terser: 5.46.0 html-tags@3.3.1: {} @@ -17324,13 +16676,13 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.7(webpack@5.104.1): + html-webpack-plugin@5.6.6(webpack@5.104.1): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.18.1 pretty-error: 4.0.0 - tapable: 2.3.3 + tapable: 2.3.0 optionalDependencies: webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) @@ -17432,9 +16784,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.15): + icss-utils@5.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.15 + postcss: 8.5.6 ieee754@1.2.1: {} @@ -17476,8 +16828,8 @@ snapshots: internal-slot@1.1.0: dependencies: es-errors: 1.3.0 - hasown: 2.0.4 - side-channel: 1.1.1 + hasown: 2.0.2 + side-channel: 1.1.0 interpret@3.1.1: {} @@ -17487,7 +16839,7 @@ snapshots: is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 get-intrinsic: 1.3.0 @@ -17524,9 +16876,13 @@ snapshots: is-callable@1.2.7: {} + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + is-core-module@2.16.2: dependencies: - hasown: 2.0.4 + hasown: 2.0.3 is-data-view@1.0.2: dependencies: @@ -17619,7 +16975,7 @@ snapshots: call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 - hasown: 2.0.4 + hasown: 2.0.2 is-set@2.0.3: {} @@ -17635,6 +16991,8 @@ snapshots: is-stream@3.0.0: {} + is-stream@4.0.1: {} + is-string@1.1.1: dependencies: call-bound: 1.0.4 @@ -17648,7 +17006,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.22 + which-typed-array: 1.1.19 is-unicode-supported@2.1.0: {} @@ -17683,19 +17041,19 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.29.7 - '@babel/parser': 7.29.7 - '@istanbuljs/schema': 0.1.6 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color - istanbul-lib-instrument@6.0.3: + istanbul-lib-instrument@6.0.1: dependencies: - '@babel/core': 7.29.7 - '@babel/parser': 7.29.7 - '@istanbuljs/schema': 0.1.6 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.0 + '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.5.4 transitivePeerDependencies: @@ -17715,7 +17073,7 @@ snapshots: transitivePeerDependencies: - supports-color - istanbul-reports@3.2.0: + istanbul-reports@3.1.6: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -17723,7 +17081,7 @@ snapshots: iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 @@ -17744,7 +17102,7 @@ snapshots: '@types/node': 24.12.4 chalk: 4.1.2 co: 4.6.0 - dedent: 1.7.2(babel-plugin-macros@3.1.0) + dedent: 1.6.0(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -17754,7 +17112,7 @@ snapshots: jest-util: 29.7.0 p-limit: 3.1.0 pretty-format: 29.7.0 - pure-rand: 6.1.0 + pure-rand: 6.0.4 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: @@ -17782,10 +17140,10 @@ snapshots: jest-config@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.29.7) + babel-jest: 29.7.0(@babel/core@7.29.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -17886,7 +17244,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.29.7 + '@babel/code-frame': 7.29.0 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -17908,7 +17266,7 @@ snapshots: jest-regex-util@29.6.3: {} - jest-regex-util@30.4.0: {} + jest-regex-util@30.0.1: {} jest-resolve-dependencies@29.7.0: dependencies: @@ -17926,7 +17284,7 @@ snapshots: jest-util: 29.7.0 jest-validate: 29.7.0 resolve: 1.22.12 - resolve.exports: 2.0.3 + resolve.exports: 2.0.2 slash: 3.0.0 jest-runner@29.7.0: @@ -17967,7 +17325,7 @@ snapshots: '@types/node': 24.12.4 chalk: 4.1.2 cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.3 + collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 @@ -17984,15 +17342,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.29.7 - '@babel/generator': 7.29.7 - '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) - '@babel/types': 7.29.7 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.29.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.29.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -18068,7 +17426,7 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.2.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -18083,13 +17441,13 @@ snapshots: decimal.js: 10.6.0 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.5 + form-data: 4.0.4 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.24 - parse5: 7.3.0 + nwsapi: 2.2.23 + parse5: 7.1.2 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -18149,13 +17507,13 @@ snapshots: json5@2.2.3: {} - jsonc-parser@3.3.1: {} + jsonc-parser@3.2.0: {} jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.2.1: + jsonfile@6.2.0: dependencies: universalify: 2.0.1 optionalDependencies: @@ -18186,20 +17544,20 @@ snapshots: known-css-properties@0.37.0: {} - language-subtag-registry@0.3.23: {} + language-subtag-registry@0.3.22: {} language-tags@1.0.9: dependencies: - language-subtag-registry: 0.3.23 + language-subtag-registry: 0.3.22 - launch-editor@2.14.1: + launch-editor@2.13.2: dependencies: picocolors: 1.1.1 shell-quote: 1.8.4 launder@1.7.1: dependencies: - dayjs: 1.11.21 + dayjs: 1.11.20 leven@3.1.0: {} @@ -18233,10 +17591,10 @@ snapshots: colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 6.0.0 - rfdc: 1.4.1 + rfdc: 1.3.0 wrap-ansi: 9.0.2 - loader-runner@4.3.2: {} + loader-runner@4.3.1: {} loader-utils@1.4.2: dependencies: @@ -18279,7 +17637,7 @@ snapshots: date-format: 4.0.14 debug: 4.4.3 flatted: 3.4.2 - rfdc: 1.4.1 + rfdc: 1.3.0 streamroller: 3.1.5 transitivePeerDependencies: - supports-color @@ -18336,33 +17694,33 @@ snapshots: mathml-tag-names@2.1.3: {} - mdast-util-from-markdown@2.0.3: + mdast-util-from-markdown@2.0.0: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.3.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color - mdast-util-to-hast@13.2.1: + mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.1 + '@ungap/structured-clone': 1.3.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 vfile: 6.0.3 mdast-util-to-string@4.0.0: @@ -18383,22 +17741,14 @@ snapshots: dependencies: fs-monkey: 1.1.0 - memfs@4.57.6(tslib@2.6.2): - dependencies: - '@jsonjoy.com/fs-core': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-fsa': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-to-fsa': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-print': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/fs-snapshot': 4.57.6(tslib@2.6.2) - '@jsonjoy.com/json-pack': 1.21.0(tslib@2.6.2) - '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) - glob-to-regex.js: 1.2.0(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 + memfs@4.49.0: + dependencies: + '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + glob-to-regex.js: 1.2.0(tslib@2.8.1) + thingies: 2.5.0(tslib@2.8.1) + tree-dump: 1.1.0(tslib@2.8.1) + tslib: 2.8.1 meow@13.2.0: {} @@ -18412,53 +17762,53 @@ snapshots: methods@1.1.2: {} - micromark-core-commonmark@2.0.3: + micromark-core-commonmark@2.0.0: dependencies: - decode-named-character-reference: 1.3.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-destination@2.0.1: + micromark-factory-destination@2.0.0: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-label@2.0.1: + micromark-factory-label@2.0.0: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-space@2.0.1: + micromark-factory-space@2.0.0: dependencies: micromark-util-character: 2.1.1 micromark-util-types: 2.0.2 - micromark-factory-title@2.0.1: + micromark-factory-title@2.0.0: dependencies: - micromark-factory-space: 2.0.1 + micromark-factory-space: 2.0.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-factory-whitespace@2.0.1: + micromark-factory-whitespace@2.0.0: dependencies: - micromark-factory-space: 2.0.1 + micromark-factory-space: 2.0.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -18468,41 +17818,41 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-chunked@2.0.1: + micromark-util-chunked@2.0.0: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-classify-character@2.0.1: + micromark-util-classify-character@2.0.0: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 - micromark-util-combine-extensions@2.0.1: + micromark-util-combine-extensions@2.0.0: dependencies: - micromark-util-chunked: 2.0.1 + micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.2 - micromark-util-decode-numeric-character-reference@2.0.2: + micromark-util-decode-numeric-character-reference@2.0.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-decode-string@2.0.1: + micromark-util-decode-string@2.0.0: dependencies: - decode-named-character-reference: 1.3.0 + decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-encode@2.0.1: {} - micromark-util-html-tag-name@2.0.1: {} + micromark-util-html-tag-name@2.0.0: {} - micromark-util-normalize-identifier@2.0.1: + micromark-util-normalize-identifier@2.0.0: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-resolve-all@2.0.1: + micromark-util-resolve-all@2.0.0: dependencies: micromark-util-types: 2.0.2 @@ -18512,10 +17862,10 @@ snapshots: micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@2.1.0: + micromark-util-subtokenize@2.0.0: dependencies: devlop: 1.1.0 - micromark-util-chunked: 2.0.1 + micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 @@ -18523,23 +17873,23 @@ snapshots: micromark-util-types@2.0.2: {} - micromark@4.0.2: + micromark@4.0.0: dependencies: - '@types/debug': 4.1.13 + '@types/debug': 4.1.12 debug: 4.4.3 - decode-named-character-reference: 1.3.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 + micromark-util-subtokenize: 2.0.0 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 transitivePeerDependencies: @@ -18581,9 +17931,9 @@ snapshots: minimalistic-assert@1.0.1: {} - minimatch@10.2.5: + minimatch@10.2.4: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.3 minimatch@10.2.5: dependencies: @@ -18591,7 +17941,7 @@ snapshots: minimatch@3.1.5: dependencies: - brace-expansion: 1.1.15 + brace-expansion: 1.1.12 minimatch@9.0.9: dependencies: @@ -18603,6 +17953,8 @@ snapshots: mri@1.2.0: {} + mrmime@1.0.1: {} + mrmime@2.0.1: {} ms@2.0.0: {} @@ -18623,8 +17975,6 @@ snapshots: nanoid@3.3.11: {} - nanoid@3.3.12: {} - napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -18646,13 +17996,6 @@ snapshots: node-domexception@1.0.0: {} - node-exports-info@1.6.0: - dependencies: - array.prototype.flatmap: 1.3.3 - es-errors: 1.3.0 - object.entries: 1.1.9 - semver: 6.3.1 - node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 @@ -18661,7 +18004,9 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.47: {} + node-releases@2.0.27: {} + + node-releases@2.0.46: {} normalize-package-data@2.5.0: dependencies: @@ -18697,7 +18042,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.24: {} + nwsapi@2.2.23: {} object-assign@4.1.1: {} @@ -18709,33 +18054,33 @@ snapshots: object.assign@4.1.7: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 object.entries@1.1.9: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 - es-object-atoms: 1.1.2 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 object.values@1.2.1: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 objectorarray@1.0.5: {} @@ -18772,14 +18117,14 @@ snapshots: opener@1.5.2: {} - optionator@0.9.4: + optionator@0.9.3: dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.5 own-keys@1.0.1: dependencies: @@ -18791,7 +18136,7 @@ snapshots: p-event@6.0.1: dependencies: - p-timeout: 6.1.4 + p-timeout: 6.1.2 p-filter@3.0.0: dependencies: @@ -18825,14 +18170,14 @@ snapshots: is-network-error: 1.3.2 retry: 0.13.1 - p-timeout@6.1.4: {} + p-timeout@6.1.2: {} p-try@2.2.0: {} param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.8.1 parent-module@1.0.1: dependencies: @@ -18840,14 +18185,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.29.7 + '@babel/code-frame': 7.29.0 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.29.7 + '@babel/code-frame': 7.29.0 index-to-position: 1.2.0 type-fest: 4.41.0 @@ -18864,9 +18209,9 @@ snapshots: '@types/parse-path': 7.1.0 parse-path: 7.1.0 - parse5@7.3.0: + parse5@7.1.2: dependencies: - entities: 6.0.1 + entities: 4.5.0 parse5@8.0.1: dependencies: @@ -18897,7 +18242,7 @@ snapshots: path-to-regexp@0.1.13: {} - path-to-regexp@8.4.2: {} + path-to-regexp@8.4.1: {} path-type@4.0.0: {} @@ -18915,7 +18260,7 @@ snapshots: pidtree@0.6.0: {} - pirates@4.0.7: {} + pirates@4.0.6: {} piscina@4.9.2: optionalDependencies: @@ -18946,48 +18291,53 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.15): + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.15 + postcss: 8.5.6 - postcss-modules-local-by-default@4.2.0(postcss@8.5.15): + postcss-modules-local-by-default@4.0.5(postcss@8.5.6): dependencies: - icss-utils: 5.1.0(postcss@8.5.15) - postcss: 8.5.15 - postcss-selector-parser: 7.1.2 + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.15): + postcss-modules-scope@3.2.0(postcss@8.5.6): dependencies: - postcss: 8.5.15 - postcss-selector-parser: 7.1.2 + postcss: 8.5.6 + postcss-selector-parser: 6.1.2 - postcss-modules-values@4.0.0(postcss@8.5.15): + postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: - icss-utils: 5.1.0(postcss@8.5.15) - postcss: 8.5.15 + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.5.15): + postcss-safe-parser@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.15 + postcss: 8.5.6 - postcss-selector-parser@7.1.2: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-styled-syntax@0.7.1(postcss@8.5.15): + postcss-selector-parser@7.1.1: dependencies: - postcss: 8.5.15 + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-styled-syntax@0.7.1(postcss@8.5.9): + dependencies: + postcss: 8.5.9 typescript: 5.9.3 postcss-value-parser@4.2.0: {} - postcss@8.5.15: + postcss@8.5.6: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -19048,7 +18398,7 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@7.2.0: {} + property-information@6.4.0: {} protocols@2.0.2: {} @@ -19057,15 +18407,13 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - psl@1.15.0: - dependencies: - punycode: 2.3.1 + psl@1.9.0: {} punycode@1.4.1: {} punycode@2.3.1: {} - pure-rand@6.1.0: {} + pure-rand@6.0.4: {} pvtsutils@1.3.6: dependencies: @@ -19073,17 +18421,17 @@ snapshots: pvutils@1.1.5: {} - qified@0.10.1: + qified@0.9.0: dependencies: - hookified: 2.2.0 + hookified: 2.1.0 - qs@6.14.2: + qs@6.14.1: dependencies: - side-channel: 1.1.1 + side-channel: 1.1.0 qs@6.15.2: dependencies: - side-channel: 1.1.1 + side-channel: 1.1.0 querystringify@2.2.0: {} @@ -19119,9 +18467,9 @@ snapshots: react-docgen@7.1.1: dependencies: - '@babel/core': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/core': 7.29.0 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 @@ -19132,11 +18480,11 @@ snapshots: transitivePeerDependencies: - supports-color - react-docgen@8.0.3: + react-docgen@8.0.2: dependencies: - '@babel/core': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/core': 7.29.0 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 @@ -19173,7 +18521,7 @@ snapshots: dependencies: find-up-simple: 1.0.1 read-pkg: 10.1.0 - type-fest: 5.7.0 + type-fest: 5.6.0 read-pkg-up@7.0.1: dependencies: @@ -19186,7 +18534,7 @@ snapshots: '@types/normalize-package-data': 2.4.4 normalize-package-data: 8.0.0 parse-json: 8.3.0 - type-fest: 5.7.0 + type-fest: 5.6.0 unicorn-magic: 0.4.0 read-pkg@5.2.0: @@ -19231,7 +18579,7 @@ snapshots: esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 - tslib: 2.6.2 + tslib: 2.8.1 rechoir@0.8.0: dependencies: @@ -19246,11 +18594,11 @@ snapshots: reflect.getprototypeof@1.0.10: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -19265,7 +18613,7 @@ snapshots: regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 get-proto: 1.0.1 @@ -19277,37 +18625,37 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.13.1 + regjsparser: 0.13.0 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 regjsgen@0.8.0: {} - regjsparser@0.13.1: + regjsparser@0.13.0: dependencies: jsesc: 3.1.0 rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.1 + '@ungap/structured-clone': 1.3.0 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 rehype-slug@6.0.0: dependencies: '@types/hast': 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.1 - unist-util-visit: 5.1.0 + hast-util-to-string: 3.0.0 + unist-util-visit: 5.0.0 rehype-stringify@10.0.1: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 + hast-util-to-html: 9.0.0 unified: 11.0.5 relateurl@0.2.7: {} @@ -19315,7 +18663,7 @@ snapshots: remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.0 micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -19325,7 +18673,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.1 + mdast-util-to-hast: 13.2.0 unified: 11.0.5 vfile: 6.0.3 @@ -19355,7 +18703,7 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve.exports@2.0.3: {} + resolve.exports@2.0.2: {} resolve@1.22.12: dependencies: @@ -19364,12 +18712,9 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.7: + resolve@2.0.0-next.5: dependencies: - es-errors: 1.3.0 - is-core-module: 2.16.2 - node-exports-info: 1.6.0 - object-keys: 1.1.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -19384,9 +18729,9 @@ snapshots: retry@0.13.1: {} - reusify@1.1.0: {} + reusify@1.0.4: {} - rfdc@1.4.1: {} + rfdc@1.3.0: {} rimraf@3.0.2: dependencies: @@ -19471,7 +18816,7 @@ snapshots: depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 - path-to-regexp: 8.4.2 + path-to-regexp: 8.4.1 transitivePeerDependencies: - supports-color @@ -19485,9 +18830,9 @@ snapshots: dependencies: mri: 1.2.0 - safe-array-concat@1.1.4: + safe-array-concat@1.1.3: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 get-intrinsic: 1.3.0 has-symbols: 1.1.0 @@ -19508,7 +18853,7 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safe-stable-stringify@2.5.0: {} + safe-stable-stringify@2.4.3: {} safer-buffer@2.1.2: {} @@ -19520,7 +18865,7 @@ snapshots: is-plain-object: 5.0.0 launder: 1.7.1 parse-srcset: 1.0.2 - postcss: 8.5.15 + postcss: 8.5.9 sax@1.6.0: {} @@ -19572,7 +18917,9 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.8.4: {} + semver@7.7.4: {} + + semver@7.8.1: {} semver@7.8.4: {} @@ -19662,7 +19009,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 setprototypeof@1.2.0: {} @@ -19678,7 +19025,7 @@ snapshots: shell-quote@1.8.4: {} - side-channel-list@1.0.1: + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -19698,11 +19045,11 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.1: + side-channel@1.1.0: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.1 + side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -19710,10 +19057,10 @@ snapshots: signal-exit@4.1.0: {} - sirv@2.0.4: + sirv@2.0.3: dependencies: '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 + mrmime: 1.0.1 totalist: 3.0.1 sirv@3.0.2: @@ -19747,13 +19094,13 @@ snapshots: snake-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.8.1 sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 - websocket-driver: 0.7.5 + websocket-driver: 0.7.4 sort-keys-length@1.0.1: dependencies: @@ -19838,17 +19185,17 @@ snapshots: storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@storybook/global': 5.0.0 - '@storybook/icons': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 - esbuild: 0.27.7 + esbuild: 0.27.3 open: 10.2.0 recast: 0.23.11 - semver: 7.8.4 + semver: 7.7.4 use-sync-external-store: 1.6.0(react@18.3.1) - ws: 8.21.0 + ws: 8.19.0 optionalDependencies: prettier: 3.8.3 transitivePeerDependencies: @@ -19896,54 +19243,53 @@ snapshots: string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 string.prototype.matchall@4.0.12: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.1.1 + side-channel: 1.1.0 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.2 + es-abstract: 1.24.0 - string.prototype.trim@1.2.11: + string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.2 - es-object-atoms: 1.1.2 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 - safe-regex-test: 1.1.0 - string.prototype.trimend@1.0.10: + string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.1.2 + es-object-atoms: 1.1.1 string_decoder@0.10.31: {} @@ -19955,7 +19301,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - stringify-entities@4.0.4: + stringify-entities@4.0.3: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 @@ -19993,9 +19339,7 @@ snapshots: strnum@2.2.1: {} - strnum@2.4.0: - dependencies: - anynum: 1.0.0 + strnum@2.3.0: {} strtok3@10.3.5: dependencies: @@ -20012,20 +19356,20 @@ snapshots: stylelint@16.26.1(typescript@5.9.3): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-syntax-patches-for-csstree': 1.1.5(css-tree@3.2.1) + '@csstools/css-syntax-patches-for-csstree': 1.1.1(css-tree@3.2.1) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.2) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.2(typescript@5.9.3) + cosmiconfig: 9.0.0(typescript@5.9.3) css-functions-list: 3.3.3 css-tree: 3.2.1 debug: 4.4.3 fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 11.1.3 + file-entry-cache: 11.1.2 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -20039,10 +19383,10 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.15 + postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.15) - postcss-selector-parser: 7.1.2 + postcss-safe-parser: 7.0.1(postcss@8.5.6) + postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 @@ -20083,7 +19427,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@5.9.3): + svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 '@sveltejs/load-config': 0.1.1 @@ -20091,12 +19435,12 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.56.3(@typescript-eslint/types@8.61.0) + svelte: 5.56.3(@typescript-eslint/types@8.59.2) typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte@5.56.3(@typescript-eslint/types@8.61.0): + svelte@5.56.3(@typescript-eslint/types@8.59.2): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -20109,7 +19453,7 @@ snapshots: clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.11(@typescript-eslint/types@8.61.0) + esrap: 2.2.11(@typescript-eslint/types@8.59.2) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -20124,7 +19468,7 @@ snapshots: svgo@3.3.3: dependencies: commander: 7.2.0 - css-select: 5.2.2 + css-select: 5.1.0 css-tree: 2.3.1 css-what: 6.2.2 csso: 5.0.5 @@ -20143,9 +19487,9 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.11.13: + synckit@0.11.12: dependencies: - '@pkgr/core': 0.3.6 + '@pkgr/core': 0.2.9 system-architecture@1.0.0: {} @@ -20159,9 +19503,9 @@ snapshots: tagged-tag@1.0.0: {} - tapable@2.3.3: {} + tapable@2.3.0: {} - tar-stream@3.2.0: + tar-stream@3.1.7: dependencies: b4a: 1.8.1 fast-fifo: 1.3.2 @@ -20181,7 +19525,7 @@ snapshots: '@swc/core': 1.15.41 esbuild: 0.27.3 - terser@5.48.0: + terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 @@ -20190,7 +19534,7 @@ snapshots: test-exclude@6.0.0: dependencies: - '@istanbuljs/schema': 0.1.6 + '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.5 @@ -20200,9 +19544,9 @@ snapshots: transitivePeerDependencies: - react-native-b4a - thingies@2.6.0(tslib@2.6.2): + thingies@2.5.0(tslib@2.8.1): dependencies: - tslib: 2.6.2 + tslib: 2.8.1 through2@0.4.2: dependencies: @@ -20261,7 +19605,7 @@ snapshots: tough-cookie@4.1.4: dependencies: - psl: 1.15.0 + psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 @@ -20280,13 +19624,13 @@ snapshots: traverse-chain@0.1.0: {} - tree-dump@1.1.0(tslib@2.6.2): + tree-dump@1.1.0(tslib@2.8.1): dependencies: - tslib: 2.6.2 + tslib: 2.8.1 trim-lines@3.0.1: {} - trough@2.2.0: {} + trough@2.1.0: {} trusted-types@2.0.0: {} @@ -20294,21 +19638,21 @@ snapshots: dependencies: typescript: 5.9.3 - ts-dedent@2.3.0: {} + ts-dedent@2.2.0: {} ts-node@10.9.2(@swc/core@1.15.41)(@types/node@16.18.68)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 + '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 16.18.126 + '@types/node': 16.18.68 acorn: 8.16.0 - acorn-walk: 8.3.5 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.4 + diff: 4.0.2 make-error: 1.3.6 typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 @@ -20319,16 +19663,16 @@ snapshots: ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 + '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 24.12.4 acorn: 8.16.0 - acorn-walk: 8.3.5 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.4 + diff: 4.0.2 make-error: 1.3.6 typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 @@ -20365,7 +19709,7 @@ snapshots: tsx@4.6.2: dependencies: esbuild: 0.18.20 - get-tsconfig: 4.14.0 + get-tsconfig: 4.13.0 optionalDependencies: fsevents: 2.3.3 @@ -20391,7 +19735,7 @@ snapshots: type-fest@4.41.0: {} - type-fest@5.7.0: + type-fest@5.6.0: dependencies: tagged-tag: 1.0.0 @@ -20400,9 +19744,9 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - type-is@2.1.0: + type-is@2.0.1: dependencies: - content-type: 2.0.0 + content-type: 1.0.5 media-typer: 1.1.0 mime-types: 3.0.2 @@ -20414,7 +19758,7 @@ snapshots: typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 @@ -20423,16 +19767,16 @@ snapshots: typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.9 + call-bind: 1.0.8 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.8: + typed-array-length@1.0.7: dependencies: - call-bind: 1.0.9 + call-bind: 1.0.8 for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 @@ -20453,7 +19797,7 @@ snapshots: typescript-json-schema@0.64.0(@swc/core@1.15.41): dependencies: '@types/json-schema': 7.0.15 - '@types/node': 16.18.126 + '@types/node': 16.18.68 glob: 7.2.3 path-equal: 1.2.5 safe-stable-stringify: 2.4.3 @@ -20508,10 +19852,10 @@ snapshots: devlop: 1.1.0 extend: 3.0.2 is-plain-obj: 4.1.0 - trough: 2.2.0 + trough: 2.1.0 vfile: 6.0.3 - unist-util-is@6.0.1: + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 @@ -20523,16 +19867,16 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@6.0.2: + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.1 + unist-util-is: 6.0.0 - unist-util-visit@5.1.0: + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.1 - unist-util-visit-parents: 6.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 universalify@0.1.2: {} @@ -20554,32 +19898,29 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.12.2: + unrs-resolver@1.11.1: dependencies: napi-postinstall: 0.3.4 optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.12.2 - '@unrs/resolver-binding-android-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-x64': 1.12.2 - '@unrs/resolver-binding-freebsd-x64': 1.12.2 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 - '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 - '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-musl': 1.12.2 - '@unrs/resolver-binding-openharmony-arm64': 1.12.2 - '@unrs/resolver-binding-wasm32-wasi': 1.12.2 - '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 - '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 - '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 update-browserslist-db@1.2.3(browserslist@4.24.4): dependencies: @@ -20587,6 +19928,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.1): + dependencies: + browserslist: 4.28.1 + escalade: 3.2.0 + picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: browserslist: 4.28.2 @@ -20605,7 +19952,7 @@ snapshots: url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.15.2 + qs: 6.14.1 use-local-storage-state@19.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -20626,7 +19973,7 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.3.0: + v8-to-istanbul@9.2.0: dependencies: '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 @@ -20641,7 +19988,12 @@ snapshots: vary@1.1.2: {} - vfile-message@4.0.3: + vfile-location@5.0.2: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 @@ -20649,9 +20001,9 @@ snapshots: vfile@6.0.3: dependencies: '@types/unist': 3.0.3 - vfile-message: 4.0.3 + vfile-message: 4.0.2 - vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2): + vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.4) @@ -20662,12 +20014,12 @@ snapshots: optionalDependencies: '@types/node': 24.12.4 fsevents: 2.3.3 - terser: 5.48.0 + terser: 5.46.0 tsx: 4.6.2 - vitefu@1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.48.0)): + vitefu@1.1.3(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)): optionalDependencies: - vite: 6.4.2(@types/node@24.12.4)(terser@5.48.0)(tsx@4.6.2) + vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) w3c-xmlserializer@4.0.0: dependencies: @@ -20690,6 +20042,8 @@ snapshots: dependencies: minimalistic-assert: 1.0.1 + web-namespaces@2.0.1: {} + web-streams-polyfill@3.3.3: {} web-vitals@4.2.3: {} @@ -20712,7 +20066,7 @@ snapshots: dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.16.0 - acorn-walk: 8.3.5 + acorn-walk: 8.3.1 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 @@ -20720,8 +20074,8 @@ snapshots: html-escaper: 2.0.2 opener: 1.5.2 picocolors: 1.1.1 - sirv: 2.0.4 - ws: 7.5.11 + sirv: 2.0.3 + ws: 7.5.10 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -20735,7 +20089,7 @@ snapshots: colorette: 2.0.20 commander: 12.1.0 cross-spawn: 7.0.6 - envinfo: 7.21.0 + envinfo: 7.14.0 fastest-levenshtein: 1.0.16 import-local: 3.2.0 interpret: 3.1.1 @@ -20744,7 +20098,7 @@ snapshots: webpack-merge: 6.0.1 optionalDependencies: webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1) + webpack-dev-server: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) webpack-dev-middleware@6.1.3(webpack@5.104.1): dependencies: @@ -20756,10 +20110,10 @@ snapshots: optionalDependencies: webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) - webpack-dev-middleware@7.4.5(tslib@2.6.2)(webpack@5.104.1): + webpack-dev-middleware@7.4.5(webpack@5.104.1): dependencies: colorette: 2.0.20 - memfs: 4.57.6(tslib@2.6.2) + memfs: 4.49.0 mime-types: 3.0.2 on-finished: 2.4.1 range-parser: 1.2.1 @@ -20767,7 +20121,7 @@ snapshots: optionalDependencies: webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) - webpack-dev-server@5.2.4(tslib@2.6.2)(webpack-cli@6.0.1)(webpack@5.104.1): + webpack-dev-server@5.2.4(webpack-cli@6.0.1)(webpack@5.104.1): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -20778,7 +20132,7 @@ snapshots: '@types/sockjs': 0.3.36 '@types/ws': 8.18.1 ansi-html-community: 0.0.8 - bonjour-service: 1.4.1 + bonjour-service: 1.4.0 chokidar: 3.6.0 colorette: 2.0.20 compression: 1.8.1 @@ -20787,7 +20141,7 @@ snapshots: graceful-fs: 4.2.11 http-proxy-middleware: 2.0.9(@types/express@4.17.25) ipaddr.js: 2.4.0 - launch-editor: 2.14.1 + launch-editor: 2.13.2 open: 10.2.0 p-retry: 6.2.1 schema-utils: 4.3.3 @@ -20795,7 +20149,7 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.6.2)(webpack@5.104.1) + webpack-dev-middleware: 7.4.5(webpack@5.104.1) ws: 8.21.0 optionalDependencies: webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) @@ -20804,7 +20158,6 @@ snapshots: - bufferutil - debug - supports-color - - tslib - utf-8-validate webpack-format-messages@2.0.6: @@ -20814,7 +20167,7 @@ snapshots: webpack-hot-middleware@2.26.1: dependencies: ansi-html-community: 0.0.8 - html-entities: 2.6.0 + html-entities: 2.4.0 strip-ansi: 6.0.1 webpack-hot-server-middleware@0.6.1(webpack@5.104.1): @@ -20853,23 +20206,23 @@ snapshots: webpack@5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.9 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.16.0 acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.2 + browserslist: 4.28.1 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.23.0 - es-module-lexer: 2.1.0 + enhanced-resolve: 5.19.0 + es-module-lexer: 2.0.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.2 + loader-runner: 4.3.1 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.3 @@ -20880,20 +20233,11 @@ snapshots: optionalDependencies: webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) transitivePeerDependencies: - - '@minify-html/node' - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss - uglify-js - websocket-driver@0.7.5: + websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.10 safe-buffer: 5.2.1 @@ -20944,7 +20288,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.22 + which-typed-array: 1.1.19 which-collection@1.0.2: dependencies: @@ -20953,10 +20297,10 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.22: + which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.9 + call-bind: 1.0.8 call-bound: 1.0.4 for-each: 0.3.5 get-proto: 1.0.1 @@ -20973,8 +20317,6 @@ snapshots: wildcard@2.0.1: {} - word-wrap@1.2.5: {} - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -20999,7 +20341,9 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@7.5.11: {} + ws@7.5.10: {} + + ws@8.19.0: {} ws@8.21.0: {} @@ -21025,7 +20369,7 @@ snapshots: yallist@4.0.0: {} - yaml@1.10.3: {} + yaml@1.10.2: {} yaml@2.3.4: {} From 71b31e4e1af9b601a886ff96636511470a39daae Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Fri, 12 Jun 2026 16:34:14 +0100 Subject: [PATCH 120/293] Update frontend cricket match data type to make it in sync with frontend --- dotcom-rendering/fixtures/generated/cricket-match.ts | 3 ++- dotcom-rendering/scripts/test-data/gen-fixtures.js | 2 +- dotcom-rendering/src/cricketMatch.ts | 2 +- dotcom-rendering/src/cricketMatchV2.ts | 2 +- dotcom-rendering/src/frontend/feCricketMatchPage.ts | 1 + .../src/frontend/schemas/feCricketMatchPage.json | 8 ++++++-- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/dotcom-rendering/fixtures/generated/cricket-match.ts b/dotcom-rendering/fixtures/generated/cricket-match.ts index fd8fe6ce83f..8a01a1c67e4 100644 --- a/dotcom-rendering/fixtures/generated/cricket-match.ts +++ b/dotcom-rendering/fixtures/generated/cricket-match.ts @@ -1017,7 +1017,8 @@ export const cricketMatchData: FECricketMatchPage = { extras: 13, }, ], - competitionName: 'First Test Match', + competitionName: 'Test Match Series', + stage: 'First Test Match', venueName: "Lord's", result: 'result', currentDay: 4, diff --git a/dotcom-rendering/scripts/test-data/gen-fixtures.js b/dotcom-rendering/scripts/test-data/gen-fixtures.js index 234fc44b151..095f6d55a1a 100644 --- a/dotcom-rendering/scripts/test-data/gen-fixtures.js +++ b/dotcom-rendering/scripts/test-data/gen-fixtures.js @@ -368,7 +368,7 @@ requests.push( requests.push( // This match data will expire after two months, find a new match if this needs updating fetch( - 'https://www.theguardian.com/sport/cricket/match/2025-08-04/england-cricket-team.json?dcr', + 'https://www.theguardian.com/sport/cricket/match/2026-06-04/england-cricket-team.json?dcr', ) .then((res) => res.json()) .then((json) => { diff --git a/dotcom-rendering/src/cricketMatch.ts b/dotcom-rendering/src/cricketMatch.ts index 8ea4231db7e..e9868666c07 100644 --- a/dotcom-rendering/src/cricketMatch.ts +++ b/dotcom-rendering/src/cricketMatch.ts @@ -138,7 +138,7 @@ export const parse = ( awayTeam, officials: feCricketMatch.officials, innings, - competitionName: feCricketMatch.competitionName, + competitionName: feCricketMatch.stage, venueName: feCricketMatch.venueName, result: feCricketMatch.result, }); diff --git a/dotcom-rendering/src/cricketMatchV2.ts b/dotcom-rendering/src/cricketMatchV2.ts index 14f853411b5..4e3844e1410 100644 --- a/dotcom-rendering/src/cricketMatchV2.ts +++ b/dotcom-rendering/src/cricketMatchV2.ts @@ -325,7 +325,7 @@ export const parseCricketMatchV2 = ( parseCricketResult(feMatch.fullResult).map( (parsedResult): CricketMatch => ({ kind: matchKind, - series: feMatch.competitionName, // TODO: this will be stage after frontend changes are complete + series: feMatch.stage, competition: feMatch.competitionName, venue: feMatch.venueName, matchDate: parsedDate.value, diff --git a/dotcom-rendering/src/frontend/feCricketMatchPage.ts b/dotcom-rendering/src/frontend/feCricketMatchPage.ts index 23a3202ba05..740a0bc719e 100644 --- a/dotcom-rendering/src/frontend/feCricketMatchPage.ts +++ b/dotcom-rendering/src/frontend/feCricketMatchPage.ts @@ -87,6 +87,7 @@ export type FECricketMatchResult = Output; export const feCricketMatchSchema = object({ teams: array(feCricketTeamSchema), innings: array(feCricketInningsSchema), + stage: string(), competitionName: string(), venueName: string(), result: string(), diff --git a/dotcom-rendering/src/frontend/schemas/feCricketMatchPage.json b/dotcom-rendering/src/frontend/schemas/feCricketMatchPage.json index cbe53243053..a56ab5a3aa4 100644 --- a/dotcom-rendering/src/frontend/schemas/feCricketMatchPage.json +++ b/dotcom-rendering/src/frontend/schemas/feCricketMatchPage.json @@ -2,7 +2,7 @@ "type": "object", "properties": { "cricketMatch": { - "$ref": "#/definitions/{teams:{name:string;id:string;home:boolean;lineup:string[];teamTagId?:string;}[];innings:{order:number;overs:string;wickets:number;battingTeam:string;runsScored:number;declared:boolean;forfeited:boolean;description:string;batters:{name:string;order:number;ballsFaced:number;runs:number;fours:number;sixes:number;out:boolean;howOut:string;onStrike:boolean;nonStrike:boolean;}[];bowlers:{name:string;order:number;runs:number;overs:number;maidens:number;wickets:number;balls:number;}[];fallOfWicket:{name:string;order:number;runs:number;}[];byes:number;legByes:number;noBalls:number;penalties:number;wides:number;extras:number;}[];competitionName:string;venueName:string;result:string;currentDay:number;totalDays:number;gameDate:string;officials:string[];matchId:string;fullResult?:{resultType:string;description?:string;winner?:{winType:string;team:string;margin?:string;};};}" + "$ref": "#/definitions/{stage:string;teams:{name:string;id:string;home:boolean;lineup:string[];teamTagId?:string;}[];innings:{order:number;overs:string;wickets:number;battingTeam:string;runsScored:number;declared:boolean;forfeited:boolean;description:string;batters:{name:string;order:number;ballsFaced:number;runs:number;fours:number;sixes:number;out:boolean;howOut:string;onStrike:boolean;nonStrike:boolean;}[];bowlers:{name:string;order:number;runs:number;overs:number;maidens:number;wickets:number;balls:number;}[];fallOfWicket:{name:string;order:number;runs:number;}[];byes:number;legByes:number;noBalls:number;penalties:number;wides:number;extras:number;}[];competitionName:string;venueName:string;result:string;currentDay:number;totalDays:number;gameDate:string;officials:string[];matchId:string;fullResult?:{resultType:string;description?:string;winner?:{winType:string;team:string;margin?:string;};};}" }, "nav": { "$ref": "#/definitions/FENavType" @@ -44,9 +44,12 @@ "pageId" ], "definitions": { - "{teams:{name:string;id:string;home:boolean;lineup:string[];teamTagId?:string;}[];innings:{order:number;overs:string;wickets:number;battingTeam:string;runsScored:number;declared:boolean;forfeited:boolean;description:string;batters:{name:string;order:number;ballsFaced:number;runs:number;fours:number;sixes:number;out:boolean;howOut:string;onStrike:boolean;nonStrike:boolean;}[];bowlers:{name:string;order:number;runs:number;overs:number;maidens:number;wickets:number;balls:number;}[];fallOfWicket:{name:string;order:number;runs:number;}[];byes:number;legByes:number;noBalls:number;penalties:number;wides:number;extras:number;}[];competitionName:string;venueName:string;result:string;currentDay:number;totalDays:number;gameDate:string;officials:string[];matchId:string;fullResult?:{resultType:string;description?:string;winner?:{winType:string;team:string;margin?:string;};};}": { + "{stage:string;teams:{name:string;id:string;home:boolean;lineup:string[];teamTagId?:string;}[];innings:{order:number;overs:string;wickets:number;battingTeam:string;runsScored:number;declared:boolean;forfeited:boolean;description:string;batters:{name:string;order:number;ballsFaced:number;runs:number;fours:number;sixes:number;out:boolean;howOut:string;onStrike:boolean;nonStrike:boolean;}[];bowlers:{name:string;order:number;runs:number;overs:number;maidens:number;wickets:number;balls:number;}[];fallOfWicket:{name:string;order:number;runs:number;}[];byes:number;legByes:number;noBalls:number;penalties:number;wides:number;extras:number;}[];competitionName:string;venueName:string;result:string;currentDay:number;totalDays:number;gameDate:string;officials:string[];matchId:string;fullResult?:{resultType:string;description?:string;winner?:{winType:string;team:string;margin?:string;};};}": { "type": "object", "properties": { + "stage": { + "type": "string" + }, "teams": { "type": "array", "items": { @@ -98,6 +101,7 @@ "matchId", "officials", "result", + "stage", "teams", "totalDays", "venueName" From 670c9c1149c57af4bad13cf5c45c6f2f0ee55230 Mon Sep 17 00:00:00 2001 From: Ravi <7014230+arelra@users.noreply.github.com> Date: Tue, 16 Jun 2026 10:41:50 +0100 Subject: [PATCH 121/293] Update "Golden Boot" casing on the World Cup subnav --- dotcom-rendering/src/components/DirectoryPageNav.island.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotcom-rendering/src/components/DirectoryPageNav.island.tsx b/dotcom-rendering/src/components/DirectoryPageNav.island.tsx index 72c2e396b91..350a0c1a78f 100644 --- a/dotcom-rendering/src/components/DirectoryPageNav.island.tsx +++ b/dotcom-rendering/src/components/DirectoryPageNav.island.tsx @@ -86,7 +86,7 @@ const worldCup2026Links = [ id: 'football/ng-interactive/2026/jun/04/bracketology-predict-a-path-to-world-cup-victory', }, { - label: 'Golden boot', + label: 'Golden Boot', id: 'football/ng-interactive/2026/jun/04/golden-boot-world-cup-2026-top-goalscorers-winner', }, { From 69d5b46ace30e3339c6c5d317f0f0eb932a27fe5 Mon Sep 17 00:00:00 2001 From: Demetrios Date: Tue, 16 Jun 2026 12:41:47 +0100 Subject: [PATCH 122/293] extends intentIQ test expiry by a month --- ab-testing/config/abTests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index 0f00d2ba863..5d9ca4bdfd7 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -112,7 +112,7 @@ const ABTests: ABTest[] = [ description: "Holdback test to measure the impact of adding intentIq as an ID partner in the user module.", owners: ["commercial.dev@guardian.co.uk"], - expirationDate: "2026-06-18", + expirationDate: "2026-07-16", type: "client", status: "ON", audienceSize: 10 / 100, @@ -125,7 +125,7 @@ const ABTests: ABTest[] = [ description: "Holdback test to measure the impact of adding intentIq as an ID partner in the user module for users in the US", owners: ["commercial.dev@guardian.co.uk"], - expirationDate: "2026-06-18", + expirationDate: "2026-07-16", type: "client", status: "ON", audienceSize: 10 / 100, From 6dc91a942f7a4efa2735ecf6fcd76cb02e5ba28b Mon Sep 17 00:00:00 2001 From: George Richmond Date: Tue, 16 Jun 2026 13:24:18 +0100 Subject: [PATCH 123/293] Update newsletter signup privacy message (#16149) --- .../NewsletterPrivacyMessage.stories.tsx | 6 ++++++ .../components/NewsletterPrivacyMessage.tsx | 18 +++++++++++++----- .../NewsletterSignupCardContainer.tsx | 1 + .../components/NewsletterSignupForm.island.tsx | 4 +++- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/dotcom-rendering/src/components/NewsletterPrivacyMessage.stories.tsx b/dotcom-rendering/src/components/NewsletterPrivacyMessage.stories.tsx index 9e029d3e2f2..925c668f3a9 100644 --- a/dotcom-rendering/src/components/NewsletterPrivacyMessage.stories.tsx +++ b/dotcom-rendering/src/components/NewsletterPrivacyMessage.stories.tsx @@ -10,3 +10,9 @@ export const Default = () => { }; Default.storyName = 'Default'; + +export const SignedIn = () => { + return ; +}; + +SignedIn.storyName = 'Signed in'; diff --git a/dotcom-rendering/src/components/NewsletterPrivacyMessage.tsx b/dotcom-rendering/src/components/NewsletterPrivacyMessage.tsx index 4280c7f7df4..2cbb74260b1 100644 --- a/dotcom-rendering/src/components/NewsletterPrivacyMessage.tsx +++ b/dotcom-rendering/src/components/NewsletterPrivacyMessage.tsx @@ -6,6 +6,7 @@ import { palette as themePalette } from '../palette'; interface Props { textColor?: 'supporting' | 'regular'; cssOverrides?: ReturnType; + isSignedIn?: boolean | 'Pending'; } const GUARDIAN_HOMEPAGE = 'https://www.theguardian.com'; @@ -72,15 +73,22 @@ const textStyles = (textColor: 'supporting' | 'regular') => { export const NewsletterPrivacyMessage = ({ textColor = 'supporting', cssOverrides, + isSignedIn, }: Props) => ( Privacy Notice: Newsletters may contain information about charities, online ads, and - content funded by outside parties. If you do not have an account, we - will create a guest account for you on{' '} - theguardian.com to send - you this newsletter. You can complete full registration at any time. For - more information about how we use your data see our{' '} + content funded by outside parties.{' '} + {isSignedIn !== true && ( + <> + If you do not have an account, we will create a guest account + for you on{' '} + theguardian.com{' '} + to send you this newsletter. You can complete full registration + at any time.{' '} + + )} + For more information about how we use your data see our{' '} Privacy Policy. ); diff --git a/dotcom-rendering/src/components/NewsletterSignupCardContainer.tsx b/dotcom-rendering/src/components/NewsletterSignupCardContainer.tsx index 47f7f08b7d8..ba363e22b4d 100644 --- a/dotcom-rendering/src/components/NewsletterSignupCardContainer.tsx +++ b/dotcom-rendering/src/components/NewsletterSignupCardContainer.tsx @@ -171,6 +171,7 @@ export const NewsletterSignupCardContainer = ({ {showPrivacyMessageOutside && ( - +
    )} From e51172b0933556430aa4a5cb0e6cb4ae3f385c24 Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Wed, 17 Jun 2026 09:29:00 +0100 Subject: [PATCH 124/293] Refactor the live layout Header component to remove redundant props --- dotcom-rendering/src/layouts/LiveLayout.tsx | 76 +++++++-------------- 1 file changed, 24 insertions(+), 52 deletions(-) diff --git a/dotcom-rendering/src/layouts/LiveLayout.tsx b/dotcom-rendering/src/layouts/LiveLayout.tsx index 4973f891c81..30d666a2258 100644 --- a/dotcom-rendering/src/layouts/LiveLayout.tsx +++ b/dotcom-rendering/src/layouts/LiveLayout.tsx @@ -283,16 +283,6 @@ export const LiveLayout = (props: WebProps | AppsProps) => { const { branding } = article.commercialProperties[article.editionId]; - const ab = useAB(); - const isCricketRedesignEnabled = Boolean( - ab?.isUserInTestGroup('webx-cricket-redesign', 'enable'), - ); - - const footballMatchUrl = - article.matchType === 'FootballMatchType' - ? article.matchUrl - : undefined; - const footballMatchHeaderUrl = article.matchType === 'FootballMatchType' ? article.matchHeaderUrl @@ -303,17 +293,9 @@ export const LiveLayout = (props: WebProps | AppsProps) => { ? article.matchStatsUrl : undefined; - const footballMatchLeagueName = article.sectionLabel; - const footballMatchLeagueUrl = `${article.guardianBaseURL}/${article.sectionUrl}`; - const cricketMatchUrl = article.matchType === 'CricketMatchType' ? article.matchUrl : undefined; - const cricketMatchHeaderUrl = - article.matchType === 'CricketMatchType' - ? article.matchHeaderUrl - : undefined; - const hasKeyEvents = !!article.keyEvents.length; const renderAds = canRenderAds(article); @@ -396,16 +378,6 @@ export const LiveLayout = (props: WebProps | AppsProps) => { )}
    { id="maincontent" css={[ bodyWrapper, - !!footballMatchUrl && + !!footballMatchHeaderUrl && footballMatchBodyWrapper, ]} > @@ -1111,24 +1083,27 @@ export const LiveLayout = (props: WebProps | AppsProps) => { }; const Header = (props: { - football: { - footballMatchLeagueName: string; - footballMatchLeagueUrl: string; - footballMatchHeaderUrl?: string; - footballMatchUrl?: string; - }; - cricket: { - cricketMatchHeaderUrl?: string; - isCricketRedesignEnabled: boolean; - }; renderingTarget: RenderingTarget; format: ArticleFormat; article: ArticleDeprecated; }) => { - if ( - props.football.footballMatchUrl && - props.football.footballMatchHeaderUrl - ) { + const footballMatchLeagueName = props.article.sectionLabel; + const footballMatchLeagueUrl = `${props.article.guardianBaseURL}/${props.article.sectionUrl}`; + const footballMatchHeaderUrl = + props.article.matchType === 'FootballMatchType' + ? props.article.matchHeaderUrl + : undefined; + const cricketMatchHeaderUrl = + props.article.matchType === 'CricketMatchType' + ? props.article.matchHeaderUrl + : undefined; + + const ab = useAB(); + const isCricketRedesignEnabled = Boolean( + ab?.isUserInTestGroup('webx-cricket-redesign', 'enable'), + ); + + if (footballMatchHeaderUrl) { return ( <>
    ); diff --git a/dotcom-rendering/src/components/NewsletterSignupForm.island.stories.tsx b/dotcom-rendering/src/components/NewsletterSignupForm.island.stories.tsx index d487056118b..8822129fdc8 100644 --- a/dotcom-rendering/src/components/NewsletterSignupForm.island.stories.tsx +++ b/dotcom-rendering/src/components/NewsletterSignupForm.island.stories.tsx @@ -223,20 +223,6 @@ export const WithoutPreview = meta.story({ }, }); -/** `hidePrivacyMessage` — focused state without the privacy notice. */ -export const HidePrivacyMessage = meta.story({ - args: { ...defaultArgs, hidePrivacyMessage: true }, - beforeEach() { - mocked(useNewsletterSignupForm).mockReturnValue( - mockForm({ - isInteracted: true, - showMarketingToggle: true, - marketingOptIn: true, - }), - ); - }, -}); - /** User is already subscribed — success message shown immediately. */ export const AlreadySubscribed = meta.story({ args: { ...defaultArgs, isAlreadySubscribed: true }, diff --git a/dotcom-rendering/src/components/NewsletterSignupForm.island.test.tsx b/dotcom-rendering/src/components/NewsletterSignupForm.island.test.tsx index 5e49fb93df9..e4ed1862332 100644 --- a/dotcom-rendering/src/components/NewsletterSignupForm.island.test.tsx +++ b/dotcom-rendering/src/components/NewsletterSignupForm.island.test.tsx @@ -75,7 +75,7 @@ jest.mock('react-google-recaptcha', () => ({ ), })); -const renderForm = (hidePrivacyMessage = false) => +const renderForm = () => render( newsletterId="morning-briefing" newsletterName="Morning Briefing" frequency="every day" - hidePrivacyMessage={hidePrivacyMessage} /> , ); @@ -232,7 +231,7 @@ describe('NewsletterSignupForm', () => { it('supports tab order from email input to marketing toggle to sign up', async () => { const testUser = user.setup(); - renderForm(true); + renderForm(); await testUser.tab(); expect(screen.getByLabelText('Enter your email')).toHaveFocus(); @@ -277,7 +276,7 @@ describe('NewsletterSignupForm', () => { it('supports keyboard interaction for marketing toggle and submit button', async () => { const testUser = user.setup(); - renderForm(true); + renderForm(); await testUser.tab(); const emailInput = screen.getByLabelText('Enter your email'); @@ -395,13 +394,12 @@ describe('NewsletterSignupForm', () => { ).not.toBeInTheDocument(); }); - it('shows failure UI with retry and supports hiding the privacy message', async () => { + it('shows failure UI with retry', async () => { const testUser = user.setup(); global.fetch = jest.fn().mockResolvedValue({ ok: false } as Response); - renderForm(true); + renderForm(); - expect(screen.queryByText('Privacy Notice:')).not.toBeInTheDocument(); await typeEmailAddress(testUser); await testUser.click(screen.getByRole('button', { name: 'Sign up' })); diff --git a/dotcom-rendering/src/components/NewsletterSignupForm.island.tsx b/dotcom-rendering/src/components/NewsletterSignupForm.island.tsx index ccf1662ee66..d5518ee406d 100644 --- a/dotcom-rendering/src/components/NewsletterSignupForm.island.tsx +++ b/dotcom-rendering/src/components/NewsletterSignupForm.island.tsx @@ -32,7 +32,6 @@ type Props = { newsletterId: string; newsletterName: string; frequency: string; - hidePrivacyMessage?: boolean; previewAction?: NewsletterPreviewAction; /** When `true`, the success message is shown immediately (user is already subscribed). */ isAlreadySubscribed?: boolean; @@ -71,7 +70,6 @@ const signedOutLayoutStyles = css` const signedInLayoutStyles = css` grid-template-columns: minmax(0, 1fr); grid-template-areas: 'submit'; - padding-bottom: ${space[2]}px; `; const emailFieldStyles = css` @@ -114,9 +112,24 @@ const getToggleContainerStyles = (isFullWidth: boolean) => css` min-width: 0; `; -const privacyContainerStyles = css` - grid-column: 1 / -1; -`; +const getPrivacyContainerStyles = ( + isSignedIn: boolean | 'Pending', + isModal: boolean, +) => { + if (isSignedIn === true && !isModal) { + return css` + margin-top: ${space[5]}px; + padding-top: ${space[2]}px; + border-top: 1px solid ${palette('--card-border-supporting')}; + `; + } + return css` + margin-top: ${space[2]}px; + ${until.tablet} { + margin-top: ${space[3]}px; + } + `; +}; const successTextStyles = css` color: ${palette('--newsletter-card-description')}; @@ -276,7 +289,6 @@ const NewsletterSignupFormActive = ({ newsletterId, newsletterName, frequency, - hidePrivacyMessage = false, previewAction, abTest, isModal = false, @@ -357,30 +369,18 @@ const NewsletterSignupFormActive = ({ />
    )} - {showAdditionalFields && ( - <> - {showMarketingToggle && ( -
    -
    - -
    -
    - )} - {!hidePrivacyMessage && ( -
    - -
    - )} - + {showAdditionalFields && showMarketingToggle && ( +
    +
    + +
    +
    )}
    {isSignedIn && previewAction && ( @@ -402,6 +402,12 @@ const NewsletterSignupFormActive = ({
    + {showAdditionalFields && showForm && ( +
    + +
    + )} + {showSuccess && ( Date: Wed, 17 Jun 2026 10:53:40 +0100 Subject: [PATCH 127/293] Extend click through test by a month (#16181) --- ab-testing/config/abTests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index 5d9ca4bdfd7..9208c89d98a 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -165,7 +165,7 @@ const ABTests: ABTest[] = [ "Test impact of click to article via loop videos on fronts", owners: ["fronts.and.curation@guardian.co.uk"], status: "ON", - expirationDate: "2026-06-19", + expirationDate: "2026-07-19", type: "server", audienceSize: 0 / 100, groups: ["control", "variant"], From bace34512bed58482e6e38b4acb48e0150bd7ed1 Mon Sep 17 00:00:00 2001 From: Marjan Kalanaki <15894063+marjisound@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:14:14 +0100 Subject: [PATCH 128/293] Not render cricket redesign for apps This is because in apps we can't use the ab testing --- dotcom-rendering/src/layouts/LiveLayout.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dotcom-rendering/src/layouts/LiveLayout.tsx b/dotcom-rendering/src/layouts/LiveLayout.tsx index 30d666a2258..9546cf39489 100644 --- a/dotcom-rendering/src/layouts/LiveLayout.tsx +++ b/dotcom-rendering/src/layouts/LiveLayout.tsx @@ -1103,6 +1103,8 @@ const Header = (props: { ab?.isUserInTestGroup('webx-cricket-redesign', 'enable'), ); + const isApps = props.renderingTarget === 'Apps'; + if (footballMatchHeaderUrl) { return ( <> @@ -1128,7 +1130,7 @@ const Header = (props: { ); } - if (cricketMatchHeaderUrl && isCricketRedesignEnabled) { + if (!isApps && cricketMatchHeaderUrl && isCricketRedesignEnabled) { return ( Date: Wed, 17 Jun 2026 11:26:26 +0100 Subject: [PATCH 129/293] Bump esbuild from 0.27.0 to 0.28.1 (#16152) Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 480 ++++++++++++++++++++++---------------------- pnpm-workspace.yaml | 2 +- 2 files changed, 241 insertions(+), 241 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51aee72fe26..496c562923a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,8 +46,8 @@ catalogs: specifier: 10.6.0 version: 10.6.0 esbuild: - specifier: 0.27.0 - version: 0.27.0 + specifier: 0.28.1 + version: 0.28.1 eslint: specifier: 9.39.1 version: 9.39.1 @@ -198,13 +198,13 @@ importers: version: 24.12.4 esbuild: specifier: 'catalog:' - version: 0.27.0 + version: 0.28.1 rollup: specifier: 'catalog:' version: 4.59.0 rollup-plugin-esbuild: specifier: 'catalog:' - version: 6.2.1(esbuild@0.27.0)(rollup@4.59.0) + version: 6.2.1(esbuild@0.28.1)(rollup@4.59.0) type-fest: specifier: 'catalog:' version: 4.21.0 @@ -274,13 +274,13 @@ importers: version: 24.12.4 esbuild: specifier: 'catalog:' - version: 0.27.0 + version: 0.28.1 rollup: specifier: 'catalog:' version: 4.59.0 rollup-plugin-esbuild: specifier: 'catalog:' - version: 6.2.1(esbuild@0.27.0)(rollup@4.59.0) + version: 6.2.1(esbuild@0.28.1)(rollup@4.59.0) type-fest: specifier: 'catalog:' version: 4.21.0 @@ -379,13 +379,13 @@ importers: version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/addon-docs': specifier: 10.3.3 - version: 10.3.3(@types/react@18.3.1)(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) + version: 10.3.3(@types/react@18.3.1)(esbuild@0.28.1)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) '@storybook/addon-webpack5-compiler-swc': specifier: 4.0.3 version: 4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1) '@storybook/react-webpack5': specifier: 10.3.3 - version: 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + version: 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) '@svgr/webpack': specifier: 8.1.0 version: 8.1.0(typescript@5.9.3) @@ -487,13 +487,13 @@ importers: version: 0.0.6 '@types/webpack-bundle-analyzer': specifier: 4.7.0 - version: 4.7.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 4.7.0(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) '@types/webpack-env': specifier: 1.18.8 version: 1.18.8 '@types/webpack-node-externals': specifier: 3.0.4 - version: 3.0.4(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 3.0.4(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) '@types/youtube': specifier: 0.0.50 version: 0.0.50 @@ -721,7 +721,7 @@ importers: version: 4.2.3 webpack: specifier: 5.104.1 - version: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + version: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-assets-manifest: specifier: 6.3.0 version: 6.3.0(webpack@5.104.1) @@ -1818,14 +1818,14 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.0': - resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1842,14 +1842,14 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.0': - resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1866,14 +1866,14 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.0': - resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1890,14 +1890,14 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.0': - resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1914,14 +1914,14 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.0': - resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1938,14 +1938,14 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.0': - resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1962,14 +1962,14 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.0': - resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1986,14 +1986,14 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.0': - resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -2010,14 +2010,14 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.0': - resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -2034,14 +2034,14 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.0': - resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -2058,14 +2058,14 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.0': - resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -2082,14 +2082,14 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.0': - resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -2106,14 +2106,14 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.0': - resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -2130,14 +2130,14 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.0': - resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -2154,14 +2154,14 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.0': - resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -2178,14 +2178,14 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.0': - resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -2202,14 +2202,14 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.0': - resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -2220,14 +2220,14 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.0': - resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==} + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -2244,14 +2244,14 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.0': - resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -2262,14 +2262,14 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.0': - resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -2286,14 +2286,14 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.0': - resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -2304,14 +2304,14 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.0': - resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==} + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -2328,14 +2328,14 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.0': - resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -2352,14 +2352,14 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.0': - resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -2376,14 +2376,14 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.0': - resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -2400,14 +2400,14 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.0': - resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -5756,13 +5756,13 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.0: - resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} hasBin: true - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} hasBin: true @@ -11528,10 +11528,10 @@ snapshots: '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/aix-ppc64@0.27.0': + '@esbuild/aix-ppc64@0.27.3': optional: true - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.28.1': optional: true '@esbuild/android-arm64@0.18.20': @@ -11540,10 +11540,10 @@ snapshots: '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.0': + '@esbuild/android-arm64@0.27.3': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-arm64@0.28.1': optional: true '@esbuild/android-arm@0.18.20': @@ -11552,10 +11552,10 @@ snapshots: '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.0': + '@esbuild/android-arm@0.27.3': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/android-arm@0.28.1': optional: true '@esbuild/android-x64@0.18.20': @@ -11564,10 +11564,10 @@ snapshots: '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.0': + '@esbuild/android-x64@0.27.3': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/android-x64@0.28.1': optional: true '@esbuild/darwin-arm64@0.18.20': @@ -11576,10 +11576,10 @@ snapshots: '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.0': + '@esbuild/darwin-arm64@0.27.3': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-arm64@0.28.1': optional: true '@esbuild/darwin-x64@0.18.20': @@ -11588,10 +11588,10 @@ snapshots: '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.0': + '@esbuild/darwin-x64@0.27.3': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.28.1': optional: true '@esbuild/freebsd-arm64@0.18.20': @@ -11600,10 +11600,10 @@ snapshots: '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.0': + '@esbuild/freebsd-arm64@0.27.3': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.28.1': optional: true '@esbuild/freebsd-x64@0.18.20': @@ -11612,10 +11612,10 @@ snapshots: '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.0': + '@esbuild/freebsd-x64@0.27.3': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-x64@0.28.1': optional: true '@esbuild/linux-arm64@0.18.20': @@ -11624,10 +11624,10 @@ snapshots: '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.0': + '@esbuild/linux-arm64@0.27.3': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/linux-arm64@0.28.1': optional: true '@esbuild/linux-arm@0.18.20': @@ -11636,10 +11636,10 @@ snapshots: '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.0': + '@esbuild/linux-arm@0.27.3': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/linux-arm@0.28.1': optional: true '@esbuild/linux-ia32@0.18.20': @@ -11648,10 +11648,10 @@ snapshots: '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.0': + '@esbuild/linux-ia32@0.27.3': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-ia32@0.28.1': optional: true '@esbuild/linux-loong64@0.18.20': @@ -11660,10 +11660,10 @@ snapshots: '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.0': + '@esbuild/linux-loong64@0.27.3': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-loong64@0.28.1': optional: true '@esbuild/linux-mips64el@0.18.20': @@ -11672,10 +11672,10 @@ snapshots: '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.0': + '@esbuild/linux-mips64el@0.27.3': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-mips64el@0.28.1': optional: true '@esbuild/linux-ppc64@0.18.20': @@ -11684,10 +11684,10 @@ snapshots: '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.0': + '@esbuild/linux-ppc64@0.27.3': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-ppc64@0.28.1': optional: true '@esbuild/linux-riscv64@0.18.20': @@ -11696,10 +11696,10 @@ snapshots: '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.0': + '@esbuild/linux-riscv64@0.27.3': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-riscv64@0.28.1': optional: true '@esbuild/linux-s390x@0.18.20': @@ -11708,10 +11708,10 @@ snapshots: '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.0': + '@esbuild/linux-s390x@0.27.3': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-s390x@0.28.1': optional: true '@esbuild/linux-x64@0.18.20': @@ -11720,19 +11720,19 @@ snapshots: '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.0': + '@esbuild/linux-x64@0.27.3': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-x64@0.28.1': optional: true '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.0': + '@esbuild/netbsd-arm64@0.27.3': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/netbsd-arm64@0.28.1': optional: true '@esbuild/netbsd-x64@0.18.20': @@ -11741,19 +11741,19 @@ snapshots: '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.0': + '@esbuild/netbsd-x64@0.27.3': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/netbsd-x64@0.28.1': optional: true '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.0': + '@esbuild/openbsd-arm64@0.27.3': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/openbsd-arm64@0.28.1': optional: true '@esbuild/openbsd-x64@0.18.20': @@ -11762,19 +11762,19 @@ snapshots: '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.0': + '@esbuild/openbsd-x64@0.27.3': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/openbsd-x64@0.28.1': optional: true '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.0': + '@esbuild/openharmony-arm64@0.27.3': optional: true - '@esbuild/openharmony-arm64@0.27.3': + '@esbuild/openharmony-arm64@0.28.1': optional: true '@esbuild/sunos-x64@0.18.20': @@ -11783,10 +11783,10 @@ snapshots: '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.0': + '@esbuild/sunos-x64@0.27.3': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/sunos-x64@0.28.1': optional: true '@esbuild/win32-arm64@0.18.20': @@ -11795,10 +11795,10 @@ snapshots: '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.0': + '@esbuild/win32-arm64@0.27.3': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/win32-arm64@0.28.1': optional: true '@esbuild/win32-ia32@0.18.20': @@ -11807,10 +11807,10 @@ snapshots: '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.0': + '@esbuild/win32-ia32@0.27.3': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/win32-ia32@0.28.1': optional: true '@esbuild/win32-x64@0.18.20': @@ -11819,10 +11819,10 @@ snapshots: '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.0': + '@esbuild/win32-x64@0.27.3': optional: true - '@esbuild/win32-x64@0.27.3': + '@esbuild/win32-x64@0.28.1': optional: true '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@9.39.1)': @@ -13144,10 +13144,10 @@ snapshots: axe-core: 4.11.1 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': + '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.28.1)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': dependencies: '@mdx-js/react': 3.1.1(@types/react@18.3.1)(react@18.3.1) - '@storybook/csf-plugin': 10.3.3(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) + '@storybook/csf-plugin': 10.3.3(esbuild@0.28.1)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1) '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react-dom-shim': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 @@ -13170,7 +13170,7 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) case-sensitive-paths-webpack-plugin: 2.4.0 @@ -13182,9 +13182,9 @@ snapshots: magic-string: 0.30.21 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) style-loader: 4.0.0(webpack@5.104.1) - terser-webpack-plugin: 5.4.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack@5.104.1) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.104.1) ts-dedent: 2.2.0 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-dev-middleware: 6.1.3(webpack@5.104.1) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 @@ -13202,15 +13202,15 @@ snapshots: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 - '@storybook/csf-plugin@10.3.3(esbuild@0.27.3)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': + '@storybook/csf-plugin@10.3.3(esbuild@0.28.1)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2))(webpack@5.104.1)': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unplugin: 2.3.11 optionalDependencies: - esbuild: 0.27.3 + esbuild: 0.28.1 rollup: 4.60.1 vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) '@storybook/global@5.0.0': {} @@ -13219,7 +13219,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.104.1) @@ -13232,7 +13232,7 @@ snapshots: semver: 7.8.4 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tsconfig-paths: 4.2.0 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -13252,7 +13252,7 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@5.9.3) tslib: 2.8.1 typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color @@ -13262,10 +13262,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': dependencies: - '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) - '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) '@storybook/react': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13865,11 +13865,11 @@ snapshots: '@types/unist@3.0.3': {} - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1)': + '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1)': dependencies: '@types/node': 24.12.4 tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) transitivePeerDependencies: - '@swc/core' - esbuild @@ -13878,10 +13878,10 @@ snapshots: '@types/webpack-env@1.18.8': {} - '@types/webpack-node-externals@3.0.4(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1)': + '@types/webpack-node-externals@3.0.4(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1)': dependencies: '@types/node': 24.12.4 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) transitivePeerDependencies: - '@swc/core' - esbuild @@ -14154,17 +14154,17 @@ snapshots: '@webpack-cli/configtest@3.0.1(webpack-cli@6.0.1)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) '@webpack-cli/info@3.0.1(webpack-cli@6.0.1)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) '@webpack-cli/serve@3.0.1(webpack-cli@6.0.1)(webpack-dev-server@5.2.4)(webpack@5.104.1)': dependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) optionalDependencies: webpack-dev-server: 5.2.4(webpack-cli@6.0.1)(webpack@5.104.1) @@ -15075,7 +15075,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.5.4 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) css-select@4.3.0: dependencies: @@ -15550,35 +15550,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.0 - '@esbuild/android-arm': 0.27.0 - '@esbuild/android-arm64': 0.27.0 - '@esbuild/android-x64': 0.27.0 - '@esbuild/darwin-arm64': 0.27.0 - '@esbuild/darwin-x64': 0.27.0 - '@esbuild/freebsd-arm64': 0.27.0 - '@esbuild/freebsd-x64': 0.27.0 - '@esbuild/linux-arm': 0.27.0 - '@esbuild/linux-arm64': 0.27.0 - '@esbuild/linux-ia32': 0.27.0 - '@esbuild/linux-loong64': 0.27.0 - '@esbuild/linux-mips64el': 0.27.0 - '@esbuild/linux-ppc64': 0.27.0 - '@esbuild/linux-riscv64': 0.27.0 - '@esbuild/linux-s390x': 0.27.0 - '@esbuild/linux-x64': 0.27.0 - '@esbuild/netbsd-arm64': 0.27.0 - '@esbuild/netbsd-x64': 0.27.0 - '@esbuild/openbsd-arm64': 0.27.0 - '@esbuild/openbsd-x64': 0.27.0 - '@esbuild/openharmony-arm64': 0.27.0 - '@esbuild/sunos-x64': 0.27.0 - '@esbuild/win32-arm64': 0.27.0 - '@esbuild/win32-ia32': 0.27.0 - '@esbuild/win32-x64': 0.27.0 - esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -15608,6 +15579,35 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 + esbuild@0.28.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -16220,7 +16220,7 @@ snapshots: semver: 7.5.4 tapable: 2.3.0 typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) form-data-encoder@4.1.0: {} @@ -16622,7 +16622,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.3.0 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) htmlparser2@10.1.0: dependencies: @@ -18689,11 +18689,11 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-esbuild@6.2.1(esbuild@0.27.0)(rollup@4.59.0): + rollup-plugin-esbuild@6.2.1(esbuild@0.28.1)(rollup@4.59.0): dependencies: debug: 4.4.3 es-module-lexer: 1.7.0 - esbuild: 0.27.0 + esbuild: 0.28.1 get-tsconfig: 4.13.0 rollup: 4.59.0 unplugin-utils: 0.2.5 @@ -19303,7 +19303,7 @@ snapshots: style-loader@4.0.0(webpack@5.104.1): dependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) stylelint-config-recommended@14.0.0(stylelint@16.26.1(typescript@5.9.3)): dependencies: @@ -19435,7 +19435,7 @@ snapshots: dependencies: '@swc/core': 1.15.41 '@swc/counter': 0.1.3 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) swr@1.3.0(react@18.3.1): dependencies: @@ -19470,16 +19470,16 @@ snapshots: - bare-abort-controller - react-native-b4a - terser-webpack-plugin@5.4.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack@5.104.1): + terser-webpack-plugin@5.4.0(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.104.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.46.0 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) optionalDependencies: '@swc/core': 1.15.41 - esbuild: 0.27.3 + esbuild: 0.28.1 terser@5.46.0: dependencies: @@ -20012,7 +20012,7 @@ snapshots: lockfile: 1.0.4 schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-bundle-analyzer@4.10.2: dependencies: @@ -20046,7 +20046,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-merge: 6.0.1 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -20060,7 +20060,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-dev-middleware@7.4.5(webpack@5.104.1): dependencies: @@ -20071,7 +20071,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-dev-server@5.2.4(webpack-cli@6.0.1)(webpack@5.104.1): dependencies: @@ -20104,7 +20104,7 @@ snapshots: webpack-dev-middleware: 7.4.5(webpack@5.104.1) ws: 8.21.0 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-cli: 6.0.1(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.2.4)(webpack@5.104.1) transitivePeerDependencies: - bufferutil @@ -20127,14 +20127,14 @@ snapshots: debug: 3.2.7 require-from-string: 2.0.2 source-map-support: 0.5.21 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color webpack-manifest-plugin@6.0.1(webpack@5.104.1): dependencies: tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) webpack-sources: 3.3.3 webpack-merge@6.0.1: @@ -20155,7 +20155,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1): + webpack@5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -20179,7 +20179,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.4.0(@swc/core@1.15.41)(esbuild@0.27.3)(webpack@5.104.1) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.104.1) watchpack: 2.5.1 webpack-sources: 3.3.3 optionalDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1b71a1cd6c0..1946bebf8f6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -22,7 +22,7 @@ catalog: aws-cdk: 2.1126.0 aws-cdk-lib: 2.257.0 constructs: 10.6.0 - esbuild: 0.27.0 + esbuild: 0.28.1 eslint: 9.39.1 rollup: 4.59.0 rollup-plugin-esbuild: 6.2.1 From 5a46cb141a69c473bb5b1745120492a05399cab4 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Wed, 17 Jun 2026 12:14:05 +0100 Subject: [PATCH 130/293] update view more comments icon and Show more replies icon --- dotcom-rendering/src/components/Discussion.tsx | 4 ++-- .../src/components/Discussion/CommentContainer.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dotcom-rendering/src/components/Discussion.tsx b/dotcom-rendering/src/components/Discussion.tsx index 195662fb77d..63251f9f8f8 100644 --- a/dotcom-rendering/src/components/Discussion.tsx +++ b/dotcom-rendering/src/components/Discussion.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/react'; import { isUndefined, storage } from '@guardian/libs'; import { space } from '@guardian/source/foundations'; -import { SvgPlus } from '@guardian/source/react-components'; +import { SvgChevronDownSingle } from '@guardian/source/react-components'; import { useEffect, useReducer } from 'react'; import { assertUnreachable } from '../lib/assert-unreachable'; import type { @@ -536,7 +536,7 @@ export const Discussion = ({ onClick={() => { dispatch({ type: 'expandComments' }); }} - icon={} + icon={} linkName="view-more-comments" > View more comments diff --git a/dotcom-rendering/src/components/Discussion/CommentContainer.tsx b/dotcom-rendering/src/components/Discussion/CommentContainer.tsx index 02cd0f3bdb1..12774aac95e 100644 --- a/dotcom-rendering/src/components/Discussion/CommentContainer.tsx +++ b/dotcom-rendering/src/components/Discussion/CommentContainer.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { space } from '@guardian/source/foundations'; -import { SvgPlus } from '@guardian/source/react-components'; +import { SvgChevronDownSingle } from '@guardian/source/react-components'; import { useState } from 'react'; import type { CommentType, @@ -199,7 +199,7 @@ export const CommentContainer = ({ > } + icon={} iconSide="left" linkName="Show more replies" onClick={() => expand(comment.id)} From 2008df8075af22ed3b4db89804eea93af449bd11 Mon Sep 17 00:00:00 2001 From: George Richmond Date: Wed, 17 Jun 2026 12:18:01 +0100 Subject: [PATCH 131/293] Replace 'Free newsletter' with 'Newsletter' in highlight cards (#16186) --- .../Masthead/Newsletter/HighlightsNewsletterCard.tsx | 2 +- .../src/components/ScrollableHighlights.island.test.tsx | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.tsx b/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.tsx index 4825e3d2e5d..b805a0032c2 100644 --- a/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.tsx +++ b/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.tsx @@ -218,7 +218,7 @@ export const HighlightsNewsletterCard = ({
    - Free newsletter + Newsletter { }), ).not.toBeInTheDocument(); - expect( - screen.queryByText('Free newsletter'), - ).not.toBeInTheDocument(); + expect(screen.queryByText('Newsletter')).not.toBeInTheDocument(); }); it('does not render a newsletter trail when newsletterData is missing', () => { @@ -140,9 +138,7 @@ describe('ScrollableHighlights — newsletter card AB test', () => { name: newsletterSignupCardWithoutData.headline, }), ).not.toBeInTheDocument(); - expect( - screen.queryByText('Free newsletter'), - ).not.toBeInTheDocument(); + expect(screen.queryByText('Newsletter')).not.toBeInTheDocument(); }); it('still renders non-newsletter cards normally', () => { From 3efd5b895428720c0947cf6c067661426a666acd Mon Sep 17 00:00:00 2001 From: Jake <1731150+Jakeii@users.noreply.github.com> Date: Wed, 17 Jun 2026 14:01:58 +0100 Subject: [PATCH 132/293] Fix emotion template literal minification (#16184) --- dotcom-rendering/.gitignore | 3 +++ dotcom-rendering/package.json | 3 ++- dotcom-rendering/webpack/.swcrc.json | 3 +++ pnpm-lock.yaml | 10 ++++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/dotcom-rendering/.gitignore b/dotcom-rendering/.gitignore index 0975586c5f1..8211ed94307 100644 --- a/dotcom-rendering/.gitignore +++ b/dotcom-rendering/.gitignore @@ -4,3 +4,6 @@ tsconfig.tsbuildinfo # CDK asset staging directory .cdk.staging cdk.out + +# SWC cache +.swc diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index 2b68ad20229..e0322b96e7a 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -32,8 +32,8 @@ "@guardian/bridget": "8.13.1", "@guardian/browserslist-config": "6.1.0", "@guardian/cdk": "catalog:", - "@guardian/consent-manager": "1.0.0", "@guardian/commercial-core": "34.0.0", + "@guardian/consent-manager": "1.0.0", "@guardian/core-web-vitals": "7.0.0", "@guardian/eslint-config": "catalog:", "@guardian/identity-auth": "6.0.1", @@ -56,6 +56,7 @@ "@swc/cli": "0.8.1", "@swc/core": "1.15.41", "@swc/jest": "0.2.39", + "@swc/plugin-emotion": "14.12.0", "@testing-library/dom": "10.4.1", "@testing-library/jest-dom": "6.9.1", "@testing-library/react": "16.3.0", diff --git a/dotcom-rendering/webpack/.swcrc.json b/dotcom-rendering/webpack/.swcrc.json index 51f3d35ea92..490d70a5893 100644 --- a/dotcom-rendering/webpack/.swcrc.json +++ b/dotcom-rendering/webpack/.swcrc.json @@ -12,6 +12,9 @@ "runtime": "automatic", "importSource": "@emotion/react" } + }, + "experimental": { + "plugins": [["@swc/plugin-emotion", {}]] } }, "sourceMaps": true diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 496c562923a..d693d46643b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -398,6 +398,9 @@ importers: '@swc/jest': specifier: 0.2.39 version: 0.2.39(@swc/core@1.15.41) + '@swc/plugin-emotion': + specifier: 14.12.0 + version: 14.12.0 '@testing-library/dom': specifier: 10.4.1 version: 10.4.1 @@ -3945,6 +3948,9 @@ packages: peerDependencies: '@swc/core': '*' + '@swc/plugin-emotion@14.12.0': + resolution: {integrity: sha512-lyAQgTeDkowq/4+8JYaviVOL4jXSdObz+uuk84DjM0z4qoiMpI6xoDVp7/tjWeVjmLc2U6Qp3hDuwWMZ5xe88Q==} + '@swc/types@0.1.26': resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} @@ -13524,6 +13530,10 @@ snapshots: '@swc/counter': 0.1.3 jsonc-parser: 3.2.0 + '@swc/plugin-emotion@14.12.0': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types@0.1.26': dependencies: '@swc/counter': 0.1.3 From 861f63975fe86d3e1caab1f2742cc24e7fec5bc2 Mon Sep 17 00:00:00 2001 From: Jake <1731150+Jakeii@users.noreply.github.com> Date: Wed, 17 Jun 2026 14:38:44 +0100 Subject: [PATCH 133/293] Revert "Fix emotion template literal minification" (#16192) --- dotcom-rendering/.gitignore | 3 --- dotcom-rendering/package.json | 3 +-- dotcom-rendering/webpack/.swcrc.json | 3 --- pnpm-lock.yaml | 10 ---------- 4 files changed, 1 insertion(+), 18 deletions(-) diff --git a/dotcom-rendering/.gitignore b/dotcom-rendering/.gitignore index 8211ed94307..0975586c5f1 100644 --- a/dotcom-rendering/.gitignore +++ b/dotcom-rendering/.gitignore @@ -4,6 +4,3 @@ tsconfig.tsbuildinfo # CDK asset staging directory .cdk.staging cdk.out - -# SWC cache -.swc diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index e0322b96e7a..2b68ad20229 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -32,8 +32,8 @@ "@guardian/bridget": "8.13.1", "@guardian/browserslist-config": "6.1.0", "@guardian/cdk": "catalog:", - "@guardian/commercial-core": "34.0.0", "@guardian/consent-manager": "1.0.0", + "@guardian/commercial-core": "34.0.0", "@guardian/core-web-vitals": "7.0.0", "@guardian/eslint-config": "catalog:", "@guardian/identity-auth": "6.0.1", @@ -56,7 +56,6 @@ "@swc/cli": "0.8.1", "@swc/core": "1.15.41", "@swc/jest": "0.2.39", - "@swc/plugin-emotion": "14.12.0", "@testing-library/dom": "10.4.1", "@testing-library/jest-dom": "6.9.1", "@testing-library/react": "16.3.0", diff --git a/dotcom-rendering/webpack/.swcrc.json b/dotcom-rendering/webpack/.swcrc.json index 490d70a5893..51f3d35ea92 100644 --- a/dotcom-rendering/webpack/.swcrc.json +++ b/dotcom-rendering/webpack/.swcrc.json @@ -12,9 +12,6 @@ "runtime": "automatic", "importSource": "@emotion/react" } - }, - "experimental": { - "plugins": [["@swc/plugin-emotion", {}]] } }, "sourceMaps": true diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d693d46643b..496c562923a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -398,9 +398,6 @@ importers: '@swc/jest': specifier: 0.2.39 version: 0.2.39(@swc/core@1.15.41) - '@swc/plugin-emotion': - specifier: 14.12.0 - version: 14.12.0 '@testing-library/dom': specifier: 10.4.1 version: 10.4.1 @@ -3948,9 +3945,6 @@ packages: peerDependencies: '@swc/core': '*' - '@swc/plugin-emotion@14.12.0': - resolution: {integrity: sha512-lyAQgTeDkowq/4+8JYaviVOL4jXSdObz+uuk84DjM0z4qoiMpI6xoDVp7/tjWeVjmLc2U6Qp3hDuwWMZ5xe88Q==} - '@swc/types@0.1.26': resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} @@ -13530,10 +13524,6 @@ snapshots: '@swc/counter': 0.1.3 jsonc-parser: 3.2.0 - '@swc/plugin-emotion@14.12.0': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types@0.1.26': dependencies: '@swc/counter': 0.1.3 From 2e05118002c64effec7c549cbca0d9178e39b8d9 Mon Sep 17 00:00:00 2001 From: Anna Beddow Date: Wed, 17 Jun 2026 14:59:13 +0100 Subject: [PATCH 134/293] Remove container check in Card (#15981) * Determine trail text visibility at the container level rather * Remove need to check for isMoreGalleriesOnwardContent in card when deciding if to rendering trailtext * Remove audio media check as this is handled by an exception in CARD --- dotcom-rendering/src/components/Card/Card.tsx | 4 +--- dotcom-rendering/src/components/MoreGalleries.tsx | 5 ++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dotcom-rendering/src/components/Card/Card.tsx b/dotcom-rendering/src/components/Card/Card.tsx index aadde807692..3cc1a741fc3 100644 --- a/dotcom-rendering/src/components/Card/Card.tsx +++ b/dotcom-rendering/src/components/Card/Card.tsx @@ -600,9 +600,7 @@ export const Card = ({ return 'tablet'; }; - const shouldShowTrailText = isMoreGalleriesOnwardContent - ? media?.type !== 'podcast' && isOnwardSplash - : media?.type !== 'podcast'; + const shouldShowTrailText = media?.type !== 'podcast'; /** * Determines the gap of between card components based on card properties diff --git a/dotcom-rendering/src/components/MoreGalleries.tsx b/dotcom-rendering/src/components/MoreGalleries.tsx index 5b3ee49a9ee..6444055b936 100644 --- a/dotcom-rendering/src/components/MoreGalleries.tsx +++ b/dotcom-rendering/src/components/MoreGalleries.tsx @@ -160,6 +160,7 @@ const getDefaultCardProps = ( trail: TrailType, discussionApiUrl: string, format: ArticleFormat, + showTrailText: boolean, serverTime?: number, ) => { const defaultProps: CardProps = { @@ -189,7 +190,7 @@ const getDefaultCardProps = ( branding: trail.branding, serverTime, imageLoading: 'lazy', - trailText: trail.trailText, + trailText: showTrailText ? trail.trailText : undefined, showAge: false, showTopBarDesktop: false, showTopBarMobile: false, @@ -238,6 +239,7 @@ export const MoreGalleries = (props: Props) => { firstTrail, props.discussionApiUrl, props.format, + true, props.serverTime, )} /> @@ -261,6 +263,7 @@ export const MoreGalleries = (props: Props) => { trail, props.discussionApiUrl, props.format, + false, props.serverTime, )} mediaSize="medium" From fed45f18486698fb838291cf9b6c7838232b0278 Mon Sep 17 00:00:00 2001 From: Demetrios Date: Mon, 15 Jun 2026 12:20:44 +0100 Subject: [PATCH 135/293] add test config for mobile-sticky slot in liveblogs us --- ab-testing/config/abTests.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index ff4b46c606e..4756f7ccea8 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -133,6 +133,19 @@ const ABTests: ABTest[] = [ groups: ["control", "holdback"], shouldForceMetricsCollection: true, }, + { + name: "commercial-mobile-sticky-liveblog-us", + description: + "Holdback test to measure uplift in adding the mobile-sticky slot for Liveblogs articles in Us.", + owners: ["commercial.dev@guardian.co.uk"], + expirationDate: "2026-06-25", + type: "client", + status: "OFF", + audienceSize: 10 / 100, + audienceSpace: "A", + groups: ["control", "holdback"], + shouldForceMetricsCollection: true, + }, { name: "commercial-teads-prebid", description: From 9da2ab4bc8eff88d5ba0143624b0ead90f8e3d8d Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:48:17 +0100 Subject: [PATCH 136/293] updating show more and show less icons on pinned liveblog posts --- .../src/components/PinnedPost.tsx | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dotcom-rendering/src/components/PinnedPost.tsx b/dotcom-rendering/src/components/PinnedPost.tsx index de212029444..844ea5b3b02 100644 --- a/dotcom-rendering/src/components/PinnedPost.tsx +++ b/dotcom-rendering/src/components/PinnedPost.tsx @@ -12,9 +12,9 @@ import { visuallyHidden, } from '@guardian/source/foundations'; import { - SvgMinus, + SvgChevronDownSingle, + SvgChevronUpSingle, SvgPinned, - SvgPlus, } from '@guardian/source/react-components'; import { palette } from '../palette'; import type { Block } from '../types/blocks'; @@ -36,12 +36,12 @@ const pinnedPostContainer = css` margin-bottom: ${space[1]}px; } #pinned-post-checkbox:checked ~ #pinned-post-overlay, - #pinned-post-checkbox ~ label #svgminus, - #pinned-post-checkbox:checked ~ label #svgplus { + #pinned-post-checkbox ~ label #svgchevronupsingle, + #pinned-post-checkbox:checked ~ label #svgchevrondownsingle { display: none; } - #pinned-post-checkbox ~ label #svgplus, - #pinned-post-checkbox:checked ~ label #svgminus { + #pinned-post-checkbox ~ label #svgchevrondownsingle, + #pinned-post-checkbox:checked ~ label #svgchevronupsingle { display: block; } #pinned-post-checkbox ~ label::after { @@ -188,11 +188,11 @@ export const PinnedPost = ({ pinnedPost, children, serverTime }: Props) => { id="pinned-post-button" > <> - - + + - - + + From 0b4a863adf5fa8db6daee1e56bc02a5e1a053598 Mon Sep 17 00:00:00 2001 From: Demetrios Date: Mon, 15 Jun 2026 17:23:06 +0100 Subject: [PATCH 137/293] rename test group name to variant --- ab-testing/config/abTests.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index 4756f7ccea8..be72bb2cb10 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -101,7 +101,7 @@ const ABTests: ABTest[] = [ owners: ["commercial.dev@guardian.co.uk"], expirationDate: "2026-07-16", type: "client", - status: "ON", + status: "OFF", audienceSize: 5 / 100, audienceSpace: "A", groups: ["holdback"], @@ -136,14 +136,14 @@ const ABTests: ABTest[] = [ { name: "commercial-mobile-sticky-liveblog-us", description: - "Holdback test to measure uplift in adding the mobile-sticky slot for Liveblogs articles in Us.", + "Holdback test, where variant is the 'holdback' group, to measure uplift in adding the mobile-sticky slot for Liveblogs articles in the US.", owners: ["commercial.dev@guardian.co.uk"], - expirationDate: "2026-06-25", + expirationDate: "2026-07-02", type: "client", - status: "OFF", - audienceSize: 10 / 100, + status: "ON", + audienceSize: 5 / 100, audienceSpace: "A", - groups: ["control", "holdback"], + groups: ["control", "variant"], shouldForceMetricsCollection: true, }, { From 1aa67e8b177397dcc0bf40e2fc172d4c0cd4fc6f Mon Sep 17 00:00:00 2001 From: Ravi <7014230+arelra@users.noreply.github.com> Date: Wed, 17 Jun 2026 16:21:49 +0100 Subject: [PATCH 138/293] Revert "ci: Use `guardian/actions-build-facts` to correctly reference commit sha" --- .github/workflows/cicd.yml | 12 ------------ .github/workflows/container.yml | 9 ++------- .github/workflows/dcr-chromatic.yml | 16 +++++----------- 3 files changed, 7 insertions(+), 30 deletions(-) diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index e26f73b8038..ceb24e9681e 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -4,22 +4,10 @@ on: push: jobs: - facts: - runs-on: ubuntu-slim - permissions: {} - outputs: - commitSha: ${{ steps.get-build-facts.outputs.commitSha }} - steps: - - uses: guardian/actions-build-facts@v0.0.1 - id: get-build-facts - container: permissions: packages: write uses: ./.github/workflows/container.yml - needs: [facts] - with: - commitSha: ${{ needs.facts.outputs.commitSha }} prettier: uses: ./.github/workflows/prettier.yml diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index 6a5fc06b78f..6ac78859080 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -2,11 +2,6 @@ # Commercial rely on a container image built from the main branch with the tag 'main' on: workflow_call: - inputs: - commitSha: - description: 'The SHA of the commit being built. Will be used as an image tag.' - required: true - type: string outputs: container-image: description: 'The generated container image path' @@ -32,7 +27,7 @@ jobs: - name: Add commit hash for PRout working-directory: dotcom-rendering run: | - echo 'export const GIT_COMMIT_HASH = "${{ inputs.commitSha }}";' > src/server/prout.ts + echo 'export const GIT_COMMIT_HASH = "${{ github.sha }}";' > src/server/prout.ts - name: Generate production bundle run: make riffraff-bundle @@ -44,7 +39,7 @@ jobs: with: image: dotcom-rendering # Commercial rely on a container image built from the main branch with the tag 'main' - tags: ${{ inputs.commitSha }} ${{ github.ref == 'refs/heads/main' && 'main' || '' }} + tags: ${{ github.sha }} ${{ github.ref == 'refs/heads/main' && 'main' || '' }} context: ./ containerfiles: ./dotcom-rendering/Containerfile diff --git a/.github/workflows/dcr-chromatic.yml b/.github/workflows/dcr-chromatic.yml index 975f1e93fb8..ea378ab324b 100644 --- a/.github/workflows/dcr-chromatic.yml +++ b/.github/workflows/dcr-chromatic.yml @@ -7,15 +7,6 @@ on: types: [opened, labeled, synchronize] jobs: - facts: - runs-on: ubuntu-slim - permissions: {} - outputs: - commitSha: ${{ steps.get-build-facts.outputs.commitSha }} - steps: - - uses: guardian/actions-build-facts@v0.0.1 - id: get-build-facts - check-paths: name: Check changed paths uses: ./.github/workflows/check-chromatic-paths.yml @@ -23,7 +14,7 @@ jobs: chromatic: name: Chromatic runs-on: ubuntu-latest - needs: [facts, check-paths] + needs: check-paths # Always run so the required "UI Tests: dotcom_rendering" status check is always # reported. When skipping, Chromatic posts a passing status without building Storybook. steps: @@ -32,7 +23,10 @@ jobs: if: ${{ github.event_name == 'pull_request'}} with: fetch-depth: 0 - ref: ${{ needs.facts.outputs.commitSha }} + # By default the pull_request event will run on a ephermeral merge commit which simulates a merge between the pull request + # and the target branch. This can cause issues with Chromatic https://www.chromatic.com/docs/turbosnap#github-pullrequest-triggers + # Hopefully by checking out the HEAD commit of a PR instead of the merge commit we can avoid some of those issues. + ref: ${{ github.event.pull_request.head.sha }} - name: Checkout - On Push Event uses: actions/checkout@v6 if: ${{ github.event_name == 'push'}} From 538e3c111395b7981329f07a4e051b78601bca5c Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Tue, 16 Jun 2026 09:16:32 +0100 Subject: [PATCH 139/293] Sets fullscreen using Bridget if player is found to be compatible --- .../src/components/SelfHostedVideo.island.tsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index c8101fcc01c..c77f581e532 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -404,8 +404,12 @@ export const SelfHostedVideo = ({ const [optimisedSources, setOptimisedSources] = useState([]); const [isFullscreen, setIsFullscreen] = useState(false); const [isWebKitFullscreen, setIsWebKitFullscreen] = useState(false); + const [isBridgetFullscreen, setIsBridgetFullscreen] = useState(false); const [isProgressBarSeeking, setIsProgressBarSeeking] = useState(false); + const [shouldUseBridgetFullscreen, setShouldUseBridgetFullscreen] = + useState(false); + const isWeb = renderingTarget === 'Web'; const isApps = renderingTarget === 'Apps'; @@ -782,6 +786,13 @@ export const SelfHostedVideo = ({ ); }, [positionCues]); + useEffect(() => { + const videoClient = getVideoClient(); + void videoClient + .setFullscreen(false) + .then(setShouldUseBridgetFullscreen); + }, []); + /** * Track the first time the video comes into view. */ @@ -1002,6 +1013,14 @@ export const SelfHostedVideo = ({ } } + if (shouldUseBridgetFullscreen) { + const videoClient = getVideoClient(); + const fullscreen = !isBridgetFullscreen; + void videoClient + .setFullscreen(fullscreen) + .then(() => setIsBridgetFullscreen(fullscreen)); + } + if (document.fullscreenElement) { void document.exitFullscreen(); } else if (playerContainerRef.current) { From b100d1dc6c3b853ce7820633522fa842ff415dd8 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Tue, 16 Jun 2026 10:48:46 +0100 Subject: [PATCH 140/293] Add styling for bridget fullscreen --- .../src/components/SelfHostedVideo.island.tsx | 77 +++++++++++++------ 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index c77f581e532..850f71159f8 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -151,26 +151,32 @@ const videoContainerStyles = ( `} `; -const fullscreenStyles = css` - &:fullscreen { - display: flex; - align-items: center; - justify-content: center; - background-color: ${palette('--video-fullscreen-background')}; - width: 100vw; - height: 100vh; +const displayFullscreenStyle = css` + display: flex; + align-items: center; + justify-content: center; + background-color: ${palette('--video-fullscreen-background')}; + width: 100vw; + height: 100vh; + + /* Override the fixed aspect-ratio + width:100% on the video so it + fits within the screen while preserving its aspect ratio. */ + + video { + width: 100%; + height: 100%; + max-width: 100vw; + max-height: 100vh; + aspect-ratio: auto; + object-fit: contain; + } +`; - /* Override the fixed aspect-ratio + width:100% on the video so it - fits within the screen while preserving its aspect ratio. */ +const fullscreenStyles = (bridgetFullscreen: boolean) => css` + ${bridgetFullscreen && displayFullscreenStyle} - video { - width: 100%; - height: 100%; - max-width: 100vw; - max-height: 100vh; - aspect-ratio: auto; - object-fit: contain; - } + &:fullscreen { + ${displayFullscreenStyle}; } `; @@ -786,12 +792,35 @@ export const SelfHostedVideo = ({ ); }, [positionCues]); + const doesBridgetSupportFullscreen = async () => { + const isBridgetCompatible = await hasMinimumBridgetVersion('8.8.0'); + + if (!isBridgetCompatible) { + return false; + } + + try { + const videoClient = getVideoClient(); + return await videoClient.setFullscreen(false); + } catch (error) { + if (error instanceof Error) { + window.guardian.modules.sentry.reportError( + error, + 'self-hosted-video', + ); + } + log('dotcom', 'Failed to set app autoplay user preference:', error); + return false; + } + }; + useEffect(() => { - const videoClient = getVideoClient(); - void videoClient - .setFullscreen(false) - .then(setShouldUseBridgetFullscreen); - }, []); + if (isApps) { + void doesBridgetSupportFullscreen().then( + setShouldUseBridgetFullscreen, + ); + } + }, [isApps]); /** * Track the first time the video comes into view. @@ -1226,7 +1255,7 @@ export const SelfHostedVideo = ({ isVideoCroppedAtLeftRight, containerAspectRatioDesktop, ), - fullscreenStyles, + fullscreenStyles(isBridgetFullscreen), fadeableControlsStyles, ]} onMouseMove={showFadeableControlsAndStartTimer} From 7fa7cb44cbef4c97614f39fd9ddea1cc4be96af7 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Wed, 17 Jun 2026 09:24:43 +0100 Subject: [PATCH 141/293] Applies additional styling for bridget fullscreen mode --- .../src/components/SelfHostedVideo.island.tsx | 25 ++++++++++++++++--- dotcom-rendering/src/lib/getZIndex.ts | 1 + 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index 850f71159f8..869c2d5fbcc 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -1,4 +1,4 @@ -import { css } from '@emotion/react'; +import { css, Global } from '@emotion/react'; import { isUndefined, log, storage } from '@guardian/libs'; import { from, space, until } from '@guardian/source/foundations'; import { useCallback, useEffect, useRef, useState } from 'react'; @@ -175,6 +175,22 @@ const displayFullscreenStyle = css` const fullscreenStyles = (bridgetFullscreen: boolean) => css` ${bridgetFullscreen && displayFullscreenStyle} + ${bridgetFullscreen && + css` + html { + overflow: hidden; + } + + position: fixed; + top: 0; + z-index: ${getZIndex('selfHostedFullscreen')}; + /* override vw and vh with svw and svh if supported */ + /* stylelint-disable declaration-block-no-duplicate-properties */ + width: 100svw; + height: 100svh; + /* stylelint-enable declaration-block-no-duplicate-properties */ + `} + &:fullscreen { ${displayFullscreenStyle}; } @@ -1048,9 +1064,7 @@ export const SelfHostedVideo = ({ void videoClient .setFullscreen(fullscreen) .then(() => setIsBridgetFullscreen(fullscreen)); - } - - if (document.fullscreenElement) { + } else if (document.fullscreenElement) { void document.exitFullscreen(); } else if (playerContainerRef.current) { void playerContainerRef.current.requestFullscreen(); @@ -1243,6 +1257,9 @@ export const SelfHostedVideo = ({ restrictHeightOnDesktop && maxHeightStyles, ]} > + {isBridgetFullscreen && ( + + )}
    Date: Wed, 17 Jun 2026 10:31:45 +0100 Subject: [PATCH 142/293] Split globally applied overflow for video fullscreen out from other fullscreen video styles --- .../src/components/SelfHostedVideo.island.tsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index 869c2d5fbcc..a71c36622e6 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -172,15 +172,19 @@ const displayFullscreenStyle = css` } `; -const fullscreenStyles = (bridgetFullscreen: boolean) => css` - ${bridgetFullscreen && displayFullscreenStyle} - - ${bridgetFullscreen && +const fullscreenGlobalHiddenOverflow = (hideOverflow: boolean) => + hideOverflow && css` html { overflow: hidden; } + `; +const fullscreenStyles = (bridgetFullscreen: boolean) => css` + ${bridgetFullscreen && displayFullscreenStyle} + + ${bridgetFullscreen && + css` position: fixed; top: 0; z-index: ${getZIndex('selfHostedFullscreen')}; @@ -1258,7 +1262,11 @@ export const SelfHostedVideo = ({ ]} > {isBridgetFullscreen && ( - + )}
    Date: Wed, 17 Jun 2026 10:38:11 +0100 Subject: [PATCH 143/293] Adds comment to explain why we call setFullscreen to determine if Bridget should be used for fullscreen --- .../src/components/SelfHostedVideo.island.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index a71c36622e6..1fe8fdd0a56 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -821,6 +821,13 @@ export const SelfHostedVideo = ({ try { const videoClient = getVideoClient(); + + /** + * We request to set the video to fullscreen to determine if the Bridget function is supported. + * > On Android, this method will return true if the operation was successful, false otherwise + * > On iOS, this method will always return false + * – taken from comments on the Bridget thrift interface. + */ return await videoClient.setFullscreen(false); } catch (error) { if (error instanceof Error) { @@ -829,7 +836,7 @@ export const SelfHostedVideo = ({ 'self-hosted-video', ); } - log('dotcom', 'Failed to set app autoplay user preference:', error); + log('dotcom', 'Failed to check Bridget fullscreen support:', error); return false; } }; From 0d7cad3824da0659c6ef289bc58d31e68f67dca4 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Wed, 17 Jun 2026 12:12:58 +0100 Subject: [PATCH 144/293] Prompts Opus to encapsulate fullscreen functionality into a hook --- .../src/components/SelfHostedVideo.island.tsx | 271 +-------------- .../src/lib/useVideoFullscreen.ts | 319 ++++++++++++++++++ 2 files changed, 337 insertions(+), 253 deletions(-) create mode 100644 dotcom-rendering/src/lib/useVideoFullscreen.ts diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index 1fe8fdd0a56..6dbd6992021 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -13,6 +13,7 @@ import { generateImageURL } from '../lib/image'; import { useFadeableControls } from '../lib/useFadeableControls'; import { hasMinimumBridgetVersion } from '../lib/useIsBridgetCompatible'; import { useIsInView } from '../lib/useIsInView'; +import { useVideoFullscreen } from '../lib/useVideoFullscreen'; import { useOnce } from '../lib/useOnce'; import { useShouldAdapt } from '../lib/useShouldAdapt'; import { useSubtitles } from '../lib/useSubtitles'; @@ -151,55 +152,6 @@ const videoContainerStyles = ( `} `; -const displayFullscreenStyle = css` - display: flex; - align-items: center; - justify-content: center; - background-color: ${palette('--video-fullscreen-background')}; - width: 100vw; - height: 100vh; - - /* Override the fixed aspect-ratio + width:100% on the video so it - fits within the screen while preserving its aspect ratio. */ - - video { - width: 100%; - height: 100%; - max-width: 100vw; - max-height: 100vh; - aspect-ratio: auto; - object-fit: contain; - } -`; - -const fullscreenGlobalHiddenOverflow = (hideOverflow: boolean) => - hideOverflow && - css` - html { - overflow: hidden; - } - `; - -const fullscreenStyles = (bridgetFullscreen: boolean) => css` - ${bridgetFullscreen && displayFullscreenStyle} - - ${bridgetFullscreen && - css` - position: fixed; - top: 0; - z-index: ${getZIndex('selfHostedFullscreen')}; - /* override vw and vh with svw and svh if supported */ - /* stylelint-disable declaration-block-no-duplicate-properties */ - width: 100svw; - height: 100svh; - /* stylelint-enable declaration-block-no-duplicate-properties */ - `} - - &:fullscreen { - ${displayFullscreenStyle}; - } -`; - /** * Dispatches a custom play audio event so that other videos listening for this event will be muted. */ @@ -241,28 +193,6 @@ const getOptimisedPosterImage = ( }); }; -/** - * The Fullscreen api is not supported by Safari mobile, - * so we need to check if we have access to the webkit api we can use instead. - * */ -const shouldUseWebkitFullscreen = (video: HTMLVideoElement): boolean => { - return ( - 'webkitDisplayingFullscreen' in video && - 'webkitEnterFullscreen' in video && - 'webkitExitFullscreen' in video - ); -}; - -/** - * The events we need to respond to for fullscreen tracking - * */ -const fullscreenChangeEvents = [ - 'fullscreenchange', - 'webkitfullscreenchange', - 'webkitbeginfullscreen', - 'webkitendfullscreen', -]; - /** * Ensures the aspect ratio falls between the minimum and maximum allowed aspect ratios, if specified. * For example, we may not want to render a square video inside a 4:5 feature card. In this case, the @@ -428,14 +358,8 @@ export const SelfHostedVideo = ({ const [width, setWidth] = useState(); const [height, setHeight] = useState(); const [optimisedSources, setOptimisedSources] = useState([]); - const [isFullscreen, setIsFullscreen] = useState(false); - const [isWebKitFullscreen, setIsWebKitFullscreen] = useState(false); - const [isBridgetFullscreen, setIsBridgetFullscreen] = useState(false); const [isProgressBarSeeking, setIsProgressBarSeeking] = useState(false); - const [shouldUseBridgetFullscreen, setShouldUseBridgetFullscreen] = - useState(false); - const isWeb = renderingTarget === 'Web'; const isApps = renderingTarget === 'Apps'; @@ -793,62 +717,6 @@ export const SelfHostedVideo = ({ }; }, [setMutedState, uniqueId, sources, renderingTarget, pauseVideo]); - /* Creates video-specific event listeners to handle fullscreen behaviour */ - useEffect(() => { - const video = vidRef.current; - if (!video) return; - - const handleEndFullscreen = () => { - setIsWebKitFullscreen(false); - positionCues(video); - }; - - video.addEventListener('webkitendfullscreen', handleEndFullscreen); - - return () => - video.removeEventListener( - 'webkitendfullscreen', - handleEndFullscreen, - ); - }, [positionCues]); - - const doesBridgetSupportFullscreen = async () => { - const isBridgetCompatible = await hasMinimumBridgetVersion('8.8.0'); - - if (!isBridgetCompatible) { - return false; - } - - try { - const videoClient = getVideoClient(); - - /** - * We request to set the video to fullscreen to determine if the Bridget function is supported. - * > On Android, this method will return true if the operation was successful, false otherwise - * > On iOS, this method will always return false - * – taken from comments on the Bridget thrift interface. - */ - return await videoClient.setFullscreen(false); - } catch (error) { - if (error instanceof Error) { - window.guardian.modules.sentry.reportError( - error, - 'self-hosted-video', - ); - } - log('dotcom', 'Failed to check Bridget fullscreen support:', error); - return false; - } - }; - - useEffect(() => { - if (isApps) { - void doesBridgetSupportFullscreen().then( - setShouldUseBridgetFullscreen, - ); - } - }, [isApps]); - /** * Track the first time the video comes into view. */ @@ -890,73 +758,20 @@ export const SelfHostedVideo = ({ } }, [shouldAutoplay, isInView, playerState]); - /** - * Capture fullscreen tracking events across browsers and devices - * We need to support events across: - * - Browsers with fullscreen API support - * - OSX Safari - * - iOS Safari - */ - useEffect(() => { - const video = vidRef.current; - const playerContainer = playerContainerRef.current; - - if (!playerContainer && !video) return; - - const updateStateAndReportFullscreenEvent = () => { - const isInFullscreenMode = - document.fullscreenElement !== null || - (video !== null && - 'webkitDisplayingFullscreen' in video && - Boolean(video.webkitDisplayingFullscreen)); - - if (isInFullscreenMode) { - setIsFullscreen(true); - } else { - setIsFullscreen(false); - } - - const event = isInFullscreenMode - ? 'enter_fullscreen' - : 'exit_fullscreen'; - - sendOphanTrackingEvent(event); - }; - - for (const event of fullscreenChangeEvents) { - if (video) { - video.addEventListener( - event, - updateStateAndReportFullscreenEvent, - ); - } - - if (playerContainer) { - playerContainer.addEventListener( - event, - updateStateAndReportFullscreenEvent, - ); - } - } - - return () => { - for (const event of fullscreenChangeEvents) { - if (video) { - video.removeEventListener( - event, - updateStateAndReportFullscreenEvent, - ); - } - - if (playerContainer) { - playerContainer.removeEventListener( - event, - updateStateAndReportFullscreenEvent, - ); - } - } - }; - }, [sendOphanTrackingEvent]); + const { + isFullscreen, + isWebKitFullscreen, + handleFullscreenClick, + fullscreenStyles, + globalFullscreenStyles, + } = useVideoFullscreen({ + videoRef: vidRef, + playerContainerRef, + renderingTarget, + sendOphanTrackingEvent, + positionCues, + showFadeableControlsAndStartTimer, + }); if (adapted) { return FallbackImageComponent; @@ -1036,52 +851,6 @@ export const SelfHostedVideo = ({ } }; - const handleFullscreenClick = (event: React.SyntheticEvent) => { - void submitClickComponentEvent(event.currentTarget, renderingTarget); - event.stopPropagation(); // Don't pause the video - - showFadeableControlsAndStartTimer(); // Show controls when a button is clicked - - const video = vidRef.current; - if (!video) { - return; - } - - if (shouldUseWebkitFullscreen(video)) { - /*** - * webkit fullscreen methods are not part of the standard HTMLVideoElement - * type definition as they are iOS only. - * We need to extend the type expect these handlers when we're on iOS to keep TS happy. - * @see https://developer.apple.com/documentation/webkitjs/htmlvideoelement/1633500-webkitenterfullscreen - */ - const webkitVideo = video as HTMLVideoElement & { - webkitDisplayingFullscreen: boolean; - webkitEnterFullscreen: () => void; - webkitExitFullscreen: () => void; - }; - - if (webkitVideo.webkitDisplayingFullscreen) { - setIsWebKitFullscreen(false); - return webkitVideo.webkitExitFullscreen(); - } else { - setIsWebKitFullscreen(true); - return webkitVideo.webkitEnterFullscreen(); - } - } - - if (shouldUseBridgetFullscreen) { - const videoClient = getVideoClient(); - const fullscreen = !isBridgetFullscreen; - void videoClient - .setFullscreen(fullscreen) - .then(() => setIsBridgetFullscreen(fullscreen)); - } else if (document.fullscreenElement) { - void document.exitFullscreen(); - } else if (playerContainerRef.current) { - void playerContainerRef.current.requestFullscreen(); - } - }; - /** * If the video was paused and we know that it wasn't paused by the user * or the intersection observer, we can deduce that it was paused by the @@ -1268,12 +1037,8 @@ export const SelfHostedVideo = ({ restrictHeightOnDesktop && maxHeightStyles, ]} > - {isBridgetFullscreen && ( - + {globalFullscreenStyles && ( + )}
    { + return ( + 'webkitDisplayingFullscreen' in video && + 'webkitEnterFullscreen' in video && + 'webkitExitFullscreen' in video + ); +}; + +/** + * The events we need to respond to for fullscreen tracking. + */ +const fullscreenChangeEvents = [ + 'fullscreenchange', + 'webkitfullscreenchange', + 'webkitbeginfullscreen', + 'webkitendfullscreen', +]; + +const displayFullscreenStyle = css` + display: flex; + align-items: center; + justify-content: center; + background-color: ${palette('--video-fullscreen-background')}; + width: 100vw; + height: 100vh; + + /* Override the fixed aspect-ratio + width:100% on the video so it + fits within the screen while preserving its aspect ratio. */ + + video { + width: 100%; + height: 100%; + max-width: 100vw; + max-height: 100vh; + aspect-ratio: auto; + object-fit: contain; + } +`; + +/** + * Returns a global style that hides overflow on the html element when the + * video is in bridget fullscreen mode. + */ +export const getFullscreenGlobalHiddenOverflow = (hideOverflow: boolean) => + hideOverflow && + css` + html { + overflow: hidden; + } + `; + +const buildFullscreenStyles = (bridgetFullscreen: boolean) => css` + ${bridgetFullscreen && displayFullscreenStyle} + + ${bridgetFullscreen && + css` + position: fixed; + top: 0; + z-index: ${getZIndex('selfHostedFullscreen')}; + /* override vw and vh with svw and svh if supported */ + /* stylelint-disable declaration-block-no-duplicate-properties */ + width: 100svw; + height: 100svh; + /* stylelint-enable declaration-block-no-duplicate-properties */ + `} + + &:fullscreen { + ${displayFullscreenStyle}; + } +`; + +const doesBridgetSupportFullscreen = async (): Promise => { + const isBridgetCompatible = await hasMinimumBridgetVersion('8.8.0'); + + if (!isBridgetCompatible) { + return false; + } + + try { + const videoClient = getVideoClient(); + + /** + * We request to set the video to fullscreen to determine if the Bridget function is supported. + * > On Android, this method will return true if the operation was successful, false otherwise + * > On iOS, this method will always return false + * – taken from comments on the Bridget thrift interface. + */ + return await videoClient.setFullscreen(false); + } catch (error) { + if (error instanceof Error) { + window.guardian.modules.sentry.reportError( + error, + 'self-hosted-video', + ); + } + log('dotcom', 'Failed to check Bridget fullscreen support:', error); + return false; + } +}; + +type Props = { + videoRef: React.RefObject; + playerContainerRef: React.RefObject; + renderingTarget: RenderingTarget; + sendOphanTrackingEvent: (event: VideoEventKey) => void; + positionCues: (video: HTMLVideoElement) => void; + showFadeableControlsAndStartTimer: () => void; +}; + +type ReturnValue = { + isFullscreen: boolean; + isWebKitFullscreen: boolean; + isBridgetFullscreen: boolean; + handleFullscreenClick: (event: React.SyntheticEvent) => void; + /** + * Styles for the player container element. Applies bridget fullscreen + * layout and the `:fullscreen` pseudo-class styles. + */ + fullscreenStyles: ReturnType; + /** + * A style value to pass to a `` component that hides page overflow + * whilst bridget fullscreen is active. + */ + globalFullscreenStyles: ReturnType< + typeof getFullscreenGlobalHiddenOverflow + >; +}; + +/** + * Manages all fullscreen behaviour for self-hosted videos across three + * environments: standard browser Fullscreen API, iOS Safari webkit fullscreen, + * and the bridget fullscreen API used by Guardian apps. + * + * Mirrors the shape of `useFadeableControls` by returning computed styles for + * the player container alongside the state and event handler. + */ +export const useVideoFullscreen = ({ + videoRef, + playerContainerRef, + renderingTarget, + sendOphanTrackingEvent, + positionCues, + showFadeableControlsAndStartTimer, +}: Props): ReturnValue => { + const [isFullscreen, setIsFullscreen] = useState(false); + const [isWebKitFullscreen, setIsWebKitFullscreen] = useState(false); + const [isBridgetFullscreen, setIsBridgetFullscreen] = useState(false); + const [shouldUseBridgetFullscreen, setShouldUseBridgetFullscreen] = + useState(false); + + const isApps = renderingTarget === 'Apps'; + + /* Detect whether the apps bridget client supports fullscreen */ + useEffect(() => { + if (isApps) { + void doesBridgetSupportFullscreen().then( + setShouldUseBridgetFullscreen, + ); + } + }, [isApps]); + + /* Handle webkit (iOS Safari) end-fullscreen events to sync state and reposition cues */ + useEffect(() => { + const video = videoRef.current; + if (!video) return; + + const handleEndFullscreen = () => { + setIsWebKitFullscreen(false); + positionCues(video); + }; + + video.addEventListener('webkitendfullscreen', handleEndFullscreen); + + return () => + video.removeEventListener( + 'webkitendfullscreen', + handleEndFullscreen, + ); + }, [videoRef, positionCues]); + + /** + * Capture fullscreen tracking events across browsers and devices. + * We need to support events across: + * - Browsers with fullscreen API support + * - OSX Safari + * - iOS Safari + */ + useEffect(() => { + const video = videoRef.current; + const playerContainer = playerContainerRef.current; + + if (!playerContainer && !video) return; + + const updateStateAndReportFullscreenEvent = () => { + const isInFullscreenMode = + document.fullscreenElement !== null || + (video !== null && + 'webkitDisplayingFullscreen' in video && + Boolean(video.webkitDisplayingFullscreen)); + + if (isInFullscreenMode) { + setIsFullscreen(true); + } else { + setIsFullscreen(false); + } + + const event = isInFullscreenMode + ? 'enter_fullscreen' + : 'exit_fullscreen'; + + sendOphanTrackingEvent(event); + }; + + for (const event of fullscreenChangeEvents) { + if (video) { + video.addEventListener( + event, + updateStateAndReportFullscreenEvent, + ); + } + + if (playerContainer) { + playerContainer.addEventListener( + event, + updateStateAndReportFullscreenEvent, + ); + } + } + + return () => { + for (const event of fullscreenChangeEvents) { + if (video) { + video.removeEventListener( + event, + updateStateAndReportFullscreenEvent, + ); + } + + if (playerContainer) { + playerContainer.removeEventListener( + event, + updateStateAndReportFullscreenEvent, + ); + } + } + }; + }, [videoRef, playerContainerRef, sendOphanTrackingEvent]); + + const handleFullscreenClick = (event: React.SyntheticEvent) => { + void submitClickComponentEvent(event.currentTarget, renderingTarget); + event.stopPropagation(); // Don't pause the video + + showFadeableControlsAndStartTimer(); // Show controls when a button is clicked + + const video = videoRef.current; + if (!video) { + return; + } + + if (shouldUseWebkitFullscreen(video)) { + /** + * webkit fullscreen methods are not part of the standard HTMLVideoElement + * type definition as they are iOS only. + * We need to extend the type to expect these handlers when we're on iOS to keep TS happy. + * @see https://developer.apple.com/documentation/webkitjs/htmlvideoelement/1633500-webkitenterfullscreen + */ + const webkitVideo = video as HTMLVideoElement & { + webkitDisplayingFullscreen: boolean; + webkitEnterFullscreen: () => void; + webkitExitFullscreen: () => void; + }; + + if (webkitVideo.webkitDisplayingFullscreen) { + setIsWebKitFullscreen(false); + return webkitVideo.webkitExitFullscreen(); + } else { + setIsWebKitFullscreen(true); + return webkitVideo.webkitEnterFullscreen(); + } + } + + if (shouldUseBridgetFullscreen) { + const videoClient = getVideoClient(); + const fullscreen = !isBridgetFullscreen; + void videoClient + .setFullscreen(fullscreen) + .then(() => setIsBridgetFullscreen(fullscreen)); + } else if (document.fullscreenElement) { + void document.exitFullscreen(); + } else if (playerContainerRef.current) { + void playerContainerRef.current.requestFullscreen(); + } + }; + + return { + isFullscreen, + isWebKitFullscreen, + isBridgetFullscreen, + handleFullscreenClick, + fullscreenStyles: buildFullscreenStyles(isBridgetFullscreen), + globalFullscreenStyles: + getFullscreenGlobalHiddenOverflow(isBridgetFullscreen), + }; +}; From 0f8d60a697212491cbd71218feea3363575e5d82 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Wed, 17 Jun 2026 12:24:13 +0100 Subject: [PATCH 145/293] Sets isBridgetFullscreen to be dervied from isFullscreen && shouldUseBridgetFullscreen --- .../src/components/SelfHostedVideo.island.tsx | 2 +- .../src/lib/useVideoFullscreen.ts | 41 +++++++++++-------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index 6dbd6992021..cd08e4f31e7 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -13,11 +13,11 @@ import { generateImageURL } from '../lib/image'; import { useFadeableControls } from '../lib/useFadeableControls'; import { hasMinimumBridgetVersion } from '../lib/useIsBridgetCompatible'; import { useIsInView } from '../lib/useIsInView'; -import { useVideoFullscreen } from '../lib/useVideoFullscreen'; import { useOnce } from '../lib/useOnce'; import { useShouldAdapt } from '../lib/useShouldAdapt'; import { useSubtitles } from '../lib/useSubtitles'; import { useVideoAttentionTracking } from '../lib/useVideoAttentionTracking'; +import { useVideoFullscreen } from '../lib/useVideoFullscreen'; import { useVideoMilestoneTracking } from '../lib/useVideoMilestoneTracking'; import type { CustomPlayEventDetail, Source } from '../lib/video'; import { diff --git a/dotcom-rendering/src/lib/useVideoFullscreen.ts b/dotcom-rendering/src/lib/useVideoFullscreen.ts index 5f191633caa..14c963222ac 100644 --- a/dotcom-rendering/src/lib/useVideoFullscreen.ts +++ b/dotcom-rendering/src/lib/useVideoFullscreen.ts @@ -1,13 +1,14 @@ import { css } from '@emotion/react'; import { log } from '@guardian/libs'; -import React, { useEffect, useState } from 'react'; +import type React from 'react'; +import { useEffect, useState } from 'react'; import { submitClickComponentEvent } from '../client/ophan/ophan'; +import type { VideoEventKey } from '../components/YoutubeAtom/YoutubeAtom'; +import { palette } from '../palette'; +import type { RenderingTarget } from '../types/renderingTarget'; import { getVideoClient } from './bridgetApi'; import { getZIndex } from './getZIndex'; import { hasMinimumBridgetVersion } from './useIsBridgetCompatible'; -import { palette } from '../palette'; -import type { RenderingTarget } from '../types/renderingTarget'; -import type { VideoEventKey } from '../components/YoutubeAtom/YoutubeAtom'; /** * The Fullscreen API is not supported by Safari mobile, @@ -56,13 +57,14 @@ const displayFullscreenStyle = css` * Returns a global style that hides overflow on the html element when the * video is in bridget fullscreen mode. */ -export const getFullscreenGlobalHiddenOverflow = (hideOverflow: boolean) => - hideOverflow && - css` - html { - overflow: hidden; - } - `; +const getFullscreenGlobalHiddenOverflow = (hideOverflow: boolean) => + (hideOverflow && + css` + html { + overflow: hidden; + } + `) || + css``; const buildFullscreenStyles = (bridgetFullscreen: boolean) => css` ${bridgetFullscreen && displayFullscreenStyle} @@ -125,7 +127,6 @@ type Props = { type ReturnValue = { isFullscreen: boolean; isWebKitFullscreen: boolean; - isBridgetFullscreen: boolean; handleFullscreenClick: (event: React.SyntheticEvent) => void; /** * Styles for the player container element. Applies bridget fullscreen @@ -159,11 +160,11 @@ export const useVideoFullscreen = ({ }: Props): ReturnValue => { const [isFullscreen, setIsFullscreen] = useState(false); const [isWebKitFullscreen, setIsWebKitFullscreen] = useState(false); - const [isBridgetFullscreen, setIsBridgetFullscreen] = useState(false); const [shouldUseBridgetFullscreen, setShouldUseBridgetFullscreen] = useState(false); const isApps = renderingTarget === 'Apps'; + const isBridgetFullscreen = isFullscreen && shouldUseBridgetFullscreen; /* Detect whether the apps bridget client supports fullscreen */ useEffect(() => { @@ -296,11 +297,18 @@ export const useVideoFullscreen = ({ if (shouldUseBridgetFullscreen) { const videoClient = getVideoClient(); - const fullscreen = !isBridgetFullscreen; + const fullscreen = !isFullscreen; void videoClient .setFullscreen(fullscreen) - .then(() => setIsBridgetFullscreen(fullscreen)); - } else if (document.fullscreenElement) { + .then(() => setIsFullscreen(fullscreen)); + const trackingEvent = isFullscreen + ? 'enter_fullscreen' + : 'exit_fullscreen'; + sendOphanTrackingEvent(trackingEvent); + return; + } + + if (document.fullscreenElement) { void document.exitFullscreen(); } else if (playerContainerRef.current) { void playerContainerRef.current.requestFullscreen(); @@ -310,7 +318,6 @@ export const useVideoFullscreen = ({ return { isFullscreen, isWebKitFullscreen, - isBridgetFullscreen, handleFullscreenClick, fullscreenStyles: buildFullscreenStyles(isBridgetFullscreen), globalFullscreenStyles: From 7ad48f57e040e9083fbec426042f21e3011bff1c Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Wed, 17 Jun 2026 12:44:31 +0100 Subject: [PATCH 146/293] Prevents video from pausing as out-of-view when in fullscreen mode --- dotcom-rendering/src/components/SelfHostedVideo.island.tsx | 6 +++++- dotcom-rendering/src/lib/useVideoFullscreen.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx index cd08e4f31e7..2e9e1c471d3 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.island.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.island.tsx @@ -1013,7 +1013,11 @@ export const SelfHostedVideo = ({ setHasPageBecomeActive(false); } void playVideo(); - } else if (playerState === 'PLAYING' && isInView === false) { + } else if ( + playerState === 'PLAYING' && + isInView === false && + !isFullscreen + ) { void pauseVideo('PAUSED_BY_INTERSECTION_OBSERVER'); } } diff --git a/dotcom-rendering/src/lib/useVideoFullscreen.ts b/dotcom-rendering/src/lib/useVideoFullscreen.ts index 14c963222ac..b1d59223844 100644 --- a/dotcom-rendering/src/lib/useVideoFullscreen.ts +++ b/dotcom-rendering/src/lib/useVideoFullscreen.ts @@ -301,7 +301,7 @@ export const useVideoFullscreen = ({ void videoClient .setFullscreen(fullscreen) .then(() => setIsFullscreen(fullscreen)); - const trackingEvent = isFullscreen + const trackingEvent = fullscreen ? 'enter_fullscreen' : 'exit_fullscreen'; sendOphanTrackingEvent(trackingEvent); From 18614f604a7961b0c7bd6d4120d2e94715144a5c Mon Sep 17 00:00:00 2001 From: Jake <1731150+Jakeii@users.noreply.github.com> Date: Thu, 18 Jun 2026 09:16:26 +0100 Subject: [PATCH 147/293] Client side rendered scorecard tab for cricket (#16155) --- .../CricketMatchHeader.stories.tsx | 18 - .../CricketMatchHeader/CricketMatchHeader.tsx | 31 +- .../CricketMatchHeaderWrapper.island.tsx | 12 +- .../CricketScorecardPageNew.stories.tsx | 407 --------------- .../components/CricketScorecardPageNew.tsx | 77 --- .../src/components/CricketScorecardTab.tsx | 77 +++ .../CricketScorecardTabRemoteRender.tsx | 54 ++ .../components/CricketTabsDemo.stories.tsx | 482 ++++++++++++++++++ .../src/components/CricketTabsDemo.tsx | 51 ++ .../FootballMatchHeader.tsx | 6 +- .../FootballMatchHeader/Tabs.stories.tsx | 24 +- .../components/FootballMatchHeader/Tabs.tsx | 109 +++- 12 files changed, 801 insertions(+), 547 deletions(-) delete mode 100644 dotcom-rendering/src/components/CricketScorecardPageNew.stories.tsx delete mode 100644 dotcom-rendering/src/components/CricketScorecardPageNew.tsx create mode 100644 dotcom-rendering/src/components/CricketScorecardTab.tsx create mode 100644 dotcom-rendering/src/components/CricketScorecardTabRemoteRender.tsx create mode 100644 dotcom-rendering/src/components/CricketTabsDemo.stories.tsx create mode 100644 dotcom-rendering/src/components/CricketTabsDemo.tsx diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx index 83635424295..9d7ba1d20fe 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx @@ -110,9 +110,6 @@ const baseArgs = { officials: [], }, selectedTab: 'info' as 'info' | 'live' | 'report', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), matchHeaderURL: 'https://api.nextgen.guardianapps.co.uk/sport/cricket/match-header/2026-06-13/australia-women-s-cricket-team.json', refreshInterval: 3_000, @@ -187,9 +184,6 @@ export const Live = { ], }, selectedTab: 'info', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), liveURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', ), @@ -244,9 +238,6 @@ export const LiveYetToBat = { ], }, selectedTab: 'info', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), liveURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', ), @@ -314,9 +305,6 @@ export const Result = { }, }, selectedTab: 'info', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), liveURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', ), @@ -381,9 +369,6 @@ export const ResultWinByWickets = { }, selectedTab: 'info', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), liveURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', ), @@ -449,9 +434,6 @@ export const ResultDrawn = { }, }, selectedTab: 'info', - infoURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket#scorecard', - ), liveURL: new URL( 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', ), diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx index 23819d5b59e..5820fd1a556 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.tsx @@ -14,7 +14,7 @@ import { textSansItalic15Object, until, } from '@guardian/source/foundations'; -import { Fragment, type ReactNode, useMemo } from 'react'; +import { Fragment, type ReactNode, useMemo, useState } from 'react'; import type { SWRConfiguration } from 'swr'; import useSWR from 'swr'; import type { @@ -32,6 +32,7 @@ import { generateImageURL } from '../../lib/image'; import { palette } from '../../palette'; import type { ColourName } from '../../paletteDeclarations'; import { BigNumber } from '../BigNumber'; +import { CricketScorecardTabRemoteRender } from '../CricketScorecardTabRemoteRender'; import { background, border, @@ -49,9 +50,9 @@ export type CricketMatchHeaderProps = { matchHeaderURL: string; edition: EditionId; selectedTab: 'info' | 'live' | 'report'; + tabContentElement?: HTMLElement; reportURL?: URL; liveURL?: URL; - infoURL?: URL; }; type Props = CricketMatchHeaderProps & { @@ -67,6 +68,10 @@ export const CricketMatchHeader = (props: Props) => { ); const match = data?.match ?? props.initialData; + const [selectedTab, setSelectedTab] = useState<'info' | 'live' | 'report'>( + props.selectedTab, + ); + if (match === undefined) { return ( { ); } + const onInfoTabClick = () => { + setSelectedTab('info'); + }; + return (
    {
    + {selectedTab === 'info' && ( + + )} ); }; diff --git a/dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx b/dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx index c4d34f4ca93..83cda9c94d4 100644 --- a/dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeaderWrapper.island.tsx @@ -2,17 +2,7 @@ import type { CricketMatch } from '../cricketMatchV2'; import type { CricketMatchHeaderProps } from './CricketMatchHeader/CricketMatchHeader'; import { CricketMatchHeader } from './CricketMatchHeader/CricketMatchHeader'; -type Props = - | (CricketMatchHeaderProps & { - selectedTab: 'info'; - initialData: CricketMatch; - }) - | (CricketMatchHeaderProps & { - selectedTab: 'live' | 'report'; - initialData?: never; - }); - -export const CricketMatchHeaderWrapper = (props: Props) => ( +export const CricketMatchHeaderWrapper = (props: CricketMatchHeaderProps) => ( ; - -export const CricketScorecardPageNewFixture = meta.story({ - name: 'Cricket Scorecard Page Fixture (New)', - args: baseArgs, -}); - -export const CricketScorecardPageNewLive = meta.story({ - name: 'Cricket Scorecard Page Live (New)', - args: { - ...baseArgs, - - liveURL: new URL( - 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', - ), - - match: { - ...baseArgs.match, - kind: 'Live', - day: 2, - innings: [ - { - description: 'India first innings', - battingTeam: 'India', - declared: false, - forfeited: false, - inningsTotals: { - runs: 254, - overs: '49.0', - extras: 8, - wickets: 3, - }, - extras: { - byes: 1, - legByes: 2, - wides: 5, - noBalls: 0, - penalties: 0, - }, - batters: [ - { - name: 'Rohit Sharma', - ballsFaced: 83, - runs: 76, - fours: 7, - sixes: 3, - howOut: 'st Latham b Ravindra', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Shubman Gill', - ballsFaced: 50, - runs: 31, - fours: 0, - sixes: 1, - howOut: 'c Phillips b Santner', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Virat Kohli', - ballsFaced: 2, - runs: 1, - fours: 0, - sixes: 0, - howOut: 'lbw b Bracewell', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Shreyas Iyer', - ballsFaced: 62, - runs: 48, - fours: 2, - sixes: 2, - howOut: 'c Ravindra b Santner', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Lokesh Rahul', - ballsFaced: 45, - runs: 39, - fours: 3, - sixes: 0, - howOut: 'run out (Williamson)', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Hardik Pandya', - ballsFaced: 18, - runs: 22, - fours: 2, - sixes: 1, - howOut: 'c Bracewell b Smith', - out: true, - nonStrike: true, - onStrike: false, - }, - { - name: 'Ravindra Jadeja', - ballsFaced: 24, - runs: 30, - fours: 1, - sixes: 0, - howOut: 'not out', - out: false, - onStrike: true, - nonStrike: true, - }, - ], - bowlers: [ - { - name: 'Mohammed Shami', - overs: 9, - maidens: 0, - runs: 74, - wickets: 1, - balls: 55, - }, - { - name: 'Hardik Pandya', - overs: 3, - maidens: 0, - runs: 30, - wickets: 0, - balls: 18, - }, - { - name: 'Varun Chakaravarthy', - overs: 10, - maidens: 0, - runs: 45, - wickets: 2, - balls: 60, - }, - { - name: 'Kuldeep Yadav', - overs: 10, - maidens: 0, - runs: 40, - wickets: 2, - balls: 60, - }, - { - name: 'Axar Patel', - overs: 8, - maidens: 0, - runs: 29, - wickets: 0, - balls: 48, - }, - { - name: 'Ravindra Jadeja', - overs: 10, - maidens: 0, - runs: 30, - wickets: 1, - balls: 60, - }, - ], - fallOfWickets: [ - { - order: 1, - name: 'Shubman Gill', - runs: 105, - }, - { - order: 2, - name: 'Virat Kohli', - runs: 106, - }, - { - order: 3, - name: 'Rohit Sharma', - runs: 122, - }, - ], - }, - { - description: 'New Zealand first innings', - battingTeam: 'New Zealand', - declared: false, - forfeited: false, - inningsTotals: { - runs: 254, - overs: '49.0', - extras: 8, - wickets: 2, - }, - extras: { - byes: 0, - legByes: 3, - noBalls: 0, - penalties: 0, - wides: 13, - }, - batters: [ - { - name: 'Will Young', - ballsFaced: 23, - runs: 15, - fours: 2, - sixes: 0, - howOut: 'lbw b Vinod', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Rachin Ravindra', - ballsFaced: 29, - runs: 37, - fours: 4, - sixes: 1, - howOut: 'b Yadav', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Kane Williamson', - ballsFaced: 14, - runs: 11, - fours: 1, - sixes: 0, - howOut: 'c & b Yadav', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Daryl Mitchell', - ballsFaced: 101, - runs: 63, - fours: 3, - sixes: 0, - howOut: 'c Sharma b Ahmed', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Tom Latham', - ballsFaced: 56, - runs: 44, - fours: 4, - sixes: 0, - howOut: 'c Kohli b Shami', - out: true, - onStrike: false, - nonStrike: true, - }, - { - name: 'Glenn Phillips', - ballsFaced: 34, - runs: 55, - fours: 3, - sixes: 3, - howOut: 'not out', - out: false, - onStrike: true, - nonStrike: true, - }, - { - name: 'Michael Bracewell', - ballsFaced: 8, - runs: 5, - fours: 0, - sixes: 0, - howOut: 'not out', - out: false, - onStrike: false, - nonStrike: true, - }, - ], - bowlers: [ - { - name: 'Mohammed Shami', - overs: 9, - maidens: 0, - runs: 74, - wickets: 1, - balls: 54, - }, - { - name: 'Hardik Pandya', - overs: 3, - maidens: 0, - runs: 30, - wickets: 0, - balls: 18, - }, - { - name: 'Varun Chakaravarthy', - overs: 10, - maidens: 0, - runs: 45, - wickets: 2, - balls: 60, - }, - { - name: 'Kuldeep Yadav', - overs: 10, - maidens: 0, - runs: 40, - wickets: 2, - balls: 60, - }, - ], - fallOfWickets: [ - { - order: 1, - name: 'Will Young', - runs: 57, - }, - { - order: 2, - name: 'Rachin Ravindra', - runs: 69, - }, - ], - }, - ], - }, - }, -}); diff --git a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx b/dotcom-rendering/src/components/CricketScorecardPageNew.tsx deleted file mode 100644 index 3929b47b8b4..00000000000 --- a/dotcom-rendering/src/components/CricketScorecardPageNew.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { css } from '@emotion/react'; -import { from, space } from '@guardian/source/foundations'; -import type { CricketMatch } from '../cricketMatchV2'; -import { grid } from '../grid'; -import { type EditionId } from '../lib/edition'; -import { palette } from '../palette'; -import { CricketMatchHeaderWrapper } from './CricketMatchHeaderWrapper.island'; -import { CricketScorecardNew } from './CricketScorecardNew'; - -export const CricketScorecardPageNew = ({ - match, - edition, - matchHeaderURL, - infoURL, - liveURL, - reportURL, -}: { - match: CricketMatch; - edition: EditionId; - matchHeaderURL: string; - infoURL?: URL; - liveURL?: URL; - reportURL?: URL; -}) => { - return ( -
    - -
    -
    - -
    -
    -
    - ); -}; - -const bodyGridStyles = css` - ${grid.paddedContainer} - position: relative; - padding-top: ${space[4]}px; - padding-bottom: ${space[8]}px; - ${from.tablet} { - padding-top: ${space[2]}px; - padding-bottom: ${space[14]}px; - &::before, - &::after { - content: ''; - position: absolute; - border-left: 1px solid ${palette('--article-border')}; - z-index: 1; - top: 0; - bottom: 0; - } - - &::after { - right: 0; - } - } -`; diff --git a/dotcom-rendering/src/components/CricketScorecardTab.tsx b/dotcom-rendering/src/components/CricketScorecardTab.tsx new file mode 100644 index 00000000000..7758b35c0aa --- /dev/null +++ b/dotcom-rendering/src/components/CricketScorecardTab.tsx @@ -0,0 +1,77 @@ +import { css } from '@emotion/react'; +import { from, space } from '@guardian/source/foundations'; +import { useEffect, useRef } from 'react'; +import type { CricketMatch } from '../cricketMatchV2'; +import { grid } from '../grid'; +import { palette } from '../palette'; +import { CricketScorecardNew } from './CricketScorecardNew'; + +export type CricketScorecardTabProps = Pick< + CricketMatch, + 'innings' | 'officials' | 'homeTeam' | 'awayTeam' | 'result' +>; + +export const CricketScorecardTab = ({ + innings, + officials, + homeTeam, + awayTeam, + result, +}: CricketScorecardTabProps) => { + const regionRef = useRef(null); + + useEffect(() => { + // Focus the tab content when it renders for accessibility, so that screen readers will read out the scorecard label when it displays. + regionRef.current?.focus({ + preventScroll: true, + }); + }, []); + + return ( +
    +
    + +
    +
    + ); +}; + +const bodyGridStyles = css` + ${grid.paddedContainer} + position: relative; + padding-top: ${space[4]}px; + padding-bottom: ${space[8]}px; + ${from.tablet} { + padding-top: ${space[2]}px; + padding-bottom: ${space[14]}px; + &::before, + &::after { + content: ''; + position: absolute; + border-left: 1px solid ${palette('--article-border')}; + z-index: 1; + top: 0; + bottom: 0; + } + + &::after { + right: 0; + } + } +`; diff --git a/dotcom-rendering/src/components/CricketScorecardTabRemoteRender.tsx b/dotcom-rendering/src/components/CricketScorecardTabRemoteRender.tsx new file mode 100644 index 00000000000..87eb5349d01 --- /dev/null +++ b/dotcom-rendering/src/components/CricketScorecardTabRemoteRender.tsx @@ -0,0 +1,54 @@ +import { useEffect, useRef } from 'react'; +import type { Root } from 'react-dom/client'; +import { createRoot } from 'react-dom/client'; +import type { CricketScorecardTabProps } from './CricketScorecardTab'; +import { CricketScorecardTab } from './CricketScorecardTab'; + +type Props = { + tabContentElement?: HTMLElement; +} & CricketScorecardTabProps; + +/** + * Renders the cricket scorecard page into another part of the DOM. + * + * First of all, only this tab is rendered client side because adding a cricket + * scorecard page to the app and MAPI would be a significant amount of work + * across apps & webx. + * + * Secondly, we use ReactDOM's `createRoot` and `render` here instead of + * rendering as part of the main React tree to avoid wrapping a large portion + * of the StandardLayout and LiveLayout in an island, which would be very large and + * require passing the entire live blog or article content as props to said island. + * + */ +export const CricketScorecardTabRemoteRender = ({ + tabContentElement, + innings, + officials, + homeTeam, + awayTeam, + result, +}: Props) => { + const rootRef = useRef(null); + + useEffect(() => { + if (tabContentElement === undefined) { + return; + } + // Create the root if it doesn't exist, subsequent renders will reuse the same root + rootRef.current ??= createRoot(tabContentElement); + + // `render` will efficiently update the content as needed for subsequent renders, we don't need to unmount or clear the root ourselves + rootRef.current.render( + , + ); + }, [tabContentElement, innings, officials, homeTeam, awayTeam, result]); + + return null; +}; diff --git a/dotcom-rendering/src/components/CricketTabsDemo.stories.tsx b/dotcom-rendering/src/components/CricketTabsDemo.stories.tsx new file mode 100644 index 00000000000..0791d9e2a70 --- /dev/null +++ b/dotcom-rendering/src/components/CricketTabsDemo.stories.tsx @@ -0,0 +1,482 @@ +import type { ComponentProps } from 'react'; +import { useArgs } from 'storybook/preview-api'; +import { expect, userEvent, waitFor } from 'storybook/test'; +import { allModes } from '../../.storybook/modes'; +import preview from '../../.storybook/preview'; +import { CricketTabsDemo } from './CricketTabsDemo'; + +const meta = preview.meta({ + component: CricketTabsDemo, + title: 'Components/CricketTabsDemo', + parameters: { + chromatic: { + modes: { + 'light leftCol': allModes['light leftCol'], + }, + }, + }, +}); + +const baseArgs = { + initialData: { + kind: 'Fixture', + series: 'Ashes 2025–2026', + competition: 'Second Test Match', + venue: 'Bengaluru Cricket Ground', + matchDate: new Date('2026-01-26'), + homeTeam: { + paID: 'f822b9f9-9fdc-399f-54f9-e621edaf0a28', + name: 'India', + lineup: [ + 'Rohit Sharma', + 'Shubman Gill', + 'Virat Kohli', + 'Shreyas Iyer', + 'Axar Patel', + 'Lokesh Rahul', + 'Hardik Pandya', + 'Ravindra Jadeja', + 'Mohammed Shami', + 'Kuldeep Yadav', + 'Varun Chakaravarthy', + ], + }, + awayTeam: { + paID: '110c70b5-c05f-3be7-6670-baecd50a8c6b', + name: 'New Zealand', + lineup: [ + 'Rachin Ravindra', + 'Will Young', + 'Kane Williamson', + 'Daryl Mitchell', + 'Tom Latham', + 'Glenn Phillips', + 'Michael Bracewell', + 'Mitchell Santner', + 'Nathan Smith', + 'Kyle Jamieson', + "Will O'Rourke", + ], + }, + innings: [], + officials: [ + 'P R Reiffel', + 'R K Illingworth', + 'J S Wilson', + 'H D P K Dharmasena', + 'R S Madugalle', + ], + }, + matchHeaderURL: + 'https://api.nextgen.guardianapps.co.uk/football/api/match-header/2026/02/08/26247/48490.json', + selectedTab: 'live' as 'info' | 'live' | 'report', + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), + edition: 'UK', +} satisfies ComponentProps; + +const liveArgs = { + ...baseArgs, + selectedTab: 'info', + + liveURL: new URL( + 'https://www.theguardian.com/sport/live/2026/jan/27/australia-v-england-second-test-day-two-live-cricket', + ), + + initialData: { + ...baseArgs.initialData, + kind: 'Live', + day: 2, + innings: [ + { + description: 'India first innings', + battingTeam: 'India', + declared: false, + forfeited: false, + inningsTotals: { + runs: 254, + overs: '49.0', + extras: 8, + wickets: 3, + }, + extras: { + byes: 1, + legByes: 2, + wides: 5, + noBalls: 0, + penalties: 0, + }, + batters: [ + { + name: 'Rohit Sharma', + ballsFaced: 83, + runs: 76, + fours: 7, + sixes: 3, + howOut: 'st Latham b Ravindra', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Shubman Gill', + ballsFaced: 50, + runs: 31, + fours: 0, + sixes: 1, + howOut: 'c Phillips b Santner', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Virat Kohli', + ballsFaced: 2, + runs: 1, + fours: 0, + sixes: 0, + howOut: 'lbw b Bracewell', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Shreyas Iyer', + ballsFaced: 62, + runs: 48, + fours: 2, + sixes: 2, + howOut: 'c Ravindra b Santner', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Lokesh Rahul', + ballsFaced: 45, + runs: 39, + fours: 3, + sixes: 0, + howOut: 'run out (Williamson)', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Hardik Pandya', + ballsFaced: 18, + runs: 22, + fours: 2, + sixes: 1, + howOut: 'c Bracewell b Smith', + out: true, + nonStrike: true, + onStrike: false, + }, + { + name: 'Ravindra Jadeja', + ballsFaced: 24, + runs: 30, + fours: 1, + sixes: 0, + howOut: 'not out', + out: false, + onStrike: true, + nonStrike: true, + }, + ], + bowlers: [ + { + name: 'Mohammed Shami', + overs: 9, + maidens: 0, + runs: 74, + wickets: 1, + balls: 55, + }, + { + name: 'Hardik Pandya', + overs: 3, + maidens: 0, + runs: 30, + wickets: 0, + balls: 18, + }, + { + name: 'Varun Chakaravarthy', + overs: 10, + maidens: 0, + runs: 45, + wickets: 2, + balls: 60, + }, + { + name: 'Kuldeep Yadav', + overs: 10, + maidens: 0, + runs: 40, + wickets: 2, + balls: 60, + }, + { + name: 'Axar Patel', + overs: 8, + maidens: 0, + runs: 29, + wickets: 0, + balls: 48, + }, + { + name: 'Ravindra Jadeja', + overs: 10, + maidens: 0, + runs: 30, + wickets: 1, + balls: 60, + }, + ], + fallOfWickets: [ + { + order: 1, + name: 'Shubman Gill', + runs: 105, + }, + { + order: 2, + name: 'Virat Kohli', + runs: 106, + }, + { + order: 3, + name: 'Rohit Sharma', + runs: 122, + }, + ], + }, + { + description: 'New Zealand first innings', + battingTeam: 'New Zealand', + declared: false, + forfeited: false, + inningsTotals: { + runs: 254, + overs: '49.0', + extras: 8, + wickets: 2, + }, + extras: { + byes: 0, + legByes: 3, + noBalls: 0, + penalties: 0, + wides: 13, + }, + batters: [ + { + name: 'Will Young', + ballsFaced: 23, + runs: 15, + fours: 2, + sixes: 0, + howOut: 'lbw b Vinod', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Rachin Ravindra', + ballsFaced: 29, + runs: 37, + fours: 4, + sixes: 1, + howOut: 'b Yadav', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Kane Williamson', + ballsFaced: 14, + runs: 11, + fours: 1, + sixes: 0, + howOut: 'c & b Yadav', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Daryl Mitchell', + ballsFaced: 101, + runs: 63, + fours: 3, + sixes: 0, + howOut: 'c Sharma b Ahmed', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Tom Latham', + ballsFaced: 56, + runs: 44, + fours: 4, + sixes: 0, + howOut: 'c Kohli b Shami', + out: true, + onStrike: false, + nonStrike: true, + }, + { + name: 'Glenn Phillips', + ballsFaced: 34, + runs: 55, + fours: 3, + sixes: 3, + howOut: 'not out', + out: false, + onStrike: true, + nonStrike: true, + }, + ], + bowlers: [ + { + name: 'Mohammed Shami', + overs: 9, + maidens: 0, + runs: 74, + wickets: 1, + balls: 54, + }, + { + name: 'Hardik Pandya', + overs: 3, + maidens: 0, + runs: 30, + wickets: 0, + balls: 18, + }, + { + name: 'Varun Chakaravarthy', + overs: 10, + maidens: 0, + runs: 45, + wickets: 2, + balls: 60, + }, + { + name: 'Kuldeep Yadav', + overs: 10, + maidens: 0, + runs: 40, + wickets: 2, + balls: 60, + }, + ], + fallOfWickets: [ + { + order: 1, + name: 'Will Young', + runs: 57, + }, + { + order: 2, + name: 'Rachin Ravindra', + runs: 69, + }, + ], + }, + ], + }, +} satisfies ComponentProps; + +export const CricketScorecardPageNewFixture = meta.story({ + name: 'Live', + args: baseArgs, +}); + +export const CricketScorecardPageNewLive = meta.story({ + name: 'Scorecard', + args: liveArgs, +}); + +export const ClickScorecardTab = meta.story({ + name: 'Live -> Scorecard', + args: { ...liveArgs, selectedTab: 'live' }, + play: async ({ canvas }) => { + // Click the Scorecard tab button + const scorecardTab = canvas.getByRole('button', { name: 'Scorecard' }); + await userEvent.click(scorecardTab); + + // Check that the scorecard renders in the main content element + await expect( + await canvas.findByRole('heading', { + name: 'Lineups', + }), + ).toBeInTheDocument(); + }, +}); +export const UpdateScorecardTab = meta.story({ + name: 'Scorecard Update', + args: liveArgs, + render: function Render(args) { + const [, updateArgs] = useArgs(); + + // Simulates external data update + const simulateUpdate = () => + updateArgs({ + ...args, + initialData: { + ...args.initialData, + innings: [ + args.initialData!.innings[0], + { + ...args.initialData!.innings[1], + batters: [ + ...args.initialData!.innings[1]!.batters, + { + name: 'Michael Bracewell', + ballsFaced: 8, + runs: 5, + fours: 0, + sixes: 0, + howOut: 'not out', + out: false, + onStrike: false, + nonStrike: true, + }, + ], + }, + ], + }, + }); + + return ( + <> + + + + ); + }, + play: async ({ canvas }) => { + await canvas.findByRole('heading', { + name: 'Lineups', + }); + + await expect( + canvas.queryByRole('rowheader', { name: /Michael Bracewell/ }), + ).toBeNull(); + + const simulateUpdateButton = canvas.getByTestId('simulate-update'); + await userEvent.click(simulateUpdateButton); + + await waitFor(() => + expect( + canvas.getByRole('rowheader', { name: /Michael Bracewell/ }), + ).toBeInTheDocument(), + ); + }, +}); diff --git a/dotcom-rendering/src/components/CricketTabsDemo.tsx b/dotcom-rendering/src/components/CricketTabsDemo.tsx new file mode 100644 index 00000000000..c80f5ec76c1 --- /dev/null +++ b/dotcom-rendering/src/components/CricketTabsDemo.tsx @@ -0,0 +1,51 @@ +import { useEffect, useState } from 'react'; +import type { CricketMatch } from '../cricketMatchV2'; +import { type EditionId } from '../lib/edition'; +import { CricketMatchHeaderWrapper } from './CricketMatchHeaderWrapper.island'; +import type { TabName } from './FootballMatchHeader/Tabs'; + +/** + * This component is just used to test the CricketMatchHeader tab rendering in Storybook. + * It is not used in production. + */ +export const CricketTabsDemo = ({ + initialData, + edition, + matchHeaderURL, + selectedTab, + liveURL, + reportURL, +}: { + initialData?: CricketMatch; + edition: EditionId; + matchHeaderURL: string; + selectedTab: TabName; + liveURL?: URL; + reportURL?: URL; +}) => { + const [tabContentElement, setTabContentElement] = + useState(null); + + useEffect(() => { + const el = document.getElementById('cricket-tab-content'); + if (el) { + // eslint-disable-next-line react-hooks/set-state-in-effect -- We need to capture the element client side + setTabContentElement(el); + } + }, []); + + return ( +
    + +
    Initial Tab content
    +
    + ); +}; diff --git a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx index e1130b80d52..3cc67b8d82c 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/FootballMatchHeader.tsx @@ -151,9 +151,9 @@ export const FootballMatchHeader = (props: Props) => { sportKind="football" matchKind={match.kind} selected={props.initialTab} - reportURL={tabs.reportURL} - liveURL={tabs.liveURL} - infoURL={tabs.infoURL} + reportTab={tabs.reportURL} + liveTab={tabs.liveURL} + infoTab={tabs.infoURL} />
    diff --git a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx index eb744c7137a..d3b28a6cac0 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.stories.tsx @@ -28,7 +28,7 @@ export const LiveWhenLive = meta.story({ selected: 'live', sportKind: 'football', matchKind: 'Live', - infoURL: new URL( + infoTab: new URL( 'https://www.theguardian.com/football/match/2025/nov/26/arsenal-v-bayernmunich', ), }, @@ -46,9 +46,27 @@ export const ReportWhenResult = meta.story({ selected: 'report', sportKind: 'football', matchKind: 'Result', - liveURL: new URL( + liveTab: new URL( 'https://www.theguardian.com/football/live/2025/nov/26/arsenal-v-bayern-munich-champions-league-live', ), - infoURL: LiveWhenLive.input.args.infoURL, + infoTab: LiveWhenLive.input.args.infoTab, + }, +}); + +export const ButtonInfoTab = meta.story({ + ...MatchInfoWhenFixture.input, + args: { + selected: 'live', + sportKind: 'football', + matchKind: 'Live', + infoTab: () => { + // + }, + }, + parameters: { + colourSchemeBackground: { + light: palette('--football-match-header-live-background'), + dark: palette('--football-match-header-live-background'), + }, }, }); diff --git a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx index 0de0b39793f..fdd4837f84b 100644 --- a/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx +++ b/dotcom-rendering/src/components/FootballMatchHeader/Tabs.tsx @@ -19,13 +19,13 @@ type Props = { matchKind: FootballMatch['kind']; sportKind: 'football' | 'cricket'; selected: TabName; - reportURL?: URL; - liveURL?: URL; - infoURL?: URL; + reportTab?: URL; + liveTab?: URL; + infoTab?: URL | (() => void); }; export const Tabs = (props: Props) => ( -
    ); From 7154ddcd8dffa4017a614d347d1d7299c3768bcd Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Tue, 16 Jun 2026 16:55:45 +0100 Subject: [PATCH 149/293] Adds debounce to YouTube atom player to help with Safari attention tracking --- .../src/components/YoutubeAtom/YoutubeAtomPlayer.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx index 542e9dc11cb..049ded70633 100644 --- a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx +++ b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx @@ -444,6 +444,7 @@ export const YoutubeAtomPlayer = ({ const id = `youtube-player-${uniqueId}`; const [isInView, setNode] = useIsInView({ + debounce: true, repeat: true, threshold: 0.5, }); From 6f36e54c171fda0e9cbe6f471372aceed810a757 Mon Sep 17 00:00:00 2001 From: Sam Hession Date: Wed, 17 Jun 2026 15:59:27 +0100 Subject: [PATCH 150/293] Hoist useIsInView up into YouTubeAtom component allowing for use across Player and Sticky --- .../src/components/YoutubeAtom/YoutubeAtom.tsx | 12 ++++++++++++ .../src/components/YoutubeAtom/YoutubeAtomPlayer.tsx | 10 ++-------- .../src/components/YoutubeAtom/YoutubeAtomSticky.tsx | 10 ++-------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.tsx b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.tsx index 8d7442ee741..1e7498bd6e2 100644 --- a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.tsx +++ b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.tsx @@ -1,6 +1,7 @@ import type { ConsentState } from '@guardian/consent-manager'; import { useCallback, useState } from 'react'; import type { ArticleFormat } from '../../lib/articleFormat'; +import { useIsInView } from '../../lib/useIsInView'; import type { AdTargeting } from '../../types/commercial'; import type { AspectRatio } from '../../types/front'; import type { ArticleMedia } from '../../types/mainMedia'; @@ -128,6 +129,12 @@ export const YoutubeAtom = ({ const [isClosed, setIsClosed] = useState(false); const [pauseVideo, setPauseVideo] = useState(false); + const [isInView, setRef] = useIsInView({ + threshold: 0.5, + repeat: true, + debounce: true, + }); + /** * Consent and ad targeting are initially undefined and set by subsequent re-renders */ @@ -191,6 +198,7 @@ export const YoutubeAtom = ({ data-atom-id={atomId} data-video-id={videoId} data-video-unique-id={uniqueId} + ref={setRef} > ) } diff --git a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx index 049ded70633..b234aa101c6 100644 --- a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx +++ b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomPlayer.tsx @@ -12,7 +12,6 @@ import { import { getVideoClient } from '../../lib/bridgetApi'; import { getZIndex } from '../../lib/getZIndex'; import { getAuthStatus } from '../../lib/identity'; -import { useIsInView } from '../../lib/useIsInView'; import { useVideoAttentionTracking } from '../../lib/useVideoAttentionTracking'; import { useVideoMilestoneTracking } from '../../lib/useVideoMilestoneTracking'; import type { CustomPlayEventDetail } from '../../lib/video'; @@ -46,6 +45,7 @@ type Props = { consentState: ConsentState; abTestParticipations: Record; renderingTarget: RenderingTarget; + isInView: boolean; }; /** @@ -404,6 +404,7 @@ export const YoutubeAtomPlayer = ({ consentState, abTestParticipations, renderingTarget, + isInView, }: Props): JSX.Element => { /** * useRef for player and progressEvents @@ -443,12 +444,6 @@ export const YoutubeAtomPlayer = ({ const id = `youtube-player-${uniqueId}`; - const [isInView, setNode] = useIsInView({ - debounce: true, - repeat: true, - threshold: 0.5, - }); - useVideoAttentionTracking( `gu-video-youtube-${atomId}`, isInView, @@ -751,7 +746,6 @@ export const YoutubeAtomPlayer = ({ data-atom-type="youtube" title={title} css={enableAds && imaPlayerStyles} - ref={setNode} >
    ); diff --git a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomSticky.tsx b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomSticky.tsx index 242b5a55d59..dade89b397c 100644 --- a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomSticky.tsx +++ b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtomSticky.tsx @@ -9,7 +9,6 @@ import { SvgCross } from '@guardian/source/react-components'; import detectMobile from 'is-mobile'; import { useEffect, useState } from 'react'; import { submitComponentEvent } from '../../client/ophan/ophan'; -import { useIsInView } from '../../lib/useIsInView'; import { useConfig } from '../ConfigContext'; import type { VideoEventKey } from './YoutubeAtom'; @@ -124,6 +123,7 @@ type Props = { isClosed: boolean; setIsClosed: (state: boolean) => void; shouldPauseOutOfView: boolean; + isIntersecting: boolean | null; }; const isMobile = detectMobile({ tablet: true }); @@ -140,18 +140,13 @@ export const YoutubeAtomSticky = ({ isClosed, setIsClosed, shouldPauseOutOfView, + isIntersecting, }: Props): JSX.Element => { const [isSticky, setIsSticky] = useState(false); const [stickEventSent, setStickEventSent] = useState(false); const [showOverlay, setShowOverlay] = useState(isMobile); const { renderingTarget } = useConfig(); - const [isIntersecting, setRef] = useIsInView({ - threshold: 0.5, - repeat: true, - debounce: true, - }); - /** * Click handler for the sticky video close button */ @@ -269,7 +264,6 @@ export const YoutubeAtomSticky = ({ return (
    Date: Thu, 18 Jun 2026 11:26:12 +0100 Subject: [PATCH 151/293] Hosted Gallery page updates (#16193) * allow hosted gallery images to take up 100% of the width just like standard gallery pictures * update spacing and fonts on hosted gallery components * update background colour of hosted gallery page --- .../src/components/ArticleHeadline.tsx | 40 ++++++- .../src/components/GalleryCaption.tsx | 17 +-- dotcom-rendering/src/components/Picture.tsx | 13 +- .../src/components/Standfirst.tsx | 5 +- .../src/layouts/HostedGalleryLayout.tsx | 113 +++++++++--------- .../src/layouts/HostedVideoLayout.tsx | 2 +- dotcom-rendering/src/paletteDeclarations.ts | 14 ++- 7 files changed, 125 insertions(+), 79 deletions(-) diff --git a/dotcom-rendering/src/components/ArticleHeadline.tsx b/dotcom-rendering/src/components/ArticleHeadline.tsx index 8d48e3ebe44..3b0c141fc86 100644 --- a/dotcom-rendering/src/components/ArticleHeadline.tsx +++ b/dotcom-rendering/src/components/ArticleHeadline.tsx @@ -167,6 +167,15 @@ const labsGalleryFont = css` } `; +const hostedGalleryFont = css` + ${textSansBold34}; + line-height: 2.1875rem; + + ${from.desktop} { + line-height: 3.125rem; + } +`; + const jumboLabsFont = css` ${textSansBold34}; font-size: 3.125rem; @@ -888,8 +897,7 @@ export const ArticleHeadline = ({
    ); - case ArticleDesign.Gallery: - case ArticleDesign.HostedGallery: { + case ArticleDesign.Gallery: { return (
    ); } + case ArticleDesign.HostedGallery: { + return ( +
    +

    + + {headlineString} + +

    +
    + ); + } default: return (
    )} -
    - {shouldIncludeShareButton && ( + + {shouldIncludeShareButton && ( +
    - )} -
    +
    + )} ); }; diff --git a/dotcom-rendering/src/components/Picture.tsx b/dotcom-rendering/src/components/Picture.tsx index 9f152d4540a..0866710bebf 100644 --- a/dotcom-rendering/src/components/Picture.tsx +++ b/dotcom-rendering/src/components/Picture.tsx @@ -175,8 +175,7 @@ const decideImageWidths = ({ */ if ( format.design === ArticleDesign.HostedArticle || - format.design === ArticleDesign.HostedVideo || - format.design === ArticleDesign.HostedGallery + format.design === ArticleDesign.HostedVideo ) { return [ { @@ -334,7 +333,10 @@ const decideImageWidths = ({ }, ]; } - } else if (format.design === ArticleDesign.Gallery) { + } else if ( + format.design === ArticleDesign.Gallery || + format.design === ArticleDesign.HostedGallery + ) { return [ { breakpoint: breakpoints.mobile, width: 375 }, { breakpoint: breakpoints.mobileMedium, width: 480 }, @@ -544,7 +546,10 @@ export const Sources = ({ sources }: { sources: ImageSource[] }) => { }; const styles = ({ design }: ArticleFormat, isLightbox: boolean) => { - if (design === ArticleDesign.Gallery) { + if ( + design === ArticleDesign.Gallery || + design === ArticleDesign.HostedGallery + ) { return css` img { width: 100%; diff --git a/dotcom-rendering/src/components/Standfirst.tsx b/dotcom-rendering/src/components/Standfirst.tsx index 57be3cf9816..0567d1dbc99 100644 --- a/dotcom-rendering/src/components/Standfirst.tsx +++ b/dotcom-rendering/src/components/Standfirst.tsx @@ -83,7 +83,6 @@ const decideFont = ({ display, design, theme }: ArticleFormat) => { const isLabs = theme === ArticleSpecial.Labs; switch (design) { case ArticleDesign.Gallery: - case ArticleDesign.HostedGallery: if (isLabs) { return css` ${textSansBold15}; @@ -92,6 +91,10 @@ const decideFont = ({ display, design, theme }: ArticleFormat) => { return css` ${headlineMedium20} `; + case ArticleDesign.HostedGallery: + return css` + ${textSans24}; + `; case ArticleDesign.Obituary: case ArticleDesign.Comment: case ArticleDesign.Letter: diff --git a/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx b/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx index 215c6c5d419..2b9987913f6 100644 --- a/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx +++ b/dotcom-rendering/src/layouts/HostedGalleryLayout.tsx @@ -5,7 +5,6 @@ import { space, } from '@guardian/source/foundations'; import { ArticleHeadline } from '../components/ArticleHeadline'; -import { ArticleTitle } from '../components/ArticleTitle'; import { GalleryImage } from '../components/GalleryImage'; import { HostedContentHeader } from '../components/HostedContentHeader.island'; import { Island } from '../components/Island'; @@ -40,14 +39,38 @@ const headerStyles = css` ${grid.container} background-color: ${palette('--article-inner-background')}; + /** Additional padding needed due to no main media pushing the content down */ + padding-top: ${space[24]}px; + ${from.tablet} { border-bottom: 1px solid ${palette('--article-border')}; } + + ${from.leftCol} { + padding-top: ${space[4]}px; + } `; const shareButtonStyles = css` - margin-top: ${space[4]}px; - padding: ${space[1]}px; + ${grid.column.centre} + padding-bottom: ${space[6]}px; + ${from.tablet} { + position: relative; + &::before { + content: ''; + position: absolute; + left: -10px; + top: 0; + bottom: 0; + width: 1px; + background-color: ${palette('--article-border')}; + } + } + + & button { + margin-top: ${space[4]}px; + padding: ${space[1]}px; + } `; export const HostedGalleryLayout = (props: WebProps | AppProps) => { @@ -67,7 +90,7 @@ export const HostedGalleryLayout = (props: WebProps | AppProps) => { showTopBorder={false} shouldCenter={false} backgroundColour={sourcePalette.neutral[7]} - padSides={true} + padSides={false} element="header" > @@ -88,13 +111,6 @@ export const HostedGalleryLayout = (props: WebProps | AppProps) => { format={format} renderingTarget={props.renderingTarget} /> - { /> {renderingTarget === 'Web' && ( -
    -
    - - - -
    +
    + + +
    )} @@ -189,20 +184,22 @@ const GalleryBody = (props: { }) => ( <> {props.bodyElements.map((element) => { - switch (element._type) { - case 'model.dotcomrendering.pageElements.ImageBlockElement': - return ( - - ); - default: - return null; + if ( + element._type === + 'model.dotcomrendering.pageElements.ImageBlockElement' + ) { + return ( + + ); + } else { + return null; } })} diff --git a/dotcom-rendering/src/layouts/HostedVideoLayout.tsx b/dotcom-rendering/src/layouts/HostedVideoLayout.tsx index 5ff4014ac6d..0c414ea6ed2 100644 --- a/dotcom-rendering/src/layouts/HostedVideoLayout.tsx +++ b/dotcom-rendering/src/layouts/HostedVideoLayout.tsx @@ -196,7 +196,7 @@ export const HostedVideoLayout = (props: WebProps | AppProps) => { showTopBorder={false} shouldCenter={false} backgroundColour={sourcePalette.neutral[7]} - padSides={true} + padSides={false} element="header" > diff --git a/dotcom-rendering/src/paletteDeclarations.ts b/dotcom-rendering/src/paletteDeclarations.ts index c6edc53c8e4..22aee146b06 100644 --- a/dotcom-rendering/src/paletteDeclarations.ts +++ b/dotcom-rendering/src/paletteDeclarations.ts @@ -213,7 +213,6 @@ const headlineBackgroundLight: PaletteFunction = ({ case ArticleDisplay.Standard: switch (design) { case ArticleDesign.Gallery: - case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; case ArticleDesign.Interview: return sourcePalette.neutral[7]; @@ -1939,6 +1938,8 @@ const articleInnerAdBackgroundLight: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[93]; case ArticleDesign.Gallery: return sourcePalette.neutral[7]; + case ArticleDesign.HostedGallery: + return sourcePalette.neutral[10]; default: return sourcePalette.neutral[97]; } @@ -1948,6 +1949,7 @@ const articleInnerAdBackgroundDark: PaletteFunction = ({ design }) => { case ArticleDesign.LiveBlog: return sourcePalette.neutral[7]; case ArticleDesign.Gallery: + case ArticleDesign.HostedGallery: return sourcePalette.neutral[10]; default: return sourcePalette.neutral[20]; @@ -2280,7 +2282,6 @@ const standfirstBackgroundLight: PaletteFunction = ({ return sourcePalette.neutral[93]; } case ArticleDesign.Gallery: - case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; default: return articleBackgroundLight({ design, display, theme }); @@ -3178,8 +3179,9 @@ const articleBackgroundLight: PaletteFunction = ({ case ArticleDesign.FullPageInteractive: return 'transparent'; case ArticleDesign.Gallery: - case ArticleDesign.HostedGallery: return '#0d0d0d'; + case ArticleDesign.HostedGallery: + return sourcePalette.neutral[10]; default: switch (theme) { case ArticleSpecial.SpecialReport: @@ -3241,9 +3243,9 @@ const articleInnerBackgroundLight: PaletteFunction = ({ design, theme }) => { return sourcePalette.neutral[0]; } case ArticleDesign.Gallery: - case ArticleDesign.HostedGallery: return sourcePalette.neutral[7]; - + case ArticleDesign.HostedGallery: + return sourcePalette.neutral[10]; default: return 'transparent'; } @@ -3549,6 +3551,8 @@ const articleBorderLight: PaletteFunction = ({ design, theme }) => { case ArticleDesign.HostedArticle: case ArticleDesign.HostedVideo: return sourcePalette.neutral[86]; + case ArticleDesign.HostedGallery: + return sourcePalette.neutral[20]; default: return sourcePalette.neutral[60]; } From 4dea5c6f7f29ef8031d2ef7e3e8b9870fd00cea0 Mon Sep 17 00:00:00 2001 From: Peace Williams-Ojomu Date: Wed, 17 Jun 2026 16:29:56 +0100 Subject: [PATCH 152/293] Upgraded typescript to version 6.0.3 --- ab-testing/frontend/tsconfig.json | 1 - pnpm-lock.yaml | 375 +++++++++++++++--------------- pnpm-workspace.yaml | 2 +- scripts/deno/deno.json | 3 +- 4 files changed, 193 insertions(+), 188 deletions(-) diff --git a/ab-testing/frontend/tsconfig.json b/ab-testing/frontend/tsconfig.json index 0b2d8865f4e..5f1dbeae913 100644 --- a/ab-testing/frontend/tsconfig.json +++ b/ab-testing/frontend/tsconfig.json @@ -8,7 +8,6 @@ "resolveJsonModule": true, "skipLibCheck": true, "sourceMap": true, - "strict": true, "moduleResolution": "bundler" } // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 496c562923a..d9db9d24dd8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,8 +67,8 @@ catalogs: specifier: 4.21.0 version: 4.21.0 typescript: - specifier: 5.9.3 - version: 5.9.3 + specifier: 6.0.3 + version: 6.0.3 importers: @@ -100,7 +100,7 @@ importers: devDependencies: '@guardian/eslint-config': specifier: 'catalog:' - version: 14.0.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) + version: 14.0.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1)(typescript@6.0.3) '@guardian/tsconfig': specifier: 'catalog:' version: 1.0.1 @@ -109,7 +109,7 @@ importers: version: 9.39.1 typescript: specifier: 'catalog:' - version: 5.9.3 + version: 6.0.3 ab-testing/cdk: devDependencies: @@ -139,7 +139,7 @@ importers: version: 10.6.0 typescript: specifier: 'catalog:' - version: 5.9.3 + version: 6.0.3 ab-testing/config: dependencies: @@ -161,7 +161,7 @@ importers: version: 24.12.4 typescript: specifier: 'catalog:' - version: 5.9.3 + version: 6.0.3 ab-testing/deploy-lambda: dependencies: @@ -210,7 +210,7 @@ importers: version: 4.21.0 typescript: specifier: 'catalog:' - version: 5.9.3 + version: 6.0.3 ab-testing/frontend: devDependencies: @@ -219,13 +219,13 @@ importers: version: link:../config '@sveltejs/adapter-auto': specifier: 7.0.1 - version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) + version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) '@sveltejs/adapter-static': specifier: 3.0.10 - version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) + version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))) '@sveltejs/kit': specifier: 2.60.1 - version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) '@sveltejs/vite-plugin-svelte': specifier: 7.1.2 version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) @@ -234,10 +234,10 @@ importers: version: 5.56.3(@typescript-eslint/types@8.59.2) svelte-check: specifier: 4.6.0 - version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3) + version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3) typescript: specifier: 'catalog:' - version: 5.9.3 + version: 6.0.3 vite: specifier: 6.4.2 version: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) @@ -286,7 +286,7 @@ importers: version: 4.21.0 typescript: specifier: 'catalog:' - version: 5.9.3 + version: 6.0.3 dotcom-rendering: dependencies: @@ -316,7 +316,7 @@ importers: version: link:../ab-testing/config '@guardian/braze-components': specifier: 23.0.1 - version: 23.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1) + version: 23.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(react@18.3.1) '@guardian/bridget': specifier: 8.13.1 version: 8.13.1 @@ -328,43 +328,43 @@ importers: version: 63.6.1(aws-cdk-lib@2.257.0(constructs@10.6.0))(aws-cdk@2.1126.0)(constructs@10.6.0) '@guardian/commercial-core': specifier: 34.0.0 - version: 34.0.0(@guardian/consent-manager@1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3)) + version: 34.0.0(@guardian/consent-manager@1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3)) '@guardian/consent-manager': specifier: 1.0.0 - version: 1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + version: 1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) '@guardian/core-web-vitals': specifier: 7.0.0 - version: 7.0.0(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3)(web-vitals@4.2.3) + version: 7.0.0(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3)(web-vitals@4.2.3) '@guardian/eslint-config': specifier: 'catalog:' - version: 14.0.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) + version: 14.0.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1)(typescript@6.0.3) '@guardian/identity-auth': specifier: 6.0.1 - version: 6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3) + version: 6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3) '@guardian/identity-auth-frontend': specifier: 8.1.0 - version: 8.1.0(@guardian/identity-auth@6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3) + version: 8.1.0(@guardian/identity-auth@6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3) '@guardian/libs': specifier: 32.0.0 - version: 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + version: 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) '@guardian/ophan-tracker-js': specifier: 4.0.2 version: 4.0.2 '@guardian/react-crossword': specifier: 17.1.0 - version: 17.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + version: 17.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) '@guardian/shimport': specifier: 1.0.2 version: 1.0.2 '@guardian/source': specifier: 12.2.1 - version: 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3) + version: 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3) '@guardian/source-development-kitchen': specifier: 28.1.0 - version: 28.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3) + version: 28.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3) '@guardian/support-dotcom-components': specifier: 10.0.1 - version: 10.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/ophan-tracker-js@4.0.2)(zod@4.1.12) + version: 10.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/ophan-tracker-js@4.0.2)(zod@4.1.12) '@guardian/tsconfig': specifier: 'catalog:' version: 1.0.1 @@ -385,10 +385,10 @@ importers: version: 4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1) '@storybook/react-webpack5': specifier: 10.3.3 - version: 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) + version: 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) '@svgr/webpack': specifier: 8.1.0 - version: 8.1.0(typescript@5.9.3) + version: 8.1.0(typescript@6.0.3) '@swc/cli': specifier: 0.8.1 version: 0.8.1(@swc/core@1.15.41) @@ -499,7 +499,7 @@ importers: version: 0.0.50 '@typescript-eslint/eslint-plugin': specifier: 8.57.1 - version: 8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) + version: 8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1)(typescript@6.0.3) ajv: specifier: 8.18.0 version: 8.18.0 @@ -553,13 +553,13 @@ importers: version: 10.1.8(eslint@9.39.1) eslint-import-resolver-typescript: specifier: 4.4.4 - version: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1))(eslint@9.39.1) + version: 4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1))(eslint@9.39.1) eslint-plugin-custom-elements: specifier: 0.0.8 version: 0.0.8(eslint@9.39.1) eslint-plugin-import-x: specifier: 4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) + version: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1) eslint-plugin-jsx-a11y: specifier: 6.10.2 version: 6.10.2(eslint@9.39.1) @@ -598,7 +598,7 @@ importers: version: 3.1.1 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + version: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) jest-environment-jsdom: specifier: 29.7.0 version: 29.7.0 @@ -670,10 +670,10 @@ importers: version: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) stylelint: specifier: 16.26.1 - version: 16.26.1(typescript@5.9.3) + version: 16.26.1(typescript@6.0.3) stylelint-config-recommended: specifier: 14.0.0 - version: 14.0.0(stylelint@16.26.1(typescript@5.9.3)) + version: 14.0.0(stylelint@16.26.1(typescript@6.0.3)) swc-loader: specifier: 0.2.6 version: 0.2.6(@swc/core@1.15.41)(webpack@5.104.1) @@ -688,7 +688,7 @@ importers: version: 2.0.0 ts-unused-exports: specifier: 10.1.0 - version: 10.1.0(typescript@5.9.3) + version: 10.1.0(typescript@6.0.3) tslib: specifier: 'catalog:' version: 2.6.2 @@ -700,10 +700,10 @@ importers: version: 4.21.0 typescript: specifier: 'catalog:' - version: 5.9.3 + version: 6.0.3 typescript-eslint: specifier: 8.57.1 - version: 8.57.1(eslint@9.39.1)(typescript@5.9.3) + version: 8.57.1(eslint@9.39.1)(typescript@6.0.3) typescript-json-schema: specifier: 0.64.0 version: 0.64.0(@swc/core@1.15.41) @@ -9101,6 +9101,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + uint8array-extras@1.5.0: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} @@ -11877,11 +11882,11 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@guardian/braze-components@23.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(react@18.3.1)': + '@guardian/braze-components@23.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(react@18.3.1)': dependencies: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) - '@guardian/source': 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) + '@guardian/source': 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3) react: 18.3.1 '@guardian/bridget@8.13.1': {} @@ -11906,42 +11911,42 @@ snapshots: read-pkg-up: 7.0.1 yargs: 17.7.2 - '@guardian/commercial-core@34.0.0(@guardian/consent-manager@1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))': + '@guardian/commercial-core@34.0.0(@guardian/consent-manager@1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))': dependencies: - '@guardian/consent-manager': 1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/consent-manager': 1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) - '@guardian/consent-manager@1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3)': + '@guardian/consent-manager@1.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3)': dependencies: - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) '@guardian/ophan-tracker-js': 4.0.2 tslib: 2.6.2 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 - '@guardian/core-web-vitals@7.0.0(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3)(web-vitals@4.2.3)': + '@guardian/core-web-vitals@7.0.0(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3)(web-vitals@4.2.3)': dependencies: - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) tslib: 2.6.2 web-vitals: 4.2.3 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 - '@guardian/eslint-config@14.0.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)': + '@guardian/eslint-config@14.0.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1)(typescript@6.0.3)': dependencies: '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@9.39.1) '@eslint/js': 9.39.1 '@stylistic/eslint-plugin': 5.10.0(eslint@9.39.1) eslint: 9.39.1 eslint-config-prettier: 10.1.8(eslint@9.39.1) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1))(eslint@9.39.1) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1))(eslint@9.39.1) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1) eslint-plugin-react: 7.37.5(eslint@9.39.1) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.1) globals: 17.4.0 read-package-up: 12.0.0 - typescript-eslint: 8.57.1(eslint@9.39.1)(typescript@5.9.3) + typescript-eslint: 8.57.1(eslint@9.39.1)(typescript@6.0.3) transitivePeerDependencies: - '@typescript-eslint/utils' - eslint-import-resolver-node @@ -11949,27 +11954,27 @@ snapshots: - supports-color - typescript - '@guardian/identity-auth-frontend@8.1.0(@guardian/identity-auth@6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3)': + '@guardian/identity-auth-frontend@8.1.0(@guardian/identity-auth@6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3)': dependencies: - '@guardian/identity-auth': 6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3) - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/identity-auth': 6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) tslib: 2.6.2 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 - '@guardian/identity-auth@6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(tslib@2.6.2)(typescript@5.9.3)': + '@guardian/identity-auth@6.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(tslib@2.6.2)(typescript@6.0.3)': dependencies: - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) tslib: 2.6.2 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 - '@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3)': + '@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3)': dependencies: '@guardian/ophan-tracker-js': 4.0.2 tslib: 2.6.2 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 '@guardian/ophan-tracker-js@4.0.2': dependencies: @@ -11980,17 +11985,17 @@ snapshots: prettier: 3.8.3 tslib: 2.6.2 - '@guardian/react-crossword@17.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)': + '@guardian/react-crossword@17.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3)': dependencies: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) - '@guardian/source': 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) + '@guardian/source': 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3) react: 18.3.1 tslib: 2.8.1 use-local-storage-state: 19.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: '@types/react': 18.3.1 - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - react-dom @@ -11998,18 +12003,18 @@ snapshots: dependencies: tslib: 2.8.1 - '@guardian/source-development-kitchen@28.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3)': + '@guardian/source-development-kitchen@28.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3)': dependencies: - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) - '@guardian/source': 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) + '@guardian/source': 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3) tslib: 2.6.2 optionalDependencies: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) '@types/react': 18.3.1 react: 18.3.1 - typescript: 5.9.3 + typescript: 6.0.3 - '@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@5.9.3)': + '@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3)': dependencies: mini-svg-data-uri: 1.4.4 tslib: 2.6.2 @@ -12017,11 +12022,11 @@ snapshots: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) '@types/react': 18.3.1 react: 18.3.1 - typescript: 5.9.3 + typescript: 6.0.3 - '@guardian/support-dotcom-components@10.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3))(@guardian/ophan-tracker-js@4.0.2)(zod@4.1.12)': + '@guardian/support-dotcom-components@10.0.1(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/ophan-tracker-js@4.0.2)(zod@4.1.12)': dependencies: - '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@5.9.3) + '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) '@guardian/ophan-tracker-js': 4.0.2 zod: 4.1.12 @@ -12062,7 +12067,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -12076,7 +12081,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -13170,14 +13175,14 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 css-loader: 7.1.2(webpack@5.104.1) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 9.1.0(typescript@5.9.3)(webpack@5.104.1) + fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.3)(webpack@5.104.1) html-webpack-plugin: 5.6.6(webpack@5.104.1) magic-string: 0.30.21 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13189,7 +13194,7 @@ snapshots: webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -13219,10 +13224,10 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.104.1) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@6.0.3)(webpack@5.104.1) '@types/semver': 7.7.1 magic-string: 0.30.21 react: 18.3.1 @@ -13234,7 +13239,7 @@ snapshots: tsconfig-paths: 4.2.0 webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - '@swc/core' - esbuild @@ -13242,17 +13247,17 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.9.3)(webpack@5.104.1)': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@6.0.3)(webpack@5.104.1)': dependencies: debug: 4.4.3 endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 micromatch: 4.0.8 - react-docgen-typescript: 2.4.0(typescript@5.9.3) + react-docgen-typescript: 2.4.0(typescript@6.0.3) tslib: 2.8.1 - typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) + typescript: 6.0.3 + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color @@ -13262,16 +13267,16 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1)': + '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': dependencies: - '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) - '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)(webpack-cli@6.0.1) - '@storybook/react': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3) + '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) + '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) + '@storybook/react': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -13280,17 +13285,17 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.3)': + '@storybook/react@10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)': dependencies: '@storybook/global': 5.0.0 '@storybook/react-dom-shim': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 react-docgen: 8.0.2 - react-docgen-typescript: 2.4.0(typescript@5.9.3) + react-docgen-typescript: 2.4.0(typescript@6.0.3) react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -13312,15 +13317,15 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': + '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) - '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)) - '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': + '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.2(@types/node@24.12.4)(terser@5.46.0))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) @@ -13338,7 +13343,7 @@ snapshots: svelte: 5.56.3(@typescript-eslint/types@8.59.2) vite: 6.4.2(@types/node@24.12.4)(terser@5.46.0)(tsx@4.6.2) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 '@sveltejs/load-config@0.1.1': {} @@ -13395,12 +13400,12 @@ snapshots: '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.29.0) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.29.0) - '@svgr/core@8.1.0(typescript@5.9.3)': + '@svgr/core@8.1.0(typescript@6.0.3)': dependencies: '@babel/core': 7.29.0 '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.9.3) + cosmiconfig: 8.3.6(typescript@6.0.3) snake-case: 3.0.4 transitivePeerDependencies: - supports-color @@ -13411,35 +13416,35 @@ snapshots: '@babel/types': 7.29.0 entities: 4.5.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))': + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@6.0.3))': dependencies: '@babel/core': 7.29.0 '@svgr/babel-preset': 8.1.0(@babel/core@7.29.0) - '@svgr/core': 8.1.0(typescript@5.9.3) + '@svgr/core': 8.1.0(typescript@6.0.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3)': + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3)': dependencies: - '@svgr/core': 8.1.0(typescript@5.9.3) - cosmiconfig: 8.3.6(typescript@5.9.3) + '@svgr/core': 8.1.0(typescript@6.0.3) + cosmiconfig: 8.3.6(typescript@6.0.3) deepmerge: 4.3.1 svgo: 3.3.3 transitivePeerDependencies: - typescript - '@svgr/webpack@8.1.0(typescript@5.9.3)': + '@svgr/webpack@8.1.0(typescript@6.0.3)': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.29.0) '@babel/preset-env': 7.28.3(@babel/core@7.29.0) '@babel/preset-react': 7.27.1(@babel/core@7.29.0) '@babel/preset-typescript': 7.27.1(@babel/core@7.29.0) - '@svgr/core': 8.1.0(typescript@5.9.3) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))(typescript@5.9.3) + '@svgr/core': 8.1.0(typescript@6.0.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@6.0.3)) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3) transitivePeerDependencies: - supports-color - typescript @@ -13900,40 +13905,40 @@ snapshots: '@types/youtube@0.0.50': {} - '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.1(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.57.1(eslint@9.39.1)(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/type-utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.57.1(eslint@9.39.1)(typescript@6.0.3) + '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.57.1 eslint: 9.39.1 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@5.9.3)': + '@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.57.1 '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.57.1 debug: 4.4.3 eslint: 9.39.1 - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': + '@typescript-eslint/project-service@8.57.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@6.0.3) '@typescript-eslint/types': 8.59.2 debug: 4.4.3 - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -13942,19 +13947,19 @@ snapshots: '@typescript-eslint/types': 8.57.1 '@typescript-eslint/visitor-keys': 8.57.1 - '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.57.1(typescript@6.0.3)': dependencies: - typescript: 5.9.3 + typescript: 6.0.3 - '@typescript-eslint/type-utils@8.57.1(eslint@9.39.1)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.57.1(eslint@9.39.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@6.0.3) debug: 4.4.3 eslint: 9.39.1 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -13962,29 +13967,29 @@ snapshots: '@typescript-eslint/types@8.59.2': {} - '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.57.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) + '@typescript-eslint/project-service': 8.57.1(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@6.0.3) '@typescript-eslint/types': 8.57.1 '@typescript-eslint/visitor-keys': 8.57.1 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.4 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3)': + '@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) '@typescript-eslint/scope-manager': 8.57.1 '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.3) eslint: 9.39.1 - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -15012,23 +15017,23 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@8.3.6(typescript@5.9.3): + cosmiconfig@8.3.6(typescript@6.0.3): dependencies: import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 - cosmiconfig@9.0.0(typescript@5.9.3): + cosmiconfig@9.0.0(typescript@6.0.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 cpy@11.0.0: dependencies: @@ -15039,13 +15044,13 @@ snapshots: p-filter: 3.0.0 p-map: 6.0.0 - create-jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): + create-jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -15639,7 +15644,7 @@ snapshots: optionalDependencies: unrs-resolver: 1.11.1 - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1))(eslint@9.39.1): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1))(eslint@9.39.1): dependencies: debug: 4.4.3 eslint: 9.39.1 @@ -15650,11 +15655,11 @@ snapshots: tinyglobby: 0.2.16 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) + eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1))(eslint@9.39.1): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1))(eslint@9.39.1): dependencies: debug: 4.4.3 eslint: 9.39.1 @@ -15665,7 +15670,7 @@ snapshots: tinyglobby: 0.2.16 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1) transitivePeerDependencies: - supports-color @@ -15673,7 +15678,7 @@ snapshots: dependencies: eslint: 9.39.1 - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1): + eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1): dependencies: '@typescript-eslint/types': 8.59.2 comment-parser: 1.4.6 @@ -15686,11 +15691,11 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@6.0.3) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.59.2 @@ -15704,7 +15709,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@6.0.3) transitivePeerDependencies: - supports-color @@ -16205,12 +16210,12 @@ snapshots: dependencies: is-callable: 1.2.7 - fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.3)(webpack@5.104.1): + fork-ts-checker-webpack-plugin@9.1.0(typescript@6.0.3)(webpack@5.104.1): dependencies: '@babel/code-frame': 7.29.0 chalk: 4.1.2 chokidar: 4.0.3 - cosmiconfig: 8.3.6(typescript@5.9.3) + cosmiconfig: 8.3.6(typescript@6.0.3) deepmerge: 4.3.1 fs-extra: 10.1.0 memfs: 3.5.3 @@ -16219,8 +16224,8 @@ snapshots: schema-utils: 3.3.0 semver: 7.5.4 tapable: 2.3.0 - typescript: 5.9.3 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) + typescript: 6.0.3 + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) form-data-encoder@4.1.0: {} @@ -17071,16 +17076,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + create-jest: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -17090,7 +17095,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)): dependencies: '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 @@ -17116,7 +17121,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 24.12.4 - ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -17359,12 +17364,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)): + jest@29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@24.12.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -18413,9 +18418,9 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 - react-docgen-typescript@2.4.0(typescript@5.9.3): + react-docgen-typescript@2.4.0(typescript@6.0.3): dependencies: - typescript: 5.9.3 + typescript: 6.0.3 react-docgen@7.1.1: dependencies: @@ -19305,11 +19310,11 @@ snapshots: dependencies: webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) - stylelint-config-recommended@14.0.0(stylelint@16.26.1(typescript@5.9.3)): + stylelint-config-recommended@14.0.0(stylelint@16.26.1(typescript@6.0.3)): dependencies: - stylelint: 16.26.1(typescript@5.9.3) + stylelint: 16.26.1(typescript@6.0.3) - stylelint@16.26.1(typescript@5.9.3): + stylelint@16.26.1(typescript@6.0.3): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-syntax-patches-for-csstree': 1.1.1(css-tree@3.2.1) @@ -19319,7 +19324,7 @@ snapshots: '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig: 9.0.0(typescript@6.0.3) css-functions-list: 3.3.3 css-tree: 3.2.1 debug: 4.4.3 @@ -19383,7 +19388,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@5.9.3): + svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 '@sveltejs/load-config': 0.1.1 @@ -19392,7 +19397,7 @@ snapshots: picocolors: 1.1.1 sade: 1.8.1 svelte: 5.56.3(@typescript-eslint/types@8.59.2) - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - picomatch @@ -19590,9 +19595,9 @@ snapshots: trusted-types@2.0.0: {} - ts-api-utils@2.5.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@6.0.3): dependencies: - typescript: 5.9.3 + typescript: 6.0.3 ts-dedent@2.2.0: {} @@ -19616,7 +19621,7 @@ snapshots: optionalDependencies: '@swc/core': 1.15.41 - ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@5.9.3): + ts-node@10.9.2(@swc/core@1.15.41)(@types/node@24.12.4)(typescript@6.0.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 @@ -19630,18 +19635,18 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.9.3 + typescript: 6.0.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.41 optional: true - ts-unused-exports@10.1.0(typescript@5.9.3): + ts-unused-exports@10.1.0(typescript@6.0.3): dependencies: chalk: 4.1.2 tsconfig-paths: 3.15.0 - typescript: 5.9.3 + typescript: 6.0.3 tsconfig-paths@3.15.0: dependencies: @@ -19739,14 +19744,14 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.57.1(eslint@9.39.1)(typescript@5.9.3): + typescript-eslint@8.57.1(eslint@9.39.1)(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) - '@typescript-eslint/parser': 8.57.1(eslint@9.39.1)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.9.3) - '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@9.39.1)(typescript@6.0.3))(eslint@9.39.1)(typescript@6.0.3) + '@typescript-eslint/parser': 8.57.1(eslint@9.39.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.57.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.57.1(eslint@9.39.1)(typescript@6.0.3) eslint: 9.39.1 - typescript: 5.9.3 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -19768,6 +19773,8 @@ snapshots: typescript@5.9.3: {} + typescript@6.0.3: {} + uint8array-extras@1.5.0: {} unbox-primitive@1.1.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1946bebf8f6..664b5094be9 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -29,7 +29,7 @@ catalog: superstruct: 2.0.2 tslib: 2.6.2 type-fest: 4.21.0 - typescript: 5.9.3 + typescript: 6.0.3 minimumReleaseAge: 2880 # 2 day minimum package version age minimumReleaseAgeExclude: - '@guardian/*' diff --git a/scripts/deno/deno.json b/scripts/deno/deno.json index e4d715aeac6..e2033ffeb6b 100644 --- a/scripts/deno/deno.json +++ b/scripts/deno/deno.json @@ -1,8 +1,7 @@ { "compilerOptions": { "allowJs": false, - "lib": ["deno.window"], - "strict": true + "lib": ["deno.window"] }, "unstable": ["temporal"], "fmt": { From 4847a93e864ac24eac71398dd779250f6f7f750c Mon Sep 17 00:00:00 2001 From: Peace Williams-Ojomu Date: Wed, 17 Jun 2026 16:53:46 +0100 Subject: [PATCH 153/293] lockfile update --- pnpm-lock.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9db9d24dd8..51ab2a2b1fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -385,7 +385,7 @@ importers: version: 4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1) '@storybook/react-webpack5': specifier: 10.3.3 - version: 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) + version: 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) '@svgr/webpack': specifier: 8.1.0 version: 8.1.0(typescript@6.0.3) @@ -13175,7 +13175,7 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': + '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) case-sensitive-paths-webpack-plugin: 2.4.0 @@ -13224,7 +13224,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': + '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': dependencies: '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@6.0.3)(webpack@5.104.1) @@ -13257,7 +13257,7 @@ snapshots: react-docgen-typescript: 2.4.0(typescript@6.0.3) tslib: 2.8.1 typescript: 6.0.3 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) transitivePeerDependencies: - supports-color @@ -13267,10 +13267,10 @@ snapshots: react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': + '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1)': dependencies: - '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) - '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(esbuild@0.27.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) + '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) + '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@6.0.1) '@storybook/react': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -16225,7 +16225,7 @@ snapshots: semver: 7.5.4 tapable: 2.3.0 typescript: 6.0.3 - webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.27.3)(webpack-cli@6.0.1) + webpack: 5.104.1(@swc/core@1.15.41)(esbuild@0.28.1)(webpack-cli@6.0.1) form-data-encoder@4.1.0: {} From 4787b199e73f28eb767454d0f0d7b053f1b9737f Mon Sep 17 00:00:00 2001 From: Peace Williams-Ojomu Date: Thu, 18 Jun 2026 09:27:42 +0100 Subject: [PATCH 154/293] added node as a type in tsconfig files --- ab-testing/cdk/tsconfig.json | 3 ++- ab-testing/config/tsconfig.json | 3 ++- ab-testing/deploy-lambda/tsconfig.json | 3 ++- ab-testing/frontend/tsconfig.json | 1 + ab-testing/notification-lambda/tsconfig.json | 3 ++- ab-testing/tsconfig.json | 3 ++- scripts/deno/deno.json | 3 ++- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ab-testing/cdk/tsconfig.json b/ab-testing/cdk/tsconfig.json index 9f754911c89..be4e2f34ece 100644 --- a/ab-testing/cdk/tsconfig.json +++ b/ab-testing/cdk/tsconfig.json @@ -6,7 +6,8 @@ "allowImportingTsExtensions": true, "erasableSyntaxOnly": true, "moduleResolution": "nodenext", - "module": "nodenext" + "module": "nodenext", + "types": ["node"] }, "exclude": ["node_modules"] } diff --git a/ab-testing/config/tsconfig.json b/ab-testing/config/tsconfig.json index 925fbd5ee96..52e5f7d21fd 100644 --- a/ab-testing/config/tsconfig.json +++ b/ab-testing/config/tsconfig.json @@ -6,7 +6,8 @@ "allowImportingTsExtensions": true, "erasableSyntaxOnly": true, "moduleResolution": "nodenext", - "module": "nodenext" + "module": "nodenext", + "types": ["node"] }, "exclude": ["node_modules", "index.ts"] } diff --git a/ab-testing/deploy-lambda/tsconfig.json b/ab-testing/deploy-lambda/tsconfig.json index bf4067ab370..a5c7526c057 100644 --- a/ab-testing/deploy-lambda/tsconfig.json +++ b/ab-testing/deploy-lambda/tsconfig.json @@ -4,7 +4,8 @@ "allowImportingTsExtensions": true, "allowArbitraryExtensions": false, "erasableSyntaxOnly": true, - "noEmit": true + "noEmit": true, + "types": ["node"] }, "exclude": ["node_modules"] } diff --git a/ab-testing/frontend/tsconfig.json b/ab-testing/frontend/tsconfig.json index 5f1dbeae913..0b2d8865f4e 100644 --- a/ab-testing/frontend/tsconfig.json +++ b/ab-testing/frontend/tsconfig.json @@ -8,6 +8,7 @@ "resolveJsonModule": true, "skipLibCheck": true, "sourceMap": true, + "strict": true, "moduleResolution": "bundler" } // Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias diff --git a/ab-testing/notification-lambda/tsconfig.json b/ab-testing/notification-lambda/tsconfig.json index bf4067ab370..a5c7526c057 100644 --- a/ab-testing/notification-lambda/tsconfig.json +++ b/ab-testing/notification-lambda/tsconfig.json @@ -4,7 +4,8 @@ "allowImportingTsExtensions": true, "allowArbitraryExtensions": false, "erasableSyntaxOnly": true, - "noEmit": true + "noEmit": true, + "types": ["node"] }, "exclude": ["node_modules"] } diff --git a/ab-testing/tsconfig.json b/ab-testing/tsconfig.json index 9f754911c89..be4e2f34ece 100644 --- a/ab-testing/tsconfig.json +++ b/ab-testing/tsconfig.json @@ -6,7 +6,8 @@ "allowImportingTsExtensions": true, "erasableSyntaxOnly": true, "moduleResolution": "nodenext", - "module": "nodenext" + "module": "nodenext", + "types": ["node"] }, "exclude": ["node_modules"] } diff --git a/scripts/deno/deno.json b/scripts/deno/deno.json index e2033ffeb6b..e4d715aeac6 100644 --- a/scripts/deno/deno.json +++ b/scripts/deno/deno.json @@ -1,7 +1,8 @@ { "compilerOptions": { "allowJs": false, - "lib": ["deno.window"] + "lib": ["deno.window"], + "strict": true }, "unstable": ["temporal"], "fmt": { From 65f695b86c621b404ccfde4a4e364d78b9ae49af Mon Sep 17 00:00:00 2001 From: George Richmond Date: Thu, 18 Jun 2026 18:13:42 +0100 Subject: [PATCH 155/293] Set signup card ab test variant illustrated card to 100% (#16212) --- ab-testing/config/abTests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ab-testing/config/abTests.ts b/ab-testing/config/abTests.ts index be72bb2cb10..a7ac5da4db0 100644 --- a/ab-testing/config/abTests.ts +++ b/ab-testing/config/abTests.ts @@ -91,7 +91,7 @@ const ABTests: ABTest[] = [ status: "ON", audienceSize: 1, audienceSpace: "B", - groups: ["control", "variantNewField", "variantIllustratedCard"], + groups: ["variantIllustratedCard"], shouldForceMetricsCollection: false, }, { From bbc3fbb100c7f93f7f54628f3c35f0ef33596a54 Mon Sep 17 00:00:00 2001 From: William Mead <285652121+williammead@users.noreply.github.com> Date: Fri, 19 Jun 2026 11:19:18 +0100 Subject: [PATCH 156/293] fixing lock file --- pnpm-lock.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 48f94195c5b..3eb5b19fdf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11939,6 +11939,8 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 + '@exodus/bytes@1.15.1': {} + '@guardian/braze-components@23.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(react@18.3.1)': dependencies: '@emotion/react': 11.14.0(@types/react@18.3.1)(react@18.3.1) From dba4c2dee7fc20ba71d2f57d17030fa2eca7c208 Mon Sep 17 00:00:00 2001 From: Andrew Howe-Ely <114918544+andrewHEguardian@users.noreply.github.com> Date: Fri, 19 Jun 2026 11:28:06 +0100 Subject: [PATCH 157/293] pass webpublication date to article meta in standardlayout (#16219) - this enables The Filter articles to render a