react-native 0.83.0-rc.0 → 0.84.0-nightly-20251105-5ec5cc3a3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
  2. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +12 -0
  3. package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
  4. package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
  5. package/Libraries/Core/ReactNativeVersion.js +2 -2
  6. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +2 -2
  7. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -0
  8. package/React/Base/RCTBundleManager.h +59 -7
  9. package/React/Base/RCTBundleManager.m +98 -0
  10. package/React/Base/RCTBundleURLProvider.h +24 -0
  11. package/React/Base/RCTBundleURLProvider.mm +49 -4
  12. package/React/Base/RCTVersion.m +2 -2
  13. package/React/CoreModules/RCTPlatform.mm +3 -2
  14. package/React/CxxBridge/RCTCxxBridge.mm +1 -2
  15. package/React/CxxModule/RCTCxxUtils.mm +1 -11
  16. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +127 -135
  17. package/ReactAndroid/gradle.properties +1 -1
  18. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +7 -7
  19. package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
  20. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
  21. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
  22. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +22 -1
  23. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +4 -3
  24. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +2 -8
  25. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +1 -11
  26. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +1 -3
  27. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +1 -3
  28. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +1 -12
  29. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +1 -3
  30. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  31. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
  32. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
  33. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +5 -4
  34. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +23 -3
  35. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +7 -2
  36. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  37. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +1 -15
  38. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +1 -4
  39. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  40. package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
  41. package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
  42. package/ReactCommon/cxxreact/JSBigString.h +14 -5
  43. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
  44. package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
  45. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -3
  46. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +2 -2
  47. package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
  48. package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
  49. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +1 -7
  50. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +3 -55
  51. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +82 -0
  52. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +99 -0
  53. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +47 -1
  54. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +1 -5
  55. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +2 -7
  56. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +18 -36
  57. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +2 -4
  58. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +1 -5
  59. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +1 -10
  60. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +1 -2
  61. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +4 -27
  62. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +1 -6
  63. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +1 -3
  64. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
  65. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
  66. package/ReactCommon/react/runtime/ReactInstance.cpp +4 -4
  67. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
  68. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
  69. package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
  70. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
  71. package/package.json +9 -9
  72. package/sdks/hermes-engine/version.properties +1 -1
  73. package/src/private/components/virtualview/VirtualView.js +16 -9
  74. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  75. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  76. package/src/private/featureflags/ReactNativeFeatureFlags.js +2 -7
  77. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +1 -2
  78. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +48 -0
  79. package/types_generated/src/private/components/virtualview/VirtualView.d.ts +3 -1
  80. package/React/CxxModule/RCTCxxModule.h +0 -29
  81. package/React/CxxModule/RCTCxxModule.mm +0 -87
  82. package/sdks/.hermesversion +0 -1
@@ -65,7 +65,7 @@ private:
65
65
 
66
66
  template <typename P0, typename P1>
67
67
  struct NativeReactDevToolsRuntimeSettingsModulePartialReloadAndProfileConfig {
68
- P0 shouldReloadAndProfile;
68
+ P0 shouldReloadAndProfile{};
69
69
  P1 recordChangeDescriptions;
70
70
  bool operator==(const NativeReactDevToolsRuntimeSettingsModulePartialReloadAndProfileConfig &other) const {
71
71
  return shouldReloadAndProfile == other.shouldReloadAndProfile && recordChangeDescriptions == other.recordChangeDescriptions;
@@ -116,7 +116,7 @@ struct NativeReactDevToolsRuntimeSettingsModulePartialReloadAndProfileConfigBrid
116
116
 
117
117
  template <typename P0, typename P1>
118
118
  struct NativeReactDevToolsRuntimeSettingsModuleReloadAndProfileConfig {
119
- P0 shouldReloadAndProfile;
119
+ P0 shouldReloadAndProfile{};
120
120
  P1 recordChangeDescriptions;
121
121
  bool operator==(const NativeReactDevToolsRuntimeSettingsModuleReloadAndProfileConfig &other) const {
122
122
  return shouldReloadAndProfile == other.shouldReloadAndProfile && recordChangeDescriptions == other.recordChangeDescriptions;
@@ -289,7 +289,6 @@ protected:
289
289
  methodMap_["shouldPressibilityUseW3CPointerEventsForHover"] = MethodMetadata {.argCount = 0, .invoker = __shouldPressibilityUseW3CPointerEventsForHover};
290
290
  methodMap_["shouldTriggerResponderTransferOnScrollAndroid"] = MethodMetadata {.argCount = 0, .invoker = __shouldTriggerResponderTransferOnScrollAndroid};
291
291
  methodMap_["skipActivityIdentityAssertionOnHostPause"] = MethodMetadata {.argCount = 0, .invoker = __skipActivityIdentityAssertionOnHostPause};
292
- methodMap_["sweepActiveTouchOnChildNativeGesturesAndroid"] = MethodMetadata {.argCount = 0, .invoker = __sweepActiveTouchOnChildNativeGesturesAndroid};
293
292
  methodMap_["traceTurboModulePromiseRejectionsOnAndroid"] = MethodMetadata {.argCount = 0, .invoker = __traceTurboModulePromiseRejectionsOnAndroid};
294
293
  methodMap_["updateRuntimeShadowNodeReferencesOnCommit"] = MethodMetadata {.argCount = 0, .invoker = __updateRuntimeShadowNodeReferencesOnCommit};
295
294
  methodMap_["useAlwaysAvailableJSErrorHandling"] = MethodMetadata {.argCount = 0, .invoker = __useAlwaysAvailableJSErrorHandling};
@@ -772,13 +771,6 @@ private:
772
771
  return bridging::callFromJs<bool>(rt, &T::skipActivityIdentityAssertionOnHostPause, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
773
772
  }
774
773
 
775
- static jsi::Value __sweepActiveTouchOnChildNativeGesturesAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
776
- static_assert(
777
- bridging::getParameterCount(&T::sweepActiveTouchOnChildNativeGesturesAndroid) == 1,
778
- "Expected sweepActiveTouchOnChildNativeGesturesAndroid(...) to have 1 parameters");
779
- return bridging::callFromJs<bool>(rt, &T::sweepActiveTouchOnChildNativeGesturesAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
780
- }
781
-
782
774
  static jsi::Value __traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
783
775
  static_assert(
784
776
  bridging::getParameterCount(&T::traceTurboModulePromiseRejectionsOnAndroid) == 1,
@@ -1176,15 +1168,15 @@ private:
1176
1168
 
1177
1169
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9>
1178
1170
  struct NativeAlertManagerArgs {
1179
- P0 title;
1180
- P1 message;
1181
- P2 buttons;
1182
- P3 type;
1183
- P4 defaultValue;
1184
- P5 cancelButtonKey;
1185
- P6 destructiveButtonKey;
1186
- P7 preferredButtonKey;
1187
- P8 keyboardType;
1171
+ P0 title{};
1172
+ P1 message{};
1173
+ P2 buttons{};
1174
+ P3 type{};
1175
+ P4 defaultValue{};
1176
+ P5 cancelButtonKey{};
1177
+ P6 destructiveButtonKey{};
1178
+ P7 preferredButtonKey{};
1179
+ P8 keyboardType{};
1188
1180
  P9 userInterfaceStyle;
1189
1181
  bool operator==(const NativeAlertManagerArgs &other) const {
1190
1182
  return title == other.title && message == other.message && buttons == other.buttons && type == other.type && defaultValue == other.defaultValue && cancelButtonKey == other.cancelButtonKey && destructiveButtonKey == other.destructiveButtonKey && preferredButtonKey == other.preferredButtonKey && keyboardType == other.keyboardType && userInterfaceStyle == other.userInterfaceStyle;
@@ -1312,8 +1304,8 @@ private:
1312
1304
 
1313
1305
  template <typename P0, typename P1, typename P2>
1314
1306
  struct NativeAnimatedModuleEndResult {
1315
- P0 finished;
1316
- P1 value;
1307
+ P0 finished{};
1308
+ P1 value{};
1317
1309
  P2 offset;
1318
1310
  bool operator==(const NativeAnimatedModuleEndResult &other) const {
1319
1311
  return finished == other.finished && value == other.value && offset == other.offset;
@@ -1369,7 +1361,7 @@ struct NativeAnimatedModuleEndResultBridging {
1369
1361
 
1370
1362
  template <typename P0, typename P1>
1371
1363
  struct NativeAnimatedModuleEventMapping {
1372
- P0 nativeEventPath;
1364
+ P0 nativeEventPath{};
1373
1365
  P1 animatedValueTag;
1374
1366
  bool operator==(const NativeAnimatedModuleEventMapping &other) const {
1375
1367
  return nativeEventPath == other.nativeEventPath && animatedValueTag == other.animatedValueTag;
@@ -1657,8 +1649,8 @@ private:
1657
1649
 
1658
1650
  template <typename P0, typename P1, typename P2>
1659
1651
  struct NativeAnimatedTurboModuleEndResult {
1660
- P0 finished;
1661
- P1 value;
1652
+ P0 finished{};
1653
+ P1 value{};
1662
1654
  P2 offset;
1663
1655
  bool operator==(const NativeAnimatedTurboModuleEndResult &other) const {
1664
1656
  return finished == other.finished && value == other.value && offset == other.offset;
@@ -1714,7 +1706,7 @@ struct NativeAnimatedTurboModuleEndResultBridging {
1714
1706
 
1715
1707
  template <typename P0, typename P1>
1716
1708
  struct NativeAnimatedTurboModuleEventMapping {
1717
- P0 nativeEventPath;
1709
+ P0 nativeEventPath{};
1718
1710
  P1 animatedValueTag;
1719
1711
  bool operator==(const NativeAnimatedTurboModuleEventMapping &other) const {
1720
1712
  return nativeEventPath == other.nativeEventPath && animatedValueTag == other.animatedValueTag;
@@ -2178,7 +2170,7 @@ private:
2178
2170
 
2179
2171
  template <typename P0, typename P1>
2180
2172
  struct NativeBlobModuleConstants {
2181
- P0 BLOB_URI_SCHEME;
2173
+ P0 BLOB_URI_SCHEME{};
2182
2174
  P1 BLOB_URI_HOST;
2183
2175
  bool operator==(const NativeBlobModuleConstants &other) const {
2184
2176
  return BLOB_URI_SCHEME == other.BLOB_URI_SCHEME && BLOB_URI_HOST == other.BLOB_URI_HOST;
@@ -2356,8 +2348,8 @@ private:
2356
2348
 
2357
2349
  template <typename P0, typename P1, typename P2>
2358
2350
  struct NativeDeviceInfoDeviceInfoConstants {
2359
- P0 Dimensions;
2360
- P1 isEdgeToEdge;
2351
+ P0 Dimensions{};
2352
+ P1 isEdgeToEdge{};
2361
2353
  P2 isIPhoneX_deprecated;
2362
2354
  bool operator==(const NativeDeviceInfoDeviceInfoConstants &other) const {
2363
2355
  return Dimensions == other.Dimensions && isEdgeToEdge == other.isEdgeToEdge && isIPhoneX_deprecated == other.isIPhoneX_deprecated;
@@ -2413,9 +2405,9 @@ struct NativeDeviceInfoDeviceInfoConstantsBridging {
2413
2405
 
2414
2406
  template <typename P0, typename P1, typename P2, typename P3>
2415
2407
  struct NativeDeviceInfoDimensionsPayload {
2416
- P0 window;
2417
- P1 screen;
2418
- P2 windowPhysicalPixels;
2408
+ P0 window{};
2409
+ P1 screen{};
2410
+ P2 windowPhysicalPixels{};
2419
2411
  P3 screenPhysicalPixels;
2420
2412
  bool operator==(const NativeDeviceInfoDimensionsPayload &other) const {
2421
2413
  return window == other.window && screen == other.screen && windowPhysicalPixels == other.windowPhysicalPixels && screenPhysicalPixels == other.screenPhysicalPixels;
@@ -2480,9 +2472,9 @@ struct NativeDeviceInfoDimensionsPayloadBridging {
2480
2472
 
2481
2473
  template <typename P0, typename P1, typename P2, typename P3>
2482
2474
  struct NativeDeviceInfoDisplayMetrics {
2483
- P0 width;
2484
- P1 height;
2485
- P2 scale;
2475
+ P0 width{};
2476
+ P1 height{};
2477
+ P2 scale{};
2486
2478
  P3 fontScale;
2487
2479
  bool operator==(const NativeDeviceInfoDisplayMetrics &other) const {
2488
2480
  return width == other.width && height == other.height && scale == other.scale && fontScale == other.fontScale;
@@ -2539,10 +2531,10 @@ struct NativeDeviceInfoDisplayMetricsBridging {
2539
2531
 
2540
2532
  template <typename P0, typename P1, typename P2, typename P3, typename P4>
2541
2533
  struct NativeDeviceInfoDisplayMetricsAndroid {
2542
- P0 width;
2543
- P1 height;
2544
- P2 scale;
2545
- P3 fontScale;
2534
+ P0 width{};
2535
+ P1 height{};
2536
+ P2 scale{};
2537
+ P3 fontScale{};
2546
2538
  P4 densityDpi;
2547
2539
  bool operator==(const NativeDeviceInfoDisplayMetricsAndroid &other) const {
2548
2540
  return width == other.width && height == other.height && scale == other.scale && fontScale == other.fontScale && densityDpi == other.densityDpi;
@@ -2761,12 +2753,12 @@ private:
2761
2753
 
2762
2754
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
2763
2755
  struct NativeDialogManagerAndroidDialogOptions {
2764
- P0 title;
2765
- P1 message;
2766
- P2 buttonPositive;
2767
- P3 buttonNegative;
2768
- P4 buttonNeutral;
2769
- P5 items;
2756
+ P0 title{};
2757
+ P1 message{};
2758
+ P2 buttonPositive{};
2759
+ P3 buttonNegative{};
2760
+ P4 buttonNeutral{};
2761
+ P5 items{};
2770
2762
  P6 cancelable;
2771
2763
  bool operator==(const NativeDialogManagerAndroidDialogOptions &other) const {
2772
2764
  return title == other.title && message == other.message && buttonPositive == other.buttonPositive && buttonNegative == other.buttonNegative && buttonNeutral == other.buttonNeutral && items == other.items && cancelable == other.cancelable;
@@ -2882,13 +2874,13 @@ private:
2882
2874
 
2883
2875
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
2884
2876
  struct NativeExceptionsManagerExceptionData {
2885
- P0 message;
2886
- P1 originalMessage;
2887
- P2 name;
2888
- P3 componentStack;
2889
- P4 stack;
2890
- P5 id;
2891
- P6 isFatal;
2877
+ P0 message{};
2878
+ P1 originalMessage{};
2879
+ P2 name{};
2880
+ P3 componentStack{};
2881
+ P4 stack{};
2882
+ P5 id{};
2883
+ P6 isFatal{};
2892
2884
  P7 extraData;
2893
2885
  bool operator==(const NativeExceptionsManagerExceptionData &other) const {
2894
2886
  return message == other.message && originalMessage == other.originalMessage && name == other.name && componentStack == other.componentStack && stack == other.stack && id == other.id && isFatal == other.isFatal && extraData == other.extraData;
@@ -2967,10 +2959,10 @@ struct NativeExceptionsManagerExceptionDataBridging {
2967
2959
 
2968
2960
  template <typename P0, typename P1, typename P2, typename P3, typename P4>
2969
2961
  struct NativeExceptionsManagerStackFrame {
2970
- P0 column;
2971
- P1 file;
2972
- P2 lineNumber;
2973
- P3 methodName;
2962
+ P0 column{};
2963
+ P1 file{};
2964
+ P2 lineNumber{};
2965
+ P3 methodName{};
2974
2966
  P4 collapse;
2975
2967
  bool operator==(const NativeExceptionsManagerStackFrame &other) const {
2976
2968
  return column == other.column && file == other.file && lineNumber == other.lineNumber && methodName == other.methodName && collapse == other.collapse;
@@ -3191,8 +3183,8 @@ private:
3191
3183
 
3192
3184
  template <typename P0, typename P1, typename P2>
3193
3185
  struct NativeI18nManagerI18nManagerConstants {
3194
- P0 doLeftAndRightSwapInRTL;
3195
- P1 isRTL;
3186
+ P0 doLeftAndRightSwapInRTL{};
3187
+ P1 isRTL{};
3196
3188
  P2 localeIdentifier;
3197
3189
  bool operator==(const NativeI18nManagerI18nManagerConstants &other) const {
3198
3190
  return doLeftAndRightSwapInRTL == other.doLeftAndRightSwapInRTL && isRTL == other.isRTL && localeIdentifier == other.localeIdentifier;
@@ -3292,10 +3284,10 @@ private:
3292
3284
 
3293
3285
  template <typename P0, typename P1, typename P2, typename P3, typename P4>
3294
3286
  struct NativeImageEditorOptions {
3295
- P0 offset;
3296
- P1 size;
3297
- P2 displaySize;
3298
- P3 resizeMode;
3287
+ P0 offset{};
3288
+ P1 size{};
3289
+ P2 displaySize{};
3290
+ P3 resizeMode{};
3299
3291
  P4 allowExternalStorage;
3300
3292
  bool operator==(const NativeImageEditorOptions &other) const {
3301
3293
  return offset == other.offset && size == other.size && displaySize == other.displaySize && resizeMode == other.resizeMode && allowExternalStorage == other.allowExternalStorage;
@@ -3394,7 +3386,7 @@ private:
3394
3386
 
3395
3387
  template <typename P0, typename P1>
3396
3388
  struct NativeImageLoaderAndroidImageSize {
3397
- P0 width;
3389
+ P0 width{};
3398
3390
  P1 height;
3399
3391
  bool operator==(const NativeImageLoaderAndroidImageSize &other) const {
3400
3392
  return width == other.width && height == other.height;
@@ -4068,17 +4060,17 @@ private:
4068
4060
 
4069
4061
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11>
4070
4062
  struct NativePlatformConstantsAndroidPlatformConstantsAndroid {
4071
- P0 isTesting;
4072
- P1 isDisableAnimations;
4073
- P2 reactNativeVersion;
4074
- P3 Version;
4075
- P4 Release;
4076
- P5 Serial;
4077
- P6 Fingerprint;
4078
- P7 Model;
4079
- P8 ServerHost;
4080
- P9 uiMode;
4081
- P10 Brand;
4063
+ P0 isTesting{};
4064
+ P1 isDisableAnimations{};
4065
+ P2 reactNativeVersion{};
4066
+ P3 Version{};
4067
+ P4 Release{};
4068
+ P5 Serial{};
4069
+ P6 Fingerprint{};
4070
+ P7 Model{};
4071
+ P8 ServerHost{};
4072
+ P9 uiMode{};
4073
+ P10 Brand{};
4082
4074
  P11 Manufacturer;
4083
4075
  bool operator==(const NativePlatformConstantsAndroidPlatformConstantsAndroid &other) const {
4084
4076
  return isTesting == other.isTesting && isDisableAnimations == other.isDisableAnimations && reactNativeVersion == other.reactNativeVersion && Version == other.Version && Release == other.Release && Serial == other.Serial && Fingerprint == other.Fingerprint && Model == other.Model && ServerHost == other.ServerHost && uiMode == other.uiMode && Brand == other.Brand && Manufacturer == other.Manufacturer;
@@ -4179,9 +4171,9 @@ struct NativePlatformConstantsAndroidPlatformConstantsAndroidBridging {
4179
4171
 
4180
4172
  template <typename P0, typename P1, typename P2, typename P3>
4181
4173
  struct NativePlatformConstantsAndroidReactNativeVersionAndroid {
4182
- P0 major;
4183
- P1 minor;
4184
- P2 patch;
4174
+ P0 major{};
4175
+ P1 minor{};
4176
+ P2 patch{};
4185
4177
  P3 prerelease;
4186
4178
  bool operator==(const NativePlatformConstantsAndroidReactNativeVersionAndroid &other) const {
4187
4179
  return major == other.major && minor == other.minor && patch == other.patch && prerelease == other.prerelease;
@@ -4265,13 +4257,13 @@ private:
4265
4257
 
4266
4258
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
4267
4259
  struct NativePlatformConstantsIOSPlatformConstantsIOS {
4268
- P0 isTesting;
4269
- P1 isDisableAnimations;
4270
- P2 reactNativeVersion;
4271
- P3 forceTouchAvailable;
4272
- P4 osVersion;
4273
- P5 systemName;
4274
- P6 interfaceIdiom;
4260
+ P0 isTesting{};
4261
+ P1 isDisableAnimations{};
4262
+ P2 reactNativeVersion{};
4263
+ P3 forceTouchAvailable{};
4264
+ P4 osVersion{};
4265
+ P5 systemName{};
4266
+ P6 interfaceIdiom{};
4275
4267
  P7 isMacCatalyst;
4276
4268
  bool operator==(const NativePlatformConstantsIOSPlatformConstantsIOS &other) const {
4277
4269
  return isTesting == other.isTesting && isDisableAnimations == other.isDisableAnimations && reactNativeVersion == other.reactNativeVersion && forceTouchAvailable == other.forceTouchAvailable && osVersion == other.osVersion && systemName == other.systemName && interfaceIdiom == other.interfaceIdiom && isMacCatalyst == other.isMacCatalyst;
@@ -4371,14 +4363,14 @@ private:
4371
4363
 
4372
4364
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8>
4373
4365
  struct NativePushNotificationManagerIOSNotification {
4374
- P0 alertTitle;
4375
- P1 alertBody;
4376
- P2 userInfo;
4377
- P3 category;
4378
- P4 fireDate;
4379
- P5 fireIntervalSeconds;
4380
- P6 applicationIconBadgeNumber;
4381
- P7 isSilent;
4366
+ P0 alertTitle{};
4367
+ P1 alertBody{};
4368
+ P2 userInfo{};
4369
+ P3 category{};
4370
+ P4 fireDate{};
4371
+ P5 fireIntervalSeconds{};
4372
+ P6 applicationIconBadgeNumber{};
4373
+ P7 isSilent{};
4382
4374
  P8 soundName;
4383
4375
  bool operator==(const NativePushNotificationManagerIOSNotification &other) const {
4384
4376
  return alertTitle == other.alertTitle && alertBody == other.alertBody && userInfo == other.userInfo && category == other.category && fireDate == other.fireDate && fireIntervalSeconds == other.fireIntervalSeconds && applicationIconBadgeNumber == other.applicationIconBadgeNumber && isSilent == other.isSilent && soundName == other.soundName;
@@ -4478,8 +4470,8 @@ struct NativePushNotificationManagerIOSNotificationBridging {
4478
4470
 
4479
4471
  template <typename P0, typename P1, typename P2>
4480
4472
  struct NativePushNotificationManagerIOSPermissions {
4481
- P0 alert;
4482
- P1 badge;
4473
+ P0 alert{};
4474
+ P1 badge{};
4483
4475
  P2 sound;
4484
4476
  bool operator==(const NativePushNotificationManagerIOSPermissions &other) const {
4485
4477
  return alert == other.alert && badge == other.badge && sound == other.sound;
@@ -5350,9 +5342,9 @@ struct Bridging<NativeFantomNativeEventCategory> {
5350
5342
 
5351
5343
  template <typename P0, typename P1, typename P2, typename P3>
5352
5344
  struct NativeFantomImageResponse {
5353
- P0 width;
5354
- P1 height;
5355
- P2 cacheStatus;
5345
+ P0 width{};
5346
+ P1 height{};
5347
+ P2 cacheStatus{};
5356
5348
  P3 errorMessage;
5357
5349
  bool operator==(const NativeFantomImageResponse &other) const {
5358
5350
  return width == other.width && height == other.height && cacheStatus == other.cacheStatus && errorMessage == other.errorMessage;
@@ -5413,7 +5405,7 @@ struct NativeFantomImageResponseBridging {
5413
5405
 
5414
5406
  template <typename P0, typename P1>
5415
5407
  struct NativeFantomRenderFormatOptions {
5416
- P0 includeRoot;
5408
+ P0 includeRoot{};
5417
5409
  P1 includeLayoutMetrics;
5418
5410
  bool operator==(const NativeFantomRenderFormatOptions &other) const {
5419
5411
  return includeRoot == other.includeRoot && includeLayoutMetrics == other.includeLayoutMetrics;
@@ -5460,8 +5452,8 @@ struct NativeFantomRenderFormatOptionsBridging {
5460
5452
 
5461
5453
  template <typename P0, typename P1, typename P2>
5462
5454
  struct NativeFantomScrollOptions {
5463
- P0 x;
5464
- P1 y;
5455
+ P0 x{};
5456
+ P1 y{};
5465
5457
  P2 zoomScale;
5466
5458
  bool operator==(const NativeFantomScrollOptions &other) const {
5467
5459
  return x == other.x && y == other.y && zoomScale == other.zoomScale;
@@ -5984,7 +5976,7 @@ private:
5984
5976
 
5985
5977
  template <typename P0, typename P1>
5986
5978
  struct NativeIdleCallbacksIdleDeadline {
5987
- P0 didTimeout;
5979
+ P0 didTimeout{};
5988
5980
  P1 timeRemaining;
5989
5981
  bool operator==(const NativeIdleCallbacksIdleDeadline &other) const {
5990
5982
  return didTimeout == other.didTimeout && timeRemaining == other.timeRemaining;
@@ -6104,12 +6096,12 @@ private:
6104
6096
 
6105
6097
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
6106
6098
  struct NativeIntersectionObserverNativeIntersectionObserverEntry {
6107
- P0 intersectionObserverId;
6108
- P1 targetInstanceHandle;
6109
- P2 targetRect;
6110
- P3 rootRect;
6111
- P4 intersectionRect;
6112
- P5 isIntersectingAboveThresholds;
6099
+ P0 intersectionObserverId{};
6100
+ P1 targetInstanceHandle{};
6101
+ P2 targetRect{};
6102
+ P3 rootRect{};
6103
+ P4 intersectionRect{};
6104
+ P5 isIntersectingAboveThresholds{};
6113
6105
  P6 time;
6114
6106
  bool operator==(const NativeIntersectionObserverNativeIntersectionObserverEntry &other) const {
6115
6107
  return intersectionObserverId == other.intersectionObserverId && targetInstanceHandle == other.targetInstanceHandle && targetRect == other.targetRect && rootRect == other.rootRect && intersectionRect == other.intersectionRect && isIntersectingAboveThresholds == other.isIntersectingAboveThresholds && time == other.time;
@@ -6181,11 +6173,11 @@ struct NativeIntersectionObserverNativeIntersectionObserverEntryBridging {
6181
6173
 
6182
6174
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5>
6183
6175
  struct NativeIntersectionObserverNativeIntersectionObserverObserveOptions {
6184
- P0 intersectionObserverId;
6185
- P1 rootShadowNode;
6186
- P2 targetShadowNode;
6187
- P3 thresholds;
6188
- P4 rootThresholds;
6176
+ P0 intersectionObserverId{};
6177
+ P1 rootShadowNode{};
6178
+ P2 targetShadowNode{};
6179
+ P3 thresholds{};
6180
+ P4 rootThresholds{};
6189
6181
  P5 rootMargin;
6190
6182
  bool operator==(const NativeIntersectionObserverNativeIntersectionObserverObserveOptions &other) const {
6191
6183
  return intersectionObserverId == other.intersectionObserverId && rootShadowNode == other.rootShadowNode && targetShadowNode == other.targetShadowNode && thresholds == other.thresholds && rootThresholds == other.rootThresholds && rootMargin == other.rootMargin;
@@ -6334,8 +6326,8 @@ private:
6334
6326
 
6335
6327
  template <typename P0, typename P1, typename P2>
6336
6328
  struct NativeMutationObserverNativeMutationObserverObserveOptions {
6337
- P0 mutationObserverId;
6338
- P1 targetShadowNode;
6329
+ P0 mutationObserverId{};
6330
+ P1 targetShadowNode{};
6339
6331
  P2 subtree;
6340
6332
  bool operator==(const NativeMutationObserverNativeMutationObserverObserveOptions &other) const {
6341
6333
  return mutationObserverId == other.mutationObserverId && targetShadowNode == other.targetShadowNode && subtree == other.subtree;
@@ -6387,9 +6379,9 @@ struct NativeMutationObserverNativeMutationObserverObserveOptionsBridging {
6387
6379
 
6388
6380
  template <typename P0, typename P1, typename P2, typename P3>
6389
6381
  struct NativeMutationObserverNativeMutationRecord {
6390
- P0 mutationObserverId;
6391
- P1 target;
6392
- P2 addedNodes;
6382
+ P0 mutationObserverId{};
6383
+ P1 target{};
6384
+ P2 addedNodes{};
6393
6385
  P3 removedNodes;
6394
6386
  bool operator==(const NativeMutationObserverNativeMutationRecord &other) const {
6395
6387
  return mutationObserverId == other.mutationObserverId && target == other.target && addedNodes == other.addedNodes && removedNodes == other.removedNodes;
@@ -6502,9 +6494,9 @@ private:
6502
6494
 
6503
6495
  template <typename P0, typename P1, typename P2, typename P3>
6504
6496
  struct NativePerformancePerformanceObserverInit {
6505
- P0 entryTypes;
6506
- P1 type;
6507
- P2 buffered;
6497
+ P0 entryTypes{};
6498
+ P1 type{};
6499
+ P2 buffered{};
6508
6500
  P3 durationThreshold;
6509
6501
  bool operator==(const NativePerformancePerformanceObserverInit &other) const {
6510
6502
  return entryTypes == other.entryTypes && type == other.type && buffered == other.buffered && durationThreshold == other.durationThreshold;
@@ -6569,22 +6561,22 @@ struct NativePerformancePerformanceObserverInitBridging {
6569
6561
 
6570
6562
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8, typename P9, typename P10, typename P11, typename P12, typename P13, typename P14, typename P15, typename P16>
6571
6563
  struct NativePerformanceRawPerformanceEntry {
6572
- P0 name;
6573
- P1 entryType;
6574
- P2 startTime;
6575
- P3 duration;
6576
- P4 processingStart;
6577
- P5 processingEnd;
6578
- P6 interactionId;
6579
- P7 fetchStart;
6580
- P8 requestStart;
6581
- P9 connectStart;
6582
- P10 connectEnd;
6583
- P11 responseStart;
6584
- P12 responseEnd;
6585
- P13 responseStatus;
6586
- P14 contentType;
6587
- P15 encodedBodySize;
6564
+ P0 name{};
6565
+ P1 entryType{};
6566
+ P2 startTime{};
6567
+ P3 duration{};
6568
+ P4 processingStart{};
6569
+ P5 processingEnd{};
6570
+ P6 interactionId{};
6571
+ P7 fetchStart{};
6572
+ P8 requestStart{};
6573
+ P9 connectStart{};
6574
+ P10 connectEnd{};
6575
+ P11 responseStart{};
6576
+ P12 responseEnd{};
6577
+ P13 responseStatus{};
6578
+ P14 contentType{};
6579
+ P15 encodedBodySize{};
6588
6580
  P16 decodedBodySize;
6589
6581
  bool operator==(const NativePerformanceRawPerformanceEntry &other) const {
6590
6582
  return name == other.name && entryType == other.entryType && startTime == other.startTime && duration == other.duration && processingStart == other.processingStart && processingEnd == other.processingEnd && interactionId == other.interactionId && fetchStart == other.fetchStart && requestStart == other.requestStart && connectStart == other.connectStart && connectEnd == other.connectEnd && responseStart == other.responseStart && responseEnd == other.responseEnd && responseStatus == other.responseStatus && contentType == other.contentType && encodedBodySize == other.encodedBodySize && decodedBodySize == other.decodedBodySize;
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.83.0-rc.0
1
+ VERSION_NAME=0.84.0-nightly-20251105-5ec5cc3a3
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
  react.internal.hermesPublishingGroup=com.facebook.hermes
4
4
 
@@ -68,9 +68,9 @@ public open class ReactDelegate {
68
68
  launchOptions: Bundle?,
69
69
  ) {
70
70
  this.activity = activity
71
- mainComponentName = appKey
71
+ this.mainComponentName = appKey
72
72
  this.launchOptions = launchOptions
73
- doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
73
+ this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
74
74
  this.reactNativeHost = reactNativeHost
75
75
  }
76
76
 
@@ -81,9 +81,9 @@ public open class ReactDelegate {
81
81
  launchOptions: Bundle?,
82
82
  ) {
83
83
  this.activity = activity
84
- mainComponentName = appKey
84
+ this.mainComponentName = appKey
85
85
  this.launchOptions = launchOptions
86
- doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
86
+ this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
87
87
  this.reactHost = reactHost
88
88
  }
89
89
 
@@ -95,11 +95,11 @@ public open class ReactDelegate {
95
95
  launchOptions: Bundle?,
96
96
  fabricEnabled: Boolean,
97
97
  ) {
98
- isFabricEnabled = fabricEnabled
98
+ this.isFabricEnabled = fabricEnabled
99
99
  this.activity = activity
100
- mainComponentName = appKey
100
+ this.mainComponentName = appKey
101
101
  this.launchOptions = launchOptions
102
- doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
102
+ this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
103
103
  this.reactNativeHost = reactNativeHost
104
104
  }
105
105
 
@@ -10,16 +10,65 @@ package com.facebook.react
10
10
  import com.facebook.react.bridge.ReactApplicationContext
11
11
  import com.facebook.react.uimanager.ViewManager
12
12
 
13
+ /**
14
+ * Interface for React Native packages that provide ViewManagers on-demand rather than eagerly.
15
+ *
16
+ * This interface enables lazy initialization of ViewManagers, improving startup performance by
17
+ * deferring the creation of ViewManager instances until they are actually needed by the JavaScript
18
+ * code. Instead of instantiating all ViewManagers during package initialization, implementing
19
+ * classes can defer creation until a specific ViewManager is requested by name.
20
+ *
21
+ * This pattern is particularly beneficial for applications with many ViewManagers, as it reduces
22
+ * memory footprint and initialization time by only creating the ViewManagers that are actively
23
+ * used.
24
+ *
25
+ * Implementing classes should maintain a registry or factory mechanism to create ViewManagers based
26
+ * on their names when requested.
27
+ *
28
+ * @see com.facebook.react.uimanager.ViewManager
29
+ * @see com.facebook.react.ReactPackage
30
+ */
13
31
  public interface ViewManagerOnDemandReactPackage {
14
32
  /**
15
- * Provides a list of names of ViewManagers with which these modules can be accessed from JS.
16
- * Typically, this is ViewManager.getName().
33
+ * Provides the names of all ViewManagers available in this package.
34
+ *
35
+ * This method returns a collection of ViewManager names that can be accessed from JavaScript. The
36
+ * names returned should match the values returned by [ViewManager.getName] for each ViewManager
37
+ * that this package can create. The React Native framework uses these names to determine which
38
+ * ViewManagers are available and to request their creation on-demand.
39
+ *
40
+ * This method is called during the initialization phase to register available ViewManagers
41
+ * without actually instantiating them, enabling lazy loading.
42
+ *
43
+ * @param reactContext The React application context, which provides access to the Android
44
+ * application context and React Native lifecycle information
45
+ * @return A collection of ViewManager names. Returns an empty collection if no ViewManagers are
46
+ * available. The returned names should be unique within this package
17
47
  */
18
48
  public fun getViewManagerNames(reactContext: ReactApplicationContext): Collection<String>
19
49
 
20
50
  /**
21
- * Creates and returns a ViewManager with a specific name {@param viewManagerName}. It's up to an
22
- * implementing package how to interpret the name.
51
+ * Creates and returns a ViewManager instance for the specified name.
52
+ *
53
+ * This method is called lazily when a ViewManager is actually needed by the JavaScript code,
54
+ * rather than during package initialization. The implementation should create and configure the
55
+ * appropriate ViewManager based on the provided name. The name parameter corresponds to one of
56
+ * the names returned by [getViewManagerNames].
57
+ *
58
+ * Implementations have flexibility in how they interpret the name and create ViewManagers. For
59
+ * example, they might use a factory pattern, reflection, or a simple name-to-class mapping.
60
+ *
61
+ * This method may be called on any thread, so implementations should ensure thread safety if
62
+ * necessary.
63
+ *
64
+ * @param reactContext The React application context, which provides access to the Android
65
+ * application context and React Native lifecycle information needed to initialize the
66
+ * ViewManager
67
+ * @param viewManagerName The name of the ViewManager to create, matching one of the names
68
+ * returned by [getViewManagerNames]
69
+ * @return A ViewManager instance for the specified name, or null if the name is not recognized or
70
+ * the ViewManager cannot be created. Returning null will result in a JavaScript error when the
71
+ * native component is used
23
72
  */
24
73
  public fun createViewManager(
25
74
  reactContext: ReactApplicationContext,