diff --git a/.well-known/apple-app-site-association b/.well-known/apple-app-site-association index 8318b394d778..cf6bdf1dedef 100644 --- a/.well-known/apple-app-site-association +++ b/.well-known/apple-app-site-association @@ -47,6 +47,18 @@ { "/": "/concierge/*", "comment": "Concierge" + }, + { + "/": "/split/*", + "comment": "Split Bill" + }, + { + "/": "/request/*", + "comment": "Request Money" + }, + { + "/": "/new/*", + "comment": "New Chat" } ] } diff --git a/android/app/build.gradle b/android/app/build.gradle index ea0d6dc7eda1..3901138cd0e3 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -86,8 +86,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001035201 - versionName "1.3.52-1" + versionCode 1001035203 + versionName "1.3.52-3" } signingConfigs { diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index b95d68c9c935..f7b50f62369c 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -63,6 +63,9 @@ + + + @@ -75,6 +78,9 @@ + + + diff --git a/assets/images/home-background--desktop.svg b/assets/images/home-background--desktop.svg index 7241c46036c0..c577609efb3b 100644 --- a/assets/images/home-background--desktop.svg +++ b/assets/images/home-background--desktop.svg @@ -7,7 +7,6 @@ .st1{fill:#002E22;} .st2{opacity:6.000000e-02;} .st3{fill:#FFFFFF;filter:url(#Adobe_OpacityMaskFilter);} - .st4{mask:url(#mask0_99_952_00000103247732053831977250000009833851118444907406_);} .st5{fill:#5BE3AA;} .st6{fill:url(#SVGID_00000106863037488919440930000003219570534563295640_);} @@ -27,10 +26,7 @@ - - - - + diff --git a/assets/images/money-stack.svg b/assets/images/money-stack.svg new file mode 100644 index 000000000000..b9a93c76198c --- /dev/null +++ b/assets/images/money-stack.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist index a698fadf2b5c..1ed003989e3c 100644 --- a/ios/NewExpensify/Info.plist +++ b/ios/NewExpensify/Info.plist @@ -32,7 +32,7 @@ CFBundleVersion - 1.3.52.1 + 1.3.52.3 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist index 5e7ebd91f571..3ef54b01633e 100644 --- a/ios/NewExpensifyTests/Info.plist +++ b/ios/NewExpensifyTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.3.52.1 + 1.3.52.3 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 343828fc5595..a486465b0a29 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -23,14 +23,14 @@ PODS: - boost (1.76.0) - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.72.1) - - FBReactNativeSpec (0.72.1): + - FBLazyVector (0.72.3) + - FBReactNativeSpec (0.72.3): - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.72.1) - - RCTTypeSafety (= 0.72.1) - - React-Core (= 0.72.1) - - React-jsi (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) + - RCTRequired (= 0.72.3) + - RCTTypeSafety (= 0.72.3) + - React-Core (= 0.72.3) + - React-jsi (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) - Firebase/Analytics (8.8.0): - Firebase/Core - Firebase/Core (8.8.0): @@ -204,9 +204,9 @@ PODS: - GoogleUtilities/Logger - GoogleUtilities/UserDefaults (7.11.1): - GoogleUtilities/Logger - - hermes-engine (0.72.1): - - hermes-engine/Pre-built (= 0.72.1) - - hermes-engine/Pre-built (0.72.1) + - hermes-engine (0.72.3): + - hermes-engine/Pre-built (= 0.72.3) + - hermes-engine/Pre-built (0.72.3) - libevent (2.1.12) - libwebp (1.2.4): - libwebp/demux (= 1.2.4) @@ -258,26 +258,26 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.72.1) - - RCTTypeSafety (0.72.1): - - FBLazyVector (= 0.72.1) - - RCTRequired (= 0.72.1) - - React-Core (= 0.72.1) - - React (0.72.1): - - React-Core (= 0.72.1) - - React-Core/DevSupport (= 0.72.1) - - React-Core/RCTWebSocket (= 0.72.1) - - React-RCTActionSheet (= 0.72.1) - - React-RCTAnimation (= 0.72.1) - - React-RCTBlob (= 0.72.1) - - React-RCTImage (= 0.72.1) - - React-RCTLinking (= 0.72.1) - - React-RCTNetwork (= 0.72.1) - - React-RCTSettings (= 0.72.1) - - React-RCTText (= 0.72.1) - - React-RCTVibration (= 0.72.1) - - React-callinvoker (0.72.1) - - React-Codegen (0.72.1): + - RCTRequired (0.72.3) + - RCTTypeSafety (0.72.3): + - FBLazyVector (= 0.72.3) + - RCTRequired (= 0.72.3) + - React-Core (= 0.72.3) + - React (0.72.3): + - React-Core (= 0.72.3) + - React-Core/DevSupport (= 0.72.3) + - React-Core/RCTWebSocket (= 0.72.3) + - React-RCTActionSheet (= 0.72.3) + - React-RCTAnimation (= 0.72.3) + - React-RCTBlob (= 0.72.3) + - React-RCTImage (= 0.72.3) + - React-RCTLinking (= 0.72.3) + - React-RCTNetwork (= 0.72.3) + - React-RCTSettings (= 0.72.3) + - React-RCTText (= 0.72.3) + - React-RCTVibration (= 0.72.3) + - React-callinvoker (0.72.3) + - React-Codegen (0.72.3): - DoubleConversion - FBReactNativeSpec - glog @@ -292,11 +292,11 @@ PODS: - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.72.1): + - React-Core (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.1) + - React-Core/Default (= 0.72.3) - React-cxxreact - React-hermes - React-jsi @@ -306,7 +306,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.72.1): + - React-Core/CoreModulesHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -320,7 +320,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.72.1): + - React-Core/Default (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -333,23 +333,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.72.1): + - React-Core/DevSupport (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.1) - - React-Core/RCTWebSocket (= 0.72.1) + - React-Core/Default (= 0.72.3) + - React-Core/RCTWebSocket (= 0.72.3) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.72.1) + - React-jsinspector (= 0.72.3) - React-perflogger - React-runtimeexecutor - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.72.1): + - React-Core/RCTActionSheetHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -363,7 +363,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.72.1): + - React-Core/RCTAnimationHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -377,7 +377,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.72.1): + - React-Core/RCTBlobHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -391,7 +391,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.72.1): + - React-Core/RCTImageHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -405,7 +405,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.72.1): + - React-Core/RCTLinkingHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -419,7 +419,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.72.1): + - React-Core/RCTNetworkHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -433,7 +433,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.72.1): + - React-Core/RCTSettingsHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -447,7 +447,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.72.1): + - React-Core/RCTTextHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -461,7 +461,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.72.1): + - React-Core/RCTVibrationHeaders (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -475,11 +475,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.72.1): + - React-Core/RCTWebSocket (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.1) + - React-Core/Default (= 0.72.3) - React-cxxreact - React-hermes - React-jsi @@ -489,56 +489,57 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.72.1): + - React-CoreModules (0.72.3): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.1) - - React-Codegen (= 0.72.1) - - React-Core/CoreModulesHeaders (= 0.72.1) - - React-jsi (= 0.72.1) + - RCTTypeSafety (= 0.72.3) + - React-Codegen (= 0.72.3) + - React-Core/CoreModulesHeaders (= 0.72.3) + - React-jsi (= 0.72.3) - React-RCTBlob - - React-RCTImage (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) + - React-RCTImage (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) - SocketRocket (= 0.6.1) - - React-cxxreact (0.72.1): + - React-cxxreact (0.72.3): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.1) - - React-jsi (= 0.72.1) - - React-jsinspector (= 0.72.1) - - React-logger (= 0.72.1) - - React-perflogger (= 0.72.1) - - React-runtimeexecutor (= 0.72.1) - - React-debug (0.72.1) - - React-hermes (0.72.1): + - React-callinvoker (= 0.72.3) + - React-debug (= 0.72.3) + - React-jsi (= 0.72.3) + - React-jsinspector (= 0.72.3) + - React-logger (= 0.72.3) + - React-perflogger (= 0.72.3) + - React-runtimeexecutor (= 0.72.3) + - React-debug (0.72.3) + - React-hermes (0.72.3): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 0.72.1) + - React-cxxreact (= 0.72.3) - React-jsi - - React-jsiexecutor (= 0.72.1) - - React-jsinspector (= 0.72.1) - - React-perflogger (= 0.72.1) - - React-jsi (0.72.1): + - React-jsiexecutor (= 0.72.3) + - React-jsinspector (= 0.72.3) + - React-perflogger (= 0.72.3) + - React-jsi (0.72.3): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-jsiexecutor (0.72.1): + - React-jsiexecutor (0.72.3): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.72.1) - - React-jsi (= 0.72.1) - - React-perflogger (= 0.72.1) - - React-jsinspector (0.72.1) - - React-logger (0.72.1): + - React-cxxreact (= 0.72.3) + - React-jsi (= 0.72.3) + - React-perflogger (= 0.72.3) + - React-jsinspector (0.72.3) + - React-logger (0.72.3): - glog - react-native-airship (15.2.6): - AirshipFrameworkProxy (= 2.0.8) @@ -588,7 +589,7 @@ PODS: - React-Core - react-native-webview (11.23.0): - React-Core - - React-NativeModulesApple (0.72.1): + - React-NativeModulesApple (0.72.3): - hermes-engine - React-callinvoker - React-Core @@ -597,17 +598,17 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.72.1) - - React-RCTActionSheet (0.72.1): - - React-Core/RCTActionSheetHeaders (= 0.72.1) - - React-RCTAnimation (0.72.1): + - React-perflogger (0.72.3) + - React-RCTActionSheet (0.72.3): + - React-Core/RCTActionSheetHeaders (= 0.72.3) + - React-RCTAnimation (0.72.3): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.1) - - React-Codegen (= 0.72.1) - - React-Core/RCTAnimationHeaders (= 0.72.1) - - React-jsi (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) - - React-RCTAppDelegate (0.72.1): + - RCTTypeSafety (= 0.72.3) + - React-Codegen (= 0.72.3) + - React-Core/RCTAnimationHeaders (= 0.72.3) + - React-jsi (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) + - React-RCTAppDelegate (0.72.3): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -619,54 +620,54 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon/turbomodule/core - - React-RCTBlob (0.72.1): + - React-RCTBlob (0.72.3): - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.72.1) - - React-Core/RCTBlobHeaders (= 0.72.1) - - React-Core/RCTWebSocket (= 0.72.1) - - React-jsi (= 0.72.1) - - React-RCTNetwork (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) - - React-RCTImage (0.72.1): + - React-Codegen (= 0.72.3) + - React-Core/RCTBlobHeaders (= 0.72.3) + - React-Core/RCTWebSocket (= 0.72.3) + - React-jsi (= 0.72.3) + - React-RCTNetwork (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) + - React-RCTImage (0.72.3): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.1) - - React-Codegen (= 0.72.1) - - React-Core/RCTImageHeaders (= 0.72.1) - - React-jsi (= 0.72.1) - - React-RCTNetwork (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) - - React-RCTLinking (0.72.1): - - React-Codegen (= 0.72.1) - - React-Core/RCTLinkingHeaders (= 0.72.1) - - React-jsi (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) - - React-RCTNetwork (0.72.1): + - RCTTypeSafety (= 0.72.3) + - React-Codegen (= 0.72.3) + - React-Core/RCTImageHeaders (= 0.72.3) + - React-jsi (= 0.72.3) + - React-RCTNetwork (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) + - React-RCTLinking (0.72.3): + - React-Codegen (= 0.72.3) + - React-Core/RCTLinkingHeaders (= 0.72.3) + - React-jsi (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) + - React-RCTNetwork (0.72.3): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.1) - - React-Codegen (= 0.72.1) - - React-Core/RCTNetworkHeaders (= 0.72.1) - - React-jsi (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) - - React-RCTSettings (0.72.1): + - RCTTypeSafety (= 0.72.3) + - React-Codegen (= 0.72.3) + - React-Core/RCTNetworkHeaders (= 0.72.3) + - React-jsi (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) + - React-RCTSettings (0.72.3): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.1) - - React-Codegen (= 0.72.1) - - React-Core/RCTSettingsHeaders (= 0.72.1) - - React-jsi (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) - - React-RCTText (0.72.1): - - React-Core/RCTTextHeaders (= 0.72.1) - - React-RCTVibration (0.72.1): + - RCTTypeSafety (= 0.72.3) + - React-Codegen (= 0.72.3) + - React-Core/RCTSettingsHeaders (= 0.72.3) + - React-jsi (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) + - React-RCTText (0.72.3): + - React-Core/RCTTextHeaders (= 0.72.3) + - React-RCTVibration (0.72.3): - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.72.1) - - React-Core/RCTVibrationHeaders (= 0.72.1) - - React-jsi (= 0.72.1) - - ReactCommon/turbomodule/core (= 0.72.1) - - React-rncore (0.72.1) - - React-runtimeexecutor (0.72.1): - - React-jsi (= 0.72.1) - - React-runtimescheduler (0.72.1): + - React-Codegen (= 0.72.3) + - React-Core/RCTVibrationHeaders (= 0.72.3) + - React-jsi (= 0.72.3) + - ReactCommon/turbomodule/core (= 0.72.3) + - React-rncore (0.72.3) + - React-runtimeexecutor (0.72.3): + - React-jsi (= 0.72.3) + - React-runtimescheduler (0.72.3): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -674,30 +675,30 @@ PODS: - React-debug - React-jsi - React-runtimeexecutor - - React-utils (0.72.1): + - React-utils (0.72.3): - glog - RCT-Folly (= 2021.07.22.00) - React-debug - - ReactCommon/turbomodule/bridging (0.72.1): + - ReactCommon/turbomodule/bridging (0.72.3): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.1) - - React-cxxreact (= 0.72.1) - - React-jsi (= 0.72.1) - - React-logger (= 0.72.1) - - React-perflogger (= 0.72.1) - - ReactCommon/turbomodule/core (0.72.1): + - React-callinvoker (= 0.72.3) + - React-cxxreact (= 0.72.3) + - React-jsi (= 0.72.3) + - React-logger (= 0.72.3) + - React-perflogger (= 0.72.3) + - ReactCommon/turbomodule/core (0.72.3): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.1) - - React-cxxreact (= 0.72.1) - - React-jsi (= 0.72.1) - - React-logger (= 0.72.1) - - React-perflogger (= 0.72.1) + - React-callinvoker (= 0.72.3) + - React-cxxreact (= 0.72.3) + - React-jsi (= 0.72.3) + - React-logger (= 0.72.3) + - React-perflogger (= 0.72.3) - RNCAsyncStorage (1.17.11): - React-Core - RNCClipboard (1.5.1): @@ -1116,8 +1117,8 @@ SPEC CHECKSUMS: boost: 57d2868c099736d80fcd648bf211b4431e51a558 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - FBLazyVector: 55cd4593d570bd9e5e227488d637ce6a9581ce51 - FBReactNativeSpec: 799b0e1a1561699cd0e424e24fe5624da38402f0 + FBLazyVector: 4cce221dd782d3ff7c4172167bba09d58af67ccb + FBReactNativeSpec: c6bd9e179757b3c0ecf815864fae8032377903ef Firebase: 629510f1a9ddb235f3a7c5c8ceb23ba887f0f814 FirebaseABTesting: 10cbce8db9985ae2e3847ea44e9947dd18f94e10 FirebaseAnalytics: 5506ea8b867d8423485a84b4cd612d279f7b0b8a @@ -1140,7 +1141,7 @@ SPEC CHECKSUMS: GoogleAppMeasurement: 5ba1164e3c844ba84272555e916d0a6d3d977e91 GoogleDataTransport: f0308f5905a745f94fb91fea9c6cbaf3831cb1bd GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749 - hermes-engine: 9df83855a0fd15ef8eb61694652bae636b0c466e + hermes-engine: 10fbd3f62405c41ea07e71973ea61e1878d07322 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef lottie-ios: 8f97d3271e155c2d688875c29cd3c74908aef5f8 @@ -1156,20 +1157,20 @@ SPEC CHECKSUMS: Plaid: 7d340abeadb46c7aa1a91f896c5b22395a31fcf2 PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 - RCTRequired: c52ee8fb2b35c1b54031dd8e92d88ad4dba8f2ce - RCTTypeSafety: 75fa444becadf0ebfa0a456b8c64560c7c89c7df - React: 3e5b3962f27b7334eaf5517a35b3434503df35ad - React-callinvoker: c3a225610efe0caadac78da53b6fe78e53eb2b03 - React-Codegen: bba20685e5c1515f8ecb289bd9770835a1338125 - React-Core: 6f6564ea4c5fc118757c945b6359a36aaea86216 - React-CoreModules: ab635016811b610a93e873485f6f900ce0582192 - React-cxxreact: f82f0f1832606fabb9e8c9d61c4230704a3d2d2f - React-debug: 8aa2bd54b0f0011049300ce3339b0e51254ef3b5 - React-hermes: f076cb5f7351d6cc1600125bef3259ea880460fb - React-jsi: 9f381c8594161b2328b93cd3ba5d0bcfcd1e093a - React-jsiexecutor: 184eae1ecdedc7a083194bd9ff809c93f08fd34c - React-jsinspector: d0b5bfd1085599265f4212034321e829bdf83cc0 - React-logger: b8103c9b04e707b50cdd2b1aeb382483900cbb37 + RCTRequired: a2faf4bad4e438ca37b2040cb8f7799baa065c18 + RCTTypeSafety: cb09f3e4747b6d18331a15eb05271de7441ca0b3 + React: 13109005b5353095c052f26af37413340ccf7a5d + React-callinvoker: c8c87bce983aa499c13cb06d4447c025a35274d6 + React-Codegen: 712d523524d89d71f1cf7cc624854941be983c4d + React-Core: 688f88b7f3a3d30b4848036223f8b07102c687e5 + React-CoreModules: 63c063a3ade8fb3b1bec5fd9a50f17b0421558c6 + React-cxxreact: 37765b4975541105b2a3322a4b473417c158c869 + React-debug: 51f11ef8db14b47f24e71c42a4916d4192972156 + React-hermes: 935ae71fb3d7654e947beba8498835cd5e479707 + React-jsi: ec628dc7a15ffea969f237b0ea6d2fde212b19dd + React-jsiexecutor: 59d1eb03af7d30b7d66589c410f13151271e8006 + React-jsinspector: b511447170f561157547bc0bef3f169663860be7 + React-logger: c5b527272d5f22eaa09bb3c3a690fee8f237ae95 react-native-airship: 5d19f4ba303481cf4101ff9dee9249ef6a8a6b64 react-native-blob-util: 99f4d79189252f597fe0d810c57a3733b1b1dea6 react-native-cameraroll: 8ffb0af7a5e5de225fd667610e2979fc1f0c2151 @@ -1189,23 +1190,23 @@ SPEC CHECKSUMS: react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a react-native-view-shot: 705f999ac2a24e4e6c909c0ca65c732ed33ca2ff react-native-webview: e771bc375f789ebfa02a26939a57dbc6fa897336 - React-NativeModulesApple: 4f31a812364443cee6ef768d256c594ad3b20f53 - React-perflogger: 3d501f34c8d4b10cb75f348e43591765788525ad - React-RCTActionSheet: f5335572c979198c0c3daff67b07bd1ad8370c1d - React-RCTAnimation: 5d0d31a4f9c49a70f93f32e4da098fb49b5ae0b3 - React-RCTAppDelegate: 01ddbdeb01b7cefa932cb66a17299d60620e820d - React-RCTBlob: 280d2605ba10b8f2282f1e8a849584368577251a - React-RCTImage: e15d22db53406401cdd1407ce51080a66a9c7ed4 - React-RCTLinking: 39815800ec79d6fb15e6329244d195ebeabf7541 - React-RCTNetwork: 2a6548e13d2577b112d4250ac5be74ae62e1e86b - React-RCTSettings: a76aee44d5398144646be146c334b15c90ad9582 - React-RCTText: afad390f3838f210c2bc9e1a19bb048003b2a771 - React-RCTVibration: 29bbaa5c57c02dc036d7e557584b492000b1d3e7 - React-rncore: 50966ce412d63bee9ffe5c98249857c23870a3c4 - React-runtimeexecutor: d129f2b53d61298093d7c7d8ebfafa664f911ce6 - React-runtimescheduler: 67707a955b9ecc628cc38bdc721fbc498910f0fd - React-utils: 0a70ea97d4e2749f336b450c082905be1d389435 - ReactCommon: e593d19c9e271a6da4d0bd7f13b28cfeae5d164b + React-NativeModulesApple: c57f3efe0df288a6532b726ad2d0322a9bf38472 + React-perflogger: 6bd153e776e6beed54c56b0847e1220a3ff92ba5 + React-RCTActionSheet: c0b62af44e610e69d9a2049a682f5dba4e9dff17 + React-RCTAnimation: f9bf9719258926aea9ecb8a2aa2595d3ff9a6022 + React-RCTAppDelegate: e5ac35d4dbd1fae7df3a62b47db04b6a8d151592 + React-RCTBlob: c4f1e69a6ef739aa42586b876d637dab4e3b5bed + React-RCTImage: e5798f01aba248416c02a506cf5e6dfcba827638 + React-RCTLinking: f5b6227c879e33206f34e68924c458f57bbb96d9 + React-RCTNetwork: d5554fbfac1c618da3c8fa29933108ea22837788 + React-RCTSettings: 189c71e3e6146ba59f4f7e2cbeb494cf2ad42afa + React-RCTText: 19425aea9d8b6ccae55a27916355b17ab577e56e + React-RCTVibration: 388ac0e1455420895d1ca2548401eed964b038a6 + React-rncore: 755a331dd67b74662108f2d66a384454bf8dc1a1 + React-runtimeexecutor: 369ae9bb3f83b65201c0c8f7d50b72280b5a1dbc + React-runtimescheduler: 837c1bebd2f84572db17698cd702ceaf585b0d9a + React-utils: bcb57da67eec2711f8b353f6e3d33bd8e4b2efa3 + ReactCommon: 3ccb8fb14e6b3277e38c73b0ff5e4a1b8db017a9 RNCAsyncStorage: 8616bd5a58af409453ea4e1b246521bb76578d60 RNCClipboard: 41d8d918092ae8e676f18adada19104fa3e68495 RNCPicker: 0b65be85fe7954fbb2062ef079e3d1cde252d888 @@ -1229,7 +1230,7 @@ SPEC CHECKSUMS: SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 VisionCamera: d3ec8883417a6a4a0e3a6ba37d81d22db7611601 - Yoga: 65286bb6a07edce5e4fe8c90774da977ae8fc009 + Yoga: 8796b55dba14d7004f980b54bcc9833ee45b28ce YogaKit: f782866e155069a2cca2517aafea43200b01fd5a PODFILE CHECKSUM: bc8161c6bfffeec6e6eaf84be18de5041ddcacf6 diff --git a/package-lock.json b/package-lock.json index d578897d2c39..f073177ade90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "new.expensify", - "version": "1.3.52-1", + "version": "1.3.52-3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "new.expensify", - "version": "1.3.52-1", + "version": "1.3.52-3", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -42,7 +42,7 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#9940dd127c2d44809c98ee628a8057f08c93bfc9", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0", "fbjs": "^3.0.2", "htmlparser2": "^7.2.0", "jest-when": "^3.5.2", @@ -54,7 +54,7 @@ "moment": "^2.29.4", "moment-timezone": "^0.5.31", "onfido-sdk-ui": "13.1.0", - "patch-package": "^8.0.0-canary.2", + "patch-package": "^8.0.0", "process": "^0.11.10", "prop-types": "^15.7.2", "pusher-js": "7.4.0", @@ -62,7 +62,7 @@ "react-collapse": "^5.1.0", "react-content-loader": "^6.1.0", "react-dom": "18.1.0", - "react-native": "0.72.1", + "react-native": "0.72.3", "react-native-blob-util": "^0.17.3", "react-native-collapsible": "^1.6.0", "react-native-config": "^1.4.5", @@ -125,7 +125,7 @@ "@octokit/plugin-paginate-rest": "3.1.0", "@octokit/plugin-throttling": "4.1.0", "@react-native-community/eslint-config": "3.0.0", - "@react-native/metro-config": "^0.72.7", + "@react-native/metro-config": "^0.72.9", "@react-navigation/devtools": "^6.0.10", "@storybook/addon-a11y": "^6.5.9", "@storybook/addon-essentials": "^7.0.0", @@ -143,7 +143,6 @@ "@types/jest-when": "^3.5.2", "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.195", - "@types/metro-config": "^0.76.3", "@types/mock-fs": "^4.13.1", "@types/pusher-js": "^5.1.0", "@types/react": "^18.2.12", @@ -191,7 +190,7 @@ "jest-circus": "29.4.1", "jest-cli": "29.4.1", "jest-environment-jsdom": "^29.4.1", - "metro-react-native-babel-preset": "0.76.5", + "metro-react-native-babel-preset": "0.76.7", "mock-fs": "^4.13.0", "onchange": "^7.1.0", "portfinder": "^1.0.28", @@ -6694,19 +6693,19 @@ } }, "node_modules/@react-native-community/cli": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.3.tgz", - "integrity": "sha512-+XwD9IEtaff0q8hyWTQL4xVc7V4P8B7zD0zpcEV8FVV+qUfIFMbNpaYNJFlNOFYRzZmo0/hXsa66S/Im5perlQ==", - "dependencies": { - "@react-native-community/cli-clean": "11.3.3", - "@react-native-community/cli-config": "11.3.3", - "@react-native-community/cli-debugger-ui": "11.3.3", - "@react-native-community/cli-doctor": "11.3.3", - "@react-native-community/cli-hermes": "11.3.3", - "@react-native-community/cli-plugin-metro": "11.3.3", - "@react-native-community/cli-server-api": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", - "@react-native-community/cli-types": "11.3.3", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.5.tgz", + "integrity": "sha512-wMXgKEWe6uesw7vyXKKjx5EDRog0QdXHxdgRguG14AjQRao1+4gXEWq2yyExOTi/GDY6dfJBUGTCwGQxhnk/Lg==", + "dependencies": { + "@react-native-community/cli-clean": "11.3.5", + "@react-native-community/cli-config": "11.3.5", + "@react-native-community/cli-debugger-ui": "11.3.5", + "@react-native-community/cli-doctor": "11.3.5", + "@react-native-community/cli-hermes": "11.3.5", + "@react-native-community/cli-plugin-metro": "11.3.5", + "@react-native-community/cli-server-api": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", + "@react-native-community/cli-types": "11.3.5", "chalk": "^4.1.2", "commander": "^9.4.1", "execa": "^5.0.0", @@ -6724,11 +6723,11 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.3.tgz", - "integrity": "sha512-5csu0Z2wNkLRZs4AxA+5UVtOdyGqdjZ9DEPccePlkN9IXEHTia2GdDuWZVVnlC50Ab3eTaGDKvFzy9QONHQusw==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.5.tgz", + "integrity": "sha512-1+7BU962wKkIkHRp/uW3jYbQKKGtU7L+R3g59D8K6uLccuxJYUBJv18753ojMa6SD3SAq5Xh31bAre+YwVcOTA==", "dependencies": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", "prompts": "^2.4.0" @@ -6799,11 +6798,11 @@ } }, "node_modules/@react-native-community/cli-config": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.3.tgz", - "integrity": "sha512-j87RHJlybNHD1mYSkHnWA4qLkEO6qVn0+sREZGdQ6gVmOzxvLzvEB+YMoNEEqFGmPiyt3WTMLgi7jUr6WVoKuQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.5.tgz", + "integrity": "sha512-fMblIsHlUleKfGsgWyjFJYfx1SqrsnhS/QXfA8w7iT6GrNOOjBp5UWx8+xlMDFcmOb9e42g1ExFDKl3n8FWkxQ==", "dependencies": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -6922,22 +6921,22 @@ } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.3.tgz", - "integrity": "sha512-iVKcwyK2iKlq/qVtSbhk5fGsrOamAx7j50QhDMrZ6NmYZq+k75k253+YTzXoxWdPPZhsdhmILuBJgf8orIYCPQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.5.tgz", + "integrity": "sha512-o5JVCKEpPUXMX4r3p1cYjiy3FgdOEkezZcQ6owWEae2dYvV19lLYyJwnocm9Y7aG9PvpgI3PIMVh3KZbhS21eA==", "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.3.tgz", - "integrity": "sha512-11MlCYZkZ602lmoxZUM6FZYjqFgyYci0X0QoBgBHi+3hqmrlA9JkYR/6OpPo34ASVObhE4DQ7eZ1+EQnVJHXsA==", - "dependencies": { - "@react-native-community/cli-config": "11.3.3", - "@react-native-community/cli-platform-android": "11.3.3", - "@react-native-community/cli-platform-ios": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.5.tgz", + "integrity": "sha512-+4BuFHjoV4FFjX5y60l0s6nS0agidb1izTVwsFixeFKW73LUkOLu+Ae5HI94RAFEPE4ePEVNgYX3FynIau6K0g==", + "dependencies": { + "@react-native-community/cli-config": "11.3.5", + "@react-native-community/cli-platform-android": "11.3.5", + "@react-native-community/cli-platform-ios": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -7013,9 +7012,9 @@ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" }, "node_modules/@react-native-community/cli-doctor/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -7051,12 +7050,12 @@ } }, "node_modules/@react-native-community/cli-hermes": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.3.tgz", - "integrity": "sha512-IoBLspPg4EwKwYj+5Ki4xrGUz7vVeE9soULCXJij2IKB68U63WmjG42+ng96+ryJDaQqERqF7NGll1jqnenJYQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.5.tgz", + "integrity": "sha512-+3m34hiaJpFel8BlJE7kJOaPzWR/8U8APZG2LXojbAdBAg99EGmQcwXIgsSVJFvH8h/nezf4DHbsPKigIe33zA==", "dependencies": { - "@react-native-community/cli-platform-android": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-platform-android": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -7132,11 +7131,11 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.3.tgz", - "integrity": "sha512-hjkPTJXKw2PZNKdeZZ1I4Mv2gRbPOfZmpgRVXtDwEP4cXZUGTDP54lBhFnC+8KxiKJBWJ/m4wYyC3ZqX87M2jg==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.5.tgz", + "integrity": "sha512-s4Lj7FKxJ/BofGi/ifjPfrA9MjFwIgYpHnHBSlqtbsvPoSYzmVCU2qlWM8fb3AmkXIwyYt4A6MEr3MmNT2UoBg==", "dependencies": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", "glob": "^7.1.3", @@ -7208,11 +7207,11 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.3.tgz", - "integrity": "sha512-mFdZjOaPCQy3y4DoMdA5l5/zVXtvsi8pbJFTV7ms7avNShuqqvue/Fm4wmiccZd0Zfi5p9TOP3Bh9Aw/jC+UAQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.5.tgz", + "integrity": "sha512-ytJC/YCFD7P+KuQHOT5Jzh1ho2XbJEjq71yHa1gJP2PG/Q/uB4h1x2XpxDqv5iXU6E250yjvKMmkReKTW4CTig==", "dependencies": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.0.12", @@ -7285,29 +7284,29 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.3.tgz", - "integrity": "sha512-jbutvKqjIUTIuSK6mGmVt+x/MygLAIG6VNIwbywFtY+P4CCxUxo8o8h3O2cPRB2xeg9qikksm3Wys7fME4Ly+A==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.5.tgz", + "integrity": "sha512-r9AekfeLKdblB7LfWB71IrNy1XM03WrByQlUQajUOZAP2NmUUBLl9pMZscPjJeOSgLpHB9ixEFTIOhTabri/qg==", "dependencies": { - "@react-native-community/cli-server-api": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-server-api": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", - "metro": "0.76.5", - "metro-config": "0.76.5", - "metro-core": "0.76.5", - "metro-react-native-babel-transformer": "0.76.5", - "metro-resolver": "0.76.5", - "metro-runtime": "0.76.5", + "metro": "0.76.7", + "metro-config": "0.76.7", + "metro-core": "0.76.7", + "metro-react-native-babel-transformer": "0.76.7", + "metro-resolver": "0.76.7", + "metro-runtime": "0.76.7", "readline": "^1.3.0" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -7419,6 +7418,19 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/hermes-estree": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.12.0.tgz", + "integrity": "sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==" + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/hermes-parser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.12.0.tgz", + "integrity": "sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==", + "dependencies": { + "hermes-estree": "0.12.0" + } + }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/image-size": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", @@ -7515,16 +7527,16 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", + "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7558,9 +7570,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.5.tgz", - "integrity": "sha512-aEQiqNFibfx4ajUXm7Xatsv43r/UQ0xE53T3XqgZBzsxhF235tf1cl8t0giawi0RbLtDS+Fu4kg2bVBKDYFy7A==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.7.tgz", + "integrity": "sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==", "dependencies": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.20.0", @@ -7578,28 +7590,28 @@ "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.8.0", + "hermes-parser": "0.12.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-config": "0.76.5", - "metro-core": "0.76.5", - "metro-file-map": "0.76.5", - "metro-inspector-proxy": "0.76.5", - "metro-minify-terser": "0.76.5", - "metro-minify-uglify": "0.76.5", - "metro-react-native-babel-preset": "0.76.5", - "metro-resolver": "0.76.5", - "metro-runtime": "0.76.5", - "metro-source-map": "0.76.5", - "metro-symbolicate": "0.76.5", - "metro-transform-plugins": "0.76.5", - "metro-transform-worker": "0.76.5", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-config": "0.76.7", + "metro-core": "0.76.7", + "metro-file-map": "0.76.7", + "metro-inspector-proxy": "0.76.7", + "metro-minify-terser": "0.76.7", + "metro-minify-uglify": "0.76.7", + "metro-react-native-babel-preset": "0.76.7", + "metro-resolver": "0.76.7", + "metro-runtime": "0.76.7", + "metro-source-map": "0.76.7", + "metro-symbolicate": "0.76.7", + "metro-transform-plugins": "0.76.7", + "metro-transform-worker": "0.76.7", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -7619,13 +7631,12 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz", - "integrity": "sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz", + "integrity": "sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==", "dependencies": { "@babel/core": "^7.20.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.76.5", + "hermes-parser": "0.12.0", "nullthrows": "^1.1.1" }, "engines": { @@ -7633,11 +7644,11 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-cache": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.5.tgz", - "integrity": "sha512-8XalhoMNWDK6bi41oqxIpecTYRt4WsmtoHdqshgJIYshJ6qov0NuDw0pOfnS8rgMNHxPpuWyXc7NyKERqVRzaw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.7.tgz", + "integrity": "sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==", "dependencies": { - "metro-core": "0.76.5", + "metro-core": "0.76.7", "rimraf": "^3.0.2" }, "engines": { @@ -7645,45 +7656,46 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-cache-key": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.5.tgz", - "integrity": "sha512-QERX6ejYMt4BPr0ZMf7adnrOivmFSUbCim9FlU6cAeWUib+pV5P/Ph3KicWnOzJpbQz93+tHHG7vcsP6OrvLMw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.7.tgz", + "integrity": "sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==", "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-config": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.5.tgz", - "integrity": "sha512-SCMVIDOtm8s3H62E9z2IcY4Q9GVMqDurbiJS3PHrWgTZjwZFaL59lrW4W6DvzvFZHa9bbxKric5TFtwvVuyOCg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.7.tgz", + "integrity": "sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==", "dependencies": { + "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.2.1", - "metro": "0.76.5", - "metro-cache": "0.76.5", - "metro-core": "0.76.5", - "metro-runtime": "0.76.5" + "metro": "0.76.7", + "metro-cache": "0.76.7", + "metro-core": "0.76.7", + "metro-runtime": "0.76.7" }, "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-core": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.5.tgz", - "integrity": "sha512-yJvIe8a3sAG92U7+E7Bw6m4lae9RB180fp9iQZFBqY437Ilv4nE6PR8EWB6d8c4yt9fXIL1Hc+KyQv7OPFx/rQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.7.tgz", + "integrity": "sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==", "dependencies": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.76.5" + "metro-resolver": "0.76.7" }, "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-file-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.5.tgz", - "integrity": "sha512-9VS7zsec7BpTb+0v1DObOXso6XU/7oVBObQWp0EWBQpFcU1iF1lit2nnLQh2AyGCnSr8JVnuUe8gXhNH6xtPMg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.7.tgz", + "integrity": "sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==", "dependencies": { "anymatch": "^3.0.3", "debug": "^2.2.0", @@ -7706,9 +7718,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-inspector-proxy": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.5.tgz", - "integrity": "sha512-leqwei1qNMKOEbhqlQ37K+7OIp1JRgvS5qERO+J0ZTg7ZeJTaBHSFU7FnCeRHB9Tu7/FSfypY2PxjydZDwvUEQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz", + "integrity": "sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==", "dependencies": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -7724,9 +7736,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-minify-uglify": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.5.tgz", - "integrity": "sha512-JZNO5eK8r625/cheWSl+y7n0RlHLt03iSMgXPAxirH8BiFqPzs7h+c57r4AvSs793VXcF7L3sI1sAOj+nRqTeg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz", + "integrity": "sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==", "dependencies": { "uglify-es": "^3.1.9" }, @@ -7735,17 +7747,17 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-resolver": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.5.tgz", - "integrity": "sha512-QNsbDdf0xL1HefP6fhh1g3umqiX1qWEuCiBaTFroYRqM7u7RATt8mCu4n/FwSYhATuUUujHTIb2EduuQPbSGRQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.7.tgz", + "integrity": "sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==", "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.5.tgz", - "integrity": "sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", + "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", "dependencies": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" @@ -7755,16 +7767,16 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", + "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", "dependencies": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", + "metro-symbolicate": "0.76.7", "nullthrows": "^1.1.1", - "ob1": "0.76.5", + "ob1": "0.76.7", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -7773,12 +7785,12 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", + "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.76.5", + "metro-source-map": "0.76.7", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -7792,9 +7804,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-transform-plugins": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.5.tgz", - "integrity": "sha512-7pJ24aRuvzdQYpX/eOyodr4fnwVJP5ArNLBE1d0DOU9sQxsGplOORDTGAqw2L01+UgaSJiiwEoFMw7Z91HAS+Q==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz", + "integrity": "sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", @@ -7807,21 +7819,21 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-transform-worker": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.5.tgz", - "integrity": "sha512-xN6Kb06o9u5A7M1bbl7oPfQFmt4Kmi3CMXp5j9OcK37AFc+u6YXH8x/6e9b3Cq50rlBYuCXDOOYAWI5/tYNt2w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz", + "integrity": "sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.76.5", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-source-map": "0.76.5", - "metro-transform-plugins": "0.76.5", + "metro": "0.76.7", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-source-map": "0.76.7", + "metro-transform-plugins": "0.76.7", "nullthrows": "^1.1.1" }, "engines": { @@ -7834,9 +7846,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", + "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", "engines": { "node": ">=16" } @@ -7950,12 +7962,12 @@ } }, "node_modules/@react-native-community/cli-server-api": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.3.tgz", - "integrity": "sha512-3ja7WZzXMCeGTaeWLzKxAoueqLjsuo0YURcAjqf044rkY5F1Xk5yIaTN8fb66Lnl2eB3DwuatqEB4dYl34/GZw==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.5.tgz", + "integrity": "sha512-PM/jF13uD1eAKuC84lntNuM5ZvJAtyb+H896P1dBIXa9boPLa3KejfUvNVoyOUJ5s8Ht25JKbc3yieV2+GMBDA==", "dependencies": { - "@react-native-community/cli-debugger-ui": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-debugger-ui": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -8043,9 +8055,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.3.tgz", - "integrity": "sha512-rRFSOAVVwI9R9PyPMff5WqmHbgJYrzGHFH1PA+tFvuiSmWlAf51bzkZIPehTBAQON03a6d5epNsGlBKMLA/BKw==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.5.tgz", + "integrity": "sha512-zDklE1+ah/zL4BLxut5XbzqCj9KTHzbYBKX7//cXw2/0TpkNCaY9c+iKx//gZ5m7U1OKbb86Fm2b0AKtKVRf6Q==", "dependencies": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -8131,9 +8143,9 @@ } }, "node_modules/@react-native-community/cli-tools/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -8150,9 +8162,9 @@ } }, "node_modules/@react-native-community/cli-types": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.3.tgz", - "integrity": "sha512-/u7N93ZUsKAGv3WSGAjKhpK2uCPBkyaw/SuScjHAuL9ifPjvwDhi71K5NbCcYl3ZYh5K39EF3Hm664Jfk9c0MQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.5.tgz", + "integrity": "sha512-pf0kdWMEfPSV/+8rcViDCFzbLMtWIHMZ8ay7hKwqaoWegsJ0oprSF2tSTH+LSC/7X1Beb9ssIvHj1m5C4es5Xg==", "dependencies": { "joi": "^17.2.1" } @@ -8296,9 +8308,9 @@ } }, "node_modules/@react-native-community/cli/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -8534,24 +8546,24 @@ "license": "MIT" }, "node_modules/@react-native/metro-config": { - "version": "0.72.7", - "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.72.7.tgz", - "integrity": "sha512-v+RhvCcMzAUZOibBJQ0na6Ah/HEloGrOPGJmxhdwlxGp05L7ejfu/gPghKeYEx35nlp519YSLiOlO4VW4dI5+g==", + "version": "0.72.9", + "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.72.9.tgz", + "integrity": "sha512-5MGmyDnXPeprRuvgPGE4LZ+e+ovofSd5YY6nFDwg6wbjRGOkeCRRlaTlQT+fjmv+zr4vYG+MUTKBlaO+fui/vA==", "dev": true, "dependencies": { "@react-native/js-polyfills": "^0.72.1", - "metro-config": "0.76.5", - "metro-react-native-babel-transformer": "0.76.5", - "metro-runtime": "0.76.5" + "metro-config": "0.76.7", + "metro-react-native-babel-transformer": "0.76.7", + "metro-runtime": "0.76.7" } }, "node_modules/@react-native/metro-config/node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -8673,6 +8685,21 @@ "node": ">=8" } }, + "node_modules/@react-native/metro-config/node_modules/hermes-estree": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.12.0.tgz", + "integrity": "sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==", + "dev": true + }, + "node_modules/@react-native/metro-config/node_modules/hermes-parser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.12.0.tgz", + "integrity": "sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==", + "dev": true, + "dependencies": { + "hermes-estree": "0.12.0" + } + }, "node_modules/@react-native/metro-config/node_modules/image-size": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", @@ -8777,17 +8804,17 @@ } }, "node_modules/@react-native/metro-config/node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", + "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.6.2" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -8823,9 +8850,9 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.5.tgz", - "integrity": "sha512-aEQiqNFibfx4ajUXm7Xatsv43r/UQ0xE53T3XqgZBzsxhF235tf1cl8t0giawi0RbLtDS+Fu4kg2bVBKDYFy7A==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.7.tgz", + "integrity": "sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", @@ -8844,28 +8871,28 @@ "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.8.0", + "hermes-parser": "0.12.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-config": "0.76.5", - "metro-core": "0.76.5", - "metro-file-map": "0.76.5", - "metro-inspector-proxy": "0.76.5", - "metro-minify-terser": "0.76.5", - "metro-minify-uglify": "0.76.5", - "metro-react-native-babel-preset": "0.76.5", - "metro-resolver": "0.76.5", - "metro-runtime": "0.76.5", - "metro-source-map": "0.76.5", - "metro-symbolicate": "0.76.5", - "metro-transform-plugins": "0.76.5", - "metro-transform-worker": "0.76.5", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-config": "0.76.7", + "metro-core": "0.76.7", + "metro-file-map": "0.76.7", + "metro-inspector-proxy": "0.76.7", + "metro-minify-terser": "0.76.7", + "metro-minify-uglify": "0.76.7", + "metro-react-native-babel-preset": "0.76.7", + "metro-resolver": "0.76.7", + "metro-runtime": "0.76.7", + "metro-source-map": "0.76.7", + "metro-symbolicate": "0.76.7", + "metro-transform-plugins": "0.76.7", + "metro-transform-worker": "0.76.7", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -8885,14 +8912,13 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz", - "integrity": "sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz", + "integrity": "sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==", "dev": true, "dependencies": { "@babel/core": "^7.20.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.76.5", + "hermes-parser": "0.12.0", "nullthrows": "^1.1.1" }, "engines": { @@ -8900,12 +8926,12 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-cache": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.5.tgz", - "integrity": "sha512-8XalhoMNWDK6bi41oqxIpecTYRt4WsmtoHdqshgJIYshJ6qov0NuDw0pOfnS8rgMNHxPpuWyXc7NyKERqVRzaw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.7.tgz", + "integrity": "sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==", "dev": true, "dependencies": { - "metro-core": "0.76.5", + "metro-core": "0.76.7", "rimraf": "^3.0.2" }, "engines": { @@ -8913,48 +8939,49 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-cache-key": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.5.tgz", - "integrity": "sha512-QERX6ejYMt4BPr0ZMf7adnrOivmFSUbCim9FlU6cAeWUib+pV5P/Ph3KicWnOzJpbQz93+tHHG7vcsP6OrvLMw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.7.tgz", + "integrity": "sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/@react-native/metro-config/node_modules/metro-config": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.5.tgz", - "integrity": "sha512-SCMVIDOtm8s3H62E9z2IcY4Q9GVMqDurbiJS3PHrWgTZjwZFaL59lrW4W6DvzvFZHa9bbxKric5TFtwvVuyOCg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.7.tgz", + "integrity": "sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==", "dev": true, "dependencies": { + "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.2.1", - "metro": "0.76.5", - "metro-cache": "0.76.5", - "metro-core": "0.76.5", - "metro-runtime": "0.76.5" + "metro": "0.76.7", + "metro-cache": "0.76.7", + "metro-core": "0.76.7", + "metro-runtime": "0.76.7" }, "engines": { "node": ">=16" } }, "node_modules/@react-native/metro-config/node_modules/metro-core": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.5.tgz", - "integrity": "sha512-yJvIe8a3sAG92U7+E7Bw6m4lae9RB180fp9iQZFBqY437Ilv4nE6PR8EWB6d8c4yt9fXIL1Hc+KyQv7OPFx/rQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.7.tgz", + "integrity": "sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==", "dev": true, "dependencies": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.76.5" + "metro-resolver": "0.76.7" }, "engines": { "node": ">=16" } }, "node_modules/@react-native/metro-config/node_modules/metro-file-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.5.tgz", - "integrity": "sha512-9VS7zsec7BpTb+0v1DObOXso6XU/7oVBObQWp0EWBQpFcU1iF1lit2nnLQh2AyGCnSr8JVnuUe8gXhNH6xtPMg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.7.tgz", + "integrity": "sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==", "dev": true, "dependencies": { "anymatch": "^3.0.3", @@ -8978,9 +9005,9 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-inspector-proxy": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.5.tgz", - "integrity": "sha512-leqwei1qNMKOEbhqlQ37K+7OIp1JRgvS5qERO+J0ZTg7ZeJTaBHSFU7FnCeRHB9Tu7/FSfypY2PxjydZDwvUEQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz", + "integrity": "sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==", "dev": true, "dependencies": { "connect": "^3.6.5", @@ -8997,9 +9024,9 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-minify-uglify": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.5.tgz", - "integrity": "sha512-JZNO5eK8r625/cheWSl+y7n0RlHLt03iSMgXPAxirH8BiFqPzs7h+c57r4AvSs793VXcF7L3sI1sAOj+nRqTeg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz", + "integrity": "sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==", "dev": true, "dependencies": { "uglify-es": "^3.1.9" @@ -9009,18 +9036,18 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-resolver": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.5.tgz", - "integrity": "sha512-QNsbDdf0xL1HefP6fhh1g3umqiX1qWEuCiBaTFroYRqM7u7RATt8mCu4n/FwSYhATuUUujHTIb2EduuQPbSGRQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.7.tgz", + "integrity": "sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/@react-native/metro-config/node_modules/metro-runtime": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.5.tgz", - "integrity": "sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", + "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", "dev": true, "dependencies": { "@babel/runtime": "^7.0.0", @@ -9031,17 +9058,17 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", + "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", "dev": true, "dependencies": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", + "metro-symbolicate": "0.76.7", "nullthrows": "^1.1.1", - "ob1": "0.76.5", + "ob1": "0.76.7", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -9050,13 +9077,13 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", + "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", "dev": true, "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.76.5", + "metro-source-map": "0.76.7", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -9070,9 +9097,9 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-transform-plugins": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.5.tgz", - "integrity": "sha512-7pJ24aRuvzdQYpX/eOyodr4fnwVJP5ArNLBE1d0DOU9sQxsGplOORDTGAqw2L01+UgaSJiiwEoFMw7Z91HAS+Q==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz", + "integrity": "sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==", "dev": true, "dependencies": { "@babel/core": "^7.20.0", @@ -9086,9 +9113,9 @@ } }, "node_modules/@react-native/metro-config/node_modules/metro-transform-worker": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.5.tgz", - "integrity": "sha512-xN6Kb06o9u5A7M1bbl7oPfQFmt4Kmi3CMXp5j9OcK37AFc+u6YXH8x/6e9b3Cq50rlBYuCXDOOYAWI5/tYNt2w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz", + "integrity": "sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==", "dev": true, "dependencies": { "@babel/core": "^7.20.0", @@ -9096,12 +9123,12 @@ "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.76.5", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-source-map": "0.76.5", - "metro-transform-plugins": "0.76.5", + "metro": "0.76.7", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-source-map": "0.76.7", + "metro-transform-plugins": "0.76.7", "nullthrows": "^1.1.1" }, "engines": { @@ -9115,9 +9142,9 @@ "dev": true }, "node_modules/@react-native/metro-config/node_modules/ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", + "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", "dev": true, "engines": { "node": ">=16" @@ -20079,15 +20106,6 @@ "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==", "dev": true }, - "node_modules/@types/metro-config": { - "version": "0.76.3", - "deprecated": "This is a stub types definition. metro-config provides its own type definitions, so you do not need this installed.", - "dev": true, - "license": "MIT", - "dependencies": { - "metro-config": "*" - } - }, "node_modules/@types/mime": { "version": "3.0.1", "dev": true, @@ -26019,9 +26037,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", - "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==" + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" }, "node_modules/debug": { "version": "4.3.4", @@ -29188,8 +29206,8 @@ }, "node_modules/expensify-common": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#9940dd127c2d44809c98ee628a8057f08c93bfc9", - "integrity": "sha512-de8+wMI7IwklsgpYW7rfLCUVOZ3yy4I2iPKg9X/BjvwQGrUuGZmpPJfNfWkkO14SqdZwBZiroKhii1kymxjiWg==", + "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0", + "integrity": "sha512-SA+1PDrST90MoWKNuqyfw7vT1c3S14JrrHCuk5l5m77k2T1Khu1lHPAw7sCUt0Yeoceq7JHL7zC4ZPhqVzDXwQ==", "license": "MIT", "dependencies": { "classnames": "2.3.1", @@ -29566,9 +29584,9 @@ "license": "MIT" }, "node_modules/fast-xml-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", - "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", + "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", "funding": [ { "type": "paypal", @@ -35597,10 +35615,14 @@ "license": "MIT" }, "node_modules/json-stable-stringify": { - "version": "1.0.1", - "license": "MIT", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", "dependencies": { - "jsonify": "~0.0.0" + "jsonify": "^0.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/json-stable-stringify-without-jsonify": { @@ -35634,8 +35656,12 @@ } }, "node_modules/jsonify": { - "version": "0.0.0", - "license": "Public Domain" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/jsx-ast-utils": { "version": "3.3.3", @@ -37973,9 +37999,9 @@ } }, "node_modules/metro-minify-terser": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.5.tgz", - "integrity": "sha512-zizTXqlHcG7PArB5hfz1Djz/oCaOaTSXTZDNp8Y9K2FmmfLU3dU2eoDbNNiCnm5QdDtFIndLMXdqqe6omTfp4g==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz", + "integrity": "sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA==", "dependencies": { "terser": "^5.15.0" }, @@ -37991,9 +38017,9 @@ } }, "node_modules/metro-react-native-babel-preset": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.5.tgz", - "integrity": "sha512-IlVKeTon5fef77rQ6WreSmrabmbc3dEsLwr/sL80fYjobjsD8FRCnOlbaJdgUf2SMJmSIoawgjh5Yeebv+gJzg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz", + "integrity": "sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==", "dependencies": { "@babel/core": "^7.20.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -38050,16 +38076,14 @@ } }, "node_modules/metro-react-native-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.5.tgz", - "integrity": "sha512-7m2u7jQ1I2mwGm48Vrki5cNNSv4d2HegHMGmE5G2AAa6Pr2O3ajaX2yNoAKF8TCLO38/8pa9fZd0VWAlO/YMcA==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz", + "integrity": "sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==", "dependencies": { "@babel/core": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.76.5", - "metro-react-native-babel-preset": "0.76.5", - "metro-source-map": "0.76.5", + "hermes-parser": "0.12.0", + "metro-react-native-babel-preset": "0.76.7", "nullthrows": "^1.1.1" }, "engines": { @@ -38069,71 +38093,17 @@ "@babel/core": "*" } }, - "node_modules/metro-react-native-babel-transformer/node_modules/metro-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz", - "integrity": "sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ==", - "dependencies": { - "@babel/core": "^7.20.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.76.5", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/metro-react-native-babel-transformer/node_modules/metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", - "nullthrows": "^1.1.1", - "ob1": "0.76.5", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - }, - "engines": { - "node": ">=16" - } + "node_modules/metro-react-native-babel-transformer/node_modules/hermes-estree": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.12.0.tgz", + "integrity": "sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==" }, - "node_modules/metro-react-native-babel-transformer/node_modules/metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", + "node_modules/metro-react-native-babel-transformer/node_modules/hermes-parser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.12.0.tgz", + "integrity": "sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==", "dependencies": { - "invariant": "^2.2.4", - "metro-source-map": "0.76.5", - "nullthrows": "^1.1.1", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - }, - "bin": { - "metro-symbolicate": "src/index.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/metro-react-native-babel-transformer/node_modules/ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==", - "engines": { - "node": ">=16" - } - }, - "node_modules/metro-react-native-babel-transformer/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" + "hermes-estree": "0.12.0" } }, "node_modules/metro-resolver": { @@ -40995,9 +40965,9 @@ } }, "node_modules/patch-package": { - "version": "8.0.0-canary.2", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0-canary.2.tgz", - "integrity": "sha512-B9vpCJ6FNmtFwOgsyvssGjIRmhcyaPo84WuCoC1fIcTjwCXsWKhCWDarVGGd2Jv+eSUMikPrTTY6/iYlexZHxw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", "dependencies": { "@yarnpkg/lockfile": "^1.1.0", "chalk": "^4.1.2", @@ -41005,11 +40975,12 @@ "cross-spawn": "^7.0.3", "find-yarn-workspace-root": "^2.0.0", "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", "klaw-sync": "^6.0.0", "minimist": "^1.2.6", "open": "^7.4.2", "rimraf": "^2.6.3", - "semver": "^7.0.0", + "semver": "^7.5.3", "slash": "^2.0.0", "tmp": "^0.0.33", "yaml": "^2.2.2" @@ -42374,14 +42345,14 @@ "license": "MIT" }, "node_modules/react-native": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.1.tgz", - "integrity": "sha512-O9cIVD++kt2XQl0XLCUGUgwSKr8xp+yo0ho5QK6KYWJrCFnnvQLTKL0+HD0rZUcuqFfGknHQJh3h0moQO2EMDg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.3.tgz", + "integrity": "sha512-QqISi+JVmCssNP2FlQ4MWhlc4O/I00MRE1/GClvyZ8h/6kdsyk/sOirkYdZqX3+DrJfI3q+OnyMnsyaXIQ/5tQ==", "dependencies": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "11.3.3", - "@react-native-community/cli-platform-android": "11.3.3", - "@react-native-community/cli-platform-ios": "11.3.3", + "@react-native-community/cli": "11.3.5", + "@react-native-community/cli-platform-android": "11.3.5", + "@react-native-community/cli-platform-ios": "11.3.5", "@react-native/assets-registry": "^0.72.0", "@react-native/codegen": "^0.72.6", "@react-native/gradle-plugin": "^0.72.11", @@ -42398,8 +42369,8 @@ "jest-environment-node": "^29.2.1", "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", - "metro-runtime": "0.76.5", - "metro-source-map": "0.76.5", + "metro-runtime": "0.76.7", + "metro-source-map": "0.76.7", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", @@ -43050,9 +43021,9 @@ } }, "node_modules/react-native/node_modules/metro-runtime": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.5.tgz", - "integrity": "sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", + "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", "dependencies": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" @@ -43062,16 +43033,16 @@ } }, "node_modules/react-native/node_modules/metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", + "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", "dependencies": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", + "metro-symbolicate": "0.76.7", "nullthrows": "^1.1.1", - "ob1": "0.76.5", + "ob1": "0.76.7", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -43080,12 +43051,12 @@ } }, "node_modules/react-native/node_modules/metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", + "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.76.5", + "metro-source-map": "0.76.7", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -43110,9 +43081,9 @@ } }, "node_modules/react-native/node_modules/ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", + "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", "engines": { "node": ">=16" } @@ -54313,19 +54284,19 @@ "requires": {} }, "@react-native-community/cli": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.3.tgz", - "integrity": "sha512-+XwD9IEtaff0q8hyWTQL4xVc7V4P8B7zD0zpcEV8FVV+qUfIFMbNpaYNJFlNOFYRzZmo0/hXsa66S/Im5perlQ==", - "requires": { - "@react-native-community/cli-clean": "11.3.3", - "@react-native-community/cli-config": "11.3.3", - "@react-native-community/cli-debugger-ui": "11.3.3", - "@react-native-community/cli-doctor": "11.3.3", - "@react-native-community/cli-hermes": "11.3.3", - "@react-native-community/cli-plugin-metro": "11.3.3", - "@react-native-community/cli-server-api": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", - "@react-native-community/cli-types": "11.3.3", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.5.tgz", + "integrity": "sha512-wMXgKEWe6uesw7vyXKKjx5EDRog0QdXHxdgRguG14AjQRao1+4gXEWq2yyExOTi/GDY6dfJBUGTCwGQxhnk/Lg==", + "requires": { + "@react-native-community/cli-clean": "11.3.5", + "@react-native-community/cli-config": "11.3.5", + "@react-native-community/cli-debugger-ui": "11.3.5", + "@react-native-community/cli-doctor": "11.3.5", + "@react-native-community/cli-hermes": "11.3.5", + "@react-native-community/cli-plugin-metro": "11.3.5", + "@react-native-community/cli-server-api": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", + "@react-native-community/cli-types": "11.3.5", "chalk": "^4.1.2", "commander": "^9.4.1", "execa": "^5.0.0", @@ -54433,9 +54404,9 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "supports-color": { "version": "7.2.0", @@ -54453,11 +54424,11 @@ } }, "@react-native-community/cli-clean": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.3.tgz", - "integrity": "sha512-5csu0Z2wNkLRZs4AxA+5UVtOdyGqdjZ9DEPccePlkN9IXEHTia2GdDuWZVVnlC50Ab3eTaGDKvFzy9QONHQusw==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.5.tgz", + "integrity": "sha512-1+7BU962wKkIkHRp/uW3jYbQKKGtU7L+R3g59D8K6uLccuxJYUBJv18753ojMa6SD3SAq5Xh31bAre+YwVcOTA==", "requires": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", "prompts": "^2.4.0" @@ -54509,11 +54480,11 @@ } }, "@react-native-community/cli-config": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.3.tgz", - "integrity": "sha512-j87RHJlybNHD1mYSkHnWA4qLkEO6qVn0+sREZGdQ6gVmOzxvLzvEB+YMoNEEqFGmPiyt3WTMLgi7jUr6WVoKuQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.5.tgz", + "integrity": "sha512-fMblIsHlUleKfGsgWyjFJYfx1SqrsnhS/QXfA8w7iT6GrNOOjBp5UWx8+xlMDFcmOb9e42g1ExFDKl3n8FWkxQ==", "requires": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -54601,22 +54572,22 @@ } }, "@react-native-community/cli-debugger-ui": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.3.tgz", - "integrity": "sha512-iVKcwyK2iKlq/qVtSbhk5fGsrOamAx7j50QhDMrZ6NmYZq+k75k253+YTzXoxWdPPZhsdhmILuBJgf8orIYCPQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.5.tgz", + "integrity": "sha512-o5JVCKEpPUXMX4r3p1cYjiy3FgdOEkezZcQ6owWEae2dYvV19lLYyJwnocm9Y7aG9PvpgI3PIMVh3KZbhS21eA==", "requires": { "serve-static": "^1.13.1" } }, "@react-native-community/cli-doctor": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.3.tgz", - "integrity": "sha512-11MlCYZkZ602lmoxZUM6FZYjqFgyYci0X0QoBgBHi+3hqmrlA9JkYR/6OpPo34ASVObhE4DQ7eZ1+EQnVJHXsA==", - "requires": { - "@react-native-community/cli-config": "11.3.3", - "@react-native-community/cli-platform-android": "11.3.3", - "@react-native-community/cli-platform-ios": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.5.tgz", + "integrity": "sha512-+4BuFHjoV4FFjX5y60l0s6nS0agidb1izTVwsFixeFKW73LUkOLu+Ae5HI94RAFEPE4ePEVNgYX3FynIau6K0g==", + "requires": { + "@react-native-community/cli-config": "11.3.5", + "@react-native-community/cli-platform-android": "11.3.5", + "@react-native-community/cli-platform-ios": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -54674,9 +54645,9 @@ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "strip-ansi": { "version": "5.2.0", @@ -54702,12 +54673,12 @@ } }, "@react-native-community/cli-hermes": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.3.tgz", - "integrity": "sha512-IoBLspPg4EwKwYj+5Ki4xrGUz7vVeE9soULCXJij2IKB68U63WmjG42+ng96+ryJDaQqERqF7NGll1jqnenJYQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.5.tgz", + "integrity": "sha512-+3m34hiaJpFel8BlJE7kJOaPzWR/8U8APZG2LXojbAdBAg99EGmQcwXIgsSVJFvH8h/nezf4DHbsPKigIe33zA==", "requires": { - "@react-native-community/cli-platform-android": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-platform-android": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -54764,11 +54735,11 @@ } }, "@react-native-community/cli-platform-android": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.3.tgz", - "integrity": "sha512-hjkPTJXKw2PZNKdeZZ1I4Mv2gRbPOfZmpgRVXtDwEP4cXZUGTDP54lBhFnC+8KxiKJBWJ/m4wYyC3ZqX87M2jg==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.5.tgz", + "integrity": "sha512-s4Lj7FKxJ/BofGi/ifjPfrA9MjFwIgYpHnHBSlqtbsvPoSYzmVCU2qlWM8fb3AmkXIwyYt4A6MEr3MmNT2UoBg==", "requires": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", "glob": "^7.1.3", @@ -54821,11 +54792,11 @@ } }, "@react-native-community/cli-platform-ios": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.3.tgz", - "integrity": "sha512-mFdZjOaPCQy3y4DoMdA5l5/zVXtvsi8pbJFTV7ms7avNShuqqvue/Fm4wmiccZd0Zfi5p9TOP3Bh9Aw/jC+UAQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.5.tgz", + "integrity": "sha512-ytJC/YCFD7P+KuQHOT5Jzh1ho2XbJEjq71yHa1gJP2PG/Q/uB4h1x2XpxDqv5iXU6E250yjvKMmkReKTW4CTig==", "requires": { - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.0.12", @@ -54879,29 +54850,29 @@ } }, "@react-native-community/cli-plugin-metro": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.3.tgz", - "integrity": "sha512-jbutvKqjIUTIuSK6mGmVt+x/MygLAIG6VNIwbywFtY+P4CCxUxo8o8h3O2cPRB2xeg9qikksm3Wys7fME4Ly+A==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.5.tgz", + "integrity": "sha512-r9AekfeLKdblB7LfWB71IrNy1XM03WrByQlUQajUOZAP2NmUUBLl9pMZscPjJeOSgLpHB9ixEFTIOhTabri/qg==", "requires": { - "@react-native-community/cli-server-api": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-server-api": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "chalk": "^4.1.2", "execa": "^5.0.0", - "metro": "0.76.5", - "metro-config": "0.76.5", - "metro-core": "0.76.5", - "metro-react-native-babel-transformer": "0.76.5", - "metro-resolver": "0.76.5", - "metro-runtime": "0.76.5", + "metro": "0.76.7", + "metro-config": "0.76.7", + "metro-core": "0.76.7", + "metro-react-native-babel-transformer": "0.76.7", + "metro-resolver": "0.76.7", + "metro-runtime": "0.76.7", "readline": "^1.3.0" }, "dependencies": { "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -54986,6 +54957,19 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "hermes-estree": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.12.0.tgz", + "integrity": "sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==" + }, + "hermes-parser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.12.0.tgz", + "integrity": "sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==", + "requires": { + "hermes-estree": "0.12.0" + } + }, "image-size": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", @@ -55054,16 +55038,16 @@ } }, "jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", + "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.6.2" } }, "jest-worker": { @@ -55087,9 +55071,9 @@ } }, "metro": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.5.tgz", - "integrity": "sha512-aEQiqNFibfx4ajUXm7Xatsv43r/UQ0xE53T3XqgZBzsxhF235tf1cl8t0giawi0RbLtDS+Fu4kg2bVBKDYFy7A==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.7.tgz", + "integrity": "sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==", "requires": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.20.0", @@ -55107,28 +55091,28 @@ "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.8.0", + "hermes-parser": "0.12.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-config": "0.76.5", - "metro-core": "0.76.5", - "metro-file-map": "0.76.5", - "metro-inspector-proxy": "0.76.5", - "metro-minify-terser": "0.76.5", - "metro-minify-uglify": "0.76.5", - "metro-react-native-babel-preset": "0.76.5", - "metro-resolver": "0.76.5", - "metro-runtime": "0.76.5", - "metro-source-map": "0.76.5", - "metro-symbolicate": "0.76.5", - "metro-transform-plugins": "0.76.5", - "metro-transform-worker": "0.76.5", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-config": "0.76.7", + "metro-core": "0.76.7", + "metro-file-map": "0.76.7", + "metro-inspector-proxy": "0.76.7", + "metro-minify-terser": "0.76.7", + "metro-minify-uglify": "0.76.7", + "metro-react-native-babel-preset": "0.76.7", + "metro-resolver": "0.76.7", + "metro-runtime": "0.76.7", + "metro-source-map": "0.76.7", + "metro-symbolicate": "0.76.7", + "metro-transform-plugins": "0.76.7", + "metro-transform-worker": "0.76.7", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -55142,56 +55126,56 @@ } }, "metro-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz", - "integrity": "sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz", + "integrity": "sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==", "requires": { "@babel/core": "^7.20.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.76.5", + "hermes-parser": "0.12.0", "nullthrows": "^1.1.1" } }, "metro-cache": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.5.tgz", - "integrity": "sha512-8XalhoMNWDK6bi41oqxIpecTYRt4WsmtoHdqshgJIYshJ6qov0NuDw0pOfnS8rgMNHxPpuWyXc7NyKERqVRzaw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.7.tgz", + "integrity": "sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==", "requires": { - "metro-core": "0.76.5", + "metro-core": "0.76.7", "rimraf": "^3.0.2" } }, "metro-cache-key": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.5.tgz", - "integrity": "sha512-QERX6ejYMt4BPr0ZMf7adnrOivmFSUbCim9FlU6cAeWUib+pV5P/Ph3KicWnOzJpbQz93+tHHG7vcsP6OrvLMw==" + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.7.tgz", + "integrity": "sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==" }, "metro-config": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.5.tgz", - "integrity": "sha512-SCMVIDOtm8s3H62E9z2IcY4Q9GVMqDurbiJS3PHrWgTZjwZFaL59lrW4W6DvzvFZHa9bbxKric5TFtwvVuyOCg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.7.tgz", + "integrity": "sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==", "requires": { + "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.2.1", - "metro": "0.76.5", - "metro-cache": "0.76.5", - "metro-core": "0.76.5", - "metro-runtime": "0.76.5" + "metro": "0.76.7", + "metro-cache": "0.76.7", + "metro-core": "0.76.7", + "metro-runtime": "0.76.7" } }, "metro-core": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.5.tgz", - "integrity": "sha512-yJvIe8a3sAG92U7+E7Bw6m4lae9RB180fp9iQZFBqY437Ilv4nE6PR8EWB6d8c4yt9fXIL1Hc+KyQv7OPFx/rQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.7.tgz", + "integrity": "sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==", "requires": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.76.5" + "metro-resolver": "0.76.7" } }, "metro-file-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.5.tgz", - "integrity": "sha512-9VS7zsec7BpTb+0v1DObOXso6XU/7oVBObQWp0EWBQpFcU1iF1lit2nnLQh2AyGCnSr8JVnuUe8gXhNH6xtPMg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.7.tgz", + "integrity": "sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==", "requires": { "anymatch": "^3.0.3", "debug": "^2.2.0", @@ -55209,9 +55193,9 @@ } }, "metro-inspector-proxy": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.5.tgz", - "integrity": "sha512-leqwei1qNMKOEbhqlQ37K+7OIp1JRgvS5qERO+J0ZTg7ZeJTaBHSFU7FnCeRHB9Tu7/FSfypY2PxjydZDwvUEQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz", + "integrity": "sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==", "requires": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -55221,49 +55205,49 @@ } }, "metro-minify-uglify": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.5.tgz", - "integrity": "sha512-JZNO5eK8r625/cheWSl+y7n0RlHLt03iSMgXPAxirH8BiFqPzs7h+c57r4AvSs793VXcF7L3sI1sAOj+nRqTeg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz", + "integrity": "sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==", "requires": { "uglify-es": "^3.1.9" } }, "metro-resolver": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.5.tgz", - "integrity": "sha512-QNsbDdf0xL1HefP6fhh1g3umqiX1qWEuCiBaTFroYRqM7u7RATt8mCu4n/FwSYhATuUUujHTIb2EduuQPbSGRQ==" + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.7.tgz", + "integrity": "sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==" }, "metro-runtime": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.5.tgz", - "integrity": "sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", + "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", "requires": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" } }, "metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", + "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", "requires": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", + "metro-symbolicate": "0.76.7", "nullthrows": "^1.1.1", - "ob1": "0.76.5", + "ob1": "0.76.7", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", + "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.76.5", + "metro-source-map": "0.76.7", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -55271,9 +55255,9 @@ } }, "metro-transform-plugins": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.5.tgz", - "integrity": "sha512-7pJ24aRuvzdQYpX/eOyodr4fnwVJP5ArNLBE1d0DOU9sQxsGplOORDTGAqw2L01+UgaSJiiwEoFMw7Z91HAS+Q==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz", + "integrity": "sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==", "requires": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", @@ -55283,21 +55267,21 @@ } }, "metro-transform-worker": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.5.tgz", - "integrity": "sha512-xN6Kb06o9u5A7M1bbl7oPfQFmt4Kmi3CMXp5j9OcK37AFc+u6YXH8x/6e9b3Cq50rlBYuCXDOOYAWI5/tYNt2w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz", + "integrity": "sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==", "requires": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.76.5", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-source-map": "0.76.5", - "metro-transform-plugins": "0.76.5", + "metro": "0.76.7", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-source-map": "0.76.7", + "metro-transform-plugins": "0.76.7", "nullthrows": "^1.1.1" } }, @@ -55307,9 +55291,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==" + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", + "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==" }, "parse-json": { "version": "4.0.0", @@ -55381,12 +55365,12 @@ } }, "@react-native-community/cli-server-api": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.3.tgz", - "integrity": "sha512-3ja7WZzXMCeGTaeWLzKxAoueqLjsuo0YURcAjqf044rkY5F1Xk5yIaTN8fb66Lnl2eB3DwuatqEB4dYl34/GZw==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.5.tgz", + "integrity": "sha512-PM/jF13uD1eAKuC84lntNuM5ZvJAtyb+H896P1dBIXa9boPLa3KejfUvNVoyOUJ5s8Ht25JKbc3yieV2+GMBDA==", "requires": { - "@react-native-community/cli-debugger-ui": "11.3.3", - "@react-native-community/cli-tools": "11.3.3", + "@react-native-community/cli-debugger-ui": "11.3.5", + "@react-native-community/cli-tools": "11.3.5", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -55447,9 +55431,9 @@ } }, "@react-native-community/cli-tools": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.3.tgz", - "integrity": "sha512-rRFSOAVVwI9R9PyPMff5WqmHbgJYrzGHFH1PA+tFvuiSmWlAf51bzkZIPehTBAQON03a6d5epNsGlBKMLA/BKw==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.5.tgz", + "integrity": "sha512-zDklE1+ah/zL4BLxut5XbzqCj9KTHzbYBKX7//cXw2/0TpkNCaY9c+iKx//gZ5m7U1OKbb86Fm2b0AKtKVRf6Q==", "requires": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -55511,9 +55495,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "supports-color": { "version": "7.2.0", @@ -55526,9 +55510,9 @@ } }, "@react-native-community/cli-types": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.3.tgz", - "integrity": "sha512-/u7N93ZUsKAGv3WSGAjKhpK2uCPBkyaw/SuScjHAuL9ifPjvwDhi71K5NbCcYl3ZYh5K39EF3Hm664Jfk9c0MQ==", + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.5.tgz", + "integrity": "sha512-pf0kdWMEfPSV/+8rcViDCFzbLMtWIHMZ8ay7hKwqaoWegsJ0oprSF2tSTH+LSC/7X1Beb9ssIvHj1m5C4es5Xg==", "requires": { "joi": "^17.2.1" } @@ -55666,24 +55650,24 @@ "version": "0.72.1" }, "@react-native/metro-config": { - "version": "0.72.7", - "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.72.7.tgz", - "integrity": "sha512-v+RhvCcMzAUZOibBJQ0na6Ah/HEloGrOPGJmxhdwlxGp05L7ejfu/gPghKeYEx35nlp519YSLiOlO4VW4dI5+g==", + "version": "0.72.9", + "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.72.9.tgz", + "integrity": "sha512-5MGmyDnXPeprRuvgPGE4LZ+e+ovofSd5YY6nFDwg6wbjRGOkeCRRlaTlQT+fjmv+zr4vYG+MUTKBlaO+fui/vA==", "dev": true, "requires": { "@react-native/js-polyfills": "^0.72.1", - "metro-config": "0.76.5", - "metro-react-native-babel-transformer": "0.76.5", - "metro-runtime": "0.76.5" + "metro-config": "0.76.7", + "metro-react-native-babel-transformer": "0.76.7", + "metro-runtime": "0.76.7" }, "dependencies": { "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", "dev": true, "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -55778,6 +55762,21 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "hermes-estree": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.12.0.tgz", + "integrity": "sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==", + "dev": true + }, + "hermes-parser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.12.0.tgz", + "integrity": "sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==", + "dev": true, + "requires": { + "hermes-estree": "0.12.0" + } + }, "image-size": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", @@ -55854,17 +55853,17 @@ } }, "jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", + "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.6.2" } }, "jest-worker": { @@ -55890,9 +55889,9 @@ } }, "metro": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.5.tgz", - "integrity": "sha512-aEQiqNFibfx4ajUXm7Xatsv43r/UQ0xE53T3XqgZBzsxhF235tf1cl8t0giawi0RbLtDS+Fu4kg2bVBKDYFy7A==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.7.tgz", + "integrity": "sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -55911,28 +55910,28 @@ "denodeify": "^1.2.1", "error-stack-parser": "^2.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.8.0", + "hermes-parser": "0.12.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-config": "0.76.5", - "metro-core": "0.76.5", - "metro-file-map": "0.76.5", - "metro-inspector-proxy": "0.76.5", - "metro-minify-terser": "0.76.5", - "metro-minify-uglify": "0.76.5", - "metro-react-native-babel-preset": "0.76.5", - "metro-resolver": "0.76.5", - "metro-runtime": "0.76.5", - "metro-source-map": "0.76.5", - "metro-symbolicate": "0.76.5", - "metro-transform-plugins": "0.76.5", - "metro-transform-worker": "0.76.5", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-config": "0.76.7", + "metro-core": "0.76.7", + "metro-file-map": "0.76.7", + "metro-inspector-proxy": "0.76.7", + "metro-minify-terser": "0.76.7", + "metro-minify-uglify": "0.76.7", + "metro-react-native-babel-preset": "0.76.7", + "metro-resolver": "0.76.7", + "metro-runtime": "0.76.7", + "metro-source-map": "0.76.7", + "metro-symbolicate": "0.76.7", + "metro-transform-plugins": "0.76.7", + "metro-transform-worker": "0.76.7", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -55946,61 +55945,61 @@ } }, "metro-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz", - "integrity": "sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz", + "integrity": "sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==", "dev": true, "requires": { "@babel/core": "^7.20.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.76.5", + "hermes-parser": "0.12.0", "nullthrows": "^1.1.1" } }, "metro-cache": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.5.tgz", - "integrity": "sha512-8XalhoMNWDK6bi41oqxIpecTYRt4WsmtoHdqshgJIYshJ6qov0NuDw0pOfnS8rgMNHxPpuWyXc7NyKERqVRzaw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.7.tgz", + "integrity": "sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==", "dev": true, "requires": { - "metro-core": "0.76.5", + "metro-core": "0.76.7", "rimraf": "^3.0.2" } }, "metro-cache-key": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.5.tgz", - "integrity": "sha512-QERX6ejYMt4BPr0ZMf7adnrOivmFSUbCim9FlU6cAeWUib+pV5P/Ph3KicWnOzJpbQz93+tHHG7vcsP6OrvLMw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.7.tgz", + "integrity": "sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==", "dev": true }, "metro-config": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.5.tgz", - "integrity": "sha512-SCMVIDOtm8s3H62E9z2IcY4Q9GVMqDurbiJS3PHrWgTZjwZFaL59lrW4W6DvzvFZHa9bbxKric5TFtwvVuyOCg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.7.tgz", + "integrity": "sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==", "dev": true, "requires": { + "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.2.1", - "metro": "0.76.5", - "metro-cache": "0.76.5", - "metro-core": "0.76.5", - "metro-runtime": "0.76.5" + "metro": "0.76.7", + "metro-cache": "0.76.7", + "metro-core": "0.76.7", + "metro-runtime": "0.76.7" } }, "metro-core": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.5.tgz", - "integrity": "sha512-yJvIe8a3sAG92U7+E7Bw6m4lae9RB180fp9iQZFBqY437Ilv4nE6PR8EWB6d8c4yt9fXIL1Hc+KyQv7OPFx/rQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.7.tgz", + "integrity": "sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==", "dev": true, "requires": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.76.5" + "metro-resolver": "0.76.7" } }, "metro-file-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.5.tgz", - "integrity": "sha512-9VS7zsec7BpTb+0v1DObOXso6XU/7oVBObQWp0EWBQpFcU1iF1lit2nnLQh2AyGCnSr8JVnuUe8gXhNH6xtPMg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.7.tgz", + "integrity": "sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==", "dev": true, "requires": { "anymatch": "^3.0.3", @@ -56019,9 +56018,9 @@ } }, "metro-inspector-proxy": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.5.tgz", - "integrity": "sha512-leqwei1qNMKOEbhqlQ37K+7OIp1JRgvS5qERO+J0ZTg7ZeJTaBHSFU7FnCeRHB9Tu7/FSfypY2PxjydZDwvUEQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz", + "integrity": "sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==", "dev": true, "requires": { "connect": "^3.6.5", @@ -56032,24 +56031,24 @@ } }, "metro-minify-uglify": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.5.tgz", - "integrity": "sha512-JZNO5eK8r625/cheWSl+y7n0RlHLt03iSMgXPAxirH8BiFqPzs7h+c57r4AvSs793VXcF7L3sI1sAOj+nRqTeg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz", + "integrity": "sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==", "dev": true, "requires": { "uglify-es": "^3.1.9" } }, "metro-resolver": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.5.tgz", - "integrity": "sha512-QNsbDdf0xL1HefP6fhh1g3umqiX1qWEuCiBaTFroYRqM7u7RATt8mCu4n/FwSYhATuUUujHTIb2EduuQPbSGRQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.7.tgz", + "integrity": "sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==", "dev": true }, "metro-runtime": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.5.tgz", - "integrity": "sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", + "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", @@ -56057,29 +56056,29 @@ } }, "metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", + "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", "dev": true, "requires": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", + "metro-symbolicate": "0.76.7", "nullthrows": "^1.1.1", - "ob1": "0.76.5", + "ob1": "0.76.7", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", + "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", "dev": true, "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.76.5", + "metro-source-map": "0.76.7", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -56087,9 +56086,9 @@ } }, "metro-transform-plugins": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.5.tgz", - "integrity": "sha512-7pJ24aRuvzdQYpX/eOyodr4fnwVJP5ArNLBE1d0DOU9sQxsGplOORDTGAqw2L01+UgaSJiiwEoFMw7Z91HAS+Q==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz", + "integrity": "sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==", "dev": true, "requires": { "@babel/core": "^7.20.0", @@ -56100,9 +56099,9 @@ } }, "metro-transform-worker": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.5.tgz", - "integrity": "sha512-xN6Kb06o9u5A7M1bbl7oPfQFmt4Kmi3CMXp5j9OcK37AFc+u6YXH8x/6e9b3Cq50rlBYuCXDOOYAWI5/tYNt2w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz", + "integrity": "sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==", "dev": true, "requires": { "@babel/core": "^7.20.0", @@ -56110,12 +56109,12 @@ "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.76.5", - "metro-babel-transformer": "0.76.5", - "metro-cache": "0.76.5", - "metro-cache-key": "0.76.5", - "metro-source-map": "0.76.5", - "metro-transform-plugins": "0.76.5", + "metro": "0.76.7", + "metro-babel-transformer": "0.76.7", + "metro-cache": "0.76.7", + "metro-cache-key": "0.76.7", + "metro-source-map": "0.76.7", + "metro-transform-plugins": "0.76.7", "nullthrows": "^1.1.1" } }, @@ -56126,9 +56125,9 @@ "dev": true }, "ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", + "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", "dev": true }, "parse-json": { @@ -63732,13 +63731,6 @@ "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==", "dev": true }, - "@types/metro-config": { - "version": "0.76.3", - "dev": true, - "requires": { - "metro-config": "*" - } - }, "@types/mime": { "version": "3.0.1", "dev": true @@ -67801,9 +67793,9 @@ "requires": {} }, "dayjs": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", - "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==" + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" }, "debug": { "version": "4.3.4", @@ -69972,9 +69964,9 @@ } }, "expensify-common": { - "version": "git+ssh://git@github.com/Expensify/expensify-common.git#9940dd127c2d44809c98ee628a8057f08c93bfc9", - "integrity": "sha512-de8+wMI7IwklsgpYW7rfLCUVOZ3yy4I2iPKg9X/BjvwQGrUuGZmpPJfNfWkkO14SqdZwBZiroKhii1kymxjiWg==", - "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#9940dd127c2d44809c98ee628a8057f08c93bfc9", + "version": "git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0", + "integrity": "sha512-SA+1PDrST90MoWKNuqyfw7vT1c3S14JrrHCuk5l5m77k2T1Khu1lHPAw7sCUt0Yeoceq7JHL7zC4ZPhqVzDXwQ==", + "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0", "requires": { "classnames": "2.3.1", "clipboard": "2.0.4", @@ -70242,9 +70234,9 @@ "dev": true }, "fast-xml-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", - "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", + "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", "requires": { "strnum": "^1.0.5" } @@ -74175,9 +74167,11 @@ "version": "1.0.0" }, "json-stable-stringify": { - "version": "1.0.1", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz", + "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==", "requires": { - "jsonify": "~0.0.0" + "jsonify": "^0.0.1" } }, "json-stable-stringify-without-jsonify": { @@ -74199,7 +74193,9 @@ } }, "jsonify": { - "version": "0.0.0" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==" }, "jsx-ast-utils": { "version": "3.3.3", @@ -76070,9 +76066,9 @@ } }, "metro-minify-terser": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.5.tgz", - "integrity": "sha512-zizTXqlHcG7PArB5hfz1Djz/oCaOaTSXTZDNp8Y9K2FmmfLU3dU2eoDbNNiCnm5QdDtFIndLMXdqqe6omTfp4g==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz", + "integrity": "sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA==", "requires": { "terser": "^5.15.0" } @@ -76084,9 +76080,9 @@ } }, "metro-react-native-babel-preset": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.5.tgz", - "integrity": "sha512-IlVKeTon5fef77rQ6WreSmrabmbc3dEsLwr/sL80fYjobjsD8FRCnOlbaJdgUf2SMJmSIoawgjh5Yeebv+gJzg==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz", + "integrity": "sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==", "requires": { "@babel/core": "^7.20.0", "@babel/plugin-proposal-async-generator-functions": "^7.0.0", @@ -76135,67 +76131,29 @@ } }, "metro-react-native-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.5.tgz", - "integrity": "sha512-7m2u7jQ1I2mwGm48Vrki5cNNSv4d2HegHMGmE5G2AAa6Pr2O3ajaX2yNoAKF8TCLO38/8pa9fZd0VWAlO/YMcA==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz", + "integrity": "sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==", "requires": { "@babel/core": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "hermes-parser": "0.8.0", - "metro-babel-transformer": "0.76.5", - "metro-react-native-babel-preset": "0.76.5", - "metro-source-map": "0.76.5", + "hermes-parser": "0.12.0", + "metro-react-native-babel-preset": "0.76.7", "nullthrows": "^1.1.1" }, "dependencies": { - "metro-babel-transformer": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.5.tgz", - "integrity": "sha512-KmsMXY6VHjPLRQLwTITjLo//7ih8Ts39HPF2zODkaYav/ZLNq0QP7eGuW54dvk/sZiL9le1kaBwTN4BWQI1VZQ==", - "requires": { - "@babel/core": "^7.20.0", - "hermes-parser": "0.8.0", - "metro-source-map": "0.76.5", - "nullthrows": "^1.1.1" - } + "hermes-estree": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.12.0.tgz", + "integrity": "sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw==" }, - "metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", + "hermes-parser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.12.0.tgz", + "integrity": "sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw==", "requires": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", - "nullthrows": "^1.1.1", - "ob1": "0.76.5", - "source-map": "^0.5.6", - "vlq": "^1.0.0" + "hermes-estree": "0.12.0" } - }, - "metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", - "requires": { - "invariant": "^2.2.4", - "metro-source-map": "0.76.5", - "nullthrows": "^1.1.1", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - } - }, - "ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, @@ -77923,9 +77881,9 @@ "devOptional": true }, "patch-package": { - "version": "8.0.0-canary.2", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0-canary.2.tgz", - "integrity": "sha512-B9vpCJ6FNmtFwOgsyvssGjIRmhcyaPo84WuCoC1fIcTjwCXsWKhCWDarVGGd2Jv+eSUMikPrTTY6/iYlexZHxw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-8.0.0.tgz", + "integrity": "sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA==", "requires": { "@yarnpkg/lockfile": "^1.1.0", "chalk": "^4.1.2", @@ -77933,11 +77891,12 @@ "cross-spawn": "^7.0.3", "find-yarn-workspace-root": "^2.0.0", "fs-extra": "^9.0.0", + "json-stable-stringify": "^1.0.2", "klaw-sync": "^6.0.0", "minimist": "^1.2.6", "open": "^7.4.2", "rimraf": "^2.6.3", - "semver": "^7.0.0", + "semver": "^7.5.3", "slash": "^2.0.0", "tmp": "^0.0.33", "yaml": "^2.2.2" @@ -78814,14 +78773,14 @@ "version": "16.13.1" }, "react-native": { - "version": "0.72.1", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.1.tgz", - "integrity": "sha512-O9cIVD++kt2XQl0XLCUGUgwSKr8xp+yo0ho5QK6KYWJrCFnnvQLTKL0+HD0rZUcuqFfGknHQJh3h0moQO2EMDg==", + "version": "0.72.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.3.tgz", + "integrity": "sha512-QqISi+JVmCssNP2FlQ4MWhlc4O/I00MRE1/GClvyZ8h/6kdsyk/sOirkYdZqX3+DrJfI3q+OnyMnsyaXIQ/5tQ==", "requires": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "11.3.3", - "@react-native-community/cli-platform-android": "11.3.3", - "@react-native-community/cli-platform-ios": "11.3.3", + "@react-native-community/cli": "11.3.5", + "@react-native-community/cli-platform-android": "11.3.5", + "@react-native-community/cli-platform-ios": "11.3.5", "@react-native/assets-registry": "^0.72.0", "@react-native/codegen": "^0.72.6", "@react-native/gradle-plugin": "^0.72.11", @@ -78838,8 +78797,8 @@ "jest-environment-node": "^29.2.1", "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", - "metro-runtime": "0.76.5", - "metro-source-map": "0.76.5", + "metro-runtime": "0.76.7", + "metro-source-map": "0.76.7", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", @@ -78903,36 +78862,36 @@ } }, "metro-runtime": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.5.tgz", - "integrity": "sha512-1JAf9/v/NDHLhoTfiJ0n25G6dRkX7mjTkaMJ6UUXIyfIuSucoK5yAuOBx8OveNIekoLRjmyvSmyN5ojEeRmpvQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", + "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", "requires": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" } }, "metro-source-map": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.5.tgz", - "integrity": "sha512-1EhYPcoftONlvnOzgos7daE8hsJKOgSN3nD3Xf/yaY1F0aLeGeuWfpiNLLeFDNyUhfObHSuNxNhDQF/x1GFEbw==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", + "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", "requires": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.5", + "metro-symbolicate": "0.76.7", "nullthrows": "^1.1.1", - "ob1": "0.76.5", + "ob1": "0.76.7", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.5.tgz", - "integrity": "sha512-7iftzh6G6HO4UDBmjsi2Yu4d6IkApv6Kg+jmBvkTjCXr8HwnKKum89gMg/FRMix+Rhhut0dnMpz6mAbtKTU9JQ==", + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", + "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.76.5", + "metro-source-map": "0.76.7", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -78948,9 +78907,9 @@ } }, "ob1": { - "version": "0.76.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.5.tgz", - "integrity": "sha512-HoxZXMXNuY/eIXGoX7gx1C4O3eB4kJJMola6KoFaMm7PGGg39+AnhbgMASYVmSvP2lwU3545NyiR63g8J9PW3w==" + "version": "0.76.7", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", + "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==" }, "pretty-format": { "version": "26.6.2", diff --git a/package.json b/package.json index e55f3e3c6845..d008410eda0f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new.expensify", - "version": "1.3.52-1", + "version": "1.3.52-3", "author": "Expensify, Inc.", "homepage": "https://new.expensify.com", "description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.", @@ -81,7 +81,7 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#9940dd127c2d44809c98ee628a8057f08c93bfc9", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#b60e464ca23e452eacffb93d471abed977b9abf0", "fbjs": "^3.0.2", "htmlparser2": "^7.2.0", "jest-when": "^3.5.2", @@ -93,7 +93,7 @@ "moment": "^2.29.4", "moment-timezone": "^0.5.31", "onfido-sdk-ui": "13.1.0", - "patch-package": "^8.0.0-canary.2", + "patch-package": "^8.0.0", "process": "^0.11.10", "prop-types": "^15.7.2", "pusher-js": "7.4.0", @@ -101,7 +101,7 @@ "react-collapse": "^5.1.0", "react-content-loader": "^6.1.0", "react-dom": "18.1.0", - "react-native": "0.72.1", + "react-native": "0.72.3", "react-native-blob-util": "^0.17.3", "react-native-collapsible": "^1.6.0", "react-native-config": "^1.4.5", @@ -156,15 +156,15 @@ "@babel/preset-env": "^7.20.0", "@babel/preset-flow": "^7.12.13", "@babel/preset-react": "^7.10.4", - "@babel/runtime": "^7.20.0", "@babel/preset-typescript": "^7.21.5", + "@babel/runtime": "^7.20.0", "@electron/notarize": "^1.2.3", "@jest/globals": "^29.5.0", "@octokit/core": "4.0.4", "@octokit/plugin-paginate-rest": "3.1.0", "@octokit/plugin-throttling": "4.1.0", "@react-native-community/eslint-config": "3.0.0", - "@react-native/metro-config": "^0.72.7", + "@react-native/metro-config": "^0.72.9", "@react-navigation/devtools": "^6.0.10", "@storybook/addon-a11y": "^6.5.9", "@storybook/addon-essentials": "^7.0.0", @@ -177,7 +177,6 @@ "@svgr/webpack": "^6.0.0", "@testing-library/jest-native": "5.4.1", "@testing-library/react-native": "11.5.1", - "@types/metro-config": "^0.76.3", "@types/concurrently": "^7.0.0", "@types/jest": "^29.5.2", "@types/jest-when": "^3.5.2", @@ -230,7 +229,7 @@ "jest-circus": "29.4.1", "jest-cli": "29.4.1", "jest-environment-jsdom": "^29.4.1", - "metro-react-native-babel-preset": "0.76.5", + "metro-react-native-babel-preset": "0.76.7", "mock-fs": "^4.13.0", "onchange": "^7.1.0", "portfinder": "^1.0.28", diff --git a/patches/react-native+0.72.1+004+textViewDidChange.patch b/patches/react-native+0.72.1+004+textViewDidChange.patch deleted file mode 100644 index a68c67483e87..000000000000 --- a/patches/react-native+0.72.1+004+textViewDidChange.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m -index 1c8f8e0..10f469b 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m -+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m -@@ -256,7 +256,7 @@ - (BOOL)textView:(__unused UITextView *)textView shouldChangeTextInRange:(NSRang - - - (void)textViewDidChange:(__unused UITextView *)textView - { -- if (_ignoreNextTextInputCall) { -+ if (_ignoreNextTextInputCall && [_lastStringStateWasUpdatedWith isEqual:_backedTextInputView.attributedText]) { - _ignoreNextTextInputCall = NO; - return; - } \ No newline at end of file diff --git a/patches/react-native+0.72.1+001+initial.patch b/patches/react-native+0.72.3+001+initial.patch similarity index 100% rename from patches/react-native+0.72.1+001+initial.patch rename to patches/react-native+0.72.3+001+initial.patch diff --git a/patches/react-native+0.72.1+002+NumberOfLines.patch b/patches/react-native+0.72.3+002+NumberOfLines.patch similarity index 100% rename from patches/react-native+0.72.1+002+NumberOfLines.patch rename to patches/react-native+0.72.3+002+NumberOfLines.patch diff --git a/patches/react-native+0.72.1+003+VerticalScrollBarPosition.patch b/patches/react-native+0.72.3+003+VerticalScrollBarPosition.patch similarity index 100% rename from patches/react-native+0.72.1+003+VerticalScrollBarPosition.patch rename to patches/react-native+0.72.3+003+VerticalScrollBarPosition.patch diff --git a/src/CONST.js b/src/CONST.js index 8f2c984a664f..dc0d35129a02 100755 --- a/src/CONST.js +++ b/src/CONST.js @@ -221,6 +221,7 @@ const CONST = { TASKS: 'tasks', THREADS: 'threads', SCAN_RECEIPTS: 'scanReceipts', + CUSTOM_STATUS: 'customStatus', DISTANCE_REQUESTS: 'distanceRequests', }, BUTTON_STATES: { @@ -2517,6 +2518,14 @@ const CONST = { TRANSLATION_KEYS: { ATTACHMENT: 'common.attachment', }, + CUSTOM_STATUS_TYPES: { + NEVER: 'never', + THIRTY_MINUTES: 'thirtyMinutes', + ONE_HOUR: 'oneHour', + AFTER_TODAY: 'afterToday', + AFTER_WEEK: 'afterWeek', + CUSTOM: 'custom', + }, TAB: { RECEIPT_TAB_ID: 'ReceiptTab', MANUAL: 'manual', diff --git a/src/ONYXKEYS.js b/src/ONYXKEYS.js index 4a255538c786..89e6aa9be419 100755 --- a/src/ONYXKEYS.js +++ b/src/ONYXKEYS.js @@ -42,6 +42,9 @@ export default { // Has information about the network status (offline/online) NETWORK: 'network', + // draft status + CUSTOM_STATUS_DRAFT: 'customStatusDraft', + // Contains all the personalDetails the user has access to, keyed by accountID PERSONAL_DETAILS_LIST: 'personalDetailsList', @@ -219,6 +222,9 @@ export default { MONEY_REQUEST_DESCRIPTION_FORM: 'moneyRequestDescriptionForm', NEW_CONTACT_METHOD_FORM: 'newContactMethodForm', PAYPAL_FORM: 'payPalForm', + SETTINGS_STATUS_SET_FORM: 'settingsStatusSetForm', + SETTINGS_STATUS_CLEAR_AFTER_FORM: 'settingsStatusClearAfterForm', + SETTINGS_STATUS_SET_CLEAR_AFTER_FORM: 'settingsStatusSetClearAfterForm', }, // Whether we should show the compose input or not diff --git a/src/ROUTES.js b/src/ROUTES.js index 88db46a60113..6c0365e40568 100644 --- a/src/ROUTES.js +++ b/src/ROUTES.js @@ -12,6 +12,8 @@ const IOU_SEND = 'send/new'; const NEW_TASK = 'new/task'; const SETTINGS_PERSONAL_DETAILS = 'settings/profile/personal-details'; const SETTINGS_CONTACT_METHODS = 'settings/profile/contact-methods'; +const SETTINGS_STATUS = 'settings/profile/status'; +const SETTINGS_STATUS_SET = 'settings/profile/status/set'; export default { BANK_ACCOUNT: 'bank-account', @@ -58,6 +60,8 @@ export default { SETTINGS_2FA_CODES: 'settings/security/two-factor-auth/codes', SETTINGS_2FA_VERIFY: 'settings/security/two-factor-auth/verify', SETTINGS_2FA_SUCCESS: 'settings/security/two-factor-auth/success', + SETTINGS_STATUS, + SETTINGS_STATUS_SET, NEW_GROUP: 'new/group', NEW_CHAT: 'new/chat', NEW_TASK, diff --git a/src/components/EmojiPicker/EmojiPicker.js b/src/components/EmojiPicker/EmojiPicker.js index 79e7e7bc601f..2a3a7ba296f2 100644 --- a/src/components/EmojiPicker/EmojiPicker.js +++ b/src/components/EmojiPicker/EmojiPicker.js @@ -48,17 +48,18 @@ const EmojiPicker = forwardRef((props, ref) => { onModalHide.current = onModalHideValue; onEmojiSelected.current = onEmojiSelectedValue; emojiPopoverAnchor.current = emojiPopoverAnchorValue; - - if (emojiPopoverAnchor.current) { + if (emojiPopoverAnchor.current && emojiPopoverAnchor.current.blur) { // Drop focus to avoid blue focus ring. emojiPopoverAnchor.current.blur(); } - calculateAnchorPosition(emojiPopoverAnchor.current).then((value) => { + const anchorOriginValue = anchorOrigin || DEFAULT_ANCHOR_ORIGIN; + + calculateAnchorPosition(emojiPopoverAnchor.current, anchorOriginValue).then((value) => { onWillShow(); setIsEmojiPickerVisible(true); setEmojiPopoverAnchorPosition(value); - setEmojiPopoverAnchorOrigin(anchorOrigin || DEFAULT_ANCHOR_ORIGIN); + setEmojiPopoverAnchorOrigin(anchorOriginValue); setReportAction(reportActionValue); }); }; @@ -130,14 +131,14 @@ const EmojiPicker = forwardRef((props, ref) => { } return; } - calculateAnchorPosition(emojiPopoverAnchor.current).then((value) => { + calculateAnchorPosition(emojiPopoverAnchor.current, emojiPopoverAnchorOrigin).then((value) => { setEmojiPopoverAnchorPosition(value); }); }); return () => { emojiPopoverDimensionListener.remove(); }; - }, [isEmojiPickerVisible, props.isSmallScreenWidth]); + }, [isEmojiPickerVisible, props.isSmallScreenWidth, emojiPopoverAnchorOrigin]); // There is no way to disable animations, and they are really laggy, because there are so many // emojis. The best alternative is to set it to 1ms so it just "pops" in and out diff --git a/src/components/EmojiPicker/EmojiPickerButtonDropdown.js b/src/components/EmojiPicker/EmojiPickerButtonDropdown.js new file mode 100644 index 000000000000..3023a9abf95c --- /dev/null +++ b/src/components/EmojiPicker/EmojiPickerButtonDropdown.js @@ -0,0 +1,81 @@ +import React, {useRef, useEffect} from 'react'; +import PropTypes from 'prop-types'; +import {View} from 'react-native'; +import styles from '../../styles/styles'; +import CONST from '../../CONST'; +import * as StyleUtils from '../../styles/StyleUtils'; +import getButtonState from '../../libs/getButtonState'; +import * as Expensicons from '../Icon/Expensicons'; +import Tooltip from '../Tooltip'; +import Text from '../Text'; +import Icon from '../Icon'; +import withLocalize, {withLocalizePropTypes} from '../withLocalize'; +import * as EmojiPickerAction from '../../libs/actions/EmojiPickerAction'; +import PressableWithoutFeedback from '../Pressable/PressableWithoutFeedback'; + +const propTypes = { + /** Flag to disable the emoji picker button */ + isDisabled: PropTypes.bool, + + ...withLocalizePropTypes, +}; + +const defaultProps = { + isDisabled: false, +}; + +function EmojiPickerButtonDropdown(props) { + const emojiPopoverAnchor = useRef(null); + useEffect(() => EmojiPickerAction.resetEmojiPopoverAnchor, []); + + const onPress = () => + EmojiPickerAction.showEmojiPicker(props.onModalHide, (emoji) => props.onInputChange(emoji), emojiPopoverAnchor.current, { + horizontal: CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.LEFT, + vertical: CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.TOP, + shiftVertical: 4, + }); + + return ( + + + {({hovered, pressed}) => ( + + + {props.value} + + + + + + )} + + + ); +} + +EmojiPickerButtonDropdown.propTypes = propTypes; +EmojiPickerButtonDropdown.defaultProps = defaultProps; +EmojiPickerButtonDropdown.displayName = 'EmojiPickerButtonDropdown'; +export default withLocalize( + React.forwardRef((props, ref) => ( + + )), +); diff --git a/src/components/FormAlertWithSubmitButton.js b/src/components/FormAlertWithSubmitButton.js index beb97f36c665..9c941fa9b967 100644 --- a/src/components/FormAlertWithSubmitButton.js +++ b/src/components/FormAlertWithSubmitButton.js @@ -1,6 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import {View} from 'react-native'; +import _ from 'underscore'; import styles from '../styles/styles'; import Button from './Button'; import FormAlertWrapper from './FormAlertWrapper'; @@ -61,6 +62,8 @@ const defaultProps = { }; function FormAlertWithSubmitButton(props) { + const buttonMarginStyle = _.isEmpty(props.footerContent) ? {} : styles.mb3; + return ( ) : ( @@ -84,6 +87,7 @@ function FormAlertWithSubmitButton(props) { success pressOnEnter={!props.disablePressOnEnter} text={props.buttonText} + style={buttonMarginStyle} onPress={props.onSubmit} isDisabled={props.isDisabled} isLoading={props.isLoading} diff --git a/src/components/PDFView/index.js b/src/components/PDFView/index.js index 75c99757e7e0..26e117815ec1 100644 --- a/src/components/PDFView/index.js +++ b/src/components/PDFView/index.js @@ -101,7 +101,7 @@ class PDFView extends Component { * Calculates a proper page height. The method should be called only when there are page viewports. * It is based on a ratio between the specific page viewport width and provided page width. * Also, the app should take into account the page borders. - * @param {*} pageIndex + * @param {Number} pageIndex * @returns {Number} */ calculatePageHeight(pageIndex) { @@ -178,13 +178,17 @@ class PDFView extends Component { } /** - * It is a currying method that returns a function that renders a specific page based on its index. - * The function includes a wrapper to apply virtualized styles. - * @param {Number} pageWidth + * Render a specific page based on its index. + * The method includes a wrapper to apply virtualized styles. + * @param {Object} page item object of the List + * @param {Number} page.index index of the page + * @param {Object} page.style virtualized styles * @returns {JSX.Element} */ - renderPage(pageWidth) { - return ({index, style}) => ( + renderPage({index, style}) { + const pageWidth = this.calculatePageWidth(); + + return ( - {this.renderPage(pageWidth)} + {this.renderPage} )} diff --git a/src/components/ScreenWrapper/index.js b/src/components/ScreenWrapper/index.js index 8cd4206886f8..17b0492b88c2 100644 --- a/src/components/ScreenWrapper/index.js +++ b/src/components/ScreenWrapper/index.js @@ -19,6 +19,7 @@ import withWindowDimensions from '../withWindowDimensions'; import withEnvironment from '../withEnvironment'; import toggleTestToolsModal from '../../libs/actions/TestTool'; import CustomDevMenu from '../CustomDevMenu'; +import * as Browser from '../../libs/Browser'; class ScreenWrapper extends React.Component { constructor(props) { @@ -29,6 +30,15 @@ class ScreenWrapper extends React.Component { onPanResponderRelease: toggleTestToolsModal, }); + this.keyboardDissmissPanResponder = PanResponder.create({ + onMoveShouldSetPanResponderCapture: (e, gestureState) => { + const isHorizontalSwipe = Math.abs(gestureState.dx) > Math.abs(gestureState.dy); + const shouldDismissKeyboard = this.props.shouldDismissKeyboardBeforeClose && this.props.isKeyboardShown && Browser.isMobile(); + return isHorizontalSwipe && shouldDismissKeyboard; + }, + onPanResponderGrant: Keyboard.dismiss, + }); + this.state = { didScreenTransitionEnd: false, }; @@ -96,35 +106,41 @@ class ScreenWrapper extends React.Component { return ( - - - - {this.props.environment === CONST.ENVIRONMENT.DEV && } - {this.props.environment === CONST.ENVIRONMENT.DEV && } - { - // If props.children is a function, call it to provide the insets to the children. - _.isFunction(this.props.children) - ? this.props.children({ - insets, - safeAreaPaddingBottomStyle, - didScreenTransitionEnd: this.state.didScreenTransitionEnd, - }) - : this.props.children - } - {this.props.isSmallScreenWidth && this.props.shouldShowOfflineIndicator && } - - + + + {this.props.environment === CONST.ENVIRONMENT.DEV && } + {this.props.environment === CONST.ENVIRONMENT.DEV && } + { + // If props.children is a function, call it to provide the insets to the children. + _.isFunction(this.props.children) + ? this.props.children({ + insets, + safeAreaPaddingBottomStyle, + didScreenTransitionEnd: this.state.didScreenTransitionEnd, + }) + : this.props.children + } + {this.props.isSmallScreenWidth && this.props.shouldShowOfflineIndicator && } + + + ); }} diff --git a/src/components/StaticHeaderPageLayout.js b/src/components/StaticHeaderPageLayout.js new file mode 100644 index 000000000000..f97e42329942 --- /dev/null +++ b/src/components/StaticHeaderPageLayout.js @@ -0,0 +1,92 @@ +import _ from 'underscore'; +import React, {useMemo} from 'react'; +import PropTypes from 'prop-types'; +import {ScrollView, View} from 'react-native'; +import headerWithBackButtonPropTypes from './HeaderWithBackButton/headerWithBackButtonPropTypes'; +import HeaderWithBackButton from './HeaderWithBackButton'; +import ScreenWrapper from './ScreenWrapper'; +import styles from '../styles/styles'; +import themeColors from '../styles/themes/default'; +import * as StyleUtils from '../styles/StyleUtils'; +import useWindowDimensions from '../hooks/useWindowDimensions'; +import FixedFooter from './FixedFooter'; + +const propTypes = { + ...headerWithBackButtonPropTypes, + + /** Children to display in the lower half of the page (below the header section w/ an animation) */ + children: PropTypes.node.isRequired, + + /** The background color to apply in the upper half of the screen. */ + backgroundColor: PropTypes.string, + + /** A fixed footer to display at the bottom of the page. */ + footer: PropTypes.node, +}; + +const defaultProps = { + backgroundColor: themeColors.appBG, + footer: null, +}; + +function StaticHeaderPageLayout({backgroundColor, children, image: Image, footer, imageContainerStyle, style, ...propsToPassToHeader}) { + const {windowHeight} = useWindowDimensions(); + + const {titleColor, iconFill} = useMemo(() => { + const isColorfulBackground = backgroundColor !== themeColors.appBG; + return { + titleColor: isColorfulBackground ? themeColors.textColorfulBackground : undefined, + iconFill: isColorfulBackground ? themeColors.iconColorfulBackground : undefined, + }; + }, [backgroundColor]); + + return ( + + {({safeAreaPaddingBottomStyle}) => ( + <> + + + + + + + + {children} + + {!_.isNull(footer) && {footer}} + + + )} + + ); +} + +StaticHeaderPageLayout.propTypes = propTypes; +StaticHeaderPageLayout.defaultProps = defaultProps; +StaticHeaderPageLayout.displayName = 'StaticHeaderPageLayout'; + +export default StaticHeaderPageLayout; diff --git a/src/components/Tooltip/index.js b/src/components/Tooltip/index.js index 0454327de284..398df07649cf 100644 --- a/src/components/Tooltip/index.js +++ b/src/components/Tooltip/index.js @@ -1,121 +1,114 @@ import _ from 'underscore'; -import React, {PureComponent} from 'react'; +import React, {memo, useCallback, useEffect, useRef, useState} from 'react'; import {Animated} from 'react-native'; import {BoundsObserver} from '@react-ng/bounds-observer'; import TooltipRenderedOnPageBody from './TooltipRenderedOnPageBody'; import Hoverable from '../Hoverable'; -import withWindowDimensions from '../withWindowDimensions'; import * as tooltipPropTypes from './tooltipPropTypes'; import TooltipSense from './TooltipSense'; import * as DeviceCapabilities from '../../libs/DeviceCapabilities'; -import compose from '../../libs/compose'; -import withLocalize from '../withLocalize'; +import usePrevious from '../../hooks/usePrevious'; +import useLocalize from '../../hooks/useLocalize'; +import useWindowDimensions from '../../hooks/useWindowDimensions'; + +const hasHoverSupport = DeviceCapabilities.hasHoverSupport(); /** * A component used to wrap an element intended for displaying a tooltip. The term "tooltip's target" refers to the * wrapped element, which, upon hover, triggers the tooltip to be shown. + * @param {propTypes} props + * @returns {ReactNodeLike} */ -class Tooltip extends PureComponent { - constructor(props) { - super(props); - - this.state = { - // Is tooltip already rendered on the page's body? This happens once. - isRendered: false, - - // Is the tooltip currently visible? - isVisible: false, - - // The distance between the left side of the wrapper view and the left side of the window - xOffset: 0, - - // The distance between the top of the wrapper view and the top of the window - yOffset: 0, - - // The width and height of the wrapper view - wrapperWidth: 0, - wrapperHeight: 0, - }; - - // Whether the tooltip is first tooltip to activate the TooltipSense - this.isTooltipSenseInitiator = false; - this.animation = new Animated.Value(0); - this.hasHoverSupport = DeviceCapabilities.hasHoverSupport(); - - this.showTooltip = this.showTooltip.bind(this); - this.hideTooltip = this.hideTooltip.bind(this); - this.updateBounds = this.updateBounds.bind(this); - this.isAnimationCanceled = React.createRef(false); - } - - // eslint-disable-next-line rulesdir/prefer-early-return - componentDidUpdate(prevProps) { - // if the tooltip text changed before the initial animation was finished, then the tooltip won't be shown - // we need to show the tooltip again - if (this.state.isVisible && this.isAnimationCanceled.current && this.props.text && prevProps.text !== this.props.text) { - this.isAnimationCanceled.current = false; - this.showTooltip(); - } - } - - /** - * Update the tooltip bounding rectangle - * - * @param {Object} bounds - updated bounds - */ - updateBounds(bounds) { - if (bounds.width === 0) { - this.setState({isRendered: false}); - } - this.setState({ - wrapperWidth: bounds.width, - wrapperHeight: bounds.height, - xOffset: bounds.x, - yOffset: bounds.y, - }); - } +function Tooltip(props) { + const {children, numberOfLines, maxWidth, text, renderTooltipContent, renderTooltipContentKey} = props; + + const {preferredLocale} = useLocalize(); + const {windowWidth} = useWindowDimensions(); + + // Is tooltip already rendered on the page's body? happens once. + const [isRendered, setIsRendered] = useState(false); + // Is the tooltip currently visible? + const [isVisible, setIsVisible] = useState(false); + // The distance between the left side of the wrapper view and the left side of the window + const [xOffset, setXOffset] = useState(0); + // The distance between the top of the wrapper view and the top of the window + const [yOffset, setYOffset] = useState(0); + // The width and height of the wrapper view + const [wrapperWidth, setWrapperWidth] = useState(0); + const [wrapperHeight, setWrapperHeight] = useState(0); + + // Whether the tooltip is first tooltip to activate the TooltipSense + const isTooltipSenseInitiator = useRef(false); + const animation = useRef(new Animated.Value(0)); + const isAnimationCanceled = useRef(false); + const prevText = usePrevious(text); /** * Display the tooltip in an animation. */ - showTooltip() { - if (!this.state.isRendered) { - this.setState({isRendered: true}); + const showTooltip = useCallback(() => { + if (!isRendered) { + setIsRendered(true); } - this.setState({isVisible: true}); + setIsVisible(true); - this.animation.stopAnimation(); + animation.current.stopAnimation(); // When TooltipSense is active, immediately show the tooltip if (TooltipSense.isActive()) { - this.animation.setValue(1); + animation.current.setValue(1); } else { - this.isTooltipSenseInitiator = true; - Animated.timing(this.animation, { + isTooltipSenseInitiator.current = true; + Animated.timing(animation.current, { toValue: 1, duration: 140, delay: 500, useNativeDriver: false, }).start(({finished}) => { - this.isAnimationCanceled.current = !finished; + isAnimationCanceled.current = !finished; }); } TooltipSense.activate(); - } + }, [isRendered]); + + // eslint-disable-next-line rulesdir/prefer-early-return + useEffect(() => { + // if the tooltip text changed before the initial animation was finished, then the tooltip won't be shown + // we need to show the tooltip again + if (isVisible && isAnimationCanceled.current && text && prevText !== text) { + isAnimationCanceled.current = false; + showTooltip(); + } + }, [isVisible, text, prevText, showTooltip]); + + /** + * Update the tooltip bounding rectangle + * + * @param {Object} bounds - updated bounds + */ + const updateBounds = (bounds) => { + if (bounds.width === 0) { + setIsRendered(false); + } + setWrapperWidth(bounds.width); + setWrapperHeight(bounds.height); + setXOffset(bounds.x); + setYOffset(bounds.y); + }; /** * Hide the tooltip in an animation. */ - hideTooltip() { - this.animation.stopAnimation(); + const hideTooltip = () => { + animation.current.stopAnimation(); - if (TooltipSense.isActive() && !this.isTooltipSenseInitiator) { - this.animation.setValue(0); + if (TooltipSense.isActive() && !isTooltipSenseInitiator.current) { + animation.current.setValue(0); } else { // Hide the first tooltip which initiated the TooltipSense with animation - this.isTooltipSenseInitiator = false; - Animated.timing(this.animation, { + isTooltipSenseInitiator.current = false; + Animated.timing(animation.current, { toValue: 0, duration: 140, useNativeDriver: false, @@ -124,53 +117,51 @@ class Tooltip extends PureComponent { TooltipSense.deactivate(); - this.setState({isVisible: false}); - } + setIsVisible(false); + }; - render() { - // Skip the tooltip and return the children if the text is empty, - // we don't have a render function or the device does not support hovering - if ((_.isEmpty(this.props.text) && this.props.renderTooltipContent == null) || !this.hasHoverSupport) { - return this.props.children; - } + // Skip the tooltip and return the children if the text is empty, + // we don't have a render function or the device does not support hovering + if ((_.isEmpty(text) && renderTooltipContent == null) || !hasHoverSupport) { + return children; + } - return ( - <> - {this.state.isRendered && ( - - )} - + {isRendered && ( + + )} + + - - {this.props.children} - - - - ); - } + {children} + + + + ); } Tooltip.propTypes = tooltipPropTypes.propTypes; Tooltip.defaultProps = tooltipPropTypes.defaultProps; -export default compose(withWindowDimensions, withLocalize)(Tooltip); +export default memo(Tooltip); diff --git a/src/components/Tooltip/tooltipPropTypes.js b/src/components/Tooltip/tooltipPropTypes.js index f9a1847df242..af18c4cfa412 100644 --- a/src/components/Tooltip/tooltipPropTypes.js +++ b/src/components/Tooltip/tooltipPropTypes.js @@ -1,5 +1,4 @@ import PropTypes from 'prop-types'; -import {windowDimensionsPropTypes} from '../withWindowDimensions'; import variables from '../../styles/variables'; import CONST from '../../CONST'; @@ -13,9 +12,6 @@ const propTypes = { /** Children to wrap with Tooltip. */ children: PropTypes.node.isRequired, - /** Props inherited from withWindowDimensions */ - ...windowDimensionsPropTypes, - /** Any additional amount to manually adjust the horizontal position of the tooltip. A positive value shifts the tooltip to the right, and a negative value shifts it to the left. */ shiftHorizontal: PropTypes.oneOfType([PropTypes.number, PropTypes.func]), diff --git a/src/languages/en.js b/src/languages/en.js index bbf2762cc92f..7e2c288cdfba 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -864,6 +864,15 @@ export default { setPasswordLinkInvalid: 'This set password link is invalid or has expired. A new one is waiting for you in your email inbox!', validateAccount: 'Verify account', }, + statusPage: { + status: 'Status', + setStatusTitle: 'Set your status', + statusExplanation: "Add an emoji to give your colleagues and friends an easy way to know what's going on. You can optionally add a message too!", + today: 'Today', + clearStatus: 'Clear status', + save: 'Save', + message: 'Message', + }, stepCounter: ({step, total, text}) => { let result = `Step ${step}`; diff --git a/src/languages/es.js b/src/languages/es.js index c9ba02840238..2418e7993ea8 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -868,6 +868,15 @@ export default { setPasswordLinkInvalid: 'El enlace para configurar tu contraseña ha expirado. Te hemos enviado un nuevo enlace a tu correo.', validateAccount: 'Verificar cuenta', }, + statusPage: { + status: 'Estado', + setStatusTitle: 'Establece tu estado', + statusExplanation: 'Agrega un emoji para que tus colegas y amigos puedan saber fácilmente qué está pasando. ¡También puedes agregar un mensaje opcionalmente!', + today: 'Hoy', + clearStatus: 'Borrar estado', + save: 'Guardar', + message: 'Mensaje', + }, stepCounter: ({step, total, text}) => { let result = `Paso ${step}`; diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.js b/src/libs/Navigation/AppNavigator/AuthScreens.js index ddd61da272e6..71bf782959cd 100644 --- a/src/libs/Navigation/AppNavigator/AuthScreens.js +++ b/src/libs/Navigation/AppNavigator/AuthScreens.js @@ -219,7 +219,6 @@ class AuthScreens extends React.Component { // we want pop in RHP since there are some flows that would work weird otherwise animationTypeForReplace: 'pop', cardStyle: getNavigationModalCardStyle({ - windowHeight: this.props.windowHeight, isSmallScreenWidth: this.props.isSmallScreenWidth, }), }; diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js index 6c49fb4c7b57..8a489afb035e 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators.js +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators.js @@ -515,6 +515,20 @@ const SettingsModalStackNavigator = createModalStackNavigator([ }, name: 'Settings_Add_Bank_Account', }, + { + getComponent: () => { + const SettingsStatus = require('../../../pages/settings/Profile/CustomStatus/StatusPage').default; + return SettingsStatus; + }, + name: 'Settings_Status', + }, + { + getComponent: () => { + const SettingsStatusSet = require('../../../pages/settings/Profile/CustomStatus/StatusSetPage').default; + return SettingsStatusSet; + }, + name: 'Settings_Status_Set', + }, { getComponent: () => { const WorkspaceInitialPage = require('../../../pages/workspace/WorkspaceInitialPage').default; diff --git a/src/libs/Navigation/linkingConfig.js b/src/libs/Navigation/linkingConfig.js index 6c4d58a4c585..dcc4f77fde73 100644 --- a/src/libs/Navigation/linkingConfig.js +++ b/src/libs/Navigation/linkingConfig.js @@ -176,6 +176,14 @@ export default { path: ROUTES.SETTINGS_SHARE_CODE, exact: true, }, + Settings_Status: { + path: ROUTES.SETTINGS_STATUS, + exact: true, + }, + Settings_Status_Set: { + path: ROUTES.SETTINGS_STATUS_SET, + exact: true, + }, Workspace_Initial: { path: ROUTES.WORKSPACE_INITIAL, }, diff --git a/src/libs/Permissions.js b/src/libs/Permissions.js index ec16f782201a..fc97436eddcb 100644 --- a/src/libs/Permissions.js +++ b/src/libs/Permissions.js @@ -94,6 +94,14 @@ function canUseScanReceipts(betas) { return _.contains(betas, CONST.BETAS.SCAN_RECEIPTS) || canUseAllBetas(betas); } +/** + * @param {Array} betas + * @returns {Boolean} + */ +function canUseCustomStatus(betas) { + return _.contains(betas, CONST.BETAS.CUSTOM_STATUS) || canUseAllBetas(betas); +} + /** * @param {Array} betas * @returns {Boolean} @@ -113,5 +121,6 @@ export default { canUsePolicyExpenseChat, canUseTasks, canUseScanReceipts, + canUseCustomStatus, canUseDistanceRequests, }; diff --git a/src/libs/actions/Report.js b/src/libs/actions/Report.js index a69e0e26f15d..2ac014e22a13 100644 --- a/src/libs/actions/Report.js +++ b/src/libs/actions/Report.js @@ -1063,7 +1063,7 @@ function editReportComment(reportID, originalReportAction, textForNewComment) { } // Skip the Edit if message is not changed - if (parsedOriginalCommentHTML === htmlForNewComment.trim()) { + if (parsedOriginalCommentHTML === htmlForNewComment.trim() || originalCommentHTML === htmlForNewComment.trim()) { return; } diff --git a/src/libs/actions/User.js b/src/libs/actions/User.js index d07cb23c039c..c0565386ce94 100644 --- a/src/libs/actions/User.js +++ b/src/libs/actions/User.js @@ -829,6 +829,69 @@ function updateTheme(theme) { Navigation.navigate(ROUTES.SETTINGS_PREFERENCES); } +/** + * Sets a custom status + * + * @param {Object} status + * @param {String} status.text + * @param {String} status.emojiCode + * @param {String} status.clearAfter - ISO 8601 format string, which represents the time when the status should be cleared + */ +function updateCustomStatus(status) { + API.write('UpdateStatus', status, { + optimisticData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: ONYXKEYS.PERSONAL_DETAILS_LIST, + value: { + [currentUserAccountID]: { + status, + }, + }, + }, + ], + }); +} + +/** + * Clears the custom status + */ +function clearCustomStatus() { + API.write('ClearStatus', undefined, { + optimisticData: [ + { + onyxMethod: Onyx.METHOD.MERGE, + key: ONYXKEYS.PERSONAL_DETAILS_LIST, + value: { + [currentUserAccountID]: { + status: null, // Clearing the field + }, + }, + }, + ], + }); +} + +/** + * Sets a custom status + * + * @param {Object} status + * @param {String} status.text + * @param {String} status.emojiCode + * @param {String} status.clearAfter - ISO 8601 format string, which represents the time when the status should be cleared + */ +function updateDraftCustomStatus(status) { + Onyx.merge(ONYXKEYS.CUSTOM_STATUS_DRAFT, status); +} + +/** + * Clear the custom draft status + * + */ +function clearDraftCustomStatus() { + Onyx.merge(ONYXKEYS.CUSTOM_STATUS_DRAFT, {text: '', emojiCode: '', clearAfter: ''}); +} + export { closeAccount, resendValidateCode, @@ -854,4 +917,8 @@ export { setContactMethodAsDefault, updateTheme, resetContactMethodValidateCodeSentState, + updateCustomStatus, + clearCustomStatus, + updateDraftCustomStatus, + clearDraftCustomStatus, }; diff --git a/src/libs/calculateAnchorPosition.js b/src/libs/calculateAnchorPosition.js index 512f77612f52..c886c9ac3712 100644 --- a/src/libs/calculateAnchorPosition.js +++ b/src/libs/calculateAnchorPosition.js @@ -1,14 +1,26 @@ +import lodashGet from 'lodash/get'; +import CONST from '../CONST'; + /** * Gets the x,y position of the passed in component for the purpose of anchoring another component to it. * * @param {Element} anchorComponent + * @param {{horizontal: string, vertical: string}} anchorOriginValue - Optional parameter * @return {Promise} */ -export default function calculateAnchorPosition(anchorComponent) { +export default function calculateAnchorPosition(anchorComponent, anchorOriginValue) { return new Promise((resolve) => { if (!anchorComponent) { return resolve({horizontal: 0, vertical: 0}); } - anchorComponent.measureInWindow((x, y, width) => resolve({horizontal: x + width, vertical: y})); + anchorComponent.measureInWindow((x, y, width, height) => { + if ( + lodashGet(anchorOriginValue, 'vertical') === CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.TOP && + lodashGet(anchorOriginValue, 'horizontal') === CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.LEFT + ) { + return resolve({horizontal: x, vertical: y + height + lodashGet(anchorOriginValue, 'shiftVertical', 0)}); + } + return resolve({horizontal: x + width, vertical: y}); + }); }); } diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.js b/src/pages/home/report/ContextMenu/ContextMenuActions.js index bc184ac2ab66..79e49efb6a03 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.js +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.js @@ -240,7 +240,7 @@ export default [ icon: Expensicons.Mail, successIcon: Expensicons.Checkmark, shouldShow: (type, reportAction, isArchivedRoom, betas, anchor, isChronosReport, reportID, isPinnedChat, isUnreadChat) => - !isUnreadChat && (type === CONTEXT_MENU_TYPES.REPORT_ACTION || type === CONTEXT_MENU_TYPES.REPORT), + type === CONTEXT_MENU_TYPES.REPORT_ACTION || (type === CONTEXT_MENU_TYPES.REPORT && !isUnreadChat), onPress: (closePopover, {reportAction, reportID}) => { Report.markCommentAsUnread(reportID, reportAction.created); if (closePopover) { diff --git a/src/pages/home/report/ReportActionItem.js b/src/pages/home/report/ReportActionItem.js index 89a983fea42a..3c71b8bc62f3 100644 --- a/src/pages/home/report/ReportActionItem.js +++ b/src/pages/home/report/ReportActionItem.js @@ -128,7 +128,6 @@ function ReportActionItem(props) { const textInputRef = useRef(); const popoverAnchorRef = useRef(); const downloadedPreviews = useRef([]); - const isPinnedChat = lodashGet(props, 'report.isPinned', false); useEffect( () => () => { @@ -219,11 +218,9 @@ function ReportActionItem(props) { toggleContextMenuFromActiveReportAction, ReportUtils.isArchivedRoom(props.report), ReportUtils.chatIncludesChronos(props.report), - isPinnedChat, - props.shouldDisplayNewMarker, ); }, - [props.draftMessage, props.action, props.report, toggleContextMenuFromActiveReportAction, props.shouldDisplayNewMarker, isPinnedChat], + [props.draftMessage, props.action, props.report, toggleContextMenuFromActiveReportAction], ); const toggleReaction = useCallback( @@ -532,8 +529,6 @@ function ReportActionItem(props) { isVisible={hovered && !props.draftMessage && !hasErrors} draftMessage={props.draftMessage} isChronosReport={ReportUtils.chatIncludesChronos(props.report)} - isPinnedChat={isPinnedChat} - isUnreadChat={props.shouldDisplayNewMarker} /> { + const endOfDay = moment().endOf('day').toDate(); + User.updateCustomStatus({text: defaultText, emojiCode: defaultEmoji, clearAfter: endOfDay.toISOString()}); + + User.clearDraftCustomStatus(); + Navigation.goBack(ROUTES.SETTINGS); + }, [defaultText, defaultEmoji]); + + const clearStatus = () => { + User.clearCustomStatus(); + User.clearDraftCustomStatus(); + }; + + const footerComponent = useMemo( + () => + hasDraftStatus ? ( +