react-native 0.75.0-rc.4 → 0.75.0-rc.5

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 (98) hide show
  1. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +1 -1
  2. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  3. package/Libraries/Core/ReactNativeVersion.js +1 -1
  4. package/Libraries/Image/RCTImageLoader.mm +2 -6
  5. package/Libraries/Image/React-RCTImage.podspec +1 -1
  6. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  7. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  8. package/Libraries/Network/RCTNetworkTask.mm +4 -3
  9. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  10. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  11. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  12. package/Libraries/Text/React-RCTText.podspec +1 -1
  13. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  14. package/Libraries/Utilities/Platform.android.js +1 -1
  15. package/Libraries/Utilities/Platform.d.ts +1 -1
  16. package/Libraries/Utilities/Platform.flow.js +2 -2
  17. package/Libraries/Utilities/Platform.ios.js +1 -1
  18. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  19. package/React/Base/RCTVersion.m +1 -1
  20. package/React/CoreModules/RCTPlatform.mm +1 -3
  21. package/React/CoreModules/React-CoreModules.podspec +1 -1
  22. package/React/React-RCTFabric.podspec +1 -1
  23. package/React/Views/RCTComponentData.m +11 -3
  24. package/React-Core.podspec +1 -1
  25. package/ReactAndroid/api/ReactAndroid.api +2 -0
  26. package/ReactAndroid/build.gradle.kts +28 -0
  27. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +5 -0
  28. package/ReactAndroid/gradle.properties +1 -1
  29. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +4 -1
  30. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Dynamic.kt +4 -4
  31. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +64 -0
  32. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableMap.kt +2 -2
  33. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.kt +24 -24
  34. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.kt +11 -0
  35. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  36. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +3 -1
  37. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -3
  38. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LengthPercentage.kt +2 -2
  39. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +10 -0
  40. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +1 -0
  41. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +3 -3
  42. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
  43. package/ReactCommon/React-Fabric.podspec +1 -1
  44. package/ReactCommon/React-FabricComponents.podspec +1 -1
  45. package/ReactCommon/React-FabricImage.podspec +1 -1
  46. package/ReactCommon/React-Mapbuffer.podspec +1 -1
  47. package/ReactCommon/React-nativeconfig.podspec +1 -1
  48. package/ReactCommon/React-rncore.podspec +1 -1
  49. package/ReactCommon/ReactCommon.podspec +1 -1
  50. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
  51. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  52. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  53. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
  54. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
  55. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  56. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  57. package/ReactCommon/react/debug/React-debug.podspec +1 -1
  58. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
  59. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  60. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -1
  61. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -1
  62. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -1
  63. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -1
  64. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -1
  65. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
  66. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -1
  67. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +4 -3
  68. package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
  69. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
  70. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
  71. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
  72. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
  73. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +1 -1
  74. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -4
  75. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +65 -0
  76. package/ReactCommon/react/renderer/runtimescheduler/tests/SchedulerPriorityTest.cpp +2 -2
  77. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
  78. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
  79. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +2 -1
  80. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +2 -2
  81. package/ReactCommon/react/utils/React-utils.podspec +1 -1
  82. package/ReactCommon/reactperflogger/React-perflogger.podspec +2 -1
  83. package/package.json +8 -8
  84. package/scripts/cocoapods/helpers.rb +4 -0
  85. package/scripts/cocoapods/new_architecture.rb +10 -23
  86. package/scripts/cocoapods/privacy_manifest_utils.rb +14 -5
  87. package/scripts/cocoapods/spm.rb +94 -0
  88. package/scripts/react_native_pods.rb +18 -0
  89. package/sdks/hermesc/osx-bin/hermes +0 -0
  90. package/sdks/hermesc/osx-bin/hermesc +0 -0
  91. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  92. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +1 -1
  93. package/src/private/specs/modules/NativePlatformConstantsIOS.js +1 -1
  94. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  95. package/third-party-podspecs/fmt.podspec +1 -1
  96. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.kt +0 -55
  97. package/ReactCommon/react/runtime/BridgelessJSCallInvoker.cpp +0 -29
  98. package/ReactCommon/react/runtime/BridgelessJSCallInvoker.h +0 -30
@@ -61,7 +61,7 @@ Pod::Spec.new do |s|
61
61
  s.pod_target_xcconfig = {
62
62
  "HEADER_SEARCH_PATHS" => header_search_paths,
63
63
  "OTHER_CPLUSPLUSFLAGS" => other_cflags,
64
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
64
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
65
65
  "DEFINES_MODULE" => "YES"
66
66
  }
67
67
  s.user_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/Headers/Private/React-Core\""}
@@ -43,7 +43,7 @@ Pod::Spec.new do |s|
43
43
  s.header_dir = "RCTBlob"
44
44
  s.pod_target_xcconfig = {
45
45
  "USE_HEADERMAP" => "YES",
46
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
46
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
47
47
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
48
48
  }
49
49
 
@@ -17,7 +17,7 @@ const version: $ReadOnly<{
17
17
  major: 0,
18
18
  minor: 75,
19
19
  patch: 0,
20
- prerelease: 'rc.4',
20
+ prerelease: 'rc.5',
21
21
  };
22
22
 
23
23
  module.exports = {version};
@@ -32,11 +32,7 @@ static NSInteger RCTImageBytesForImage(UIImage *image)
32
32
  return image.images ? image.images.count * singleImageBytes : singleImageBytes;
33
33
  }
34
34
 
35
- static uint64_t getNextImageRequestCount(void)
36
- {
37
- static uint64_t requestCounter = 0;
38
- return requestCounter++;
39
- }
35
+ static auto currentRequestCount = std::atomic<uint64_t>(0);
40
36
 
41
37
  static NSError *addResponseHeadersToError(NSError *originalError, NSHTTPURLResponse *response)
42
38
  {
@@ -510,7 +506,7 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image, CGSize size, CGFloat scal
510
506
  auto cancelled = std::make_shared<std::atomic<int>>(0);
511
507
  __block dispatch_block_t cancelLoad = nil;
512
508
  __block NSLock *cancelLoadLock = [NSLock new];
513
- NSString *requestId = [NSString stringWithFormat:@"%@-%llu", [[NSUUID UUID] UUIDString], getNextImageRequestCount()];
509
+ NSString *requestId = [NSString stringWithFormat:@"%@-%llu", [[NSUUID UUID] UUIDString], currentRequestCount++];
514
510
 
515
511
  void (^completionHandler)(NSError *, id, id, NSURLResponse *) =
516
512
  ^(NSError *error, id imageOrData, id imageMetadata, NSURLResponse *response) {
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
42
42
  s.header_dir = "RCTImage"
43
43
  s.pod_target_xcconfig = {
44
44
  "USE_HEADERMAP" => "YES",
45
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
45
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
46
46
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
47
47
  }
48
48
  s.framework = ["Accelerate", "UIKit"]
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
41
41
  s.header_dir = "RCTLinking"
42
42
  s.pod_target_xcconfig = {
43
43
  "USE_HEADERMAP" => "YES",
44
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
44
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
45
45
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
46
46
  }
47
47
 
@@ -40,7 +40,7 @@ Pod::Spec.new do |s|
40
40
  s.header_dir = "RCTAnimation"
41
41
  s.pod_target_xcconfig = {
42
42
  "USE_HEADERMAP" => "YES",
43
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
43
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
44
44
  "HEADER_SEARCH_PATHS" => header_search_paths.join(" ")
45
45
  }
46
46
 
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
+ #import <atomic>
8
9
  #import <mutex>
9
10
 
10
11
  #import <React/RCTLog.h>
@@ -20,6 +21,8 @@
20
21
  RCTNetworkTask *_selfReference;
21
22
  }
22
23
 
24
+ static auto currentRequestId = std::atomic<NSUInteger>(0);
25
+
23
26
  - (instancetype)initWithRequest:(NSURLRequest *)request
24
27
  handler:(id<RCTURLRequestHandler>)handler
25
28
  callbackQueue:(dispatch_queue_t)callbackQueue
@@ -28,10 +31,8 @@
28
31
  RCTAssertParam(handler);
29
32
  RCTAssertParam(callbackQueue);
30
33
 
31
- static NSUInteger requestID = 0;
32
-
33
34
  if ((self = [super init])) {
34
- _requestID = @(requestID++);
35
+ _requestID = @(currentRequestId++);
35
36
  _request = request;
36
37
  _handler = handler;
37
38
  _callbackQueue = callbackQueue;
@@ -40,7 +40,7 @@ Pod::Spec.new do |s|
40
40
  s.header_dir = "RCTNetwork"
41
41
  s.pod_target_xcconfig = {
42
42
  "USE_HEADERMAP" => "YES",
43
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
43
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
44
44
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
45
45
  }
46
46
  s.frameworks = "MobileCoreServices"
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
41
41
  s.header_dir = "RCTPushNotification"
42
42
  s.pod_target_xcconfig = {
43
43
  "USE_HEADERMAP" => "YES",
44
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
44
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
45
45
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
46
46
  }
47
47
  s.framework = "UserNotifications"
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
41
41
  s.header_dir = "RCTSettings"
42
42
  s.pod_target_xcconfig = {
43
43
  "USE_HEADERMAP" => "YES",
44
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
44
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
45
45
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
46
46
  }
47
47
 
@@ -30,7 +30,7 @@ Pod::Spec.new do |s|
30
30
  s.preserve_paths = "package.json", "LICENSE", "LICENSE-docs"
31
31
  s.header_dir = "RCTText"
32
32
  s.framework = ["MobileCoreServices"]
33
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" }
33
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
34
34
 
35
35
  s.dependency "Yoga"
36
36
  s.dependency "React-Core/RCTTextHeaders", version
@@ -29,7 +29,7 @@ Pod::Spec.new do |s|
29
29
  s.header_dir = "RCTTypeSafety"
30
30
  s.pod_target_xcconfig = {
31
31
  "USE_HEADERMAP" => "YES",
32
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
32
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
33
33
  "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/Libraries/TypeSafety\""
34
34
  }
35
35
 
@@ -31,7 +31,7 @@ const Platform: PlatformType = {
31
31
  major: number,
32
32
  minor: number,
33
33
  patch: number,
34
- prerelease: ?number,
34
+ prerelease: ?string,
35
35
  |},
36
36
  Version: number,
37
37
  Release: string,
@@ -24,7 +24,7 @@ type PlatformConstants = {
24
24
  major: number;
25
25
  minor: number;
26
26
  patch: number;
27
- prerelease?: number | null | undefined;
27
+ prerelease?: string | null | undefined;
28
28
  };
29
29
  };
30
30
  interface PlatformStatic {
@@ -32,7 +32,7 @@ type IOSPlatform = {
32
32
  major: number,
33
33
  minor: number,
34
34
  patch: number,
35
- prerelease: ?number,
35
+ prerelease: ?string,
36
36
  |},
37
37
  systemName: string,
38
38
  isMacCatalyst?: boolean,
@@ -65,7 +65,7 @@ type AndroidPlatform = {
65
65
  major: number,
66
66
  minor: number,
67
67
  patch: number,
68
- prerelease: ?number,
68
+ prerelease: ?string,
69
69
  |},
70
70
  Version: number,
71
71
  Release: string,
@@ -34,7 +34,7 @@ const Platform: PlatformType = {
34
34
  major: number,
35
35
  minor: number,
36
36
  patch: number,
37
- prerelease: ?number,
37
+ prerelease: ?string,
38
38
  |},
39
39
  systemName: string,
40
40
  isMacCatalyst?: boolean,
@@ -41,7 +41,7 @@ Pod::Spec.new do |s|
41
41
  s.header_dir = "RCTVibration"
42
42
  s.pod_target_xcconfig = {
43
43
  "USE_HEADERMAP" => "YES",
44
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
44
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
45
45
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
46
46
  }
47
47
  s.frameworks = "AudioToolbox"
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(75),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"rc.4",
27
+ RCTVersionPrerelease: @"rc.5",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -78,9 +78,7 @@ RCT_EXPORT_MODULE(PlatformConstants)
78
78
  {.minor = [versions[@"minor"] doubleValue],
79
79
  .major = [versions[@"major"] doubleValue],
80
80
  .patch = [versions[@"patch"] doubleValue],
81
- .prerelease = [versions[@"prerelease"] isKindOfClass:[NSNull class]]
82
- ? std::optional<double>{}
83
- : [versions[@"prerelease"] doubleValue]}),
81
+ .prerelease = [versions[@"prerelease"] isKindOfClass:[NSNull class]] ? nullptr : versions[@"prerelease"]}),
84
82
  #if TARGET_OS_MACCATALYST
85
83
  .isMacCatalyst = true,
86
84
  #else
@@ -44,7 +44,7 @@ Pod::Spec.new do |s|
44
44
  s.header_dir = "CoreModules"
45
45
  s.pod_target_xcconfig = {
46
46
  "USE_HEADERMAP" => "YES",
47
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
47
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
48
48
  "HEADER_SEARCH_PATHS" => header_search_paths.join(" ")
49
49
  }
50
50
  s.framework = "UIKit"
@@ -60,7 +60,7 @@ Pod::Spec.new do |s|
60
60
  s.pod_target_xcconfig = {
61
61
  "HEADER_SEARCH_PATHS" => header_search_paths,
62
62
  "OTHER_CFLAGS" => "$(inherited) " + folly_compiler_flags + new_arch_flags,
63
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
63
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
64
64
  }.merge!(ENV['USE_FRAMEWORKS'] != nil ? {
65
65
  "PUBLIC_HEADERS_FOLDER_PATH" => "#{module_name}.framework/Headers/#{header_dir}"
66
66
  }: {})
@@ -61,12 +61,20 @@ static SEL selectorForType(NSString *type)
61
61
  return self;
62
62
  }
63
63
 
64
+ - (BOOL)isBridgeMode
65
+ {
66
+ // If we are in bridge mode, the bridge is RCTBridge
67
+ // If we are bridgeless, the bridge is RCTBridgeProxy
68
+ return [_bridge isKindOfClass:[RCTBridge class]];
69
+ }
70
+
64
71
  - (RCTViewManager *)manager
65
72
  {
66
- if (!_manager && _bridge) {
73
+ if (!_manager && [self isBridgeMode]) {
67
74
  _manager = [_bridge moduleForClass:_managerClass];
68
75
  } else if (!_manager && !_bridgelessViewManager) {
69
76
  _bridgelessViewManager = [_managerClass new];
77
+ _bridgelessViewManager.bridge = _bridge;
70
78
  [[NSNotificationCenter defaultCenter] postNotificationName:RCTDidInitializeModuleNotification
71
79
  object:nil
72
80
  userInfo:@{@"module" : _bridgelessViewManager}];
@@ -265,8 +273,8 @@ static RCTPropBlock createNSInvocationSetter(NSMethodSignature *typeSignature, S
265
273
  type == NSSelectorFromString(@"RCTDirectEventBlock:") ||
266
274
  type == NSSelectorFromString(@"RCTCapturingEventBlock:")) {
267
275
  // Special case for event handlers
268
- setterBlock =
269
- createEventSetter(name, setter, self.eventInterceptor, _bridge ? _bridge.eventDispatcher : _eventDispatcher);
276
+ setterBlock = createEventSetter(
277
+ name, setter, self.eventInterceptor, [self isBridgeMode] ? _bridge.eventDispatcher : _eventDispatcher);
270
278
  } else {
271
279
  // Ordinary property handlers
272
280
  NSMethodSignature *typeSignature = [[RCTConvert class] methodSignatureForSelector:type];
@@ -72,7 +72,7 @@ Pod::Spec.new do |s|
72
72
  "HEADER_SEARCH_PATHS" => header_search_paths,
73
73
  "DEFINES_MODULE" => "YES",
74
74
  "GCC_PREPROCESSOR_DEFINITIONS" => "RCT_METRO_PORT=${RCT_METRO_PORT}",
75
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
75
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
76
76
  "FRAMEWORK_SEARCH_PATHS" => frameworks_search_paths.join(" ")
77
77
  }
78
78
  s.user_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/Headers/Private/React-Core\""}
@@ -3397,6 +3397,7 @@ public final class com/facebook/react/modules/i18nmanager/I18nUtil {
3397
3397
  }
3398
3398
 
3399
3399
  public final class com/facebook/react/modules/i18nmanager/I18nUtil$Companion {
3400
+ public final fun DEPRECATED$getInstance ()Lcom/facebook/react/modules/i18nmanager/I18nUtil;
3400
3401
  public final fun getInstance ()Lcom/facebook/react/modules/i18nmanager/I18nUtil;
3401
3402
  }
3402
3403
 
@@ -6487,6 +6488,7 @@ public final class com/facebook/react/views/imagehelper/ResourceDrawableIdHelper
6487
6488
  }
6488
6489
 
6489
6490
  public final class com/facebook/react/views/imagehelper/ResourceDrawableIdHelper$Companion {
6491
+ public final fun DEPRECATED$getInstance ()Lcom/facebook/react/views/imagehelper/ResourceDrawableIdHelper;
6490
6492
  public final fun getInstance ()Lcom/facebook/react/views/imagehelper/ResourceDrawableIdHelper;
6491
6493
  }
6492
6494
 
@@ -110,6 +110,22 @@ val preparePrefab by
110
110
  Pair("../ReactCommon/react/renderer/graphics/", "react/renderer/graphics/"),
111
111
  Pair("../ReactCommon/react/renderer/graphics/platform/android/", ""),
112
112
  )),
113
+ PrefabPreprocessingEntry(
114
+ "react_render_consistency",
115
+ Pair(
116
+ "../ReactCommon/react/renderer/consistency/", "react/renderer/consistency/")),
117
+ PrefabPreprocessingEntry(
118
+ "react_featureflags",
119
+ Pair("../ReactCommon/react/featureflags/", "react/featureflags/")),
120
+ PrefabPreprocessingEntry(
121
+ "react_performance_timeline",
122
+ Pair(
123
+ "../ReactCommon/react/performance/timeline/", "react/performance/timeline/")),
124
+ PrefabPreprocessingEntry(
125
+ "react_render_observers_events",
126
+ Pair(
127
+ "../ReactCommon/react/renderer/observers/events/",
128
+ "react/renderer/observers/events/")),
113
129
  PrefabPreprocessingEntry(
114
130
  "rrc_root",
115
131
  Pair(
@@ -694,6 +710,18 @@ android {
694
710
  create("react_render_graphics") {
695
711
  headers = File(prefabHeadersDir, "react_render_graphics").absolutePath
696
712
  }
713
+ create("react_render_consistency") {
714
+ headers = File(prefabHeadersDir, "react_render_consistency").absolutePath
715
+ }
716
+ create("react_featureflags") {
717
+ headers = File(prefabHeadersDir, "react_featureflags").absolutePath
718
+ }
719
+ create("react_performance_timeline") {
720
+ headers = File(prefabHeadersDir, "react_performance_timeline").absolutePath
721
+ }
722
+ create("react_render_observers_events") {
723
+ headers = File(prefabHeadersDir, "react_render_observers_events").absolutePath
724
+ }
697
725
  create("rrc_image") { headers = File(prefabHeadersDir, "rrc_image").absolutePath }
698
726
  create("rrc_root") { headers = File(prefabHeadersDir, "rrc_root").absolutePath }
699
727
  create("rrc_view") { headers = File(prefabHeadersDir, "rrc_view").absolutePath }
@@ -87,6 +87,11 @@ add_library(react_nativemodule_core ALIAS ReactAndroid::react_nativemodule_core)
87
87
  add_library(react_render_imagemanager ALIAS ReactAndroid::react_render_imagemanager)
88
88
  add_library(rrc_image ALIAS ReactAndroid::rrc_image)
89
89
  add_library(rrc_legacyviewmanagerinterop ALIAS ReactAndroid::rrc_legacyviewmanagerinterop)
90
+ add_library(reactnativejni ALIAS ReactAndroid::reactnativejni)
91
+ add_library(react_render_consistency ALIAS ReactAndroid::react_render_consistency)
92
+ add_library(react_performance_timeline ALIAS ReactAndroid::react_performance_timeline)
93
+ add_library(react_render_observers_events ALIAS ReactAndroid::react_render_observers_events)
94
+ add_library(react_featureflags ALIAS ReactAndroid::react_featureflags)
90
95
 
91
96
  find_package(fbjni REQUIRED CONFIG)
92
97
  add_library(fbjni ALIAS fbjni::fbjni)
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.75.0-rc.4
1
+ VERSION_NAME=0.75.0-rc.5
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -106,7 +106,10 @@ public interface CatalystInstance : MemoryPressureListener, JSInstance, JSBundle
106
106
  * Returns a hybrid object that contains a pointer to a JS CallInvoker, which is used to schedule
107
107
  * work on the JS Thread. Required for TurboModuleManager initialization.
108
108
  */
109
- @get:Deprecated("") public val jSCallInvokerHolder: CallInvokerHolder
109
+ @get:Deprecated("Use ReactContext.getJSCallInvokerHolder instead")
110
+ @Suppress("INAPPLICABLE_JVM_NAME")
111
+ @get:JvmName("getJSCallInvokerHolder") // This is needed to keep backward compatibility
112
+ public val jsCallInvokerHolder: CallInvokerHolder
110
113
 
111
114
  /**
112
115
  * Returns a hybrid object that contains a pointer to a NativeMethodCallInvoker, which is used to
@@ -12,6 +12,10 @@ package com.facebook.react.bridge
12
12
  * pass one of multiple types down to the native layer.
13
13
  */
14
14
  public interface Dynamic {
15
+ public val type: ReadableType
16
+
17
+ public val isNull: Boolean
18
+
15
19
  public fun asArray(): ReadableArray
16
20
 
17
21
  public fun asBoolean(): Boolean
@@ -24,9 +28,5 @@ public interface Dynamic {
24
28
 
25
29
  public fun asString(): String
26
30
 
27
- public fun getType(): ReadableType
28
-
29
- public fun isNull(): Boolean
30
-
31
31
  public fun recycle(): Unit
32
32
  }
@@ -0,0 +1,64 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.bridge;
9
+
10
+ import com.facebook.proguard.annotations.DoNotStrip;
11
+ import com.facebook.react.common.annotations.DeprecatedInNewArchitecture;
12
+ import com.facebook.react.common.annotations.StableReactNativeAPI;
13
+ import javax.annotation.Nonnull;
14
+
15
+ /*
16
+ * IMPORTANT: Do not migrate this interface to Kotlin as you'll create a breaking change for React Native
17
+ * libraries written in Kotlin.
18
+ */
19
+
20
+ /**
21
+ * A native module whose API can be provided to JS catalyst instances. {@link NativeModule}s whose
22
+ * implementation is written in Java should extend {@link BaseJavaModule} or {@link
23
+ * ReactContextBaseJavaModule}. {@link NativeModule}s whose implementation is written in C++ must
24
+ * not provide any Java code (so they can be reused on other platforms), and instead should register
25
+ * themselves using {@link CxxModuleWrapper}.
26
+ */
27
+ @StableReactNativeAPI
28
+ @DoNotStrip
29
+ public interface NativeModule {
30
+
31
+ /**
32
+ * @return the name of this module. This will be the name used to {@code require()} this module
33
+ * from javascript.
34
+ */
35
+ // IMPORTANT: Do not migrate this interface to Kotlin as you'll create a breaking change
36
+ // for React Native libraries written in Kotlin
37
+ @Nonnull
38
+ String getName();
39
+
40
+ /** This method is called after {@link ReactApplicationContext} has been created. */
41
+ void initialize();
42
+
43
+ /** Allow NativeModule to clean up. Called before React Native instance is destroyed. */
44
+ void invalidate();
45
+
46
+ /**
47
+ * Return true if you intend to override some other native module that was registered e.g. as part
48
+ * of a different package (such as the core one). Trying to override without returning true from
49
+ * this method is considered an error and will throw an exception during initialization. By
50
+ * default all modules return false.
51
+ */
52
+ @DeprecatedInNewArchitecture()
53
+ default boolean canOverrideExistingModule() {
54
+ return false;
55
+ }
56
+
57
+ /**
58
+ * Allow NativeModule to clean up. Called before {CatalystInstance#onHostDestroy}
59
+ *
60
+ * @deprecated use {@link #invalidate()} instead.
61
+ */
62
+ @Deprecated(since = "Use invalidate method instead", forRemoval = true)
63
+ default void onCatalystInstanceDestroy() {}
64
+ }
@@ -16,6 +16,8 @@ import kotlin.collections.Map
16
16
  * Kotlin.
17
17
  */
18
18
  public interface ReadableMap {
19
+ public val entryIterator: Iterator<Map.Entry<String, Any>>
20
+
19
21
  public fun getArray(name: String): ReadableArray?
20
22
 
21
23
  public fun getBoolean(name: String): Boolean
@@ -24,8 +26,6 @@ public interface ReadableMap {
24
26
 
25
27
  public fun getDynamic(name: String): Dynamic
26
28
 
27
- public fun getEntryIterator(): Iterator<Map.Entry<String, Any>>
28
-
29
29
  public fun getInt(name: String): Int
30
30
 
31
31
  public fun getLong(name: String): Long
@@ -110,36 +110,36 @@ public open class ReadableNativeMap protected constructor(hybridData: HybridData
110
110
 
111
111
  override fun getDynamic(name: String): Dynamic = DynamicFromMap.create(this, name)
112
112
 
113
- override fun getEntryIterator(): Iterator<Map.Entry<String, Any>> {
114
- synchronized(this) {
115
- val iteratorKeys = keys
116
- val iteratorValues = importValues()
117
- jniPassCounter++
118
- return object : Iterator<Map.Entry<String, Any>> {
119
- var currentIndex = 0
120
-
121
- override fun hasNext(): Boolean {
122
- return currentIndex < iteratorKeys.size
123
- }
113
+ override val entryIterator: Iterator<Map.Entry<String, Any>>
114
+ get() =
115
+ synchronized(this) {
116
+ val iteratorKeys = keys
117
+ val iteratorValues = importValues()
118
+ jniPassCounter++
119
+ return object : Iterator<Map.Entry<String, Any>> {
120
+ var currentIndex = 0
121
+
122
+ override fun hasNext(): Boolean {
123
+ return currentIndex < iteratorKeys.size
124
+ }
124
125
 
125
- override fun next(): Map.Entry<String, Any> {
126
- val index = currentIndex++
127
- return object : MutableMap.MutableEntry<String, Any> {
128
- override val key: String
129
- get() = iteratorKeys[index]
126
+ override fun next(): Map.Entry<String, Any> {
127
+ val index = currentIndex++
128
+ return object : MutableMap.MutableEntry<String, Any> {
129
+ override val key: String
130
+ get() = iteratorKeys[index]
130
131
 
131
- override val value: Any
132
- get() = iteratorValues[index]
132
+ override val value: Any
133
+ get() = iteratorValues[index]
133
134
 
134
- override fun setValue(newValue: Any): Any {
135
- throw UnsupportedOperationException(
136
- "Can't set a value while iterating over a ReadableNativeMap")
135
+ override fun setValue(newValue: Any): Any {
136
+ throw UnsupportedOperationException(
137
+ "Can't set a value while iterating over a ReadableNativeMap")
138
+ }
139
+ }
137
140
  }
138
141
  }
139
142
  }
140
- }
141
- }
142
- }
143
143
 
144
144
  override fun keySetIterator(): ReadableMapKeySetIterator {
145
145
  val iteratorKeys = keys
@@ -86,5 +86,16 @@ public class I18nUtil private constructor() {
86
86
  private const val KEY_FOR_PREFS_FORCERTL = "RCTI18nUtil_forceRTL"
87
87
  private const val KEY_FOR_PERFS_MAKE_RTL_FLIP_LEFT_AND_RIGHT_STYLES =
88
88
  "RCTI18nUtil_makeRTLFlipLeftAndRightStyles"
89
+
90
+ /**
91
+ * We're just re-adding this to reduce a breaking change for libraries in React Native 0.75.
92
+ *
93
+ * @deprecated Use instance instead
94
+ */
95
+ @Deprecated(
96
+ "Use .instance instead, this API is only for backward compat", ReplaceWith("instance"))
97
+ @JvmName(
98
+ "DEPRECATED\$getInstance") // We intentionally don't want to expose this accessor to Java.
99
+ public fun getInstance(): I18nUtil = instance
89
100
  }
90
101
  }
@@ -18,5 +18,5 @@ public class ReactNativeVersion {
18
18
  "major", 0,
19
19
  "minor", 75,
20
20
  "patch", 0,
21
- "prerelease", "rc.4");
21
+ "prerelease", "rc.5");
22
22
  }
@@ -90,7 +90,9 @@ public class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) :
90
90
  override public val javaScriptContextHolder: JavaScriptContextHolder
91
91
  get() = reactHost.getJavaScriptContextHolder()!!
92
92
 
93
- override public val jSCallInvokerHolder: CallInvokerHolder
93
+ @Suppress("INAPPLICABLE_JVM_NAME")
94
+ @get:JvmName("getJSCallInvokerHolder") // This is needed to keep backward compatibility
95
+ override public val jsCallInvokerHolder: CallInvokerHolder
94
96
  get() = reactHost.getJSCallInvokerHolder()!!
95
97
 
96
98
  override public val nativeMethodCallInvokerHolder: NativeMethodCallInvokerHolder
@@ -24,7 +24,7 @@ internal object FilterHelper {
24
24
  filters ?: return null
25
25
  var chainedEffects: RenderEffect? = null
26
26
  for (i in 0 until filters.size()) {
27
- val filter = filters.getMap(i).getEntryIterator().next()
27
+ val filter = filters.getMap(i).entryIterator.next()
28
28
  val filterName = filter.key
29
29
  val amount = (filter.value as Double).toFloat()
30
30
 
@@ -51,7 +51,7 @@ internal object FilterHelper {
51
51
  // New ColorMatrix objects represent the identity matrix
52
52
  val resultColorMatrix = ColorMatrix()
53
53
  for (i in 0 until filters.size()) {
54
- val filter = filters.getMap(i).getEntryIterator().next()
54
+ val filter = filters.getMap(i).entryIterator.next()
55
55
  val filterName = filter.key
56
56
  val amount = (filter.value as Double).toFloat()
57
57
 
@@ -78,7 +78,7 @@ internal object FilterHelper {
78
78
  public fun isOnlyColorMatrixFilters(filters: ReadableArray?): Boolean {
79
79
  filters ?: return false
80
80
  for (i in 0 until filters.size()) {
81
- val filter = filters.getMap(i).getEntryIterator().next()
81
+ val filter = filters.getMap(i).entryIterator.next()
82
82
  val filterName = filter.key
83
83
  if (filterName == "blur") {
84
84
  return false