diff --git a/README.md b/README.md index 4c27912..d46a364 100644 --- a/README.md +++ b/README.md @@ -543,7 +543,7 @@ return ( | minutesPickerIsDisabled | Disable the minutes picker | Boolean | false | false | | secondsPickerIsDisabled | Disable the seconds picker | Boolean | false | false | | dayLimit | Limit on the days it is possible to select | `{ max?: Number, min?: Number }` | - | false | -| hourLimit | Limit on the hours it is possible to select | `{ max?: Number, min?: Number }` | - | false | +| hourLimit | Limit on the hours it is possible to select. Pass `max` < `min` for a wraparound range, e.g. `{ min: 20, max: 5 }` selects 8 PM through 5 AM next day | `{ max?: Number, min?: Number }` | - | false | | minuteLimit | Limit on the minutes it is possible to select | `{ max?: Number, min?: Number }` | - | false | | secondLimit | Limit on the seconds it is possible to select | `{ max?: Number, min?: Number }` | - | false | | maximumDays | The highest value on the days picker | Number | 23 | false | diff --git a/examples/example-expo/App.tsx b/examples/example-expo/App.tsx index 8ec51af..84a3acc 100644 --- a/examples/example-expo/App.tsx +++ b/examples/example-expo/App.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo, useRef, useState } from "react"; +import React, { useRef, useState } from "react"; import Ionicons from "@expo/vector-icons/Ionicons"; import MaskedView from "@react-native-masked-view/masked-view"; @@ -33,7 +33,8 @@ export default function App() { const [showPickerExample3, setShowPickerExample3] = useState(false); const [alarmStringExample1, setAlarmStringExample1] = useState(null); const [alarmStringExample2, setAlarmStringExample2] = useState(null); - const [alarmStringExample3, setAlarmStringExample3] = useState("00:00:00"); + const [alarmStringExample3, setAlarmStringExample3] = useState("00:00:00"); + const [hourLimitTestValue, setHourLimitTestValue] = useState(20); // N.B. Uncomment this to use audio (requires development build) // useEffect(() => { @@ -57,29 +58,23 @@ export default function App() { // }; // }, []); - const onRootLayout = useCallback( - (event: { nativeEvent: { layout: { width: number } } }) => { - const { width } = event.nativeEvent.layout; - setPageWidth(width); - scrollViewRef.current?.scrollTo({ - animated: false, - x: width * currentPageIndex, - }); - }, - [currentPageIndex] - ); + const onRootLayout = (event: { nativeEvent: { layout: { width: number } } }) => { + const { width } = event.nativeEvent.layout; + setPageWidth(width); + scrollViewRef.current?.scrollTo({ + animated: false, + x: width * currentPageIndex, + }); + }; - const onMomentumScrollEnd = useCallback( - (event: NativeSyntheticEvent) => { - LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); - const { contentOffset } = event.nativeEvent; - const newPageIndex = Math.round(contentOffset.x / pageWidth) as 0 | 1; - setCurrentPageIndex(newPageIndex); - }, - [pageWidth] - ); + const onMomentumScrollEnd = (event: NativeSyntheticEvent) => { + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); + const { contentOffset } = event.nativeEvent; + const newPageIndex = Math.round(contentOffset.x / pageWidth) as 0 | 1; + setCurrentPageIndex(newPageIndex); + }; - const pickerFeedback = useCallback(() => { + const pickerFeedback = () => { try { Haptics.selectionAsync(); @@ -98,258 +93,285 @@ export default function App() { } catch (error) { console.warn("Picker feedback failed:", error); } - }, []); + }; - const renderExample1 = useMemo(() => { - return ( - - - {alarmStringExample1 !== null ? "Alarm set for" : "No alarm set"} - - setShowPickerExample1(true)}> - - {alarmStringExample1 !== null ? ( - {alarmStringExample1} - ) : null} - setShowPickerExample1(true)}> - - {"Set Alarm 🔔"} - - - - - setShowPickerExample1(false)} - onConfirm={(pickedDuration) => { - setAlarmStringExample1(formatTime(pickedDuration)); - setShowPickerExample1(false); - }} - pickerFeedback={pickerFeedback} - setIsVisible={setShowPickerExample1} - styles={{ theme: "dark" }} - visible={showPickerExample1} - /> - - ); - }, [alarmStringExample1, pickerFeedback, pageWidth, showPickerExample1]); + const renderExample1 = ( + + + {alarmStringExample1 !== null ? "Alarm set for" : "No alarm set"} + + setShowPickerExample1(true)}> + + {alarmStringExample1 !== null ? ( + {alarmStringExample1} + ) : null} + setShowPickerExample1(true)}> + + {"Set Alarm 🔔"} + + + + + setShowPickerExample1(false)} + onConfirm={(pickedDuration) => { + setAlarmStringExample1(formatTime(pickedDuration)); + setShowPickerExample1(false); + }} + pickerFeedback={pickerFeedback} + setIsVisible={setShowPickerExample1} + styles={{ theme: "dark" }} + visible={showPickerExample1} + /> + + ); - const renderExample2 = useMemo(() => { - return ( - - - {alarmStringExample2 !== null ? "Alarm set for" : "No alarm set"} - - setShowPickerExample2(true)}> - - {alarmStringExample2 !== null ? ( - {alarmStringExample2} - ) : null} - setShowPickerExample2(true)}> - - {"Set Alarm 🔔"} - - - - - setShowPickerExample2(false)} - onConfirm={(pickedDuration) => { - setAlarmStringExample2(formatTime(pickedDuration)); - setShowPickerExample2(false); - }} - pickerFeedback={pickerFeedback} - setIsVisible={setShowPickerExample2} - styles={{ - pickerColumnWidth: { - hours: 90, - }, - theme: "light", - }} - use12HourPicker - visible={showPickerExample2} - /> - - ); - }, [alarmStringExample2, pickerFeedback, pageWidth, showPickerExample2]); + const renderExample2 = ( + + + {alarmStringExample2 !== null ? "Alarm set for" : "No alarm set"} + + setShowPickerExample2(true)}> + + {alarmStringExample2 !== null ? ( + {alarmStringExample2} + ) : null} + setShowPickerExample2(true)}> + + {"Set Alarm 🔔"} + + + + + setShowPickerExample2(false)} + onConfirm={(pickedDuration) => { + setAlarmStringExample2(formatTime(pickedDuration)); + setShowPickerExample2(false); + }} + pickerFeedback={pickerFeedback} + setIsVisible={setShowPickerExample2} + styles={{ + pickerColumnWidth: { + hours: 90, + }, + theme: "light", + }} + use12HourPicker + visible={showPickerExample2} + /> + + ); - const renderExample3 = useMemo(() => { - return ( - - - {alarmStringExample3 !== null ? "Alarm set for" : "No alarm set"} - - setShowPickerExample3(true)}> - - {alarmStringExample3 !== null ? ( - {alarmStringExample3} - ) : null} - setShowPickerExample3(true)}> - - {"Set Alarm 🔔"} - - - - - } - closeOnOverlayPress - confirmButton={} - LinearGradient={LinearGradient} - modalProps={{ overlayOpacity: 0.2 }} - modalTitle="Set Alarm" - onCancel={() => setShowPickerExample3(false)} - onConfirm={(pickedDuration) => { - setAlarmStringExample3(formatTime(pickedDuration)); - setShowPickerExample3(false); - }} - pickerFeedback={pickerFeedback} - setIsVisible={setShowPickerExample3} - styles={{ - pickerLabelGap: 10, - text: { fontWeight: "bold" }, - theme: "dark", - }} - visible={showPickerExample3} - /> - - ); - }, [alarmStringExample3, pickerFeedback, pageWidth, showPickerExample3]); + const renderExample3 = ( + + + {alarmStringExample3 !== null ? "Alarm set for" : "No alarm set"} + + setShowPickerExample3(true)}> + + {alarmStringExample3 !== null ? ( + {alarmStringExample3} + ) : null} + setShowPickerExample3(true)}> + + {"Set Alarm 🔔"} + + + + + } + closeOnOverlayPress + confirmButton={} + LinearGradient={LinearGradient} + modalProps={{ overlayOpacity: 0.2 }} + modalTitle="Set Alarm" + onCancel={() => setShowPickerExample3(false)} + onConfirm={(pickedDuration) => { + setAlarmStringExample3(formatTime(pickedDuration)); + setShowPickerExample3(false); + }} + pickerFeedback={pickerFeedback} + setIsVisible={setShowPickerExample3} + styles={{ + pickerLabelGap: 10, + text: { fontWeight: "bold" }, + theme: "dark", + }} + visible={showPickerExample3} + /> + + ); - const renderExample4 = useMemo(() => { - return ( - - - - ); - }, [pickerFeedback, pageWidth]); + const renderExample4 = ( + + + + ); - const renderExample5 = useMemo(() => { - return ( - - - - ); - }, [pickerFeedback, pageWidth]); + const renderExample5 = ( + + + + ); - const renderNavigationArrows = useMemo(() => { - const pageIndicesWithDarkBackground = [0, 3]; - const isDarkBackground = pageIndicesWithDarkBackground.includes(currentPageIndex); + const formatLiveValue = (value: number) => { + const ampmHour = value === 0 ? 12 : value > 12 ? value - 12 : value; + const ampm = value < 12 ? "AM" : "PM"; + return `${value} (${ampmHour} ${ampm})`; + }; + + const renderHourLimitTest = ( + + Cross-midnight hourLimit test + + {"use12HourPicker + hourLimit={ min: 20, max: 5 }\n(8 PM through 5 AM, wraparound)"} + + + { + "Try scrolling the hours column into the AM region.\nAM hours 12, 1, 2, 3, 4, 5 should be selectable.\n6 AM - 7 PM should snap to nearest boundary." + } + + + Live reported hour value: + {formatLiveValue(hourLimitTestValue)} + + setHourLimitTestValue(d.hours)} + padWithNItems={2} + pickerFeedback={pickerFeedback} + styles={{ + pickerColumnWidth: { hours: 110 }, + pickerItem: { fontSize: 28 }, + pickerLabel: { fontSize: 22 }, + theme: "dark", + }} + use12HourPicker + /> + + ); - const isFinalPage = currentPageIndex === 4; - const isFirstPage = currentPageIndex === 0; + const pageIndicesWithDarkBackground = [0, 3, 5]; + const isDarkBackground = pageIndicesWithDarkBackground.includes(currentPageIndex); + const isFinalPage = currentPageIndex === 5; + const isFirstPage = currentPageIndex === 0; - return ( - <> - {!isFinalPage ? ( - { - LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); - setCurrentPageIndex((currentPageIndex) => { - scrollViewRef.current?.scrollTo({ - animated: true, - x: pageWidth * (currentPageIndex + 1), - }); - return currentPageIndex + 1; + const renderNavigationArrows = ( + <> + {!isFinalPage ? ( + { + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); + setCurrentPageIndex((currentPageIndex) => { + scrollViewRef.current?.scrollTo({ + animated: true, + x: pageWidth * (currentPageIndex + 1), }); - }} - style={({ pressed }) => [ - styles.chevronPressable, - { right: 8 }, - pressed && styles.chevronPressable_pressed, - ]} - > - - - ) : null} - {!isFirstPage ? ( - { - LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); - setCurrentPageIndex((currentPageIndex) => { - scrollViewRef.current?.scrollTo({ - animated: true, - x: pageWidth * (currentPageIndex - 1), - }); - return currentPageIndex - 1; + return currentPageIndex + 1; + }); + }} + style={({ pressed }) => [ + styles.chevronPressable, + { right: 8 }, + pressed && styles.chevronPressable_pressed, + ]} + > + + + ) : null} + {!isFirstPage ? ( + { + LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut); + setCurrentPageIndex((currentPageIndex) => { + scrollViewRef.current?.scrollTo({ + animated: true, + x: pageWidth * (currentPageIndex - 1), }); - }} - style={({ pressed }) => [ - styles.chevronPressable, - { left: 8 }, - pressed && styles.chevronPressable_pressed, - ]} - > - - - ) : null} - - ); - }, [currentPageIndex, pageWidth]); + return currentPageIndex - 1; + }); + }} + style={({ pressed }) => [ + styles.chevronPressable, + { left: 8 }, + pressed && styles.chevronPressable_pressed, + ]} + > + + + ) : null} + + ); return ( @@ -365,6 +387,7 @@ export default function App() { {renderExample3} {renderExample4} {renderExample5} + {renderHourLimitTest} {renderNavigationArrows} @@ -411,6 +434,24 @@ const styles = StyleSheet.create({ alignItems: "center", justifyContent: "center", }, + liveValueBox: { + alignItems: "center", + backgroundColor: "#3A3A3A", + borderRadius: 8, + marginVertical: 20, + paddingHorizontal: 20, + paddingVertical: 12, + }, + liveValueLabel: { + color: "#A0A0A0", + fontSize: 12, + }, + liveValueText: { + color: "#F1F1F1", + fontSize: 22, + fontWeight: "600", + marginTop: 4, + }, page1Container: { backgroundColor: "#514242", }, @@ -423,9 +464,24 @@ const styles = StyleSheet.create({ page5Container: { backgroundColor: "#F1F1F1", }, + page6Container: { + backgroundColor: "#202020", + paddingHorizontal: 20, + }, root: { flex: 1, }, + testInstructions: { + color: "#C2C2C2", + fontSize: 13, + marginTop: 8, + textAlign: "center", + }, + testTitle: { + fontSize: 20, + fontWeight: "600", + marginBottom: 4, + }, textDark: { color: "#F1F1F1", fontSize: 18, diff --git a/examples/example-expo/app.json b/examples/example-expo/app.json index 44a4ce3..4a091df 100644 --- a/examples/example-expo/app.json +++ b/examples/example-expo/app.json @@ -4,7 +4,6 @@ "slug": "timer-picker-example", "version": "1.0.0", "icon": "./assets/icon.png", - "newArchEnabled": true, "splash": { "image": "./assets/splash.png", "resizeMode": "contain", @@ -19,12 +18,14 @@ "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#ffffff" }, - "edgeToEdgeEnabled": true, "package": "com.nuumi.timerpickerexample" }, "web": { "favicon": "./assets/favicon.png" }, - "plugins": ["expo-asset", "expo-font"] + "plugins": ["expo-asset", "expo-font", "react-native-audio-api"], + "experiments": { + "reactCompiler": true + } } } diff --git a/examples/example-expo/babel.config.js b/examples/example-expo/babel.config.js deleted file mode 100644 index 73ebf58..0000000 --- a/examples/example-expo/babel.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function (api) { - api.cache(true); - return { - presets: ["babel-preset-expo"], - }; -}; diff --git a/examples/example-expo/components/CustomButton.tsx b/examples/example-expo/components/CustomButton.tsx index 385ae24..ce01edf 100644 --- a/examples/example-expo/components/CustomButton.tsx +++ b/examples/example-expo/components/CustomButton.tsx @@ -8,7 +8,7 @@ type CustomButtonProps = { onPress?: () => void; }; -export const CustomButton: React.FC = ({ label, onPress }) => { +export const CustomButton = ({ label, onPress }: CustomButtonProps) => { return ( ({ - transform: { - experimentalImportSupport: false, - inlineRequires: false, - }, -}); - const extraNodeModules = { "react-native-timer-picker": path.resolve(__dirname, "../../src"), }; @@ -21,6 +14,6 @@ config.resolver.extraNodeModules = new Proxy(extraNodeModules, { name in target ? target[name] : path.join(process.cwd(), `node_modules/${name}`), }); -config.watchFolders = [path.resolve(__dirname, "../../src")]; +config.watchFolders = [...(config.watchFolders ?? []), path.resolve(__dirname, "../../src")]; module.exports = config; diff --git a/examples/example-expo/package.json b/examples/example-expo/package.json index 0569c57..8ebd052 100644 --- a/examples/example-expo/package.json +++ b/examples/example-expo/package.json @@ -11,16 +11,17 @@ "build:ios": "npx expo run:ios" }, "dependencies": { - "@expo/vector-icons": "^15.0.3", + "@expo/vector-icons": "^15.1.1", "@react-native-masked-view/masked-view": "0.3.2", - "expo": "~54.0.33", - "expo-asset": "~12.0.12", - "expo-font": "~14.0.11", - "expo-haptics": "~15.0.8", - "expo-linear-gradient": "~15.0.8", - "react": "19.1.0", - "react-native": "0.81.5", - "react-native-audio-api": "0.9.0" + "expo": "^55.0.19", + "expo-asset": "~55.0.16", + "expo-font": "~55.0.6", + "expo-haptics": "~55.0.14", + "expo-linear-gradient": "~55.0.13", + "react": "19.2.0", + "react-native": "0.83.6", + "react-native-audio-api": "^0.12.1", + "react-native-worklets": "0.7.4" }, "private": true } diff --git a/package.json b/package.json index 9eeb33f..eac866f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "url": "https://github.com/troberts-28" }, "license": "MIT", - "version": "2.6.2", + "version": "2.6.3", "main": "dist/commonjs/index.js", "module": "dist/module/index.js", "types": "dist/typescript/index.d.ts", diff --git a/src/components/DurationScroll/DurationScroll.tsx b/src/components/DurationScroll/DurationScroll.tsx index ca2da04..e89775d 100644 --- a/src/components/DurationScroll/DurationScroll.tsx +++ b/src/components/DurationScroll/DurationScroll.tsx @@ -16,6 +16,7 @@ import { generate12HourNumbers, generateNumbers } from "../../utils/generateNumb import { getAdjustedLimit } from "../../utils/getAdjustedLimit"; import { getDurationAndIndexFromScrollOffset } from "../../utils/getDurationAndIndexFromScrollOffset"; import { getInitialScrollIndex } from "../../utils/getInitialScrollIndex"; +import { isWithinLimit } from "../../utils/isWithinLimit"; import PickerItem from "../PickerItem"; import type { DurationScrollProps, DurationScrollRef, ExpoAvAudioInstance } from "./types"; @@ -249,6 +250,25 @@ const DurationScroll = forwardRef((props ] ); + // returns the in-range value that's closest (in scroll distance) to `value`, + // honouring wraparound limits where max < min. + const getNearestInRangeValue = useCallback( + (value: number) => { + const { max, min } = adjustedLimited; + if (isWithinLimit(value, min, max)) return value; + + if (max < min) { + // wraparound: `value` lies in the gap between max and min + const distanceForwardToMin = min - value; + const distanceBackwardToMax = value - max; + return distanceForwardToMin <= distanceBackwardToMax ? min : max; + } + + return value > max ? max : min; + }, + [adjustedLimited] + ); + const onScroll = useCallback["onScroll"]>>( (e) => { // this function is only used when the picker is in a modal and/or has Haptic/Audio feedback @@ -269,13 +289,7 @@ const DurationScroll = forwardRef((props }); if (newValues.duration !== latestDuration.current) { - // check limits - if (newValues.duration > adjustedLimited.max) { - newValues.duration = adjustedLimited.max; - } else if (newValues.duration < adjustedLimited.min) { - newValues.duration = adjustedLimited.min; - } - + newValues.duration = getNearestInRangeValue(newValues.duration); latestDuration.current = newValues.duration; } } @@ -317,9 +331,8 @@ const DurationScroll = forwardRef((props }, // eslint-disable-next-line react-hooks/exhaustive-deps [ - adjustedLimited.max, - adjustedLimited.min, aggressivelyGetLatestDuration, + getNearestInRangeValue, playClickSound, disableInfiniteScroll, interval, @@ -342,39 +355,42 @@ const DurationScroll = forwardRef((props yContentOffset: e.nativeEvent.contentOffset.y, }); - // check limits - if (newValues.duration > adjustedLimited.max) { - const targetScrollIndex = newValues.index - (newValues.duration - adjustedLimited.max); - flatListRef.current?.scrollToIndex({ - animated: true, - index: - // guard against scrolling beyond end of list - targetScrollIndex >= 0 ? targetScrollIndex : adjustedLimited.max - 1, - }); // scroll down to max - newValues.duration = adjustedLimited.max; - } else if (newValues.duration < adjustedLimited.min) { - const targetScrollIndex = newValues.index + (adjustedLimited.min - newValues.duration); - flatListRef.current?.scrollToIndex({ - animated: true, - index: - // guard against scrolling beyond end of list - targetScrollIndex <= numbersForFlatList.length - 1 - ? targetScrollIndex - : adjustedLimited.min, - }); // scroll up to min - newValues.duration = adjustedLimited.min; + const snappedDuration = getNearestInRangeValue(newValues.duration); + + if (snappedDuration !== newValues.duration) { + // value is out of limit range — scroll to whichever boundary we snapped to + const snapToMax = snappedDuration === adjustedLimited.max; + + if (snapToMax) { + const targetScrollIndex = newValues.index - (newValues.duration - snappedDuration); + flatListRef.current?.scrollToIndex({ + animated: true, + index: targetScrollIndex >= 0 ? targetScrollIndex : snappedDuration - 1, + }); + } else { + const targetScrollIndex = newValues.index + (snappedDuration - newValues.duration); + flatListRef.current?.scrollToIndex({ + animated: true, + index: + targetScrollIndex <= numbersForFlatList.length - 1 + ? targetScrollIndex + : snappedDuration, + }); + } } + newValues.duration = snappedDuration; + onDurationChange(newValues.duration); }, [ disableInfiniteScroll, + getNearestInRangeValue, interval, styles.pickerItemContainer.height, numberOfItems, padWithNItems, adjustedLimited.max, - adjustedLimited.min, onDurationChange, numbersForFlatList.length, ] diff --git a/src/components/PickerItem/PickerItem.tsx b/src/components/PickerItem/PickerItem.tsx index 0d764ca..56fc9fb 100644 --- a/src/components/PickerItem/PickerItem.tsx +++ b/src/components/PickerItem/PickerItem.tsx @@ -2,6 +2,7 @@ import React from "react"; import { View, Text } from "react-native"; +import { isWithinLimit } from "../../utils/isWithinLimit"; import type { generateStyles } from "../TimerPicker/styles"; interface PickerItemProps { @@ -40,9 +41,17 @@ const PickerItem = React.memo( isAm = item.includes("AM"); stringItem = item.replace(/\s[AP]M/g, ""); intItem = parseInt(stringItem); + + // map 12-hour display value back to 24-hour for limit comparison + if (!isAm && intItem !== 12) { + intItem += 12; + } else if (isAm && intItem === 12) { + intItem = 0; + } } const isSelected = intItem === selectedValue; + const isDisabled = !isWithinLimit(intItem, adjustedLimitedMin, adjustedLimitedMax); return ( @@ -51,9 +60,7 @@ const PickerItem = React.memo( style={[ styles.pickerItem, isSelected && styles.selectedPickerItem, - intItem > adjustedLimitedMax || intItem < adjustedLimitedMin - ? styles.disabledPickerItem - : {}, + isDisabled ? styles.disabledPickerItem : {}, ]} > {stringItem} diff --git a/src/tests/PickerItem.test.tsx b/src/tests/PickerItem.test.tsx new file mode 100644 index 0000000..44e0e9c --- /dev/null +++ b/src/tests/PickerItem.test.tsx @@ -0,0 +1,177 @@ +import React from "react"; + +import { render } from "@testing-library/react-native"; +import type { ReactTestInstance } from "react-test-renderer"; + +import PickerItem from "../components/PickerItem"; +import type { generateStyles } from "../components/TimerPicker/styles"; + +const styles = { + disabledPickerContainer: {}, + disabledPickerItem: { opacity: 0.3 }, + pickerAmPmContainer: {}, + pickerAmPmLabel: {}, + pickerContainer: {}, + pickerGradientOverlay: {}, + pickerItem: {}, + pickerItemContainer: {}, + pickerLabel: {}, + pickerLabelContainer: {}, + selectedPickerItem: { fontWeight: "bold" as const }, +} as ReturnType; + +const renderItem = (props: { + adjustedLimitedMax: number; + adjustedLimitedMin: number; + is12HourPicker?: boolean; + item: string; + selectedValue?: number; +}) => + render( + + ); + +type Style = { fontWeight?: string; opacity?: number }; + +const flattenStyle = (element: ReactTestInstance): Style[] => { + const style = (element.props as { style?: Style | Style[] }).style; + if (!style) return []; + return (Array.isArray(style) ? style : [style]).filter(Boolean); +}; + +const isDisabledStyle = (element: ReactTestInstance) => + flattenStyle(element).some((s) => s.opacity === 0.3); + +const isSelectedStyle = (element: ReactTestInstance) => + flattenStyle(element).some((s) => s.fontWeight === "bold"); + +describe("PickerItem", () => { + describe("12-hour picker greying", () => { + it("greys out PM hours that fall outside a normal limit (regression for issue #82)", () => { + // 9 AM - 5 PM range; 6 PM should be greyed + const { getByText } = renderItem({ + adjustedLimitedMax: 17, + adjustedLimitedMin: 9, + is12HourPicker: true, + item: "06 PM", + }); + expect(isDisabledStyle(getByText("06"))).toBe(true); + }); + + it("does not grey PM hours that fall inside a normal limit", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 17, + adjustedLimitedMin: 9, + is12HourPicker: true, + item: "01 PM", + }); + expect(isDisabledStyle(getByText("01"))).toBe(false); + }); + + it("does not grey AM hours inside a wraparound (cross-midnight) limit", () => { + // 8 PM through 5 AM next day → wraparound limit + const { getByText } = renderItem({ + adjustedLimitedMax: 5, + adjustedLimitedMin: 20, + is12HourPicker: true, + item: "01 AM", + }); + expect(isDisabledStyle(getByText("01"))).toBe(false); + }); + + it("greys AM hours outside a wraparound limit", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 5, + adjustedLimitedMin: 20, + is12HourPicker: true, + item: "06 AM", + }); + expect(isDisabledStyle(getByText("06"))).toBe(true); + }); + + it("does not grey 12 AM (midnight) inside a wraparound limit", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 5, + adjustedLimitedMin: 20, + is12HourPicker: true, + item: "12 AM", + }); + expect(isDisabledStyle(getByText("12"))).toBe(false); + }); + + it("does not grey 12 PM (noon) inside a normal AM-PM limit", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 17, + adjustedLimitedMin: 9, + is12HourPicker: true, + item: "12 PM", + }); + expect(isDisabledStyle(getByText("12"))).toBe(false); + }); + }); + + describe("12-hour picker selection", () => { + it("marks 01 AM as selected when selectedValue is 1", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 5, + adjustedLimitedMin: 20, + is12HourPicker: true, + item: "01 AM", + selectedValue: 1, + }); + expect(isSelectedStyle(getByText("01"))).toBe(true); + }); + + it("marks 01 PM as selected when selectedValue is 13", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 23, + adjustedLimitedMin: 0, + is12HourPicker: true, + item: "01 PM", + selectedValue: 13, + }); + expect(isSelectedStyle(getByText("01"))).toBe(true); + }); + + it("marks 12 AM as selected when selectedValue is 0", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 23, + adjustedLimitedMin: 0, + is12HourPicker: true, + item: "12 AM", + selectedValue: 0, + }); + expect(isSelectedStyle(getByText("12"))).toBe(true); + }); + }); + + describe("non-12-hour picker", () => { + it("greys values above max", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 25, + adjustedLimitedMin: 0, + item: "30", + }); + expect(isDisabledStyle(getByText("30"))).toBe(true); + }); + + it("does not grey values inside the range", () => { + const { getByText } = renderItem({ + adjustedLimitedMax: 30, + adjustedLimitedMin: 10, + item: "20", + }); + expect(isDisabledStyle(getByText("20"))).toBe(false); + }); + }); +}); diff --git a/src/tests/getAdjustedLimit.test.ts b/src/tests/getAdjustedLimit.test.ts index 21b6f2e..49d2a64 100644 --- a/src/tests/getAdjustedLimit.test.ts +++ b/src/tests/getAdjustedLimit.test.ts @@ -63,46 +63,46 @@ describe("getAdjustedLimit", () => { }); describe("out-of-bounds limits", () => { - it("adjusts max when it exceeds maximum value", () => { + it("clamps max when it exceeds maximum value", () => { const result = getAdjustedLimit({ max: 100, min: 5 }, 20, 1); expect(result).toEqual({ max: 19, min: 5 }); }); - it("adjusts min when it is negative", () => { + it("clamps min when it is negative", () => { const result = getAdjustedLimit({ max: 15, min: -5 }, 20, 1); expect(result).toEqual({ max: 15, min: 0 }); }); - it("adjusts both limits when out of bounds", () => { + it("clamps both limits when out of bounds", () => { const result = getAdjustedLimit({ max: 100, min: -10 }, 20, 1); expect(result).toEqual({ max: 19, min: 0 }); }); - it("adjusts max when only max is out of bounds", () => { + it("clamps max when only max is out of bounds", () => { const result = getAdjustedLimit({ max: 100 }, 20, 1); expect(result).toEqual({ max: 19, min: 0 }); }); - it("adjusts min when only min is out of bounds", () => { + it("clamps min when only min is out of bounds", () => { const result = getAdjustedLimit({ min: -10 }, 20, 1); expect(result).toEqual({ max: 19, min: 0 }); }); }); - describe("invalid limits (max < min)", () => { - it("returns default limits when adjusted max < adjusted min", () => { + describe("wraparound limits (max < min)", () => { + it("preserves max < min for wraparound ranges", () => { const result = getAdjustedLimit({ max: 5, min: 15 }, 20, 1); - expect(result).toEqual({ max: 19, min: 0 }); + expect(result).toEqual({ max: 5, min: 15 }); }); - it("handles edge case where both are equal after adjustment", () => { + it("handles edge case where both are equal", () => { const result = getAdjustedLimit({ max: 10, min: 10 }, 20, 1); expect(result).toEqual({ max: 10, min: 10 }); }); - it("returns default when min is too high and max is too low", () => { + it("preserves wraparound after clamping out-of-bounds values", () => { const result = getAdjustedLimit({ max: 5, min: 50 }, 20, 1); - expect(result).toEqual({ max: 19, min: 0 }); + expect(result).toEqual({ max: 5, min: 50 }); }); }); @@ -144,6 +144,11 @@ describe("getAdjustedLimit", () => { expect(result).toEqual({ max: 150, min: 50 }); }); + it("clamps max above maxValue down to maxValue", () => { + const result = getAdjustedLimit({ max: 100, min: 50 }, 50, 1); + expect(result).toEqual({ max: 49, min: 50 }); + }); + it("handles zero min limit", () => { const result = getAdjustedLimit({ max: 0, min: 0 }, 60, 1); expect(result).toEqual({ max: 0, min: 0 }); @@ -160,6 +165,11 @@ describe("getAdjustedLimit", () => { const result = getAdjustedLimit({ max: 17, min: 9 }, 24, 1); expect(result).toEqual({ max: 17, min: 9 }); // 9 AM to 5 PM }); + it("handles cross-midnight 12-hour picker limit (e.g. night shift 8 PM - 5 AM)", () => { + // wraparound: max < min means the range wraps across midnight + const result = getAdjustedLimit({ max: 5, min: 20 }, 24, 1); + expect(result).toEqual({ max: 5, min: 20 }); + }); it("handles typical minutes picker (0-59)", () => { const result = getAdjustedLimit({ max: 45, min: 0 }, 60, 1); diff --git a/src/tests/isWithinLimit.test.ts b/src/tests/isWithinLimit.test.ts new file mode 100644 index 0000000..050ee11 --- /dev/null +++ b/src/tests/isWithinLimit.test.ts @@ -0,0 +1,50 @@ +import { isWithinLimit } from "../utils/isWithinLimit"; + +describe("isWithinLimit", () => { + describe("normal range (min <= max)", () => { + it("includes values inside the range", () => { + expect(isWithinLimit(10, 5, 15)).toBe(true); + }); + + it("includes both endpoints", () => { + expect(isWithinLimit(5, 5, 15)).toBe(true); + expect(isWithinLimit(15, 5, 15)).toBe(true); + }); + + it("excludes values below min", () => { + expect(isWithinLimit(4, 5, 15)).toBe(false); + }); + + it("excludes values above max", () => { + expect(isWithinLimit(16, 5, 15)).toBe(false); + }); + + it("treats min === max as a single allowed value", () => { + expect(isWithinLimit(7, 7, 7)).toBe(true); + expect(isWithinLimit(6, 7, 7)).toBe(false); + expect(isWithinLimit(8, 7, 7)).toBe(false); + }); + }); + + describe("wraparound range (max < min)", () => { + // 8 PM through 5 AM next day + const min = 20; + const max = 5; + + it("includes values at or above min", () => { + expect(isWithinLimit(20, min, max)).toBe(true); + expect(isWithinLimit(23, min, max)).toBe(true); + }); + + it("includes values at or below max", () => { + expect(isWithinLimit(0, min, max)).toBe(true); + expect(isWithinLimit(5, min, max)).toBe(true); + }); + + it("excludes values strictly between max and min", () => { + expect(isWithinLimit(6, min, max)).toBe(false); + expect(isWithinLimit(12, min, max)).toBe(false); + expect(isWithinLimit(19, min, max)).toBe(false); + }); + }); +}); diff --git a/src/utils/getAdjustedLimit.ts b/src/utils/getAdjustedLimit.ts index 4c25805..6af87f1 100644 --- a/src/utils/getAdjustedLimit.ts +++ b/src/utils/getAdjustedLimit.ts @@ -2,7 +2,10 @@ import type { Limit } from "../components/DurationScroll/types"; /** * Adjusts and validates the min/max limits for a scrollable number picker. - * Ensures limits are within valid bounds and handles edge cases. + * + * `max` is clamped to the picker's maximum value and `min` is clamped to 0. + * `max < min` is allowed and means a wraparound range (e.g. `{ min: 20, max: 5 }` + * on the hours picker selects 8 PM through 5 AM the next day). * * @param {Limit | undefined} limit - The input limit object containing optional min and max values * @param {number} numberOfItems - Total number of items in the picker @@ -21,9 +24,9 @@ import type { Limit } from "../components/DurationScroll/types"; * // Returns: { max: 19, min: 0 } * * @example - * // With invalid limits (max < min) - * getAdjustedLimit({ min: 15, max: 5 }, 20, 1) - * // Returns: { max: 19, min: 0 } + * // Wraparound range (e.g. 8 PM through 5 AM on the hours picker) + * getAdjustedLimit({ min: 20, max: 5 }, 24, 1) + * // Returns: { max: 5, min: 20 } */ export const getAdjustedLimit = ( limit: Limit | undefined, @@ -42,18 +45,9 @@ export const getAdjustedLimit = ( }; } - // guard against limits that are out of bounds const adjustedMaxLimit = limit.max !== undefined ? Math.min(limit.max, maxValue) : maxValue; const adjustedMinLimit = limit.min !== undefined ? Math.max(limit.min, 0) : 0; - // guard against invalid limits - if (adjustedMaxLimit < adjustedMinLimit) { - return { - max: maxValue, - min: 0, - }; - } - return { max: adjustedMaxLimit, min: adjustedMinLimit, diff --git a/src/utils/isWithinLimit.ts b/src/utils/isWithinLimit.ts new file mode 100644 index 0000000..37cb803 --- /dev/null +++ b/src/utils/isWithinLimit.ts @@ -0,0 +1,7 @@ +/** + * Checks whether a value falls inside an inclusive `[min, max]` range, with + * support for wraparound ranges where `max < min` (e.g. `min: 20, max: 5` on + * the hours picker means 8 PM through 5 AM next day). + */ +export const isWithinLimit = (value: number, min: number, max: number): boolean => + max < min ? value >= min || value <= max : value >= min && value <= max; diff --git a/yarn.lock b/yarn.lock index eda073a..1911d61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,18 +5,6 @@ __metadata: version: 8 cacheKey: 10c0 -"@0no-co/graphql.web@npm:^1.0.5, @0no-co/graphql.web@npm:^1.0.8": - version: 1.1.2 - resolution: "@0no-co/graphql.web@npm:1.1.2" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - graphql: - optional: true - checksum: 10c0/7074de29681f0563cb9a90d702c7cda4443dce858e09f9a09adbafe32c302890cab81959ccba4ed7ac3e332423b2928a1dc95dd4a5004e6a5c156b733caa349a - languageName: node - linkType: hard - "@ampproject/remapping@npm:^2.2.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" @@ -27,15 +15,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:7.10.4, @babel/code-frame@npm:~7.10.4": - version: 7.10.4 - resolution: "@babel/code-frame@npm:7.10.4" - dependencies: - "@babel/highlight": "npm:^7.10.4" - checksum: 10c0/69e0f52986a1f40231d891224f420436629b6678711b68c088e97b7bdba1607aeb5eb9cfb070275c433f0bf43c37c134845db80d1cdbf5ac88a69b0bdcce9402 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.20.0, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" @@ -47,6 +26,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/code-frame@npm:7.29.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.28.5" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.27.2": version: 7.27.2 resolution: "@babel/compat-data@npm:7.27.2" @@ -140,6 +130,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.0, @babel/generator@npm:^7.29.1": + version: 7.29.1 + resolution: "@babel/generator@npm:7.29.1" + dependencies: + "@babel/parser": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10c0/349086e6876258ef3fb2823030fee0f6c0eb9c3ebe35fc572e16997f8c030d765f636ddc6299edae63e760ea6658f8ee9a2edfa6d6b24c9a80c917916b973551 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-annotate-as-pure@npm:7.27.1" @@ -149,6 +152,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" + dependencies: + "@babel/types": "npm:^7.27.3" + checksum: 10c0/94996ce0a05b7229f956033e6dcd69393db2b0886d0db6aff41e704390402b8cdcca11f61449cb4f86cfd9e61b5ad3a73e4fa661eeed7846b125bd1c33dbc633 + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2": version: 7.27.2 resolution: "@babel/helper-compilation-targets@npm:7.27.2" @@ -328,13 +340,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.9, @babel/helper-validator-identifier@npm:^7.27.1": +"@babel/helper-validator-identifier@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-validator-identifier@npm:7.27.1" checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/helper-validator-identifier@npm:7.28.5" + checksum: 10c0/42aaebed91f739a41f3d80b72752d1f95fd7c72394e8e4bd7cdd88817e0774d80a432451bcba17c2c642c257c483bf1d409dd4548883429ea9493a3bc4ab0847 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-validator-option@npm:7.27.1" @@ -373,18 +392,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4": - version: 7.25.9 - resolution: "@babel/highlight@npm:7.25.9" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.9" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/ae0ed93c151b85a07df42936117fa593ce91563a22dfc8944a90ae7088c9679645c33e00dcd20b081c1979665d65f986241172dae1fc9e5922692fc3ff685a49 - languageName: node - linkType: hard - "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": version: 7.27.2 resolution: "@babel/parser@npm:7.27.2" @@ -407,6 +414,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": + version: 7.29.3 + resolution: "@babel/parser@npm:7.29.3" + dependencies: + "@babel/types": "npm:^7.29.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/f06920c819550c0db689e4c5b626bf55ba3cebf80ebe9ccfa434e134036cf3de50951fe759f74abb2dae381989239860bde46d4600328578ad1f7114c3711a6d + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.27.1" @@ -843,7 +861,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": +"@babel/plugin-transform-arrow-functions@npm:7.27.1, @babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: @@ -902,7 +920,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.27.1": +"@babel/plugin-transform-class-properties@npm:7.27.1, @babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-class-properties@npm:7.27.1" dependencies: @@ -926,6 +944,22 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-classes@npm:7.28.4": + version: 7.28.4 + resolution: "@babel/plugin-transform-classes@npm:7.28.4" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.27.3" + "@babel/helper-compilation-targets": "npm:^7.27.2" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-replace-supers": "npm:^7.27.1" + "@babel/traverse": "npm:^7.28.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/76687ed37216ff012c599870dc00183fb716f22e1a02fe9481943664c0e4d0d88c3da347dc3fe290d4728f4d47cd594ffa621d23845e2bb8ab446e586308e066 + languageName: node + linkType: hard + "@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.25.4, @babel/plugin-transform-classes@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-classes@npm:7.27.1" @@ -1199,7 +1233,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1": +"@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1" dependencies: @@ -1258,7 +1292,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.27.1": +"@babel/plugin-transform-optional-chaining@npm:7.27.1, @babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1" dependencies: @@ -1438,7 +1472,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": +"@babel/plugin-transform-shorthand-properties@npm:7.27.1, @babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: @@ -1472,7 +1506,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.27.1": +"@babel/plugin-transform-template-literals@npm:7.27.1, @babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-template-literals@npm:7.27.1" dependencies: @@ -1532,7 +1566,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.27.1": +"@babel/plugin-transform-unicode-regex@npm:7.27.1, @babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1" dependencies: @@ -1677,7 +1711,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.17.12, @babel/preset-typescript@npm:^7.23.0": +"@babel/preset-typescript@npm:7.27.1, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.17.12, @babel/preset-typescript@npm:^7.23.0": version: 7.27.1 resolution: "@babel/preset-typescript@npm:7.27.1" dependencies: @@ -1732,6 +1766,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/template@npm:7.28.6" + dependencies: + "@babel/code-frame": "npm:^7.28.6" + "@babel/parser": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5 + languageName: node + linkType: hard + "@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1": version: 7.27.1 resolution: "@babel/traverse@npm:7.27.1" @@ -1762,6 +1807,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/traverse@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.29.0" + debug: "npm:^4.3.1" + checksum: 10c0/f63ef6e58d02a9fbf3c0e2e5f1c877da3e0bc57f91a19d2223d53e356a76859cbaf51171c9211c71816d94a0e69efa2732fd27ffc0e1bbc84b636e60932333eb + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.27.1 resolution: "@babel/types@npm:7.27.1" @@ -1782,6 +1842,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.27.3, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/types@npm:7.29.0" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.28.5" + checksum: 10c0/23cc3466e83bcbfab8b9bd0edaafdb5d4efdb88b82b3be6728bbade5ba2f0996f84f63b1c5f7a8c0d67efded28300898a5f930b171bb40b311bca2029c4e9b4f + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1909,31 +1979,31 @@ __metadata: languageName: node linkType: hard -"@expo/cli@npm:54.0.23": - version: 54.0.23 - resolution: "@expo/cli@npm:54.0.23" +"@expo/cli@npm:55.0.27": + version: 55.0.27 + resolution: "@expo/cli@npm:55.0.27" dependencies: - "@0no-co/graphql.web": "npm:^1.0.8" "@expo/code-signing-certificates": "npm:^0.0.6" - "@expo/config": "npm:~12.0.13" - "@expo/config-plugins": "npm:~54.0.4" + "@expo/config": "npm:~55.0.15" + "@expo/config-plugins": "npm:~55.0.8" "@expo/devcert": "npm:^1.2.1" - "@expo/env": "npm:~2.0.8" - "@expo/image-utils": "npm:^0.8.8" - "@expo/json-file": "npm:^10.0.8" - "@expo/metro": "npm:~54.2.0" - "@expo/metro-config": "npm:~54.0.14" - "@expo/osascript": "npm:^2.3.8" - "@expo/package-manager": "npm:^1.9.10" - "@expo/plist": "npm:^0.4.8" - "@expo/prebuild-config": "npm:^54.0.8" - "@expo/schema-utils": "npm:^0.1.8" + "@expo/env": "npm:~2.1.1" + "@expo/image-utils": "npm:^0.8.13" + "@expo/json-file": "npm:^10.0.13" + "@expo/log-box": "npm:55.0.11" + "@expo/metro": "npm:~55.1.1" + "@expo/metro-config": "npm:~55.0.18" + "@expo/osascript": "npm:^2.4.2" + "@expo/package-manager": "npm:^1.10.4" + "@expo/plist": "npm:^0.5.2" + "@expo/prebuild-config": "npm:^55.0.16" + "@expo/require-utils": "npm:^55.0.4" + "@expo/router-server": "npm:^55.0.15" + "@expo/schema-utils": "npm:^55.0.3" "@expo/spawn-async": "npm:^1.7.2" "@expo/ws-tunnel": "npm:^1.0.1" - "@expo/xcpretty": "npm:^4.3.0" - "@react-native/dev-middleware": "npm:0.81.5" - "@urql/core": "npm:^5.0.6" - "@urql/exchange-retry": "npm:^1.3.0" + "@expo/xcpretty": "npm:^4.4.0" + "@react-native/dev-middleware": "npm:0.83.6" accepts: "npm:^1.3.8" arg: "npm:^5.0.2" better-opn: "npm:~3.0.2" @@ -1944,38 +2014,32 @@ __metadata: compression: "npm:^1.7.4" connect: "npm:^3.7.0" debug: "npm:^4.3.4" - env-editor: "npm:^0.4.1" - expo-server: "npm:^1.0.5" - freeport-async: "npm:^2.0.0" + dnssd-advertise: "npm:^1.1.4" + expo-server: "npm:^55.0.8" + fetch-nodeshim: "npm:^0.4.10" getenv: "npm:^2.0.0" glob: "npm:^13.0.0" - lan-network: "npm:^0.1.6" - minimatch: "npm:^9.0.0" + lan-network: "npm:^0.2.1" + multitars: "npm:^1.0.0" node-forge: "npm:^1.3.3" npm-package-arg: "npm:^11.0.0" ora: "npm:^3.4.0" - picomatch: "npm:^3.0.1" - pretty-bytes: "npm:^5.6.0" + picomatch: "npm:^4.0.3" pretty-format: "npm:^29.7.0" progress: "npm:^2.0.3" prompts: "npm:^2.3.2" - qrcode-terminal: "npm:0.11.0" - require-from-string: "npm:^2.0.2" - requireg: "npm:^0.2.2" - resolve: "npm:^1.22.2" resolve-from: "npm:^5.0.0" - resolve.exports: "npm:^2.0.3" semver: "npm:^7.6.0" send: "npm:^0.19.0" slugify: "npm:^1.3.4" source-map-support: "npm:~0.5.21" stacktrace-parser: "npm:^0.1.10" structured-headers: "npm:^0.4.1" - tar: "npm:^7.5.2" terminal-link: "npm:^2.1.1" - undici: "npm:^6.18.2" + toqr: "npm:^0.1.1" wrap-ansi: "npm:^7.0.0" ws: "npm:^8.12.1" + zod: "npm:^3.25.76" peerDependencies: expo: "*" expo-router: "*" @@ -1987,7 +2051,7 @@ __metadata: optional: true bin: expo-internal: build/bin/cli - checksum: 10c0/e51d6d4323d04a2bf78da8abefde58e346af7c3e4b9645cbc775573413d56552c5371c2d7bbe86f33c09baa44dc22f19c98cdf09c0c88318b7446007c40bf8f9 + checksum: 10c0/5d4ec33050ee6d5e2a010f8462fa0e59b4d143c6f12f165b9dee03232316b6d8c9e5fc7b672456a8c58a2f17bded4aeacaa2e113f067d497039f701741dee774 languageName: node linkType: hard @@ -2000,13 +2064,13 @@ __metadata: languageName: node linkType: hard -"@expo/config-plugins@npm:~54.0.3, @expo/config-plugins@npm:~54.0.4": - version: 54.0.4 - resolution: "@expo/config-plugins@npm:54.0.4" +"@expo/config-plugins@npm:~55.0.8": + version: 55.0.8 + resolution: "@expo/config-plugins@npm:55.0.8" dependencies: - "@expo/config-types": "npm:^54.0.10" - "@expo/json-file": "npm:~10.0.8" - "@expo/plist": "npm:^0.4.8" + "@expo/config-types": "npm:^55.0.5" + "@expo/json-file": "npm:~10.0.13" + "@expo/plist": "npm:^0.5.2" "@expo/sdk-runtime-versions": "npm:^1.0.0" chalk: "npm:^4.1.2" debug: "npm:^4.3.5" @@ -2014,60 +2078,35 @@ __metadata: glob: "npm:^13.0.0" resolve-from: "npm:^5.0.0" semver: "npm:^7.5.4" - slash: "npm:^3.0.0" slugify: "npm:^1.6.6" xcode: "npm:^3.0.1" xml2js: "npm:0.6.0" - checksum: 10c0/c7537485a0e883d8a98f1fb93335a1f56d4be2c2a4b5676ba09a8e9253190996241022f841c437e64578fa63b20b6ecf843d88b52930b890fa199d7aa188253f - languageName: node - linkType: hard - -"@expo/config-types@npm:^54.0.10": - version: 54.0.10 - resolution: "@expo/config-types@npm:54.0.10" - checksum: 10c0/a304e18314937cbe3a146fe7daf23d5b78049676dabc14b1e181330f9e74ab2f4ada288f23999f254b59ee7c59380f895ffcb536f537e9039cd10336b1c1d7bc + checksum: 10c0/14f15495ea885c295dbb4df6d0c88753099601b109489d8bdb7fd75caa52a47349edde11265fc5af26e48680cf5b54ccccffe7305cacf22542f24519bb13de58 languageName: node linkType: hard -"@expo/config@npm:~12.0.12": - version: 12.0.12 - resolution: "@expo/config@npm:12.0.12" - dependencies: - "@babel/code-frame": "npm:~7.10.4" - "@expo/config-plugins": "npm:~54.0.3" - "@expo/config-types": "npm:^54.0.10" - "@expo/json-file": "npm:^10.0.8" - deepmerge: "npm:^4.3.1" - getenv: "npm:^2.0.0" - glob: "npm:^13.0.0" - require-from-string: "npm:^2.0.2" - resolve-from: "npm:^5.0.0" - resolve-workspace-root: "npm:^2.0.0" - semver: "npm:^7.6.0" - slugify: "npm:^1.3.4" - sucrase: "npm:~3.35.1" - checksum: 10c0/4094af9815a1c594a80fd4663db12768840350b03136e5500a7d0103c348cfe6ebe90b89bfe7ca3913293c49f9c6fa85a4b8f87a2154492e415c46e7a8cbdbb4 +"@expo/config-types@npm:^55.0.5": + version: 55.0.5 + resolution: "@expo/config-types@npm:55.0.5" + checksum: 10c0/24ce0481cc465ddd3b53cfdde099ef4e899b1f8fff224a0f249b88c93e6c98930e99a55f3929eb53d08138b1b66102ece7b76e16f4e5fadcdf5bbac26c9c3d7e languageName: node linkType: hard -"@expo/config@npm:~12.0.13": - version: 12.0.13 - resolution: "@expo/config@npm:12.0.13" +"@expo/config@npm:~55.0.15": + version: 55.0.15 + resolution: "@expo/config@npm:55.0.15" dependencies: - "@babel/code-frame": "npm:~7.10.4" - "@expo/config-plugins": "npm:~54.0.4" - "@expo/config-types": "npm:^54.0.10" - "@expo/json-file": "npm:^10.0.8" + "@expo/config-plugins": "npm:~55.0.8" + "@expo/config-types": "npm:^55.0.5" + "@expo/json-file": "npm:^10.0.13" + "@expo/require-utils": "npm:^55.0.4" deepmerge: "npm:^4.3.1" getenv: "npm:^2.0.0" glob: "npm:^13.0.0" - require-from-string: "npm:^2.0.2" - resolve-from: "npm:^5.0.0" resolve-workspace-root: "npm:^2.0.0" semver: "npm:^7.6.0" slugify: "npm:^1.3.4" - sucrase: "npm:~3.35.1" - checksum: 10c0/c81494670424251b629f3c1a3ff8eb76e40b51838dbeaa793f6f763d0252fa506d5c7bf60dc358555a64bded7e9c33731169675a56604ff439510359e41b6d10 + checksum: 10c0/8b8f03f375f3a1f1528eda9ba99ccd0ef7d0929034e52f8f6e607e679b56cb53911b78c19b7d57f5ad8fabab4ec38e2e2cd423d97c818c6086e49473d07b187b languageName: node linkType: hard @@ -2081,9 +2120,9 @@ __metadata: languageName: node linkType: hard -"@expo/devtools@npm:0.1.8": - version: 0.1.8 - resolution: "@expo/devtools@npm:0.1.8" +"@expo/devtools@npm:55.0.2": + version: 55.0.2 + resolution: "@expo/devtools@npm:55.0.2" dependencies: chalk: "npm:^4.1.2" peerDependencies: @@ -2094,27 +2133,37 @@ __metadata: optional: true react-native: optional: true - checksum: 10c0/dc4e095e5f4508370ae2258f23370a295b9400c87f29aee2338caa3ca3733d789ba3ff1bfafbf5fa285ac6974aec89b3cbf363fca5885eb9be3973ac1a7d7fa8 + checksum: 10c0/f247e2a5d2c3129d8b0dbee6daa4a5bca5103d5e3a177257522a89661deb598d84af9805d302cc0af166635604a57fa73b38ff1304b5921b17d0bd372b459686 languageName: node linkType: hard -"@expo/env@npm:~2.0.8": - version: 2.0.8 - resolution: "@expo/env@npm:2.0.8" +"@expo/dom-webview@npm:^55.0.5": + version: 55.0.5 + resolution: "@expo/dom-webview@npm:55.0.5" + peerDependencies: + expo: "*" + react: "*" + react-native: "*" + checksum: 10c0/d5904a55bbc1a5489e64e754e4161d230b674cc1a3c3e73a604b52c7f9be0c9d6bcd26caf79106118f9d50576b97ff0121545017a5b6547d0046207075feee84 + languageName: node + linkType: hard + +"@expo/env@npm:^2.0.11, @expo/env@npm:~2.1.1": + version: 2.1.1 + resolution: "@expo/env@npm:2.1.1" dependencies: chalk: "npm:^4.0.0" debug: "npm:^4.3.4" - dotenv: "npm:~16.4.5" - dotenv-expand: "npm:~11.0.6" getenv: "npm:^2.0.0" - checksum: 10c0/e6e4cd1be45a6873f5ad4a6a2176957897159b08104f04ea8f28a9d9f38abe0d109ded76ac197c0edba1ac606c14a034be19cfda75b44111be85b78a2d209375 + checksum: 10c0/c863fb05f16e0ffaac10ba0e5f632472c94ff755e5bfea1ce31820a17efc21dc932ccf8d307793187c752e85e151fe0579cc9038db5abc12f4b650174b182cbe languageName: node linkType: hard -"@expo/fingerprint@npm:0.15.4": - version: 0.15.4 - resolution: "@expo/fingerprint@npm:0.15.4" +"@expo/fingerprint@npm:0.16.6": + version: 0.16.6 + resolution: "@expo/fingerprint@npm:0.16.6" dependencies: + "@expo/env": "npm:^2.0.11" "@expo/spawn-async": "npm:^1.7.2" arg: "npm:^5.0.2" chalk: "npm:^4.1.2" @@ -2122,77 +2171,87 @@ __metadata: getenv: "npm:^2.0.0" glob: "npm:^13.0.0" ignore: "npm:^5.3.1" - minimatch: "npm:^9.0.0" - p-limit: "npm:^3.1.0" + minimatch: "npm:^10.2.2" resolve-from: "npm:^5.0.0" semver: "npm:^7.6.0" bin: fingerprint: bin/cli.js - checksum: 10c0/fe5aa9eff4f649cc58aa0b67cd6b93845ddc81b49a61f03c50632405bf2b99fc83ecbb15c527bfddc0156f8fad297f066dd46edf4cfa17580025fb192d7a98ee + checksum: 10c0/18f597e71aa2fa75ca72c59f81a825df5a0262b27d82b948b2d2a6edd11fa7a3a7f6daccef9d4d92224577631a1a15afd02ce7e0568a8a6db4738704706906fe languageName: node linkType: hard -"@expo/image-utils@npm:^0.8.8": - version: 0.8.8 - resolution: "@expo/image-utils@npm:0.8.8" +"@expo/image-utils@npm:^0.8.13": + version: 0.8.13 + resolution: "@expo/image-utils@npm:0.8.13" dependencies: + "@expo/require-utils": "npm:^55.0.4" "@expo/spawn-async": "npm:^1.7.2" chalk: "npm:^4.0.0" getenv: "npm:^2.0.0" jimp-compact: "npm:0.16.1" parse-png: "npm:^2.1.0" - resolve-from: "npm:^5.0.0" - resolve-global: "npm:^1.0.0" semver: "npm:^7.6.0" - temp-dir: "npm:~2.0.0" - unique-string: "npm:~2.0.0" - checksum: 10c0/d08a93036d865b52d1a4848597bd872192c7023d415f62ed744e9ff20fd9e68308ade06b39c25b0eabbc04745ffa68c4b5a8d79883adb0c32738e1a414d7d62e + checksum: 10c0/eabd8b1578b11a6ba5a0c310a770e16611eebda932a1ad7f4dc4f37c0710c7029df927e309272c896d8f23b509b31cbd3bca5fee19f05dd169b44fabd3c764c5 languageName: node linkType: hard -"@expo/json-file@npm:^10.0.12": - version: 10.0.12 - resolution: "@expo/json-file@npm:10.0.12" +"@expo/json-file@npm:^10.0.13, @expo/json-file@npm:~10.0.13": + version: 10.0.13 + resolution: "@expo/json-file@npm:10.0.13" dependencies: "@babel/code-frame": "npm:^7.20.0" json5: "npm:^2.2.3" - checksum: 10c0/52131a6426e96208ff1b295d580fc70eebb8e292b29fde1db016b2f21a0942a7521feec96b3f58efe5b32dcc1642d569b4211d651146fcdb9bf7e5f08b635878 + checksum: 10c0/81f2073aea613264c0c802b13cfe6b5fdda2469ceabdff105a69e2ba3bc72c1b82f8b3c1c7eb6c9e5a7c4322239e6adcbb37cd3ddb305ed2de3e18e962d57887 languageName: node linkType: hard -"@expo/json-file@npm:^10.0.8, @expo/json-file@npm:~10.0.8": - version: 10.0.8 - resolution: "@expo/json-file@npm:10.0.8" +"@expo/local-build-cache-provider@npm:55.0.11": + version: 55.0.11 + resolution: "@expo/local-build-cache-provider@npm:55.0.11" dependencies: - "@babel/code-frame": "npm:~7.10.4" - json5: "npm:^2.2.3" - checksum: 10c0/dddd7ef7966fe0d29d1cad5a1d517d01c4e6a7b55cd15e901b947e7832d613aa1b982de5336d1305a3714bb4b5e3d78110c0ff799ca33fd54a8cd887f8ba533d + "@expo/config": "npm:~55.0.15" + chalk: "npm:^4.1.2" + checksum: 10c0/56b6d0507e17efcff2ce3d4c827e297642e7870f3bb61b16abe1c534f3207121579e00b29d900d18fb94a191649049114779d070b352ba2dac3480afecad8cc1 + languageName: node + linkType: hard + +"@expo/log-box@npm:55.0.11": + version: 55.0.11 + resolution: "@expo/log-box@npm:55.0.11" + dependencies: + "@expo/dom-webview": "npm:^55.0.5" + anser: "npm:^1.4.9" + stacktrace-parser: "npm:^0.1.10" + peerDependencies: + "@expo/dom-webview": ^55.0.5 + expo: "*" + react: "*" + react-native: "*" + checksum: 10c0/8a4b53b87def9b4dad0f00821d20f749138431047129c11d5d49217d193745eb080efd51442e97809c2c1f5785ee9282cfc57c09e991a3d02bb1c210b479663f languageName: node linkType: hard -"@expo/metro-config@npm:54.0.14, @expo/metro-config@npm:~54.0.14": - version: 54.0.14 - resolution: "@expo/metro-config@npm:54.0.14" +"@expo/metro-config@npm:55.0.18, @expo/metro-config@npm:~55.0.18": + version: 55.0.18 + resolution: "@expo/metro-config@npm:55.0.18" dependencies: "@babel/code-frame": "npm:^7.20.0" "@babel/core": "npm:^7.20.0" "@babel/generator": "npm:^7.20.5" - "@expo/config": "npm:~12.0.13" - "@expo/env": "npm:~2.0.8" - "@expo/json-file": "npm:~10.0.8" - "@expo/metro": "npm:~54.2.0" + "@expo/config": "npm:~55.0.15" + "@expo/env": "npm:~2.1.1" + "@expo/json-file": "npm:~10.0.13" + "@expo/metro": "npm:~55.1.1" "@expo/spawn-async": "npm:^1.7.2" browserslist: "npm:^4.25.0" chalk: "npm:^4.1.0" debug: "npm:^4.3.2" - dotenv: "npm:~16.4.5" - dotenv-expand: "npm:~11.0.6" getenv: "npm:^2.0.0" glob: "npm:^13.0.0" - hermes-parser: "npm:^0.29.1" + hermes-parser: "npm:^0.32.0" jsc-safe-url: "npm:^0.2.4" lightningcss: "npm:^1.30.1" - minimatch: "npm:^9.0.0" + picomatch: "npm:^4.0.3" postcss: "npm:~8.4.32" resolve-from: "npm:^5.0.0" peerDependencies: @@ -2200,91 +2259,134 @@ __metadata: peerDependenciesMeta: expo: optional: true - checksum: 10c0/a8213d3167c39ff3fd7973e4de35fc12ee0b56564ff9f8def3b92ec7204a92174f6bbd7036bc87c893d0a82583c92c7f81271c58f366c26e4c11ab2b86642fb7 + checksum: 10c0/82a043eebf328ef4cd9f8d6c512cac4659decbde16da29c163c5190733ecb80323dc9732698af9823af11f2152757d43f25e5dc62936fb5e0c10c4930778b80f languageName: node linkType: hard -"@expo/metro@npm:~54.2.0": - version: 54.2.0 - resolution: "@expo/metro@npm:54.2.0" +"@expo/metro@npm:~55.1.1": + version: 55.1.1 + resolution: "@expo/metro@npm:55.1.1" dependencies: - metro: "npm:0.83.3" - metro-babel-transformer: "npm:0.83.3" - metro-cache: "npm:0.83.3" - metro-cache-key: "npm:0.83.3" - metro-config: "npm:0.83.3" - metro-core: "npm:0.83.3" - metro-file-map: "npm:0.83.3" - metro-minify-terser: "npm:0.83.3" - metro-resolver: "npm:0.83.3" - metro-runtime: "npm:0.83.3" - metro-source-map: "npm:0.83.3" - metro-symbolicate: "npm:0.83.3" - metro-transform-plugins: "npm:0.83.3" - metro-transform-worker: "npm:0.83.3" - checksum: 10c0/5114ac19021094e19fcbd383778748451bdf78c904cb9be831b04d44880b4ca05071c1e045e5ccf8076418e32a87de2e5163529f1d91fed4bdda2184958e8a61 + metro: "npm:0.83.7" + metro-babel-transformer: "npm:0.83.7" + metro-cache: "npm:0.83.7" + metro-cache-key: "npm:0.83.7" + metro-config: "npm:0.83.7" + metro-core: "npm:0.83.7" + metro-file-map: "npm:0.83.7" + metro-minify-terser: "npm:0.83.7" + metro-resolver: "npm:0.83.7" + metro-runtime: "npm:0.83.7" + metro-source-map: "npm:0.83.7" + metro-symbolicate: "npm:0.83.7" + metro-transform-plugins: "npm:0.83.7" + metro-transform-worker: "npm:0.83.7" + checksum: 10c0/325166a4ad7de0af29746575c8c48466a61c74b711f5a7a77965058b8a3ba41f31cdd66aa3e32b66c94d58e1b4958d4b5e72abc284cee6b88753ce4cbe0c7cbf languageName: node linkType: hard -"@expo/osascript@npm:^2.3.8": - version: 2.3.8 - resolution: "@expo/osascript@npm:2.3.8" +"@expo/osascript@npm:^2.4.2": + version: 2.4.2 + resolution: "@expo/osascript@npm:2.4.2" dependencies: "@expo/spawn-async": "npm:^1.7.2" - exec-async: "npm:^2.2.0" - checksum: 10c0/5991c363fb33fb1f740eb8bfdb7ccafd1944a6d89a644ec20dd76b546ffa995a3963727150155391287536046f5f47c7efae003a27a86299224d55191e2f65cb + checksum: 10c0/80adc04b4a6f0695d00a88dcfe3336b395d6431fdccb9e8316c2ec1819ae6524a7063d7c8f4da7f1f3718e57637204c62c2383b7488b0008410efeb7108aa00f languageName: node linkType: hard -"@expo/package-manager@npm:^1.9.10": - version: 1.10.3 - resolution: "@expo/package-manager@npm:1.10.3" +"@expo/package-manager@npm:^1.10.4": + version: 1.10.4 + resolution: "@expo/package-manager@npm:1.10.4" dependencies: - "@expo/json-file": "npm:^10.0.12" + "@expo/json-file": "npm:^10.0.13" "@expo/spawn-async": "npm:^1.7.2" chalk: "npm:^4.0.0" npm-package-arg: "npm:^11.0.0" ora: "npm:^3.4.0" resolve-workspace-root: "npm:^2.0.0" - checksum: 10c0/b9e6071b9f29f20ef4aae06390c207f22b17eced1fa2d77903100ab7efefe0951a8735dee997ac434550938d939d132a5b1f3f35344bfe9e40344c090d0ebedc + checksum: 10c0/a7b2971082a0c0323706da87dc579c252c5ffbdc10eefb08899bd323abb8be3a2482f512dab54de36952be770fb96a9b557a662db73b1dc61fb4f75ca31e7acc languageName: node linkType: hard -"@expo/plist@npm:^0.4.8": - version: 0.4.8 - resolution: "@expo/plist@npm:0.4.8" +"@expo/plist@npm:^0.5.2": + version: 0.5.2 + resolution: "@expo/plist@npm:0.5.2" dependencies: "@xmldom/xmldom": "npm:^0.8.8" - base64-js: "npm:^1.2.3" + base64-js: "npm:^1.5.1" xmlbuilder: "npm:^15.1.1" - checksum: 10c0/5bacdb6f8c5e0e56da07f4504290036e3a5433164a29bea7857e72234137d8eaa04adb319221fcc1ec7f931d40d7f9f6fc9528fa601ed18c308a4cf8179f7783 + checksum: 10c0/19adae2a365ac1a12db93682fb310ff8be03c711f9173bebe5841cbe60cdfb749247bc1a95fa0977b5bac3aa6a078a0fceeafe4ff6c66d1ed67cce496679e310 languageName: node linkType: hard -"@expo/prebuild-config@npm:^54.0.8": - version: 54.0.8 - resolution: "@expo/prebuild-config@npm:54.0.8" +"@expo/prebuild-config@npm:^55.0.16": + version: 55.0.16 + resolution: "@expo/prebuild-config@npm:55.0.16" dependencies: - "@expo/config": "npm:~12.0.13" - "@expo/config-plugins": "npm:~54.0.4" - "@expo/config-types": "npm:^54.0.10" - "@expo/image-utils": "npm:^0.8.8" - "@expo/json-file": "npm:^10.0.8" - "@react-native/normalize-colors": "npm:0.81.5" + "@expo/config": "npm:~55.0.15" + "@expo/config-plugins": "npm:~55.0.8" + "@expo/config-types": "npm:^55.0.5" + "@expo/image-utils": "npm:^0.8.13" + "@expo/json-file": "npm:^10.0.13" + "@react-native/normalize-colors": "npm:0.83.6" debug: "npm:^4.3.1" resolve-from: "npm:^5.0.0" semver: "npm:^7.6.0" xml2js: "npm:0.6.0" peerDependencies: expo: "*" - checksum: 10c0/70bef3fe360a7035b449e9f137e5046c6fe9137f2220f87bb563af2c34de4593034cd68cea5716ae98930e43a63331659795d1ec2af0f9a905565f2086f7c1a1 + checksum: 10c0/85b8f89c2c15c7383d460ff561b1923f0d981e004a1a5edd9d97051e60ea6dd9eac093881e494c82837688f9878e0eb69a7c571235375bcf70db9dbc563dfb72 + languageName: node + linkType: hard + +"@expo/require-utils@npm:^55.0.4": + version: 55.0.4 + resolution: "@expo/require-utils@npm:55.0.4" + dependencies: + "@babel/code-frame": "npm:^7.20.0" + "@babel/core": "npm:^7.25.2" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" + peerDependencies: + typescript: ^5.0.0 || ^5.0.0-0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/2bd6ed23a117ca4538f8972313ff201de6dffc196b65c0322b2f078f98a439eaaa1104a06b2dd8152f88b52abbe741acc8abc20c9820dcf275409f6c387b865d + languageName: node + linkType: hard + +"@expo/router-server@npm:^55.0.15": + version: 55.0.15 + resolution: "@expo/router-server@npm:55.0.15" + dependencies: + debug: "npm:^4.3.4" + peerDependencies: + "@expo/metro-runtime": ^55.0.10 + expo: "*" + expo-constants: ^55.0.15 + expo-font: ^55.0.6 + expo-router: "*" + expo-server: ^55.0.8 + react: "*" + react-dom: "*" + react-server-dom-webpack: ~19.0.1 || ~19.1.2 || ~19.2.1 + peerDependenciesMeta: + "@expo/metro-runtime": + optional: true + expo-router: + optional: true + react-dom: + optional: true + react-server-dom-webpack: + optional: true + checksum: 10c0/cb432c8d561866d71ed167569b2522b070c42cdab9fa47ee4913d5bbef8315a1b9f639885c3b9dcf364bda13eaeb51edba0afe2a2ae2c03a5796f6f2b965cedc languageName: node linkType: hard -"@expo/schema-utils@npm:^0.1.8": - version: 0.1.8 - resolution: "@expo/schema-utils@npm:0.1.8" - checksum: 10c0/9a600ac858bcd1bd24ccac3e86cbef996c2c58cb20ce61fb1fc753f36dce4a000510e61b803ad5cb221a16caa38b54b243f08ac08e0de69e4aa556798d877f02 +"@expo/schema-utils@npm:^55.0.3": + version: 55.0.3 + resolution: "@expo/schema-utils@npm:55.0.3" + checksum: 10c0/517c35966d8ce94b55ee913d7b6876039f51b52706b59aa10891224c71edab885f02004e174b2986f891e132871e82ad5c73a4a2bfd9412488dce756c6f9b5bc languageName: node linkType: hard @@ -2311,14 +2413,14 @@ __metadata: languageName: node linkType: hard -"@expo/vector-icons@npm:^15.0.3": - version: 15.0.3 - resolution: "@expo/vector-icons@npm:15.0.3" +"@expo/vector-icons@npm:^15.0.2, @expo/vector-icons@npm:^15.1.1": + version: 15.1.1 + resolution: "@expo/vector-icons@npm:15.1.1" peerDependencies: expo-font: ">=14.0.4" react: "*" react-native: "*" - checksum: 10c0/f33274dede267c713618512969afdee28e47e97ba8a7ee7e1d0ab18b417683ace7c4a1b79152d6ec2d254420a23a685582fd956f6cd83a2120514d9efbab1109 + checksum: 10c0/fdd50c90484934204b90d345904fa69ca788a5de704d62b3cb580c52aa4cf4bffe1c05c509d043cf2b6842f1bdad6b78585524f3c6ae5f77e36385d83c0aa577 languageName: node linkType: hard @@ -2329,17 +2431,16 @@ __metadata: languageName: node linkType: hard -"@expo/xcpretty@npm:^4.3.0": - version: 4.3.2 - resolution: "@expo/xcpretty@npm:4.3.2" +"@expo/xcpretty@npm:^4.4.0": + version: 4.4.3 + resolution: "@expo/xcpretty@npm:4.4.3" dependencies: - "@babel/code-frame": "npm:7.10.4" + "@babel/code-frame": "npm:^7.20.0" chalk: "npm:^4.1.0" - find-up: "npm:^5.0.0" js-yaml: "npm:^4.1.0" bin: excpretty: build/cli.js - checksum: 10c0/e524817b2e42fb8c8914fca7e8f7c2f723f4f6d338a57b7ae97cd3e76da8108af63a22d4c7dc2e96a192a248a242f6e0f8056f0ca53bc4fb5cd2e5ae428e0891 + checksum: 10c0/dd1af095a22851669a43e40579f7565a69172d7fa6f3987f600c51346dd16b700e03ccc852d11ecf4692a7aff4493a6ece2094d02766a17b6ceb860d6d4f98e3 languageName: node linkType: hard @@ -2731,7 +2832,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.8 resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: @@ -3267,10 +3368,10 @@ __metadata: languageName: node linkType: hard -"@react-native/assets-registry@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/assets-registry@npm:0.81.5" - checksum: 10c0/88edc316ccccc9e86f03cb591696b02cac541808d89a7480450fd529b1a7363373411018720b492352805f867003f6a71ac1e6363d7b797d3502ea89bcbb2a47 +"@react-native/assets-registry@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/assets-registry@npm:0.83.6" + checksum: 10c0/bbb13196c8e49516ed48f19cdf48c6172f39e5972dc5eff7b9da5f6a25c45aead8d5458dcd6d5b5f88ee87718c33ef2dbeab307b88cb9e93b8cd800544087b93 languageName: node linkType: hard @@ -3291,13 +3392,13 @@ __metadata: languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/babel-plugin-codegen@npm:0.81.5" +"@react-native/babel-plugin-codegen@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/babel-plugin-codegen@npm:0.83.6" dependencies: "@babel/traverse": "npm:^7.25.3" - "@react-native/codegen": "npm:0.81.5" - checksum: 10c0/54971e723480bf5e169e1075a9525274e024c94c4286953c699ddb5f82e6229895147f19723b9f1319b55e0eaaa10389a19f349b6c0ac8451d72941a7d9f448b + "@react-native/codegen": "npm:0.83.6" + checksum: 10c0/f07a93444d4ffdb38316d2b44d4e0978bd7b8864721d0d97bb74f9ca66bc76337908a8c761680c3031437ee3c3b304403355a75ecc7b0beddf932eb4ba4456c5 languageName: node linkType: hard @@ -3356,9 +3457,9 @@ __metadata: languageName: node linkType: hard -"@react-native/babel-preset@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/babel-preset@npm:0.81.5" +"@react-native/babel-preset@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/babel-preset@npm:0.83.6" dependencies: "@babel/core": "npm:^7.25.2" "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" @@ -3401,13 +3502,13 @@ __metadata: "@babel/plugin-transform-typescript": "npm:^7.25.2" "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" "@babel/template": "npm:^7.25.0" - "@react-native/babel-plugin-codegen": "npm:0.81.5" - babel-plugin-syntax-hermes-parser: "npm:0.29.1" + "@react-native/babel-plugin-codegen": "npm:0.83.6" + babel-plugin-syntax-hermes-parser: "npm:0.32.0" babel-plugin-transform-flow-enums: "npm:^0.0.2" react-refresh: "npm:^0.14.0" peerDependencies: "@babel/core": "*" - checksum: 10c0/f3146982c329f7fa7554195e6f8689275cb737856da192a934e7b509f0a5fe07c77c24993801d44914c5c6405799e9b500d227bd1deddf19947c28af6e14ad91 + checksum: 10c0/304ef4b2554f290823ce01e226a2051814d304ec59e05cc1cd9adc1cedc07b58a4cc7f5f86940ec57b53af0269b288cf34b7cd5e2c8a05cdffed4719a909375e languageName: node linkType: hard @@ -3426,20 +3527,20 @@ __metadata: languageName: node linkType: hard -"@react-native/codegen@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/codegen@npm:0.81.5" +"@react-native/codegen@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/codegen@npm:0.83.6" dependencies: "@babel/core": "npm:^7.25.2" "@babel/parser": "npm:^7.25.3" glob: "npm:^7.1.1" - hermes-parser: "npm:0.29.1" + hermes-parser: "npm:0.32.0" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10c0/047a29fadb51f6c58ff6fbad8be3ffc395c1492a869befacd74e11df5a9fa164b15b135824404e34af409c88f722874f9311966ebe4de3dcf10846abfcce0574 + checksum: 10c0/7a3034ae8c1b7f5ce30434085e18ff9cc0faba2218d8d5ef20d1e6475e36a54f2b645e4a6760fda54cd8e061e59526fc16e7ed63e93f7cda5b43a90b4129c453 languageName: node linkType: hard @@ -3481,16 +3582,16 @@ __metadata: languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/community-cli-plugin@npm:0.81.5" +"@react-native/community-cli-plugin@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/community-cli-plugin@npm:0.83.6" dependencies: - "@react-native/dev-middleware": "npm:0.81.5" + "@react-native/dev-middleware": "npm:0.83.6" debug: "npm:^4.4.0" invariant: "npm:^2.2.4" - metro: "npm:^0.83.1" - metro-config: "npm:^0.83.1" - metro-core: "npm:^0.83.1" + metro: "npm:^0.83.6" + metro-config: "npm:^0.83.6" + metro-core: "npm:^0.83.6" semver: "npm:^7.1.3" peerDependencies: "@react-native-community/cli": "*" @@ -3500,7 +3601,7 @@ __metadata: optional: true "@react-native/metro-config": optional: true - checksum: 10c0/754afa13dbaae2892864439878068a5858c88474c5fc041d0d085ac7b2cd1a4b04993d07c6e274790855ed06bba8b08bf0081fb76ab2b08d1aa8d665e58ddaa3 + checksum: 10c0/efd6aa6e9f92a2da8a48021dffa5b8b2520986d8c8905a9a98ba5397cf101cffa0368a5fe074f279d26168a17de14a9e8dc6db89f5e19627904c23bf2e777d4c languageName: node linkType: hard @@ -3511,10 +3612,20 @@ __metadata: languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/debugger-frontend@npm:0.81.5" - checksum: 10c0/6c8769526373314956ec53584b49d3ac94aace4232ba77cfdd96edaf346be8a648e2d877c719e7edaa4c1dcd6a09376012f35b25ca6498679b115815cc6940c3 +"@react-native/debugger-frontend@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/debugger-frontend@npm:0.83.6" + checksum: 10c0/7117317edf310dbded75065224ba55ed4a0939544cbcb5425520f41be52b771c394c01a19acdb077b7a2c4694809cdda6c63d1024fbf4125886f77ebca5428c2 + languageName: node + linkType: hard + +"@react-native/debugger-shell@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/debugger-shell@npm:0.83.6" + dependencies: + cross-spawn: "npm:^7.0.6" + fb-dotslash: "npm:0.5.8" + checksum: 10c0/ed0a55eb20ef92682b0a276f8c9f51f9b8a6bca6bcfab62f36c2deae2fa852eb7632c3e0f2d2d8ddb852e442cccdf8b96a1f2fc10075d22d7d1bf65756b6141c languageName: node linkType: hard @@ -3537,12 +3648,13 @@ __metadata: languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/dev-middleware@npm:0.81.5" +"@react-native/dev-middleware@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/dev-middleware@npm:0.83.6" dependencies: "@isaacs/ttlcache": "npm:^1.4.1" - "@react-native/debugger-frontend": "npm:0.81.5" + "@react-native/debugger-frontend": "npm:0.83.6" + "@react-native/debugger-shell": "npm:0.83.6" chrome-launcher: "npm:^0.15.2" chromium-edge-launcher: "npm:^0.2.0" connect: "npm:^3.6.5" @@ -3551,8 +3663,8 @@ __metadata: nullthrows: "npm:^1.1.1" open: "npm:^7.0.3" serve-static: "npm:^1.16.2" - ws: "npm:^6.2.3" - checksum: 10c0/d057b320940626d41db7f02ac249b9fdba2569ea3167864986bfe61028c4f890cefe24a5b8d4cd1b33c8c33ab547aa361d13a6cdaf991475302eb83a4ab3372a + ws: "npm:^7.5.10" + checksum: 10c0/d2e6cddd66683e2a2bfd8bd8a867cb443d1b1850c0dc68da275d8baf7758e1672581c4a1d2f140f2fe67c5ee126f0afd43724fe5ca118d102feb8e89f6bba05a languageName: node linkType: hard @@ -3593,10 +3705,10 @@ __metadata: languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/gradle-plugin@npm:0.81.5" - checksum: 10c0/0acb06543b4a42daa49c437b608170d25efd3214cf01706b4138a7fb52604f590a680c7d4a4574b43983af80406f781bd3ef692208b4f237dc9902aa14037f6b +"@react-native/gradle-plugin@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/gradle-plugin@npm:0.83.6" + checksum: 10c0/77435dbb82228ad5ec73993727b1887c2184578f96a61282b522f3b2f4461b9442d019bec0b897bf5702ca2222037c088bf0f6d454043afda539048e85ac0727 languageName: node linkType: hard @@ -3614,10 +3726,10 @@ __metadata: languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/js-polyfills@npm:0.81.5" - checksum: 10c0/337d0f263a94f9f38a39efba5081481fe7ff0b6499f77708d97aa3d18cad527adec7f94a21f9af62ec4d78448a39f545223b52cca8c07c10a52b0468b456dd46 +"@react-native/js-polyfills@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/js-polyfills@npm:0.83.6" + checksum: 10c0/ec0a1f75cfe28e0a35d320b43a1a9e61f2e035c0f953a3568de4cb9f869b0de7359241a0858e38accf41902db148a10ae08815f1bbb0e3fb797ebf3384502cba languageName: node linkType: hard @@ -3668,10 +3780,10 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/normalize-colors@npm:0.81.5" - checksum: 10c0/827b120eedd0bf90ab3113e5a74900d15f73bfd826451d493f8047f78824894c516ccaf85bb02fcbe5f11b9f8852c1266593f1999e46a5752ff34b0a2db89a97 +"@react-native/normalize-colors@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/normalize-colors@npm:0.83.6" + checksum: 10c0/51b6fce82aa92c17bb046e703bdec6bc70d26cb89ad57071deef5b2fe617fec288cebbe5e3da6511be1df182f622c3bd6b649a2a0c04071a0e2b07c991b6a276 languageName: node linkType: hard @@ -3706,20 +3818,20 @@ __metadata: languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.81.5": - version: 0.81.5 - resolution: "@react-native/virtualized-lists@npm:0.81.5" +"@react-native/virtualized-lists@npm:0.83.6": + version: 0.83.6 + resolution: "@react-native/virtualized-lists@npm:0.83.6" dependencies: invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" peerDependencies: - "@types/react": ^19.1.0 + "@types/react": ^19.2.0 react: "*" react-native: "*" peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/2f38e73d850e4c7f8bf9e6598ebdf97c524d6ddfa720044798e827aaa613ff6dc47dbdb8e440ce370f92f7ff932f0ac3204328287e79d7e3b8ac8db5651d0b4d + checksum: 10c0/ae6e3d861182421e9a08896ed7cf01e5b2dc00151cd93ed8b89ae1ac0af82f02c617e0a2df2572aa3a571f89607506f2b632f7650e4da6e8176edfdd79f9dbc4 languageName: node linkType: hard @@ -4316,28 +4428,6 @@ __metadata: languageName: node linkType: hard -"@urql/core@npm:^5.0.6, @urql/core@npm:^5.1.1": - version: 5.1.1 - resolution: "@urql/core@npm:5.1.1" - dependencies: - "@0no-co/graphql.web": "npm:^1.0.5" - wonka: "npm:^6.3.2" - checksum: 10c0/2a66f58452bbf153c251dd6d127fc0bc0473b4cde47171ca360960059eb08fc019202aee16911168a800814a3b9748300bb88b87817b5d05cf92c16f5772447b - languageName: node - linkType: hard - -"@urql/exchange-retry@npm:^1.3.0": - version: 1.3.1 - resolution: "@urql/exchange-retry@npm:1.3.1" - dependencies: - "@urql/core": "npm:^5.1.1" - wonka: "npm:^6.3.2" - peerDependencies: - "@urql/core": ^5.0.0 - checksum: 10c0/c7d0e5e31de3ad3ff169ca5a2f635be03057dd151a9d2ef7ff2c8a605c4d1129f8a2b7671fc9adf90aef69c963a0cc08d32c62f8fe60f220d412757e71916806 - languageName: node - linkType: hard - "@vscode/sudo-prompt@npm:^9.0.0": version: 9.3.1 resolution: "@vscode/sudo-prompt@npm:9.3.1" @@ -4378,6 +4468,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:^2.0.0": + version: 2.0.0 + resolution: "accepts@npm:2.0.0" + dependencies: + mime-types: "npm:^3.0.0" + negotiator: "npm:^1.0.0" + checksum: 10c0/98374742097e140891546076215f90c32644feacf652db48412329de4c2a529178a81aa500fbb13dd3e6cbf6e68d829037b123ac037fc9a08bcec4b87b358eef + languageName: node + linkType: hard + "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -4530,13 +4630,6 @@ __metadata: languageName: node linkType: hard -"any-promise@npm:^1.0.0": - version: 1.3.0 - resolution: "any-promise@npm:1.3.0" - checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889 - languageName: node - linkType: hard - "anymatch@npm:^3.0.3": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -4839,12 +4932,21 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:0.29.1, babel-plugin-syntax-hermes-parser@npm:^0.29.1": - version: 0.29.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.29.1" +"babel-plugin-syntax-hermes-parser@npm:0.32.0": + version: 0.32.0 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.32.0" dependencies: - hermes-parser: "npm:0.29.1" - checksum: 10c0/a6d95e4a7079976e477636d18509272a7a185930e143c61d0421a36096e85905563630ac4f0f317518b6db37f50daaefc1828d575b3d5fb090a55e9d39d2534c + hermes-parser: "npm:0.32.0" + checksum: 10c0/2e5aad897d4abd643d33329814ed7adb301047890a8a4325ef140da86e377a1127f1ce6af4064526e5cb603c16d3d3e15784998df4095f1385e7f4e8ca53f03e + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:^0.32.0": + version: 0.32.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.32.1" + dependencies: + hermes-parser: "npm:0.32.1" + checksum: 10c0/b254a2a324cf823c9ec749de0019cf787d59102e9bdd79fc687937e631574ba44f7d249954e284997f1ada1a2b9a1ffa87bc10b16f7e81869b767f99a978b2cf languageName: node linkType: hard @@ -4889,10 +4991,11 @@ __metadata: languageName: node linkType: hard -"babel-preset-expo@npm:~54.0.10": - version: 54.0.10 - resolution: "babel-preset-expo@npm:54.0.10" +"babel-preset-expo@npm:~55.0.19": + version: 55.0.19 + resolution: "babel-preset-expo@npm:55.0.19" dependencies: + "@babel/generator": "npm:^7.20.5" "@babel/helper-module-imports": "npm:^7.25.9" "@babel/plugin-proposal-decorators": "npm:^7.12.9" "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" @@ -4908,23 +5011,26 @@ __metadata: "@babel/plugin-transform-runtime": "npm:^7.24.7" "@babel/preset-react": "npm:^7.22.15" "@babel/preset-typescript": "npm:^7.23.0" - "@react-native/babel-preset": "npm:0.81.5" + "@react-native/babel-preset": "npm:0.83.6" babel-plugin-react-compiler: "npm:^1.0.0" babel-plugin-react-native-web: "npm:~0.21.0" - babel-plugin-syntax-hermes-parser: "npm:^0.29.1" + babel-plugin-syntax-hermes-parser: "npm:^0.32.0" babel-plugin-transform-flow-enums: "npm:^0.0.2" debug: "npm:^4.3.4" resolve-from: "npm:^5.0.0" peerDependencies: "@babel/runtime": ^7.20.0 expo: "*" + expo-widgets: ^55.0.15 react-refresh: ">=0.14.0 <1.0.0" peerDependenciesMeta: "@babel/runtime": optional: true expo: optional: true - checksum: 10c0/aa3203d30b5c13f79cd4996431e5a1f9a8fd8b225af8ad0f1a5573c72b4fde94bf048d71fa133701b834105900b3870c7d56b5fee91a1c5b7c9c4e9ed5b1e9db + expo-widgets: + optional: true + checksum: 10c0/693d2285709d7ac3aaa7f3f89772cea6c44c01b410245ccb6cc53a16e53efc4ed9088f4a9a4831b882c850068a5cb1aa3e829790cefa947f6a2094da57ba61db languageName: node linkType: hard @@ -4998,7 +5104,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.1.2, base64-js@npm:^1.2.3, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": +"base64-js@npm:^1.1.2, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf @@ -5170,7 +5276,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.4.3, buffer@npm:^5.5.0": +"buffer@npm:^5.5.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -5555,13 +5661,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^4.0.0": - version: 4.1.1 - resolution: "commander@npm:4.1.1" - checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab - languageName: node - linkType: hard - "commander@npm:^7.2.0": version: 7.2.0 resolution: "commander@npm:7.2.0" @@ -5640,7 +5739,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^2.0.0": +"convert-source-map@npm:2.0.0, convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b @@ -5733,13 +5832,6 @@ __metadata: languageName: node linkType: hard -"crypto-random-string@npm:^2.0.0": - version: 2.0.0 - resolution: "crypto-random-string@npm:2.0.0" - checksum: 10c0/288589b2484fe787f9e146f56c4be90b940018f17af1b152e4dde12309042ff5a2bf69e949aab8b8ac253948381529cc6f3e5a2427b73643a71ff177fa122b37 - languageName: node - linkType: hard - "csstype@npm:^3.0.2": version: 3.1.3 resolution: "csstype@npm:3.1.3" @@ -5855,13 +5947,6 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 - languageName: node - linkType: hard - "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -5992,6 +6077,13 @@ __metadata: languageName: node linkType: hard +"dnssd-advertise@npm:^1.1.4": + version: 1.1.4 + resolution: "dnssd-advertise@npm:1.1.4" + checksum: 10c0/7a875a206f1d08ad74683b73b2399361b4cc15ff855f4d7831c40375e0f582609ca35a0b7dc55f5b8055efe615fa70d80e057a32e81278d97a81ed362149b3e3 + languageName: node + linkType: hard + "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -6001,29 +6093,6 @@ __metadata: languageName: node linkType: hard -"dotenv-expand@npm:~11.0.6": - version: 11.0.7 - resolution: "dotenv-expand@npm:11.0.7" - dependencies: - dotenv: "npm:^16.4.5" - checksum: 10c0/d80b8a7be085edf351270b96ac0e794bc3ddd7f36157912939577cb4d33ba6492ebee349d59798b71b90e36f498d24a2a564fb4aa00073b2ef4c2a3a49c467b1 - languageName: node - linkType: hard - -"dotenv@npm:^16.4.5": - version: 16.5.0 - resolution: "dotenv@npm:16.5.0" - checksum: 10c0/5bc94c919fbd955bf0ba44d33922a1e93d1078e64a1db5c30faeded1d996e7a83c55332cb8ea4fae5a9ca4d0be44cbceb95c5811e70f9f095298df09d1997dd9 - languageName: node - linkType: hard - -"dotenv@npm:~16.4.5": - version: 16.4.7 - resolution: "dotenv@npm:16.4.7" - checksum: 10c0/be9f597e36a8daf834452daa1f4cc30e5375a5968f98f46d89b16b983c567398a330580c88395069a77473943c06b877d1ca25b4afafcdd6d4adb549e8293462 - languageName: node - linkType: hard - "dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" @@ -6123,13 +6192,6 @@ __metadata: languageName: node linkType: hard -"env-editor@npm:^0.4.1": - version: 0.4.2 - resolution: "env-editor@npm:0.4.2" - checksum: 10c0/edb33583b0ae5197535905cbcefca424796f6afec799604f7578428ee523245edcd7df48d582fdab67dbcc697ed39070057f512e72f94c91ceefdcb432f5eadb - languageName: node - linkType: hard - "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -6737,26 +6799,20 @@ __metadata: version: 0.0.0-use.local resolution: "example-expo@workspace:examples/example-expo" dependencies: - "@expo/vector-icons": "npm:^15.0.3" + "@expo/vector-icons": "npm:^15.1.1" "@react-native-masked-view/masked-view": "npm:0.3.2" - expo: "npm:~54.0.33" - expo-asset: "npm:~12.0.12" - expo-font: "npm:~14.0.11" - expo-haptics: "npm:~15.0.8" - expo-linear-gradient: "npm:~15.0.8" - react: "npm:19.1.0" - react-native: "npm:0.81.5" - react-native-audio-api: "npm:0.9.0" + expo: "npm:^55.0.19" + expo-asset: "npm:~55.0.16" + expo-font: "npm:~55.0.6" + expo-haptics: "npm:~55.0.14" + expo-linear-gradient: "npm:~55.0.13" + react: "npm:19.2.0" + react-native: "npm:0.83.6" + react-native-audio-api: "npm:^0.12.1" + react-native-worklets: "npm:0.7.4" languageName: unknown linkType: soft -"exec-async@npm:^2.2.0": - version: 2.2.0 - resolution: "exec-async@npm:2.2.0" - checksum: 10c0/9c70693a3d9f53e19cc8ecf26c3b3fc7125bf40051a71cba70d71161d065a6091d3ab1924c56ac1edd68cb98b9fbef29f83e45dcf67ee6b6c4826e0f898ac039 - languageName: node - linkType: hard - "execa@npm:^4.0.3": version: 4.1.0 resolution: "execa@npm:4.1.0" @@ -6811,158 +6867,149 @@ __metadata: languageName: node linkType: hard -"expo-asset@npm:~12.0.12": - version: 12.0.12 - resolution: "expo-asset@npm:12.0.12" +"expo-asset@npm:~55.0.16": + version: 55.0.16 + resolution: "expo-asset@npm:55.0.16" dependencies: - "@expo/image-utils": "npm:^0.8.8" - expo-constants: "npm:~18.0.12" + "@expo/image-utils": "npm:^0.8.13" + expo-constants: "npm:~55.0.15" peerDependencies: expo: "*" react: "*" react-native: "*" - checksum: 10c0/303b7e08126edbddd3235a6803ffa6ff98b1cc0fb7bfa019d1ad891560bbbe9a9b84db7275ced33011330a8f4f225175d3780f4771a925d8e1c3782a343b9796 - languageName: node - linkType: hard - -"expo-constants@npm:~18.0.12": - version: 18.0.12 - resolution: "expo-constants@npm:18.0.12" - dependencies: - "@expo/config": "npm:~12.0.12" - "@expo/env": "npm:~2.0.8" - peerDependencies: - expo: "*" - react-native: "*" - checksum: 10c0/9dab3f1d685b17c25ae4179823162b763a7edeea8b976f96f25e37fabbfbc190f05cd774431664e5145196f3982e34303ebf5a1f5a82a1409218ae93187f710f + checksum: 10c0/3a6ea5f669841962eb5f822ea5b5796da53bbb94f63dd850258834741d5bc97237d55b3ffe19ab9ba7eef9ceb3b0fcf68643995a225013a994947bbef31c051c languageName: node linkType: hard -"expo-constants@npm:~18.0.13": - version: 18.0.13 - resolution: "expo-constants@npm:18.0.13" +"expo-constants@npm:~55.0.15": + version: 55.0.15 + resolution: "expo-constants@npm:55.0.15" dependencies: - "@expo/config": "npm:~12.0.13" - "@expo/env": "npm:~2.0.8" + "@expo/env": "npm:~2.1.1" peerDependencies: expo: "*" react-native: "*" - checksum: 10c0/bbe33c0611b8085ecd965434d71d27f065427146fe23f3162d170812f8c917b032604c79e0cd129f39147f58f7dc581ee3c6b64a84bf865dd325595289dc77e6 + checksum: 10c0/3fdaa2e492fabf6e12c9a063f2e54f4027bed39a3d68480d66135fe396d951f6527b317e3074e668a3e71afe9806ee0ea3bd459f91b8934cb0ad122e41f4ffd0 languageName: node linkType: hard -"expo-file-system@npm:~19.0.21": - version: 19.0.21 - resolution: "expo-file-system@npm:19.0.21" +"expo-file-system@npm:~55.0.17": + version: 55.0.17 + resolution: "expo-file-system@npm:55.0.17" peerDependencies: expo: "*" react-native: "*" - checksum: 10c0/0ece34f86beda2048f8bf1f3218e57f6c7c14a875fe8be0f0dd2704d968ee61f979ddf0561b8769f4d46cfeb77ac759da0a030c5a77128cf2a06ce0bb9e3959b + checksum: 10c0/3a7019562460d23f07053439664fdbca32db333beeaa2fdb7fd9fd852e8126b253faa650d1a9d212b8841b79b821f597c66ccca63545b38adf2c6b956e892b66 languageName: node linkType: hard -"expo-font@npm:~14.0.11": - version: 14.0.11 - resolution: "expo-font@npm:14.0.11" +"expo-font@npm:~55.0.6": + version: 55.0.6 + resolution: "expo-font@npm:55.0.6" dependencies: fontfaceobserver: "npm:^2.1.0" peerDependencies: expo: "*" react: "*" react-native: "*" - checksum: 10c0/ba74ff17b01dedc4a8145170b7098a95e037a7bd8ac0b8d0bf80bf28589383c22ba1a3f8ab68d901eafa75e311eb2fcd9edc414c18957a8827063623e2af9e0f + checksum: 10c0/accd823ca5ab4fb8ab3faf665414a22a0e991119ee2f99a35acf06b55b0dc0436d426515edf889114d1b7ebe5cd79094ef711ec052fc5f176e0abe56453d175d languageName: node linkType: hard -"expo-haptics@npm:~15.0.8": - version: 15.0.8 - resolution: "expo-haptics@npm:15.0.8" +"expo-haptics@npm:~55.0.14": + version: 55.0.14 + resolution: "expo-haptics@npm:55.0.14" peerDependencies: expo: "*" - checksum: 10c0/25f58bbbb5faa0d05701ada7f1247adead98a7e30dcbac136aa3e458773584ac758318a02d906de7ba85d63cbd45e7edde3dc35e61825f0dc1e8ed20668ed594 + checksum: 10c0/512f9c367f262bfa5f8646c41235b1b6a7b2745a522a583bf96f9576afb7ec04a4399850d783060d85695a03008050ca8dec2cefbd44b44a79b9b8a8ee07721a languageName: node linkType: hard -"expo-keep-awake@npm:~15.0.8": - version: 15.0.8 - resolution: "expo-keep-awake@npm:15.0.8" +"expo-keep-awake@npm:~55.0.7": + version: 55.0.7 + resolution: "expo-keep-awake@npm:55.0.7" peerDependencies: expo: "*" react: "*" - checksum: 10c0/23064b18285498e70be0aa525dc875cc809fc723b9a101d51e4721a09b1460eb041c73ebeb6d51e9175bb4c9b7a668bc08a48b99ebddac4cfaadb5a47194d329 + checksum: 10c0/061f682d927b204d239e65b2b91e699fc7945cf1d5b6707413b061794573ade62560b55c2869a4cbd34fb96a7278bb9275583311ea3be4316ecf4b8470289fb3 languageName: node linkType: hard -"expo-linear-gradient@npm:~15.0.8": - version: 15.0.8 - resolution: "expo-linear-gradient@npm:15.0.8" +"expo-linear-gradient@npm:~55.0.13": + version: 55.0.13 + resolution: "expo-linear-gradient@npm:55.0.13" peerDependencies: expo: "*" react: "*" react-native: "*" - checksum: 10c0/2ac3bff62143083e3d5b894fccc4c76de058277f65ed123232636cf26c88da6d566fa3cd46be4101f86e66b89ede7c058e12c93493b752df562da2fa971dcd66 + checksum: 10c0/e86517604ccef7aa71c2a72f8c055fe1bbc0393c4d14ae76b91fc7a6bd0a76f51980b19efb002f9190916ed809c8267f60aacd992b9a944634aba8acd070ed39 languageName: node linkType: hard -"expo-modules-autolinking@npm:3.0.24": - version: 3.0.24 - resolution: "expo-modules-autolinking@npm:3.0.24" +"expo-modules-autolinking@npm:55.0.19": + version: 55.0.19 + resolution: "expo-modules-autolinking@npm:55.0.19" dependencies: + "@expo/require-utils": "npm:^55.0.4" "@expo/spawn-async": "npm:^1.7.2" chalk: "npm:^4.1.0" commander: "npm:^7.2.0" - require-from-string: "npm:^2.0.2" - resolve-from: "npm:^5.0.0" bin: expo-modules-autolinking: bin/expo-modules-autolinking.js - checksum: 10c0/cdd59e3aa1aca61955eabc25d21dc3c0a8971fffd234cb491245bc3eac96b45f197dce723089b5760c968ad309e9deb75660e6810c6c58b8a629b83a7e2abc76 + checksum: 10c0/0056bfcfcf4d5ac450dfeb2da0d4931aa7f14a3da3566dee63af8265f58f80082fe09ebfbb3a60a4757ddf17bcddf14fddc090fa65d54720299fdc8b318bdfa4 languageName: node linkType: hard -"expo-modules-core@npm:3.0.29": - version: 3.0.29 - resolution: "expo-modules-core@npm:3.0.29" +"expo-modules-core@npm:55.0.24": + version: 55.0.24 + resolution: "expo-modules-core@npm:55.0.24" dependencies: invariant: "npm:^2.2.4" peerDependencies: react: "*" react-native: "*" - checksum: 10c0/e32a87b06aa772f523afa5a995523848c61c06370085ae9e724ad24432cac38925ff69976f58b2c562828c2cefba6df00cfef2dbb206111413890ce1c2baee19 + react-native-worklets: ^0.7.4 || ^0.8.0 + peerDependenciesMeta: + react-native-worklets: + optional: true + checksum: 10c0/118f4edb578194f0a949162fd5c3ba3c58647d8bc36f26fc0447c43e9973aa259b9b5d5f1e1f1884f3085f26e898f2fbabf57c1441cd4ed7a817cf4faa864145 languageName: node linkType: hard -"expo-server@npm:^1.0.5": - version: 1.0.5 - resolution: "expo-server@npm:1.0.5" - checksum: 10c0/0da974f733235d457f7ce51e5452f48f203378687f821bdab7159617a491c0192251423a17a7a3a118486e1cbfffff5d5ad31aeeedcf2cfad6412a1bd7e86877 +"expo-server@npm:^55.0.8": + version: 55.0.8 + resolution: "expo-server@npm:55.0.8" + checksum: 10c0/41b9c09ea7cdafcf2a82d81f471900c91c2826b4df798bd23b981ecf725a8aea9846ccd675ab5456c14cf617acc398c854c85df84abfc78a785be650154d5413 languageName: node linkType: hard -"expo@npm:~54.0.33": - version: 54.0.33 - resolution: "expo@npm:54.0.33" +"expo@npm:^55.0.19": + version: 55.0.19 + resolution: "expo@npm:55.0.19" dependencies: "@babel/runtime": "npm:^7.20.0" - "@expo/cli": "npm:54.0.23" - "@expo/config": "npm:~12.0.13" - "@expo/config-plugins": "npm:~54.0.4" - "@expo/devtools": "npm:0.1.8" - "@expo/fingerprint": "npm:0.15.4" - "@expo/metro": "npm:~54.2.0" - "@expo/metro-config": "npm:54.0.14" - "@expo/vector-icons": "npm:^15.0.3" + "@expo/cli": "npm:55.0.27" + "@expo/config": "npm:~55.0.15" + "@expo/config-plugins": "npm:~55.0.8" + "@expo/devtools": "npm:55.0.2" + "@expo/fingerprint": "npm:0.16.6" + "@expo/local-build-cache-provider": "npm:55.0.11" + "@expo/log-box": "npm:55.0.11" + "@expo/metro": "npm:~55.1.1" + "@expo/metro-config": "npm:55.0.18" + "@expo/vector-icons": "npm:^15.0.2" "@ungap/structured-clone": "npm:^1.3.0" - babel-preset-expo: "npm:~54.0.10" - expo-asset: "npm:~12.0.12" - expo-constants: "npm:~18.0.13" - expo-file-system: "npm:~19.0.21" - expo-font: "npm:~14.0.11" - expo-keep-awake: "npm:~15.0.8" - expo-modules-autolinking: "npm:3.0.24" - expo-modules-core: "npm:3.0.29" + babel-preset-expo: "npm:~55.0.19" + expo-asset: "npm:~55.0.16" + expo-constants: "npm:~55.0.15" + expo-file-system: "npm:~55.0.17" + expo-font: "npm:~55.0.6" + expo-keep-awake: "npm:~55.0.7" + expo-modules-autolinking: "npm:55.0.19" + expo-modules-core: "npm:55.0.24" pretty-format: "npm:^29.7.0" react-refresh: "npm:^0.14.2" - whatwg-url-without-unicode: "npm:8.0.0-3" + whatwg-url-minimum: "npm:^0.1.1" peerDependencies: "@expo/dom-webview": "*" "@expo/metro-runtime": "*" @@ -6980,7 +7027,7 @@ __metadata: expo: bin/cli expo-modules-autolinking: bin/autolinking fingerprint: bin/fingerprint - checksum: 10c0/e6c3f6419480cf994e06de3b3176c8e8a6401bd3fc048cdf71005c7681f860d72d724f2339525015307e3b2f0d11fd3e3348e231e016b3d3e6d7852bb6e1d35b + checksum: 10c0/bf28c00f3cc7399cb1c3d6b16b234ac0ada01c48e2ef0b9ce8f405ffbfe90fd53a74753fab89c4c73ceb4a6c5ca6a9c9747cee50432ba6324c9239fa74534b90 languageName: node linkType: hard @@ -7052,6 +7099,15 @@ __metadata: languageName: node linkType: hard +"fb-dotslash@npm:0.5.8": + version: 0.5.8 + resolution: "fb-dotslash@npm:0.5.8" + bin: + dotslash: bin/dotslash + checksum: 10c0/6c693ecb8e61cd8571e0ad6a923e0582cf8e481695e906e17c8e31620402e06f8b80d95111a420d2f62349d9bebc2b820bae14c2c54a814e72abdc710dc1d3ed + languageName: node + linkType: hard + "fb-watchman@npm:^2.0.0": version: 2.0.2 resolution: "fb-watchman@npm:2.0.2" @@ -7085,6 +7141,13 @@ __metadata: languageName: node linkType: hard +"fetch-nodeshim@npm:^0.4.10": + version: 0.4.10 + resolution: "fetch-nodeshim@npm:0.4.10" + checksum: 10c0/73b840b5d1252e82c416b350526ff24f5aebf554bfe911c713a19fbe4ad1218fb4c488f95055362a132f5dd733679c929fbe6a65ee23339592290c4d107ade92 + languageName: node + linkType: hard + "file-entry-cache@npm:^8.0.0": version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" @@ -7229,13 +7292,6 @@ __metadata: languageName: node linkType: hard -"freeport-async@npm:^2.0.0": - version: 2.0.0 - resolution: "freeport-async@npm:2.0.0" - checksum: 10c0/421828d1a689695b6c8122d310fd8941af99ebe0b5793e3f8d49aa5923ce580b6c4dd6b7470d46983e60839c302f6c793a8541dbab80817396cdde2b04c83c90 - languageName: node - linkType: hard - "fresh@npm:0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" @@ -7490,15 +7546,6 @@ __metadata: languageName: node linkType: hard -"global-dirs@npm:^0.1.1": - version: 0.1.1 - resolution: "global-dirs@npm:0.1.1" - dependencies: - ini: "npm:^1.3.4" - checksum: 10c0/3608072e58962396c124ad5a1cfb3f99ee76c998654a3432d82977b3c3eeb09dc8a5a2a9849b2b8113906c8d0aad89ce362c22e97cec5fe34405bbf4f3cdbe7a - languageName: node - linkType: hard - "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" @@ -7622,6 +7669,13 @@ __metadata: languageName: node linkType: hard +"hermes-compiler@npm:0.14.1": + version: 0.14.1 + resolution: "hermes-compiler@npm:0.14.1" + checksum: 10c0/223dc2c58fe7ad89a16519a3179fa924f577b1464fa89e2db7a375ce967d668595a50251e4e5756c7b274b062db7c697fcd601ba5f2e021e2e3557eee536f618 + languageName: node + linkType: hard + "hermes-estree@npm:0.25.1": version: 0.25.1 resolution: "hermes-estree@npm:0.25.1" @@ -7636,13 +7690,6 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.29.1": - version: 0.29.1 - resolution: "hermes-estree@npm:0.29.1" - checksum: 10c0/e6b01f79ba708697d61a74b871d5ebae5f863c6d782657d8e2d2256eb838f1eb86ff9c34773a81d9cc69e54be3a5059c686e0ab54a4afba903b40dde92dd0ccb - languageName: node - linkType: hard - "hermes-estree@npm:0.32.0": version: 0.32.0 resolution: "hermes-estree@npm:0.32.0" @@ -7650,6 +7697,20 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.32.1": + version: 0.32.1 + resolution: "hermes-estree@npm:0.32.1" + checksum: 10c0/750d1e26c0df4aae15707765368352c6a34934939df09d96e6d260ee1e1500e753f7a18adac56647ef8ca2057e8f0e5d21ae07b97103b0d9c94d68afee154c5e + languageName: node + linkType: hard + +"hermes-estree@npm:0.35.0": + version: 0.35.0 + resolution: "hermes-estree@npm:0.35.0" + checksum: 10c0/a88c9dc63b8b3679b1aeb43e72e977597096c1bd7d59978c952f1d6df6d1a517c4a817c70b1b701854996b485adfa66c2fc7f80871029a7f0c04306f6717b59a + languageName: node + linkType: hard + "hermes-estree@npm:0.8.0": version: 0.8.0 resolution: "hermes-estree@npm:0.8.0" @@ -7675,15 +7736,6 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.29.1, hermes-parser@npm:^0.29.1": - version: 0.29.1 - resolution: "hermes-parser@npm:0.29.1" - dependencies: - hermes-estree: "npm:0.29.1" - checksum: 10c0/7f40d9bdfb5acaa700f333a24c644b17f5f8d0e823b1e7a9fb6dcf253a54d54716ae63c74effa023688ee4f09013c80188c40d601570fee256a44954e04c2926 - languageName: node - linkType: hard - "hermes-parser@npm:0.32.0": version: 0.32.0 resolution: "hermes-parser@npm:0.32.0" @@ -7693,6 +7745,24 @@ __metadata: languageName: node linkType: hard +"hermes-parser@npm:0.32.1, hermes-parser@npm:^0.32.0": + version: 0.32.1 + resolution: "hermes-parser@npm:0.32.1" + dependencies: + hermes-estree: "npm:0.32.1" + checksum: 10c0/77dc8b116c51d1b30ba9942629d4965301f2c7fa6a751a1842828d110ce33410daed5755ce8943a110dbfc6a5cafc704ddbfb7559e76b5c3170d2173c513047c + languageName: node + linkType: hard + +"hermes-parser@npm:0.35.0": + version: 0.35.0 + resolution: "hermes-parser@npm:0.35.0" + dependencies: + hermes-estree: "npm:0.35.0" + checksum: 10c0/49d98093a2094758db5b536627c6cf5146b140f66e63143acf471c62f1d3fd8bd6ae10a33f2372f72e3653deda5d4615c6dae89d01248849440916209901fc4a + languageName: node + linkType: hard + "hermes-parser@npm:0.8.0": version: 0.8.0 resolution: "hermes-parser@npm:0.8.0" @@ -7894,13 +7964,6 @@ __metadata: languageName: node linkType: hard -"ini@npm:^1.3.4, ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a - languageName: node - linkType: hard - "internal-slot@npm:^1.1.0": version: 1.1.0 resolution: "internal-slot@npm:1.1.0" @@ -9182,12 +9245,12 @@ __metadata: languageName: node linkType: hard -"lan-network@npm:^0.1.6": - version: 0.1.6 - resolution: "lan-network@npm:0.1.6" +"lan-network@npm:^0.2.1": + version: 0.2.1 + resolution: "lan-network@npm:0.2.1" bin: lan-network: dist/lan-network-cli.js - checksum: 10c0/5932a9d67c40fad53da5b383c4623dba700f1b6553d4aea740f5e1cad298a908f2a14dec940ac2e149b06deda73124fc9971e7dbaf162b7f9e077a2d59cd7b20 + checksum: 10c0/14995644bab174cde57e41c80ed828a52d6b788f8701b8a8347c536f3ecade3e71bd33b98091484b27a1df1e35b7f6f1921ac59521bf905b5dd06ab123e82e94 languageName: node linkType: hard @@ -9634,15 +9697,16 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.83.3": - version: 0.83.3 - resolution: "metro-babel-transformer@npm:0.83.3" +"metro-babel-transformer@npm:0.83.7": + version: 0.83.7 + resolution: "metro-babel-transformer@npm:0.83.7" dependencies: "@babel/core": "npm:^7.25.2" flow-enums-runtime: "npm:^0.0.6" - hermes-parser: "npm:0.32.0" + hermes-parser: "npm:0.35.0" + metro-cache-key: "npm:0.83.7" nullthrows: "npm:^1.1.1" - checksum: 10c0/b0107f86cdc9ef9419d669b5b3dac22e35b02c67c480563a63d98f5fb50953587938769efc854bfc09c225557790cd6488dbe3fed6f05c2b3f322cfb2e5ff577 + checksum: 10c0/c50c2fe9fa3d3fbe382d8a482ebcc77d7dba0ef4673cee4904a55b9ea28dea4b86d3b80e9b9ac0cd2b094b9ecd0368c953bba0f1df1cfd36c3a27c666352fd86 languageName: node linkType: hard @@ -9662,12 +9726,12 @@ __metadata: languageName: node linkType: hard -"metro-cache-key@npm:0.83.3": - version: 0.83.3 - resolution: "metro-cache-key@npm:0.83.3" +"metro-cache-key@npm:0.83.7": + version: 0.83.7 + resolution: "metro-cache-key@npm:0.83.7" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/403a2ca5b5bbb31a979effaa31fba0c47e2eb3830428c39c99db58aa0739a6fcc386f5a56c91495c53a4569065f0bda29e3038e9c41ca17af443971395f257dc + checksum: 10c0/a2f20b86b173cd2be710552a49e6389a2c9ef994ac35873616bd4e5c34588beb8c93279bcf525295ca73b6d206ab0d9942f35cbd4a76e642d359bdab48924d7a languageName: node linkType: hard @@ -9693,15 +9757,15 @@ __metadata: languageName: node linkType: hard -"metro-cache@npm:0.83.3": - version: 0.83.3 - resolution: "metro-cache@npm:0.83.3" +"metro-cache@npm:0.83.7": + version: 0.83.7 + resolution: "metro-cache@npm:0.83.7" dependencies: exponential-backoff: "npm:^3.1.1" flow-enums-runtime: "npm:^0.0.6" https-proxy-agent: "npm:^7.0.5" - metro-core: "npm:0.83.3" - checksum: 10c0/608e85d819092c0b472c9adabb5de58e88355739de71833230626c1af7f3ce5dd1dca9f1ff3a836d995201f717315fd769c4c646a818c1f490ea2ec29417e32a + metro-core: "npm:0.83.7" + checksum: 10c0/81ae4b2d0d389d25b816bb2d59eb8baed5e1f03a727aa9bcecadb5547e949525f90af888c956fbd5ff4a732cf4dc48b6d903bab648d23dc1830135d820040825 languageName: node linkType: hard @@ -9735,19 +9799,19 @@ __metadata: languageName: node linkType: hard -"metro-config@npm:0.83.3, metro-config@npm:^0.83.1": - version: 0.83.3 - resolution: "metro-config@npm:0.83.3" +"metro-config@npm:0.83.7, metro-config@npm:^0.83.6": + version: 0.83.7 + resolution: "metro-config@npm:0.83.7" dependencies: connect: "npm:^3.6.5" flow-enums-runtime: "npm:^0.0.6" jest-validate: "npm:^29.7.0" - metro: "npm:0.83.3" - metro-cache: "npm:0.83.3" - metro-core: "npm:0.83.3" - metro-runtime: "npm:0.83.3" + metro: "npm:0.83.7" + metro-cache: "npm:0.83.7" + metro-core: "npm:0.83.7" + metro-runtime: "npm:0.83.7" yaml: "npm:^2.6.1" - checksum: 10c0/c53e4a061cfc776a65cdb5055c0be840055f9741dae25e7d407835988618b15f1407270dbd957c7333d01e9c79eccbf8e6bcb76421b2145bd134b53df459a033 + checksum: 10c0/04f9ae008a4972d8399ed90dc03286afefabc2fc362fef8b8f362ec9c09f2edfe3f0f9e0e5aebf42de8b253f202629cc8e86ef0b07e205adf257cd609ac386fb languageName: node linkType: hard @@ -9772,14 +9836,14 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.83.3, metro-core@npm:^0.83.1": - version: 0.83.3 - resolution: "metro-core@npm:0.83.3" +"metro-core@npm:0.83.7, metro-core@npm:^0.83.6": + version: 0.83.7 + resolution: "metro-core@npm:0.83.7" dependencies: flow-enums-runtime: "npm:^0.0.6" lodash.throttle: "npm:^4.1.1" - metro-resolver: "npm:0.83.3" - checksum: 10c0/d44c1f117c4b27f18abd27110e9536abf3105733e8fccaa522bd0e008248cce0260130517840c4914d7ce5df498f39ecfd43b6046a0f0b1c0f8ada7de38e52c4 + metro-resolver: "npm:0.83.7" + checksum: 10c0/cd267b2516ccce0cc152d12ff1f08073abec0a9b210779357a43f1a279acb3c3be0ff625de030da9a110aea45b70e36f14e13b846cb4fee8419fae67db2a53b4 languageName: node linkType: hard @@ -9824,9 +9888,9 @@ __metadata: languageName: node linkType: hard -"metro-file-map@npm:0.83.3": - version: 0.83.3 - resolution: "metro-file-map@npm:0.83.3" +"metro-file-map@npm:0.83.7": + version: 0.83.7 + resolution: "metro-file-map@npm:0.83.7" dependencies: debug: "npm:^4.4.0" fb-watchman: "npm:^2.0.0" @@ -9837,7 +9901,7 @@ __metadata: micromatch: "npm:^4.0.4" nullthrows: "npm:^1.1.1" walker: "npm:^1.0.7" - checksum: 10c0/4bf9c0fcdb5a5c08851f7370d6427fb68a770f156c4eabbddf20bd3583fb25ae428507eaeb8dc525e792db41d048620209750f33735055863abc909cbb6ef71a + checksum: 10c0/467729e9f607552504d9e1b9a8d81e5ea5a27f979f19a40360215773b38e1a3b563789047f06a5502cf5983aae922b3c52f5a7e0be8edc0b0bb747556e7d5af8 languageName: node linkType: hard @@ -9875,13 +9939,13 @@ __metadata: languageName: node linkType: hard -"metro-minify-terser@npm:0.83.3": - version: 0.83.3 - resolution: "metro-minify-terser@npm:0.83.3" +"metro-minify-terser@npm:0.83.7": + version: 0.83.7 + resolution: "metro-minify-terser@npm:0.83.7" dependencies: flow-enums-runtime: "npm:^0.0.6" terser: "npm:^5.15.0" - checksum: 10c0/9158e3199c0ea647776a7ed5c68ec1bb493f5347ac979f1ca75020cf1c39f907bd29983d60f8cb24dca17053d6b5c35f140c6d720fad0bd0fa9728e8c51e95c6 + checksum: 10c0/bf59f9b5a51c3cfff313f64daab78673fa17d3c9d0ec34823d295cd454daa146daa23706f4cae36104bc41f10ad7b5fa2802246891a6f5eb4d0736ef891c9c7a languageName: node linkType: hard @@ -10025,12 +10089,12 @@ __metadata: languageName: node linkType: hard -"metro-resolver@npm:0.83.3": - version: 0.83.3 - resolution: "metro-resolver@npm:0.83.3" +"metro-resolver@npm:0.83.7": + version: 0.83.7 + resolution: "metro-resolver@npm:0.83.7" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/1d6c030a00b987fbee38e5c632219b2be602e38c9aa9628bb4b591f646e64130d08adb8dcb35076c5c8cc151135557b655f3dee514c0df9f26d3416629eb006b + checksum: 10c0/be5ba43302362f3918ef4a1f91f96d63c04469cc9fed076a2846785f60f7f53193278a36d249b92a4678fcf95f7a6e31da87a13df82ddc384f010c80fd3b074d languageName: node linkType: hard @@ -10054,13 +10118,13 @@ __metadata: languageName: node linkType: hard -"metro-runtime@npm:0.83.3, metro-runtime@npm:^0.83.1": - version: 0.83.3 - resolution: "metro-runtime@npm:0.83.3" +"metro-runtime@npm:0.83.7, metro-runtime@npm:^0.83.6": + version: 0.83.7 + resolution: "metro-runtime@npm:0.83.7" dependencies: "@babel/runtime": "npm:^7.25.0" flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/1d788483b6c2f13e0ea9ff4564996154754d3de84f683812ac848053eaea9243144adee3e8ffe90789e6c253f7402211d72b1b5ebf09e6c23841bc956a680253 + checksum: 10c0/b9feb9cffdf4df086cea91d803529d706c1a212d0c6b9d138ef4985905cb9bd22f9861a77061364a397917b772d2ef722e465a5b198d6405f574481dfa35a9a7 languageName: node linkType: hard @@ -10098,21 +10162,20 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.83.3, metro-source-map@npm:^0.83.1": - version: 0.83.3 - resolution: "metro-source-map@npm:0.83.3" +"metro-source-map@npm:0.83.7, metro-source-map@npm:^0.83.6": + version: 0.83.7 + resolution: "metro-source-map@npm:0.83.7" dependencies: - "@babel/traverse": "npm:^7.25.3" - "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" - "@babel/types": "npm:^7.25.2" + "@babel/traverse": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-symbolicate: "npm:0.83.3" + metro-symbolicate: "npm:0.83.7" nullthrows: "npm:^1.1.1" - ob1: "npm:0.83.3" + ob1: "npm:0.83.7" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" - checksum: 10c0/47e984bde1f8f06348298771f44b5803657c9cfa387df8ff36a359cc72ae3bc0e9c4ea6141345609b183ac8c63dcc997000d3626006e388c24779abb57c6f82c + checksum: 10c0/6c424f6258a2128bb4ae6e7591fb7ed1f79b042978397c24a1e35d8bdfcd8960655b3cdd0c4d8ff90f3055ce5b00eca5cb61b327720e7029b3f334fd8ae1776d languageName: node linkType: hard @@ -10148,19 +10211,19 @@ __metadata: languageName: node linkType: hard -"metro-symbolicate@npm:0.83.3": - version: 0.83.3 - resolution: "metro-symbolicate@npm:0.83.3" +"metro-symbolicate@npm:0.83.7": + version: 0.83.7 + resolution: "metro-symbolicate@npm:0.83.7" dependencies: flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-source-map: "npm:0.83.3" + metro-source-map: "npm:0.83.7" nullthrows: "npm:^1.1.1" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" bin: metro-symbolicate: src/index.js - checksum: 10c0/bd3d234c7581466a9a78f952caa25816666753f6b560fe41502727b3e59931ac65225c9909635dc7c25d4dfaf392631366ef3ec5fa8490413385d60f8d900112 + checksum: 10c0/4968a89d9bdd040e0cb6328852f14a8555e912875a1661e639566879e548fbfb849134b8f55076f875c062d202c713be1c9f47b4e68c627a4f8b367d7e208213 languageName: node linkType: hard @@ -10191,17 +10254,17 @@ __metadata: languageName: node linkType: hard -"metro-transform-plugins@npm:0.83.3": - version: 0.83.3 - resolution: "metro-transform-plugins@npm:0.83.3" +"metro-transform-plugins@npm:0.83.7": + version: 0.83.7 + resolution: "metro-transform-plugins@npm:0.83.7" dependencies: "@babel/core": "npm:^7.25.2" - "@babel/generator": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.3" + "@babel/generator": "npm:^7.29.1" + "@babel/template": "npm:^7.28.6" + "@babel/traverse": "npm:^7.29.0" flow-enums-runtime: "npm:^0.0.6" nullthrows: "npm:^1.1.1" - checksum: 10c0/df3c6db6a69d4888e1b6aad40d48ffec0c3c3faa38e89c07633432fc107ef12c47d55598904c91aadfe0751c5bcb7ec191f8a5ee70c18d253201150fc617ca37 + checksum: 10c0/2fce17ba1013e96278bd6800141ff050af0331a60c4c0dbc24f83c6b524806b6ff4089b36e3268c2315375211d16e875d644b7cbf2b23d43dc050047ec019556 languageName: node linkType: hard @@ -10246,24 +10309,24 @@ __metadata: languageName: node linkType: hard -"metro-transform-worker@npm:0.83.3": - version: 0.83.3 - resolution: "metro-transform-worker@npm:0.83.3" +"metro-transform-worker@npm:0.83.7": + version: 0.83.7 + resolution: "metro-transform-worker@npm:0.83.7" dependencies: "@babel/core": "npm:^7.25.2" - "@babel/generator": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.3" - "@babel/types": "npm:^7.25.2" + "@babel/generator": "npm:^7.29.1" + "@babel/parser": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" flow-enums-runtime: "npm:^0.0.6" - metro: "npm:0.83.3" - metro-babel-transformer: "npm:0.83.3" - metro-cache: "npm:0.83.3" - metro-cache-key: "npm:0.83.3" - metro-minify-terser: "npm:0.83.3" - metro-source-map: "npm:0.83.3" - metro-transform-plugins: "npm:0.83.3" + metro: "npm:0.83.7" + metro-babel-transformer: "npm:0.83.7" + metro-cache: "npm:0.83.7" + metro-cache-key: "npm:0.83.7" + metro-minify-terser: "npm:0.83.7" + metro-source-map: "npm:0.83.7" + metro-transform-plugins: "npm:0.83.7" nullthrows: "npm:^1.1.1" - checksum: 10c0/bea0cbcc7d13cd2b97a2159257b3a53b9ecfb15da18ace82ae05bf2d0ac7cc1806c0bd77ed3b8f4c82c9532773fb99f3938e4b1480e2673f5eda69575ee1d7ef + checksum: 10c0/a84e3bae6679826059d66bc9438f00292d93569bdefb4193bcbe4c9a72f5423d88d8d3da94389f95674674118af1ee233ac8a2b5b8279ff568c8becf4c609f1c languageName: node linkType: hard @@ -10375,44 +10438,43 @@ __metadata: languageName: node linkType: hard -"metro@npm:0.83.3, metro@npm:^0.83.1": - version: 0.83.3 - resolution: "metro@npm:0.83.3" +"metro@npm:0.83.7, metro@npm:^0.83.6": + version: 0.83.7 + resolution: "metro@npm:0.83.7" dependencies: - "@babel/code-frame": "npm:^7.24.7" + "@babel/code-frame": "npm:^7.29.0" "@babel/core": "npm:^7.25.2" - "@babel/generator": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.3" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.3" - "@babel/types": "npm:^7.25.2" - accepts: "npm:^1.3.7" - chalk: "npm:^4.0.0" + "@babel/generator": "npm:^7.29.1" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/traverse": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + accepts: "npm:^2.0.0" ci-info: "npm:^2.0.0" connect: "npm:^3.6.5" debug: "npm:^4.4.0" error-stack-parser: "npm:^2.0.6" flow-enums-runtime: "npm:^0.0.6" graceful-fs: "npm:^4.2.4" - hermes-parser: "npm:0.32.0" + hermes-parser: "npm:0.35.0" image-size: "npm:^1.0.2" invariant: "npm:^2.2.4" jest-worker: "npm:^29.7.0" jsc-safe-url: "npm:^0.2.2" lodash.throttle: "npm:^4.1.1" - metro-babel-transformer: "npm:0.83.3" - metro-cache: "npm:0.83.3" - metro-cache-key: "npm:0.83.3" - metro-config: "npm:0.83.3" - metro-core: "npm:0.83.3" - metro-file-map: "npm:0.83.3" - metro-resolver: "npm:0.83.3" - metro-runtime: "npm:0.83.3" - metro-source-map: "npm:0.83.3" - metro-symbolicate: "npm:0.83.3" - metro-transform-plugins: "npm:0.83.3" - metro-transform-worker: "npm:0.83.3" - mime-types: "npm:^2.1.27" + metro-babel-transformer: "npm:0.83.7" + metro-cache: "npm:0.83.7" + metro-cache-key: "npm:0.83.7" + metro-config: "npm:0.83.7" + metro-core: "npm:0.83.7" + metro-file-map: "npm:0.83.7" + metro-resolver: "npm:0.83.7" + metro-runtime: "npm:0.83.7" + metro-source-map: "npm:0.83.7" + metro-symbolicate: "npm:0.83.7" + metro-transform-plugins: "npm:0.83.7" + metro-transform-worker: "npm:0.83.7" + mime-types: "npm:^3.0.1" nullthrows: "npm:^1.1.1" serialize-error: "npm:^2.1.0" source-map: "npm:^0.5.6" @@ -10421,7 +10483,7 @@ __metadata: yargs: "npm:^17.6.2" bin: metro: src/cli.js - checksum: 10c0/9513c05725c3984ce3b72896c4f7d019ad4fd024a1231b8b84c5c655a0563fc7f26725f28c20c5d3511e3825d64fec3a1e68621f6a6af34d785c5e714ed7da89 + checksum: 10c0/f759631778ce2e8cd7e1338ec886ffa0e3d4cd8456d5a506c57e5212206519435a345bcac6334dac22b3adf188b34854688007ddb1669c65afbadf0a0eef431a languageName: node linkType: hard @@ -10442,7 +10504,7 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:>= 1.43.0 < 2": +"mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.54.0": version: 1.54.0 resolution: "mime-db@npm:1.54.0" checksum: 10c0/8d907917bc2a90fa2df842cdf5dfeaf509adc15fe0531e07bb2f6ab15992416479015828d6a74200041c492e42cce3ebf78e5ce714388a0a538ea9c53eece284 @@ -10458,6 +10520,15 @@ __metadata: languageName: node linkType: hard +"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1": + version: 3.0.2 + resolution: "mime-types@npm:3.0.2" + dependencies: + mime-db: "npm:^1.54.0" + checksum: 10c0/35a0dd1035d14d185664f346efcdb72e93ef7a9b6e9ae808bd1f6358227010267fab52657b37562c80fc888ff76becb2b2938deb5e730818b7983bf8bd359767 + languageName: node + linkType: hard + "mime@npm:1.6.0": version: 1.6.0 resolution: "mime@npm:1.6.0" @@ -10540,7 +10611,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4": +"minimatch@npm:^9.0.4": version: 9.0.5 resolution: "minimatch@npm:9.0.5" dependencies: @@ -10549,7 +10620,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": +"minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -10632,15 +10703,6 @@ __metadata: languageName: node linkType: hard -"minizlib@npm:^3.1.0": - version: 3.1.0 - resolution: "minizlib@npm:3.1.0" - dependencies: - minipass: "npm:^7.1.2" - checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec - languageName: node - linkType: hard - "mkdirp@npm:^0.5.1": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" @@ -10684,14 +10746,10 @@ __metadata: languageName: node linkType: hard -"mz@npm:^2.7.0": - version: 2.7.0 - resolution: "mz@npm:2.7.0" - dependencies: - any-promise: "npm:^1.0.0" - object-assign: "npm:^4.0.1" - thenify-all: "npm:^1.0.0" - checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39 +"multitars@npm:^1.0.0": + version: 1.0.0 + resolution: "multitars@npm:1.0.0" + checksum: 10c0/c3c432ae6c76f802270bfaff63de66ba740d8599503e78cca7c489d43968869509330f68329abd5d3dfc495790c47598fd3994a2cccb68b738d76eba66ae4b04 languageName: node linkType: hard @@ -10753,13 +10811,6 @@ __metadata: languageName: node linkType: hard -"nested-error-stacks@npm:~2.0.1": - version: 2.0.1 - resolution: "nested-error-stacks@npm:2.0.1" - checksum: 10c0/125049632bc3ca2252e994ca07f27d795c0e6decc4077f0f4163348d30d7cb95409ceff6184284c95396aa5ea8ff5010673063db7674058b966b4f0228d4981c - languageName: node - linkType: hard - "nocache@npm:^3.0.1": version: 3.0.4 resolution: "nocache@npm:3.0.4" @@ -10914,16 +10965,16 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.83.3": - version: 0.83.3 - resolution: "ob1@npm:0.83.3" +"ob1@npm:0.83.7": + version: 0.83.7 + resolution: "ob1@npm:0.83.7" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10c0/9231315de39cf0612a01e283c7d7ef31d16618e598de96e44ae1ab3007629296ce1a3d5d02ef60ff22d9fefe33050358c10e7fcba8278861157b89befe13cb3d + checksum: 10c0/b009d7a79b7ccf8db520acdc713a544a1ec379ae804438328080715c66944aa871551b8d7b1cf7cfb89cbe53bbab29f3345097c455259d7b7fe76b0891860187 languageName: node linkType: hard -"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": +"object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 @@ -11291,7 +11342,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.5, path-parse@npm:^1.0.7": +"path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 @@ -11339,13 +11390,6 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^3.0.1": - version: 3.0.1 - resolution: "picomatch@npm:3.0.1" - checksum: 10c0/70ec738569f1864658378b7abdab8939d15dae0718c1df994eae3346fd33daf6a3c1ff4e0c1a0cd1e2c0319130985b63a2cff34d192f2f2acbb78aca76111736 - languageName: node - linkType: hard - "picomatch@npm:^4.0.2": version: 4.0.2 resolution: "picomatch@npm:4.0.2" @@ -11376,7 +11420,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.1, pirates@npm:^4.0.4, pirates@npm:^4.0.6": +"pirates@npm:^4.0.4, pirates@npm:^4.0.6": version: 4.0.7 resolution: "pirates@npm:4.0.7" checksum: 10c0/a51f108dd811beb779d58a76864bbd49e239fa40c7984cd11596c75a121a8cc789f1c8971d8bb15f0dbf9d48b76c05bb62fcbce840f89b688c0fa64b37e8478a @@ -11462,13 +11506,6 @@ __metadata: languageName: node linkType: hard -"pretty-bytes@npm:^5.6.0": - version: 5.6.0 - resolution: "pretty-bytes@npm:5.6.0" - checksum: 10c0/f69f494dcc1adda98dbe0e4a36d301e8be8ff99bfde7a637b2ee2820e7cb583b0fc0f3a63b0e3752c01501185a5cf38602c7be60da41bdf84ef5b70e89c370f3 - languageName: node - linkType: hard - "pretty-format@npm:^26.5.2, pretty-format@npm:^26.6.2": version: 26.6.2 resolution: "pretty-format@npm:26.6.2" @@ -11570,7 +11607,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": +"punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 @@ -11584,15 +11621,6 @@ __metadata: languageName: node linkType: hard -"qrcode-terminal@npm:0.11.0": - version: 0.11.0 - resolution: "qrcode-terminal@npm:0.11.0" - bin: - qrcode-terminal: ./bin/qrcode-terminal.js - checksum: 10c0/7561a649d21d7672d451ada5f2a2b393f586627cea75670c97141dc2b4b4145db547e1fddf512a3552e7fb54de530d513a736cd604c840adb908ed03c32312ad - languageName: node - linkType: hard - "qs@npm:6.13.0": version: 6.13.0 resolution: "qs@npm:6.13.0" @@ -11637,20 +11665,6 @@ __metadata: languageName: node linkType: hard -"rc@npm:~1.2.7": - version: 1.2.8 - resolution: "rc@npm:1.2.8" - dependencies: - deep-extend: "npm:^0.6.0" - ini: "npm:~1.3.0" - minimist: "npm:^1.2.0" - strip-json-comments: "npm:~2.0.1" - bin: - rc: ./cli.js - checksum: 10c0/24a07653150f0d9ac7168e52943cc3cb4b7a22c0e43c7dff3219977c2fdca5a2760a304a029c20811a0e79d351f57d46c9bde216193a0f73978496afc2b85b15 - languageName: node - linkType: hard - "react-devtools-core@npm:^4.27.2": version: 4.28.5 resolution: "react-devtools-core@npm:4.28.5" @@ -11714,16 +11728,21 @@ __metadata: languageName: node linkType: hard -"react-native-audio-api@npm:0.9.0": - version: 0.9.0 - resolution: "react-native-audio-api@npm:0.9.0" +"react-native-audio-api@npm:^0.12.1": + version: 0.12.1 + resolution: "react-native-audio-api@npm:0.12.1" + dependencies: + semver: "npm:^7.7.3" peerDependencies: react: "*" react-native: "*" - react-native-worklets: ~0.6.0 + react-native-worklets: ">= 0.6.0" + peerDependenciesMeta: + react-native-worklets: + optional: true bin: setup-rn-audio-api-web: scripts/setup-rn-audio-api-web.js - checksum: 10c0/c3e2708815831c61f10fa126a59222fbc099ace60cd9f96462d86093112f9a4ad6e5f115da74778856a6f918e44cc6268bd07491eb89acfe5dc1fa254c7964c8 + checksum: 10c0/f9e23b474ba7115cc390e5383f778960e405ae7d1eb6c3f128e594f947bdfa33f68421d4b634b45eb2e3a9b15a0e29e1647c7c155156f9686bd7013232dc04e7 languageName: node linkType: hard @@ -11831,6 +11850,29 @@ __metadata: languageName: unknown linkType: soft +"react-native-worklets@npm:0.7.4": + version: 0.7.4 + resolution: "react-native-worklets@npm:0.7.4" + dependencies: + "@babel/plugin-transform-arrow-functions": "npm:7.27.1" + "@babel/plugin-transform-class-properties": "npm:7.27.1" + "@babel/plugin-transform-classes": "npm:7.28.4" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:7.27.1" + "@babel/plugin-transform-optional-chaining": "npm:7.27.1" + "@babel/plugin-transform-shorthand-properties": "npm:7.27.1" + "@babel/plugin-transform-template-literals": "npm:7.27.1" + "@babel/plugin-transform-unicode-regex": "npm:7.27.1" + "@babel/preset-typescript": "npm:7.27.1" + convert-source-map: "npm:2.0.0" + semver: "npm:7.7.3" + peerDependencies: + "@babel/core": "*" + react: "*" + react-native: "*" + checksum: 10c0/19683baa69b6f7458cdfdb2af27644d6fd14168c8c658e1c0f20fb3ea96e612742ed5ea9e189fc54959e2dc617b6864bbbb6dc3242b7a6a2d70bb49da09d033b + languageName: node + linkType: hard + "react-native@npm:0.72.0": version: 0.72.0 resolution: "react-native@npm:0.72.0" @@ -11931,53 +11973,54 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.81.5": - version: 0.81.5 - resolution: "react-native@npm:0.81.5" +"react-native@npm:0.83.6": + version: 0.83.6 + resolution: "react-native@npm:0.83.6" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.81.5" - "@react-native/codegen": "npm:0.81.5" - "@react-native/community-cli-plugin": "npm:0.81.5" - "@react-native/gradle-plugin": "npm:0.81.5" - "@react-native/js-polyfills": "npm:0.81.5" - "@react-native/normalize-colors": "npm:0.81.5" - "@react-native/virtualized-lists": "npm:0.81.5" + "@react-native/assets-registry": "npm:0.83.6" + "@react-native/codegen": "npm:0.83.6" + "@react-native/community-cli-plugin": "npm:0.83.6" + "@react-native/gradle-plugin": "npm:0.83.6" + "@react-native/js-polyfills": "npm:0.83.6" + "@react-native/normalize-colors": "npm:0.83.6" + "@react-native/virtualized-lists": "npm:0.83.6" abort-controller: "npm:^3.0.0" anser: "npm:^1.4.9" ansi-regex: "npm:^5.0.0" babel-jest: "npm:^29.7.0" - babel-plugin-syntax-hermes-parser: "npm:0.29.1" + babel-plugin-syntax-hermes-parser: "npm:0.32.0" base64-js: "npm:^1.5.1" commander: "npm:^12.0.0" flow-enums-runtime: "npm:^0.0.6" glob: "npm:^7.1.1" + hermes-compiler: "npm:0.14.1" invariant: "npm:^2.2.4" jest-environment-node: "npm:^29.7.0" memoize-one: "npm:^5.0.0" - metro-runtime: "npm:^0.83.1" - metro-source-map: "npm:^0.83.1" + metro-runtime: "npm:^0.83.6" + metro-source-map: "npm:^0.83.6" nullthrows: "npm:^1.1.1" pretty-format: "npm:^29.7.0" promise: "npm:^8.3.0" react-devtools-core: "npm:^6.1.5" react-refresh: "npm:^0.14.0" regenerator-runtime: "npm:^0.13.2" - scheduler: "npm:0.26.0" + scheduler: "npm:0.27.0" semver: "npm:^7.1.3" stacktrace-parser: "npm:^0.1.10" whatwg-fetch: "npm:^3.0.0" - ws: "npm:^6.2.3" + ws: "npm:^7.5.10" yargs: "npm:^17.6.2" peerDependencies: - "@types/react": ^19.1.0 - react: ^19.1.0 + "@types/react": ^19.1.1 + react: ^19.2.0 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: 10c0/59b861b461e47a476dfe546b305f1b68b5248bedf2174f32c8aa02b0d1da8dc44fe8d0d60b426532353ff2b61d06d40a32a01dcc53043a3425e29b346065d159 + checksum: 10c0/9f30b4a35a2eae4e8397d743bc6d16cce95a730837af8ff80fbaf3f29e80a999f1448ac1261b374b72679ba2039318dbaaa7230d4c13f423e69c3df9ac3ff77d languageName: node linkType: hard @@ -12036,10 +12079,10 @@ __metadata: languageName: node linkType: hard -"react@npm:19.1.0": - version: 19.1.0 - resolution: "react@npm:19.1.0" - checksum: 10c0/530fb9a62237d54137a13d2cfb67a7db6a2156faed43eecc423f4713d9b20c6f2728b026b45e28fcd72e8eadb9e9ed4b089e99f5e295d2f0ad3134251bdd3698 +"react@npm:19.2.0": + version: 19.2.0 + resolution: "react@npm:19.2.0" + checksum: 10c0/1b6d64eacb9324725bfe1e7860cb7a6b8a34bc89a482920765ebff5c10578eb487e6b46b2f0df263bd27a25edbdae2c45e5ea5d81ae61404301c1a7192c38330 languageName: node linkType: hard @@ -12190,13 +12233,6 @@ __metadata: languageName: node linkType: hard -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 - languageName: node - linkType: hard - "require-main-filename@npm:^2.0.0": version: 2.0.0 resolution: "require-main-filename@npm:2.0.0" @@ -12204,17 +12240,6 @@ __metadata: languageName: node linkType: hard -"requireg@npm:^0.2.2": - version: 0.2.2 - resolution: "requireg@npm:0.2.2" - dependencies: - nested-error-stacks: "npm:~2.0.1" - rc: "npm:~1.2.7" - resolve: "npm:~1.7.1" - checksum: 10c0/806cff08d8fa63f2ec9c74fa9602c86b56627a824d0a188bf777c8d82ba012a1b3c01ab6e88ffcf610713b6bc5ec8a9f9e55dc941b7606ce735e72c4d9daa059 - languageName: node - linkType: hard - "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -12245,15 +12270,6 @@ __metadata: languageName: node linkType: hard -"resolve-global@npm:^1.0.0": - version: 1.0.0 - resolution: "resolve-global@npm:1.0.0" - dependencies: - global-dirs: "npm:^0.1.1" - checksum: 10c0/fda6ba81a07a0124756ce956dd871ca83763973326d8617143dab38d9c9afc666926604bfe8f0bfd046a9a285347568f32ceb3d4c55a1cb9de5614cca001a21c - languageName: node - linkType: hard - "resolve-workspace-root@npm:^2.0.0": version: 2.0.0 resolution: "resolve-workspace-root@npm:2.0.0" @@ -12261,14 +12277,14 @@ __metadata: languageName: node linkType: hard -"resolve.exports@npm:^2.0.0, resolve.exports@npm:^2.0.3": +"resolve.exports@npm:^2.0.0": version: 2.0.3 resolution: "resolve.exports@npm:2.0.3" checksum: 10c0/1ade1493f4642a6267d0a5e68faeac20b3d220f18c28b140343feb83694d8fed7a286852aef43689d16042c61e2ddb270be6578ad4a13990769e12065191200d languageName: node linkType: hard -"resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.2": +"resolve@npm:^1.14.2, resolve@npm:^1.20.0": version: 1.22.10 resolution: "resolve@npm:1.22.10" dependencies: @@ -12294,16 +12310,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:~1.7.1": - version: 1.7.1 - resolution: "resolve@npm:1.7.1" - dependencies: - path-parse: "npm:^1.0.5" - checksum: 10c0/6e9e29185ac57801aff013849e9717c769ef0a27eac30b6492405ba3d61db73d8967023b96578f4b2deba4ef5fb11fc4f0a4db47c0f536890ced5c014e94fbde - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin": +"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin": version: 1.22.10 resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" dependencies: @@ -12329,15 +12336,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A~1.7.1#optional!builtin": - version: 1.7.1 - resolution: "resolve@patch:resolve@npm%3A1.7.1#optional!builtin::version=1.7.1&hash=3bafbf" - dependencies: - path-parse: "npm:^1.0.5" - checksum: 10c0/1301dba7c12cd9dab2ab4eee8518089f25bb7480db34b746a923ded472c4c0600ebb1ba9b8028ca843f7c6017ac76524355800c52b82633e53bd601ca288b4de - languageName: node - linkType: hard - "restore-cursor@npm:^2.0.0": version: 2.0.0 resolution: "restore-cursor@npm:2.0.0" @@ -12498,10 +12496,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:0.26.0": - version: 0.26.0 - resolution: "scheduler@npm:0.26.0" - checksum: 10c0/5b8d5bfddaae3513410eda54f2268e98a376a429931921a81b5c3a2873aab7ca4d775a8caac5498f8cbc7d0daeab947cf923dbd8e215d61671f9f4e392d34356 +"scheduler@npm:0.27.0": + version: 0.27.0 + resolution: "scheduler@npm:0.27.0" + checksum: 10c0/4f03048cb05a3c8fddc45813052251eca00688f413a3cee236d984a161da28db28ba71bd11e7a3dd02f7af84ab28d39fb311431d3b3772fed557945beb00c452 languageName: node linkType: hard @@ -12514,6 +12512,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:7.7.3": + version: 7.7.3 + resolution: "semver@npm:7.7.3" + bin: + semver: bin/semver.js + checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e + languageName: node + linkType: hard + "semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" @@ -13190,13 +13197,6 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 10c0/b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43 - languageName: node - linkType: hard - "strnum@npm:^1.1.1": version: 1.1.2 resolution: "strnum@npm:1.1.2" @@ -13211,24 +13211,6 @@ __metadata: languageName: node linkType: hard -"sucrase@npm:~3.35.1": - version: 3.35.1 - resolution: "sucrase@npm:3.35.1" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.2" - commander: "npm:^4.0.0" - lines-and-columns: "npm:^1.1.6" - mz: "npm:^2.7.0" - pirates: "npm:^4.0.1" - tinyglobby: "npm:^0.2.11" - ts-interface-checker: "npm:^0.1.9" - bin: - sucrase: bin/sucrase - sucrase-node: bin/sucrase-node - checksum: 10c0/6fa22329c261371feb9560630d961ad0d0b9c87dce21ea74557c5f3ffbe5c1ee970ea8bcce9962ae9c90c3c47165ffa7dd41865c7414f5d8ea7a40755d612c5c - languageName: node - linkType: hard - "sudo-prompt@npm:^9.0.0": version: 9.2.1 resolution: "sudo-prompt@npm:9.2.1" @@ -13303,26 +13285,6 @@ __metadata: languageName: node linkType: hard -"tar@npm:^7.5.2": - version: 7.5.2 - resolution: "tar@npm:7.5.2" - dependencies: - "@isaacs/fs-minipass": "npm:^4.0.0" - chownr: "npm:^3.0.0" - minipass: "npm:^7.1.2" - minizlib: "npm:^3.1.0" - yallist: "npm:^5.0.0" - checksum: 10c0/a7d8b801139b52f93a7e34830db0de54c5aa45487c7cb551f6f3d44a112c67f1cb8ffdae856b05fd4f17b1749911f1c26f1e3a23bbe0279e17fd96077f13f467 - languageName: node - linkType: hard - -"temp-dir@npm:~2.0.0": - version: 2.0.0 - resolution: "temp-dir@npm:2.0.0" - checksum: 10c0/b1df969e3f3f7903f3426861887ed76ba3b495f63f6d0c8e1ce22588679d9384d336df6064210fda14e640ed422e2a17d5c40d901f60e161c99482d723f4d309 - languageName: node - linkType: hard - "temp@npm:^0.8.4": version: 0.8.4 resolution: "temp@npm:0.8.4" @@ -13367,24 +13329,6 @@ __metadata: languageName: node linkType: hard -"thenify-all@npm:^1.0.0": - version: 1.6.0 - resolution: "thenify-all@npm:1.6.0" - dependencies: - thenify: "npm:>= 3.1.0 < 4" - checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b - languageName: node - linkType: hard - -"thenify@npm:>= 3.1.0 < 4": - version: 3.3.1 - resolution: "thenify@npm:3.3.1" - dependencies: - any-promise: "npm:^1.0.0" - checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767 - languageName: node - linkType: hard - "throat@npm:^5.0.0": version: 5.0.0 resolution: "throat@npm:5.0.0" @@ -13402,16 +13346,6 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.11, tinyglobby@npm:^0.2.15": - version: 0.2.15 - resolution: "tinyglobby@npm:0.2.15" - dependencies: - fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.3" - checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 - languageName: node - linkType: hard - "tinyglobby@npm:^0.2.12": version: 0.2.13 resolution: "tinyglobby@npm:0.2.13" @@ -13422,6 +13356,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.15": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -13445,6 +13389,13 @@ __metadata: languageName: node linkType: hard +"toqr@npm:^0.1.1": + version: 0.1.1 + resolution: "toqr@npm:0.1.1" + checksum: 10c0/eec346afae2eede8886938992a7eba59f765b3d3a3d5e7ce4984cb25b124e1a3d02531ed1ef3100d60fe443eeb1c7f83ca1fa0bbb04915d67baa5380e7c9eda4 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -13470,13 +13421,6 @@ __metadata: languageName: node linkType: hard -"ts-interface-checker@npm:^0.1.9": - version: 0.1.13 - resolution: "ts-interface-checker@npm:0.1.13" - checksum: 10c0/232509f1b84192d07b81d1e9b9677088e590ac1303436da1e92b296e9be8e31ea042e3e1fd3d29b1742ad2c959e95afe30f63117b8f1bc3a3850070a5142fea7 - languageName: node - linkType: hard - "tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -13668,13 +13612,6 @@ __metadata: languageName: node linkType: hard -"undici@npm:^6.18.2": - version: 6.21.3 - resolution: "undici@npm:6.21.3" - checksum: 10c0/294da109853fad7a6ef5a172ad0ca3fb3f1f60cf34703d062a5ec967daf69ad8c03b52e6d536c5cba3bb65615769bf08e5b30798915cbccdddaca01045173dda - languageName: node - linkType: hard - "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.1 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.1" @@ -13724,15 +13661,6 @@ __metadata: languageName: node linkType: hard -"unique-string@npm:~2.0.0": - version: 2.0.0 - resolution: "unique-string@npm:2.0.0" - dependencies: - crypto-random-string: "npm:^2.0.0" - checksum: 10c0/11820db0a4ba069d174bedfa96c588fc2c96b083066fafa186851e563951d0de78181ac79c744c1ed28b51f9d82ac5b8196ff3e4560d0178046ef455d8c2244b - languageName: node - linkType: hard - "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" @@ -13873,13 +13801,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^5.0.0": - version: 5.0.0 - resolution: "webidl-conversions@npm:5.0.0" - checksum: 10c0/bf31df332ed11e1114bfcae7712d9ab2c37e7faa60ba32d8fdbee785937c0b012eee235c19d2b5d84f5072db84a160e8d08dd382da7f850feec26a4f46add8ff - languageName: node - linkType: hard - "whatwg-fetch@npm:^3.0.0": version: 3.6.20 resolution: "whatwg-fetch@npm:3.6.20" @@ -13887,14 +13808,10 @@ __metadata: languageName: node linkType: hard -"whatwg-url-without-unicode@npm:8.0.0-3": - version: 8.0.0-3 - resolution: "whatwg-url-without-unicode@npm:8.0.0-3" - dependencies: - buffer: "npm:^5.4.3" - punycode: "npm:^2.1.1" - webidl-conversions: "npm:^5.0.0" - checksum: 10c0/c27a637ab7d01981b2e2f576fde2113b9c42247500e093d2f5ba94b515d5c86dbcf70e5cad4b21b8813185f21fa1b4846f53c79fa87995293457e28c889cc0fd +"whatwg-url-minimum@npm:^0.1.1": + version: 0.1.1 + resolution: "whatwg-url-minimum@npm:0.1.1" + checksum: 10c0/0e10fa110a3f7292d3fe0192ac0d823ab83601c5e2c1817a6371df038a9e1790cabdb866b0e1e67967e11d9b0d0b8ad1c61511fea62771e9f5fbb48c54b71319 languageName: node linkType: hard @@ -13998,13 +13915,6 @@ __metadata: languageName: node linkType: hard -"wonka@npm:^6.3.2": - version: 6.3.5 - resolution: "wonka@npm:6.3.5" - checksum: 10c0/044fe5ae26c0a32b0a1603cc0ed71ede8c9febe5bb3adab4fad5e088ceee600a84a08d0deb95a72189bbaf0d510282d183b6fb7b6e9837e7a1c9b209f788dd07 - languageName: node - linkType: hard - "word-wrap@npm:^1.2.5": version: 1.2.5 resolution: "word-wrap@npm:1.2.5" @@ -14290,3 +14200,10 @@ __metadata: checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f languageName: node linkType: hard + +"zod@npm:^3.25.76": + version: 3.25.76 + resolution: "zod@npm:3.25.76" + checksum: 10c0/5718ec35e3c40b600316c5b4c5e4976f7fee68151bc8f8d90ec18a469be9571f072e1bbaace10f1e85cf8892ea12d90821b200e980ab46916a6166a4260a983c + languageName: node + linkType: hard