diff --git a/shared/chat/audio/audio-recorder.native.tsx b/shared/chat/audio/audio-recorder.native.tsx
index 8c422365ae39..4ad0abbd5959 100644
--- a/shared/chat/audio/audio-recorder.native.tsx
+++ b/shared/chat/audio/audio-recorder.native.tsx
@@ -222,9 +222,7 @@ const useIconAndOverlay = (p: {
const maxCancelDrift = -120
const maxLockDrift = -100
dragYSV.set(interpolate(e.translationY, [maxLockDrift, 0], [maxLockDrift, 0], Extrapolation.CLAMP))
- dragXSV.set(
- interpolate(e.translationX, [maxCancelDrift, 0], [maxCancelDrift, 0], Extrapolation.CLAMP)
- )
+ dragXSV.set(interpolate(e.translationX, [maxCancelDrift, 0], [maxCancelDrift, 0], Extrapolation.CLAMP))
if (e.translationX < maxCancelDrift) {
canceledSV.set(1)
} else if (e.translationY < maxLockDrift) {
@@ -476,7 +474,8 @@ const useRecorder = (p: {ampSV: SVN; setShowAudioSend: (s: boolean) => void; sho
React.useEffect(() => {
return () => {
setShowAudioSend(false)
- onResetRef.current()
+ onResetRef
+ .current()
.then(() => {})
.catch(() => {})
}
diff --git a/shared/chat/conversation/header-area/index.native.tsx b/shared/chat/conversation/header-area/index.native.tsx
index c1ab4b8031c1..8e4b79b3b2de 100644
--- a/shared/chat/conversation/header-area/index.native.tsx
+++ b/shared/chat/conversation/header-area/index.native.tsx
@@ -1,10 +1,12 @@
import * as C from '@/constants'
import * as Chat from '@/stores/chat'
+import {getConvoState} from '@/stores/convostate'
import {useProfileState} from '@/stores/profile'
import * as Kb from '@/common-adapters'
import type {HeaderBackButtonProps} from '@react-navigation/elements'
import {HeaderLeftButton} from '@/common-adapters/header-buttons'
import {Keyboard} from 'react-native'
+import type {SFSymbol} from 'sf-symbols-typescript'
// import {DebugChatDumpContext} from '@/constants/chat/debug'
import {assertionToDisplay} from '@/common-adapters/usernames'
import {useSafeAreaFrame} from 'react-native-safe-area-context'
@@ -96,22 +98,54 @@ const BadgeHeaderLeftArray = (p: HeaderBackButtonProps) => {
return
}
+const sfIcon = (name: SFSymbol) => ({name, type: 'sfSymbol' as const})
+
export const headerNavigationOptions = (route: {params?: {conversationIDKey?: string}}) => {
const conversationIDKey = route.params?.conversationIDKey ?? Chat.noConversationIDKey
return {
- headerLeft: (props: HeaderBackButtonProps) => {
- const {onLabelLayout, labelStyle, ...rest} = props
- return (
-
-
-
- )
- },
- headerRight: () => (
-
-
-
- ),
+ // iOS 26: headerLeft omitted — native back button comes from tabStackOptions (headerBackVisible: true).
+ // BadgeHeaderUpdater in container.tsx drives unstable_headerLeftItems for the badge count.
+ ...(!Kb.Styles.isIOS
+ ? {
+ headerLeft: (props: HeaderBackButtonProps) => {
+ const {labelStyle, ...rest} = props
+ return (
+
+
+
+ )
+ },
+ }
+ : {}),
+ // iOS 26: two separate native buttons (each gets its own glass pill).
+ // getConvoState lets us access dispatch without hooks since this runs outside React.
+ ...(Kb.Styles.isIOS
+ ? {
+ unstable_headerRightItems: () => [
+ {
+ icon: sfIcon('magnifyingglass'),
+ label: 'Search',
+ onPress: () => {
+ Keyboard.dismiss()
+ setTimeout(() => getConvoState(conversationIDKey).dispatch.toggleThreadSearch(), 100)
+ },
+ type: 'button' as const,
+ },
+ {
+ icon: sfIcon('info.circle'),
+ label: 'Info',
+ onPress: () => getConvoState(conversationIDKey).dispatch.showInfoPanel(true, undefined),
+ type: 'button' as const,
+ },
+ ],
+ }
+ : {
+ headerRight: () => (
+
+
+
+ ),
+ }),
headerTitle: () => (
diff --git a/shared/chat/inbox-and-conversation-header.tsx b/shared/chat/inbox-and-conversation-header.tsx
index 9543be4eb0bb..ef1023f0b70e 100644
--- a/shared/chat/inbox-and-conversation-header.tsx
+++ b/shared/chat/inbox-and-conversation-header.tsx
@@ -17,7 +17,7 @@ const Header = () => {
canBeNull={true}
id={
// eslint-disable-next-line
- params?.conversationIDKey ?? Chat.noConversationIDKey
+ (params as {conversationIDKey?: string} | undefined)?.conversationIDKey ?? Chat.noConversationIDKey
}
>
diff --git a/shared/chat/inbox/get-options.tsx b/shared/chat/inbox/get-options.tsx
index 37a081c3e206..c7e6afc12be6 100644
--- a/shared/chat/inbox/get-options.tsx
+++ b/shared/chat/inbox/get-options.tsx
@@ -3,8 +3,25 @@ import * as Kb from '@/common-adapters'
import {HeaderNewChatButton} from './new-chat-button'
const buttonWidth = 132
-export default {
- freezeOnBlur: false, // let it render even if not visible
+
+const mobileOptions = Kb.Styles.isIOS
+ ? {
+ // iOS 26: hidesSharedBackground prevents the glass circle around the custom button
+ unstable_headerRightItems: () => [
+ {element: , hidesSharedBackground: true, type: 'custom' as const},
+ ],
+ }
+ : {
+ headerRight: () => ,
+ headerRightContainerStyle: {
+ ...Common.defaultNavigationOptions.headerRightContainerStyle,
+ minWidth: buttonWidth,
+ paddingRight: 8,
+ width: buttonWidth,
+ } as Kb.Styles.StylesCrossPlatform,
+ }
+
+const desktopOptions = {
headerLeft: () => null,
headerLeftContainerStyle: {
...Common.defaultNavigationOptions.headerLeftContainerStyle,
@@ -18,6 +35,11 @@ export default {
paddingRight: 8,
width: buttonWidth,
} as Kb.Styles.StylesCrossPlatform,
+}
+
+export default {
+ freezeOnBlur: false,
+ ...(Kb.Styles.isMobile ? mobileOptions : desktopOptions),
headerTitle: () => (
Chats
diff --git a/shared/chat/inbox/new-chat-button.tsx b/shared/chat/inbox/new-chat-button.tsx
index b500ec31b53f..8d3089c91785 100644
--- a/shared/chat/inbox/new-chat-button.tsx
+++ b/shared/chat/inbox/new-chat-button.tsx
@@ -1,6 +1,15 @@
import * as C from '@/constants'
import * as Chat from '@/stores/chat'
import * as Kb from '@/common-adapters'
+import {LiquidGlassView, isLiquidGlassSupported} from '@callstack/liquid-glass'
+
+const rainbowHeight = C.isElectron ? 32 : 36
+const rainbowWidth = C.isElectron ? 80 : 96
+const colorBarCommon = {
+ height: rainbowHeight / 4,
+ position: 'absolute',
+ width: '100%',
+} as const
const HeaderNewChatButton = () => {
const hide = Chat.useChatState(
@@ -15,19 +24,19 @@ const HeaderNewChatButton = () => {
if (hide) return null
- return (
+ const rainbowButton = (
-
-
-
-
-
-
+
+
+
+
{
/>
)
+
+ // eslint-disable-next-line
+ if (C.isIOS && isLiquidGlassSupported) {
+ return (
+
+ {rainbowButton}
+
+ )
+ }
+
+ return rainbowButton
}
+const calcBarTop = (index: number) => index * colorBarCommon.height
+
const styles = Kb.Styles.styleSheetCreate(
() =>
({
- gradientContainer: Kb.Styles.platformStyles({
- isElectron: {
- height: '100%',
- position: 'absolute',
- width: '100%',
- },
- isMobile: {
- bottom: Kb.Styles.isAndroid ? 5 : 0,
- left: 0,
- position: 'absolute',
- right: 0,
- top: 0,
- },
- }),
- gradientGreen: Kb.Styles.platformStyles({
- common: {
- backgroundColor: '#3AFFAC',
- borderBottomLeftRadius: Kb.Styles.borderRadius,
- borderBottomRightRadius: Kb.Styles.borderRadius,
- flex: 1,
- },
- }),
- gradientOrange: {backgroundColor: '#FFAC3D'},
- gradientRed: Kb.Styles.platformStyles({
- common: {
- backgroundColor: '#FF5D5D',
- borderTopLeftRadius: Kb.Styles.borderRadius,
- borderTopRightRadius: Kb.Styles.borderRadius,
- flex: 1,
- },
- }),
- gradientYellow: {backgroundColor: '#FFF75A'},
- rainbowButton: Kb.Styles.platformStyles({
- common: {
- margin: 2,
- paddingLeft: Kb.Styles.globalMargins.tiny,
- paddingRight: Kb.Styles.globalMargins.tiny,
- },
- }),
+ gradientGreen: {
+ ...colorBarCommon,
+ backgroundColor: '#3AFFAC',
+ top: calcBarTop(3),
+ },
+ gradientOrange: {
+ ...colorBarCommon,
+ backgroundColor: '#FFAC3D',
+ top: calcBarTop(1),
+ },
+ gradientRed: {
+ ...colorBarCommon,
+ backgroundColor: '#FF5D5D',
+ top: calcBarTop(0),
+ },
+ gradientYellow: {
+ ...colorBarCommon,
+ backgroundColor: '#FFF75A',
+ top: calcBarTop(2),
+ },
+ rainbowButton: {
+ margin: 2,
+ paddingLeft: Kb.Styles.globalMargins.tiny,
+ paddingRight: Kb.Styles.globalMargins.tiny,
+ },
rainbowButtonContainer: Kb.Styles.platformStyles({
common: {
- alignSelf: 'flex-start',
- height: '100%',
+ borderRadius: Kb.Styles.borderRadius,
+ height: rainbowHeight,
+ overflow: 'hidden',
position: 'relative',
+ width: rainbowWidth,
},
isElectron: {
...Kb.Styles.desktopStyles.windowDraggingClickable,
diff --git a/shared/common-adapters/scroll-view.d.ts b/shared/common-adapters/scroll-view.d.ts
index 775b08be029d..5f51ae050079 100644
--- a/shared/common-adapters/scroll-view.d.ts
+++ b/shared/common-adapters/scroll-view.d.ts
@@ -29,6 +29,7 @@ export type Props = {
// mobile only
bounces?: boolean
contentInset?: {top?: number; left?: number; bottom?: number; right?: number}
+ contentInsetAdjustmentBehavior?: 'automatic' | 'scrollableAxes' | 'never' | 'always'
centerContent?: boolean
zoomScale?: number
minimumZoomScale?: number
diff --git a/shared/common-adapters/text.native.tsx b/shared/common-adapters/text.native.tsx
index 4ee08f2b929c..1e4b9b378a16 100644
--- a/shared/common-adapters/text.native.tsx
+++ b/shared/common-adapters/text.native.tsx
@@ -22,6 +22,7 @@ export function Text(p: Props) {
selectable={p.selectable}
numberOfLines={p.lineClamp}
ellipsizeMode={p.lineClamp ? (p.ellipsizeMode ?? 'tail') : undefined}
+ suppressHighlighting={true}
>
{p.children}
@@ -30,6 +31,9 @@ export function Text(p: Props) {
export default Text
-const styles = Styles.styleSheetCreate(() => ({
- center: {textAlign: 'center'},
-}) as const)
+const styles = Styles.styleSheetCreate(
+ () =>
+ ({
+ center: {textAlign: 'center'},
+ }) as const
+)
diff --git a/shared/constants/init/index.native.tsx b/shared/constants/init/index.native.tsx
index cd5c6f5d82f0..59a34f3d4277 100644
--- a/shared/constants/init/index.native.tsx
+++ b/shared/constants/init/index.native.tsx
@@ -2,7 +2,6 @@
import {ignorePromise, neverThrowPromiseFunc, timeoutPromise} from '../utils'
import {useChatState} from '@/stores/chat'
import {useConfigState} from '@/stores/config'
-import {useCurrentUserState} from '@/stores/current-user'
import {useDaemonState} from '@/stores/daemon'
import {useDarkModeState} from '@/stores/darkmode'
import {useFSState} from '@/stores/fs'
@@ -21,7 +20,7 @@ import logger from '@/logger'
import {Alert, Linking} from 'react-native'
import {isAndroid} from '@/constants/platform.native'
import {wrapErrors} from '@/util/debug'
-import {getTab, getVisiblePath, logState, switchTab} from '@/constants/router'
+import {getTab, getVisiblePath, logState} from '@/constants/router'
import {launchImageLibraryAsync} from '@/util/expo-image-picker.native'
import {pickDocumentsAsync} from '@/util/expo-document-picker.native'
import {setupAudioMode} from '@/util/audio.native'
@@ -529,21 +528,6 @@ export const initPlatformListener = () => {
})
})
- let _pendingFastSwitchTab: string | undefined
- useRouterState.setState(s => {
- s.dispatch.defer.tabLongPress = wrapErrors((tab: string) => {
- if (tab !== Tabs.peopleTab) return
- const accountRows = useConfigState.getState().configuredAccounts
- const current = useCurrentUserState.getState().username
- const row = accountRows.find(a => a.username !== current && a.hasStoredSecret)
- if (row) {
- _pendingFastSwitchTab = getTab() ?? undefined
- useConfigState.getState().dispatch.setUserSwitching(true)
- useConfigState.getState().dispatch.login(row.username, '')
- }
- })
- })
-
useFSState.setState(s => {
s.dispatch.defer.pickAndUploadMobile = wrapErrors(
(type: T.FS.MobilePickType, parentPath: T.FS.Path) => {
@@ -675,24 +659,6 @@ export const initPlatformListener = () => {
})
}
- useConfigState.subscribe((state, prevState) => {
- const tab = _pendingFastSwitchTab
- if (!tab) return
- if (state.loggedIn && !prevState.loggedIn) {
- _pendingFastSwitchTab = undefined
- let attempts = 0
- const trySwitch = () => {
- if (attempts++ > 20) return
- if (getTab()) {
- switchTab(tab as Tabs.AppTab)
- } else {
- setTimeout(trySwitch, 100)
- }
- }
- setTimeout(trySwitch, 100)
- }
- })
-
initSharedSubscriptions()
}
diff --git a/shared/constants/router.tsx b/shared/constants/router.tsx
index c0b72d35ae8a..c0e3d6e07d63 100644
--- a/shared/constants/router.tsx
+++ b/shared/constants/router.tsx
@@ -35,6 +35,7 @@ export type PathParam = NavigateAppendType
export type Navigator = NavigationContainerRef
const DEBUG_NAV = __DEV__ && (false as boolean)
+const rootNonModalRouteNames = new Set(['chatConversation'])
export const getRootState = (): NavState | undefined => {
if (!navigationRef.isReady()) return
@@ -117,7 +118,7 @@ export const getModalStack = (navState?: T.Immutable) => {
if (!_isLoggedIn(rs)) {
return []
}
- return rs.routes?.slice(1) ?? []
+ return (rs.routes?.slice(1) ?? []).filter(r => !rootNonModalRouteNames.has(r.name))
}
export const getVisibleScreen = (navState?: T.Immutable, _inludeModals?: boolean) => {
@@ -170,8 +171,20 @@ export const clearModals = () => {
const n = _getNavigator()
if (!n) return
const ns = getRootState()
- if (_isLoggedIn(ns) && (ns?.routes?.length ?? 0) > 1) {
- n.dispatch({...StackActions.popToTop(), target: ns?.key})
+ if (!_isLoggedIn(ns)) {
+ return
+ }
+ const rootRoutes = ns?.routes ?? []
+ const keepRoutes = rootRoutes.filter((route, index) => index === 0 || rootNonModalRouteNames.has(route.name))
+ if (keepRoutes.length !== rootRoutes.length) {
+ n.dispatch({
+ ...CommonActions.reset({
+ ...ns,
+ index: keepRoutes.length - 1,
+ routes: keepRoutes,
+ } as Parameters[0]),
+ target: ns?.key,
+ })
}
}
@@ -282,14 +295,18 @@ export const navToThread = (conversationIDKey: T.Chat.ConversationIDKey) => {
target: tabNavState.key,
})
} else {
- // Phone: full reset to build the chat → conversation stack
+ // Phone: switch to the chat tab, then push the conversation above the tabs.
const nextState = {
- routes: [{name: 'loggedIn', state: {
- routes: [{name: Tabs.chatTab, state: {
- index: 1,
- routes: [{name: 'chatRoot'}, {name: 'chatConversation', params: {conversationIDKey}}],
- }}],
- }}],
+ index: 1,
+ routes: [
+ {
+ name: 'loggedIn',
+ state: {
+ routes: [{name: Tabs.chatTab, state: {index: 0, routes: [{name: 'chatRoot'}]}}],
+ },
+ },
+ {name: 'chatConversation', params: {conversationIDKey}},
+ ],
}
n.dispatch({
...CommonActions.reset(nextState as Parameters[0]),
diff --git a/shared/crypto/sub-nav/index.desktop.tsx b/shared/crypto/sub-nav/index.desktop.tsx
index 9c6579fd04fd..924f054cc45d 100644
--- a/shared/crypto/sub-nav/index.desktop.tsx
+++ b/shared/crypto/sub-nav/index.desktop.tsx
@@ -9,7 +9,7 @@ import {
createNavigatorFactory,
type NavigationContainerRef,
} from '@react-navigation/core'
-import type {TypedNavigator, NavigatorTypeBagBase, StaticConfig} from '@react-navigation/native'
+import type {TypedNavigator, NavigatorTypeBagBase} from '@react-navigation/native'
import {routeMapToScreenElements} from '@/router-v2/routes'
import {makeLayout} from '@/router-v2/screen-layout.desktop'
import type {RouteDef, GetOptionsParams} from '@/constants/types/router'
@@ -98,10 +98,7 @@ type NavType = NavigatorTypeBagBase & {
}
}
-export const createLeftTabNavigator = createNavigatorFactory(LeftTabNavigator) as () => TypedNavigator<
- NavType,
- StaticConfig
->
+export const createLeftTabNavigator = createNavigatorFactory(LeftTabNavigator) as unknown as () => TypedNavigator
const TabNavigator = createLeftTabNavigator()
const makeOptions = (rd: RouteDef) => {
return ({route, navigation}: GetOptionsParams) => {
@@ -110,7 +107,7 @@ const makeOptions = (rd: RouteDef) => {
return {...opt}
}
}
-const cryptoScreens = routeMapToScreenElements(cryptoSubRoutes, TabNavigator.Screen, makeLayout, makeOptions, false, false)
+const cryptoScreens = routeMapToScreenElements(cryptoSubRoutes, TabNavigator.Screen, makeLayout, makeOptions, false, false, false)
const CryptoSubNavigator = () => (
{cryptoScreens}
diff --git a/shared/fs/nav-header/mobile-header.tsx b/shared/fs/nav-header/mobile-header.tsx
index 675e4ed1a83e..d4b09e7a2f0b 100644
--- a/shared/fs/nav-header/mobile-header.tsx
+++ b/shared/fs/nav-header/mobile-header.tsx
@@ -25,6 +25,11 @@ const MaybePublicTag = ({path}: {path: T.FS.Path}) =>
) : null
+const FilesTabStatusIcon = () => {
+ const uploadIcon = useFSState(s => s.getUploadIconForFilesTab())
+ return uploadIcon ? : null
+}
+
const NavMobileHeader = (props: Props) => {
const {expanded, setFolderViewFilter} = useFSState(
C.useShallow(s => ({
@@ -50,8 +55,11 @@ const NavMobileHeader = (props: Props) => {
return props.path === FS.defaultPath ? (
-
- Files
+
+
+ Files
+
+
@@ -66,6 +74,7 @@ const NavMobileHeader = (props: Props) => {
) : null}
+
)}
@@ -108,6 +117,7 @@ const styles = Kb.Styles.styleSheetCreate(
},
expandedTopContainer: Kb.Styles.platformStyles({
common: {
+ alignItems: 'center',
backgroundColor: Kb.Styles.globalColors.white,
paddingRight: Kb.Styles.globalMargins.tiny,
},
@@ -115,6 +125,10 @@ const styles = Kb.Styles.styleSheetCreate(
isIOS: {height: 44},
}),
filename: {marginLeft: Kb.Styles.globalMargins.xtiny},
+ filesTabStatusIcon: {
+ height: Kb.Styles.globalMargins.small,
+ width: Kb.Styles.globalMargins.small,
+ },
headerContainer: {
backgroundColor: Kb.Styles.globalColors.white,
borderBottomColor: Kb.Styles.globalColors.black_10,
diff --git a/shared/ios/Keybase/Info.plist b/shared/ios/Keybase/Info.plist
index 4169e4221386..4cf9da2c060b 100644
--- a/shared/ios/Keybase/Info.plist
+++ b/shared/ios/Keybase/Info.plist
@@ -122,7 +122,5 @@
CADisableMinimumFrameDurationOnPhone
- UIDesignRequiresCompatibility
-
diff --git a/shared/ios/Podfile.lock b/shared/ios/Podfile.lock
index 5b17fba19b20..0708a802c12a 100644
--- a/shared/ios/Podfile.lock
+++ b/shared/ios/Podfile.lock
@@ -148,6 +148,34 @@ PODS:
- libwebp/sharpyuv (1.5.0)
- libwebp/webp (1.5.0):
- libwebp/sharpyuv
+ - LiquidGlass (0.7.0):
+ - boost
+ - DoubleConversion
+ - fast_float
+ - fmt
+ - glog
+ - hermes-engine
+ - RCT-Folly
+ - RCT-Folly/Fabric
+ - RCTRequired
+ - RCTTypeSafety
+ - React-Core
+ - React-debug
+ - React-Fabric
+ - React-featureflags
+ - React-graphics
+ - React-ImageManager
+ - React-jsi
+ - React-NativeModulesApple
+ - React-RCTFabric
+ - React-renderercss
+ - React-rendererdebug
+ - React-utils
+ - ReactCodegen
+ - ReactCommon/turbomodule/bridging
+ - ReactCommon/turbomodule/core
+ - SocketRocket
+ - Yoga
- lottie-ios (4.6.0)
- lottie-react-native (7.3.6):
- boost
@@ -3228,6 +3256,7 @@ DEPENDENCIES:
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
- KBCommon (from `../../rnmodules/kb-common`)
+ - "LiquidGlass (from `../node_modules/@callstack/liquid-glass`)"
- lottie-react-native (from `../node_modules/lottie-react-native`)
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
@@ -3397,6 +3426,8 @@ EXTERNAL SOURCES:
:tag: hermes-v0.14.1
KBCommon:
:path: "../../rnmodules/kb-common"
+ LiquidGlass:
+ :path: "../node_modules/@callstack/liquid-glass"
lottie-react-native:
:path: "../node_modules/lottie-react-native"
RCT-Folly:
@@ -3602,6 +3633,7 @@ SPEC CHECKSUMS:
libavif: 5f8e715bea24debec477006f21ef9e95432e254d
libdav1d: 23581a4d8ec811ff171ed5e2e05cd27bad64c39f
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
+ LiquidGlass: 3201cf56cdcacd9b273b67fef52ddc41d48e2253
lottie-ios: 8f959969761e9c45d70353667d00af0e5b9cadb3
lottie-react-native: e542fe4b6e8eddcf893d5a8cef9f8b5c6d2f7331
RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669
diff --git a/shared/package.json b/shared/package.json
index dc79e057133c..e028d91e8ebb 100644
--- a/shared/package.json
+++ b/shared/package.json
@@ -77,6 +77,7 @@
"license": "MIT",
"private": true,
"dependencies": {
+ "@callstack/liquid-glass": "0.7.0",
"@gorhom/bottom-sheet": "5.2.8",
"@gorhom/portal": "1.0.14",
"@khanacademy/simple-markdown": "2.2.2",
diff --git a/shared/people/routes.tsx b/shared/people/routes.tsx
index 2c56bb3eedd8..7fc3d609715f 100644
--- a/shared/people/routes.tsx
+++ b/shared/people/routes.tsx
@@ -16,7 +16,6 @@ const HeaderAvatar = () => {
export const newRoutes = {
peopleRoot: {
getOptions: {
- headerLeft: () => null,
headerRight: () => ,
headerTitle: () => ,
},
@@ -27,7 +26,11 @@ export const newRoutes = {
const AccountSignOutButton = () => {
const navigateAppend = C.useRouterState(s => s.dispatch.navigateAppend)
return (
- navigateAppend(settingsLogOutTab)} style={{color: Kb.Styles.globalColors.red}}>
+ navigateAppend(settingsLogOutTab)}
+ style={{color: Kb.Styles.globalColors.red, padding: 8}}
+ >
Sign out
)
diff --git a/shared/profile/routes.tsx b/shared/profile/routes.tsx
index 4a552d448b52..0df79ff872c7 100644
--- a/shared/profile/routes.tsx
+++ b/shared/profile/routes.tsx
@@ -51,11 +51,6 @@ export const newRoutes = {
React.lazy(async () => import('./user')),
{
getOptions: {
- headerLeft: p => {
- return (
-
- )
- },
headerShown: true,
headerStyle: {backgroundColor: 'transparent'},
headerTitle: () => (
diff --git a/shared/router-v2/common.d.ts b/shared/router-v2/common.d.ts
index f60815778341..b4f12f2ca58d 100644
--- a/shared/router-v2/common.d.ts
+++ b/shared/router-v2/common.d.ts
@@ -3,6 +3,8 @@ import type {NavState} from '@/constants/router'
import type * as Styles from '@/styles'
import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'
export const tabBarStyle: Styles.StylesCrossPlatform
+export const tabBarBlurEffect: 'systemDefault'
+export const tabBarMinimizeBehavior: 'onScrollDown'
export const headerDefaultStyle: Styles.StylesCrossPlatform
// Intersection with NativeStackNavigationOptions: our custom header reads container
// styles that aren't in RN's native-stack types. Cast to NativeStackNavigationOptions
diff --git a/shared/router-v2/common.native.tsx b/shared/router-v2/common.native.tsx
index 75f93c18159e..e41622960fec 100644
--- a/shared/router-v2/common.native.tsx
+++ b/shared/router-v2/common.native.tsx
@@ -18,16 +18,11 @@ export const tabBarStyle = {
get backgroundColor() {
return Kb.Styles.globalColors.blueDarkOrGreyDarkest
},
- position: 'absolute' as const,
-}
-
-export const tabBarStyleHidden = {
- height: 0,
- opacity: 0,
- overflow: 'hidden',
- position: 'absolute',
} as const
+export const tabBarBlurEffect = 'systemDefault' as const
+export const tabBarMinimizeBehavior = 'onScrollDown' as const
+
const actionWidth = 64
const DEBUGCOLORS = __DEV__ && (false as boolean)
@@ -35,6 +30,7 @@ type HeaderLeftProps = Parameters>[0]
// Options used by default on all navigators
export const defaultNavigationOptions = {
+ headerBackButtonDisplayMode: 'minimal',
headerBackTitle: '',
headerBackVisible: false,
headerBackgroundContainerStyle: {
diff --git a/shared/router-v2/left-tab-navigator.desktop.tsx b/shared/router-v2/left-tab-navigator.desktop.tsx
index b104de49df85..e80ac4e5d099 100644
--- a/shared/router-v2/left-tab-navigator.desktop.tsx
+++ b/shared/router-v2/left-tab-navigator.desktop.tsx
@@ -2,7 +2,7 @@ import * as React from 'react'
import * as Kb from '@/common-adapters'
import TabBar from './tab-bar.desktop'
import {useNavigationBuilder, TabRouter, createNavigatorFactory} from '@react-navigation/core'
-import type {TypedNavigator, NavigatorTypeBagBase, StaticConfig} from '@react-navigation/native'
+import type {TypedNavigator, NavigatorTypeBagBase} from '@react-navigation/native'
import type * as Tabs from '@/constants/tabs'
import {useRouterState} from '@/stores/router'
import {getModalStack} from '@/constants/router'
@@ -68,7 +68,4 @@ type NavType = NavigatorTypeBagBase & {
}
}
-export const createLeftTabNavigator = createNavigatorFactory(LeftTabNavigator) as () => TypedNavigator<
- NavType,
- StaticConfig
->
+export const createLeftTabNavigator = createNavigatorFactory(LeftTabNavigator) as unknown as () => TypedNavigator
diff --git a/shared/router-v2/linking.tsx b/shared/router-v2/linking.tsx
index 969e6204b51a..fa2a1041267b 100644
--- a/shared/router-v2/linking.tsx
+++ b/shared/router-v2/linking.tsx
@@ -84,7 +84,8 @@ const makeTabState = (
}
}
return {
- routes: [{name: 'loggedIn', state: {routes: [tabRoute]}}],
+ index: 0,
+ routes: [{name: 'loggedIn', state: {index: 0, routes: [tabRoute]}}],
}
}
@@ -94,11 +95,20 @@ export const makeChatConversationState = (conversationIDKey: string): PartialNav
// Tablet/desktop: chatRoot with conversationIDKey param (split view)
return makeTabState(Tabs.chatTab, [{name: 'chatRoot', params: {conversationIDKey}}])
}
- // Phone: chatRoot + chatConversation on stack
- return makeTabState(Tabs.chatTab, [
- {name: 'chatRoot'},
- {name: 'chatConversation', params: {conversationIDKey}},
- ])
+ // Phone: tabs at root, conversation pushed above them
+ return {
+ index: 1,
+ routes: [
+ {
+ name: 'loggedIn',
+ state: {
+ index: 0,
+ routes: [{name: Tabs.chatTab, state: {index: 0, routes: [{name: 'chatRoot'}]}}],
+ },
+ },
+ {name: 'chatConversation', params: {conversationIDKey}},
+ ],
+ }
}
// Build state for a modal screen at root level
diff --git a/shared/router-v2/router.desktop.tsx b/shared/router-v2/router.desktop.tsx
index 4ff607d11e85..3f824441fbc0 100644
--- a/shared/router-v2/router.desktop.tsx
+++ b/shared/router-v2/router.desktop.tsx
@@ -35,7 +35,7 @@ const appTabsInnerOptions = {
tabBarStyle: Common.tabBarStyle,
}
-const tabScreensConfig = routeMapToStaticScreens(routes, makeLayout, false, false)
+const tabScreensConfig = routeMapToStaticScreens(routes, makeLayout, false, false, true)
const tabComponents: Record = {}
for (const tab of Tabs.desktopTabs) {
@@ -59,7 +59,7 @@ function AppTabsInner() {
const AppTabs = () =>
-const loggedOutScreensConfig = routeMapToStaticScreens(loggedOutRoutes, makeLayout, false, true)
+const loggedOutScreensConfig = routeMapToStaticScreens(loggedOutRoutes, makeLayout, false, true, false)
const loggedOutOptions = {
header: ({navigation}) => (
@@ -144,7 +144,7 @@ const useIsLoggedOut = () => {
return loggedInLoaded && !loggedIn
}
-const modalScreensConfig = routeMapToStaticScreens(modalRoutes, makeLayout, true, false)
+const modalScreensConfig = routeMapToStaticScreens(modalRoutes, makeLayout, true, false, false)
const rootNav = createNativeStackNavigator({
groups: {
diff --git a/shared/router-v2/router.native.tsx b/shared/router-v2/router.native.tsx
index 099819187165..1ab0c96e10c9 100644
--- a/shared/router-v2/router.native.tsx
+++ b/shared/router-v2/router.native.tsx
@@ -9,21 +9,24 @@ import * as Shared from './router.shared'
import * as Tabs from '@/constants/tabs'
import * as Common from './common.native'
import logger from '@/logger'
-import {StatusBar, View} from 'react-native'
-import {PlatformPressable} from '@react-navigation/elements'
+import {Platform, StatusBar, View} from 'react-native'
import {HeaderLeftButton} from '@/common-adapters/header-buttons'
-import {NavigationContainer, getFocusedRouteNameFromRoute} from '@react-navigation/native'
-import {createBottomTabNavigator, type BottomTabBarButtonProps} from '@react-navigation/bottom-tabs'
+import {NavigationContainer} from '@react-navigation/native'
+import type {NavigationProp} from '@react-navigation/native'
+// NAV8: import {createBottomTabNavigator} from '@react-navigation/bottom-tabs'
+import {createNativeBottomTabNavigator} from '@react-navigation/bottom-tabs/unstable' // NAV7
import {modalRoutes, routes, loggedOutRoutes, tabRoots, routeMapToStaticScreens} from './routes'
import {createNativeStackNavigator} from '@react-navigation/native-stack'
import type {NativeStackNavigationOptions} from '@react-navigation/native-stack'
+import type {SFSymbol} from 'sf-symbols-typescript'
import {makeLayout} from './screen-layout.native'
import {useRootKey} from './hooks.native'
-import * as TabBar from './tab-bar.native'
import {createLinkingConfig} from './linking'
import {handleAppLink} from '@/constants/deeplinks'
import {useDaemonState} from '@/stores/daemon'
+import {useNotifState} from '@/stores/notifications'
+import {usePushState} from '@/stores/push'
if (module.hot) {
module.hot.accept('', () => {})
@@ -40,76 +43,150 @@ const tabToLabel = new Map([
// just to get badge rollups
const tabs = C.isTablet ? Tabs.tabletTabs : Tabs.phoneTabs
-const Tab = createBottomTabNavigator()
+// NAV8: const Tab = createBottomTabNavigator()
+const Tab = createNativeBottomTabNavigator() // NAV7
const tabRoutes = routes
+const settingsTabChildren = [Tabs.gitTab, Tabs.devicesTab, Tabs.settingsTab] as const
-const tabStackOptions = {
+const tabStackOptions = ({
+ navigation,
+}: {
+ navigation: {canGoBack: () => boolean}
+}): NativeStackNavigationOptions => ({
...Common.defaultNavigationOptions,
-} as const
+ ...(Platform.OS === 'ios' ? {contentStyle: {backgroundColor: Kb.Styles.globalColors.transparent}} : {}),
+ // Use the native back button (liquid glass pill on iOS 26) for non-root screens;
+ // omit headerLeft entirely on root screens so no empty glass circle appears.
+ headerBackVisible: navigation.canGoBack(),
+ headerLeft: undefined,
+})
+
+// On phones, each tab stack only contains its root screen. All other routes live in
+// the root stack (alongside chatConversation) so they render above the tab bar.
+const tabRootNameSet = new Set(Object.values(tabRoots).filter(Boolean))
+const phoneRootRoutes = Object.fromEntries(
+ Object.entries(tabRoutes).filter(([name]) => !tabRootNameSet.has(name))
+) as typeof tabRoutes
-const tabScreensConfig = routeMapToStaticScreens(tabRoutes, makeLayout, false, false)
+const tabScreensConfig = routeMapToStaticScreens(tabRoutes, makeLayout, false, false, true)
+const phoneRootScreensConfig = routeMapToStaticScreens(
+ C.isTablet ? {} : phoneRootRoutes,
+ makeLayout,
+ false,
+ false,
+ false
+)
const tabComponents: Record = {}
for (const tab of tabs) {
- const nav = createNativeStackNavigator({
- initialRouteName: tabRoots[tab],
- screenOptions: tabStackOptions as NativeStackNavigationOptions,
- screens: tabScreensConfig,
- })
- tabComponents[tab] = nav.getComponent()
+ if (C.isTablet) {
+ const nav = createNativeStackNavigator({
+ initialRouteName: tabRoots[tab],
+ screenOptions: tabStackOptions,
+ screens: tabScreensConfig,
+ })
+ tabComponents[tab] = nav.getComponent()
+ } else {
+ const rootName = tabRoots[tab]
+ const rootScreenConfig = routeMapToStaticScreens(
+ {[rootName]: tabRoutes[rootName as keyof typeof tabRoutes]} as typeof tabRoutes,
+ makeLayout,
+ false,
+ false,
+ true
+ )
+ const nav = createNativeStackNavigator({
+ initialRouteName: rootName,
+ screenOptions: tabStackOptions,
+ screens: rootScreenConfig,
+ })
+ tabComponents[tab] = nav.getComponent()
+ }
}
-const tabScreenOptions = ({route}: {route: {name: string}}) => {
- let routeName: string | undefined
- try {
- routeName = getFocusedRouteNameFromRoute(route)
- } catch {}
- return {
- tabBarStyle: routeName === 'chatConversation' ? Common.tabBarStyleHidden : Common.tabBarStyle,
+const androidTabIcons = new Map([
+ [Tabs.chatTab, require('../images/icons/icon-nav-chat-32.png')],
+ [Tabs.fsTab, require('../images/icons/icon-nav-folders-32.png')],
+ [Tabs.peopleTab, require('../images/icons/icon-nav-people-32.png')],
+ [Tabs.settingsTab, require('../images/icons/icon-nav-settings-32.png')],
+ [Tabs.teamsTab, require('../images/icons/icon-folder-team-32.png')],
+])
+
+const iosTabIcons = new Map([
+ [Tabs.chatTab, {active: 'message.fill', inactive: 'message'}],
+ [Tabs.fsTab, {active: 'folder.fill', inactive: 'folder'}],
+ [Tabs.peopleTab, {active: 'person.crop.circle.fill', inactive: 'person.crop.circle'}],
+ [Tabs.settingsTab, {active: 'ellipsis.circle.fill', inactive: 'ellipsis.circle'}],
+ [Tabs.teamsTab, {active: 'person.3.fill', inactive: 'person.3'}],
+])
+
+const getNativeTabIcon = (tab: Tabs.Tab) => {
+ if (Platform.OS === 'ios') {
+ const icon = iosTabIcons.get(tab)
+ return icon
+ ? ({focused}: {focused: boolean}) => ({
+ name: focused ? icon.active : icon.inactive,
+ type: 'sfSymbol' as const,
+ })
+ : undefined
}
+ const source = androidTabIcons.get(tab)
+ return source ? {source, type: 'image' as const} : undefined
}
-const tabStacks = tabs.map(tab => (
- {
- C.useRouterState.getState().dispatch.defer.tabLongPress?.(tab)
- },
- }}
- component={tabComponents[tab]!}
- options={tabScreenOptions}
- />
-))
-
-const android_rippleFix = {color: 'transparent'}
-const appTabsScreenOptions = ({route}: {route: {name: string}}) => {
+
+const getBadgeNumber = (
+ routeName: Tabs.Tab,
+ navBadges: ReadonlyMap,
+ hasPermissions: boolean
+) => {
+ const onSettings = routeName === Tabs.settingsTab
+ const tabsToCount: ReadonlyArray = onSettings ? settingsTabChildren : [routeName]
+ const count = tabsToCount.reduce(
+ (res, tab) => res + (navBadges.get(tab) || 0),
+ onSettings && !hasPermissions ? 1 : 0
+ )
+ return count || undefined
+}
+
+const appTabsScreenOptions = (
+ routeName: Tabs.Tab,
+ navBadges: ReadonlyMap,
+ hasPermissions: boolean
+) => {
+ const isIOS = Platform.OS === 'ios'
return {
- ...Common.defaultNavigationOptions,
headerShown: false,
- tabBarAccessibilityLabel: tabToLabel.get(route.name as Tabs.Tab) ?? route.name,
- tabBarActiveBackgroundColor: Kb.Styles.globalColors.transparent,
- tabBarButton: (p: BottomTabBarButtonProps) => (
-
- {p.children}
-
- ),
- tabBarHideOnKeyboard: true,
- tabBarIcon: ({focused}: {focused: boolean}) => (
-
- ),
- tabBarInactiveBackgroundColor: Kb.Styles.globalColors.transparent,
- tabBarLabel: ({focused}: {focused: boolean}) => (
-
- ),
- tabBarShowLabel: Kb.Styles.isTablet,
- tabBarStyle: Common.tabBarStyle,
+ tabBarActiveIndicatorEnabled: false,
+ tabBarBadge: getBadgeNumber(routeName, navBadges, hasPermissions),
+ tabBarBadgeStyle: {backgroundColor: Kb.Styles.globalColors.blue},
+ ...(isIOS
+ ? {
+ tabBarBlurEffect: Common.tabBarBlurEffect,
+ tabBarMinimizeBehavior: Common.tabBarMinimizeBehavior,
+ }
+ : {tabBarActiveTintColor: Kb.Styles.globalColors.white}),
+ tabBarControllerMode: (isIOS && C.isTablet ? 'auto' : undefined) as 'auto' | undefined,
+ tabBarIcon: getNativeTabIcon(routeName),
+ ...(isIOS ? {} : {tabBarInactiveTintColor: Kb.Styles.globalColors.blueLighter}),
+ tabBarLabel: tabToLabel.get(routeName) ?? routeName,
+ tabBarLabelVisibilityMode: (C.isTablet ? 'labeled' : 'selected') as 'labeled' | 'selected',
+ ...(isIOS ? {} : {tabBarStyle: Common.tabBarStyle}),
+ title: tabToLabel.get(routeName) ?? routeName,
}
}
function AppTabs() {
+ const navBadges = useNotifState(s => s.navBadges)
+ const hasPermissions = usePushState(s => s.hasPermissions)
return (
-
- {tabStacks}
+
+ {tabs.map(tab => (
+
+ ))}
)
}
@@ -117,7 +194,7 @@ function AppTabs() {
const loggedOutScreenOptions = {
...Common.defaultNavigationOptions,
} as const
-const loggedOutScreensConfig = routeMapToStaticScreens(loggedOutRoutes, makeLayout, false, true)
+const loggedOutScreensConfig = routeMapToStaticScreens(loggedOutRoutes, makeLayout, false, true, false)
const loggedOutNav = createNativeStackNavigator({
initialRouteName: 'login',
screenOptions: loggedOutScreenOptions as NativeStackNavigationOptions,
@@ -125,33 +202,46 @@ const loggedOutNav = createNativeStackNavigator({
})
const LoggedOut = loggedOutNav.getComponent()
-const rootStackScreenOptions = {
- headerShown: false, // eventually do this after we pull apart modal2 etc
-} satisfies NativeStackNavigationOptions
-const modalScreenOptions = {
- headerLeft: () => ,
- headerShown: true,
- presentation: 'modal',
- title: '',
-} as const
+const rootStackScreenOptions = {headerBackButtonDisplayMode: 'minimal'} satisfies NativeStackNavigationOptions
+const modalScreenOptions = ({
+ navigation,
+}: {
+ navigation: NavigationProp
+}): NativeStackNavigationOptions => {
+ const cancelItem: NativeStackNavigationOptions =
+ Platform.OS === 'ios'
+ ? {
+ unstable_headerLeftItems: () => [
+ {label: 'Cancel', onPress: () => navigation.goBack(), type: 'button' as const},
+ ],
+ }
+ : {headerLeft: () => }
+ return {
+ ...cancelItem,
+ headerShown: true,
+ presentation: 'modal',
+ title: '',
+ }
+}
const useIsLoggedIn = () => useConfigState(s => s.loggedIn)
const useIsLoggedOut = () => !useConfigState(s => s.loggedIn)
-const modalScreensConfig = routeMapToStaticScreens(modalRoutes, makeLayout, true, false)
+const modalScreensConfig = routeMapToStaticScreens(modalRoutes, makeLayout, true, false, false)
const rootNav = createNativeStackNavigator({
groups: {
loggedIn: {
if: useIsLoggedIn,
screens: {
- loggedIn: {screen: AppTabs},
+ loggedIn: {options: {headerShown: false}, screen: AppTabs},
+ ...phoneRootScreensConfig,
},
},
loggedOut: {
if: useIsLoggedOut,
screens: {
- loggedOut: {screen: LoggedOut},
+ loggedOut: {options: {headerShown: false}, screen: LoggedOut},
},
},
modals: {
diff --git a/shared/router-v2/router.shared.tsx b/shared/router-v2/router.shared.tsx
index 9d537eadfab2..bfac734a7d84 100644
--- a/shared/router-v2/router.shared.tsx
+++ b/shared/router-v2/router.shared.tsx
@@ -1,9 +1,7 @@
import * as Kb from '@/common-adapters'
-import UploadIcon from '@/fs/common/upload-icon'
import {Splash} from '../login/loading'
import type {Theme} from '@react-navigation/native'
import {colors, darkColors} from '@/styles/colors'
-import {useFSState} from '@/stores/fs'
export function SimpleLoading() {
return (
@@ -18,21 +16,6 @@ export function SimpleLoading() {
)
}
-export const FilesTabBadge = () => {
- const uploadIcon = useFSState(s => s.getUploadIconForFilesTab())
- return uploadIcon ? : null
-}
-
-const styles = Kb.Styles.styleSheetCreate(() => ({
- fsBadgeIconUpload: {
- bottom: Kb.Styles.globalMargins.tiny,
- height: Kb.Styles.globalMargins.small,
- position: 'absolute',
- right: Kb.Styles.globalMargins.small,
- width: Kb.Styles.globalMargins.small,
- },
-}))
-
// the nav assumes plain colors for animation in some cases so we can't use the themed colors there
export const darkTheme: Theme = {
colors: {
diff --git a/shared/router-v2/routes.tsx b/shared/router-v2/routes.tsx
index caa8a4b8df38..dcc08c870689 100644
--- a/shared/router-v2/routes.tsx
+++ b/shared/router-v2/routes.tsx
@@ -111,7 +111,12 @@ type LayoutFn = (props: {
route: GetOptionsParams['route']
navigation: GetOptionsParams['navigation']
}) => React.ReactNode
-type MakeLayoutFn = (isModal: boolean, isLoggedOut: boolean, getOptions?: GetOptions) => LayoutFn
+type MakeLayoutFn = (
+ isModal: boolean,
+ isLoggedOut: boolean,
+ isTabScreen: boolean,
+ getOptions?: GetOptions
+) => LayoutFn
type MakeOptionsFn = (rd: RouteDef) => (params: GetOptionsParams) => GetOptionsRet
function toNavOptions(opts: GetOptionsRet): NativeStackNavigationOptions {
@@ -123,7 +128,8 @@ export function routeMapToStaticScreens(
rs: RouteMap,
makeLayoutFn: MakeLayoutFn,
isModal: boolean,
- isLoggedOut: boolean
+ isLoggedOut: boolean,
+ isTabScreen: boolean
) {
const result: Record<
string,
@@ -138,7 +144,7 @@ export function routeMapToStaticScreens(
result[name] = {
// Layout functions return JSX (ReactElement) and accept any route/navigation.
// Cast bridges our specific KBRootParamList types to RN's generic ParamListBase.
- layout: makeLayoutFn(isModal, isLoggedOut, rd.getOptions) as (props: any) => React.ReactElement,
+ layout: makeLayoutFn(isModal, isLoggedOut, isTabScreen, rd.getOptions) as (props: any) => React.ReactElement,
options: ({route, navigation}: {route: any; navigation: any}) => {
const go = rd.getOptions
const opts = typeof go === 'function' ? go({navigation, route}) : go
@@ -156,7 +162,8 @@ export function routeMapToScreenElements(
makeLayoutFn: MakeLayoutFn,
makeOptionsFn: MakeOptionsFn,
isModal: boolean,
- isLoggedOut: boolean
+ isLoggedOut: boolean,
+ isTabScreen: boolean
) {
return (Object.keys(rs) as Array).flatMap(name => {
const rd = rs[name as string]
@@ -166,7 +173,7 @@ export function routeMapToScreenElements(
key={String(name)}
name={name}
component={rd.screen}
- layout={makeLayoutFn(isModal, isLoggedOut, rd.getOptions)}
+ layout={makeLayoutFn(isModal, isLoggedOut, isTabScreen, rd.getOptions)}
options={makeOptionsFn(rd)}
/>,
]
diff --git a/shared/router-v2/screen-layout.desktop.tsx b/shared/router-v2/screen-layout.desktop.tsx
index a6c7e87c71e7..0d0ced67265c 100644
--- a/shared/router-v2/screen-layout.desktop.tsx
+++ b/shared/router-v2/screen-layout.desktop.tsx
@@ -176,7 +176,7 @@ type LayoutProps = {
navigation: GetOptionsParams['navigation']
}
-export const makeLayout = (isModal: boolean, _isLoggedOut: boolean, getOptions?: GetOptions) => {
+export const makeLayout = (isModal: boolean, _isLoggedOut: boolean, _isTabScreen: boolean, getOptions?: GetOptions) => {
return ({children, route, navigation}: LayoutProps) => {
const navigationOptions = typeof getOptions === 'function' ? getOptions({navigation, route}) : getOptions
diff --git a/shared/router-v2/screen-layout.native.tsx b/shared/router-v2/screen-layout.native.tsx
index 352f97f64e61..6a7ed6f3fc11 100644
--- a/shared/router-v2/screen-layout.native.tsx
+++ b/shared/router-v2/screen-layout.native.tsx
@@ -1,6 +1,5 @@
import * as Kb from '@/common-adapters'
import * as React from 'react'
-import {useBottomTabBarHeight} from '@react-navigation/bottom-tabs'
import {SafeAreaProvider, initialWindowMetrics} from 'react-native-safe-area-context'
import {isTablet, isIOS} from '@/constants/platform'
import type {GetOptions, GetOptionsParams} from '@/constants/types/router'
@@ -14,19 +13,27 @@ type LayoutProps = {
}
const TabScreenWrapper = ({children}: {children: React.ReactNode}) => {
- const paddingBottom = useBottomTabBarHeight()
return (
-
+
{children}
)
}
-export const makeLayout = (isModal: boolean, isLoggedOut: boolean, getOptions?: GetOptions) => {
+const StackScreenWrapper = ({children}: {children: React.ReactNode}) => {
+ return (
+
+ {children}
+
+ )
+}
+
+export const makeLayout = (
+ isModal: boolean,
+ isLoggedOut: boolean,
+ isTabScreen: boolean,
+ getOptions?: GetOptions
+) => {
return function Layout({children, route, navigation}: LayoutProps) {
const navigationOptions = typeof getOptions === 'function' ? getOptions({navigation, route}) : getOptions
const {modalFooter} = navigationOptions ?? {}
@@ -52,9 +59,12 @@ export const makeLayout = (isModal: boolean, isLoggedOut: boolean, getOptions?:
suspenseContent
)
- if (!isModal && !isLoggedOut) {
+ if (!isModal && !isLoggedOut && isTabScreen) {
return {wrappedContent}
}
+ if (!isModal && !isLoggedOut) {
+ return {wrappedContent}
+ }
return (
diff --git a/shared/router-v2/tab-bar.native.tsx b/shared/router-v2/tab-bar.native.tsx
deleted file mode 100644
index 9be58e08601b..000000000000
--- a/shared/router-v2/tab-bar.native.tsx
+++ /dev/null
@@ -1,118 +0,0 @@
-import * as Kb from '@/common-adapters'
-import * as Tabs from '@/constants/tabs'
-import * as C from '@/constants'
-import * as Shared from './router.shared'
-import {View} from 'react-native'
-import {useSafeAreaFrame} from 'react-native-safe-area-context'
-import {useColorScheme} from 'react-native'
-import {usePushState} from '@/stores/push'
-import {useNotifState} from '@/stores/notifications'
-
-const settingsTabChildren = [Tabs.gitTab, Tabs.devicesTab, Tabs.settingsTab] as const
-const tabs = C.isTablet ? Tabs.tabletTabs : Tabs.phoneTabs
-const tabToData = new Map([
- [Tabs.chatTab, {icon: 'iconfont-nav-2-chat', label: 'Chat'}],
- [Tabs.fsTab, {icon: 'iconfont-nav-2-files', label: 'Files'}],
- [Tabs.teamsTab, {icon: 'iconfont-nav-2-teams', label: 'Teams'}],
- [Tabs.peopleTab, {icon: 'iconfont-nav-2-people', label: 'People'}],
- [Tabs.settingsTab, {icon: 'iconfont-nav-2-hamburger', label: 'More'}],
-] as const)
-
-export function TabBarIcon(props: {
- isFocused: boolean
- routeName: Tabs.Tab
-}) {
- const {isFocused, routeName} = props
- const navBadges = useNotifState(s => s.navBadges)
- const hasPermissions = usePushState(s => s.hasPermissions)
- const onSettings = routeName === Tabs.settingsTab
- const tabsToCount: ReadonlyArray = onSettings ? settingsTabChildren : [routeName]
- const badgeNumber = tabsToCount.reduce(
- (res, tab) => res + (navBadges.get(tab) || 0),
- // notifications gets badged on native if there's no push, special case
- onSettings && !hasPermissions ? 1 : 0
- )
- const {width: screenWidth} = useSafeAreaFrame()
- const data = tabToData.get(routeName)
- return data ? (
-
-
- {!!badgeNumber && }
- {routeName === Tabs.fsTab && }
-
- ) : null
-}
-
-type TabIconProps = {routeName: Tabs.Tab; focused: boolean}
-export function TabBarIconWrapper(p: TabIconProps) {
- return
-}
-export function TabBarLabelWrapper(p: TabIconProps) {
- const data = tabToData.get(p.routeName)
- const isDarkMode = useColorScheme() === 'dark'
- return (
-
- {data?.label}
-
- )
-}
-
-const styles = Kb.Styles.styleSheetCreate(
- () =>
- ({
- badge: Kb.Styles.platformStyles({
- common: {
- left: 36,
- position: 'absolute',
- top: 3,
- },
- }),
- label: {marginLeft: Kb.Styles.globalMargins.medium},
- labelDarkMode: {color: Kb.Styles.globalColors.black_50},
- labelDarkModeFocused: {color: Kb.Styles.globalColors.black},
- labelLightMode: {color: Kb.Styles.globalColors.blueLighter},
- labelLightModeFocused: {color: Kb.Styles.globalColors.white},
- tab: Kb.Styles.platformStyles({
- common: {
- backgroundColor: Kb.Styles.globalColors.blueDarkOrGreyDarkest,
- paddingBottom: 6,
- paddingLeft: 16,
- paddingRight: 16,
- paddingTop: 6,
- },
- isTablet: {width: '100%'},
- }),
- tabContainer: Kb.Styles.platformStyles({
- common: {
- flex: 1,
- justifyContent: 'center',
- },
- isTablet: {
- // This is to circumvent a React Navigation AnimatedComponent with minWidth: 64 that wraps TabBarIcon
- minWidth: Kb.Styles.globalMargins.xlarge,
- },
- }),
- }) as const
-)
diff --git a/shared/settings/root-desktop-tablet.tsx b/shared/settings/root-desktop-tablet.tsx
index fabf0a5d774f..cf0ea6da1308 100644
--- a/shared/settings/root-desktop-tablet.tsx
+++ b/shared/settings/root-desktop-tablet.tsx
@@ -6,7 +6,7 @@ import {makeLayout} from '@/router-v2/screen-layout.desktop'
import type {RouteDef, GetOptionsParams} from '@/constants/types/router'
import LeftNav from './sub-nav/left-nav'
import {useNavigationBuilder, TabRouter, createNavigatorFactory} from '@react-navigation/core'
-import type {TypedNavigator, NavigatorTypeBagBase, StaticConfig} from '@react-navigation/native'
+import type {TypedNavigator, NavigatorTypeBagBase} from '@react-navigation/native'
import {sharedNewRoutes} from './routes'
import {settingsAccountTab} from '@/stores/settings'
@@ -81,10 +81,7 @@ type NavType = NavigatorTypeBagBase & {
}
}
-export const createLeftTabNavigator = createNavigatorFactory(LeftTabNavigator) as () => TypedNavigator<
- NavType,
- StaticConfig
->
+export const createLeftTabNavigator = createNavigatorFactory(LeftTabNavigator) as unknown as () => TypedNavigator
const TabNavigator = createLeftTabNavigator()
const makeOptions = (rd: RouteDef) => {
return ({route, navigation}: GetOptionsParams) => {
@@ -93,7 +90,7 @@ const makeOptions = (rd: RouteDef) => {
return {...opt}
}
}
-const settingsScreens = routeMapToScreenElements(settingsSubRoutes, TabNavigator.Screen, makeLayout, makeOptions, false, false)
+const settingsScreens = routeMapToScreenElements(settingsSubRoutes, TabNavigator.Screen, makeLayout, makeOptions, false, false, false)
// TODO on ipad this doesn't have a stack navigator so when you go into crypto you get
// a push from the parent stack. If we care just make a generic left nav / right stack
diff --git a/shared/settings/root-phone.tsx b/shared/settings/root-phone.tsx
index 04740ee00a17..7c3a01fc03f5 100644
--- a/shared/settings/root-phone.tsx
+++ b/shared/settings/root-phone.tsx
@@ -53,7 +53,7 @@ type Item = {
subText?: string
textColor?: string
}
-type Section = Omit, 'renderItem'>
+type Section = {title: string; data: ReadonlyArray- }
function SettingsNav() {
const badgeNumbers = useNotifState(s => s.navBadges)
@@ -193,28 +193,30 @@ function SettingsNav() {
]
return (
- item.text + index}
- initialNumToRender={20}
- renderItem={({item}) => {
- if (item.text === 'perf') {
- return
- }
- return item.text ? (
- item.onClick()} selected={false} />
- ) : null
- }}
- renderSectionHeader={({section: {title}}) =>
- title ? (
-
- {title}
-
- ) : null
- }
- style={Kb.Styles.globalStyles.fullHeight}
- sections={sections}
- />
+
+ {sections.map(section => (
+
+ {section.title ? (
+
+ {section.title}
+
+ ) : null}
+ {section.data.map((item, index) =>
+ item.text === 'perf' ? (
+
+ ) : item.text ? (
+ item.onClick()}
+ selected={false}
+ />
+ ) : null
+ )}
+
+ ))}
+
)
}
diff --git a/shared/stores/router.tsx b/shared/stores/router.tsx
index 4c88df5d7680..50f3dc3bf2ec 100644
--- a/shared/stores/router.tsx
+++ b/shared/stores/router.tsx
@@ -34,9 +34,6 @@ const initialStore: Store = {
export type State = Store & {
dispatch: {
clearModals: () => void
- defer: {
- tabLongPress?: (tab: string) => void
- }
navigateAppend: (path: Util.PathParam, replace?: boolean) => void
navigateUp: () => void
navUpToScreen: (name: RouteKeys) => void
@@ -54,9 +51,6 @@ export type State = Store & {
export const useRouterState = Z.createZustand('router', (set, get) => {
const dispatch: State['dispatch'] = {
clearModals: Util.clearModals,
- defer: {
- tabLongPress: undefined,
- },
navUpToScreen: Util.navUpToScreen,
navigateAppend: Util.navigateAppend,
navigateUp: Util.navigateUp,
diff --git a/shared/team-building/list-body.tsx b/shared/team-building/list-body.tsx
index e905776f41ed..ab06143a4ad5 100644
--- a/shared/team-building/list-body.tsx
+++ b/shared/team-building/list-body.tsx
@@ -223,8 +223,9 @@ export const ListBody = (
}
) => {
const {params} = useRoute>()
- const recommendedHideYourself = params.recommendedHideYourself ?? false
- const teamID = params.teamID
+ const p = params as {recommendedHideYourself?: boolean; teamID?: string} | undefined
+ const recommendedHideYourself = p?.recommendedHideYourself ?? false
+ const teamID = p?.teamID
const {searchString, selectedService} = props
const {onAdd, onRemove, teamSoFar, onSearchForMore, onChangeText} = props
const {namespace, highlightedIndex, /*offset, */ enterInputCounter, onFinishTeamBuilding} = props
diff --git a/shared/team-building/page.tsx b/shared/team-building/page.tsx
index 58adc6cf062a..8465a8ffb82e 100644
--- a/shared/team-building/page.tsx
+++ b/shared/team-building/page.tsx
@@ -1,30 +1,20 @@
import type {StaticScreenProps} from '@react-navigation/core'
+import {useNavigation} from '@react-navigation/core'
import * as Kb from '@/common-adapters'
import * as React from 'react'
import * as T from '@/constants/types'
import * as C from '@/constants'
import {ModalTitle as TeamsModalTitle} from '../teams/common'
-import {createTBStore, TBProvider, useTBContext} from '@/stores/team-building'
+import {TBProvider, useTBContext} from '@/stores/team-building'
import {useModalHeaderState} from '@/stores/modal-header'
-// Header components that read directly from the TB store (outside TBProvider context)
-const TBHeaderLeft = ({namespace}: {namespace: T.TB.AllowedNamespace}) => {
- const store = createTBStore(namespace)
- const cancelTeamBuilding = store(s => s.dispatch.cancelTeamBuilding)
- if (namespace === 'teams') {
- return
- }
- if (Kb.Styles.isMobile) {
- return (
-
- Cancel
-
- )
- }
- return null
-}
-
-const TBHeaderRight = ({namespace, goButtonLabel}: {namespace: T.TB.AllowedNamespace; goButtonLabel?: string}) => {
+const TBHeaderRight = ({
+ namespace,
+ goButtonLabel,
+}: {
+ namespace: T.TB.AllowedNamespace
+ goButtonLabel?: string
+}) => {
const {enabled, onAction} = useModalHeaderState(
C.useShallow(s => ({enabled: s.actionEnabled, onAction: s.onAction}))
)
@@ -54,24 +44,50 @@ const TBHeaderRight = ({namespace, goButtonLabel}: {namespace: T.TB.AllowedNames
return null
}
-// Writes action state to ModalHeaderStore from inside TBProvider context
-const HeaderRightUpdater = ({namespace}: {namespace: T.TB.AllowedNamespace}) => {
+// Writes action state to ModalHeaderStore from inside TBProvider context.
+// On iOS, also drives unstable_headerRightItems directly to avoid empty glass circles
+// when no members are selected (opacity:0 components still create a glass circle on iOS 26).
+const HeaderRightUpdater = ({
+ namespace,
+ goButtonLabel,
+}: {
+ namespace: T.TB.AllowedNamespace
+ goButtonLabel?: string
+}) => {
+ const navigation = useNavigation()
const hasTeamSoFar = useTBContext(s => s.teamSoFar.size > 0)
const finishTeamBuilding = useTBContext(s => s.dispatch.finishTeamBuilding)
const finishedTeamBuilding = useTBContext(s => s.dispatch.finishedTeamBuilding)
React.useEffect(() => {
if (!Kb.Styles.isMobile) return
+ if (namespace !== 'teams' && namespace !== 'chat' && namespace !== 'crypto') return
const onFinish = namespace === 'teams' ? finishTeamBuilding : finishedTeamBuilding
- if (namespace === 'teams' || namespace === 'chat' || namespace === 'crypto') {
- useModalHeaderState.setState({
- actionEnabled: hasTeamSoFar,
- onAction: onFinish,
- })
+ if (Kb.Styles.isIOS) {
+ const label = namespace === 'teams' ? 'Add' : (goButtonLabel ?? 'Start')
+ navigation.setOptions({
+ unstable_headerRightItems: hasTeamSoFar
+ ? () => [{label, onPress: onFinish, type: 'button' as const}]
+ : () => [],
+ } as object)
+ } else {
+ useModalHeaderState.setState({actionEnabled: hasTeamSoFar, onAction: onFinish})
}
return () => {
- useModalHeaderState.setState({actionEnabled: false, onAction: undefined})
+ if (Kb.Styles.isIOS) {
+ navigation.setOptions({unstable_headerRightItems: () => []} as object)
+ } else {
+ useModalHeaderState.setState({actionEnabled: false, onAction: undefined})
+ }
}
- }, [namespace, hasTeamSoFar, finishTeamBuilding, finishedTeamBuilding])
+ }, [namespace, hasTeamSoFar, finishTeamBuilding, finishedTeamBuilding, goButtonLabel, navigation])
+ return null
+}
+
+// Calls resetState when the screen is removed (e.g. default cancel button pressed)
+const CancelOnRemove = () => {
+ const navigation = useNavigation()
+ const resetState = useTBContext(s => s.dispatch.resetState)
+ React.useEffect(() => navigation.addListener('beforeRemove', resetState), [navigation, resetState])
return null
}
@@ -82,8 +98,6 @@ const getOptions = ({route}: OwnProps) => {
const title = typeof route.params.title === 'string' ? route.params.title : ''
const goButtonLabel = route.params.goButtonLabel
const common = {
- headerLeft: () => ,
- headerRight: () => ,
modalStyle: {height: 560} as const,
overlayAvoidTabs: false,
overlayStyle: {alignSelf: 'center'} as const,
@@ -110,13 +124,21 @@ const getOptions = ({route}: OwnProps) => {
if (namespace === 'teams') {
return {
...common,
+ // iOS: headerRight omitted; HeaderRightUpdater drives unstable_headerRightItems dynamically
+ headerRight: Kb.Styles.isIOS ? undefined : () => ,
headerTitle: () => (
),
}
}
- return common
+ return {
+ ...common,
+ // iOS: headerRight omitted; HeaderRightUpdater drives unstable_headerRightItems dynamically
+ headerRight: Kb.Styles.isIOS
+ ? undefined
+ : () => ,
+ }
}
const Building = React.lazy(async () => import('./container'))
@@ -124,7 +146,8 @@ type OwnProps = StaticScreenProps>
const Screen = (p: OwnProps) => (
-
+
+
)
diff --git a/shared/yarn.lock b/shared/yarn.lock
index ced62934cee2..a7d1a61dade0 100644
--- a/shared/yarn.lock
+++ b/shared/yarn.lock
@@ -108,10 +108,10 @@
regexpu-core "^6.3.1"
semver "^6.3.1"
-"@babel/helper-define-polyfill-provider@^0.6.5", "@babel/helper-define-polyfill-provider@^0.6.6":
- version "0.6.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz#714dfe33d8bd710f556df59953720f6eeb6c1a14"
- integrity sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==
+"@babel/helper-define-polyfill-provider@^0.6.5", "@babel/helper-define-polyfill-provider@^0.6.8":
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz#cf1e4462b613f2b54c41e6ff758d5dfcaa2c85d1"
+ integrity sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==
dependencies:
"@babel/helper-compilation-targets" "^7.28.6"
"@babel/helper-plugin-utils" "^7.28.6"
@@ -212,21 +212,14 @@
"@babel/types" "^7.28.6"
"@babel/helpers@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7"
- integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==
+ version "7.29.2"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.2.tgz#9cfbccb02b8e229892c0b07038052cc1a8709c49"
+ integrity sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==
dependencies:
"@babel/template" "^7.28.6"
- "@babel/types" "^7.28.6"
-
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.24.4", "@babel/parser@^7.25.3", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6"
- integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==
- dependencies:
"@babel/types" "^7.29.0"
-"@babel/parser@^7.23.9":
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.4", "@babel/parser@^7.25.3", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
version "7.29.2"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.2.tgz#58bd50b9a7951d134988a1ae177a35ef9a703ba1"
integrity sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==
@@ -1055,16 +1048,11 @@
"@babel/plugin-transform-modules-commonjs" "^7.27.1"
"@babel/plugin-transform-typescript" "^7.28.5"
-"@babel/runtime@^7.12.5":
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.6", "@babel/runtime@^7.20.0", "@babel/runtime@^7.25.0":
version "7.29.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.2.tgz#9a6e2d05f4b6692e1801cd4fb176ad823930ed5e"
integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==
-"@babel/runtime@^7.18.6", "@babel/runtime@^7.20.0", "@babel/runtime@^7.25.0":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.6.tgz#d267a43cb1836dc4d182cce93ae75ba954ef6d2b"
- integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==
-
"@babel/template@^7.25.0", "@babel/template@^7.28.6", "@babel/template@^7.3.3":
version "7.28.6"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57"
@@ -1113,6 +1101,11 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@callstack/liquid-glass@0.7.0":
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/@callstack/liquid-glass/-/liquid-glass-0.7.0.tgz#d48dc2d348cac4da11178382fc445a9d7b2825e7"
+ integrity sha512-ztPuQnXG3z9kPWT0srf+yIbVZih/aifbynzormDzsFMWR6IQk3e0h8DEYic3sgW7PUa7A/GyaBBCpq10ZZvboA==
+
"@csstools/color-helpers@^5.1.0":
version "5.1.0"
resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef"
@@ -1147,13 +1140,14 @@
integrity sha512-dDlz3W405VMFO4w5kIP9DOmELBcvFQGmLoKSdIRstBDubKFYwaNHV1NnlzMCQpXQFGWVALmeMORAuiLx18AvZQ==
"@electron/asar@^4.0.0", "@electron/asar@^4.0.1":
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-4.0.1.tgz#0f0edc51ddb5bf30acb49f706d616b11a0b90668"
- integrity sha512-F4Ykm1jiBGY1WV/o8Q8oFW8Nq0u+S2/vPujzNJtdSJ6C4LHC4CiGLn7c17s7SolZ23gcvCebMncmZtNc+MkxPQ==
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-4.1.1.tgz#9a00c1bc0cce0b793f6f142c72daad9ab23bb760"
+ integrity sha512-grbomy1TPEauyu+N4UdRQqSjOhsm0ZoTbprLpvJWQGYeEIMVBwSPV3Rv3E3EfqU5iFSufd/k+2KZvTDbgfesnw==
dependencies:
commander "^13.1.0"
- glob "^11.0.1"
+ glob "^13.0.2"
minimatch "^10.0.1"
+ plist "^3.1.0"
"@electron/get@^2.0.0":
version "2.0.3"
@@ -1230,9 +1224,9 @@
yargs-parser "^22.0.0"
"@electron/universal@^3.0.1":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-3.0.2.tgz#d21fabd2729f9f5edbf2d8ab088718c4ac29244c"
- integrity sha512-2/NBjJhw/VXQayIIj8Mu3ZeZ+lRjx90l2aKqkQiVrA2HiFTc/KHKN8Fjj3Ta7xMAxn45mAKJCatR8xeJ/eW7Tg==
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-3.0.3.tgz#a530f3b9828c17d10cbe6108d27bdcabdf755219"
+ integrity sha512-Do5YzO0lxpK6fDArgxiYT7TPHwQljwQ1jA6WZSYSlUNPjpVCehLnU78tdqGYAC7Zt6mc2bY/leuPpMxxN6TAVg==
dependencies:
"@electron/asar" "^4.0.0"
"@malept/cross-spawn-promise" "^2.0.0"
@@ -1420,13 +1414,13 @@
integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==
"@eslint/config-array@^0.21.1":
- version "0.21.1"
- resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713"
- integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==
+ version "0.21.2"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.2.tgz#f29e22057ad5316cf23836cee9a34c81fffcb7e6"
+ integrity sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==
dependencies:
"@eslint/object-schema" "^2.1.7"
debug "^4.3.1"
- minimatch "^3.1.2"
+ minimatch "^3.1.5"
"@eslint/config-helpers@^0.4.2":
version "0.4.2"
@@ -1443,9 +1437,9 @@
"@types/json-schema" "^7.0.15"
"@eslint/eslintrc@^3.3.1":
- version "3.3.4"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.4.tgz#e402b1920f7c1f5a15342caa432b1348cacbb641"
- integrity sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==
+ version "3.3.5"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.5.tgz#c131793cfc1a7b96f24a83e0a8bbd4b881558c60"
+ integrity sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==
dependencies:
ajv "^6.14.0"
debug "^4.3.2"
@@ -1454,7 +1448,7 @@
ignore "^5.2.0"
import-fresh "^3.2.1"
js-yaml "^4.1.1"
- minimatch "^3.1.3"
+ minimatch "^3.1.5"
strip-json-comments "^3.1.1"
"@eslint/js@9.39.2":
@@ -1878,11 +1872,6 @@
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
-"@isaacs/cliui@^9.0.0":
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-9.0.0.tgz#4d0a3f127058043bf2e7ee169eaf30ed901302f3"
- integrity sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==
-
"@isaacs/ttlcache@^1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz#21fb23db34e9b6220c6ba023a0118a2dd3461ea2"
@@ -2276,74 +2265,74 @@
resolved "https://registry.yarnpkg.com/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz#5c23f796c47675f166d23b948cdb889184b93207"
integrity sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==
-"@jsonjoy.com/fs-core@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-core/-/fs-core-4.56.10.tgz#320728b4b7bef63abb60e7630351623899237411"
- integrity sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw==
+"@jsonjoy.com/fs-core@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-core/-/fs-core-4.57.1.tgz#03c0d7a7bf96030376f7194b9c5c815cb7bf71d7"
+ integrity sha512-YrEi/ZPmgc+GfdO0esBF04qv8boK9Dg9WpRQw/+vM8Qt3nnVIJWIa8HwZ/LXVZ0DB11XUROM8El/7yYTJX+WtA==
dependencies:
- "@jsonjoy.com/fs-node-builtins" "4.56.10"
- "@jsonjoy.com/fs-node-utils" "4.56.10"
+ "@jsonjoy.com/fs-node-builtins" "4.57.1"
+ "@jsonjoy.com/fs-node-utils" "4.57.1"
thingies "^2.5.0"
-"@jsonjoy.com/fs-fsa@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.56.10.tgz#02bac88c4968ddf2effbd7452861aaed60ba3557"
- integrity sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q==
+"@jsonjoy.com/fs-fsa@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.1.tgz#87ffa6cd695b363b58b9ccddc87a66212a1b25fd"
+ integrity sha512-ooEPvSW/HQDivPDPZMibHGKZf/QS4WRir1czGZmXmp3MsQqLECZEpN0JobrD8iV9BzsuwdIv+PxtWX9WpPLsIA==
dependencies:
- "@jsonjoy.com/fs-core" "4.56.10"
- "@jsonjoy.com/fs-node-builtins" "4.56.10"
- "@jsonjoy.com/fs-node-utils" "4.56.10"
+ "@jsonjoy.com/fs-core" "4.57.1"
+ "@jsonjoy.com/fs-node-builtins" "4.57.1"
+ "@jsonjoy.com/fs-node-utils" "4.57.1"
thingies "^2.5.0"
-"@jsonjoy.com/fs-node-builtins@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.56.10.tgz#a32a5bcb093f8b34a99aa8957e993a52ec316662"
- integrity sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw==
-
-"@jsonjoy.com/fs-node-to-fsa@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.56.10.tgz#33fc503e50d283ac5fc510e3accced7fccecf2f4"
- integrity sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw==
- dependencies:
- "@jsonjoy.com/fs-fsa" "4.56.10"
- "@jsonjoy.com/fs-node-builtins" "4.56.10"
- "@jsonjoy.com/fs-node-utils" "4.56.10"
-
-"@jsonjoy.com/fs-node-utils@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.56.10.tgz#788e95052aa99744f6e8e55b5098afc203df2b9e"
- integrity sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg==
- dependencies:
- "@jsonjoy.com/fs-node-builtins" "4.56.10"
-
-"@jsonjoy.com/fs-node@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node/-/fs-node-4.56.10.tgz#70b18bfaf14544a9820d2016e913dde12c6de991"
- integrity sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q==
- dependencies:
- "@jsonjoy.com/fs-core" "4.56.10"
- "@jsonjoy.com/fs-node-builtins" "4.56.10"
- "@jsonjoy.com/fs-node-utils" "4.56.10"
- "@jsonjoy.com/fs-print" "4.56.10"
- "@jsonjoy.com/fs-snapshot" "4.56.10"
+"@jsonjoy.com/fs-node-builtins@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.1.tgz#a6793654d6ffaead81f040e3becc063a265deb7c"
+ integrity sha512-XHkFKQ5GSH3uxm8c3ZYXVrexGdscpWKIcMWKFQpMpMJc8gA3AwOMBJXJlgpdJqmrhPyQXxaY9nbkNeYpacC0Og==
+
+"@jsonjoy.com/fs-node-to-fsa@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.1.tgz#9011872df67ac302f0b0f7fd13502993a026c306"
+ integrity sha512-pqGHyWWzNck4jRfaGV39hkqpY5QjRUQ/nRbNT7FYbBa0xf4bDG+TE1Gt2KWZrSkrkZZDE3qZUjYMbjwSliX6pg==
+ dependencies:
+ "@jsonjoy.com/fs-fsa" "4.57.1"
+ "@jsonjoy.com/fs-node-builtins" "4.57.1"
+ "@jsonjoy.com/fs-node-utils" "4.57.1"
+
+"@jsonjoy.com/fs-node-utils@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.1.tgz#e9d030b676f7f4074eb90a42927bac708dc4312c"
+ integrity sha512-vp+7ZzIB8v43G+GLXTS4oDUSQmhAsRz532QmmWBbdYA20s465JvwhkSFvX9cVTqRRAQg+vZ7zWDaIEh0lFe2gw==
+ dependencies:
+ "@jsonjoy.com/fs-node-builtins" "4.57.1"
+
+"@jsonjoy.com/fs-node@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-node/-/fs-node-4.57.1.tgz#3dae969fe02d9450f5dfc7c12bfe3b859cb1038e"
+ integrity sha512-3YaKhP8gXEKN+2O49GLNfNb5l2gbnCFHyAaybbA2JkkbQP3dpdef7WcUaHAulg/c5Dg4VncHsA3NWAUSZMR5KQ==
+ dependencies:
+ "@jsonjoy.com/fs-core" "4.57.1"
+ "@jsonjoy.com/fs-node-builtins" "4.57.1"
+ "@jsonjoy.com/fs-node-utils" "4.57.1"
+ "@jsonjoy.com/fs-print" "4.57.1"
+ "@jsonjoy.com/fs-snapshot" "4.57.1"
glob-to-regex.js "^1.0.0"
thingies "^2.5.0"
-"@jsonjoy.com/fs-print@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-print/-/fs-print-4.56.10.tgz#7c181b9aefcc1b268be0e6233bff26310c355335"
- integrity sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw==
+"@jsonjoy.com/fs-print@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-print/-/fs-print-4.57.1.tgz#59359be175145cd44e83f7cdfba06cb1fed23313"
+ integrity sha512-Ynct7ZJmfk6qoXDOKfpovNA36ITUx8rChLmRQtW08J73VOiuNsU8PB6d/Xs7fxJC2ohWR3a5AqyjmLojfrw5yw==
dependencies:
- "@jsonjoy.com/fs-node-utils" "4.56.10"
+ "@jsonjoy.com/fs-node-utils" "4.57.1"
tree-dump "^1.1.0"
-"@jsonjoy.com/fs-snapshot@4.56.10":
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.56.10.tgz#05aadd2c0eaa855b13d6cb17d29b7c8cee239c8c"
- integrity sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g==
+"@jsonjoy.com/fs-snapshot@4.57.1":
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.1.tgz#54cd9073a97e290a1650070f2ee9529a0accdb93"
+ integrity sha512-/oG8xBNFMbDXTq9J7vepSA1kerS5vpgd3p5QZSPd+nX59uwodGJftI51gDYyHRpP57P3WCQf7LHtBYPqwUg2Bg==
dependencies:
"@jsonjoy.com/buffers" "^17.65.0"
- "@jsonjoy.com/fs-node-utils" "4.56.10"
+ "@jsonjoy.com/fs-node-utils" "4.57.1"
"@jsonjoy.com/json-pack" "^17.65.0"
"@jsonjoy.com/util" "^17.65.0"
@@ -2640,9 +2629,9 @@
source-map "^0.7.3"
"@preact/signals-core@^1.7.0":
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/@preact/signals-core/-/signals-core-1.13.0.tgz#ed770df2855701e7b42828fae5a348edeee9a3df"
- integrity sha512-slT6XeTCAbdql61GVLlGU4x7XHI7kCZV5Um5uhE4zLX4ApgiiXc0UYFvVOKq06xcovzp7p+61l68oPi563ARKg==
+ version "1.14.0"
+ resolved "https://registry.yarnpkg.com/@preact/signals-core/-/signals-core-1.14.0.tgz#3a13742301a94161790e84d0f2cbf9b5455593f7"
+ integrity sha512-AowtCcCU/33lFlh1zRFf/u+12rfrhtNakj7UpaGEsmMwUKpKWMVvcktOGcwBBNiB4lWrZWc01LhiyyzVklJyaQ==
"@preact/signals@^1.3.1":
version "1.3.4"
@@ -3421,30 +3410,30 @@
integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
"@types/node@*":
- version "25.3.2"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-25.3.2.tgz#cbc4b963e1b3503eb2bcf7c55bf48c95204918d1"
- integrity sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q==
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-25.5.0.tgz#5c99f37c443d9ccc4985866913f1ed364217da31"
+ integrity sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==
dependencies:
undici-types "~7.18.0"
"@types/node@^20.17.9":
- version "20.19.35"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.35.tgz#117b373fd1dff528b2f9f8c2d1a85de6af8101ca"
- integrity sha512-Uarfe6J91b9HAUXxjvSOdiO2UPOKLm07Q1oh0JHxoZ1y8HoqxDAu3gVrsrOHeiio0kSsoVBt4wFrKOm0dKxVPQ==
+ version "20.19.37"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.37.tgz#b4fb4033408dd97becce63ec932c9ec57a9e2919"
+ integrity sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==
dependencies:
undici-types "~6.21.0"
"@types/node@^24.9.0":
- version "24.10.15"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.15.tgz#83e016a4c3dbf4e672dc257cf4c941527f1a3aa3"
- integrity sha512-BgjLoRuSr0MTI5wA6gMw9Xy0sFudAaUuvrnjgGx9wZ522fYYLA5SYJ+1Y30vTcJEG+DRCyDHx/gzQVfofYzSdg==
+ version "24.12.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-24.12.0.tgz#6222e028210e5322e4f4f6767f8d88e5ea3b33d2"
+ integrity sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==
dependencies:
undici-types "~7.16.0"
"@types/qs@*":
- version "6.14.0"
- resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5"
- integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==
+ version "6.15.0"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.15.0.tgz#963ab61779843fe910639a50661b48f162bc7f79"
+ integrity sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==
"@types/range-parser@*":
version "1.2.7"
@@ -3586,7 +3575,7 @@
dependencies:
"@types/node" "*"
-"@typescript-eslint/eslint-plugin@8.57.2":
+"@typescript-eslint/eslint-plugin@8.57.2", "@typescript-eslint/eslint-plugin@^8.36.0":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz#ad0dcefeca9c2ecbe09f730d478063666aee010b"
integrity sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==
@@ -3600,21 +3589,7 @@
natural-compare "^1.4.0"
ts-api-utils "^2.4.0"
-"@typescript-eslint/eslint-plugin@^8.36.0":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz#b1ce606d87221daec571e293009675992f0aae76"
- integrity sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==
- dependencies:
- "@eslint-community/regexpp" "^4.12.2"
- "@typescript-eslint/scope-manager" "8.56.1"
- "@typescript-eslint/type-utils" "8.56.1"
- "@typescript-eslint/utils" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
- ignore "^7.0.5"
- natural-compare "^1.4.0"
- ts-api-utils "^2.4.0"
-
-"@typescript-eslint/parser@8.57.2":
+"@typescript-eslint/parser@8.57.2", "@typescript-eslint/parser@^8.36.0":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.57.2.tgz#b819955e39f976c0d4f95b5ed67fe22f85cd6898"
integrity sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==
@@ -3625,26 +3600,6 @@
"@typescript-eslint/visitor-keys" "8.57.2"
debug "^4.4.3"
-"@typescript-eslint/parser@^8.36.0":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.56.1.tgz#21d13b3d456ffb08614c1d68bb9a4f8d9237cdc7"
- integrity sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==
- dependencies:
- "@typescript-eslint/scope-manager" "8.56.1"
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/typescript-estree" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
- debug "^4.4.3"
-
-"@typescript-eslint/project-service@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.56.1.tgz#65c8d645f028b927bfc4928593b54e2ecd809244"
- integrity sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==
- dependencies:
- "@typescript-eslint/tsconfig-utils" "^8.56.1"
- "@typescript-eslint/types" "^8.56.1"
- debug "^4.4.3"
-
"@typescript-eslint/project-service@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.57.2.tgz#dfbc7777f9f633f2b06b558cda3836e76f856e3c"
@@ -3662,14 +3617,6 @@
"@typescript-eslint/types" "7.18.0"
"@typescript-eslint/visitor-keys" "7.18.0"
-"@typescript-eslint/scope-manager@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz#254df93b5789a871351335dd23e20bc164060f24"
- integrity sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==
- dependencies:
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
-
"@typescript-eslint/scope-manager@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz#734dcde40677f430b5d963108337295bdbc09dae"
@@ -3678,27 +3625,11 @@
"@typescript-eslint/types" "8.57.2"
"@typescript-eslint/visitor-keys" "8.57.2"
-"@typescript-eslint/tsconfig-utils@8.56.1", "@typescript-eslint/tsconfig-utils@^8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz#1afa830b0fada5865ddcabdc993b790114a879b7"
- integrity sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==
-
"@typescript-eslint/tsconfig-utils@8.57.2", "@typescript-eslint/tsconfig-utils@^8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz#cf82dc11e884103ec13188a7352591efaa1a887e"
integrity sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==
-"@typescript-eslint/type-utils@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz#7a6c4fabf225d674644931e004302cbbdd2f2e24"
- integrity sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==
- dependencies:
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/typescript-estree" "8.56.1"
- "@typescript-eslint/utils" "8.56.1"
- debug "^4.4.3"
- ts-api-utils "^2.4.0"
-
"@typescript-eslint/type-utils@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz#3ec65a94e73776252991a3cf0a15d220734c28f5"
@@ -3715,11 +3646,6 @@
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9"
integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
-"@typescript-eslint/types@8.56.1", "@typescript-eslint/types@^8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.56.1.tgz#975e5942bf54895291337c91b9191f6eb0632ab9"
- integrity sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==
-
"@typescript-eslint/types@8.57.2", "@typescript-eslint/types@^8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.57.2.tgz#efe0da4c28b505ed458f113aa960dce2c5c671f4"
@@ -3739,21 +3665,6 @@
semver "^7.6.0"
ts-api-utils "^1.3.0"
-"@typescript-eslint/typescript-estree@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz#3b9e57d8129a860c50864c42188f761bdef3eab0"
- integrity sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==
- dependencies:
- "@typescript-eslint/project-service" "8.56.1"
- "@typescript-eslint/tsconfig-utils" "8.56.1"
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/visitor-keys" "8.56.1"
- debug "^4.4.3"
- minimatch "^10.2.2"
- semver "^7.7.3"
- tinyglobby "^0.2.15"
- ts-api-utils "^2.4.0"
-
"@typescript-eslint/typescript-estree@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz#432e61a6cf2ab565837da387e5262c159672abea"
@@ -3769,17 +3680,7 @@
tinyglobby "^0.2.15"
ts-api-utils "^2.4.0"
-"@typescript-eslint/utils@8.56.1", "@typescript-eslint/utils@^8.0.0":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.56.1.tgz#5a86acaf9f1b4c4a85a42effb217f73059f6deb7"
- integrity sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==
- dependencies:
- "@eslint-community/eslint-utils" "^4.9.1"
- "@typescript-eslint/scope-manager" "8.56.1"
- "@typescript-eslint/types" "8.56.1"
- "@typescript-eslint/typescript-estree" "8.56.1"
-
-"@typescript-eslint/utils@8.57.2":
+"@typescript-eslint/utils@8.57.2", "@typescript-eslint/utils@^8.0.0":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.57.2.tgz#46a8974c24326fb8899486728428a0f1a3115014"
integrity sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==
@@ -3807,14 +3708,6 @@
"@typescript-eslint/types" "7.18.0"
eslint-visitor-keys "^3.4.3"
-"@typescript-eslint/visitor-keys@8.56.1":
- version "8.56.1"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz#50e03475c33a42d123dc99e63acf1841c0231f87"
- integrity sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==
- dependencies:
- "@typescript-eslint/types" "8.56.1"
- eslint-visitor-keys "^5.0.0"
-
"@typescript-eslint/visitor-keys@8.57.2":
version "8.57.2"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz#a5c9605774247336c0412beb7dc288ab2a07c11e"
@@ -4528,12 +4421,12 @@ babel-plugin-module-resolver@5.0.3:
resolve "^1.22.8"
babel-plugin-polyfill-corejs2@^0.4.14, babel-plugin-polyfill-corejs2@^0.4.15:
- version "0.4.15"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz#808fa349686eea4741807cfaaa2aa3aa57ce120a"
- integrity sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==
+ version "0.4.17"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz#198f970f1c99a856b466d1187e88ce30bd199d91"
+ integrity sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==
dependencies:
"@babel/compat-data" "^7.28.6"
- "@babel/helper-define-polyfill-provider" "^0.6.6"
+ "@babel/helper-define-polyfill-provider" "^0.6.8"
semver "^6.3.1"
babel-plugin-polyfill-corejs3@^0.13.0:
@@ -4545,19 +4438,19 @@ babel-plugin-polyfill-corejs3@^0.13.0:
core-js-compat "^3.43.0"
babel-plugin-polyfill-corejs3@^0.14.0:
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.0.tgz#65b06cda48d6e447e1e926681f5a247c6ae2b9cf"
- integrity sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==
+ version "0.14.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz#6ac08d2f312affb70c4c69c0fbba4cb417ee5587"
+ integrity sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.6.6"
+ "@babel/helper-define-polyfill-provider" "^0.6.8"
core-js-compat "^3.48.0"
babel-plugin-polyfill-regenerator@^0.6.5, babel-plugin-polyfill-regenerator@^0.6.6:
- version "0.6.6"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz#69f5dd263cab933c42fe5ea05e83443b374bd4bf"
- integrity sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==
+ version "0.6.8"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz#8a6bfd5dd54239362b3d06ce47ac52b2d95d7721"
+ integrity sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.6.6"
+ "@babel/helper-define-polyfill-provider" "^0.6.8"
babel-plugin-react-compiler@1.0.0, babel-plugin-react-compiler@^1.0.0:
version "1.0.0"
@@ -4669,11 +4562,11 @@ balanced-match@^4.0.2:
integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==
barcode-detector@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/barcode-detector/-/barcode-detector-3.1.0.tgz#ce340cead9f267951f4c53887ac24b64c21a79c4"
- integrity sha512-aQjGxrgsb/WTlw6pHZwFRO6NhFMhwHGEkd0pzV25fBn8dnRA1PA1G7bLeAzvSea646S/96nW5W3jD8wezQZ1vQ==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/barcode-detector/-/barcode-detector-3.1.1.tgz#4ce6ecab6eee237b53755269683309a28760c0d1"
+ integrity sha512-ghWlEAV93ZCUniO7Co3ih/01XPm+U30CV+NoPbO6Chj5lZzHydDAqKlrBEd+37TkoR+QTH3tnnwd8k8epGTfIg==
dependencies:
- zxing-wasm "3.0.0"
+ zxing-wasm "3.0.1"
base64-js@^1.3.1, base64-js@^1.5.1:
version "1.5.1"
@@ -4681,9 +4574,9 @@ base64-js@^1.3.1, base64-js@^1.5.1:
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
baseline-browser-mapping@^2.9.0:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz#5b09935025bf8a80e29130251e337c6a7fc8cbb9"
- integrity sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==
+ version "2.10.10"
+ resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz#e74bd066724c1d8d7d8ea75fc3be25389a7a5c56"
+ integrity sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==
batch@0.6.1:
version "0.6.1"
@@ -4713,9 +4606,9 @@ binary-extensions@^2.0.0:
integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
bippy@^0.5.30:
- version "0.5.30"
- resolved "https://registry.yarnpkg.com/bippy/-/bippy-0.5.30.tgz#d8380ff49d9d778680e3321af828bc6c469b36a1"
- integrity sha512-8CFmJAHD3gmTLDOCDHuWhjm1nxHSFZdlGoWtak9r53Uxn36ynOjxBLyxXHh/7h/XiKLyPvfdXa0gXWcD9o9lLQ==
+ version "0.5.32"
+ resolved "https://registry.yarnpkg.com/bippy/-/bippy-0.5.32.tgz#60cbed767572e7cecda2f7b7d860f7f0ae6b0874"
+ integrity sha512-yt1mC8eReTxjfg41YBZdN4PvsDwHFWxltoiQX0Q+Htlbf41aSniopb7ECZits01HwNAvXEh69RGk/ImlswDTEw==
dependencies:
"@types/react-reconciler" "^0.28.9"
@@ -4821,9 +4714,9 @@ brace-expansion@^2.0.1, brace-expansion@^2.0.2:
balanced-match "^1.0.0"
brace-expansion@^5.0.2:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.4.tgz#614daaecd0a688f660bbbc909a8748c3d80d4336"
- integrity sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb"
+ integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==
dependencies:
balanced-match "^4.0.2"
@@ -4978,9 +4871,9 @@ camelcase@^6.2.0, camelcase@^6.3.0:
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
caniuse-lite@^1.0.30001759:
- version "1.0.30001774"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001774.tgz#0e576b6f374063abcd499d202b9ba1301be29b70"
- integrity sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==
+ version "1.0.30001781"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz#344b47c03eb8168b79c3c158b872bcfbdd02a400"
+ integrity sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==
chalk@^2.0.1, chalk@^2.4.2:
version "2.4.2"
@@ -5304,16 +5197,16 @@ cookie@~0.7.1:
integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
core-js-compat@^3.43.0, core-js-compat@^3.48.0:
- version "3.48.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.48.0.tgz#7efbe1fc1cbad44008190462217cc5558adaeaa6"
- integrity sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==
+ version "3.49.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.49.0.tgz#06145447d92f4aaf258a0c44f24b47afaeaffef6"
+ integrity sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==
dependencies:
browserslist "^4.28.1"
core-js-pure@^3.23.3:
- version "3.48.0"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.48.0.tgz#7d5a3fe1ec3631b9aa76a81c843ac2ce918e5023"
- integrity sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==
+ version "3.49.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.49.0.tgz#ff8436b7251a3832f5fdbbe3e10f7f2e58e51fb1"
+ integrity sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==
core-util-is@~1.0.0:
version "1.0.3"
@@ -5321,9 +5214,9 @@ core-util-is@~1.0.0:
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
cosmiconfig@^9.0.0:
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d"
- integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.1.tgz#df110631a8547b5d1a98915271986f06e3011379"
+ integrity sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==
dependencies:
env-paths "^2.2.1"
import-fresh "^3.3.0"
@@ -5450,9 +5343,9 @@ date-fns@4.1.0:
integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==
dayjs@^1.8.15:
- version "1.11.19"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938"
- integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==
+ version "1.11.20"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.20.tgz#88d919fd639dc991415da5f4cb6f1b6650811938"
+ integrity sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==
debug@2.6.9, debug@^2.2.0, debug@^2.6.9:
version "2.6.9"
@@ -5630,9 +5523,9 @@ dns-packet@^5.2.2:
"@leichtgewicht/ip-codec" "^2.0.1"
dnssd-advertise@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/dnssd-advertise/-/dnssd-advertise-1.1.3.tgz#bf130e5b22f2d76b2b6b33b201e93c68c75b3786"
- integrity sha512-XENsHi3MBzWOCAXif3yZvU1Ah0l+nhJj1sjWL6TnOAYKvGiFhbTx32xHN7+wLMLUOCj7Nr0evADWG4R8JtqCDA==
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/dnssd-advertise/-/dnssd-advertise-1.1.4.tgz#0744865a4fa2569a44dcb9aff267022aaf2803b2"
+ integrity sha512-AmGyK9WpNf06WeP5TjHZq/wNzP76OuEeaiTlKr9E/EEelYLczywUKoqRz+DPRq/ErssjT4lU+/W7wzJW+7K/ZA==
doctrine@^2.1.0:
version "2.1.0"
@@ -5716,9 +5609,9 @@ electron-positioner@^4.1.0:
integrity sha512-726DfbI9ZNoCg+Fcu6XLuTKTnzf+6nFqv7h+K/V6Ug7IbaPMI7s9S8URnGtWFCy5N5PL4HSzRFF2mXuinftDdg==
electron-to-chromium@^1.5.263:
- version "1.5.302"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz#032a5802b31f7119269959c69fe2015d8dad5edb"
- integrity sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==
+ version "1.5.322"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.322.tgz#9c24e49f7098ca19bc87c0e9c7e0ad6ffe4fddca"
+ integrity sha512-vFU34OcrvMcH66T+dYC3G4nURmgfDVewMIu6Q2urXpumAPSMmzvcn04KVVV8Opikq8Vs5nUbO/8laNhNRqSzYw==
electron@41.0.3:
version "41.0.3"
@@ -5777,9 +5670,9 @@ end-of-stream@^1.1.0:
once "^1.4.0"
enhanced-resolve@^5.20.0:
- version "5.20.0"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz#323c2a70d2aa7fb4bdfd6d3c24dfc705c581295d"
- integrity sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==
+ version "5.20.1"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz#eeeb3966bea62c348c40a0cc9e7912e2557d0be0"
+ integrity sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.3.0"
@@ -5907,9 +5800,9 @@ es-errors@^1.3.0:
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
es-iterator-helpers@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz#d979a9f686e2b0b72f88dbead7229924544720bc"
- integrity sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.3.1.tgz#3be0f4e63438d6c5a1fb5f33b891aaad3f7dae06"
+ integrity sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ==
dependencies:
call-bind "^1.0.8"
call-bound "^1.0.4"
@@ -5926,6 +5819,7 @@ es-iterator-helpers@^1.2.1:
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@^2.0.0:
@@ -6059,9 +5953,9 @@ eslint-plugin-ft-flow@^2.0.1:
string-natural-compare "^3.0.1"
eslint-plugin-jest@^29.0.1:
- version "29.15.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.15.0.tgz#58a5917a88244f7536ae10c68b5bd58d407896f0"
- integrity sha512-ZCGr7vTH2WSo2hrK5oM2RULFmMruQ7W3cX7YfwoTiPfzTGTFBMmrVIz45jZHd++cGKj/kWf02li/RhTGcANJSA==
+ version "29.15.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.15.1.tgz#f663f9f7903a7181efddea5a92d1d31e66362596"
+ integrity sha512-6BjyErCQauz3zfJvzLw/kAez2lf4LEpbHLvWBfEcG4EI0ZiRSwjoH2uZulMouU8kRkBH+S0rhqn11IhTvxKgKw==
dependencies:
"@typescript-eslint/utils" "^8.0.0"
@@ -6579,18 +6473,21 @@ fast-uri@^3.0.1:
resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
-fast-xml-builder@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz#a485d7e8381f1db983cf006f849d1066e2935241"
- integrity sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==
+fast-xml-builder@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz#0c407a1d9d5996336c0cd76f7ff785cac6413017"
+ integrity sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==
+ dependencies:
+ path-expression-matcher "^1.1.3"
fast-xml-parser@^5.3.6:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.4.1.tgz#0c81b8ecfb3021e5ad83aa3df904af19a05bc601"
- integrity sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A==
+ version "5.5.9"
+ resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.5.9.tgz#e59637abebec3dbfbb4053b532d787af6ea11527"
+ integrity sha512-jldvxr1MC6rtiZKgrFnDSvT8xuH+eJqxqOBThUVjYrxssYTo1avZLGql5l0a0BAERR01CadYzZ83kVEkbyDg+g==
dependencies:
- fast-xml-builder "^1.0.0"
- strnum "^2.1.2"
+ fast-xml-builder "^1.1.4"
+ path-expression-matcher "^1.2.0"
+ strnum "^2.2.2"
fastest-levenshtein@^1.0.12:
version "1.0.16"
@@ -6654,9 +6551,9 @@ fdir@^6.5.0:
integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
fetch-nodeshim@^0.4.6:
- version "0.4.8"
- resolved "https://registry.yarnpkg.com/fetch-nodeshim/-/fetch-nodeshim-0.4.8.tgz#e87df7d8f85c6409903dac402aaf9465e36b5165"
- integrity sha512-YW5vG33rabBq6JpYosLNoXoaMN69/WH26MeeX2hkDVjN6UlvRGq3Wkazl9H0kisH95aMu/HtHL64JUvv/+Nv/g==
+ version "0.4.9"
+ resolved "https://registry.yarnpkg.com/fetch-nodeshim/-/fetch-nodeshim-0.4.9.tgz#e2688d8df2de3d4e4ead5b9f6f52fe407a88f0ce"
+ integrity sha512-XIQWlB2A4RZ7NebXWGxS0uDMdvRHkiUDTghBVJKFg9yEOd45w/PP8cZANuPf2H08W6Cor3+2n7Q6TTZgAS3Fkw==
file-entry-cache@^8.0.0:
version "8.0.0"
@@ -6773,9 +6670,9 @@ flat@^5.0.2:
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
flatted@^3.2.9:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
- integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.2.tgz#f5c23c107f0f37de8dbdf24f13722b3b98d52726"
+ integrity sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==
flora-colossus@^3.0.2:
version "3.0.2"
@@ -6806,7 +6703,7 @@ for-each@^0.3.3, for-each@^0.3.5:
dependencies:
is-callable "^1.2.7"
-foreground-child@^3.1.0, foreground-child@^3.3.1:
+foreground-child@^3.1.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f"
integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==
@@ -7034,19 +6931,7 @@ glob@^10.5.0:
package-json-from-dist "^1.0.0"
path-scurry "^1.11.1"
-glob@^11.0.1:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/glob/-/glob-11.1.0.tgz#4f826576e4eb99c7dad383793d2f9f08f67e50a6"
- integrity sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==
- dependencies:
- foreground-child "^3.3.1"
- jackspeak "^4.1.1"
- minimatch "^10.1.1"
- minipass "^7.1.2"
- package-json-from-dist "^1.0.0"
- path-scurry "^2.0.0"
-
-glob@^13.0.0, glob@^13.0.3:
+glob@^13.0.0, glob@^13.0.2, glob@^13.0.3:
version "13.0.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.6.tgz#078666566a425147ccacfbd2e332deb66a2be71d"
integrity sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==
@@ -7994,13 +7879,6 @@ jackspeak@^3.1.2:
optionalDependencies:
"@pkgjs/parseargs" "^0.11.0"
-jackspeak@^4.1.1:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.2.3.tgz#27ef80f33b93412037c3bea4f8eddf80e1931483"
- integrity sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==
- dependencies:
- "@isaacs/cliui" "^9.0.0"
-
jest-changed-files@30.3.0:
version "30.3.0"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.3.0.tgz#055849df695f9a9fcde0ae44024f815bbc627f3a"
@@ -8664,9 +8542,9 @@ lan-network@^0.2.0:
integrity sha512-EZgbsXMrGS+oK+Ta12mCjzBFse+SIewGdwrSTr5g+MSymnjpox2x05ceI20PQejJOFvOgzcXrfDk/SdY7dSCtw==
launch-editor@^2.6.1, launch-editor@^2.9.1:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.13.1.tgz#d96ae376a282011661a112479a4bc2b8c1d914be"
- integrity sha512-lPSddlAAluRKJ7/cjRFoXUFzaX7q/YKI7yPHuEvSJVqoXvFnJov1/Ud87Aa4zULIbA9Nja4mSPK8l0z/7eV2wA==
+ version "2.13.2"
+ resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.13.2.tgz#41d51baaf8afb393224b89bd2bcb4e02f2306405"
+ integrity sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==
dependencies:
picocolors "^1.1.1"
shell-quote "^1.8.3"
@@ -8692,79 +8570,79 @@ lighthouse-logger@^1.0.0:
debug "^2.6.9"
marky "^1.2.2"
-lightningcss-android-arm64@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.31.1.tgz#609ff48332adff452a8157a7c2842fd692a8eac4"
- integrity sha512-HXJF3x8w9nQ4jbXRiNppBCqeZPIAfUo8zE/kOEGbW5NZvGc/K7nMxbhIr+YlFlHW5mpbg/YFPdbnCh1wAXCKFg==
-
-lightningcss-darwin-arm64@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.31.1.tgz#a13da040a7929582bab3ace9a67bdc146e99fc2d"
- integrity sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==
-
-lightningcss-darwin-x64@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.31.1.tgz#f7482c311273571ec0c2bd8277c1f5f6e90e03a4"
- integrity sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==
-
-lightningcss-freebsd-x64@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.31.1.tgz#91df1bb290f1cb7bb2af832d7d0d8809225e0124"
- integrity sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==
-
-lightningcss-linux-arm-gnueabihf@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.31.1.tgz#c3cad5ae8b70045f21600dc95295ab6166acf57e"
- integrity sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==
-
-lightningcss-linux-arm64-gnu@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.31.1.tgz#a5c4f6a5ac77447093f61b209c0bd7fef1f0a3e3"
- integrity sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==
-
-lightningcss-linux-arm64-musl@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.31.1.tgz#af26ab8f829b727ada0a200938a6c8796ff36900"
- integrity sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==
-
-lightningcss-linux-x64-gnu@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.31.1.tgz#a891d44e84b71c0d88959feb9a7522bbf61450ee"
- integrity sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==
-
-lightningcss-linux-x64-musl@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.31.1.tgz#8c8b21def851f4d477fa897b80cb3db2b650bc6e"
- integrity sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==
-
-lightningcss-win32-arm64-msvc@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.31.1.tgz#79000fb8c57e94a91b8fc643e74d5a54407d7080"
- integrity sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==
-
-lightningcss-win32-x64-msvc@1.31.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.31.1.tgz#7f025274c81c7d659829731e09c8b6f442209837"
- integrity sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==
+lightningcss-android-arm64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz#f033885116dfefd9c6f54787523e3514b61e1968"
+ integrity sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==
+
+lightningcss-darwin-arm64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz#50b71871b01c8199584b649e292547faea7af9b5"
+ integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==
+
+lightningcss-darwin-x64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz#35f3e97332d130b9ca181e11b568ded6aebc6d5e"
+ integrity sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==
+
+lightningcss-freebsd-x64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz#9777a76472b64ed6ff94342ad64c7bafd794a575"
+ integrity sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==
+
+lightningcss-linux-arm-gnueabihf@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz#13ae652e1ab73b9135d7b7da172f666c410ad53d"
+ integrity sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==
+
+lightningcss-linux-arm64-gnu@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz#417858795a94592f680123a1b1f9da8a0e1ef335"
+ integrity sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==
+
+lightningcss-linux-arm64-musl@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz#6be36692e810b718040802fd809623cffe732133"
+ integrity sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==
+
+lightningcss-linux-x64-gnu@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz#0b7803af4eb21cfd38dd39fe2abbb53c7dd091f6"
+ integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==
+
+lightningcss-linux-x64-musl@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz#88dc8ba865ddddb1ac5ef04b0f161804418c163b"
+ integrity sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==
+
+lightningcss-win32-arm64-msvc@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz#4f30ba3fa5e925f5b79f945e8cc0d176c3b1ab38"
+ integrity sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==
+
+lightningcss-win32-x64-msvc@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz#141aa5605645064928902bb4af045fa7d9f4220a"
+ integrity sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==
lightningcss@^1.30.1:
- version "1.31.1"
- resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.31.1.tgz#1a19dd327b547a7eda1d5c296ebe1e72df5a184b"
- integrity sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.32.0.tgz#b85aae96486dcb1bf49a7c8571221273f4f1e4a9"
+ integrity sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==
dependencies:
detect-libc "^2.0.3"
optionalDependencies:
- lightningcss-android-arm64 "1.31.1"
- lightningcss-darwin-arm64 "1.31.1"
- lightningcss-darwin-x64 "1.31.1"
- lightningcss-freebsd-x64 "1.31.1"
- lightningcss-linux-arm-gnueabihf "1.31.1"
- lightningcss-linux-arm64-gnu "1.31.1"
- lightningcss-linux-arm64-musl "1.31.1"
- lightningcss-linux-x64-gnu "1.31.1"
- lightningcss-linux-x64-musl "1.31.1"
- lightningcss-win32-arm64-msvc "1.31.1"
- lightningcss-win32-x64-msvc "1.31.1"
+ lightningcss-android-arm64 "1.32.0"
+ lightningcss-darwin-arm64 "1.32.0"
+ lightningcss-darwin-x64 "1.32.0"
+ lightningcss-freebsd-x64 "1.32.0"
+ lightningcss-linux-arm-gnueabihf "1.32.0"
+ lightningcss-linux-arm64-gnu "1.32.0"
+ lightningcss-linux-arm64-musl "1.32.0"
+ lightningcss-linux-x64-gnu "1.32.0"
+ lightningcss-linux-x64-musl "1.32.0"
+ lightningcss-win32-arm64-msvc "1.32.0"
+ lightningcss-win32-x64-msvc "1.32.0"
lines-and-columns@^1.1.6:
version "1.2.4"
@@ -8914,9 +8792,9 @@ lru-cache@^10.0.1, lru-cache@^10.2.0, lru-cache@^10.4.3:
integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
lru-cache@^11.0.0:
- version "11.2.6"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.6.tgz#356bf8a29e88a7a2945507b31f6429a65a192c58"
- integrity sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==
+ version "11.2.7"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.7.tgz#9127402617f34cd6767b96daee98c28e74458d35"
+ integrity sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==
lru-cache@^5.1.1:
version "5.1.1"
@@ -8972,18 +8850,18 @@ media-typer@^1.1.0:
integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==
memfs@^4.43.1:
- version "4.56.10"
- resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.56.10.tgz#eaf2f6556db10f91f1e9ad9f1274fd988c646202"
- integrity sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w==
- dependencies:
- "@jsonjoy.com/fs-core" "4.56.10"
- "@jsonjoy.com/fs-fsa" "4.56.10"
- "@jsonjoy.com/fs-node" "4.56.10"
- "@jsonjoy.com/fs-node-builtins" "4.56.10"
- "@jsonjoy.com/fs-node-to-fsa" "4.56.10"
- "@jsonjoy.com/fs-node-utils" "4.56.10"
- "@jsonjoy.com/fs-print" "4.56.10"
- "@jsonjoy.com/fs-snapshot" "4.56.10"
+ version "4.57.1"
+ resolved "https://registry.yarnpkg.com/memfs/-/memfs-4.57.1.tgz#5ccee42e2aab1cf086c45baf9c4ef1ff4fffb123"
+ integrity sha512-WvzrWPwMQT+PtbX2Et64R4qXKK0fj/8pO85MrUCzymX3twwCiJCdvntW3HdhG1teLJcHDDLIKx5+c3HckWYZtQ==
+ dependencies:
+ "@jsonjoy.com/fs-core" "4.57.1"
+ "@jsonjoy.com/fs-fsa" "4.57.1"
+ "@jsonjoy.com/fs-node" "4.57.1"
+ "@jsonjoy.com/fs-node-builtins" "4.57.1"
+ "@jsonjoy.com/fs-node-to-fsa" "4.57.1"
+ "@jsonjoy.com/fs-node-utils" "4.57.1"
+ "@jsonjoy.com/fs-print" "4.57.1"
+ "@jsonjoy.com/fs-snapshot" "4.57.1"
"@jsonjoy.com/json-pack" "^1.11.0"
"@jsonjoy.com/util" "^1.9.0"
glob-to-regex.js "^1.0.1"
@@ -9038,10 +8916,10 @@ metro-babel-transformer@0.83.3:
hermes-parser "0.32.0"
nullthrows "^1.1.1"
-metro-babel-transformer@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.83.4.tgz#9a4068c1a4ba40c073ee7830b19ed87d3ed1557e"
- integrity sha512-xfNtsYIigybqm9xVL3ygTYYNFyYTMf2lGg/Wt+znVGtwcjXoRPG80WlL5SS09ZjYVei3MoE920i7MNr7ukSULA==
+metro-babel-transformer@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.83.5.tgz#91f3fa269171ad5189ebba625f1f0aa124ce06ea"
+ integrity sha512-d9FfmgUEVejTiSb7bkQeLRGl6aeno2UpuPm3bo3rCYwxewj03ymvOn8s8vnS4fBqAPQ+cE9iQM40wh7nGXR+eA==
dependencies:
"@babel/core" "^7.25.2"
flow-enums-runtime "^0.0.6"
@@ -9055,10 +8933,10 @@ metro-cache-key@0.83.3:
dependencies:
flow-enums-runtime "^0.0.6"
-metro-cache-key@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.83.4.tgz#eb70beab737782bf36eb145a30c2e97e20de52e8"
- integrity sha512-Y8E6mm1alkYIRzmfkOdrwXMzJ4HKANYiZE7J2d3iYTwmnLIQG+aoIpvla+bo6LRxH1Gm3qjEiOl+LbxvPCzIug==
+metro-cache-key@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.83.5.tgz#96896a1768f0494a375e1d5957b7ad487e508a4c"
+ integrity sha512-Ycl8PBajB7bhbAI7Rt0xEyiF8oJ0RWX8EKkolV1KfCUlC++V/GStMSGpPLwnnBZXZWkCC5edBPzv1Hz1Yi0Euw==
dependencies:
flow-enums-runtime "^0.0.6"
@@ -9072,15 +8950,15 @@ metro-cache@0.83.3:
https-proxy-agent "^7.0.5"
metro-core "0.83.3"
-metro-cache@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.83.4.tgz#d9ff274c053e1ffcbf42b49882af9473ac5f35fb"
- integrity sha512-Pm6CiksVms0cZNDDe/nFzYr1xpXzJLOSwvOjl4b3cYtXxEFllEjD6EeBgoQK5C8yk7U54PcuRaUAFSvJ+eCKbg==
+metro-cache@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.83.5.tgz#5675f4ad56905aa78fff3dec1b6bf213e0b6c86d"
+ integrity sha512-oH+s4U+IfZyg8J42bne2Skc90rcuESIYf86dYittcdWQtPfcaFXWpByPyTuWk3rR1Zz3Eh5HOrcVImfEhhJLng==
dependencies:
exponential-backoff "^3.1.1"
flow-enums-runtime "^0.0.6"
https-proxy-agent "^7.0.5"
- metro-core "0.83.4"
+ metro-core "0.83.5"
metro-config@0.83.3:
version "0.83.3"
@@ -9096,18 +8974,18 @@ metro-config@0.83.3:
metro-runtime "0.83.3"
yaml "^2.6.1"
-metro-config@0.83.4, metro-config@^0.83.3:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.83.4.tgz#10c99df962cf3a1ab6ad86bcc697dfcac0a316af"
- integrity sha512-ydOgMNI9aT8l2LOTOugt1FvC7getPKG9uJo9Vclg9/RWJxbwkBF/FMBm6w5gH8NwJokSmQrbNkojXPn7nm0kGw==
+metro-config@0.83.5, metro-config@^0.83.3:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.83.5.tgz#a3dd20fc5d5582aa4ad3704678e52abcf4d46b2b"
+ integrity sha512-JQ/PAASXH7yczgV6OCUSRhZYME+NU8NYjI2RcaG5ga4QfQ3T/XdiLzpSb3awWZYlDCcQb36l4Vl7i0Zw7/Tf9w==
dependencies:
connect "^3.6.5"
flow-enums-runtime "^0.0.6"
jest-validate "^29.7.0"
- metro "0.83.4"
- metro-cache "0.83.4"
- metro-core "0.83.4"
- metro-runtime "0.83.4"
+ metro "0.83.5"
+ metro-cache "0.83.5"
+ metro-core "0.83.5"
+ metro-runtime "0.83.5"
yaml "^2.6.1"
metro-core@0.83.3:
@@ -9119,14 +8997,14 @@ metro-core@0.83.3:
lodash.throttle "^4.1.1"
metro-resolver "0.83.3"
-metro-core@0.83.4, metro-core@^0.83.3:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.4.tgz#06fd79d73935748317076aab24be0bb4cbaab801"
- integrity sha512-EE+j/imryd3og/6Ly9usku9vcTLQr2o4IDax/izsr6b0HRqZK9k6f5SZkGkOPqnsACLq6csPCx+2JsgF9DkVbw==
+metro-core@0.83.5, metro-core@^0.83.3:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.5.tgz#1592033633034feb5d368d22bf18e38052146970"
+ integrity sha512-YcVcLCrf0ed4mdLa82Qob0VxYqfhmlRxUS8+TO4gosZo/gLwSvtdeOjc/Vt0pe/lvMNrBap9LlmvZM8FIsMgJQ==
dependencies:
flow-enums-runtime "^0.0.6"
lodash.throttle "^4.1.1"
- metro-resolver "0.83.4"
+ metro-resolver "0.83.5"
metro-file-map@0.83.3:
version "0.83.3"
@@ -9143,10 +9021,10 @@ metro-file-map@0.83.3:
nullthrows "^1.1.1"
walker "^1.0.7"
-metro-file-map@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.83.4.tgz#f694f2e4950e64daff922b80d87e98731daa756b"
- integrity sha512-RSZLpGQhW9topefjJ9dp77Ff7BP88b17sb/YjxLHC1/H0lJVYYC9Cgqua21Vxe4RUJK2z64hw72g+ySLGTCawA==
+metro-file-map@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.83.5.tgz#394aa61d54b3822f10e68c18cbd1318f18865d20"
+ integrity sha512-ZEt8s3a1cnYbn40nyCD+CsZdYSlwtFh2kFym4lo+uvfM+UMMH+r/BsrC6rbNClSrt+B7rU9T+Te/sh/NL8ZZKQ==
dependencies:
debug "^4.4.0"
fb-watchman "^2.0.0"
@@ -9166,10 +9044,10 @@ metro-minify-terser@0.83.3:
flow-enums-runtime "^0.0.6"
terser "^5.15.0"
-metro-minify-terser@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.83.4.tgz#43dea24b72369e01a1831483e7b1bd49581a4cb9"
- integrity sha512-KmZnpxfj0nPIRkbBNTc6xul5f5GPvWL5kQ1UkisB7qFkgh6+UiJG+L4ukJ2sK7St6+8Za/Cb68MUEYkUouIYcQ==
+metro-minify-terser@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.83.5.tgz#ee43a11a9d3442760781434c599d45eb1274e6fd"
+ integrity sha512-Toe4Md1wS1PBqbvB0cFxBzKEVyyuYTUb0sgifAZh/mSvLH84qA1NAWik9sISWatzvfWf3rOGoUoO5E3f193a3Q==
dependencies:
flow-enums-runtime "^0.0.6"
terser "^5.15.0"
@@ -9181,10 +9059,10 @@ metro-resolver@0.83.3:
dependencies:
flow-enums-runtime "^0.0.6"
-metro-resolver@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.83.4.tgz#20e9ebc45beeacc7fff657e3ad0404ad9bdffe55"
- integrity sha512-drWdylyNqgdaJufz0GjU/ielv2hjcc6piegjjJwKn8l7A/72aLQpUpOHtP+GMR+kOqhSsD4MchhJ6PSANvlSEw==
+metro-resolver@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.83.5.tgz#72340ca8071941eafe92ff2dcb8e33c581870ef7"
+ integrity sha512-7p3GtzVUpbAweJeCcUJihJeOQl1bDuimO5ueo1K0BUpUtR41q5EilbQ3klt16UTPPMpA+tISWBtsrqU556mY1A==
dependencies:
flow-enums-runtime "^0.0.6"
@@ -9196,10 +9074,10 @@ metro-runtime@0.83.3:
"@babel/runtime" "^7.25.0"
flow-enums-runtime "^0.0.6"
-metro-runtime@0.83.4, metro-runtime@^0.83.3:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.83.4.tgz#44296e7ddee052cf1966f484f60fc6290a1cf5df"
- integrity sha512-sWj9KN311yG22Zv0kVbAp9dorB9HtTThvQKsAn6PLxrVrz+1UBsLrQSxjE/s4PtzDi1HABC648jo4K9Euz/5jw==
+metro-runtime@0.83.5, metro-runtime@^0.83.3:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.83.5.tgz#52c1edafc6cc82e57729cc9c21700ab1e53a1777"
+ integrity sha512-f+b3ue9AWTVlZe2Xrki6TAoFtKIqw30jwfk7GQ1rDUBQaE0ZQ+NkiMEtb9uwH7uAjJ87U7Tdx1Jg1OJqUfEVlA==
dependencies:
"@babel/runtime" "^7.25.0"
flow-enums-runtime "^0.0.6"
@@ -9220,18 +9098,18 @@ metro-source-map@0.83.3:
source-map "^0.5.6"
vlq "^1.0.0"
-metro-source-map@0.83.4, metro-source-map@^0.83.3:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.4.tgz#c39442f308708055df08545398f5d8d18b9bac7a"
- integrity sha512-pPbmQwS0zgU+/0u5KPkuvlsQP0V+WYQ9qNshqupIL720QRH0vS3QR25IVVtbunofEDJchI11Q4QtIbmUyhpOBw==
+metro-source-map@0.83.5, metro-source-map@^0.83.3:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.5.tgz#384f311f83fa2bf51cbec08d77210aa951bf9ee3"
+ integrity sha512-VT9bb2KO2/4tWY9Z2yeZqTUao7CicKAOps9LUg2aQzsz+04QyuXL3qgf1cLUVRjA/D6G5u1RJAlN1w9VNHtODQ==
dependencies:
"@babel/traverse" "^7.29.0"
"@babel/types" "^7.29.0"
flow-enums-runtime "^0.0.6"
invariant "^2.2.4"
- metro-symbolicate "0.83.4"
+ metro-symbolicate "0.83.5"
nullthrows "^1.1.1"
- ob1 "0.83.4"
+ ob1 "0.83.5"
source-map "^0.5.6"
vlq "^1.0.0"
@@ -9247,14 +9125,14 @@ metro-symbolicate@0.83.3:
source-map "^0.5.6"
vlq "^1.0.0"
-metro-symbolicate@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.4.tgz#147dd0109c156351fa67a686377856075ed07b5a"
- integrity sha512-clyWAXDgkDHPwvldl95pcLTrJIqUj9GbZayL8tfeUs69ilsIUBpVym2lRd/8l3/8PIHCInxL868NvD2Y7OqKXg==
+metro-symbolicate@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.5.tgz#62167db423be6c68b4b9f39935c9cb7330cc9526"
+ integrity sha512-EMIkrjNRz/hF+p0RDdxoE60+dkaTLPN3vaaGkFmX5lvFdO6HPfHA/Ywznzkev+za0VhPQ5KSdz49/MALBRteHA==
dependencies:
flow-enums-runtime "^0.0.6"
invariant "^2.2.4"
- metro-source-map "0.83.4"
+ metro-source-map "0.83.5"
nullthrows "^1.1.1"
source-map "^0.5.6"
vlq "^1.0.0"
@@ -9271,10 +9149,10 @@ metro-transform-plugins@0.83.3:
flow-enums-runtime "^0.0.6"
nullthrows "^1.1.1"
-metro-transform-plugins@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.83.4.tgz#5a08d28f032c38400304141286616ce6ee5401da"
- integrity sha512-c0ROVcyvdaGPUFIg2N5nEQF4xbsqB2p1PPPhVvK1d/Y7ZhBAFiwQ75so0SJok32q+I++lc/hq7IdPCp2frPGQg==
+metro-transform-plugins@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.83.5.tgz#ba21c6a5fa9bf6c5c2c222e2c8e7a668ffb3d341"
+ integrity sha512-KxYKzZL+lt3Os5H2nx7YkbkWVduLZL5kPrE/Yq+Prm/DE1VLhpfnO6HtPs8vimYFKOa58ncl60GpoX0h7Wm0Vw==
dependencies:
"@babel/core" "^7.25.2"
"@babel/generator" "^7.29.1"
@@ -9302,23 +9180,23 @@ metro-transform-worker@0.83.3:
metro-transform-plugins "0.83.3"
nullthrows "^1.1.1"
-metro-transform-worker@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.83.4.tgz#c71c53687dcf274d668aa5c6a9d4d3c00a7f7203"
- integrity sha512-6I81IZLeU/0ww7OBgCPALFl0OE0FQwvIuKCtuViSiKufmislF7kVr7IHH9GYtQuZcnualQ82gYeQ11KzZQTouw==
+metro-transform-worker@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.83.5.tgz#8616b54282e727027fdb5c475aade719394a8e8a"
+ integrity sha512-8N4pjkNXc6ytlP9oAM6MwqkvUepNSW39LKYl9NjUMpRDazBQ7oBpQDc8Sz4aI8jnH6AGhF7s1m/ayxkN1t04yA==
dependencies:
"@babel/core" "^7.25.2"
"@babel/generator" "^7.29.1"
"@babel/parser" "^7.29.0"
"@babel/types" "^7.29.0"
flow-enums-runtime "^0.0.6"
- metro "0.83.4"
- metro-babel-transformer "0.83.4"
- metro-cache "0.83.4"
- metro-cache-key "0.83.4"
- metro-minify-terser "0.83.4"
- metro-source-map "0.83.4"
- metro-transform-plugins "0.83.4"
+ metro "0.83.5"
+ metro-babel-transformer "0.83.5"
+ metro-cache "0.83.5"
+ metro-cache-key "0.83.5"
+ metro-minify-terser "0.83.5"
+ metro-source-map "0.83.5"
+ metro-transform-plugins "0.83.5"
nullthrows "^1.1.1"
metro@0.83.3:
@@ -9367,10 +9245,10 @@ metro@0.83.3:
ws "^7.5.10"
yargs "^17.6.2"
-metro@0.83.4, metro@^0.83.3:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.83.4.tgz#beddd541e8e6d227a670039548e39cae051069a2"
- integrity sha512-eBkAtcob+YmvSLL+/rsFiK8dHNfDbQA2/pi0lnxg3E6LLtUpwDfdGJ9WBWXkj0PVeOhoWQyj9Rt7s/+6k/GXuA==
+metro@0.83.5, metro@^0.83.3:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/metro/-/metro-0.83.5.tgz#f5441075d5211c980ac8c79109e9e6fa2df68924"
+ integrity sha512-BgsXevY1MBac/3ZYv/RfNFf/4iuW9X7f4H8ZNkiH+r667HD9sVujxcmu4jvEzGCAm4/WyKdZCuyhAcyhTHOucQ==
dependencies:
"@babel/code-frame" "^7.29.0"
"@babel/core" "^7.25.2"
@@ -9393,18 +9271,18 @@ metro@0.83.4, metro@^0.83.3:
jest-worker "^29.7.0"
jsc-safe-url "^0.2.2"
lodash.throttle "^4.1.1"
- metro-babel-transformer "0.83.4"
- metro-cache "0.83.4"
- metro-cache-key "0.83.4"
- metro-config "0.83.4"
- metro-core "0.83.4"
- metro-file-map "0.83.4"
- metro-resolver "0.83.4"
- metro-runtime "0.83.4"
- metro-source-map "0.83.4"
- metro-symbolicate "0.83.4"
- metro-transform-plugins "0.83.4"
- metro-transform-worker "0.83.4"
+ metro-babel-transformer "0.83.5"
+ metro-cache "0.83.5"
+ metro-cache-key "0.83.5"
+ metro-config "0.83.5"
+ metro-core "0.83.5"
+ metro-file-map "0.83.5"
+ metro-resolver "0.83.5"
+ metro-runtime "0.83.5"
+ metro-source-map "0.83.5"
+ metro-symbolicate "0.83.5"
+ metro-transform-plugins "0.83.5"
+ metro-transform-worker "0.83.5"
mime-types "^3.0.1"
nullthrows "^1.1.1"
serialize-error "^2.1.0"
@@ -9485,14 +9363,14 @@ minimalistic-assert@^1.0.0:
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-minimatch@^10.0.1, minimatch@^10.1.1, minimatch@^10.2.2:
+minimatch@^10.0.1, minimatch@^10.2.2:
version "10.2.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.4.tgz#465b3accbd0218b8281f5301e27cedc697f96fde"
integrity sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==
dependencies:
brace-expansion "^5.0.2"
-minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2, minimatch@^3.1.3:
+minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2, minimatch@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e"
integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==
@@ -9632,9 +9510,9 @@ node-int64@^0.4.0:
integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
node-releases@^2.0.27:
- version "2.0.27"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e"
- integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
+ version "2.0.36"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.36.tgz#99fd6552aaeda9e17c4713b57a63964a2e325e9d"
+ integrity sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==
node-stream-zip@^1.9.1:
version "1.15.0"
@@ -9715,10 +9593,10 @@ ob1@0.83.3:
dependencies:
flow-enums-runtime "^0.0.6"
-ob1@0.83.4:
- version "0.83.4"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.83.4.tgz#f034e861376ca4294c5e75623389f07b48028aeb"
- integrity sha512-9JiflaRKCkxKzH8uuZlax72cHzZ8iFLsNIORFOAKDgZUOfvfwYWOVS0ezGLzPp/yEhVktD+PTTImC0AAehSOBw==
+ob1@0.83.5:
+ version "0.83.5"
+ resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.83.5.tgz#f9c289d759142b76577948eea7fd1f07d36f825f"
+ integrity sha512-vNKPYC8L5ycVANANpF/S+WZHpfnRWKx/F3AYP4QMn6ZJTh+l2HOrId0clNkEmua58NB9vmI9Qh7YOoV/4folYg==
dependencies:
flow-enums-runtime "^0.0.6"
@@ -10090,6 +9968,11 @@ path-exists@^4.0.0:
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+path-expression-matcher@^1.1.3, path-expression-matcher@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/path-expression-matcher/-/path-expression-matcher-1.2.0.tgz#9bdae3787f43b0857b0269e9caaa586c12c8abee"
+ integrity sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==
+
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -10113,7 +9996,7 @@ path-scurry@^1.11.1, path-scurry@^1.6.1:
lru-cache "^10.2.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-path-scurry@^2.0.0, path-scurry@^2.0.2:
+path-scurry@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85"
integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==
@@ -10154,14 +10037,14 @@ picocolors@1.1.1, picocolors@^1.1.1:
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
+ integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
picomatch@^4.0.2, picomatch@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
- integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
+ integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
pify@^2.0.0:
version "2.3.0"
@@ -10188,9 +10071,9 @@ pkg-up@^3.1.0:
find-up "^3.0.0"
pkijs@^3.3.3:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/pkijs/-/pkijs-3.3.3.tgz#b3f04d7b2eaacb05c81675f882be374e591626ec"
- integrity sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/pkijs/-/pkijs-3.4.0.tgz#d9164def30ff6d97be2d88966d5e36192499ca9c"
+ integrity sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==
dependencies:
"@noble/hashes" "1.4.0"
asn1js "^3.0.6"
@@ -10260,9 +10143,9 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.4.40:
- version "8.5.6"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c"
- integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
+ version "8.5.8"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.8.tgz#6230ecc8fb02e7a0f6982e53990937857e13f399"
+ integrity sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==
dependencies:
nanoid "^3.3.11"
picocolors "^1.1.1"
@@ -10285,9 +10168,9 @@ postject@^1.0.0-alpha.6:
commander "^9.4.0"
preact@^10.25.1:
- version "10.28.4"
- resolved "https://registry.yarnpkg.com/preact/-/preact-10.28.4.tgz#8ffab01c5c0590535bdaecdd548801f44c6e483a"
- integrity sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ==
+ version "10.29.0"
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.29.0.tgz#a6e5858670b659c4d471c6fea232233e03b403e8"
+ integrity sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==
prelude-ls@^1.2.1:
version "1.2.1"
@@ -10397,9 +10280,9 @@ proxy-addr@~2.0.7:
ipaddr.js "1.9.1"
pump@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d"
- integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.4.tgz#1f313430527fa8b905622ebd22fe1444e757ab3c"
+ integrity sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
@@ -10561,9 +10444,9 @@ react-native-gesture-handler@3.0.0-beta.2:
invariant "^2.2.4"
react-native-is-edge-to-edge@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz#64e10851abd9d176cbf2b40562f751622bde3358"
- integrity sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.3.1.tgz#feb9a6a8faf0874298947edd556e5af22044e139"
+ integrity sha512-NIXU/iT5+ORyCc7p0z2nnlkouYKX425vuU1OEm6bMMtWWR9yvb+Xg5AZmImTKoF9abxCPqrKC3rOZsKzUYgYZA==
"react-native-kb@file:../rnmodules/react-native-kb":
version "0.1.1"
@@ -11076,9 +10959,9 @@ safe-regex-test@^1.1.0:
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sax@>=0.6.0:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.4.tgz#f29c2bba80ce5b86f4343b4c2be9f2b96627cf8b"
- integrity sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.0.tgz#da59637629307b97e7c4cb28e080a7bc38560d5b"
+ integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==
saxes@^6.0.0:
version "6.0.0"
@@ -11369,9 +11252,9 @@ slice-ansi@^2.0.0:
is-fullwidth-code-point "^2.0.0"
slugify@^1.3.4, slugify@^1.6.6:
- version "1.6.6"
- resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b"
- integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.8.tgz#0e43855ebc7df24102d04082e0bcc3a344353604"
+ integrity sha512-HVk9X1E0gz3mSpoi60h/saazLKXKaZThMLU3u/aNwoYn8/xQyX2MGxL0ui2eaokkD7tF+Zo+cKTHUbe1mmmGzA==
sockjs@^0.3.24:
version "0.3.24"
@@ -11695,10 +11578,10 @@ strip-json-comments@^3.1.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-strnum@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.2.tgz#a5e00ba66ab25f9cafa3726b567ce7a49170937a"
- integrity sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==
+strnum@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.2.2.tgz#f11fd94ab62b536ba2ecc615858f3747c2881b3f"
+ integrity sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA==
structured-headers@^0.4.1:
version "0.4.1"
@@ -11774,9 +11657,9 @@ tagged-tag@^1.0.0:
integrity sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==
tapable@^2.0.0, tapable@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6"
- integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.3.2.tgz#86755feabad08d82a26b891db044808c6ad00f15"
+ integrity sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==
terminal-link@^2.1.1:
version "2.1.1"
@@ -11786,7 +11669,7 @@ terminal-link@^2.1.1:
ansi-escapes "^4.2.1"
supports-hyperlinks "^2.0.0"
-terser-webpack-plugin@5.4.0:
+terser-webpack-plugin@5.4.0, terser-webpack-plugin@^5.3.17:
version "5.4.0"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz#95fc4cf4437e587be11ecf37d08636089174d76b"
integrity sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==
@@ -11796,20 +11679,10 @@ terser-webpack-plugin@5.4.0:
schema-utils "^4.3.0"
terser "^5.31.1"
-terser-webpack-plugin@^5.3.17:
- version "5.3.17"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.17.tgz#75ea98876297fbb190d2fbb395e982582b859a67"
- integrity sha512-YR7PtUp6GMU91BgSJmlaX/rS2lGDbAF7D+Wtq7hRO+MiljNmodYvqslzCFiYVAgW+Qoaaia/QUIP4lGXufjdZw==
- dependencies:
- "@jridgewell/trace-mapping" "^0.3.25"
- jest-worker "^27.4.5"
- schema-utils "^4.3.0"
- terser "^5.31.1"
-
terser@^5.10.0, terser@^5.15.0, terser@^5.31.1:
- version "5.46.0"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.46.0.tgz#1b81e560d584bbdd74a8ede87b4d9477b0ff9695"
- integrity sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==
+ version "5.46.1"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.46.1.tgz#40e4b1e35d5f13130f82793a8b3eeb7ec3a92eee"
+ integrity sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.15.0"
@@ -11826,9 +11699,9 @@ test-exclude@^6.0.0:
minimatch "^3.0.4"
thingies@^2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.5.0.tgz#5f7b882c933b85989f8466b528a6247a6881e04f"
- integrity sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/thingies/-/thingies-2.6.0.tgz#e09b98b9e6f6caf8a759eca8481fea1de974d2b1"
+ integrity sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==
throat@^5.0.0:
version "5.0.0"
@@ -11917,9 +11790,9 @@ ts-api-utils@^1.3.0:
integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==
ts-api-utils@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8"
- integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1"
+ integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==
tslib@^1.9.3:
version "1.14.1"
@@ -11971,9 +11844,9 @@ type-fest@^4.26.1:
integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==
type-fest@^5.4.4:
- version "5.4.4"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.4.4.tgz#577f165b5ecb44cfc686559cc54ca77f62aa374d"
- integrity sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-5.5.0.tgz#78fca72f3a1f9ec964e6ae260db492b070c56f3b"
+ integrity sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g==
dependencies:
tagged-tag "^1.0.0"
@@ -12637,9 +12510,9 @@ ws@^7, ws@^7.5.10:
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
ws@^8.12.1, ws@^8.18.0:
- version "8.19.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b"
- integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==
+ version "8.20.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.20.0.tgz#4cd9532358eba60bc863aad1623dfb045a4d4af8"
+ integrity sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==
wsl-utils@^0.1.0:
version "0.1.0"
@@ -12700,9 +12573,9 @@ yallist@^3.0.2:
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yaml@^2.2.1, yaml@^2.2.2, yaml@^2.6.1:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.2.tgz#5694f25eca0ce9c3e7a9d9e00ce0ddabbd9e35c5"
- integrity sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.3.tgz#a0d6bd2efb3dd03c59370223701834e60409bd7d"
+ integrity sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==
yargs-parser@^18.1.2:
version "18.1.3"
@@ -12790,10 +12663,10 @@ zustand@5.0.12:
resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.12.tgz#ed36f647aa89965c4019b671dfc23ef6c6e3af8c"
integrity sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==
-zxing-wasm@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/zxing-wasm/-/zxing-wasm-3.0.0.tgz#184feade580ef7763cac4f1231eae1aa6fe28a39"
- integrity sha512-s7ASCPKX+QnH7Y83f4Byxmq/vDzYW7B9m6jMP5S30JGfN2A6WAUn6P3vcBmNguDhPLE6ny2fjTooQVyKBXI1qA==
+zxing-wasm@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/zxing-wasm/-/zxing-wasm-3.0.1.tgz#b04c9323f2322996d9f21a02bad7fc1b450ec390"
+ integrity sha512-3CLj6iaGkpqPWXAB4pIWkFOR63MwqGekpMzaROFKto4dFowiPmLlC56KoMoOSXzqOCOpI5DAvMdB8ku2va6fUg==
dependencies:
"@types/emscripten" "^1.41.5"
type-fest "^5.4.4"