From c2382392f589e3e2964ac45f50022f17d039ac57 Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:26:52 +0100 Subject: [PATCH 1/8] bump RN patches --- ...0.77.1+022+disable-suggestion-pop-up.patch | 322 ------------------ ... => react-native+0.78.0+001+initial.patch} | 0 ...ct-native+0.78.0+002+fixMVCPAndroid.patch} | 0 ....78.0+003+disableTextInputRecycling.patch} | 0 ...native+0.78.0+004+iOSFontResolution.patch} | 8 +- ...+0.78.0+005+resetAutoresizingOnView.patch} | 0 ...+006+disableNonTranslucentStatusBar.patch} | 0 ...> react-native+0.78.0+007+TextInput.patch} | 27 +- ...008+iOSCoreAnimationBorderRendering.patch} | 0 ...-native+0.78.0+009+copyStateOnClone.patch} | 0 ...+0.78.0+010+textinput-clear-command.patch} | 0 ...0.78.0+011+Add-onPaste-to-TextInput.patch} | 54 +-- ...react-native+0.78.0+012+alert-style.patch} | 0 ...+0.78.0+013+fixNavigationAnimations.patch} | 0 ...ative+0.78.0+014+fixScrollViewState.patch} | 0 ...tive+0.78.0+015+redactAppParameters.patch} | 0 ...+016+android-keyboard-avoiding-view.patch} | 0 ...0+017+fix-mask-persisting-recycling.patch} | 0 ....0+018+fix-text-selecting-on-change.patch} | 8 +- ...ive+0.78.0+019+fix-scroll-view-jump.patch} | 0 ...-dropping-mutations-in-transactions.patch} | 18 +- ...021+fix-crash-when-deleting-expense.patch} | 0 ....0+022+dont-enable-height-centering.patch} | 0 23 files changed, 58 insertions(+), 379 deletions(-) delete mode 100644 patches/react-native+0.77.1+022+disable-suggestion-pop-up.patch rename patches/{react-native+0.77.1+001+initial.patch => react-native+0.78.0+001+initial.patch} (100%) rename patches/{react-native+0.77.1+002+fixMVCPAndroid.patch => react-native+0.78.0+002+fixMVCPAndroid.patch} (100%) rename patches/{react-native+0.77.1+003+disableTextInputRecycling.patch => react-native+0.78.0+003+disableTextInputRecycling.patch} (100%) rename patches/{react-native+0.77.1+004+iOSFontResolution.patch => react-native+0.78.0+004+iOSFontResolution.patch} (90%) rename patches/{react-native+0.77.1+005+resetAutoresizingOnView.patch => react-native+0.78.0+005+resetAutoresizingOnView.patch} (100%) rename patches/{react-native+0.77.1+006+disableNonTranslucentStatusBar.patch => react-native+0.78.0+006+disableNonTranslucentStatusBar.patch} (100%) rename patches/{react-native+0.77.1+007+TextInput.patch => react-native+0.78.0+007+TextInput.patch} (59%) rename patches/{react-native+0.77.1+008+iOSCoreAnimationBorderRendering.patch => react-native+0.78.0+008+iOSCoreAnimationBorderRendering.patch} (100%) rename patches/{react-native+0.77.1+009+copyStateOnClone.patch => react-native+0.78.0+009+copyStateOnClone.patch} (100%) rename patches/{react-native+0.77.1+010+textinput-clear-command.patch => react-native+0.78.0+010+textinput-clear-command.patch} (100%) rename patches/{react-native+0.77.1+011+Add-onPaste-to-TextInput.patch => react-native+0.78.0+011+Add-onPaste-to-TextInput.patch} (94%) rename patches/{react-native+0.77.1+012+alert-style.patch => react-native+0.78.0+012+alert-style.patch} (100%) rename patches/{react-native+0.77.1+013+fixNavigationAnimations.patch => react-native+0.78.0+013+fixNavigationAnimations.patch} (100%) rename patches/{react-native+0.77.1+014+fixScrollViewState.patch => react-native+0.78.0+014+fixScrollViewState.patch} (100%) rename patches/{react-native+0.77.1+015+redactAppParameters.patch => react-native+0.78.0+015+redactAppParameters.patch} (100%) rename patches/{react-native+0.77.1+016+android-keyboard-avoiding-view.patch => react-native+0.78.0+016+android-keyboard-avoiding-view.patch} (100%) rename patches/{react-native+0.77.1+017+fix-mask-persisting-recycling.patch => react-native+0.78.0+017+fix-mask-persisting-recycling.patch} (100%) rename patches/{react-native+0.77.1+018+fix-text-selecting-on-change.patch => react-native+0.78.0+018+fix-text-selecting-on-change.patch} (86%) rename patches/{react-native+0.77.1+019+fix-scroll-view-jump.patch => react-native+0.78.0+019+fix-scroll-view-jump.patch} (100%) rename patches/{react-native+0.77.1+020+fix-dropping-mutations-in-transactions.patch => react-native+0.78.0+020+fix-dropping-mutations-in-transactions.patch} (84%) rename patches/{react-native+0.77.1+021+fix-crash-when-deleting-expense.patch => react-native+0.78.0+021+fix-crash-when-deleting-expense.patch} (100%) rename patches/{react-native+0.77.1+023+dont-enable-height-centering.patch => react-native+0.78.0+022+dont-enable-height-centering.patch} (100%) diff --git a/patches/react-native+0.77.1+022+disable-suggestion-pop-up.patch b/patches/react-native+0.77.1+022+disable-suggestion-pop-up.patch deleted file mode 100644 index c9a9238a9510..000000000000 --- a/patches/react-native+0.77.1+022+disable-suggestion-pop-up.patch +++ /dev/null @@ -1,322 +0,0 @@ -diff --git a/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js b/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js -index 865ccb2..4bedac9 100644 ---- a/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js -+++ b/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js -@@ -170,6 +170,7 @@ const RCTTextInputViewConfig = { - onChangeSync: true, - onKeyPressSync: true, - }), -+ disableKeyboardShortcuts: true, - }, - }; - -diff --git a/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts b/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts -index 214ccc0..2112772 100644 ---- a/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts -+++ b/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts -@@ -136,6 +136,11 @@ export interface DocumentSelectionState extends EventEmitter { - * @see https://reactnative.dev/docs/textinput#props - */ - export interface TextInputIOSProps { -+ /** -+ * If true, the keyboard shortcuts (undo/redo and copy buttons) are disabled. The default value is false. -+ */ -+ disableKeyboardShortcuts?: boolean | undefined; -+ - /** - * enum('never', 'while-editing', 'unless-editing', 'always') - * When the clear button should appear on the right side of the text view -diff --git a/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js b/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js -index 64a5b99..2a7660c 100644 ---- a/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js -+++ b/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js -@@ -228,6 +228,12 @@ export type enterKeyHintType = - type PasswordRules = string; - - type IOSProps = $ReadOnly<{| -+ /** -+ * If true, the keyboard shortcuts (undo/redo and copy buttons) are disabled. The default value is false. -+ * @platform ios -+ */ -+ disableKeyboardShortcuts?: ?boolean, -+ - /** - * When the clear button should appear on the right side of the text view. - * This property is supported only for single-line TextInput component. -diff --git a/node_modules/react-native/Libraries/Components/TextInput/TextInput.js b/node_modules/react-native/Libraries/Components/TextInput/TextInput.js -index 0684516..a077ccc 100644 ---- a/node_modules/react-native/Libraries/Components/TextInput/TextInput.js -+++ b/node_modules/react-native/Libraries/Components/TextInput/TextInput.js -@@ -272,6 +272,12 @@ export type enterKeyHintType = - type PasswordRules = string; - - type IOSProps = $ReadOnly<{| -+ /** -+ * If true, the keyboard shortcuts (undo/redo and copy buttons) are disabled. The default value is false. -+ * @platform ios -+ */ -+ disableKeyboardShortcuts?: ?boolean, -+ - /** - * When the clear button should appear on the right side of the text view. - * This property is supported only for single-line TextInput component. -diff --git a/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.h b/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.h -index e176ff3..be946f8 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.h -+++ b/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.h -@@ -39,6 +39,8 @@ NS_ASSUME_NONNULL_BEGIN - @property (nonatomic, strong, nullable) NSString *inputAccessoryViewID; - @property (nonatomic, strong, nullable) NSString *inputAccessoryViewButtonLabel; - -+@property (nonatomic, assign) BOOL disableKeyboardShortcuts; -+ - @end - - NS_ASSUME_NONNULL_END -diff --git a/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm b/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm -index 065a819..b521dd9 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm -+++ b/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm -@@ -22,6 +22,8 @@ @implementation RCTUITextView { - UITextView *_detachedTextView; - RCTBackedTextViewDelegateAdapter *_textInputDelegateAdapter; - NSDictionary<NSAttributedStringKey, id> *_defaultTextAttributes; -+ NSArray<UIBarButtonItemGroup *> *_initialValueLeadingBarButtonGroups; -+ NSArray<UIBarButtonItemGroup *> *_initialValueTrailingBarButtonGroups; - } - - static UIFont *defaultPlaceholderFont(void) -@@ -56,6 +58,8 @@ - (instancetype)initWithFrame:(CGRect)frame - self.textContainer.lineFragmentPadding = 0; - self.scrollsToTop = NO; - self.scrollEnabled = YES; -+ _initialValueLeadingBarButtonGroups = nil; -+ _initialValueTrailingBarButtonGroups = nil; - } - - return self; -@@ -136,6 +140,25 @@ - (void)textDidChange - [self _invalidatePlaceholderVisibility]; - } - -+- (void)setDisableKeyboardShortcuts:(BOOL)disableKeyboardShortcuts -+{ -+ // Initialize the initial values only once -+ if (_initialValueLeadingBarButtonGroups == nil) { -+ // Capture initial values of leading and trailing button groups -+ _initialValueLeadingBarButtonGroups = self.inputAssistantItem.leadingBarButtonGroups; -+ _initialValueTrailingBarButtonGroups = self.inputAssistantItem.trailingBarButtonGroups; -+ } -+ -+ if (disableKeyboardShortcuts) { -+ self.inputAssistantItem.leadingBarButtonGroups = @[]; -+ self.inputAssistantItem.trailingBarButtonGroups = @[]; -+ } else { -+ // Restore the initial values -+ self.inputAssistantItem.leadingBarButtonGroups = _initialValueLeadingBarButtonGroups; -+ self.inputAssistantItem.trailingBarButtonGroups = _initialValueTrailingBarButtonGroups; -+ } -+} -+ - #pragma mark - Overrides - - - (void)setFont:(UIFont *)font -diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h -index e3df41a..1f1af7e 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h -+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h -@@ -52,6 +52,8 @@ NS_ASSUME_NONNULL_BEGIN - // Use `attributedText.string` instead. - @property (nonatomic, copy, nullable) NSString *text NS_UNAVAILABLE; - -+@property (nonatomic, assign) BOOL disableKeyboardShortcuts; -+ - @end - - NS_ASSUME_NONNULL_END -diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm -index 4d82c72..0d6f8aa 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm -+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm -@@ -30,6 +30,8 @@ @implementation RCTBaseTextInputView { - BOOL _hasInputAccessoryView; - NSString *_Nullable _predictedText; - BOOL _didMoveToWindow; -+ NSArray<UIBarButtonItemGroup *> *_initialValueLeadingBarButtonGroups; -+ NSArray<UIBarButtonItemGroup *> *_initialValueTrailingBarButtonGroups; - } - - - (void)reactUpdateResponderOffsetForScrollView:(RCTScrollView *)scrollView -@@ -65,6 +67,8 @@ - (instancetype)initWithBridge:(RCTBridge *)bridge - _bridge = bridge; - _eventDispatcher = bridge.eventDispatcher; - [self initializeReturnKeyType]; -+ _initialValueLeadingBarButtonGroups = nil; -+ _initialValueTrailingBarButtonGroups = nil; - } - - return self; -@@ -394,6 +398,25 @@ - (void)setInputAccessoryViewButtonLabel:(NSString *)inputAccessoryViewButtonLab - self.backedTextInputView.inputAccessoryViewButtonLabel = inputAccessoryViewButtonLabel; - } - -+- (void)setDisableKeyboardShortcuts:(BOOL)disableKeyboardShortcuts -+{ -+ // Initialize the initial values only once -+ if (_initialValueLeadingBarButtonGroups == nil) { -+ // Capture initial values of leading and trailing button groups -+ _initialValueLeadingBarButtonGroups = self.backedTextInputView.inputAssistantItem.leadingBarButtonGroups; -+ _initialValueTrailingBarButtonGroups = self.backedTextInputView.inputAssistantItem.trailingBarButtonGroups; -+ } -+ -+ if (disableKeyboardShortcuts) { -+ self.backedTextInputView.inputAssistantItem.leadingBarButtonGroups = @[]; -+ self.backedTextInputView.inputAssistantItem.trailingBarButtonGroups = @[]; -+ } else { -+ // Restore the initial values -+ self.backedTextInputView.inputAssistantItem.leadingBarButtonGroups = _initialValueLeadingBarButtonGroups; -+ self.backedTextInputView.inputAssistantItem.trailingBarButtonGroups = _initialValueTrailingBarButtonGroups; -+ } -+} -+ - #pragma mark - RCTBackedTextInputDelegate - - - (BOOL)textInputShouldBeginEditing -diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm -index ec05595..4b43542 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm -+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm -@@ -71,6 +71,8 @@ @implementation RCTBaseTextInputViewManager { - - RCT_EXPORT_VIEW_PROPERTY(mostRecentEventCount, NSInteger) - -+RCT_EXPORT_VIEW_PROPERTY(disableKeyboardShortcuts, BOOL) -+ - RCT_EXPORT_SHADOW_PROPERTY(text, NSString) - RCT_EXPORT_SHADOW_PROPERTY(placeholder, NSString) - RCT_EXPORT_SHADOW_PROPERTY(onContentSizeChange, RCTDirectEventBlock) -diff --git a/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.h b/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.h -index 13c0b22..fe6d957 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.h -+++ b/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.h -@@ -34,6 +34,7 @@ NS_ASSUME_NONNULL_BEGIN - @property (nonatomic, assign, readonly) CGFloat zoomScale; - @property (nonatomic, assign, readonly) CGPoint contentOffset; - @property (nonatomic, assign, readonly) UIEdgeInsets contentInset; -+@property (nonatomic, assign) BOOL disableKeyboardShortcuts; - - @end - -diff --git a/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm b/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm -index 667e646..617f05f 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm -+++ b/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm -@@ -19,6 +19,8 @@ - @implementation RCTUITextField { - RCTBackedTextFieldDelegateAdapter *_textInputDelegateAdapter; - NSDictionary<NSAttributedStringKey, id> *_defaultTextAttributes; -+ NSArray<UIBarButtonItemGroup *> *_initialValueLeadingBarButtonGroups; -+ NSArray<UIBarButtonItemGroup *> *_initialValueTrailingBarButtonGroups; - } - - - (instancetype)initWithFrame:(CGRect)frame -@@ -31,6 +33,8 @@ - (instancetype)initWithFrame:(CGRect)frame - - _textInputDelegateAdapter = [[RCTBackedTextFieldDelegateAdapter alloc] initWithTextField:self]; - _scrollEnabled = YES; -+ _initialValueLeadingBarButtonGroups = nil; -+ _initialValueTrailingBarButtonGroups = nil; - } - - return self; -@@ -119,6 +123,25 @@ - (void)setSecureTextEntry:(BOOL)secureTextEntry - self.attributedText = originalText; - } - -+- (void)setDisableKeyboardShortcuts:(BOOL)disableKeyboardShortcuts -+{ -+ // Initialize the initial values only once -+ if (_initialValueLeadingBarButtonGroups == nil) { -+ // Capture initial values of leading and trailing button groups -+ _initialValueLeadingBarButtonGroups = self.inputAssistantItem.leadingBarButtonGroups; -+ _initialValueTrailingBarButtonGroups = self.inputAssistantItem.trailingBarButtonGroups; -+ } -+ -+ if (disableKeyboardShortcuts) { -+ self.inputAssistantItem.leadingBarButtonGroups = @[]; -+ self.inputAssistantItem.trailingBarButtonGroups = @[]; -+ } else { -+ // Restore the initial values -+ self.inputAssistantItem.leadingBarButtonGroups = _initialValueLeadingBarButtonGroups; -+ self.inputAssistantItem.trailingBarButtonGroups = _initialValueTrailingBarButtonGroups; -+ } -+} -+ - #pragma mark - Placeholder - - - (NSDictionary<NSAttributedStringKey, id> *)_placeholderTextAttributes -diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm -index 91aff1a..673043c 100644 ---- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm -+++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm -@@ -290,6 +290,11 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & - _backedTextInputView.inputAccessoryViewButtonLabel = - RCTNSStringFromString(newTextInputProps.inputAccessoryViewButtonLabel); - } -+ -+ if (newTextInputProps.disableKeyboardShortcuts != oldTextInputProps.disableKeyboardShortcuts) { -+ _backedTextInputView.disableKeyboardShortcuts = newTextInputProps.disableKeyboardShortcuts; -+ } -+ - [super updateProps:props oldProps:oldProps]; - - [self setDefaultInputAccessoryView]; -diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm -index 2b0278d..6e562ad 100644 ---- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm -+++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm -@@ -45,6 +45,7 @@ void RCTCopyBackedTextInput( - toTextInput.textContentType = fromTextInput.textContentType; - toTextInput.smartInsertDeleteType = fromTextInput.smartInsertDeleteType; - toTextInput.passwordRules = fromTextInput.passwordRules; -+ toTextInput.disableKeyboardShortcuts = fromTextInput.disableKeyboardShortcuts; - - [toTextInput setSelectedTextRange:fromTextInput.selectedTextRange notifyDelegate:NO]; - } -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp -index 80cbdc5..5acaa45 100644 ---- a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp -@@ -103,6 +103,12 @@ BaseTextInputProps::BaseTextInputProps( - "autoCapitalize", - sourceProps.autoCapitalize, - {})), -+ disableKeyboardShortcuts(convertRawProp( -+ context, -+ rawProps, -+ "disableKeyboardShortcuts", -+ sourceProps.disableKeyboardShortcuts, -+ {false})), - editable(convertRawProp( - context, - rawProps, -@@ -204,6 +210,7 @@ void BaseTextInputProps::setProp( - RAW_SET_PROP_SWITCH_CASE_BASIC(text); - RAW_SET_PROP_SWITCH_CASE_BASIC(mostRecentEventCount); - RAW_SET_PROP_SWITCH_CASE_BASIC(autoCapitalize); -+ RAW_SET_PROP_SWITCH_CASE_BASIC(disableKeyboardShortcuts); - RAW_SET_PROP_SWITCH_CASE_BASIC(editable); - RAW_SET_PROP_SWITCH_CASE_BASIC(readOnly); - RAW_SET_PROP_SWITCH_CASE_BASIC(submitBehavior); -diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h -index 36c199b..3fb7fa5 100644 ---- a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h -+++ b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h -@@ -65,6 +65,7 @@ class BaseTextInputProps : public ViewProps, public BaseTextProps { - - std::string autoCapitalize{}; - -+ bool disableKeyboardShortcuts{false}; - bool editable{true}; - bool readOnly{false}; - diff --git a/patches/react-native+0.77.1+001+initial.patch b/patches/react-native+0.78.0+001+initial.patch similarity index 100% rename from patches/react-native+0.77.1+001+initial.patch rename to patches/react-native+0.78.0+001+initial.patch diff --git a/patches/react-native+0.77.1+002+fixMVCPAndroid.patch b/patches/react-native+0.78.0+002+fixMVCPAndroid.patch similarity index 100% rename from patches/react-native+0.77.1+002+fixMVCPAndroid.patch rename to patches/react-native+0.78.0+002+fixMVCPAndroid.patch diff --git a/patches/react-native+0.77.1+003+disableTextInputRecycling.patch b/patches/react-native+0.78.0+003+disableTextInputRecycling.patch similarity index 100% rename from patches/react-native+0.77.1+003+disableTextInputRecycling.patch rename to patches/react-native+0.78.0+003+disableTextInputRecycling.patch diff --git a/patches/react-native+0.77.1+004+iOSFontResolution.patch b/patches/react-native+0.78.0+004+iOSFontResolution.patch similarity index 90% rename from patches/react-native+0.77.1+004+iOSFontResolution.patch rename to patches/react-native+0.78.0+004+iOSFontResolution.patch index b91f31326456..defe6054d0f0 100644 --- a/patches/react-native+0.77.1+004+iOSFontResolution.patch +++ b/patches/react-native+0.78.0+004+iOSFontResolution.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm b/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm -index b086734..7d7f770 100644 +index b48a427..2470f20 100644 --- a/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +++ b/node_modules/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm @@ -38,9 +38,6 @@ static RCTFontProperties RCTResolveFontProperties( @@ -12,8 +12,8 @@ index b086734..7d7f770 100644 fontProperties.variant = fontProperties.variant != RCTFontVariantUndefined ? fontProperties.variant : baseFontProperties.variant; return fontProperties; -@@ -157,10 +154,14 @@ static RCTFontStyle RCTGetFontStyle(UIFont *font) - if ([fontProperties.family isEqualToString:defaultFontProperties.family]) { +@@ -179,10 +176,14 @@ UIFont *RCTFontWithFontProperties(RCTFontProperties fontProperties) + } else if ([fontProperties.family isEqualToString:defaultFontProperties.family]) { // Handle system font as special case. This ensures that we preserve // the specific metrics of the standard system font as closely as possible. + fontProperties.weight = !isnan(fontProperties.weight) ? fontProperties.weight : defaultFontProperties.weight; @@ -27,7 +27,7 @@ index b086734..7d7f770 100644 if (fontNames.count == 0) { // Gracefully handle being given a font name rather than font family, for -@@ -173,15 +174,18 @@ static RCTFontStyle RCTGetFontStyle(UIFont *font) +@@ -195,15 +196,18 @@ UIFont *RCTFontWithFontProperties(RCTFontProperties fontProperties) // Failback to system font. font = [UIFont systemFontOfSize:effectiveFontSize weight:fontProperties.weight]; } diff --git a/patches/react-native+0.77.1+005+resetAutoresizingOnView.patch b/patches/react-native+0.78.0+005+resetAutoresizingOnView.patch similarity index 100% rename from patches/react-native+0.77.1+005+resetAutoresizingOnView.patch rename to patches/react-native+0.78.0+005+resetAutoresizingOnView.patch diff --git a/patches/react-native+0.77.1+006+disableNonTranslucentStatusBar.patch b/patches/react-native+0.78.0+006+disableNonTranslucentStatusBar.patch similarity index 100% rename from patches/react-native+0.77.1+006+disableNonTranslucentStatusBar.patch rename to patches/react-native+0.78.0+006+disableNonTranslucentStatusBar.patch diff --git a/patches/react-native+0.77.1+007+TextInput.patch b/patches/react-native+0.78.0+007+TextInput.patch similarity index 59% rename from patches/react-native+0.77.1+007+TextInput.patch rename to patches/react-native+0.78.0+007+TextInput.patch index 3ec57e4bed90..4b26e70fe4de 100644 --- a/patches/react-native+0.77.1+007+TextInput.patch +++ b/patches/react-native+0.78.0+007+TextInput.patch @@ -1,20 +1,21 @@ - - (void)_setShowSoftInputOnFocus:(BOOL)showSoftInputOnFocus diff --git a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp -index 694b789..f1c148e 100644 +index d0b2b5b..6dea7a0 100644 --- a/node_modules/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +++ b/node_modules/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp -@@ -183,14 +183,6 @@ void AndroidTextInputShadowNode::updateStateIfNeeded() { - Size AndroidTextInputShadowNode::measureContent( - const LayoutContext& layoutContext, +@@ -31,16 +31,6 @@ Size AndroidTextInputShadowNode::measureContent( const LayoutConstraints& layoutConstraints) const { + auto textConstraints = getTextConstraints(layoutConstraints); + - if (getStateData().cachedAttributedStringId != 0) { -- return textLayoutManager_ -- ->measureCachedSpannableById( -- getStateData().cachedAttributedStringId, -- getConcreteProps().paragraphAttributes, -- layoutConstraints) -- .size; +- auto textSize = textLayoutManager_ +- ->measureCachedSpannableById( +- getStateData().cachedAttributedStringId, +- getConcreteProps().paragraphAttributes, +- textConstraints) +- .size; +- return layoutConstraints.clamp(textSize); - } - +- // Layout is called right after measure. - // Measure is marked as `const`, and `layout` is not; so State can be updated + // Measure is marked as `const`, and `layout` is not; so State can be + // updated during layout, but not during `measure`. If State is out-of-date diff --git a/patches/react-native+0.77.1+008+iOSCoreAnimationBorderRendering.patch b/patches/react-native+0.78.0+008+iOSCoreAnimationBorderRendering.patch similarity index 100% rename from patches/react-native+0.77.1+008+iOSCoreAnimationBorderRendering.patch rename to patches/react-native+0.78.0+008+iOSCoreAnimationBorderRendering.patch diff --git a/patches/react-native+0.77.1+009+copyStateOnClone.patch b/patches/react-native+0.78.0+009+copyStateOnClone.patch similarity index 100% rename from patches/react-native+0.77.1+009+copyStateOnClone.patch rename to patches/react-native+0.78.0+009+copyStateOnClone.patch diff --git a/patches/react-native+0.77.1+010+textinput-clear-command.patch b/patches/react-native+0.78.0+010+textinput-clear-command.patch similarity index 100% rename from patches/react-native+0.77.1+010+textinput-clear-command.patch rename to patches/react-native+0.78.0+010+textinput-clear-command.patch diff --git a/patches/react-native+0.77.1+011+Add-onPaste-to-TextInput.patch b/patches/react-native+0.78.0+011+Add-onPaste-to-TextInput.patch similarity index 94% rename from patches/react-native+0.77.1+011+Add-onPaste-to-TextInput.patch rename to patches/react-native+0.78.0+011+Add-onPaste-to-TextInput.patch index 0c95505a606f..47c2f291960d 100644 --- a/patches/react-native+0.77.1+011+Add-onPaste-to-TextInput.patch +++ b/patches/react-native+0.78.0+011+Add-onPaste-to-TextInput.patch @@ -43,7 +43,7 @@ index 6c4bbb2..770dfee 100644 disableFullscreenUI: true, includeFontPadding: true, diff --git a/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js b/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js -index 53d9349..865ccb2 100644 +index 27cd180..4bedac9 100644 --- a/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js +++ b/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js @@ -88,6 +88,9 @@ const RCTTextInputViewConfig = { @@ -65,10 +65,10 @@ index 53d9349..865ccb2 100644 onKeyPressSync: true, }), diff --git a/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts b/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts -index f7074aa..214ccc0 100644 +index 13a73e7..2112772 100644 --- a/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts +++ b/node_modules/react-native/Libraries/Components/TextInput/TextInput.d.ts -@@ -510,6 +510,16 @@ export interface TextInputSubmitEditingEventData { +@@ -515,6 +515,16 @@ export interface TextInputSubmitEditingEventData { text: string; } @@ -85,7 +85,7 @@ index f7074aa..214ccc0 100644 /** * @see https://reactnative.dev/docs/textinput#props */ -@@ -861,6 +871,13 @@ export interface TextInputProps +@@ -866,6 +876,13 @@ export interface TextInputProps | ((e: NativeSyntheticEvent<TextInputKeyPressEventData>) => void) | undefined; @@ -100,7 +100,7 @@ index f7074aa..214ccc0 100644 * The string that will be rendered before text input has been entered */ diff --git a/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js b/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js -index b61fe39..64a5b99 100644 +index faee19f..220eb99 100644 --- a/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js +++ b/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js @@ -93,6 +93,18 @@ export type EditingEvent = SyntheticEvent< @@ -122,7 +122,7 @@ index b61fe39..64a5b99 100644 type DataDetectorTypesType = | 'phoneNumber' | 'link' -@@ -833,6 +845,11 @@ export type Props = $ReadOnly<{| +@@ -839,6 +851,11 @@ export type Props = $ReadOnly<{| */ onScroll?: ?(e: ScrollEvent) => mixed, @@ -135,7 +135,7 @@ index b61fe39..64a5b99 100644 * The string that will be rendered before text input has been entered. */ diff --git a/node_modules/react-native/Libraries/Components/TextInput/TextInput.js b/node_modules/react-native/Libraries/Components/TextInput/TextInput.js -index 0107e78..0684516 100644 +index aa49725..636bb80 100644 --- a/node_modules/react-native/Libraries/Components/TextInput/TextInput.js +++ b/node_modules/react-native/Libraries/Components/TextInput/TextInput.js @@ -134,6 +134,18 @@ export type EditingEvent = SyntheticEvent< @@ -157,7 +157,7 @@ index 0107e78..0684516 100644 type DataDetectorTypesType = | 'phoneNumber' | 'link' -@@ -836,6 +848,11 @@ export type Props = $ReadOnly<{| +@@ -842,6 +854,11 @@ export type Props = $ReadOnly<{| */ onScroll?: ?(e: ScrollEvent) => mixed, @@ -170,7 +170,7 @@ index 0107e78..0684516 100644 * The string that will be rendered before text input has been entered. */ diff --git a/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm b/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm -index d5e2e22..065a819 100644 +index 565b0f6..f6670fd 100644 --- a/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +++ b/node_modules/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm @@ -13,6 +13,10 @@ @@ -184,7 +184,7 @@ index d5e2e22..065a819 100644 @implementation RCTUITextView { UILabel *_placeholderView; UITextView *_detachedTextView; -@@ -172,7 +176,31 @@ - (void)scrollRangeToVisible:(NSRange)range +@@ -198,7 +202,31 @@ static UIColor *defaultPlaceholderColor(void) - (void)paste:(id)sender { _textWasPasted = YES; @@ -217,7 +217,7 @@ index d5e2e22..065a819 100644 } // Turn off scroll animation to fix flaky scrolling. -@@ -264,6 +292,10 @@ - (BOOL)canPerformAction:(SEL)action withSender:(id)sender +@@ -290,6 +318,10 @@ static UIColor *defaultPlaceholderColor(void) return NO; } @@ -265,7 +265,7 @@ diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInp index ac8e464..2b91802 100644 --- a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm -@@ -147,6 +147,11 @@ - (void)selectedTextRangeWasSet +@@ -147,6 +147,11 @@ static void *TextFieldSelectionObservingContext = &TextFieldSelectionObservingCo [self textFieldProbablyDidChangeSelection]; } @@ -277,7 +277,7 @@ index ac8e464..2b91802 100644 #pragma mark - Generalization - (void)textFieldProbablyDidChangeSelection -@@ -292,6 +297,11 @@ - (void)skipNextTextInputDidChangeSelectionEventWithTextRange:(UITextRange *)tex +@@ -292,6 +297,11 @@ static void *TextFieldSelectionObservingContext = &TextFieldSelectionObservingCo _previousSelectedTextRange = textRange; } @@ -302,10 +302,10 @@ index 4804624..90b7081 100644 @property (nonatomic, assign) NSInteger mostRecentEventCount; @property (nonatomic, assign, readonly) NSInteger nativeEventCount; diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm -index 95edfd5..5111bda 100644 +index 6a2d4f8..b6e6060 100644 --- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm +++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputView.mm -@@ -574,6 +574,26 @@ - (void)textInputDidChangeSelection +@@ -599,6 +599,26 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame) }); } @@ -333,10 +333,10 @@ index 95edfd5..5111bda 100644 { [self enforceTextAttributesIfNeeded]; diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm -index db7c519..ec05595 100644 +index 93f8129..4b43542 100644 --- a/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm -@@ -67,6 +67,7 @@ @implementation RCTBaseTextInputViewManager { +@@ -67,6 +67,7 @@ RCT_EXPORT_VIEW_PROPERTY(onClear, RCTDirectEventBlock) RCT_EXPORT_VIEW_PROPERTY(onChangeSync, RCTDirectEventBlock) RCT_EXPORT_VIEW_PROPERTY(onSelectionChange, RCTDirectEventBlock) RCT_EXPORT_VIEW_PROPERTY(onScroll, RCTDirectEventBlock) @@ -345,7 +345,7 @@ index db7c519..ec05595 100644 RCT_EXPORT_VIEW_PROPERTY(mostRecentEventCount, NSInteger) diff --git a/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm b/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm -index 0318671..667e646 100644 +index 338a1f4..a3df02a 100644 --- a/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +++ b/node_modules/react-native/Libraries/Text/TextInput/Singleline/RCTUITextField.mm @@ -12,6 +12,10 @@ @@ -359,7 +359,7 @@ index 0318671..667e646 100644 @implementation RCTUITextField { RCTBackedTextFieldDelegateAdapter *_textInputDelegateAdapter; NSDictionary<NSAttributedStringKey, id> *_defaultTextAttributes; -@@ -139,6 +143,10 @@ - (BOOL)canPerformAction:(SEL)action withSender:(id)sender +@@ -165,6 +169,10 @@ return NO; } @@ -370,7 +370,7 @@ index 0318671..667e646 100644 return [super canPerformAction:action withSender:sender]; } -@@ -222,7 +230,31 @@ - (void)scrollRangeToVisible:(NSRange)range +@@ -248,7 +256,31 @@ - (void)paste:(id)sender { _textWasPasted = YES; @@ -404,10 +404,10 @@ index 0318671..667e646 100644 #pragma mark - Layout diff --git a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm -index f8358ed..91aff1a 100644 +index d3170c7..6c038a8 100644 --- a/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +++ b/node_modules/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm -@@ -481,6 +481,13 @@ - (void)textInputDidChangeSelection +@@ -486,6 +486,13 @@ static NSSet<NSNumber *> *returnKeyTypesSet; } } @@ -445,7 +445,7 @@ index 0000000..bfb5819 + public void onPaste(String type, String data); +} diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java -index 56a1069..272ea7d 100644 +index a037077..150fc6c 100644 --- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java @@ -9,6 +9,10 @@ package com.facebook.react.views.textinput; @@ -467,7 +467,7 @@ index 56a1069..272ea7d 100644 import android.os.Build; import android.os.Bundle; import android.text.Editable; -@@ -122,6 +127,7 @@ public class ReactEditText extends AppCompatEditText { +@@ -120,6 +125,7 @@ public class ReactEditText extends AppCompatEditText { private @Nullable SelectionWatcher mSelectionWatcher; private @Nullable ContentSizeWatcher mContentSizeWatcher; private @Nullable ScrollWatcher mScrollWatcher; @@ -475,7 +475,7 @@ index 56a1069..272ea7d 100644 private InternalKeyListener mKeyListener; private boolean mDetectScrollMovement = false; private boolean mOnKeyPress = false; -@@ -165,6 +171,7 @@ public class ReactEditText extends AppCompatEditText { +@@ -163,6 +169,7 @@ public class ReactEditText extends AppCompatEditText { mKeyListener = new InternalKeyListener(); } mScrollWatcher = null; @@ -483,7 +483,7 @@ index 56a1069..272ea7d 100644 mTextAttributes = new TextAttributes(); applyTextAttributes(); -@@ -332,8 +339,29 @@ public class ReactEditText extends AppCompatEditText { +@@ -330,8 +337,29 @@ public class ReactEditText extends AppCompatEditText { */ @Override public boolean onTextContextMenuItem(int id) { @@ -514,7 +514,7 @@ index 56a1069..272ea7d 100644 } return super.onTextContextMenuItem(id); } -@@ -395,6 +423,10 @@ public class ReactEditText extends AppCompatEditText { +@@ -393,6 +421,10 @@ public class ReactEditText extends AppCompatEditText { mScrollWatcher = scrollWatcher; } diff --git a/patches/react-native+0.77.1+012+alert-style.patch b/patches/react-native+0.78.0+012+alert-style.patch similarity index 100% rename from patches/react-native+0.77.1+012+alert-style.patch rename to patches/react-native+0.78.0+012+alert-style.patch diff --git a/patches/react-native+0.77.1+013+fixNavigationAnimations.patch b/patches/react-native+0.78.0+013+fixNavigationAnimations.patch similarity index 100% rename from patches/react-native+0.77.1+013+fixNavigationAnimations.patch rename to patches/react-native+0.78.0+013+fixNavigationAnimations.patch diff --git a/patches/react-native+0.77.1+014+fixScrollViewState.patch b/patches/react-native+0.78.0+014+fixScrollViewState.patch similarity index 100% rename from patches/react-native+0.77.1+014+fixScrollViewState.patch rename to patches/react-native+0.78.0+014+fixScrollViewState.patch diff --git a/patches/react-native+0.77.1+015+redactAppParameters.patch b/patches/react-native+0.78.0+015+redactAppParameters.patch similarity index 100% rename from patches/react-native+0.77.1+015+redactAppParameters.patch rename to patches/react-native+0.78.0+015+redactAppParameters.patch diff --git a/patches/react-native+0.77.1+016+android-keyboard-avoiding-view.patch b/patches/react-native+0.78.0+016+android-keyboard-avoiding-view.patch similarity index 100% rename from patches/react-native+0.77.1+016+android-keyboard-avoiding-view.patch rename to patches/react-native+0.78.0+016+android-keyboard-avoiding-view.patch diff --git a/patches/react-native+0.77.1+017+fix-mask-persisting-recycling.patch b/patches/react-native+0.78.0+017+fix-mask-persisting-recycling.patch similarity index 100% rename from patches/react-native+0.77.1+017+fix-mask-persisting-recycling.patch rename to patches/react-native+0.78.0+017+fix-mask-persisting-recycling.patch diff --git a/patches/react-native+0.77.1+018+fix-text-selecting-on-change.patch b/patches/react-native+0.78.0+018+fix-text-selecting-on-change.patch similarity index 86% rename from patches/react-native+0.77.1+018+fix-text-selecting-on-change.patch rename to patches/react-native+0.78.0+018+fix-text-selecting-on-change.patch index 80dafbfaed58..555cd7b2f9c0 100644 --- a/patches/react-native+0.77.1+018+fix-text-selecting-on-change.patch +++ b/patches/react-native+0.78.0+018+fix-text-selecting-on-change.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java -index 272ea7d..840b5f5 100644 +index 150fc6c..58a97eb 100644 --- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java -@@ -140,6 +140,7 @@ public class ReactEditText extends AppCompatEditText { +@@ -138,6 +138,7 @@ public class ReactEditText extends AppCompatEditText { private boolean mContextMenuHidden = false; private boolean mDidAttachToWindow = false; private boolean mSelectTextOnFocus = false; @@ -10,7 +10,7 @@ index 272ea7d..840b5f5 100644 private @Nullable String mPlaceholder = null; private Overflow mOverflow = Overflow.VISIBLE; -@@ -257,11 +258,11 @@ public class ReactEditText extends AppCompatEditText { +@@ -255,11 +256,11 @@ public class ReactEditText extends AppCompatEditText { @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { onContentSizeChange(); @@ -24,7 +24,7 @@ index 272ea7d..840b5f5 100644 } } -@@ -390,6 +391,7 @@ public class ReactEditText extends AppCompatEditText { +@@ -388,6 +389,7 @@ public class ReactEditText extends AppCompatEditText { if (getShowSoftInputOnFocus()) { showSoftKeyboard(); } diff --git a/patches/react-native+0.77.1+019+fix-scroll-view-jump.patch b/patches/react-native+0.78.0+019+fix-scroll-view-jump.patch similarity index 100% rename from patches/react-native+0.77.1+019+fix-scroll-view-jump.patch rename to patches/react-native+0.78.0+019+fix-scroll-view-jump.patch diff --git a/patches/react-native+0.77.1+020+fix-dropping-mutations-in-transactions.patch b/patches/react-native+0.78.0+020+fix-dropping-mutations-in-transactions.patch similarity index 84% rename from patches/react-native+0.77.1+020+fix-dropping-mutations-in-transactions.patch rename to patches/react-native+0.78.0+020+fix-dropping-mutations-in-transactions.patch index c1a5fed2af1f..96a7004572b2 100644 --- a/patches/react-native+0.77.1+020+fix-dropping-mutations-in-transactions.patch +++ b/patches/react-native+0.78.0+020+fix-dropping-mutations-in-transactions.patch @@ -1,16 +1,16 @@ diff --git a/node_modules/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp b/node_modules/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp -index ebe6f1d..0d9897b 100644 +index 6d781dc..21d4845 100644 --- a/node_modules/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +++ b/node_modules/react-native/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp -@@ -543,7 +543,7 @@ void FabricUIManagerBinding::schedulerDidFinishTransaction( - mountingTransaction->getSurfaceId(); - }); +@@ -511,7 +511,7 @@ void FabricUIManagerBinding::schedulerDidFinishTransaction( + mountingTransaction->getSurfaceId(); + }); -- if (pendingTransaction != pendingTransactions_.end()) { -+ if (pendingTransaction != pendingTransactions_.end() && pendingTransaction->canMergeWith(*mountingTransaction)) { - pendingTransaction->mergeWith(std::move(*mountingTransaction)); - } else { - pendingTransactions_.push_back(std::move(*mountingTransaction)); +- if (pendingTransaction != pendingTransactions_.end()) { ++ if (pendingTransaction != pendingTransactions_.end() && pendingTransaction->canMergeWith(*mountingTransaction)) { + pendingTransaction->mergeWith(std::move(*mountingTransaction)); + } else { + pendingTransactions_.push_back(std::move(*mountingTransaction)); diff --git a/node_modules/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.cpp b/node_modules/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.cpp index d7dd1bc..d95d779 100644 --- a/node_modules/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.cpp diff --git a/patches/react-native+0.77.1+021+fix-crash-when-deleting-expense.patch b/patches/react-native+0.78.0+021+fix-crash-when-deleting-expense.patch similarity index 100% rename from patches/react-native+0.77.1+021+fix-crash-when-deleting-expense.patch rename to patches/react-native+0.78.0+021+fix-crash-when-deleting-expense.patch diff --git a/patches/react-native+0.77.1+023+dont-enable-height-centering.patch b/patches/react-native+0.78.0+022+dont-enable-height-centering.patch similarity index 100% rename from patches/react-native+0.77.1+023+dont-enable-height-centering.patch rename to patches/react-native+0.78.0+022+dont-enable-height-centering.patch From f1f4a8e61647591291c8a74c6b4e6fcbe91b6c07 Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:27:24 +0100 Subject: [PATCH 2/8] follow upgrade helper --- android/app/build.gradle | 4 ++-- android/gradle/wrapper/gradle-wrapper.properties | 2 +- android/gradlew | 4 ++-- package.json | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 49fcdbb4fa68..7982154f306b 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -89,14 +89,14 @@ def enableProguardInReleaseBuilds = true * The preferred build flavor of JavaScriptCore (JSC) * * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * `def jscFlavor = 'io.github.react-native-community:jsc-android-intl:2026004.+` * * The international variant includes ICU i18n library and necessary data * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that * give correct results when using with locales other than en-US. Note that * this variant is about 6MiB larger per architecture than default. */ -def jscFlavor = 'org.webkit:android-jsc:+' +def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+' android { androidResources { diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 79eb9d003fea..e0fd02028bca 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/android/gradlew b/android/gradlew index f5feea6d6b11..786141ff3f67 100755 --- a/android/gradlew +++ b/android/gradlew @@ -86,8 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit + +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/package.json b/package.json index 44c75a6b2081..273f6f79fa71 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,7 @@ "pako": "^2.1.0", "process": "^0.11.10", "pusher-js": "8.3.0", - "react": "18.3.1", + "react": "19.0.0", "react-beautiful-dnd": "^13.1.1", "react-collapse": "^5.1.0", "react-content-loader": "^7.0.0", @@ -149,7 +149,7 @@ "react-error-boundary": "^4.0.11", "react-fast-pdf": "^1.0.26", "react-map-gl": "^7.1.3", - "react-native": "0.77.1", + "react-native": "0.78.0", "react-native-advanced-input-mask": "1.3.1", "react-native-android-location-enabler": "^2.0.1", "react-native-app-logs": "0.3.1", @@ -236,8 +236,8 @@ "@react-native-community/cli-platform-android": "15.0.1", "@react-native-community/cli-platform-ios": "15.0.1", "@react-native-community/eslint-config": "3.2.0", - "@react-native/babel-preset": "0.77.1", - "@react-native/metro-config": "0.77.1", + "@react-native/babel-preset": "0.78.0", + "@react-native/metro-config": "0.78.0", "@react-navigation/devtools": "^6.0.10", "@storybook/addon-a11y": "^8.1.10", "@storybook/addon-essentials": "^8.1.10", @@ -261,13 +261,13 @@ "@types/mime-db": "^1.43.5", "@types/node": "^20.11.5", "@types/pusher-js": "^5.1.0", - "@types/react": "^18.2.6", + "@types/react": "^19.0.0", "@types/react-beautiful-dnd": "^13.1.4", "@types/react-collapse": "^5.0.1", "@types/react-dom": "^18.2.4", "@types/react-is": "^18.3.0", "@types/react-native-web": "^0.0.0", - "@types/react-test-renderer": "^18.0.0", + "@types/react-test-renderer": "19.0.0", "@types/semver": "^7.5.4", "@types/setimmediate": "^1.0.2", "@types/webpack": "^5.28.5", From 7ef7fccbeb959d98d8e25a37cc635334fc434195 Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:49:17 +0100 Subject: [PATCH 3/8] update gesture handler --- ...tch => react-native-gesture-handler+2.24.0+001+fixTests.patch} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename patches/{react-native-gesture-handler+2.22.0+001+fixTests.patch => react-native-gesture-handler+2.24.0+001+fixTests.patch} (100%) diff --git a/patches/react-native-gesture-handler+2.22.0+001+fixTests.patch b/patches/react-native-gesture-handler+2.24.0+001+fixTests.patch similarity index 100% rename from patches/react-native-gesture-handler+2.22.0+001+fixTests.patch rename to patches/react-native-gesture-handler+2.24.0+001+fixTests.patch From 5b8df7d3e930afcd73f9eceea546fa139fdda250 Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Fri, 28 Feb 2025 10:33:02 +0100 Subject: [PATCH 4/8] migrate rest of patches --- package-lock.json | 739 +++++++++++------- package.json | 16 +- ... @react-native+gradle-plugin+0.78.0.patch} | 0 ...lized-lists+0.77.1+001+onStartReched.patch | 32 - ...ed-lists+0.78.0+001+osr-improvement.patch} | 0 ...ch => expo-asset+11.0.4+002+initial.patch} | 0 6 files changed, 468 insertions(+), 319 deletions(-) rename patches/{@react-native+gradle-plugin+0.77.1.patch => @react-native+gradle-plugin+0.78.0.patch} (100%) delete mode 100644 patches/@react-native+virtualized-lists+0.77.1+001+onStartReched.patch rename patches/{@react-native+virtualized-lists+0.77.1+002+osr-improvement.patch => @react-native+virtualized-lists+0.78.0+001+osr-improvement.patch} (100%) rename patches/{expo-asset+11.0.2+002+initial.patch => expo-asset+11.0.4+002+initial.patch} (100%) diff --git a/package-lock.json b/package-lock.json index a3d8ddd7fa4e..e573295fee59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,15 +74,15 @@ "pako": "^2.1.0", "process": "^0.11.10", "pusher-js": "8.3.0", - "react": "18.3.1", + "react": "19.0.0", "react-beautiful-dnd": "^13.1.1", "react-collapse": "^5.1.0", "react-content-loader": "^7.0.0", - "react-dom": "18.3.1", + "react-dom": "19.0.0", "react-error-boundary": "^4.0.11", "react-fast-pdf": "^1.0.26", "react-map-gl": "^7.1.3", - "react-native": "0.77.1", + "react-native": "0.78.0", "react-native-advanced-input-mask": "1.3.1", "react-native-android-location-enabler": "^2.0.1", "react-native-app-logs": "0.3.1", @@ -93,7 +93,7 @@ "react-native-document-picker": "^9.3.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", - "react-native-gesture-handler": "2.22.0", + "react-native-gesture-handler": "2.24.0", "react-native-google-places-autocomplete": "2.5.6", "react-native-haptic-feedback": "^2.3.3", "react-native-image-picker": "^7.1.2", @@ -169,8 +169,8 @@ "@react-native-community/cli-platform-android": "15.0.1", "@react-native-community/cli-platform-ios": "15.0.1", "@react-native-community/eslint-config": "3.2.0", - "@react-native/babel-preset": "0.77.1", - "@react-native/metro-config": "0.77.1", + "@react-native/babel-preset": "0.78.0", + "@react-native/metro-config": "0.78.0", "@react-navigation/devtools": "^6.0.10", "@storybook/addon-a11y": "^8.1.10", "@storybook/addon-essentials": "^8.1.10", @@ -194,13 +194,13 @@ "@types/mime-db": "^1.43.5", "@types/node": "^20.11.5", "@types/pusher-js": "^5.1.0", - "@types/react": "^18.2.6", + "@types/react": "^19.0.0", "@types/react-beautiful-dnd": "^13.1.4", "@types/react-collapse": "^5.0.1", - "@types/react-dom": "^18.2.4", + "@types/react-dom": "^19.0.0", "@types/react-is": "^18.3.0", "@types/react-native-web": "^0.0.0", - "@types/react-test-renderer": "^18.0.0", + "@types/react-test-renderer": "19.0.0", "@types/semver": "^7.5.4", "@types/setimmediate": "^1.0.2", "@types/webpack": "^5.28.5", @@ -209,7 +209,7 @@ "@typescript-eslint/parser": "^7.13.1", "@vercel/ncc": "0.38.1", "@vue/preload-webpack-plugin": "^2.0.0", - "@welldone-software/why-did-you-render": "7.0.1", + "@welldone-software/why-did-you-render": "10.0.1", "ajv-cli": "^5.0.0", "babel-jest": "29.4.1", "babel-loader": "^9.1.3", @@ -263,13 +263,13 @@ "react-is": "^18.3.1", "react-native-clean-project": "^4.0.0-alpha4.0", "react-refresh": "^0.14.2", - "react-test-renderer": "18.3.1", + "react-test-renderer": "19.0.0", "reassure": "^1.0.0-rc.4", "semver": "7.5.2", "setimmediate": "^1.0.5", "shellcheck": "^1.1.0", "source-map": "^0.7.4", - "storybook": "^8.4.0", + "storybook": "^8.6.1", "style-loader": "^2.0.0", "time-analytics-webpack-plugin": "^0.1.17", "ts-jest": "^29.1.2", @@ -4240,15 +4240,15 @@ } }, "node_modules/@expo/config": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.8.tgz", - "integrity": "sha512-RaKwi8e6PbkMilRexdsxObLMdQwxhY6mlgel+l/eW+IfIw8HEydSU0ERlzYUjlGJxHLHUXe4rC2vw8FEvaowyQ==", + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.10.tgz", + "integrity": "sha512-wI9/iam3Irk99ADGM/FyD7YrrEibIZXR4huSZiU5zt9o3dASOKhqepiNJex4YPiktLfKhYrpSEJtwno1g0SrgA==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~9.0.14", - "@expo/config-types": "^52.0.3", - "@expo/json-file": "^9.0.1", + "@expo/config-plugins": "~9.0.15", + "@expo/config-types": "^52.0.4", + "@expo/json-file": "^9.0.2", "deepmerge": "^4.3.1", "getenv": "^1.0.0", "glob": "^10.4.2", @@ -4261,14 +4261,14 @@ } }, "node_modules/@expo/config-plugins": { - "version": "9.0.14", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.14.tgz", - "integrity": "sha512-Lx1ebV95rTFKKQmbu4wMPLz65rKn7mqSpfANdCx+KwRxuLY2JQls8V4h3lQjG6dW8NWf9qV5QaEFAgNB6VMyOQ==", + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.16.tgz", + "integrity": "sha512-AnJzmFB7ztM0JZBn+Ut6BQYC2WeGDzfIhBZVOIPMQbdBqvwJ7TmFEsGTGSxdwU/VqJaJK2sWxyt1zbWkpIYCEA==", "license": "MIT", "dependencies": { - "@expo/config-types": "^52.0.3", - "@expo/json-file": "~9.0.1", - "@expo/plist": "^0.2.1", + "@expo/config-types": "^52.0.5", + "@expo/json-file": "~9.0.2", + "@expo/plist": "^0.2.2", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", @@ -4418,9 +4418,9 @@ } }, "node_modules/@expo/config-types": { - "version": "52.0.3", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.3.tgz", - "integrity": "sha512-muxvuARmbysH5OGaiBRlh1Y6vfdmL56JtpXxB+y2Hfhu0ezG1U4FjZYBIacthckZPvnDCcP3xIu1R+eTo7/QFA==", + "version": "52.0.5", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.5.tgz", + "integrity": "sha512-AMDeuDLHXXqd8W+0zSjIt7f37vUd/BP8p43k68NHpyAvQO+z8mbQZm3cNQVAMySeayK2XoPigAFB1JF2NFajaA==", "license": "MIT" }, "node_modules/@expo/config/node_modules/@babel/code-frame": { @@ -4611,9 +4611,9 @@ } }, "node_modules/@expo/env": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.1.tgz", - "integrity": "sha512-oDtbO3i9yXD1nx93acWiPTWGljJ3vABn35x1NAbqtQ2JL6mFOcRcArt1dwi4imZyLnG4VCcjabT9irj+LgYntw==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.2.tgz", + "integrity": "sha512-TgbCgvSk0Kq0e2fLoqHwEBL4M0ztFjnBEz0YCDm5boc1nvkV1VMuIMteVdeBwnTh8Z0oPJTwHCD49vhMEt1I6A==", "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -4803,9 +4803,9 @@ } }, "node_modules/@expo/image-utils": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.6.4.tgz", - "integrity": "sha512-L++1PBzSvf5iYc6UHJ8Db8GcYNkfLDw+a+zqEFBQ3xqRXP/muxb/O7wuiMFlXrj/cfkx4e0U+z1a4ceV0A7S7Q==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.6.5.tgz", + "integrity": "sha512-RsS/1CwJYzccvlprYktD42KjyfWZECH6PPIEowvoSmXfGLfdViwcUEI4RvBfKX5Jli6P67H+6YmHvPTbGOboew==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -4927,9 +4927,9 @@ } }, "node_modules/@expo/json-file": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.1.tgz", - "integrity": "sha512-ZVPhbbEBEwafPCJ0+kI25O2Iivt3XKHEKAADCml1q2cmOIbQnKgLyn8DpOJXqWEyRQr/VWS+hflBh8DU2YFSqg==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.2.tgz", + "integrity": "sha512-yAznIUrybOIWp3Uax7yRflB0xsEpvIwIEqIjao9SGi2Gaa+N0OamWfe0fnXBSWF+2zzF4VvqwT4W5zwelchfgw==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", @@ -5453,9 +5453,9 @@ } }, "node_modules/@expo/plist": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.1.tgz", - "integrity": "sha512-9TaXGuNxa0LQwHQn4rYiU6YaERv6dPnQgsdKWq2rKKTr6LWOtGNQCi/yOk/HBLeZSxBm59APT5/6x60uRvr0Mg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.2.tgz", + "integrity": "sha512-ZZGvTO6vEWq02UAPs3LIdja+HRO18+LRI5QuDl6Hs3Ps7KX7xU6Y6kjahWKY37Rx2YjNpX07dGpBFzzC+vKa2g==", "license": "MIT", "dependencies": { "@xmldom/xmldom": "~0.7.7", @@ -7155,6 +7155,8 @@ }, "node_modules/@jsamr/react-native-li": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@jsamr/react-native-li/-/react-native-li-2.3.1.tgz", + "integrity": "sha512-Qbo4NEj48SQ4k8FZJHFE2fgZDKTWaUGmVxcIQh3msg5JezLdTMMHuRRDYctfdHI6L0FZGObmEv3haWbIvmol8w==", "license": "MIT", "peerDependencies": { "@jsamr/counter-style": "^1.0.0 || ^2.0.0", @@ -7505,6 +7507,8 @@ }, "node_modules/@native-html/css-processor": { "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@native-html/css-processor/-/css-processor-1.11.0.tgz", + "integrity": "sha512-NnhBEbJX5M2gBGltPKOetiLlKhNf3OHdRafc8//e2ZQxXN8JaSW/Hy8cm94pnIckQxwaMKxrtaNT3x4ZcffoNQ==", "license": "MIT", "dependencies": { "css-to-react-native": "^3.0.0", @@ -7515,6 +7519,32 @@ "@types/react-native": "*" } }, + "node_modules/@native-html/transient-render-engine": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@native-html/transient-render-engine/-/transient-render-engine-11.2.2.tgz", + "integrity": "sha512-z0LgQStGJf4gCIeuD8oJiPbk+sUEQ9FOzHlDWwK+uVam+1Q5mmh6PqblCdTCP3IRGBtPLzMM0VZ9njm1TEvb8Q==", + "license": "MIT", + "dependencies": { + "@native-html/css-processor": "1.11.0", + "@types/ramda": "^0.27.44", + "csstype": "^3.0.9", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "htmlparser2": "^7.1.2", + "ramda": "^0.27.1" + }, + "peerDependencies": { + "@types/react-native": "*", + "react-native": "^*" + } + }, + "node_modules/@native-html/transient-render-engine/node_modules/ramda": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", + "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", + "license": "MIT" + }, "node_modules/@ngneat/falso": { "version": "7.1.1", "dev": true, @@ -8072,6 +8102,32 @@ } } }, + "node_modules/@radix-ui/react-dialog/node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.0", "dev": true, @@ -10164,22 +10220,22 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.77.1.tgz", - "integrity": "sha512-bAQHOgqGZnF6xdYE9sJrbZ7F65Z25yLi9yWps8vOByKtj0b+f3FJhsU3Mcfy1uWvelpNEGebOLQf+WEPiwGrkw==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.78.0.tgz", + "integrity": "sha512-PPHlTRuP9litTYkbFNkwveQFto3I94QRWPBBARU0cH/4ks4EkfCfb/Pdb3AHgtJi58QthSHKFvKTQnAWyHPs7w==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.77.1.tgz", - "integrity": "sha512-NmmAJHMTtA6gjHRE1FvO+Jvbp0ekonANcK2IYOyqK6nLj7hhtdiMlZaUDsRi17SGHYY4X4hj6UH2nm6LfD1RLg==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.78.0.tgz", + "integrity": "sha512-+Sy9Uine0QAbQRxMl6kBlkzKW0qHQk8hghCoKswRWt1ZfxaMA3rezobD5mtSwt/Yhadds9cGbMFWfFJM3Tynsg==", "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.3", - "@react-native/codegen": "0.77.1" + "@react-native/codegen": "0.78.0" }, "engines": { "node": ">=18" @@ -10204,9 +10260,9 @@ } }, "node_modules/@react-native/babel-preset": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.77.1.tgz", - "integrity": "sha512-7eTOcMaZwvPllzZhT5fjcDNysjP54GtEbdXVxO2u5sPXWYriPL3UKuDIzIdhjxil8GtZs6+UvLNoKTateFt19Q==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.78.0.tgz", + "integrity": "sha512-q44ZbR0JXdPvNrjNw75VmiVXXoJhZIx8dTUBVgnZx/UHBQuhPu0e8pAuo56E2mZVkF7FK0s087/Zji8n5OSxbQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -10250,7 +10306,7 @@ "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", - "@react-native/babel-plugin-codegen": "0.77.1", + "@react-native/babel-plugin-codegen": "0.78.0", "babel-plugin-syntax-hermes-parser": "0.25.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" @@ -10263,9 +10319,9 @@ } }, "node_modules/@react-native/codegen": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.77.1.tgz", - "integrity": "sha512-cCUbkUewMjiK94Z2+Smh+qHkZrBSoXelOMruZGZe7TTCD6ygl6ho7fkfNuKrB2yFzSAjlUfUyLfaumVJGKslWw==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.78.0.tgz", + "integrity": "sha512-8iVT2VYhkalLFUWoQRGSluZZHEG93StfwQGwQ+wk1vOUlOfoT/Xqglt6DvGXIyM9gaMCr6fJBFQVrU+FrXEFYA==", "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", @@ -10284,13 +10340,13 @@ } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.77.1.tgz", - "integrity": "sha512-w2H9ePpUq7eqqtzSUSaYqbNNZoU6pbBONjTIWdztp0lFdnUaLoLUMddt9XhtKFUlnNaSmfetjJSSrsi3JVbO6w==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.78.0.tgz", + "integrity": "sha512-LpfEU+F1hZGcxIf07aBrjlImA0hh8v76V4wTJOgxxqGDUjjQ/X6h9V+bMXne60G9gwccTtvs1G0xiKWNUPI0VQ==", "license": "MIT", "dependencies": { - "@react-native/dev-middleware": "0.77.1", - "@react-native/metro-babel-transformer": "0.77.1", + "@react-native/dev-middleware": "0.78.0", + "@react-native/metro-babel-transformer": "0.78.0", "chalk": "^4.0.0", "debug": "^2.2.0", "invariant": "^2.2.4", @@ -10313,22 +10369,22 @@ } }, "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.77.1.tgz", - "integrity": "sha512-wX/f4JRyAc0PqcW3OBQAAw35k4KaTmDKe+/AJuSQLbqDH746awkFprmXRRTAfRc88q++4e6Db4gyK0GVdWNIpQ==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.78.0.tgz", + "integrity": "sha512-KQYD9QlxES/VdmXh9EEvtZCJK1KAemLlszQq4dpLU1stnue5N8dnCY6A7PpStMf5UtAMk7tiniQhaicw0uVHgQ==", "license": "BSD-3-Clause", "engines": { "node": ">=18" } }, "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.77.1.tgz", - "integrity": "sha512-DU6EEac57ch5XKflUB6eXepelHZFaKMJvmaZ24kt28AnvBp8rVrdaORe09pThuZdIF2m+j2BXsipU5zCd8BbZw==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.78.0.tgz", + "integrity": "sha512-zEafAZdOz4s37Jh5Xcv4hJE5qZ6uNxgrTLcpjDOJnQG6dO34/BoZeXvDrjomQFNn6ogdysR51mKJStaQ3ixp5A==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.77.1", + "@react-native/debugger-frontend": "0.78.0", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", @@ -10500,31 +10556,31 @@ "license": "MIT" }, "node_modules/@react-native/gradle-plugin": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.77.1.tgz", - "integrity": "sha512-QNuNMWH0CeC+PYrAXiuUIBbwdeGJ3fZpQM03vdG3tKdk66cVSFvxLh60P0w5kRHN7UFBg2FAcYx5eQ/IdcAntg==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.78.0.tgz", + "integrity": "sha512-WvwgfmVs1QfFl1FOL514kz2Fs5Nkg2BGgpE8V0ild8b/UT6jCD8qh2dTI5kL0xdT0d2Xd2BxfuFN0xCLkMC+SA==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.77.1.tgz", - "integrity": "sha512-6qd3kNr5R+JF+HzgM/fNSLEM1kw4RoOoaJV6XichvlOaCRmWS22X5TehVqiZOP95AAxtULRIifRs1cK5t9+JSg==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.78.0.tgz", + "integrity": "sha512-YZ9XtS77s/df7548B6dszX89ReehnA7hiab/axc30j/Mgk7Wv2woOjBKnAA4+rZ0ITLtxNwyJIMaRAc9kGznXw==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.77.1.tgz", - "integrity": "sha512-M4EzWDmUpIZhwJojEekbK7DzK2fYukU/TRIVZEmnbxVyWVwt/A1urbE2iV+s9E4E99pN+JdVpnBgu4LRCyPzJQ==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.78.0.tgz", + "integrity": "sha512-Hy/dl+zytLCRD9dp32ukcRS1Bn0gZH0h0i3AbriS6OGYgUgjAUFhXOKzZ15/G1SEq2sng91MNo/hMvo4uXoc5A==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", - "@react-native/babel-preset": "0.77.1", + "@react-native/babel-preset": "0.78.0", "hermes-parser": "0.25.1", "nullthrows": "^1.1.1" }, @@ -10536,14 +10592,14 @@ } }, "node_modules/@react-native/metro-config": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.77.1.tgz", - "integrity": "sha512-hUtUPyTpAejRCwJAhAJ+WJctTkpzfzc4pBwxt0ax5JbR1UZkK7mME/8gHoO8BaT8+ETaCdUlk12/Njf0MQhZow==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.78.0.tgz", + "integrity": "sha512-fPdIPMXTIZfpA4zLuTdeEQYAtNj8pGXnXbil9bfoB5PPf7seacreSxqxqwihRSRafl29j6kXSBgS7TskPBhGow==", "dev": true, "license": "MIT", "dependencies": { - "@react-native/js-polyfills": "0.77.1", - "@react-native/metro-babel-transformer": "0.77.1", + "@react-native/js-polyfills": "0.78.0", + "@react-native/metro-babel-transformer": "0.78.0", "metro-config": "^0.81.0", "metro-runtime": "^0.81.0" }, @@ -10561,9 +10617,9 @@ "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==" }, "node_modules/@react-native/virtualized-lists": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.77.1.tgz", - "integrity": "sha512-S25lyHO9owc+uaV2tcd9CMTVJs7PUZX0UGCG60LoLOBHW3krVq0peI34Gm6HEhkeKqb4YvZXqI/ehoNPUm1/ww==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.78.0.tgz", + "integrity": "sha512-ibETs3AwpkkRcORRANvZeEFjzvN41W02X882sBzoxC5XdHiZ2DucXo4fjKF7i86MhYCFLfNSIYbwupx1D1iFmg==", "license": "MIT", "dependencies": { "invariant": "^2.2.4", @@ -10573,7 +10629,7 @@ "node": ">=18" }, "peerDependencies": { - "@types/react": "^18.2.6", + "@types/react": "^19.0.0", "react": "*", "react-native": "*" }, @@ -10619,6 +10675,7 @@ "version": "1.3.31", "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", + "license": "MIT", "peerDependencies": { "@react-navigation/native": "^6.0.0", "react": "*", @@ -10706,6 +10763,25 @@ "react-dom": "^18.2.0" } }, + "node_modules/@react-ng/bounds-observer/node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@react-ng/bounds-observer/node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, "node_modules/@rgba-image/common": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/@rgba-image/common/-/common-0.1.13.tgz", @@ -11107,6 +11183,17 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/@storybook/addon-docs/node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@storybook/addon-docs/node_modules/fs-extra": { "version": "11.2.0", "dev": true, @@ -12645,6 +12732,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@storybook/cli/node_modules/storybook": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.4.0.tgz", + "integrity": "sha512-hLfXPtqfoQUMKVortxXdnQoUwDwtH85eSj9LbqGT/z1f/gLLYGNG3Mv3QbsRjHXhn+EfYffh7wuLpAn+Cicijw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core": "8.4.0" + }, + "bin": { + "getstorybook": "bin/index.cjs", + "sb": "bin/index.cjs", + "storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, "node_modules/@storybook/cli/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14633,7 +14747,9 @@ } }, "node_modules/@types/prop-types": { - "version": "15.7.5", + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", "license": "MIT" }, "node_modules/@types/pusher-js": { @@ -14662,11 +14778,11 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.2.45", + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", "license": "MIT", "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, @@ -14687,10 +14803,12 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.4", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", "license": "MIT", - "dependencies": { - "@types/react": "*" + "peerDependencies": { + "@types/react": "^19.0.0" } }, "node_modules/@types/react-is": { @@ -14702,12 +14820,14 @@ } }, "node_modules/@types/react-native": { - "version": "0.73.0", - "deprecated": "This is a stub types definition. react-native provides its own type definitions, so you do not need this installed.", + "version": "0.72.8", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.72.8.tgz", + "integrity": "sha512-St6xA7+EoHN5mEYfdWnfYt0e8u6k2FR0P9s2arYgakQGFgU1f9FlPrIEcj0X24pLCF5c5i3WVuLCUdiCYHmOoA==", "license": "MIT", "peer": true, "dependencies": { - "react-native": "*" + "@react-native/virtualized-lists": "^0.72.4", + "@types/react": "*" } }, "node_modules/@types/react-native-web": { @@ -14720,6 +14840,20 @@ "react-native": "*" } }, + "node_modules/@types/react-native/node_modules/@react-native/virtualized-lists": { + "version": "0.72.8", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.72.8.tgz", + "integrity": "sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw==", + "license": "MIT", + "peer": true, + "dependencies": { + "invariant": "^2.2.4", + "nullthrows": "^1.1.1" + }, + "peerDependencies": { + "react-native": "*" + } + }, "node_modules/@types/react-redux": { "version": "7.1.27", "license": "MIT", @@ -14731,7 +14865,9 @@ } }, "node_modules/@types/react-test-renderer": { - "version": "18.0.0", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-19.0.0.tgz", + "integrity": "sha512-qDVnNybqFm2eZKJ4jD34EvRd6VHD67KjgnWaEMM0Id9L22EpWe3nOSVKHWL1XWRCxUWe3lhXwlEeCKD1BlJCQA==", "dev": true, "license": "MIT", "dependencies": { @@ -14758,10 +14894,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "license": "MIT" - }, "node_modules/@types/semver": { "version": "7.5.4", "dev": true, @@ -15658,14 +15790,16 @@ } }, "node_modules/@welldone-software/why-did-you-render": { - "version": "7.0.1", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@welldone-software/why-did-you-render/-/why-did-you-render-10.0.1.tgz", + "integrity": "sha512-tMgGkt30iVYeLMUKExNmtm019QgyjLtA7lwB0QAizYNEuihlCG2eoAWBBaz/bDeI7LeqAJ9msC6hY3vX+JB97g==", "dev": true, "license": "MIT", "dependencies": { "lodash": "^4" }, "peerDependencies": { - "react": "^16 || ^17 || ^18" + "react": "^19" } }, "node_modules/@xmldom/xmldom": { @@ -15926,6 +16060,8 @@ }, "node_modules/anser": { "version": "1.4.10", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", + "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", "license": "MIT" }, "node_modules/ansi-escapes": { @@ -18329,6 +18465,8 @@ }, "node_modules/camelize": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -19507,6 +19645,33 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/create-storybook/node_modules/storybook": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.4.0.tgz", + "integrity": "sha512-hLfXPtqfoQUMKVortxXdnQoUwDwtH85eSj9LbqGT/z1f/gLLYGNG3Mv3QbsRjHXhn+EfYffh7wuLpAn+Cicijw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core": "8.4.0" + }, + "bin": { + "getstorybook": "bin/index.cjs", + "sb": "bin/index.cjs", + "storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, "node_modules/cross-fetch": { "version": "3.1.5", "license": "MIT", @@ -19559,6 +19724,8 @@ }, "node_modules/css-color-keywords": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", "license": "ISC", "engines": { "node": ">=4" @@ -19732,7 +19899,9 @@ } }, "node_modules/css-to-react-native": { - "version": "3.0.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", "license": "MIT", "dependencies": { "camelize": "^1.0.0", @@ -20385,6 +20554,8 @@ }, "node_modules/detect-node-es": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "dev": true, "license": "MIT" }, @@ -22764,45 +22935,6 @@ "ua-parser-js": "^1.0.38" } }, - "node_modules/expensify-common/node_modules/react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expensify-common/node_modules/react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.18.0" - }, - "peerDependencies": { - "react": "^16.0.0" - } - }, - "node_modules/expensify-common/node_modules/scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "node_modules/expensify-common/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -22889,13 +23021,13 @@ } }, "node_modules/expo-asset": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-11.0.2.tgz", - "integrity": "sha512-We3Td5WsNsNQyXoheLnuwic6JCOt/pqXqIIyWaZ3z/PeHrA+SwoQdI18MjDhkudLK08tbIVyDSUW8IJHXa04eg==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-11.0.4.tgz", + "integrity": "sha512-CdIywU0HrR3wsW5c3n0cT3jW9hccZdnqGsRqY+EY/RWzJbDXtDfAQVEiFHO3mDK7oveUwrP2jK/6ZRNek41/sg==", "license": "MIT", "dependencies": { - "@expo/image-utils": "^0.6.4", - "expo-constants": "~17.0.4", + "@expo/image-utils": "^0.6.5", + "expo-constants": "~17.0.7", "invariant": "^2.2.4", "md5-file": "^3.2.3" }, @@ -22923,13 +23055,13 @@ } }, "node_modules/expo-constants": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-17.0.5.tgz", - "integrity": "sha512-6SHXh32jCB+vrp2TRDNkoGoM421eOBPZIXX9ixI0hKKz71tIjD+LMr/P+rGUd/ks312MP3WK3j5vcYYPkCD8tQ==", + "version": "17.0.7", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-17.0.7.tgz", + "integrity": "sha512-sp5NUiV17I3JblVPIBDgoxgt7JIZS30vcyydCYHxsEoo+aKaeRYXxGYilCvb9lgI6BBwSL24sQ6ZjWsCWoF1VA==", "license": "MIT", "dependencies": { - "@expo/config": "~10.0.8", - "@expo/env": "~0.4.1" + "@expo/config": "~10.0.10", + "@expo/env": "~0.4.2" }, "peerDependencies": { "expo": "*", @@ -22937,9 +23069,9 @@ } }, "node_modules/expo-file-system": { - "version": "18.0.7", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.0.7.tgz", - "integrity": "sha512-6PpbQfogMXdzOsJzlJayy5qf40IfIHhudtAOzr32RlRYL4Hkmk3YcR9jG0PWQ0rklJfAhbAdP63yOcN+wDgzaA==", + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.0.11.tgz", + "integrity": "sha512-yDwYfEzWgPXsBZHJW2RJ8Q66ceiFN9Wa5D20pp3fjXVkzPBDwxnYwiPWk4pVmCa5g4X5KYMoMne1pUrsL4OEpg==", "license": "MIT", "dependencies": { "web-streams-polyfill": "^3.3.2" @@ -22950,9 +23082,9 @@ } }, "node_modules/expo-font": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-13.0.3.tgz", - "integrity": "sha512-9IdYz+A+b3KvuCYP7DUUXF4VMZjPU+IsvAnLSVJ2TfP6zUD2JjZFx3jeo/cxWRkYk/aLj5+53Te7elTAScNl4Q==", + "version": "13.0.4", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-13.0.4.tgz", + "integrity": "sha512-eAP5hyBgC8gafFtprsz0HMaB795qZfgJWqTmU0NfbSin1wUuVySFMEPMOrTkTgmazU73v4Cb4x7p86jY1XXYUw==", "license": "MIT", "dependencies": { "fontfaceobserver": "^2.1.0" @@ -22983,6 +23115,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-5.0.0.tgz", "integrity": "sha512-Eg+5FHtyzv3Jjw9dHwu2pWy4xjf8fu3V0Asyy42kO+t/FbvW/vjUixpTjPtgKQLQh+2/9Nk4JjFDV6FwCnF2ZA==", + "license": "MIT", "peerDependencies": { "expo": "*" } @@ -23000,9 +23133,9 @@ } }, "node_modules/expo-keep-awake": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.0.2.tgz", - "integrity": "sha512-71XAMnoWjKZrN8J7Q3+u0l9Ytp4OfhNAYz8BCWF1/9aFUw09J3I7Z5DuI3MUsVMa/KWi+XhG+eDUFP8cVA19Uw==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.0.3.tgz", + "integrity": "sha512-6Jh94G6NvTZfuLnm2vwIpKe3GdOiVBuISl7FI8GqN0/9UOg9E0WXXp5cDcfAG8bn80RfgLJS8P7EPUGTZyOvhg==", "license": "MIT", "peerDependencies": { "expo": "*", @@ -24231,6 +24364,8 @@ }, "node_modules/get-nonce": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "dev": true, "license": "MIT", "engines": { @@ -27088,6 +27223,31 @@ "react-native": "*" } }, + "node_modules/jest-expo/node_modules/react-test-renderer": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", + "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-is": "^18.3.1", + "react-shallow-renderer": "^16.15.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/jest-expo/node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/jest-get-type": { "version": "29.6.3", "license": "MIT", @@ -28369,10 +28529,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsc-android": { - "version": "250231.0.0", - "license": "BSD-2-Clause" - }, "node_modules/jsc-safe-url": { "version": "0.2.4", "license": "0BSD" @@ -32868,11 +33024,10 @@ } }, "node_modules/react": { - "version": "18.3.1", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -33016,9 +33171,9 @@ } }, "node_modules/react-devtools-core": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.0.1.tgz", - "integrity": "sha512-II3iSJhnR5nAscYDa9FCgPLq8mO5aEx/EKKtdXYTDnvdFEa3K7gs3jn1SKRXwQf9maOmIilmjnnx7Qy+3annPA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-6.1.1.tgz", + "integrity": "sha512-TFo1MEnkqE6hzAbaztnyR5uLTMoz6wnEWwWBsCUzNt+sVXJycuRJdDqvL078M4/h65BI/YO5XWTaxZDWVsW0fw==", "license": "MIT", "dependencies": { "shell-quote": "^1.6.1", @@ -33081,21 +33236,15 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-dom/node_modules/scheduler": { - "version": "0.23.2", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" + "react": "^19.0.0" } }, "node_modules/react-error-boundary": { @@ -33165,19 +33314,19 @@ } }, "node_modules/react-native": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.77.1.tgz", - "integrity": "sha512-g2OMtsQqhgOuC4BqFyrcv0UsmbFcLOwfVRl/XAEHZK0p8paJubGIF3rAHN4Qh0GqGLWZGt7gJ7ha2yOmCFORoA==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.78.0.tgz", + "integrity": "sha512-3PO4tNvCN6BdAKcoY70v1sLfxYCmDR4KS1VTY+kIBKy5Qznp27QNxL7zBQjvS6Jp91gc8N82QbysQrfBlwg9gQ==", "license": "MIT", "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native/assets-registry": "0.77.1", - "@react-native/codegen": "0.77.1", - "@react-native/community-cli-plugin": "0.77.1", - "@react-native/gradle-plugin": "0.77.1", - "@react-native/js-polyfills": "0.77.1", - "@react-native/normalize-colors": "0.77.1", - "@react-native/virtualized-lists": "0.77.1", + "@react-native/assets-registry": "0.78.0", + "@react-native/codegen": "0.78.0", + "@react-native/community-cli-plugin": "0.78.0", + "@react-native/gradle-plugin": "0.78.0", + "@react-native/js-polyfills": "0.78.0", + "@react-native/normalize-colors": "0.78.0", + "@react-native/virtualized-lists": "0.78.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -33191,7 +33340,6 @@ "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.6.3", - "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.81.0", "metro-source-map": "^0.81.0", @@ -33201,7 +33349,7 @@ "react-devtools-core": "^6.0.1", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", - "scheduler": "0.24.0-canary-efb381bbf-20230505", + "scheduler": "0.25.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", @@ -33215,8 +33363,8 @@ "node": ">=18" }, "peerDependencies": { - "@types/react": "^18.2.6", - "react": "^18.2.0" + "@types/react": "^19.0.0", + "react": "^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -33382,9 +33530,9 @@ } }, "node_modules/react-native-gesture-handler": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.22.0.tgz", - "integrity": "sha512-m5Ps1cOSxSiMP4re+XsbeWcC9DNJuIEjMSmtUxBdyfYEJtdu5iAAiX7KlHHrf2mnK4I/56Ncy4PvPKWBwSpWpQ==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.24.0.tgz", + "integrity": "sha512-ZdWyOd1C8axKJHIfYxjJKCcxjWEpUtUWgTOVY2wynbiveSQDm8X/PDyAKXSer/GOtIpjudUbACOndZXCN3vHsw==", "license": "MIT", "dependencies": { "@egjs/hammerjs": "^2.0.17", @@ -33739,24 +33887,6 @@ "react-native": "*" } }, - "node_modules/react-native-render-html/node_modules/@native-html/transient-render-engine": { - "version": "11.2.2", - "license": "MIT", - "dependencies": { - "@native-html/css-processor": "1.11.0", - "@types/ramda": "^0.27.44", - "csstype": "^3.0.9", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "htmlparser2": "^7.1.2", - "ramda": "^0.27.1" - }, - "peerDependencies": { - "@types/react-native": "*", - "react-native": "^*" - } - }, "node_modules/react-native-render-html/node_modules/ramda": { "version": "0.27.2", "license": "MIT" @@ -33912,9 +34042,9 @@ } }, "node_modules/react-native/node_modules/@react-native/normalize-colors": { - "version": "0.77.1", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.77.1.tgz", - "integrity": "sha512-sCmEs/Vpi14CtFYhmKXpPFZntKYGezFGgT9cJANRS2aFseAL4MOomb5Ms+TOQw82aFcwPPjDX6Hrl87WjTf73A==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.78.0.tgz", + "integrity": "sha512-FkeLvLLaMYlGsSntixTUvlNtc1OHij4TYRtymMNPWqBKFAMXJB/qe45VxXNzWP+jD0Ok6yXineQFtktKcHk9PA==", "license": "MIT" }, "node_modules/react-native/node_modules/ansi-regex": { @@ -34102,44 +34232,22 @@ "node": ">=0.10.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.5.7", - "dev": true, - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "dev": true, "license": "MIT", "dependencies": { - "react-style-singleton": "^2.2.1", + "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -34175,6 +34283,8 @@ }, "node_modules/react-shallow-renderer": { "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", "dev": true, "license": "MIT", "dependencies": { @@ -34186,20 +34296,21 @@ } }, "node_modules/react-style-singleton": { - "version": "2.2.1", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "dev": true, "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", - "invariant": "^2.2.4", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -34208,25 +34319,25 @@ } }, "node_modules/react-test-renderer": { - "version": "18.3.1", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-19.0.0.tgz", + "integrity": "sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA==", "dev": true, "license": "MIT", "dependencies": { - "react-is": "^18.3.1", - "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.2" + "react-is": "^19.0.0", + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.0.0" } }, - "node_modules/react-test-renderer/node_modules/scheduler": { - "version": "0.23.2", + "node_modules/react-test-renderer/node_modules/react-is": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "license": "MIT" }, "node_modules/react-web-config": { "version": "1.0.0", @@ -34451,6 +34562,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/recyclerlistview/-/recyclerlistview-4.2.1.tgz", "integrity": "sha512-NtVYjofwgUCt1rEsTp6jHQg/47TWjnO92TU2kTVgJ9wsc/ely4HnizHHa+f/dI7qaw4+zcSogElrLjhMltN2/g==", + "license": "Apache-2.0", "dependencies": { "lodash.debounce": "4.0.8", "prop-types": "15.8.1", @@ -34517,6 +34629,8 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, "node_modules/regenerator-transform": { @@ -34963,11 +35077,10 @@ } }, "node_modules/scheduler": { - "version": "0.24.0-canary-efb381bbf-20230505", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/schema-utils": { "version": "3.3.0", @@ -36009,13 +36122,13 @@ "license": "MIT" }, "node_modules/storybook": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.4.0.tgz", - "integrity": "sha512-hLfXPtqfoQUMKVortxXdnQoUwDwtH85eSj9LbqGT/z1f/gLLYGNG3Mv3QbsRjHXhn+EfYffh7wuLpAn+Cicijw==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.2.tgz", + "integrity": "sha512-IkQGRNImyN14+tx/9KLg9k5xKBgrkWaPFhfwTCxUZUzLNClbVrxkkXyjFaks9kPVQIEUVPGQCiGFqypUiwoM6g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core": "8.4.0" + "@storybook/core": "8.6.2" }, "bin": { "getstorybook": "bin/index.cjs", @@ -36035,6 +36148,65 @@ } } }, + "node_modules/storybook/node_modules/@storybook/core": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.2.tgz", + "integrity": "sha512-i8a/nUuzzH5RLKjPn8DM7l8xxuTdLZ6xbI4hgpruas3JY8lQq72I7qmH6pmI7ByjGangDWK1iPh+tghdKkS6KQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/theming": "8.6.2", + "better-opn": "^3.0.2", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", + "esbuild-register": "^3.5.0", + "jsdoc-type-pratt-parser": "^4.0.0", + "process": "^0.11.10", + "recast": "^0.23.5", + "semver": "^7.6.2", + "util": "^0.12.5", + "ws": "^8.2.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "prettier": "^2 || ^3" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + } + } + }, + "node_modules/storybook/node_modules/@storybook/theming": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.2.tgz", + "integrity": "sha512-NF7tMZBbmh6rNf+uw5wVUpsVIwnbhLgauhQJONuQ8i+cI6cJEBaKjIC2uMWUBABqnj1LqGrHSEWVeeYwuAeUYg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" + } + }, + "node_modules/storybook/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/stream-buffers": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", @@ -37302,7 +37474,8 @@ "node_modules/ts-object-utils": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/ts-object-utils/-/ts-object-utils-0.0.5.tgz", - "integrity": "sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==" + "integrity": "sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==", + "license": "ISC" }, "node_modules/ts-regex-builder": { "version": "1.7.1", @@ -37869,7 +38042,9 @@ "license": "MIT" }, "node_modules/use-callback-ref": { - "version": "1.3.2", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "dev": true, "license": "MIT", "dependencies": { @@ -37879,8 +38054,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -37903,7 +38078,9 @@ } }, "node_modules/use-sidecar": { - "version": "1.1.2", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -37914,8 +38091,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -38634,7 +38811,9 @@ } }, "node_modules/whatwg-fetch": { - "version": "3.6.2", + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", "license": "MIT" }, "node_modules/whatwg-url": { diff --git a/package.json b/package.json index 273f6f79fa71..efeff8ba63a4 100644 --- a/package.json +++ b/package.json @@ -145,7 +145,7 @@ "react-beautiful-dnd": "^13.1.1", "react-collapse": "^5.1.0", "react-content-loader": "^7.0.0", - "react-dom": "18.3.1", + "react-dom": "19.0.0", "react-error-boundary": "^4.0.11", "react-fast-pdf": "^1.0.26", "react-map-gl": "^7.1.3", @@ -160,7 +160,7 @@ "react-native-document-picker": "^9.3.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", - "react-native-gesture-handler": "2.22.0", + "react-native-gesture-handler": "2.24.0", "react-native-google-places-autocomplete": "2.5.6", "react-native-haptic-feedback": "^2.3.3", "react-native-image-picker": "^7.1.2", @@ -264,7 +264,7 @@ "@types/react": "^19.0.0", "@types/react-beautiful-dnd": "^13.1.4", "@types/react-collapse": "^5.0.1", - "@types/react-dom": "^18.2.4", + "@types/react-dom": "^19.0.0", "@types/react-is": "^18.3.0", "@types/react-native-web": "^0.0.0", "@types/react-test-renderer": "19.0.0", @@ -276,7 +276,7 @@ "@typescript-eslint/parser": "^7.13.1", "@vercel/ncc": "0.38.1", "@vue/preload-webpack-plugin": "^2.0.0", - "@welldone-software/why-did-you-render": "7.0.1", + "@welldone-software/why-did-you-render": "10.0.1", "ajv-cli": "^5.0.0", "babel-jest": "29.4.1", "babel-loader": "^9.1.3", @@ -330,13 +330,13 @@ "react-is": "^18.3.1", "react-native-clean-project": "^4.0.0-alpha4.0", "react-refresh": "^0.14.2", - "react-test-renderer": "18.3.1", + "react-test-renderer": "19.0.0", "reassure": "^1.0.0-rc.4", "semver": "7.5.2", "setimmediate": "^1.0.5", "shellcheck": "^1.1.0", "source-map": "^0.7.4", - "storybook": "^8.4.0", + "storybook": "^8.6.1", "style-loader": "^2.0.0", "time-analytics-webpack-plugin": "^0.1.17", "ts-jest": "^29.1.2", @@ -370,7 +370,9 @@ "body-parser": "1.20.3", "path-to-regexp": "0.1.10", "send": "0.19.0", - "regexpu-core": "5.3.2" + "regexpu-core": "5.3.2", + "react": "19.0.0", + "react-dom": "19.0.0" }, "expo": { "autolinking": { diff --git a/patches/@react-native+gradle-plugin+0.77.1.patch b/patches/@react-native+gradle-plugin+0.78.0.patch similarity index 100% rename from patches/@react-native+gradle-plugin+0.77.1.patch rename to patches/@react-native+gradle-plugin+0.78.0.patch diff --git a/patches/@react-native+virtualized-lists+0.77.1+001+onStartReched.patch b/patches/@react-native+virtualized-lists+0.77.1+001+onStartReched.patch deleted file mode 100644 index b183124964f6..000000000000 --- a/patches/@react-native+virtualized-lists+0.77.1+001+onStartReched.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js b/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js -index 0516679..e338d90 100644 ---- a/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js -+++ b/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js -@@ -1546,7 +1546,7 @@ class VirtualizedList extends StateSafePureComponent<Props, State> { - // Next check if the user just scrolled within the start threshold - // and call onStartReached only once for a given content length, - // and only if onEndReached is not being executed -- else if ( -+ if ( - onStartReached != null && - this.state.cellsAroundViewport.first === 0 && - isWithinStartThreshold && -@@ -1558,13 +1558,11 @@ class VirtualizedList extends StateSafePureComponent<Props, State> { - - // If the user scrolls away from the start or end and back again, - // cause onStartReached or onEndReached to be triggered again -- else { -- this._sentStartForContentLength = isWithinStartThreshold -- ? this._sentStartForContentLength -- : 0; -- this._sentEndForContentLength = isWithinEndThreshold -- ? this._sentEndForContentLength -- : 0; -+ if (!isWithinStartThreshold) { -+ this._sentStartForContentLength = 0; -+ } -+ if (!isWithinEndThreshold) { -+ this._sentEndForContentLength = 0; - } - } - diff --git a/patches/@react-native+virtualized-lists+0.77.1+002+osr-improvement.patch b/patches/@react-native+virtualized-lists+0.78.0+001+osr-improvement.patch similarity index 100% rename from patches/@react-native+virtualized-lists+0.77.1+002+osr-improvement.patch rename to patches/@react-native+virtualized-lists+0.78.0+001+osr-improvement.patch diff --git a/patches/expo-asset+11.0.2+002+initial.patch b/patches/expo-asset+11.0.4+002+initial.patch similarity index 100% rename from patches/expo-asset+11.0.2+002+initial.patch rename to patches/expo-asset+11.0.4+002+initial.patch From 367b72eaf8d76bd2b427d91dcca2473efebf30a1 Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Fri, 28 Feb 2025 14:01:04 +0100 Subject: [PATCH 5/8] apply rest of migration guide, bump some libs --- package-lock.json | 46 ++++++++----------- package.json | 6 +-- ...8.0+022+dont-enable-height-centering.patch | 13 ------ 3 files changed, 22 insertions(+), 43 deletions(-) delete mode 100644 patches/react-native+0.78.0+022+dont-enable-height-centering.patch diff --git a/package-lock.json b/package-lock.json index e573295fee59..abad11f84520 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,6 +32,7 @@ "@react-native-clipboard/clipboard": "^1.15.0", "@react-native-community/geolocation": "3.3.0", "@react-native-community/netinfo": "11.2.1", + "@react-native-documents/picker": "^10.1.1", "@react-native-firebase/analytics": "^12.3.0", "@react-native-firebase/app": "^12.3.0", "@react-native-firebase/crashlytics": "^12.3.0", @@ -90,7 +91,6 @@ "react-native-collapsible": "^1.6.2", "react-native-config": "1.5.3", "react-native-device-info": "10.3.1", - "react-native-document-picker": "^9.3.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "2.24.0", @@ -99,7 +99,7 @@ "react-native-image-picker": "^7.1.2", "react-native-image-size": "git+https://github.com/Expensify/react-native-image-size#cb392140db4953a283590d7cf93b4d0461baa2a9", "react-native-key-command": "1.0.12", - "react-native-keyboard-controller": "1.15.2", + "react-native-keyboard-controller": "1.16.6", "react-native-launch-arguments": "^4.0.2", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", @@ -115,7 +115,7 @@ "react-native-reanimated": "3.16.7", "react-native-release-profiler": "^0.2.1", "react-native-render-html": "6.3.1", - "react-native-safe-area-context": "4.12.0", + "react-native-safe-area-context": "5.2.0", "react-native-screens": "3.35.0", "react-native-share": "11.0.2", "react-native-sound": "^0.11.2", @@ -9698,6 +9698,16 @@ "react-native": ">=0.59" } }, + "node_modules/@react-native-documents/picker": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@react-native-documents/picker/-/picker-10.1.1.tgz", + "integrity": "sha512-RijOCQmesOPe4ahtwOag6k6GLhLHf34sMQtAJ4KjLk7ab0kG5Chvcsvd5zixWC4d0tuBnVAtMUOzvn0bp+UtAg==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/@react-native-firebase/analytics": { "version": "12.9.3", "license": "Apache-2.0", @@ -33482,24 +33492,6 @@ "react-native": "*" } }, - "node_modules/react-native-document-picker": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-9.3.1.tgz", - "integrity": "sha512-Vcofv9wfB0j67zawFjfq9WQPMMzXxOZL9kBmvWDpjVuEcVK73ndRmlXHlkeFl5ZHVsv4Zb6oZYhqm9u5omJOPA==", - "dependencies": { - "invariant": "^2.2.4" - }, - "peerDependencies": { - "react": "*", - "react-native": "*", - "react-native-windows": "*" - }, - "peerDependenciesMeta": { - "react-native-windows": { - "optional": true - } - } - }, "node_modules/react-native-draggable-flatlist": { "version": "4.0.1", "license": "MIT", @@ -33625,9 +33617,9 @@ "license": "MIT" }, "node_modules/react-native-keyboard-controller": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/react-native-keyboard-controller/-/react-native-keyboard-controller-1.15.2.tgz", - "integrity": "sha512-ZN151OyMJ2GQkhebARY/5G9rXgSlNCKy+WjS6p4o7S+5ulb4nGzl6UkpEuT7/C6bHDeAjDupdrET9tyyTee3nA==", + "version": "1.16.6", + "resolved": "https://registry.npmjs.org/react-native-keyboard-controller/-/react-native-keyboard-controller-1.16.6.tgz", + "integrity": "sha512-3MeJKtF2eBv3+HXM1rbZqWaOGpJEYxVY8ThOpCPCa6R703Dmb069LsZ08M3ATaHZH2yqNvp/bQCo7P7I4Qqomg==", "license": "MIT", "dependencies": { "react-native-is-edge-to-edge": "^1.1.6" @@ -33892,9 +33884,9 @@ "license": "MIT" }, "node_modules/react-native-safe-area-context": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.12.0.tgz", - "integrity": "sha512-ukk5PxcF4p3yu6qMZcmeiZgowhb5AsKRnil54YFUUAXVIS7PJcMHGGC+q44fCiBg44/1AJk5njGMez1m9H0BVQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.2.0.tgz", + "integrity": "sha512-QpcGA6MRKe8Zbpf1hirCBudNQYGsMv0n/CTTROMOFcXbqRUoEXLCsYxUmYKi7JJb3ziL2DbyzWXyH2/gw4Tkfw==", "license": "MIT", "peerDependencies": { "react": "*", diff --git a/package.json b/package.json index efeff8ba63a4..9f13d69d8b69 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "@react-native-clipboard/clipboard": "^1.15.0", "@react-native-community/geolocation": "3.3.0", "@react-native-community/netinfo": "11.2.1", + "@react-native-documents/picker": "^10.1.1", "@react-native-firebase/analytics": "^12.3.0", "@react-native-firebase/app": "^12.3.0", "@react-native-firebase/crashlytics": "^12.3.0", @@ -157,7 +158,6 @@ "react-native-collapsible": "^1.6.2", "react-native-config": "1.5.3", "react-native-device-info": "10.3.1", - "react-native-document-picker": "^9.3.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "2.24.0", @@ -166,7 +166,7 @@ "react-native-image-picker": "^7.1.2", "react-native-image-size": "git+https://github.com/Expensify/react-native-image-size#cb392140db4953a283590d7cf93b4d0461baa2a9", "react-native-key-command": "1.0.12", - "react-native-keyboard-controller": "1.15.2", + "react-native-keyboard-controller": "1.16.6", "react-native-launch-arguments": "^4.0.2", "react-native-localize": "^2.2.6", "react-native-modal": "^13.0.0", @@ -182,7 +182,7 @@ "react-native-reanimated": "3.16.7", "react-native-release-profiler": "^0.2.1", "react-native-render-html": "6.3.1", - "react-native-safe-area-context": "4.12.0", + "react-native-safe-area-context": "5.2.0", "react-native-screens": "3.35.0", "react-native-share": "11.0.2", "react-native-sound": "^0.11.2", diff --git a/patches/react-native+0.78.0+022+dont-enable-height-centering.patch b/patches/react-native+0.78.0+022+dont-enable-height-centering.patch deleted file mode 100644 index f66a8e9c1174..000000000000 --- a/patches/react-native+0.78.0+022+dont-enable-height-centering.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt -index f90ad02..44a8e36 100644 ---- a/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt -+++ b/node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt -@@ -50,6 +50,8 @@ public object DefaultNewArchitectureEntryPoint { - override fun enableEventEmitterRetentionDuringGesturesOnAndroid(): Boolean = - bridgelessEnabled || fabricEnabled - -+ override fun enableAndroidLineHeightCentering(): Boolean = false -+ - override fun useTurboModules(): Boolean = bridgelessEnabled || turboModulesEnabled - }) - From 432bf344a6b704e7508cbb466adc1167ff7507c1 Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Mon, 10 Mar 2025 16:46:46 +0100 Subject: [PATCH 6/8] add react 19 & react native 78 patch for `react-native-web` --- ...native-web+0.19.13+008+RN-78-support.patch | 280 ++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 patches/react-native-web+0.19.13+008+RN-78-support.patch diff --git a/patches/react-native-web+0.19.13+008+RN-78-support.patch b/patches/react-native-web+0.19.13+008+RN-78-support.patch new file mode 100644 index 000000000000..b37c617139f7 --- /dev/null +++ b/patches/react-native-web+0.19.13+008+RN-78-support.patch @@ -0,0 +1,280 @@ +diff --git a/node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js b/node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js +index b53dff6..1f855c1 100644 +--- a/node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js ++++ b/node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js +@@ -11,15 +11,12 @@ import _extends from "@babel/runtime/helpers/extends"; + + import AppContainer from './AppContainer'; + import invariant from 'fbjs/lib/invariant'; +-import renderLegacy, { hydrateLegacy, render, hydrate } from '../render'; ++import render, { hydrate } from '../render'; + import StyleSheet from '../StyleSheet'; + import React from 'react'; + export default function renderApplication(RootComponent, WrapperComponent, callback, options) { +- var shouldHydrate = options.hydrate, +- initialProps = options.initialProps, +- mode = options.mode, +- rootTag = options.rootTag; +- var renderFn = shouldHydrate ? mode === 'concurrent' ? hydrate : hydrateLegacy : mode === 'concurrent' ? render : renderLegacy; ++ const { hydrate: shouldHydrate, initialProps, rootTag } = options; ++ const renderFn = shouldHydrate ? hydrate : render; + invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag); + return renderFn(/*#__PURE__*/React.createElement(AppContainer, { + WrapperComponent: WrapperComponent, +diff --git a/node_modules/react-native-web/dist/exports/findNodeHandle/index.js b/node_modules/react-native-web/dist/exports/findNodeHandle/index.js +index e997fcf..e4b6c76 100644 +--- a/node_modules/react-native-web/dist/exports/findNodeHandle/index.js ++++ b/node_modules/react-native-web/dist/exports/findNodeHandle/index.js +@@ -8,17 +8,10 @@ + * + */ + +-import { findDOMNode } from 'react-dom'; +- +-/** +- * @deprecated imperatively finding the DOM element of a react component has been deprecated in React 18. +- * You should use ref properties on the component instead. +- */ +-var findNodeHandle = component => { +- var node; +- try { +- node = findDOMNode(component); +- } catch (e) {} +- return node; ++const findNodeHandle = (component) => { ++ console.warn( ++ 'findNodeHandle has been removed in React 19. ' + ++ 'Use the ref property on the component instead.' ++ ); + }; + export default findNodeHandle; +diff --git a/node_modules/react-native-web/dist/exports/findNodeHandle/index.js.flow b/node_modules/react-native-web/dist/exports/findNodeHandle/index.js.flow +index 412af49..2e0621d 100644 +--- a/node_modules/react-native-web/dist/exports/findNodeHandle/index.js.flow ++++ b/node_modules/react-native-web/dist/exports/findNodeHandle/index.js.flow +@@ -8,11 +8,5 @@ + * @noflow + */ + +-import { findDOMNode } from 'react-dom'; +- +-/** +- * @deprecated imperatively finding the DOM element of a react component has been deprecated in React 18. +- * You should use ref properties on the component instead. +- */ + declare var findNodeHandle: (component: any) => any; + export default findNodeHandle; +diff --git a/node_modules/react-native-web/dist/exports/render/index.js b/node_modules/react-native-web/dist/exports/render/index.js +index aa91a2a..056714f 100644 +--- a/node_modules/react-native-web/dist/exports/render/index.js ++++ b/node_modules/react-native-web/dist/exports/render/index.js +@@ -9,35 +9,15 @@ + + 'use client'; + +-import { hydrate as domLegacyHydrate, render as domLegacyRender } from 'react-dom'; + import { createRoot as domCreateRoot, hydrateRoot as domHydrateRoot } from 'react-dom/client'; +-import unmountComponentAtNode from '../unmountComponentAtNode'; + import { createSheet } from '../StyleSheet/dom'; + export function hydrate(element, root) { + createSheet(root); + return domHydrateRoot(root, element); + } +-export function render(element, root) { ++export default function render(element, root) { + createSheet(root); + var reactRoot = domCreateRoot(root); + reactRoot.render(element); + return reactRoot; + } +-export function hydrateLegacy(element, root, callback) { +- createSheet(root); +- domLegacyHydrate(element, root, callback); +- return { +- unmount: function unmount() { +- return unmountComponentAtNode(root); +- } +- }; +-} +-export default function renderLegacy(element, root, callback) { +- createSheet(root); +- domLegacyRender(element, root, callback); +- return { +- unmount: function unmount() { +- return unmountComponentAtNode(root); +- } +- }; +-} +\ No newline at end of file +diff --git a/node_modules/react-native-web/dist/exports/render/index.js.flow b/node_modules/react-native-web/dist/exports/render/index.js.flow +index 1bd771e..4ab6c32 100644 +--- a/node_modules/react-native-web/dist/exports/render/index.js.flow ++++ b/node_modules/react-native-web/dist/exports/render/index.js.flow +@@ -14,6 +14,4 @@ import { createRoot as domCreateRoot, hydrateRoot as domHydrateRoot } from 'reac + import unmountComponentAtNode from '../unmountComponentAtNode'; + import { createSheet } from '../StyleSheet/dom'; + declare export function hydrate(element: any, root: any): any; +-declare export function render(element: any, root: any): any; +-declare export function hydrateLegacy(element: any, root: any, callback: any): any; +-declare export default function renderLegacy(element: any, root: any, callback: any): any; +\ No newline at end of file ++declare export default function render(element: any, root: any): any; +diff --git a/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js b/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js +index 925051c..908969c 100644 +--- a/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js ++++ b/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js +@@ -7,5 +7,7 @@ + * + */ + +-import { unmountComponentAtNode } from 'react-dom'; +-export default unmountComponentAtNode; +\ No newline at end of file ++export default function unmountComponentAtNode(rootTag) { ++ rootTag.unmount(); ++ return true; ++} +diff --git a/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js.flow b/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js.flow +index b950090..1e4386f 100644 +--- a/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js.flow ++++ b/node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js.flow +@@ -7,5 +7,7 @@ + * @noflow + */ + +-import { unmountComponentAtNode } from 'react-dom'; +-export default unmountComponentAtNode; +\ No newline at end of file ++export default function unmountComponentAtNode(rootTag) { ++ rootTag.unmount(); ++ return true; ++} +diff --git a/node_modules/react-native-web/src/exports/AppRegistry/renderApplication.js b/node_modules/react-native-web/src/exports/AppRegistry/renderApplication.js +index 95df521..5878515 100644 +--- a/node_modules/react-native-web/src/exports/AppRegistry/renderApplication.js ++++ b/node_modules/react-native-web/src/exports/AppRegistry/renderApplication.js +@@ -12,7 +12,7 @@ import type { ComponentType, Node } from 'react'; + + import AppContainer from './AppContainer'; + import invariant from 'fbjs/lib/invariant'; +-import renderLegacy, { hydrateLegacy, render, hydrate } from '../render'; ++import render, { hydrate } from '../render'; + import StyleSheet from '../StyleSheet'; + import React from 'react'; + +@@ -27,18 +27,11 @@ export default function renderApplication<Props: Object>( + options: { + hydrate: boolean, + initialProps: Props, +- mode: 'concurrent' | 'legacy', + rootTag: any + } + ): Application { +- const { hydrate: shouldHydrate, initialProps, mode, rootTag } = options; +- const renderFn = shouldHydrate +- ? mode === 'concurrent' +- ? hydrate +- : hydrateLegacy +- : mode === 'concurrent' +- ? render +- : renderLegacy; ++ const { hydrate: shouldHydrate, initialProps, rootTag } = options; ++ const renderFn = shouldHydrate ? hydrate : render; + + invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag); + +diff --git a/node_modules/react-native-web/src/exports/findNodeHandle/index.js b/node_modules/react-native-web/src/exports/findNodeHandle/index.js +index f0b6ddf..39cf2d9 100644 +--- a/node_modules/react-native-web/src/exports/findNodeHandle/index.js ++++ b/node_modules/react-native-web/src/exports/findNodeHandle/index.js +@@ -8,20 +8,11 @@ + * @noflow + */ + +-import { findDOMNode } from 'react-dom'; +- +-/** +- * @deprecated imperatively finding the DOM element of a react component has been deprecated in React 18. +- * You should use ref properties on the component instead. +- */ + const findNodeHandle = (component) => { +- let node; +- +- try { +- node = findDOMNode(component); +- } catch (e) {} +- +- return node; ++ console.warn( ++ 'findNodeHandle has been removed in React 19. ' + ++ 'Use the ref property on the component instead.' ++ ); + }; + + export default findNodeHandle; +diff --git a/node_modules/react-native-web/src/exports/render/index.js b/node_modules/react-native-web/src/exports/render/index.js +index c578e3e..572af7c 100644 +--- a/node_modules/react-native-web/src/exports/render/index.js ++++ b/node_modules/react-native-web/src/exports/render/index.js +@@ -9,16 +9,11 @@ + + 'use client'; + +-import { +- hydrate as domLegacyHydrate, +- render as domLegacyRender +-} from 'react-dom'; + import { + createRoot as domCreateRoot, + hydrateRoot as domHydrateRoot + } from 'react-dom/client'; + +-import unmountComponentAtNode from '../unmountComponentAtNode'; + import { createSheet } from '../StyleSheet/dom'; + + export function hydrate(element, root) { +@@ -26,29 +21,9 @@ export function hydrate(element, root) { + return domHydrateRoot(root, element); + } + +-export function render(element, root) { ++export default function render(element, root) { + createSheet(root); + const reactRoot = domCreateRoot(root); + reactRoot.render(element); + return reactRoot; + } +- +-export function hydrateLegacy(element, root, callback) { +- createSheet(root); +- domLegacyHydrate(element, root, callback); +- return { +- unmount: function () { +- return unmountComponentAtNode(root); +- } +- }; +-} +- +-export default function renderLegacy(element, root, callback) { +- createSheet(root); +- domLegacyRender(element, root, callback); +- return { +- unmount: function () { +- return unmountComponentAtNode(root); +- } +- }; +-} +diff --git a/node_modules/react-native-web/src/exports/unmountComponentAtNode/index.js b/node_modules/react-native-web/src/exports/unmountComponentAtNode/index.js +index c3da00e..1e4386f 100644 +--- a/node_modules/react-native-web/src/exports/unmountComponentAtNode/index.js ++++ b/node_modules/react-native-web/src/exports/unmountComponentAtNode/index.js +@@ -7,5 +7,7 @@ + * @noflow + */ + +-import { unmountComponentAtNode } from 'react-dom'; +-export default unmountComponentAtNode; ++export default function unmountComponentAtNode(rootTag) { ++ rootTag.unmount(); ++ return true; ++} From f18669dedd9aea119a0165a40328aacb99e91bb5 Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Tue, 18 Mar 2025 12:03:10 +0100 Subject: [PATCH 7/8] bump screens and airship --- package-lock.json | 17 +++++---- package.json | 4 +- ...e-screens+3.35.0+004+cover-all-cases.patch | 37 ------------------- ...ative-screens+3.37.0+001+hybrid-app.patch} | 0 ...ustom-animations-native-transitions.patch} | 0 ...fix-screen-flicker-on-modal-unmount.patch} | 0 6 files changed, 11 insertions(+), 47 deletions(-) delete mode 100644 patches/react-native-screens+3.35.0+004+cover-all-cases.patch rename patches/{react-native-screens+3.35.0+001+hybrid-app.patch => react-native-screens+3.37.0+001+hybrid-app.patch} (100%) rename patches/{react-native-screens+3.35.0+002+ios-custom-animations-native-transitions.patch => react-native-screens+3.37.0+002+ios-custom-animations-native-transitions.patch} (100%) rename patches/{react-native-screens+3.35.0+003+fix-screen-flicker-on-modal-unmount.patch => react-native-screens+3.37.0+003+fix-screen-flicker-on-modal-unmount.patch} (100%) diff --git a/package-lock.json b/package-lock.json index 06c5279e4e4b..765caa6b5458 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,7 +47,7 @@ "@rnmapbox/maps": "10.1.33", "@shopify/flash-list": "1.7.1", "@types/pako": "^2.0.3", - "@ua/react-native-airship": "19.2.1", + "@ua/react-native-airship": "22.0.0", "awesome-phonenumber": "^5.4.0", "babel-polyfill": "^6.26.0", "canvas-size": "^1.2.6", @@ -116,7 +116,7 @@ "react-native-release-profiler": "^0.2.1", "react-native-render-html": "6.3.1", "react-native-safe-area-context": "5.2.0", - "react-native-screens": "3.35.0", + "react-native-screens": "3.37.0", "react-native-share": "11.0.2", "react-native-sound": "^0.11.2", "react-native-svg": "15.9.0", @@ -15545,9 +15545,10 @@ } }, "node_modules/@ua/react-native-airship": { - "version": "19.2.1", - "resolved": "https://registry.npmjs.org/@ua/react-native-airship/-/react-native-airship-19.2.1.tgz", - "integrity": "sha512-DnSTR31OIUWypbUmdtbz7VyXAp+2c7737EKmfG5o2LVDkBNnJ8hO5/2G4eEGmkBLn5tv2zP8vP6nUmq8Pt2wCA==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@ua/react-native-airship/-/react-native-airship-22.0.0.tgz", + "integrity": "sha512-CVTgiCwsKJNRK3AOg3Pa7UJ0oLYDZbNPLbCnBoI0WTtNNbAFWvKqhV/mzRu70bSx/iOWBpZAHhX5/eeepHM1yQ==", + "license": "Apache-2.0", "engines": { "node": ">= 16.0.0" }, @@ -33876,9 +33877,9 @@ } }, "node_modules/react-native-screens": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.35.0.tgz", - "integrity": "sha512-rmkqb/M/SQIrXwygk6pXcOhgHltYAhidf1WceO7ujAxkr6XtwmgFyd1HIztsrJa568GrAuwPdQ11I7TpVk+XsA==", + "version": "3.37.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.37.0.tgz", + "integrity": "sha512-vEi4qZqWYoGuVGuHTv1K2XA90rgSydksmR5+tb5uhL93whl6Bch6EEXzC+8eEfj4SimiCgXBPY7r/xTXJxvnUg==", "license": "MIT", "dependencies": { "react-freeze": "^1.0.0", diff --git a/package.json b/package.json index effa6c4051d9..4271fff8dab0 100644 --- a/package.json +++ b/package.json @@ -113,7 +113,7 @@ "@rnmapbox/maps": "10.1.33", "@shopify/flash-list": "1.7.1", "@types/pako": "^2.0.3", - "@ua/react-native-airship": "19.2.1", + "@ua/react-native-airship": "22.0.0", "awesome-phonenumber": "^5.4.0", "babel-polyfill": "^6.26.0", "canvas-size": "^1.2.6", @@ -182,7 +182,7 @@ "react-native-release-profiler": "^0.2.1", "react-native-render-html": "6.3.1", "react-native-safe-area-context": "5.2.0", - "react-native-screens": "3.35.0", + "react-native-screens": "3.37.0", "react-native-share": "11.0.2", "react-native-sound": "^0.11.2", "react-native-svg": "15.9.0", diff --git a/patches/react-native-screens+3.35.0+004+cover-all-cases.patch b/patches/react-native-screens+3.35.0+004+cover-all-cases.patch deleted file mode 100644 index 98b5b853a24f..000000000000 --- a/patches/react-native-screens+3.35.0+004+cover-all-cases.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/node_modules/react-native-screens/ios/RNSScreenStackHeaderConfig.mm b/node_modules/react-native-screens/ios/RNSScreenStackHeaderConfig.mm -index 4f1c040..481be63 100644 ---- a/node_modules/react-native-screens/ios/RNSScreenStackHeaderConfig.mm -+++ b/node_modules/react-native-screens/ios/RNSScreenStackHeaderConfig.mm -@@ -824,6 +824,8 @@ static RCTResizeMode resizeModeFromCppEquiv(react::ImageResizeMode resizeMode) - return RCTResizeModeCenter; - case react::ImageResizeMode::Repeat: - return RCTResizeModeRepeat; -+ default: -+ throw @"[RNScreens] Unhandled resizeMode"; - } - } - -diff --git a/node_modules/react-native-screens/package.json b/node_modules/react-native-screens/package.json -index bb7c35f..082fda3 100644 ---- a/node_modules/react-native-screens/package.json -+++ b/node_modules/react-native-screens/package.json -@@ -156,6 +156,19 @@ - "jsSrcsDir": "./src/fabric", - "android": { - "javaPackageName": "com.swmansion.rnscreens" -+ }, -+ "ios": { -+ "componentProvider": { -+ "RNSFullWindowOverlay": "RNSFullWindowOverlay", -+ "RNSModalScreen": "RNSModalScreen", -+ "RNSScreenContainer": "RNSScreenContainerView", -+ "RNSScreen": "RNSScreenView", -+ "RNSScreenNavigationContainer": "RNSScreenNavigationContainerView", -+ "RNSScreenStackHeaderConfig": "RNSScreenStackHeaderConfig", -+ "RNSScreenStackHeaderSubview": "RNSScreenStackHeaderSubview", -+ "RNSScreenStack": "RNSScreenStackView", -+ "RNSSearchBar": "RNSSearchBar" -+ } - } - }, - "packageManager": "yarn@4.1.1" diff --git a/patches/react-native-screens+3.35.0+001+hybrid-app.patch b/patches/react-native-screens+3.37.0+001+hybrid-app.patch similarity index 100% rename from patches/react-native-screens+3.35.0+001+hybrid-app.patch rename to patches/react-native-screens+3.37.0+001+hybrid-app.patch diff --git a/patches/react-native-screens+3.35.0+002+ios-custom-animations-native-transitions.patch b/patches/react-native-screens+3.37.0+002+ios-custom-animations-native-transitions.patch similarity index 100% rename from patches/react-native-screens+3.35.0+002+ios-custom-animations-native-transitions.patch rename to patches/react-native-screens+3.37.0+002+ios-custom-animations-native-transitions.patch diff --git a/patches/react-native-screens+3.35.0+003+fix-screen-flicker-on-modal-unmount.patch b/patches/react-native-screens+3.37.0+003+fix-screen-flicker-on-modal-unmount.patch similarity index 100% rename from patches/react-native-screens+3.35.0+003+fix-screen-flicker-on-modal-unmount.patch rename to patches/react-native-screens+3.37.0+003+fix-screen-flicker-on-modal-unmount.patch From 5e2c3f94b07afaa7575c584197af454b3025d65e Mon Sep 17 00:00:00 2001 From: war-in <war-in@users.noreply.github.com> Date: Tue, 25 Mar 2025 15:15:53 +0100 Subject: [PATCH 8/8] make android build properly --- package-lock.json | 2386 ++++++----------- package.json | 26 +- ...n+0.1.256+001+remove-outdated-import.patch | 12 + ...xpo+52.0.28+001+dont-change-formdata.patch | 47 - ...ipulator+13.0.6+002+fix-type-exports.patch | 17 - ...-core+2.2.0+001+disableViewRecycling.patch | 16 - ...es-core+2.2.0+002+change-global-type.patch | 13 - patches/jest-expo+52.0.3.patch | 13 - 8 files changed, 897 insertions(+), 1633 deletions(-) create mode 100644 patches/@expensify+react-native-live-markdown+0.1.256+001+remove-outdated-import.patch delete mode 100644 patches/expo+52.0.28+001+dont-change-formdata.patch delete mode 100644 patches/expo-image-manipulator+13.0.6+002+fix-type-exports.patch delete mode 100644 patches/expo-modules-core+2.2.0+001+disableViewRecycling.patch delete mode 100644 patches/expo-modules-core+2.2.0+002+change-global-type.patch delete mode 100644 patches/jest-expo+52.0.3.patch diff --git a/package-lock.json b/package-lock.json index 44a5e0a5f88d..54c91c41674e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,8 +13,8 @@ "@dotlottie/react-player": "^1.6.3", "@expensify/react-native-background-task": "file:./modules/background-task", "@expensify/react-native-hybrid-app": "file:./modules/hybrid-app", - "@expensify/react-native-live-markdown": "0.1.244", - "@expo/metro-runtime": "^4.0.1", + "@expensify/react-native-live-markdown": "0.1.256", + "@expo/metro-runtime": "4.0.2-canary-20250306-d9d3e02", "@firebase/app": "^0.10.10", "@firebase/performance": "^0.6.8", "@formatjs/intl-datetimeformat": "^6.12.5", @@ -57,12 +57,12 @@ "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", "expensify-common": "2.0.124", - "expo": "52.0.28", - "expo-asset": "^11.0.2", - "expo-av": "^15.0.2", - "expo-font": "^13.0.3", - "expo-image": "^2.0.4", - "expo-image-manipulator": "^13.0.6", + "expo": "53.0.0-canary-20250306-d9d3e02", + "expo-asset": " 12.0.0-canary-20250306-d9d3e02", + "expo-av": "15.0.3-canary-20250306-d9d3e02", + "expo-font": "14.0.0-canary-20250306-d9d3e02", + "expo-image": "3.0.0-canary-20250306-d9d3e02", + "expo-image-manipulator": "13.0.7-canary-20250306-d9d3e02", "fast-equals": "^4.0.3", "focus-trap-react": "^11.0.3", "howler": "^2.2.4", @@ -91,6 +91,7 @@ "react-native-collapsible": "^1.6.2", "react-native-config": "1.5.3", "react-native-device-info": "10.3.1", + "react-native-document-picker": "^9.3.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "2.24.0", @@ -172,7 +173,7 @@ "@react-native-community/cli-platform-ios": "15.0.1", "@react-native-community/eslint-config": "3.2.0", "@react-native/babel-preset": "0.78.0", - "@react-native/metro-config": "0.78.0", + "@react-native/metro-config": "0.78.1", "@react-navigation/devtools": "^6.0.10", "@storybook/addon-a11y": "^8.1.10", "@storybook/addon-essentials": "^8.1.10", @@ -249,7 +250,7 @@ "jest-circus": "29.4.1", "jest-cli": "29.4.1", "jest-environment-jsdom": "^29.4.1", - "jest-expo": "52.0.3", + "jest-expo": "53.0.0-canary-20250306-d9d3e02", "jest-transformer-svg": "^2.0.1", "jest-when": "^3.5.2", "link": "^2.1.1", @@ -303,9 +304,9 @@ "license": "UNLICENSED" }, "node_modules/@0no-co/graphql.web": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.0.13.tgz", - "integrity": "sha512-jqYxOevheVTU1S36ZdzAkJIdvRp2m3OYIG5SEoKDw5NI8eVwkoI0D/Q3DYNGmXCxkA6CQuoa7zvMiDPTLqUNuw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@0no-co/graphql.web/-/graphql.web-1.1.2.tgz", + "integrity": "sha512-N2NGsU5FLBhT8NZ+3l2YrzZSHITjNXNuDhC4iDiikv0IujaJ0Xc6xIxQZ/Ek3Cb+rgPjnLHYyJm11tInuJn+cw==", "license": "MIT", "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" @@ -533,13 +534,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", - "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -1124,12 +1125,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", - "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.26.9" + "@babel/types": "^7.27.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -1248,6 +1249,7 @@ }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -1306,41 +1308,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", @@ -2810,14 +2777,14 @@ "license": "MIT" }, "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" @@ -2862,9 +2829,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", - "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -3723,9 +3690,9 @@ "link": true }, "node_modules/@expensify/react-native-live-markdown": { - "version": "0.1.244", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.244.tgz", - "integrity": "sha512-f9LD7Xbu8YG5Acc5gFsMhth8SoOFmE6aDeHsj21PYn2ZJXCJKJVCsctkH1o8MNhlKy+IEIM4pUSret3DGq0ikg==", + "version": "0.1.256", + "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.256.tgz", + "integrity": "sha512-tAra/qwrBz/B8B1EwxEaI0td4nNM0zyh8CD0IHDapu5kC65vk9MVicSkUIIJSeSLgyDCXtUmmBSd4SOmNskstA==", "license": "MIT", "workspaces": [ "./example", @@ -3741,67 +3708,48 @@ "react-native-reanimated": ">=3.17.0" } }, - "node_modules/@expo/bunyan": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.1.tgz", - "integrity": "sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==", - "license": "MIT", - "dependencies": { - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@expo/cli": { - "version": "0.22.11", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.22.11.tgz", - "integrity": "sha512-D5Vl7IBLi53WmL57NAFYB1mIqlMQxDIZVzbi/FTpo5a3oIHELKr0ElTKeOLf1f1/Y3FA7cxgphoawdA0+O1JWQ==", + "version": "1.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-1.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-Pp7PgZeG7O9Ou5d2W8vf3gwsUrIrFIw9VIycwJf37xplOFS/e/imenbR191N/FATxU9bzFThg0GN6p8fSYdeNA==", "license": "MIT", "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "^0.0.5", - "@expo/config": "~10.0.8", - "@expo/config-plugins": "~9.0.14", + "@expo/config": "11.0.0-canary-20250306-d9d3e02", + "@expo/config-plugins": "9.1.0-canary-20250306-d9d3e02", "@expo/devcert": "^1.1.2", - "@expo/env": "~0.4.1", - "@expo/image-utils": "^0.6.4", - "@expo/json-file": "^9.0.1", - "@expo/metro-config": "~0.19.9", - "@expo/osascript": "^2.1.5", - "@expo/package-manager": "^1.7.1", - "@expo/plist": "^0.2.1", - "@expo/prebuild-config": "^8.0.25", - "@expo/rudder-sdk-node": "^1.1.1", + "@expo/env": "1.0.1-canary-20250306-d9d3e02", + "@expo/image-utils": "0.6.6-canary-20250306-d9d3e02", + "@expo/json-file": "9.0.3-canary-20250306-d9d3e02", + "@expo/metro-config": "0.20.0-canary-20250306-d9d3e02", + "@expo/osascript": "2.1.7-canary-20250306-d9d3e02", + "@expo/package-manager": "1.6.2-canary-20250306-d9d3e02", + "@expo/plist": "0.2.3-canary-20250306-d9d3e02", + "@expo/prebuild-config": "9.0.0-canary-20250306-d9d3e02", "@expo/spawn-async": "^1.7.2", + "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.76.6", + "@react-native/dev-middleware": "0.78.0", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", - "bplist-creator": "0.0.7", + "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", - "cacache": "^18.0.2", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", - "fast-glob": "^3.3.2", - "form-data": "^3.0.1", "freeport-async": "^2.0.0", - "fs-extra": "~8.1.0", "getenv": "^1.0.0", "glob": "^10.4.2", - "internal-ip": "^4.3.0", - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1", - "lodash.debounce": "^4.0.8", - "minimatch": "^3.0.4", + "internal-ip": "6.1.0", + "minimatch": "^9.0.0", "node-forge": "^1.3.1", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", @@ -3822,12 +3770,9 @@ "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", - "tar": "^6.2.1", - "temp-dir": "^2.0.0", - "tempy": "^0.7.1", + "tar": "^7.4.3", "terminal-link": "^2.1.1", "undici": "^6.18.2", - "unique-string": "~2.0.0", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, @@ -3881,6 +3826,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@expo/cli/node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/@expo/cli/node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -3920,20 +3874,6 @@ "node": ">=0.8.0" } }, - "node_modules/@expo/cli/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/@expo/cli/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -3954,21 +3894,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/cli/node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@expo/cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3978,15 +3903,6 @@ "node": ">=8" } }, - "node_modules/@expo/cli/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/@expo/cli/node_modules/log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -4070,6 +3986,21 @@ "node": ">=4" } }, + "node_modules/@expo/cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@expo/cli/node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -4079,6 +4010,34 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/@expo/cli/node_modules/minizlib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz", + "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==", + "license": "MIT", + "dependencies": { + "minipass": "^7.0.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@expo/cli/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@expo/cli/node_modules/onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", @@ -4195,10 +4154,25 @@ "node": ">=4" } }, + "node_modules/@expo/cli/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@expo/cli/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4231,13 +4205,30 @@ "node": ">=8" } }, - "node_modules/@expo/cli/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "license": "MIT", + "node_modules/@expo/cli/node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, "engines": { - "node": ">= 4.0.0" + "node": ">=18" + } + }, + "node_modules/@expo/cli/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" } }, "node_modules/@expo/code-signing-certificates": { @@ -4251,15 +4242,15 @@ } }, "node_modules/@expo/config": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-10.0.10.tgz", - "integrity": "sha512-wI9/iam3Irk99ADGM/FyD7YrrEibIZXR4huSZiU5zt9o3dASOKhqepiNJex4YPiktLfKhYrpSEJtwno1g0SrgA==", + "version": "11.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-11.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-f/mkS3sYTYjo67MU3daDfH5JOYVXFcOg8gcfgbo+QsFiRJpKD72uTit/mAL+59bvPxsP38KKQJNAzJ1Yey9q4w==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~9.0.15", - "@expo/config-types": "^52.0.4", - "@expo/json-file": "^9.0.2", + "@expo/config-plugins": "9.1.0-canary-20250306-d9d3e02", + "@expo/config-types": "53.0.0-canary-20250306-d9d3e02", + "@expo/json-file": "9.0.3-canary-20250306-d9d3e02", "deepmerge": "^4.3.1", "getenv": "^1.0.0", "glob": "^10.4.2", @@ -4272,14 +4263,14 @@ } }, "node_modules/@expo/config-plugins": { - "version": "9.0.16", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.0.16.tgz", - "integrity": "sha512-AnJzmFB7ztM0JZBn+Ut6BQYC2WeGDzfIhBZVOIPMQbdBqvwJ7TmFEsGTGSxdwU/VqJaJK2sWxyt1zbWkpIYCEA==", + "version": "9.1.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-9.1.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-8v0v67OV6jcSBUOocyc0ELo66DkZks1wfT1FPHPLZz43J/oOrptAdm71ZKvHweSdHkbOgkS6DyciKdWnjcK6gg==", "license": "MIT", "dependencies": { - "@expo/config-types": "^52.0.5", - "@expo/json-file": "~9.0.2", - "@expo/plist": "^0.2.2", + "@expo/config-types": "53.0.0-canary-20250306-d9d3e02", + "@expo/json-file": "9.0.3-canary-20250306-d9d3e02", + "@expo/plist": "0.2.3-canary-20250306-d9d3e02", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", @@ -4405,9 +4396,9 @@ } }, "node_modules/@expo/config-plugins/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4429,9 +4420,9 @@ } }, "node_modules/@expo/config-types": { - "version": "52.0.5", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-52.0.5.tgz", - "integrity": "sha512-AMDeuDLHXXqd8W+0zSjIt7f37vUd/BP8p43k68NHpyAvQO+z8mbQZm3cNQVAMySeayK2XoPigAFB1JF2NFajaA==", + "version": "53.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-53.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-Kna72gQozGDCeCnayyKksA8XDdGozvK7oL9Yp0/DdjCwZgut3uXE38aN9Agmi5dYK6XzbakpPUimSxNU/i083w==", "license": "MIT" }, "node_modules/@expo/config/node_modules/@babel/code-frame": { @@ -4497,9 +4488,9 @@ } }, "node_modules/@expo/config/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4622,9 +4613,9 @@ } }, "node_modules/@expo/env": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.4.2.tgz", - "integrity": "sha512-TgbCgvSk0Kq0e2fLoqHwEBL4M0ztFjnBEz0YCDm5boc1nvkV1VMuIMteVdeBwnTh8Z0oPJTwHCD49vhMEt1I6A==", + "version": "1.0.1-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/env/-/env-1.0.1-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-9+ZxeROpsPS/3K51uUfXyoXw8Y3pORT+u9K5rkhkOeeNRTE7FR8f4NFgDWOk7qle2NkG6/JTnE2QbJSWhqfyUQ==", "license": "MIT", "dependencies": { "chalk": "^4.0.0", @@ -4705,9 +4696,9 @@ } }, "node_modules/@expo/fingerprint": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.11.7.tgz", - "integrity": "sha512-2rfYVS4nqWmOPQk+AL5GPfPSawbqqmI5mL++bxAhWADt+d+fjoQYfIrGtjZxQ30f9o/a1PrRPVSuh2j09+diVg==", + "version": "0.11.12-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.11.12-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-77hVUZqByM7bIMTYy4vf0canNEuPlp1mjKn9T8VnMMAkiJMJJGi6hMRyU0nsnJM8x5NtZD/L9DgoKhK8iYy9jw==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -4716,7 +4707,7 @@ "debug": "^4.3.4", "find-up": "^5.0.0", "getenv": "^1.0.0", - "minimatch": "^3.0.4", + "minimatch": "^9.0.0", "p-limit": "^3.1.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" @@ -4746,6 +4737,15 @@ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "license": "MIT" }, + "node_modules/@expo/fingerprint/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@expo/fingerprint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4789,10 +4789,25 @@ "node": ">=8" } }, + "node_modules/@expo/fingerprint/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@expo/fingerprint/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4814,14 +4829,13 @@ } }, "node_modules/@expo/image-utils": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.6.5.tgz", - "integrity": "sha512-RsS/1CwJYzccvlprYktD42KjyfWZECH6PPIEowvoSmXfGLfdViwcUEI4RvBfKX5Jli6P67H+6YmHvPTbGOboew==", + "version": "0.6.6-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.6.6-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-2Sqi+10F8uKNYWZMDxvWP1cXUmdpRq50NYTBTV0IgHDsBc+bcJ+fWYe/4NmF8aukY/MgB0BAycIiDBxXn5JZOg==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.0.0", - "fs-extra": "9.0.0", "getenv": "^1.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", @@ -4880,21 +4894,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "node_modules/@expo/image-utils/node_modules/fs-extra": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", - "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@expo/image-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4905,9 +4904,9 @@ } }, "node_modules/@expo/image-utils/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4928,19 +4927,10 @@ "node": ">=8" } }, - "node_modules/@expo/image-utils/node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/@expo/json-file": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.2.tgz", - "integrity": "sha512-yAznIUrybOIWp3Uax7yRflB0xsEpvIwIEqIjao9SGi2Gaa+N0OamWfe0fnXBSWF+2zzF4VvqwT4W5zwelchfgw==", + "version": "9.0.3-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-9.0.3-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-9qrcHOEUqoesMRcjCxnxISvYT6XmKS0k30yBaVOMJ7UN021kgQbe5KT58Nf6kv8tkZ90AouAI1i/XqlBbbOayw==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", @@ -4958,27 +4948,26 @@ } }, "node_modules/@expo/metro-config": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.19.9.tgz", - "integrity": "sha512-JAsLWhFQqwLH0KsI4OMbPXsKFji5KJEmsi+/02Sz1GCT17YrjRmv1fZ91regUS/FUH2Y/PDAE/+2ulrTgMeG7A==", + "version": "0.20.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.20.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-LRQroidJZCRsdmIQueCZJ9CeDeDsNGMrhB7NrrljmkMtQW2VKoBcugM+DDY+lLADr9S3a5JRl74new6HQDkWZQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", - "@expo/config": "~10.0.8", - "@expo/env": "~0.4.1", - "@expo/json-file": "~9.0.1", + "@expo/config": "11.0.0-canary-20250306-d9d3e02", + "@expo/env": "1.0.1-canary-20250306-d9d3e02", + "@expo/json-file": "9.0.3-canary-20250306-d9d3e02", "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "debug": "^4.3.2", - "fs-extra": "^9.1.0", "getenv": "^1.0.0", "glob": "^10.4.2", "jsc-safe-url": "^0.2.4", "lightningcss": "~1.27.0", - "minimatch": "^3.0.4", + "minimatch": "^9.0.0", "postcss": "~8.4.32", "resolve-from": "^5.0.0" } @@ -5061,7 +5050,16 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/metro-config/node_modules/glob/node_modules/minimatch": { + "node_modules/@expo/metro-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@expo/metro-config/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", @@ -5076,15 +5074,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@expo/metro-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/@expo/metro-config/node_modules/minipass": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", @@ -5107,18 +5096,18 @@ } }, "node_modules/@expo/metro-runtime": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-4.0.1.tgz", - "integrity": "sha512-CRpbLvdJ1T42S+lrYa1iZp1KfDeBp4oeZOK3hdpiS5n0vR0nhD6sC1gGF0sTboCTp64tLteikz5Y3j53dvgOIw==", + "version": "4.0.2-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-4.0.2-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-38Z8BacXSNzHGW5FLd/2tcFzKiCS9k7gkCMP7OwibqzBKHEdGdG64NYO23sdMXpi/ijaqPxkrLxtGGUwMLEphg==", "license": "MIT", "peerDependencies": { "react-native": "*" } }, "node_modules/@expo/osascript": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.5.tgz", - "integrity": "sha512-Cp7YF7msGiTAIbFdzNovwHBfecdMLVL5XzSqq4xQz72ALFCQ3uSIUXRph1QV2r61ugH7Yem0gY8yi7RcDlI4qg==", + "version": "2.1.7-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.7-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-84GY3VyI/KSSixjAVtQtZHTZ6qb6naGrv0CLFLOSxTIfYEUrdkutxMIAxxIPawsTWzZdTh3Ph8ZR8jSdrfTYjw==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", @@ -5129,32 +5118,17 @@ } }, "node_modules/@expo/package-manager": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.7.1.tgz", - "integrity": "sha512-DKbELrTOdl7U3KT0C07Aka9P+sUP3LL+1UTKf1KmLx2x2gPH1IC+c68N7iQlwNt+yA37qIw6/vKoqyTGu5EL9g==", + "version": "1.6.2-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.6.2-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-sF4tK3fHluqXJSzeF4tfJNLqCxLrLGigu8f9BDFZsUnlp0vjOViV0ymEJPBcx6//pgCPTuCWkDoGsj5UyYwbcQ==", "license": "MIT", "dependencies": { - "@expo/json-file": "^9.0.1", + "@expo/json-file": "9.0.3-canary-20250306-d9d3e02", "@expo/spawn-async": "^1.7.2", - "ansi-regex": "^5.0.0", "chalk": "^4.0.0", - "find-up": "^5.0.0", - "js-yaml": "^3.13.1", - "micromatch": "^4.0.8", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", - "resolve-workspace-root": "^2.0.0", - "split": "^1.0.1", - "sudo-prompt": "9.1.1" - } - }, - "node_modules/@expo/package-manager/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" + "resolve-workspace-root": "^2.0.0" } }, "node_modules/@expo/package-manager/node_modules/ansi-styles": { @@ -5435,22 +5409,6 @@ "node": ">=6" } }, - "node_modules/@expo/package-manager/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@expo/package-manager/node_modules/sudo-prompt": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", - "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "license": "MIT" - }, "node_modules/@expo/package-manager/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5464,45 +5422,62 @@ } }, "node_modules/@expo/plist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.2.tgz", - "integrity": "sha512-ZZGvTO6vEWq02UAPs3LIdja+HRO18+LRI5QuDl6Hs3Ps7KX7xU6Y6kjahWKY37Rx2YjNpX07dGpBFzzC+vKa2g==", + "version": "0.2.3-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.2.3-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-2ImG5M36tAuKH5YQe7bvtzjQdkCakGmjsyj62RCWwrQ4TsZW7Z0DUHrjMl3GLt7hoy/tzYFGNWLQ7/sASDECyw==", "license": "MIT", "dependencies": { - "@xmldom/xmldom": "~0.7.7", + "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" + "xmlbuilder": "^15.1.1" + } + }, + "node_modules/@expo/plist/node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@expo/plist/node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "license": "MIT", + "engines": { + "node": ">=8.0" } }, "node_modules/@expo/prebuild-config": { - "version": "8.0.25", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-8.0.25.tgz", - "integrity": "sha512-xYHV8eiydZEDedf2AGaOFRFwcGlaSzrqQH94dwX42urNCU03FO0RUb7yPp4nkb7WNFg5Ov6PDsV7ES+YwzNgYQ==", + "version": "9.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-9.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-7K7NdT/t8GaYHC30EydZQV63jrFLSGYrCxtPIp9VHqjiqInXZlUOoe6x/TnCncWPTMOirXSW1S8OZw4t15gKAg==", "license": "MIT", "dependencies": { - "@expo/config": "~10.0.8", - "@expo/config-plugins": "~9.0.14", - "@expo/config-types": "^52.0.3", - "@expo/image-utils": "^0.6.4", - "@expo/json-file": "^9.0.1", - "@react-native/normalize-colors": "0.76.6", + "@expo/config": "11.0.0-canary-20250306-d9d3e02", + "@expo/config-plugins": "9.1.0-canary-20250306-d9d3e02", + "@expo/config-types": "53.0.0-canary-20250306-d9d3e02", + "@expo/image-utils": "0.6.6-canary-20250306-d9d3e02", + "@expo/json-file": "9.0.3-canary-20250306-d9d3e02", + "@react-native/normalize-colors": "0.78.0", "debug": "^4.3.1", - "fs-extra": "^9.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0", "xml2js": "0.6.0" } }, "node_modules/@expo/prebuild-config/node_modules/@react-native/normalize-colors": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.76.6.tgz", - "integrity": "sha512-1n4udXH2Cla31iA/8eLRdhFHpYUYK1NKWCn4m1Sr9L4SarWKAYuRFliK1fcLvPPALCFoFlWvn8I0ekdUOHMzDQ==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.78.0.tgz", + "integrity": "sha512-FkeLvLLaMYlGsSntixTUvlNtc1OHij4TYRtymMNPWqBKFAMXJB/qe45VxXNzWP+jD0Ok6yXineQFtktKcHk9PA==", "license": "MIT" }, "node_modules/@expo/prebuild-config/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -5511,24 +5486,6 @@ "node": ">=10" } }, - "node_modules/@expo/rudder-sdk-node": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", - "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", - "license": "MIT", - "dependencies": { - "@expo/bunyan": "^4.0.0", - "@segment/loosely-validate-event": "^2.0.0", - "fetch-retry": "^4.1.1", - "md5": "^2.2.1", - "node-fetch": "^2.6.1", - "remove-trailing-slash": "^0.1.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@expo/sdk-runtime-versions": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", @@ -5551,6 +5508,12 @@ "version": "14.0.0", "license": "MIT" }, + "node_modules/@expo/ws-tunnel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@expo/ws-tunnel/-/ws-tunnel-1.0.6.tgz", + "integrity": "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q==", + "license": "MIT" + }, "node_modules/@expo/xcpretty": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.2.tgz", @@ -6372,6 +6335,27 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/fs-minipass/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/@isaacs/ttlcache": { "version": "1.4.1", "license": "ISC", @@ -7543,6 +7527,7 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -7554,6 +7539,7 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -7561,6 +7547,7 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -7570,18 +7557,6 @@ "node": ">= 8" } }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "license": "ISC", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@npmcli/move-file": { "version": "2.0.1", "dev": true, @@ -9672,6 +9647,8 @@ }, "node_modules/@react-native-community/netinfo": { "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-11.2.1.tgz", + "integrity": "sha512-n9kgmH7vLaU7Cdo8vGfJGGwhrlgppaOSq5zKj9I7H4k5iRM3aNtwURw83mgrc22Ip7nSye2afZV2xDiIyvHttQ==", "license": "MIT", "peerDependencies": { "react-native": ">=0.59" @@ -10231,16 +10208,16 @@ } }, "node_modules/@react-native/babel-plugin-codegen/node_modules/@babel/traverse": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", - "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.9", - "@babel/parser": "^7.26.9", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.9", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -10357,38 +10334,6 @@ } } }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/debugger-frontend": { - "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.78.0.tgz", - "integrity": "sha512-KQYD9QlxES/VdmXh9EEvtZCJK1KAemLlszQq4dpLU1stnue5N8dnCY6A7PpStMf5UtAMk7tiniQhaicw0uVHgQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/@react-native/dev-middleware": { - "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.78.0.tgz", - "integrity": "sha512-zEafAZdOz4s37Jh5Xcv4hJE5qZ6uNxgrTLcpjDOJnQG6dO34/BoZeXvDrjomQFNn6ogdysR51mKJStaQ3ixp5A==", - "license": "MIT", - "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.78.0", - "chrome-launcher": "^0.15.2", - "chromium-edge-launcher": "^0.2.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "invariant": "^2.2.4", - "nullthrows": "^1.1.1", - "open": "^7.0.3", - "selfsigned": "^2.4.1", - "serve-static": "^1.16.2", - "ws": "^6.2.3" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@react-native/community-cli-plugin/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -10447,15 +10392,6 @@ "ms": "2.0.0" } }, - "node_modules/@react-native/community-cli-plugin/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/@react-native/community-cli-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10471,21 +10407,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/@react-native/community-cli-plugin/node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/@react-native/community-cli-plugin/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10499,30 +10420,31 @@ } }, "node_modules/@react-native/debugger-frontend": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.76.6.tgz", - "integrity": "sha512-kP97xMQjiANi5/lmf8MakS7d8FTJl+BqYHQMqyvNiY+eeWyKnhqW2GL2v3eEUBAuyPBgJGivuuO4RvjZujduJg==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.78.0.tgz", + "integrity": "sha512-KQYD9QlxES/VdmXh9EEvtZCJK1KAemLlszQq4dpLU1stnue5N8dnCY6A7PpStMf5UtAMk7tiniQhaicw0uVHgQ==", "license": "BSD-3-Clause", "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.76.6.tgz", - "integrity": "sha512-1bAyd2/X48Nzb45s5l2omM75vy764odx/UnDs4sJfFCuK+cupU4nRPgl0XWIqgdM/2+fbQ3E4QsVS/WIKTFxvQ==", + "version": "0.78.0", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.78.0.tgz", + "integrity": "sha512-zEafAZdOz4s37Jh5Xcv4hJE5qZ6uNxgrTLcpjDOJnQG6dO34/BoZeXvDrjomQFNn6ogdysR51mKJStaQ3ixp5A==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.76.6", + "@react-native/debugger-frontend": "0.78.0", "chrome-launcher": "^0.15.2", "chromium-edge-launcher": "^0.2.0", "connect": "^3.6.5", "debug": "^2.2.0", + "invariant": "^2.2.4", "nullthrows": "^1.1.1", "open": "^7.0.3", "selfsigned": "^2.4.1", - "serve-static": "^1.13.1", + "serve-static": "^1.16.2", "ws": "^6.2.3" }, "engines": { @@ -10538,12 +10460,36 @@ "ms": "2.0.0" } }, + "node_modules/@react-native/dev-middleware/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/@react-native/dev-middleware/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, + "node_modules/@react-native/dev-middleware/node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/@react-native/gradle-plugin": { "version": "0.78.0", "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.78.0.tgz", @@ -10581,14 +10527,14 @@ } }, "node_modules/@react-native/metro-config": { - "version": "0.78.0", - "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.78.0.tgz", - "integrity": "sha512-fPdIPMXTIZfpA4zLuTdeEQYAtNj8pGXnXbil9bfoB5PPf7seacreSxqxqwihRSRafl29j6kXSBgS7TskPBhGow==", + "version": "0.78.1", + "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.78.1.tgz", + "integrity": "sha512-T1oAVGGKKscpnfYKkKTGtxZaMcUrkZfHkJn4m9behp0NpWzijRKlo7N69+IKWAwQGSs1l2UJOhQrKbPkhdMgtw==", "dev": true, "license": "MIT", "dependencies": { - "@react-native/js-polyfills": "0.78.0", - "@react-native/metro-babel-transformer": "0.78.0", + "@react-native/js-polyfills": "0.78.1", + "@react-native/metro-babel-transformer": "0.78.1", "metro-config": "^0.81.0", "metro-runtime": "^0.81.0" }, @@ -10596,6 +10542,150 @@ "node": ">=18" } }, + "node_modules/@react-native/metro-config/node_modules/@babel/traverse": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@react-native/metro-config/node_modules/@react-native/babel-plugin-codegen": { + "version": "0.78.1", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.78.1.tgz", + "integrity": "sha512-rD0tnct/yPEtoOc8eeFHIf8ZJJJEzLkmqLs8HZWSkt3w9VYWngqLXZxiDGqv0ngXjunAlC/Hpq+ULMVOvOnByw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.3", + "@react-native/codegen": "0.78.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/metro-config/node_modules/@react-native/babel-preset": { + "version": "0.78.1", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.78.1.tgz", + "integrity": "sha512-yTVcHmEdNQH4Ju7lhvbiQaGxBpMcalgkBy/IvHowXKk/ex3nY1PolF16/mBG1BrefcUA/rtJpqTtk2Ii+7T/Lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-default-from": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-classes": "^7.25.4", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.25.2", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/template": "^7.25.0", + "@react-native/babel-plugin-codegen": "0.78.1", + "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, + "node_modules/@react-native/metro-config/node_modules/@react-native/codegen": { + "version": "0.78.1", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.78.1.tgz", + "integrity": "sha512-kGG5qAM9JdFtxzUwe7c6CyJbsU2PnaTrtCHA2dF8VEiNX1K3yd9yKPzfkxA7HPvmHoAn3ga1941O79BStWcM3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "glob": "^7.1.1", + "hermes-parser": "0.25.1", + "invariant": "^2.2.4", + "jscodeshift": "^17.0.0", + "nullthrows": "^1.1.1", + "yargs": "^17.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + } + }, + "node_modules/@react-native/metro-config/node_modules/@react-native/js-polyfills": { + "version": "0.78.1", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.78.1.tgz", + "integrity": "sha512-Ogcv4QOA1o3IyErrf/i4cDnP+nfNcIfGTgw6iNQyAPry1xjPOz4ziajskLpWG/3ADeneIZuyZppKB4A28rZSvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@react-native/metro-config/node_modules/@react-native/metro-babel-transformer": { + "version": "0.78.1", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.78.1.tgz", + "integrity": "sha512-jQWf69D+QTMvSZSWLR+cr3VUF16rGB6sbD+bItD8Czdfn3hajzfMoHJTkVFP7991cjK5sIVekNiQIObou8JSQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@react-native/babel-preset": "0.78.1", + "hermes-parser": "0.25.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/core": "*" + } + }, "node_modules/@react-native/normalize-color": { "version": "2.1.0", "license": "MIT" @@ -10839,19 +10929,11 @@ } } }, - "node_modules/@segment/loosely-validate-event": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", - "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", - "dependencies": { - "component-type": "^1.2.1", - "join-component": "^1.1.0" - } - }, "node_modules/@shopify/flash-list": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@shopify/flash-list/-/flash-list-1.7.1.tgz", "integrity": "sha512-sUYl7h8ydJutufA26E42Hj7cLvaBTpkMIyNJiFrxUspkcANb6jnFiLt9rEwAuDjvGk/C0lHau+WyT6ZOxqVPwg==", + "license": "MIT", "dependencies": { "recyclerlistview": "4.2.1", "tslib": "2.6.3" @@ -10862,6 +10944,12 @@ "react-native": "*" } }, + "node_modules/@shopify/flash-list/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "license": "0BSD" + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", @@ -15565,9 +15653,9 @@ "license": "ISC" }, "node_modules/@urql/core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.1.0.tgz", - "integrity": "sha512-yC3sw8yqjbX45GbXxfiBY8GLYCiyW/hLBbQF9l3TJrv4ro00Y0ChkKaD9I2KntRxAVm9IYBqh0awX8fwWAe/Yw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@urql/core/-/core-5.1.1.tgz", + "integrity": "sha512-aGh024z5v2oINGD/In6rAtVKTm4VmQ2TxKQBAtk2ZSME5dunZFcjltw4p5ENQg+5CBhZ3FHMzl0Oa+rwqiWqlg==", "license": "MIT", "dependencies": { "@0no-co/graphql.web": "^1.0.5", @@ -15575,12 +15663,12 @@ } }, "node_modules/@urql/exchange-retry": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.0.tgz", - "integrity": "sha512-FLt+d81gP4oiHah4hWFDApimc+/xABWMU1AMYsZ1PVB0L0YPtrMCjbOp9WMM7hBzy4gbTDrG24sio0dCfSh/HQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-1.3.1.tgz", + "integrity": "sha512-EEmtFu8JTuwsInqMakhLq+U3qN8ZMd5V3pX44q0EqD2imqTDsa8ikZqJ1schVrN8HljOdN+C08cwZ1/r5uIgLw==", "license": "MIT", "dependencies": { - "@urql/core": "^5.0.0", + "@urql/core": "^5.1.1", "wonka": "^6.3.2" }, "peerDependencies": { @@ -15970,6 +16058,7 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", + "dev": true, "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", @@ -16497,6 +16586,7 @@ }, "node_modules/array-union": { "version": "2.1.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -16666,10 +16756,12 @@ }, "node_modules/asynckit": { "version": "0.4.0", + "dev": true, "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", + "dev": true, "license": "ISC", "engines": { "node": ">= 4.0.0" @@ -16711,6 +16803,7 @@ }, "node_modules/babel-core": { "version": "7.0.0-bridge.0", + "dev": true, "license": "MIT", "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -17293,20 +17386,32 @@ } }, "node_modules/babel-preset-expo": { - "version": "12.0.6", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-12.0.6.tgz", - "integrity": "sha512-az3H7gDVo0wxNBAFES8h5vLLWE8NPGkD9g5P962hDEOqZUdyPacb9MOzicypeLmcq9zQWr6E3iVtEHoNagCTTQ==", + "version": "13.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-13.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-65eIaxpY2EmsBIpCcF+ZvC9vWQn/1PML2tnGiB5dPSAmkmNlSPiC69WuD4pDEDX4L4Sy1pfEuuGPNEVixxGasQ==", "license": "MIT", "dependencies": { + "@babel/helper-module-imports": "^7.25.9", "@babel/plugin-proposal-decorators": "^7.12.9", + "@babel/plugin-proposal-export-default-from": "^7.24.7", + "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.22.15", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-runtime": "^7.24.7", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.76.6", + "@react-native/babel-preset": "0.78.0", "babel-plugin-react-native-web": "~0.19.13", - "react-refresh": "^0.14.2" + "babel-plugin-syntax-hermes-parser": "^0.25.1", + "babel-plugin-transform-flow-enums": "^0.0.2", + "debug": "^4.3.4", + "react-refresh": "^0.14.2", + "resolve-from": "^5.0.0" }, "peerDependencies": { "babel-plugin-react-compiler": "^19.0.0-beta-9ee70a1-20241017", @@ -17321,271 +17426,12 @@ } } }, - "node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.6.tgz", - "integrity": "sha512-yFC9I/aDBOBz3ZMlqKn2NY/mDUtCksUNZ7AQmBiTAeVTUP0ujEjE0hTOx5Qd+kok7A7hwZEX87HdSgjiJZfr5g==", - "license": "MIT", - "dependencies": { - "@react-native/codegen": "0.76.6" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/babel-preset-expo/node_modules/@react-native/babel-preset": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.76.6.tgz", - "integrity": "sha512-ojlVWY6S/VE/nb9hIRetPMTsW9ZmGb2R3dnToEXAtQQDz41eHMHXbkw/k2h0THp6qhas25ruNvn3N5n2o+lBzg==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-proposal-export-default-from": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-default-from": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-flow-strip-types": "^7.25.2", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-runtime": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-typescript": "^7.25.2", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/template": "^7.25.0", - "@react-native/babel-plugin-codegen": "0.76.6", - "babel-plugin-syntax-hermes-parser": "^0.25.1", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/babel-preset-expo/node_modules/@react-native/codegen": { - "version": "0.76.6", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.76.6.tgz", - "integrity": "sha512-BABb3e5G/+hyQYEYi0AODWh2km2d8ERoASZr6Hv90pVXdUHRYR+yxCatX7vSd9rnDUYndqRTzD0hZWAucPNAKg==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.25.3", - "glob": "^7.1.1", - "hermes-parser": "0.23.1", - "invariant": "^2.2.4", - "jscodeshift": "^0.14.0", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1", - "yargs": "^17.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/babel-preset-expo/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-preset-expo/node_modules/ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/babel-preset-expo/node_modules/babel-plugin-react-native-web": { "version": "0.19.13", "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz", "integrity": "sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==", "license": "MIT" }, - "node_modules/babel-preset-expo/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-preset-expo/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-preset-expo/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/babel-preset-expo/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-preset-expo/node_modules/hermes-estree": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz", - "integrity": "sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==", - "license": "MIT" - }, - "node_modules/babel-preset-expo/node_modules/hermes-parser": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz", - "integrity": "sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.23.1" - } - }, - "node_modules/babel-preset-expo/node_modules/jscodeshift": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", - "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.13.16", - "@babel/parser": "^7.13.16", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/preset-flow": "^7.13.13", - "@babel/preset-typescript": "^7.13.0", - "@babel/register": "^7.13.16", - "babel-core": "^7.0.0-bridge.0", - "chalk": "^4.1.2", - "flow-parser": "0.*", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "neo-async": "^2.5.0", - "node-dir": "^0.1.17", - "recast": "^0.21.0", - "temp": "^0.8.4", - "write-file-atomic": "^2.3.0" - }, - "bin": { - "jscodeshift": "bin/jscodeshift.js" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/babel-preset-expo/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/babel-preset-expo/node_modules/recast": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", - "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", - "license": "MIT", - "dependencies": { - "ast-types": "0.15.2", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/babel-preset-expo/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-preset-expo/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/babel-preset-jest": { "version": "29.6.3", "license": "MIT", @@ -17899,12 +17745,12 @@ "license": "MIT" }, "node_modules/bplist-creator": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz", - "integrity": "sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", + "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", "license": "MIT", "dependencies": { - "stream-buffers": "~2.2.0" + "stream-buffers": "2.2.x" } }, "node_modules/bplist-parser": { @@ -18026,22 +17872,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "license": "MIT", - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "license": "MIT" - }, "node_modules/buffer-crc32": { "version": "0.2.13", "dev": true, @@ -18057,12 +17887,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "license": "MIT" - }, "node_modules/buffer-from": { "version": "1.1.2", "license": "MIT" @@ -18242,100 +18066,6 @@ "typewise-core": "^1.2" } }, - "node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/cacheable-lookup": { "version": "5.0.4", "dev": true, @@ -18554,15 +18284,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, "node_modules/chokidar": { "version": "3.6.0", "dev": true, @@ -18588,6 +18309,7 @@ }, "node_modules/chownr": { "version": "2.0.0", + "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -18693,6 +18415,7 @@ }, "node_modules/clean-stack": { "version": "2.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -18905,6 +18628,7 @@ }, "node_modules/combined-stream": { "version": "1.0.8", + "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -18963,15 +18687,6 @@ "url": "https://www.patreon.com/infusion" } }, - "node_modules/component-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz", - "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/compress-commons": { "version": "4.1.2", "dev": true, @@ -19505,6 +19220,7 @@ }, "node_modules/core-util-is": { "version": "1.0.2", + "dev": true, "license": "MIT" }, "node_modules/corser": { @@ -19683,15 +19399,6 @@ "node": ">= 8" } }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, "node_modules/crypto-js": { "version": "4.2.0", "license": "MIT" @@ -20056,9 +19763,10 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -20185,134 +19893,15 @@ } }, "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "license": "BSD-2-Clause", "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/default-gateway/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-gateway/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" + "execa": "^5.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/default-gateway/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/default-gateway/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "node": ">= 10" } }, "node_modules/defaults": { @@ -20464,6 +20053,7 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -20480,10 +20070,6 @@ "dev": true, "license": "MIT" }, - "node_modules/denodeify": { - "version": "1.2.1", - "license": "MIT" - }, "node_modules/depd": { "version": "2.0.0", "license": "MIT", @@ -20590,6 +20176,7 @@ }, "node_modules/dir-glob": { "version": "3.0.1", + "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -21142,6 +20729,7 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", + "devOptional": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -22852,7 +22440,6 @@ }, "node_modules/execa": { "version": "5.1.1", - "devOptional": true, "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", @@ -22964,26 +22551,26 @@ } }, "node_modules/expo": { - "version": "52.0.28", - "resolved": "https://registry.npmjs.org/expo/-/expo-52.0.28.tgz", - "integrity": "sha512-0O/JEYYCFszJ85frislm79YmlrQA5ghAQXV4dqcQcsy9FqftdicD4p/ehT36yiuGIhaKC6fn25LEaJ9JR2ei7g==", + "version": "53.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo/-/expo-53.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-15QDMfClEV+s8TUwuAaz97AbndzBpTbICnJAfdiqzn4PP9n2Yah/ujReP8uvmu1BsTcI9m3z89EhTtJPM0MAsw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.22.11", - "@expo/config": "~10.0.8", - "@expo/config-plugins": "~9.0.14", - "@expo/fingerprint": "0.11.7", - "@expo/metro-config": "0.19.9", + "@expo/cli": "1.0.0-canary-20250306-d9d3e02", + "@expo/config": "11.0.0-canary-20250306-d9d3e02", + "@expo/config-plugins": "9.1.0-canary-20250306-d9d3e02", + "@expo/fingerprint": "0.11.12-canary-20250306-d9d3e02", + "@expo/metro-config": "0.20.0-canary-20250306-d9d3e02", "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~12.0.6", - "expo-asset": "~11.0.2", - "expo-constants": "~17.0.5", - "expo-file-system": "~18.0.7", - "expo-font": "~13.0.3", - "expo-keep-awake": "~14.0.2", - "expo-modules-autolinking": "2.0.7", - "expo-modules-core": "2.2.0", + "babel-preset-expo": "13.0.0-canary-20250306-d9d3e02", + "expo-asset": "12.0.0-canary-20250306-d9d3e02", + "expo-constants": "18.0.0-canary-20250306-d9d3e02", + "expo-file-system": "19.0.0-canary-20250306-d9d3e02", + "expo-font": "14.0.0-canary-20250306-d9d3e02", + "expo-keep-awake": "15.0.0-canary-20250306-d9d3e02", + "expo-modules-autolinking": "3.0.0-canary-20250306-d9d3e02", + "expo-modules-core": "3.0.0-canary-20250306-d9d3e02", "fbemitter": "^3.0.0", "web-streams-polyfill": "^3.3.2", "whatwg-url-without-unicode": "8.0.0-3" @@ -22992,8 +22579,8 @@ "expo": "bin/cli" }, "peerDependencies": { - "@expo/dom-webview": "*", - "@expo/metro-runtime": "*", + "@expo/dom-webview": "0.0.3-canary-20250306-d9d3e02", + "@expo/metro-runtime": "4.0.2-canary-20250306-d9d3e02", "react": "*", "react-native": "*", "react-native-webview": "*" @@ -23011,29 +22598,27 @@ } }, "node_modules/expo-asset": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-11.0.4.tgz", - "integrity": "sha512-CdIywU0HrR3wsW5c3n0cT3jW9hccZdnqGsRqY+EY/RWzJbDXtDfAQVEiFHO3mDK7oveUwrP2jK/6ZRNek41/sg==", + "version": "12.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-12.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-gOXnvbC5cr8jVeicZ51BAWR/Lfm5W+qCP89Di2VTPCDpmfKoIm2sepxnNcSWp4BmhWAVjDPewUsJYTvc2RqgCQ==", "license": "MIT", "dependencies": { - "@expo/image-utils": "^0.6.5", - "expo-constants": "~17.0.7", - "invariant": "^2.2.4", - "md5-file": "^3.2.3" + "@expo/image-utils": "0.6.6-canary-20250306-d9d3e02", + "expo-constants": "18.0.0-canary-20250306-d9d3e02" }, "peerDependencies": { - "expo": "*", + "expo": "53.0.0-canary-20250306-d9d3e02", "react": "*", "react-native": "*" } }, "node_modules/expo-av": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-15.0.2.tgz", - "integrity": "sha512-AHIHXdqLgK1dfHZF0JzX3YSVySGMrWn9QtPzaVjw54FAzvXfMt4sIoq4qRL/9XWCP9+ICcCs/u3EcvmxQjrfcA==", + "version": "15.0.3-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-15.0.3-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-8NfSbbcpqnbC00rvVXmetVRUTAJ8WNIcGKUgKi3uVHIYwObXB0ZnuNWhVFBddT2VB5v0DGPribFxuJ29w9WNeQ==", "license": "MIT", "peerDependencies": { - "expo": "*", + "expo": "53.0.0-canary-20250306-d9d3e02", "react": "*", "react-native": "*", "react-native-web": "*" @@ -23045,52 +22630,39 @@ } }, "node_modules/expo-constants": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-17.0.7.tgz", - "integrity": "sha512-sp5NUiV17I3JblVPIBDgoxgt7JIZS30vcyydCYHxsEoo+aKaeRYXxGYilCvb9lgI6BBwSL24sQ6ZjWsCWoF1VA==", + "version": "18.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-18.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-bzreYC9p/m7ovgIWabGLYFjXwJgUVEnzNNCVuas62vMLaNulcGtpSKNjlleVMgHsgsbCqaDfFcYtRGWm1GPQlw==", "license": "MIT", "dependencies": { - "@expo/config": "~10.0.10", - "@expo/env": "~0.4.2" - }, - "peerDependencies": { - "expo": "*", - "react-native": "*" - } - }, - "node_modules/expo-file-system": { - "version": "18.0.11", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-18.0.11.tgz", - "integrity": "sha512-yDwYfEzWgPXsBZHJW2RJ8Q66ceiFN9Wa5D20pp3fjXVkzPBDwxnYwiPWk4pVmCa5g4X5KYMoMne1pUrsL4OEpg==", - "license": "MIT", - "dependencies": { - "web-streams-polyfill": "^3.3.2" + "@expo/config": "11.0.0-canary-20250306-d9d3e02", + "@expo/env": "1.0.1-canary-20250306-d9d3e02" }, "peerDependencies": { - "expo": "*", + "expo": "53.0.0-canary-20250306-d9d3e02", "react-native": "*" } }, "node_modules/expo-font": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-13.0.4.tgz", - "integrity": "sha512-eAP5hyBgC8gafFtprsz0HMaB795qZfgJWqTmU0NfbSin1wUuVySFMEPMOrTkTgmazU73v4Cb4x7p86jY1XXYUw==", + "version": "14.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-14.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-8VXoNfJcNLxfsV9Fz+rDK6G0Ufdwwndif0JlKwZmCjlB0mnpnMQS/HX7MfmYu4J0JyX+uYKWHM6aFolx6/7XDw==", "license": "MIT", "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { - "expo": "*", + "expo": "53.0.0-canary-20250306-d9d3e02", "react": "*" } }, "node_modules/expo-image": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-2.0.4.tgz", - "integrity": "sha512-oIVSlV/BpBJbI9Anf8RjraGJXDWSJxNKxdXkYBJ31XrQaUstOM7OmsVKjOK40ZFZHIz3rx5SBJWK5w52Uz+/bg==", + "version": "3.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-3.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-HeI8vtw/e7ptcDOzs5rJZMknfVaQw2eriy08wk5r3Zy+Mo+TmXheLBuys7OmK9UQlNnWFXnRoDyFb6UZK3IXRA==", "license": "MIT", "peerDependencies": { - "expo": "*", + "expo": "53.0.0-canary-20250306-d9d3e02", "react": "*", "react-native": "*", "react-native-web": "*" @@ -23102,48 +22674,37 @@ } }, "node_modules/expo-image-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-5.0.0.tgz", - "integrity": "sha512-Eg+5FHtyzv3Jjw9dHwu2pWy4xjf8fu3V0Asyy42kO+t/FbvW/vjUixpTjPtgKQLQh+2/9Nk4JjFDV6FwCnF2ZA==", + "version": "5.0.1-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-5.0.1-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-dXvlHCOrKcshfBTtMhQ+Xtvz59D3wjg3ayyRb73vR+QYfyS7xxBvMCl+j4ENjPKPjIulHX6ej1TkmMifonI5rQ==", "license": "MIT", "peerDependencies": { - "expo": "*" + "expo": "53.0.0-canary-20250306-d9d3e02" } }, "node_modules/expo-image-manipulator": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/expo-image-manipulator/-/expo-image-manipulator-13.0.6.tgz", - "integrity": "sha512-Rz8Kcfx1xYm0AsIDi6zfKYUDnwCP8edgYXWb00KAkzOF8bDxwzTrnvESWhCiveM4IB3fojjLpNeENME34p3bzA==", + "version": "13.0.7-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-image-manipulator/-/expo-image-manipulator-13.0.7-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-H0xZCt5YQFyBjFFpha2GNf90nmP5bftmkTNtZHslIA+6tvfDOreEx/2tsh+1IDTnOax5z3u4kj73WS5s1lqdRg==", "license": "MIT", "dependencies": { - "expo-image-loader": "~5.0.0" + "expo-image-loader": "5.0.1-canary-20250306-d9d3e02" }, "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-keep-awake": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-14.0.3.tgz", - "integrity": "sha512-6Jh94G6NvTZfuLnm2vwIpKe3GdOiVBuISl7FI8GqN0/9UOg9E0WXXp5cDcfAG8bn80RfgLJS8P7EPUGTZyOvhg==", - "license": "MIT", - "peerDependencies": { - "expo": "*", - "react": "*" + "expo": "53.0.0-canary-20250306-d9d3e02" } }, "node_modules/expo-modules-autolinking": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-2.0.7.tgz", - "integrity": "sha512-rkGc6a/90AC3q8wSy4V+iIpq6Fd0KXmQICKrvfmSWwrMgJmLfwP4QTrvLYPYOOMjFwNJcTaohcH8vzW/wYKrMg==", + "version": "3.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-ZXVNf+cz3uaazWK8agQc9TG6RfMdcbBRwMZB7Gr5GlxG/3Ss6+duIeR/Ilc5testMm0nH16WCLn0BH1yj2Zf0g==", "license": "MIT", "dependencies": { "@expo/spawn-async": "^1.7.2", "chalk": "^4.1.0", "commander": "^7.2.0", - "fast-glob": "^3.2.5", "find-up": "^5.0.0", - "fs-extra": "^9.1.0", + "glob": "^10.4.2", "require-from-string": "^2.0.2", "resolve-from": "^5.0.0" }, @@ -23166,6 +22727,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/expo-modules-autolinking/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/expo-modules-autolinking/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -23209,6 +22779,26 @@ "node": ">= 10" } }, + "node_modules/expo-modules-autolinking/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/expo-modules-autolinking/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -23218,6 +22808,30 @@ "node": ">=8" } }, + "node_modules/expo-modules-autolinking/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/expo-modules-autolinking/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/expo-modules-autolinking/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23231,14 +22845,37 @@ } }, "node_modules/expo-modules-core": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-2.2.0.tgz", - "integrity": "sha512-mOFEHIe6jZ7G5pYUVSQ2Ghs3CUr9Uz6DOh4JI+4PsTf0gmEvMmMEOrxirS89jRWQjXPJ7QaGBK0CJrZlj/Sdeg==", + "version": "3.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-ArvZty2BYOTfxFqfjo49mpdiJNyn0G9cGSYOkoj/1cS03QHw6lFCKdTgf6I03JKHKpiGC5hPZe66PLW553V9mw==", "license": "MIT", "dependencies": { "invariant": "^2.2.4" } }, + "node_modules/expo/node_modules/expo-file-system": { + "version": "19.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-19.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-zP1ChBtf0z9UKqssxcYIKav3wv2h8vzUbdXA9GBfdKiLqkRfBb3HiG8B2IO8vVa6jv6bahbX1NernT2XAQ21lg==", + "license": "MIT", + "dependencies": { + "web-streams-polyfill": "^3.3.2" + }, + "peerDependencies": { + "expo": "53.0.0-canary-20250306-d9d3e02", + "react-native": "*" + } + }, + "node_modules/expo/node_modules/expo-keep-awake": { + "version": "15.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-15.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-MNaZlQaWoC9F8sHWUhu+EWkwraP16Ba8gGlEDMlhe9bPp3PCCveQyfwFHu57vlJPO2DQ6+kThPLz67SWe2qHjw==", + "license": "MIT", + "peerDependencies": { + "expo": "53.0.0-canary-20250306-d9d3e02", + "react": "*" + } + }, "node_modules/exponential-backoff": { "version": "3.1.1", "license": "Apache-2.0" @@ -23419,6 +23056,7 @@ }, "node_modules/fast-glob": { "version": "3.3.2", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -23483,6 +23121,7 @@ }, "node_modules/fastq": { "version": "1.13.0", + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -23548,12 +23187,6 @@ "pend": "~1.2.0" } }, - "node_modules/fetch-retry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", - "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==", - "license": "MIT" - }, "node_modules/fflate": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", @@ -24034,20 +23667,6 @@ "node": ">=8" } }, - "node_modules/form-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz", - "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/form-data-encoder": { "version": "1.7.2", "dev": true, @@ -24116,6 +23735,7 @@ }, "node_modules/fs-extra": { "version": "9.1.0", + "dev": true, "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", @@ -24129,6 +23749,7 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", + "dev": true, "license": "ISC", "dependencies": { "minipass": "^3.0.0" @@ -24474,6 +24095,7 @@ }, "node_modules/glob-parent": { "version": "5.1.2", + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -24526,6 +24148,7 @@ }, "node_modules/globby": { "version": "11.1.0", + "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -25254,7 +24877,6 @@ }, "node_modules/human-signals": { "version": "2.1.0", - "devOptional": true, "license": "Apache-2.0", "engines": { "node": ">=10.17.0" @@ -25336,6 +24958,7 @@ }, "node_modules/ignore": { "version": "5.3.1", + "dev": true, "license": "MIT", "engines": { "node": ">= 4" @@ -25477,6 +25100,7 @@ }, "node_modules/indent-string": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -25513,16 +25137,19 @@ } }, "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.1.0.tgz", + "integrity": "sha512-Cs1iaqrl3z3KJ2ejWyfKkMcuv9NTEJWXtUBSGVc+Eg9BjBLS0k11CsOkf/p5quOkVhhRuq9zwZ/PuJpPUuDP9Q==", "license": "MIT", "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "default-gateway": "^6.0.0", + "ipaddr.js": "^1.9.1" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/internal-ip?sponsor=1" } }, "node_modules/internal-slot": { @@ -25570,15 +25197,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/ipaddr.js": { "version": "1.9.1", "license": "MIT", @@ -25682,12 +25300,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "license": "MIT" - }, "node_modules/is-builtin-module": { "version": "3.2.1", "dev": true, @@ -25806,6 +25418,7 @@ }, "node_modules/is-extglob": { "version": "2.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -25853,6 +25466,7 @@ }, "node_modules/is-glob": { "version": "4.0.3", + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -25974,6 +25588,7 @@ }, "node_modules/is-path-cwd": { "version": "2.2.0", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -27181,14 +26796,14 @@ } }, "node_modules/jest-expo": { - "version": "52.0.3", - "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-52.0.3.tgz", - "integrity": "sha512-z2gptekrQ0FIichvRhrES31X9twtCCTzu00sWnPyFaQuWQdoyZiCj2WFPqVrpgIgNYLFIEGhc0VP9rUT9johJw==", + "version": "53.0.0-canary-20250306-d9d3e02", + "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-53.0.0-canary-20250306-d9d3e02.tgz", + "integrity": "sha512-nUXmmgXsdeGETQOrFnEi5LR1oyjkxkgDCdnUtluf+b46UsG+av7rcbuMdBE8prqLOJyxOAjIhY6Wci8K5IJgIQ==", "dev": true, "license": "MIT", "dependencies": { - "@expo/config": "~10.0.8", - "@expo/json-file": "^9.0.1", + "@expo/config": "11.0.0-canary-20250306-d9d3e02", + "@expo/json-file": "9.0.3-canary-20250306-d9d3e02", "@jest/create-cache-key-function": "^29.2.1", "@jest/globals": "^29.2.1", "babel-jest": "^29.2.1", @@ -27201,7 +26816,7 @@ "json5": "^2.2.3", "lodash": "^4.17.19", "react-server-dom-webpack": "19.0.0-rc-6230622a1a-20240610", - "react-test-renderer": "18.3.1", + "react-test-renderer": "19.0.0", "server-only": "^0.0.1", "stacktrace-js": "^2.0.2" }, @@ -27209,35 +26824,10 @@ "jest": "bin/jest.js" }, "peerDependencies": { - "expo": "*", + "expo": "53.0.0-canary-20250306-d9d3e02", "react-native": "*" } }, - "node_modules/jest-expo/node_modules/react-test-renderer": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-18.3.1.tgz", - "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "react-is": "^18.3.1", - "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/jest-expo/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, "node_modules/jest-get-type": { "version": "29.6.3", "license": "MIT", @@ -28483,12 +28073,6 @@ "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/join-component": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", - "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==", - "license": "MIT" - }, "node_modules/jquery": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", @@ -28683,6 +28267,7 @@ }, "node_modules/jsonfile": { "version": "6.1.0", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -29739,32 +29324,6 @@ "node": ">= 18" } }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "license": "BSD-3-Clause", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "node_modules/md5-file": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", - "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", - "license": "MIT", - "dependencies": { - "buffer-alloc": "^1.1.0" - }, - "bin": { - "md5-file": "cli.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/mdn-data": { "version": "2.0.14", "license": "CC0-1.0" @@ -29878,6 +29437,7 @@ }, "node_modules/merge2": { "version": "1.4.1", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -29892,9 +29452,9 @@ } }, "node_modules/metro": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.81.0.tgz", - "integrity": "sha512-kzdzmpL0gKhEthZ9aOV7sTqvg6NuTxDV8SIm9pf9sO8VVEbKrQk5DNcwupOUjgPPFAuKUc2NkT0suyT62hm2xg==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.81.4.tgz", + "integrity": "sha512-78f0aBNPuwXW7GFnSc+Y0vZhbuQorXxdgqQfvSRqcSizqwg9cwF27I05h47tL8AzQcizS1JZncvq4xf5u/Qykw==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", @@ -29909,33 +29469,31 @@ "ci-info": "^2.0.0", "connect": "^3.6.5", "debug": "^2.2.0", - "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.24.0", + "hermes-parser": "0.25.1", "image-size": "^1.0.2", "invariant": "^2.2.4", - "jest-worker": "^29.6.3", + "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.81.0", - "metro-cache": "0.81.0", - "metro-cache-key": "0.81.0", - "metro-config": "0.81.0", - "metro-core": "0.81.0", - "metro-file-map": "0.81.0", - "metro-resolver": "0.81.0", - "metro-runtime": "0.81.0", - "metro-source-map": "0.81.0", - "metro-symbolicate": "0.81.0", - "metro-transform-plugins": "0.81.0", - "metro-transform-worker": "0.81.0", + "metro-babel-transformer": "0.81.4", + "metro-cache": "0.81.4", + "metro-cache-key": "0.81.4", + "metro-config": "0.81.4", + "metro-core": "0.81.4", + "metro-file-map": "0.81.4", + "metro-resolver": "0.81.4", + "metro-runtime": "0.81.4", + "metro-source-map": "0.81.4", + "metro-symbolicate": "0.81.4", + "metro-transform-plugins": "0.81.4", + "metro-transform-worker": "0.81.4", "mime-types": "^2.1.27", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", "source-map": "^0.5.6", - "strip-ansi": "^6.0.0", "throat": "^5.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" @@ -29948,53 +29506,38 @@ } }, "node_modules/metro-babel-transformer": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.81.0.tgz", - "integrity": "sha512-Dc0QWK4wZIeHnyZ3sevWGTnnSkIDDn/SWyfrn99zbKbDOCoCYy71PAn9uCRrP/hduKLJQOy+tebd63Rr9D8tXg==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.81.4.tgz", + "integrity": "sha512-WW0yswWrW+eTVK9sYD+b1HwWOiUlZlUoomiw9TIOk0C+dh2V90Wttn/8g62kYi0Y4i+cJfISerB2LbV4nuRGTA==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.24.0", + "hermes-parser": "0.25.1", "nullthrows": "^1.1.1" }, "engines": { "node": ">=18.18" } }, - "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", - "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", - "license": "MIT" - }, - "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", - "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.24.0" - } - }, "node_modules/metro-cache": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.81.0.tgz", - "integrity": "sha512-DyuqySicHXkHUDZFVJmh0ygxBSx6pCKUrTcSgb884oiscV/ROt1Vhye+x+OIHcsodyA10gzZtrVtxIFV4l9I4g==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.81.4.tgz", + "integrity": "sha512-sxCPH3gowDxazSaZZrwdNPEpnxR8UeXDnvPjBF9+5btDBNN2DpWvDAXPvrohkYkFImhc0LajS2V7eOXvu9PnvQ==", "license": "MIT", "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", - "metro-core": "0.81.0" + "metro-core": "0.81.4" }, "engines": { "node": ">=18.18" } }, "node_modules/metro-cache-key": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.81.0.tgz", - "integrity": "sha512-qX/IwtknP9bQZL78OK9xeSvLM/xlGfrs6SlUGgHvrxtmGTRSsxcyqxR+c+7ch1xr05n62Gin/O44QKg5V70rNQ==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.81.4.tgz", + "integrity": "sha512-3SaWQybvf1ivasjBegIxzVKLJzOpcz+KsnGwXFOYADQq0VN4cnM7tT+u2jkOhk6yJiiO1WIjl68hqyMOQJRRLg==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" @@ -30004,19 +29547,19 @@ } }, "node_modules/metro-config": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.81.0.tgz", - "integrity": "sha512-6CinEaBe3WLpRlKlYXXu8r1UblJhbwD6Gtnoib5U8j6Pjp7XxMG9h/DGMeNp9aGLDu1OieUqiXpFo7O0/rR5Kg==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.81.4.tgz", + "integrity": "sha512-QnhMy3bRiuimCTy7oi5Ug60javrSa3lPh0gpMAspQZHY9h6y86jwHtZPLtlj8hdWQESIlrbeL8inMSF6qI/i9Q==", "license": "MIT", "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "flow-enums-runtime": "^0.0.6", - "jest-validate": "^29.6.3", - "metro": "0.81.0", - "metro-cache": "0.81.0", - "metro-core": "0.81.0", - "metro-runtime": "0.81.0" + "jest-validate": "^29.7.0", + "metro": "0.81.4", + "metro-cache": "0.81.4", + "metro-core": "0.81.4", + "metro-runtime": "0.81.4" }, "engines": { "node": ">=18.18" @@ -30073,42 +29616,37 @@ } }, "node_modules/metro-core": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.81.0.tgz", - "integrity": "sha512-CVkM5YCOAFkNMvJai6KzA0RpztzfEKRX62/PFMOJ9J7K0uq/UkOFLxcgpcncMIrfy0PbfEj811b69tjULUQe1Q==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.81.4.tgz", + "integrity": "sha512-GdL4IgmgJhrMA/rTy2lRqXKeXfC77Rg+uvhUEkbhyfj/oz7PrdSgvIFzziapjdHwk1XYq0KyFh/CcVm8ZawG6A==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.81.0" + "metro-resolver": "0.81.4" }, "engines": { "node": ">=18.18" } }, "node_modules/metro-file-map": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.81.0.tgz", - "integrity": "sha512-zMDI5uYhQCyxbye/AuFx/pAbsz9K+vKL7h1ShUXdN2fz4VUPiyQYRsRqOoVG1DsiCgzd5B6LW0YW77NFpjDQeg==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.81.4.tgz", + "integrity": "sha512-qUIBzkiqOi3qEuscu4cJ83OYQ4hVzjON19FAySWqYys9GKCmxlKa7LkmwqdpBso6lQl+JXZ7nCacX90w5wQvPA==", "license": "MIT", "dependencies": { - "anymatch": "^3.0.3", "debug": "^2.2.0", "fb-watchman": "^2.0.0", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", "invariant": "^2.2.4", - "jest-worker": "^29.6.3", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", - "node-abort-controller": "^3.1.1", "nullthrows": "^1.1.1", "walker": "^1.0.7" }, "engines": { "node": ">=18.18" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" } }, "node_modules/metro-file-map/node_modules/debug": { @@ -30166,9 +29704,9 @@ } }, "node_modules/metro-minify-terser": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.81.0.tgz", - "integrity": "sha512-U2ramh3W822ZR1nfXgIk+emxsf5eZSg10GbQrT0ZizImK8IZ5BmJY+BHRIkQgHzWFpExOVxC7kWbGL1bZALswA==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.81.4.tgz", + "integrity": "sha512-oVvq/AGvqmbhuijJDZZ9npeWzaVyeBwQKtdlnjcQ9fH7nR15RiBr5y2zTdgTEdynqOIb1Kc16l8CQIUSzOWVFA==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", @@ -30179,9 +29717,9 @@ } }, "node_modules/metro-resolver": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.81.0.tgz", - "integrity": "sha512-Uu2Q+buHhm571cEwpPek8egMbdSTqmwT/5U7ZVNpK6Z2ElQBBCxd7HmFAslKXa7wgpTO2FAn6MqGeERbAtVDUA==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.81.4.tgz", + "integrity": "sha512-Ng7G2mXjSExMeRzj6GC19G6IJ0mfIbOLgjArsMWJgtt9ViZiluCwgWsMW9juBC5NSwjJxUMK2x6pC5NIMFLiHA==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" @@ -30191,9 +29729,9 @@ } }, "node_modules/metro-runtime": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.81.0.tgz", - "integrity": "sha512-6oYB5HOt37RuGz2eV4A6yhcl+PUTwJYLDlY9vhT+aVjbUWI6MdBCf69vc4f5K5Vpt+yOkjy+2LDwLS0ykWFwYw==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.81.4.tgz", + "integrity": "sha512-fBoRgqkF69CwyPtBNxlDi5ha26Zc8f85n2THXYoh13Jn/Bkg8KIDCdKPp/A1BbSeNnkH/++H2EIIfnmaff4uRg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -30204,9 +29742,9 @@ } }, "node_modules/metro-source-map": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.81.0.tgz", - "integrity": "sha512-TzsVxhH83dyxg4A4+L1nzNO12I7ps5IHLjKGZH3Hrf549eiZivkdjYiq/S5lOB+p2HiQ+Ykcwtmcja95LIC62g==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.81.4.tgz", + "integrity": "sha512-IOwVQ7mLqoqvsL70RZtl1EyE3f9jp43kVsAsb/B/zoWmu0/k4mwEhGLTxmjdXRkLJqPqPrh7WmFChAEf9trW4Q==", "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.3", @@ -30214,9 +29752,9 @@ "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.81.0", + "metro-symbolicate": "0.81.4", "nullthrows": "^1.1.1", - "ob1": "0.81.0", + "ob1": "0.81.4", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -30252,17 +29790,16 @@ } }, "node_modules/metro-symbolicate": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.81.0.tgz", - "integrity": "sha512-C/1rWbNTPYp6yzID8IPuQPpVGzJ2rbWYBATxlvQ9dfK5lVNoxcwz77hjcY8ISLsRRR15hyd/zbjCNKPKeNgE1Q==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.81.4.tgz", + "integrity": "sha512-rWxTmYVN6/BOSaMDUHT8HgCuRf6acd0AjHkenYlHpmgxg7dqdnAG1hLq999q2XpW5rX+cMamZD5W5Ez2LqGaag==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.81.0", + "metro-source-map": "0.81.4", "nullthrows": "^1.1.1", "source-map": "^0.5.6", - "through2": "^2.0.1", "vlq": "^1.0.0" }, "bin": { @@ -30282,9 +29819,9 @@ } }, "node_modules/metro-transform-plugins": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.81.0.tgz", - "integrity": "sha512-uErLAPBvttGCrmGSCa0dNHlOTk3uJFVEVWa5WDg6tQ79PRmuYRwzUgLhVzn/9/kyr75eUX3QWXN79Jvu4txt6Q==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.81.4.tgz", + "integrity": "sha512-nlP069nDXm4v28vbll4QLApAlvVtlB66rP6h+ml8Q/CCQCPBXu2JLaoxUmkIOJQjLhMRUcgTyQHq+TXWJhydOQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -30299,16 +29836,16 @@ } }, "node_modules/metro-transform-plugins/node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -30317,9 +29854,9 @@ } }, "node_modules/metro-transform-worker": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.81.0.tgz", - "integrity": "sha512-HrQ0twiruhKy0yA+9nK5bIe3WQXZcC66PXTvRIos61/EASLAP2DzEmW7IxN/MGsfZegN2UzqL2CG38+mOB45vg==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.81.4.tgz", + "integrity": "sha512-lKAeRZ8EUMtx2cA/Y4KvICr9bIr5SE03iK3lm+l9wyn2lkjLUuPjYVep159inLeDqC6AtSubsA8MZLziP7c03g==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -30327,13 +29864,13 @@ "@babel/parser": "^7.25.3", "@babel/types": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "metro": "0.81.0", - "metro-babel-transformer": "0.81.0", - "metro-cache": "0.81.0", - "metro-cache-key": "0.81.0", - "metro-minify-terser": "0.81.0", - "metro-source-map": "0.81.0", - "metro-transform-plugins": "0.81.0", + "metro": "0.81.4", + "metro-babel-transformer": "0.81.4", + "metro-cache": "0.81.4", + "metro-cache-key": "0.81.4", + "metro-minify-terser": "0.81.4", + "metro-source-map": "0.81.4", + "metro-transform-plugins": "0.81.4", "nullthrows": "^1.1.1" }, "engines": { @@ -30341,16 +29878,16 @@ } }, "node_modules/metro/node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -30359,9 +29896,9 @@ } }, "node_modules/metro/node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -30454,21 +29991,6 @@ "node": ">=8" } }, - "node_modules/metro/node_modules/hermes-estree": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz", - "integrity": "sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw==", - "license": "MIT" - }, - "node_modules/metro/node_modules/hermes-parser": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz", - "integrity": "sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg==", - "license": "MIT", - "dependencies": { - "hermes-estree": "0.24.0" - } - }, "node_modules/metro/node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", @@ -30571,7 +30093,6 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -30617,6 +30138,7 @@ }, "node_modules/minipass": { "version": "3.3.6", + "dev": true, "license": "ISC", "dependencies": { "yallist": "^4.0.0" @@ -30625,27 +30147,6 @@ "node": ">=8" } }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/minipass-fetch": { "version": "2.1.2", "dev": true, @@ -30664,6 +30165,7 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", + "dev": true, "license": "ISC", "dependencies": { "minipass": "^3.0.0" @@ -30674,6 +30176,7 @@ }, "node_modules/minipass-pipeline": { "version": "1.2.4", + "dev": true, "license": "ISC", "dependencies": { "minipass": "^3.0.0" @@ -30695,6 +30198,7 @@ }, "node_modules/minizlib": { "version": "2.1.2", + "dev": true, "license": "MIT", "dependencies": { "minipass": "^3.0.0", @@ -30859,12 +30363,6 @@ "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", "license": "MIT" }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "license": "MIT" - }, "node_modules/no-case": { "version": "3.0.4", "dev": true, @@ -30911,6 +30409,7 @@ }, "node_modules/node-abort-controller": { "version": "3.1.1", + "dev": true, "license": "MIT" }, "node_modules/node-addon-api": { @@ -30929,6 +30428,7 @@ }, "node_modules/node-dir": { "version": "0.1.17", + "dev": true, "license": "MIT", "dependencies": { "minimatch": "^3.0.2" @@ -31167,7 +30667,6 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "devOptional": true, "license": "MIT", "dependencies": { "path-key": "^3.0.0" @@ -31374,9 +30873,9 @@ } }, "node_modules/ob1": { - "version": "0.81.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.81.0.tgz", - "integrity": "sha512-6Cvrkxt1tqaRdWqTAMcVYEiO5i1xcF9y7t06nFdjFqkfPsEloCf8WwhXdwBpNUkVYSQlSGS7cDgVQR86miBfBQ==", + "version": "0.81.4", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.81.4.tgz", + "integrity": "sha512-EZLYM8hfPraC2SYOR5EWLFAPV5e6g+p83m2Jth9bzCpFxP1NDQJYXdmXRB2bfbaWQSmm6NkIQlbzk7uU5lLfgg==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" @@ -31568,7 +31067,6 @@ }, "node_modules/onetime": { "version": "5.1.2", - "devOptional": true, "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" @@ -31760,15 +31258,6 @@ "node": ">=8" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/p-limit": { "version": "3.1.0", "license": "MIT", @@ -31797,6 +31286,7 @@ }, "node_modules/p-map": { "version": "4.0.0", + "dev": true, "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" @@ -32134,6 +31624,7 @@ }, "node_modules/path-type": { "version": "4.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -32672,6 +32163,7 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", + "dev": true, "license": "MIT" }, "node_modules/progress": { @@ -32769,6 +32261,7 @@ }, "node_modules/pump": { "version": "3.0.0", + "devOptional": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -32875,6 +32368,7 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "dev": true, "funding": [ { "type": "github", @@ -33476,6 +32970,26 @@ "react-native": "*" } }, + "node_modules/react-native-document-picker": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-9.3.1.tgz", + "integrity": "sha512-Vcofv9wfB0j67zawFjfq9WQPMMzXxOZL9kBmvWDpjVuEcVK73ndRmlXHlkeFl5ZHVsv4Zb6oZYhqm9u5omJOPA==", + "deprecated": "the package was renamed, follow migration instructions at https://shorturl.at/QYT4t", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-windows": "*" + }, + "peerDependenciesMeta": { + "react-native-windows": { + "optional": true + } + } + }, "node_modules/react-native-draggable-flatlist": { "version": "4.0.1", "license": "MIT", @@ -34319,20 +33833,6 @@ "webpack": "^5.59.0" } }, - "node_modules/react-shallow-renderer": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", - "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-style-singleton": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", @@ -34483,6 +33983,7 @@ }, "node_modules/readable-stream": { "version": "2.3.8", + "dev": true, "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", @@ -34496,6 +33997,7 @@ }, "node_modules/readable-stream/node_modules/isarray": { "version": "1.0.0", + "dev": true, "license": "MIT" }, "node_modules/readdir-glob": { @@ -34747,12 +34249,6 @@ "node": ">= 0.10" } }, - "node_modules/remove-trailing-slash": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", - "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==", - "license": "MIT" - }, "node_modules/renderkid": { "version": "3.0.0", "dev": true, @@ -34965,6 +34461,7 @@ }, "node_modules/reusify": { "version": "1.0.4", + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -35018,6 +34515,7 @@ }, "node_modules/run-parallel": { "version": "1.2.0", + "dev": true, "funding": [ { "type": "github", @@ -35362,6 +34860,7 @@ "version": "1.16.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", + "devOptional": true, "license": "MIT", "dependencies": { "encodeurl": "~1.0.2", @@ -35678,15 +35177,6 @@ "plist": "^3.0.5" } }, - "node_modules/simple-plist/node_modules/bplist-creator": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", - "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", - "license": "MIT", - "dependencies": { - "stream-buffers": "2.2.x" - } - }, "node_modules/simple-plist/node_modules/bplist-parser": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", @@ -36011,18 +35501,6 @@ "node": ">= 6" } }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "license": "MIT", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/split-on-first": { "version": "1.1.0", "license": "MIT", @@ -36044,27 +35522,6 @@ "version": "1.0.3", "license": "BSD-3-Clause" }, - "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/ssri/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/stable": { "version": "0.1.8", "dev": true, @@ -36263,6 +35720,7 @@ }, "node_modules/string_decoder": { "version": "1.1.1", + "devOptional": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" @@ -36430,18 +35888,8 @@ "node": ">=8" } }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-final-newline": { "version": "2.0.0", - "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -36815,6 +36263,7 @@ }, "node_modules/tar": { "version": "6.2.1", + "dev": true, "license": "ISC", "dependencies": { "chownr": "^2.0.0", @@ -36878,6 +36327,7 @@ }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", + "dev": true, "license": "ISC", "engines": { "node": ">=8" @@ -36893,6 +36343,7 @@ }, "node_modules/temp": { "version": "0.8.4", + "dev": true, "license": "MIT", "dependencies": { "rimraf": "~2.6.2" @@ -36934,6 +36385,7 @@ }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", + "dev": true, "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -36942,68 +36394,6 @@ "rimraf": "bin.js" } }, - "node_modules/tempy": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", - "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", - "license": "MIT", - "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "license": "MIT", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -37138,22 +36528,6 @@ "version": "5.0.0", "license": "MIT" }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "license": "MIT" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/thunky": { "version": "1.1.0", "dev": true, @@ -37549,9 +36923,10 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", @@ -37797,9 +37172,9 @@ "license": "MIT" }, "node_modules/undici": { - "version": "6.21.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", - "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", + "version": "6.21.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz", + "integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==", "license": "MIT", "engines": { "node": ">=18.17" @@ -37888,30 +37263,6 @@ "node": ">=0.10.0" } }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -37970,6 +37321,7 @@ }, "node_modules/universalify": { "version": "2.0.0", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -38165,6 +37517,7 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", + "devOptional": true, "license": "MIT" }, "node_modules/utila": { @@ -38188,6 +37541,7 @@ }, "node_modules/uuid": { "version": "8.3.2", + "dev": true, "license": "MIT", "bin": { "uuid": "dist/bin/uuid" @@ -38990,9 +38344,9 @@ "license": "MIT" }, "node_modules/wonka": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.4.tgz", - "integrity": "sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg==", + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/wonka/-/wonka-6.3.5.tgz", + "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==", "license": "MIT" }, "node_modules/word-wrap": { diff --git a/package.json b/package.json index 3d04eeffb004..a0d069eec014 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "ipad-standalone": "concurrently \"STANDALONE_NEW_DOT=true ./scripts/run-build.sh --ipad\"", "ipad-sm": "concurrently \"./scripts/run-build.sh --ipad-sm\"", "ipad-sm-standalone": "concurrently \"STANDALONE_NEW_DOT=true ./scripts/run-build.sh --ipad-sm\"", - "start": "npx react-native start --client-logs", + "start": "npx react-native start --client-logs --reset-cache", "web": "./scripts/set-pusher-suffix.sh && concurrently npm:web-proxy npm:web-server", "web-proxy": "ts-node web/proxy.ts", "web-server": "webpack-dev-server --open --config config/webpack/webpack.dev.ts", @@ -80,8 +80,8 @@ "@dotlottie/react-player": "^1.6.3", "@expensify/react-native-background-task": "file:./modules/background-task", "@expensify/react-native-hybrid-app": "file:./modules/hybrid-app", - "@expensify/react-native-live-markdown": "0.1.244", - "@expo/metro-runtime": "^4.0.1", + "@expensify/react-native-live-markdown": "0.1.256", + "@expo/metro-runtime": "4.0.2-canary-20250306-d9d3e02", "@firebase/app": "^0.10.10", "@firebase/performance": "^0.6.8", "@formatjs/intl-datetimeformat": "^6.12.5", @@ -124,12 +124,12 @@ "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", "expensify-common": "2.0.124", - "expo": "52.0.28", - "expo-asset": "^11.0.2", - "expo-av": "^15.0.2", - "expo-font": "^13.0.3", - "expo-image": "^2.0.4", - "expo-image-manipulator": "^13.0.6", + "expo": "53.0.0-canary-20250306-d9d3e02", + "expo-asset": " 12.0.0-canary-20250306-d9d3e02", + "expo-av": "15.0.3-canary-20250306-d9d3e02", + "expo-font": "14.0.0-canary-20250306-d9d3e02", + "expo-image": "3.0.0-canary-20250306-d9d3e02", + "expo-image-manipulator": "13.0.7-canary-20250306-d9d3e02", "fast-equals": "^4.0.3", "focus-trap-react": "^11.0.3", "howler": "^2.2.4", @@ -158,6 +158,7 @@ "react-native-collapsible": "^1.6.2", "react-native-config": "1.5.3", "react-native-device-info": "10.3.1", + "react-native-document-picker": "^9.3.1", "react-native-draggable-flatlist": "^4.0.1", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "2.24.0", @@ -316,7 +317,7 @@ "jest-circus": "29.4.1", "jest-cli": "29.4.1", "jest-environment-jsdom": "^29.4.1", - "jest-expo": "52.0.3", + "jest-expo": "53.0.0-canary-20250306-d9d3e02", "jest-transformer-svg": "^2.0.1", "jest-when": "^3.5.2", "link": "^2.1.1", @@ -374,7 +375,10 @@ "send": "0.19.0", "regexpu-core": "5.3.2", "react": "19.0.0", - "react-dom": "19.0.0" + "react-dom": "19.0.0", + "expo": "53.0.0-canary-20250306-d9d3e02", + "metro": "^0.81.3", + "metro-core": "^0.81.3" }, "expo": { "autolinking": { diff --git a/patches/@expensify+react-native-live-markdown+0.1.256+001+remove-outdated-import.patch b/patches/@expensify+react-native-live-markdown+0.1.256+001+remove-outdated-import.patch new file mode 100644 index 000000000000..148b40db9494 --- /dev/null +++ b/patches/@expensify+react-native-live-markdown+0.1.256+001+remove-outdated-import.patch @@ -0,0 +1,12 @@ +diff --git a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp +index f608576..5671af7 100644 +--- a/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp ++++ b/node_modules/@expensify/react-native-live-markdown/android/src/main/new_arch/react/renderer/components/RNLiveMarkdownSpec/MarkdownTextInputDecoratorShadowNode.cpp +@@ -3,7 +3,6 @@ + #include <fbjni/fbjni.h> + #include <react/fabric/JFabricUIManager.h> + #include <react/jni/ReadableNativeMap.h> +-#include <react/renderer/components/androidtextinput/AndroidTextInputState.h> + #include <react/renderer/components/view/conversions.h> + #include <react/renderer/core/ComponentDescriptor.h> + #include <yoga/Yoga.h> diff --git a/patches/expo+52.0.28+001+dont-change-formdata.patch b/patches/expo+52.0.28+001+dont-change-formdata.patch deleted file mode 100644 index 14406b6d52f6..000000000000 --- a/patches/expo+52.0.28+001+dont-change-formdata.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/node_modules/expo/src/winter/FormData.ts b/node_modules/expo/src/winter/FormData.ts -index d78f165..577501c 100644 ---- a/node_modules/expo/src/winter/FormData.ts -+++ b/node_modules/expo/src/winter/FormData.ts -@@ -70,7 +70,16 @@ function normalizeArgs( - blobFilename: string | undefined - ): [string, File | string] { - if (value instanceof Blob) { -- value = { type: value.type, name: blobFilename || 'blob', blob: value }; -+ // @ts-expect-error: `Blob.data.blobId` is react-native's proprietary property. -+ if (value.data?.blobId != null) { -+ // For react-native created Blob objects, -+ // we need to keep its original form as-is without breaking functionality. -+ // However, we need to pass `name` for our file name handling. -+ // @ts-expect-error: Mutating the Blob object to add the `name` property. -+ value.name = blobFilename || 'blob'; -+ } else { -+ value = { type: value.type, name: blobFilename || 'blob', blob: value }; -+ } - } else if (typeof value !== 'object') { - value = String(value); - } -diff --git a/node_modules/expo/src/winter/fetch/convertFormData.ts b/node_modules/expo/src/winter/fetch/convertFormData.ts -index e559323..e8bdbdd 100644 ---- a/node_modules/expo/src/winter/fetch/convertFormData.ts -+++ b/node_modules/expo/src/winter/fetch/convertFormData.ts -@@ -30,6 +30,20 @@ export async function convertFormDataAsync( - results.push(entry.file.bytes()); - } else if ('blob' in entry) { - results.push(new Uint8Array(await blobToArrayBufferAsync(entry.blob))); -+ } else if (entry._data?.blobId != null) { -+ // When `FormData.getParts()` is called, React Native will use spread operator to copy the object and loose the Blob type info. -+ // We should find the original Blob instance from the `FormData._parts` internal properties. -+ // @ts-expect-error: react-native's proprietary Blob type -+ const blob = formData._parts?.find( -+ ([name, value]) => value.data?.blobId === entry._data.blobId -+ ); -+ if (blob == null) { -+ throw new Error('Cannot find the original Blob instance from FormData'); -+ } -+ if (!(blob[1] instanceof Blob)) { -+ throw new Error('Unexpected value type for Blob entry in FormData'); -+ } -+ results.push(new Uint8Array(await blobToArrayBufferAsync(blob[1]))); - } else { - throw new Error('Unsupported FormDataPart implementation'); - } diff --git a/patches/expo-image-manipulator+13.0.6+002+fix-type-exports.patch b/patches/expo-image-manipulator+13.0.6+002+fix-type-exports.patch deleted file mode 100644 index e70777f20ac3..000000000000 --- a/patches/expo-image-manipulator+13.0.6+002+fix-type-exports.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/node_modules/expo-image-manipulator/src/index.ts b/node_modules/expo-image-manipulator/src/index.ts -index 65e63fb..9b60a58 100644 ---- a/node_modules/expo-image-manipulator/src/index.ts -+++ b/node_modules/expo-image-manipulator/src/index.ts -@@ -1,9 +1,10 @@ - export { ImageManipulator, manipulateAsync, useImageManipulator } from './ImageManipulator'; -+export { SaveFormat } from './ImageManipulator.types'; - --export { SaveOptions, SaveFormat, ImageResult } from './ImageManipulator.types'; -+export type { SaveOptions, ImageResult } from './ImageManipulator.types'; - - // Export types that are deprecated as of SDK 52 --export { -+export type { - ActionResize, - ActionRotate, - FlipType, diff --git a/patches/expo-modules-core+2.2.0+001+disableViewRecycling.patch b/patches/expo-modules-core+2.2.0+001+disableViewRecycling.patch deleted file mode 100644 index f638a14bb0e8..000000000000 --- a/patches/expo-modules-core+2.2.0+001+disableViewRecycling.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm b/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm -index 2eacddf..346bbb9 100644 ---- a/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm -+++ b/node_modules/expo-modules-core/ios/Fabric/ExpoFabricViewObjC.mm -@@ -138,6 +138,11 @@ - (void)finalizeUpdates:(RNComponentViewUpdateMask)updateMask - } - } - -++ (BOOL)shouldBeRecycled -+{ -+ return NO; -+} -+ - #pragma mark - Events - - - (void)dispatchEvent:(nonnull NSString *)eventName payload:(nullable id)payload diff --git a/patches/expo-modules-core+2.2.0+002+change-global-type.patch b/patches/expo-modules-core+2.2.0+002+change-global-type.patch deleted file mode 100644 index a73948326a38..000000000000 --- a/patches/expo-modules-core+2.2.0+002+change-global-type.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/node_modules/expo-modules-core/build/ts-declarations/global.d.ts b/node_modules/expo-modules-core/build/ts-declarations/global.d.ts -index 6ec6769..5374ce4 100644 ---- a/node_modules/expo-modules-core/build/ts-declarations/global.d.ts -+++ b/node_modules/expo-modules-core/build/ts-declarations/global.d.ts -@@ -58,7 +58,7 @@ export interface ExpoProcessEnv { - EXPO_BASE_URL?: string; - /** Build-time representation of the `Platform.OS` value that the current JavaScript was bundled for. Does not support platform shaking wrapped require statements. */ - EXPO_OS?: string; -- [key: string]: any; -+ [key: string]: string; - } - export interface ExpoProcess { - env: ExpoProcessEnv; diff --git a/patches/jest-expo+52.0.3.patch b/patches/jest-expo+52.0.3.patch deleted file mode 100644 index 4ed3286ff518..000000000000 --- a/patches/jest-expo+52.0.3.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/node_modules/jest-expo/src/preset/setup.js b/node_modules/jest-expo/src/preset/setup.js -index 7a77203..d905ebe 100644 ---- a/node_modules/jest-expo/src/preset/setup.js -+++ b/node_modules/jest-expo/src/preset/setup.js -@@ -293,5 +293,8 @@ try { - // Installs web implementations of global things that are normally installed through JSI. - require('expo-modules-core/src/web/index.web'); - -+jest.doMock('expo/src/winter/FormData', () => ({ -+ installFormDataPatch: jest.fn(), -+})); - // Ensure the environment globals are installed before the first test runs. - require('expo/src/winter');