From 96e75508b063df6a764e49fd9bbde1b6fa06eca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Wed, 24 Sep 2025 23:10:38 +0200 Subject: [PATCH 1/7] feat(Worklets): simpler Bundle Mode --- ...ct-native-npm-0.82.0-rc.0-4775a171a4.patch | 630 ++++++++-- ...ct-native-npm-0.82.0-rc.4-228ad0ffa7.patch | 1009 +++++++++++++++++ apps/common-app/package.json | 2 +- apps/fabric-example/android/gradle.properties | 2 +- apps/fabric-example/android/settings.gradle | 16 +- apps/fabric-example/babel.config.js | 2 +- apps/fabric-example/ios/Podfile | 2 +- apps/fabric-example/metro.config.js | 2 +- apps/fabric-example/package.json | 2 +- apps/macos-example/package.json | 2 +- apps/tvos-example/package.json | 2 +- apps/web-example/package.json | 2 +- packages/react-native-reanimated/package.json | 2 +- .../swmansion/worklets/WorkletsModule.java | 16 +- .../apple/worklets/apple/WorkletsModule.mm | 16 +- packages/react-native-worklets/package.json | 2 +- yarn.lock | 604 ++-------- 17 files changed, 1692 insertions(+), 621 deletions(-) create mode 100644 .yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch diff --git a/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch b/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch index 352f213372d9..f7991e2a295e 100644 --- a/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch +++ b/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch @@ -1,9 +1,93 @@ -diff --git a/React/Base/RCTBundleConsumer.h b/React/Base/RCTBundleConsumer.h +diff --git a/React/Base/RCTBridgeModule.h b/React/Base/RCTBridgeModule.h +index 1fb3e3e0e7e..be3e25f6a3a 100644 +--- a/React/Base/RCTBridgeModule.h ++++ b/React/Base/RCTBridgeModule.h +@@ -14,6 +14,7 @@ + #import + + #import "RCTBundleManager.h" ++#import "RCTBundleProvider.h" + + @class RCTBridge; + @protocol RCTBridgeMethod; +@@ -130,6 +131,16 @@ RCT_EXTERN_C_END + */ + @property (nonatomic, weak, readwrite) RCTBundleManager *bundleManager; + ++/** ++ * A reference to the RCTBundleProvider. Useful for modules that need to use ++ the app's JavaScript bundle and sourceURL. ++ * ++ * To implement this in your module, just add `@synthesize bundleProvider = ++ * _bundleProvider;`. If using Swift, add `@objc var bundleProvider: ++ * RCTBundleProvider!` to your module. ++ */ ++@property (nonatomic, weak, readwrite) RCTBundleProvider *bundleProvider; ++ + /** + * A reference to an RCTCallableJSModules. Useful for modules that need to + * call into methods on JavaScript modules registered as callable with +diff --git a/React/Base/RCTBridgeModuleDecorator.h b/React/Base/RCTBridgeModuleDecorator.h +index e7860967d1a..4724ba8e407 100644 +--- a/React/Base/RCTBridgeModuleDecorator.h ++++ b/React/Base/RCTBridgeModuleDecorator.h +@@ -23,11 +23,13 @@ + @property (nonatomic, strong, readonly) RCTViewRegistry *viewRegistry_DEPRECATED; + @property (nonatomic, strong, readonly) RCTModuleRegistry *moduleRegistry; + @property (nonatomic, strong, readonly) RCTBundleManager *bundleManager; ++@property (nonatomic, strong, readonly) RCTBundleProvider *bundleProvider; + @property (nonatomic, strong, readonly) RCTCallableJSModules *callableJSModules; + + - (instancetype)initWithViewRegistry:(RCTViewRegistry *)viewRegistry + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules; + + - (void)attachInteropAPIsToModule:(id)bridgeModule; +diff --git a/React/Base/RCTBridgeModuleDecorator.m b/React/Base/RCTBridgeModuleDecorator.m +index 7f8e15417bc..397df7e4178 100644 +--- a/React/Base/RCTBridgeModuleDecorator.m ++++ b/React/Base/RCTBridgeModuleDecorator.m +@@ -12,12 +12,14 @@ @implementation RCTBridgeModuleDecorator + - (instancetype)initWithViewRegistry:(RCTViewRegistry *)viewRegistry + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules + { + if (self = [super init]) { + _viewRegistry_DEPRECATED = viewRegistry; + _moduleRegistry = moduleRegistry; + _bundleManager = bundleManager; ++ _bundleProvider = bundleProvider; + _callableJSModules = callableJSModules; + } + return self; +@@ -47,6 +49,17 @@ - (void)attachInteropAPIsToModule:(id)bridgeModule + bridgeModule.bundleManager = _bundleManager; + } + ++ /** ++ * Attach the RCTBundleProvider to this TurboModule, which allows this TurboModule to ++ * read from the app's bundle and sourceURL. ++ * ++ * Usage: In the TurboModule @implementation, include: ++ * `@synthesize bundleProvider = _bundleProvider` ++ */ ++ if([bridgeModule respondsToSelector:@selector(setBundleProvider:)]) { ++ bridgeModule.bundleProvider = _bundleProvider; ++ } ++ + /** + * Attach the RCTCallableJSModules to this TurboModule, which allows this TurboModule + * to call JS Module methods. +diff --git a/React/Base/RCTBundleProvider.h b/React/Base/RCTBundleProvider.h new file mode 100644 -index 0000000000000000000000000000000000000000..8f1eb972424b038daba818a9bbbe51431aa447dd +index 00000000000..017bfdfbd07 --- /dev/null -+++ b/React/Base/RCTBundleConsumer.h -@@ -0,0 +1,20 @@ ++++ b/React/Base/RCTBundleProvider.h +@@ -0,0 +1,22 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -12,24 +96,126 @@ index 0000000000000000000000000000000000000000..8f1eb972424b038daba818a9bbbe5143 + */ + +#import -+#import ++ ++@class NSBigStringBuffer; + +/** -+ * Provides the interface needed to register a Bundle Consumer module. ++ * Provides the interface needed to register a Bundle Provider module. ++ */ ++@interface RCTBundleProvider : NSObject ++ ++- (NSBigStringBuffer *)getBundle; ++- (void)setBundle:(NSBigStringBuffer *)bundle; ++- (NSString *)getSourceURL; ++- (void)setSourceURL:(NSString *)sourceURL; ++ ++@end +diff --git a/React/Base/RCTBundleProvider.mm b/React/Base/RCTBundleProvider.mm +new file mode 100644 +index 00000000000..3d00e0d3d49 +--- /dev/null ++++ b/React/Base/RCTBundleProvider.mm +@@ -0,0 +1,30 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. + */ -+@protocol RCTBundleConsumer + -+@property (nonatomic, strong, readwrite) NSBigStringBuffer *scriptBuffer; ++#import "RCTBundleProvider.h" + -+@property (nonatomic, strong, readwrite) NSString *sourceURL; ++@implementation RCTBundleProvider{ ++ NSBigStringBuffer *_scriptBuffer; ++ NSString *_sourceURL; ++} ++ ++- (NSBigStringBuffer *)getBundle { ++ return _scriptBuffer; ++} + ++- (void)setBundle:(NSBigStringBuffer *)bundle { ++ _scriptBuffer = bundle; ++} ++ ++- (NSString *)getSourceURL { ++ return _sourceURL; ++} ++ ++- (void)setSourceURL:(NSString *)sourceURL { ++ _sourceURL = sourceURL; ++} +@end +diff --git a/React/Base/RCTModuleData.h b/React/Base/RCTModuleData.h +index 812991e4d26..e2008a5eff3 100644 +--- a/React/Base/RCTModuleData.h ++++ b/React/Base/RCTModuleData.h +@@ -18,6 +18,7 @@ + @class RCTBundleManager; + @class RCTCallableJSModules; + @class RCTCallInvoker; ++@class RCTBundleProvider; + + typedef id (^RCTBridgeModuleProvider)(void); + +@@ -34,6 +35,7 @@ typedef id (^RCTBridgeModuleProvider)(void); + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules NS_DESIGNATED_INITIALIZER + __deprecated_msg("This API will be removed along with the legacy architecture."); + +@@ -42,6 +44,7 @@ typedef id (^RCTBridgeModuleProvider)(void); + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules NS_DESIGNATED_INITIALIZER + __deprecated_msg("This API will be removed along with the legacy architecture."); + +diff --git a/React/Base/RCTModuleData.mm b/React/Base/RCTModuleData.mm +index 225f6b3c16e..68dd317537b 100644 +--- a/React/Base/RCTModuleData.mm ++++ b/React/Base/RCTModuleData.mm +@@ -46,6 +46,7 @@ @implementation RCTModuleData { + RCTModuleRegistry *_moduleRegistry; + RCTViewRegistry *_viewRegistry_DEPRECATED; + RCTBundleManager *_bundleManager; ++ RCTBundleProvider *_bundleProvider; + RCTCallableJSModules *_callableJSModules; + BOOL _isInitialized; + } +@@ -100,6 +101,7 @@ - (instancetype)initWithModuleClass:(Class)moduleClass + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules + { + if (self = [super init]) { +@@ -121,6 +123,7 @@ - (instancetype)initWithModuleInstance:(id)instance + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules + { + if (self = [super init]) { +@@ -195,6 +198,7 @@ - (void)setUpInstanceAndBridge:(int32_t)requestId + [[RCTBridgeModuleDecorator alloc] initWithViewRegistry:_viewRegistry_DEPRECATED + moduleRegistry:_moduleRegistry + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + [moduleDecorator attachInteropAPIsToModule:_instance]; + diff --git a/React/CxxBridge/NSBigStringBuffer.h b/React/CxxBridge/NSBigStringBuffer.h new file mode 100644 -index 0000000000000000000000000000000000000000..8643c17a5ae5119cdacd6630e77b162dccf8c482 +index 00000000000..5fa8aebb618 --- /dev/null +++ b/React/CxxBridge/NSBigStringBuffer.h -@@ -0,0 +1,29 @@ +@@ -0,0 +1,24 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -38,17 +224,13 @@ index 0000000000000000000000000000000000000000..8643c17a5ae5119cdacd6630e77b162d + */ + +#import -+ -+#ifdef __cplusplus +#import +#import + +using namespace facebook; +using namespace facebook::react; -+#endif // __cplusplus + +@interface NSBigStringBuffer : NSObject -+#ifdef __cplusplus + +{ + std::shared_ptr _buffer; @@ -56,12 +238,11 @@ index 0000000000000000000000000000000000000000..8643c17a5ae5119cdacd6630e77b162d + +- (instancetype)initWithSharedPtr:(const std::shared_ptr &)buffer; +- (const std::shared_ptr &)getBuffer; -+#endif // __cplusplus + +@end diff --git a/React/CxxBridge/NSBigStringBuffer.mm b/React/CxxBridge/NSBigStringBuffer.mm new file mode 100644 -index 0000000000000000000000000000000000000000..20ec1a93bc7f418c0690db8c5519174086e962c2 +index 00000000000..20ec1a93bc7 --- /dev/null +++ b/React/CxxBridge/NSBigStringBuffer.mm @@ -0,0 +1,23 @@ @@ -88,30 +269,156 @@ index 0000000000000000000000000000000000000000..20ec1a93bc7f418c0690db8c55191740 +} + +@end -diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/BundleConsumer.kt b/ReactAndroid/src/main/java/com/facebook/react/bridge/BundleConsumer.kt -new file mode 100644 -index 0000000000000000000000000000000000000000..a9f4656e0d95466da8bc2b1cdc6b9bf8639a2ced ---- /dev/null -+++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/BundleConsumer.kt -@@ -0,0 +1,15 @@ -+/* -+ * Copyright (c) Meta Platforms, Inc. and affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ */ -+ -+package com.facebook.react.bridge +diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm +index 9ea645d4752..25343e36ad2 100644 +--- a/React/CxxBridge/RCTCxxBridge.mm ++++ b/React/CxxBridge/RCTCxxBridge.mm +@@ -249,6 +249,7 @@ @implementation RCTCxxBridge { + RCTModuleRegistry *_objCModuleRegistry; + RCTViewRegistry *_viewRegistry_DEPRECATED; + RCTBundleManager *_bundleManager; ++ RCTBundleProvider *_bundleProvider; + RCTCallableJSModules *_callableJSModules; + std::atomic _loading; + std::atomic _valid; +@@ -293,6 +294,7 @@ - (RCTBridgeModuleDecorator *)bridgeModuleDecorator + return [[RCTBridgeModuleDecorator alloc] initWithViewRegistry:_viewRegistry_DEPRECATED + moduleRegistry:_objCModuleRegistry + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + } + +@@ -815,6 +817,7 @@ - (void)updateModuleWithInstance:(id)instance + moduleRegistry:_objCModuleRegistry + viewRegistry_DEPRECATED:_viewRegistry_DEPRECATED + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + moduleData.callInvokerProvider = self; + BridgeNativeModulePerfLogger::moduleDataCreateEnd([moduleName UTF8String], moduleDataId); +@@ -893,6 +896,7 @@ - (void)registerExtraModules + moduleRegistry:_objCModuleRegistry + viewRegistry_DEPRECATED:_viewRegistry_DEPRECATED + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + BridgeNativeModulePerfLogger::moduleDataCreateEnd([moduleName UTF8String], moduleDataId); + +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +index 1ccb8abad43..e6a3b28bc13 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +@@ -25,6 +25,7 @@ import com.facebook.react.common.annotations.VisibleForTesting; + import com.facebook.react.common.annotations.internal.LegacyArchitecture; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger; ++import com.facebook.react.fabric.BigStringBufferWrapper; + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; + import java.util.Collection; + import java.util.Objects; +@@ -292,6 +293,16 @@ public class BridgeReactContext extends ReactApplicationContext { + return Objects.requireNonNull(mCatalystInstance).getFabricUIManager(); + } + ++ /** ++ * Get the JS bundle. ++ * ++ * @return The JS bundle set when the bundle was loaded ++ */ ++ @Override ++ public @Nullable BigStringBufferWrapper getBundle() { ++ return mCatalystInstance == null ? null : mCatalystInstance.getBundle(); ++ } + + /** + * Get the sourceURL for the JS bundle from the CatalystInstance. This method is needed for + * compatibility with bridgeless mode, which has no CatalystInstance. +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +index 81ee574dd1d..9b41308c7ad 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +@@ -12,6 +12,7 @@ package com.facebook.react.bridge + import com.facebook.proguard.annotations.DoNotStrip + import com.facebook.react.bridge.queue.ReactQueueConfiguration + import com.facebook.react.common.annotations.internal.LegacyArchitecture +import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder + import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder +@@ -39,6 +40,11 @@ public interface CatalystInstance : MemoryPressureListener, JSInstance, JSBundle + */ + public val sourceURL: String? + ++ /** ++ * Get the JS bundle. ++ */ ++ public val bundle: BigStringBufferWrapper? ++ + // This is called from java code, so it won't be stripped anyway, but proguard will rename it, + // which this prevents. + @DoNotStrip public override fun invokeCallback(callbackID: Int, arguments: NativeArrayInterface) +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +index fd6af7089cc..6e30689524a 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +@@ -29,6 +29,7 @@ import com.facebook.react.common.annotations.VisibleForTesting; + import com.facebook.react.common.annotations.internal.LegacyArchitecture; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger; ++import com.facebook.react.fabric.BigStringBufferWrapper; + import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags; + import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry; + import com.facebook.react.module.annotations.ReactModule; +@@ -107,6 +108,7 @@ public class CatalystInstanceImpl implements CatalystInstance { + + private boolean mJSBundleHasLoaded; + private @Nullable String mSourceURL; ++ private @Nullable BigStringBufferWrapper mBundle; + + private JavaScriptContextHolder mJavaScriptContextHolder; + private @Nullable TurboModuleRegistry mTurboModuleRegistry; +@@ -300,6 +302,11 @@ public class CatalystInstanceImpl implements CatalystInstance { + } + } + ++ @Override ++ public @Nullable BigStringBufferWrapper getBundle() { ++ return mBundle; ++ } + -+public interface BundleConsumer { -+ public fun setScriptWrapper(scriptWrapper: BigStringBufferWrapper) -+ public fun setSourceURL(sourceURL: String) -+} + @Override + public @Nullable String getSourceURL() { + return mSourceURL; +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +index 7a0655081a8..891c386052b 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +@@ -26,6 +26,7 @@ import com.facebook.react.bridge.queue.MessageQueueThread; + import com.facebook.react.bridge.queue.ReactQueueConfiguration; + import com.facebook.react.common.LifecycleState; + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; ++import com.facebook.react.fabric.BigStringBufferWrapper; + import java.lang.ref.WeakReference; + import java.util.Collection; + import java.util.concurrent.CopyOnWriteArraySet; +@@ -505,6 +506,13 @@ public abstract class ReactContext extends ContextWrapper { + */ + public abstract @Nullable UIManager getFabricUIManager(); + ++ /** ++ * Get the BigStringBufferWrapper for the JS bundle. ++ * ++ * @return The BigStringBufferWrapper containing the JS bundle. ++ */ ++ public abstract @Nullable BigStringBufferWrapper getBundle(); ++ + /** + * Get the sourceURL for the JS bundle from the CatalystInstance. This method is needed for + * compatibility with bridgeless mode, which has no CatalystInstance. diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt b/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt new file mode 100644 -index 0000000000000000000000000000000000000000..1d41653271aa26d92779691bbce9c97b81290a59 +index 00000000000..1d41653271a --- /dev/null +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt @@ -0,0 +1,36 @@ @@ -151,8 +458,63 @@ index 0000000000000000000000000000000000000000..1d41653271aa26d92779691bbce9c97b + assetURL: String + ): HybridData +} +diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +index d70ec496050..85804b41be0 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +@@ -29,6 +29,7 @@ import com.facebook.react.common.annotations.VisibleForTesting + import com.facebook.react.common.annotations.internal.LegacyArchitecture + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder + import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder +@@ -137,6 +138,9 @@ internal class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) + throw UnsupportedOperationException("Unimplemented method 'extendNativeModules'") + } + ++ override val bundle: BigStringBufferWrapper? ++ get() = throw UnsupportedOperationException("Unimplemented method 'getBundle'") ++ + override val sourceURL: String + get() = throw UnsupportedOperationException("Unimplemented method 'getSourceURL'") + +diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +index 6e6921ee950..b644e0726cc 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +@@ -25,6 +25,7 @@ import com.facebook.react.common.annotations.FrameworkAPI + import com.facebook.react.common.annotations.UnstableReactNativeAPI + import com.facebook.react.common.build.ReactBuildConfig + import com.facebook.react.devsupport.interfaces.DevSupportManager ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags + import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder +@@ -43,6 +44,7 @@ import java.util.concurrent.atomic.AtomicReference + */ + internal class BridgelessReactContext(context: Context, private val reactHost: ReactHostImpl) : + ReactApplicationContext(context), EventDispatcherProvider { ++ private val bundleRef = AtomicReference() + private val sourceURLRef = AtomicReference() + private val TAG: String = this.javaClass.simpleName + +@@ -54,6 +56,12 @@ internal class BridgelessReactContext(context: Context, private val reactHost: R + + override fun getEventDispatcher(): EventDispatcher = reactHost.eventDispatcher + ++ override fun getBundle(): BigStringBufferWrapper? = bundleRef.get() ++ ++ fun setBundle(bundle: BigStringBufferWrapper?) { ++ bundleRef.set(bundle) ++ } ++ + override fun getSourceURL(): String? = sourceURLRef.get() + + fun setSourceURL(sourceURL: String?) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt -index 96bb76b3b2a0926f08a7c25cf72c87d26258958b..1be57c5937f13826e8931cb6fca5acc7a0483ccc 100644 +index 96bb76b3b2a..92daa32a0a1 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt @@ -43,6 +43,7 @@ import com.facebook.react.common.annotations.UnstableReactNativeAPI @@ -163,29 +525,23 @@ index 96bb76b3b2a0926f08a7c25cf72c87d26258958b..1be57c5937f13826e8931cb6fca5acc7 import com.facebook.react.fabric.ComponentFactory import com.facebook.react.fabric.FabricUIManager import com.facebook.react.fabric.FabricUIManagerBinding -@@ -300,6 +301,18 @@ internal class ReactInstance( +@@ -300,6 +301,11 @@ internal class ReactInstance( } } + fun beforeLoad(scriptWrapper: BigStringBufferWrapper, sourceURL: String){ -+ val workletsModule = turboModuleManager.getModule("WorkletsModule") -+ if (workletsModule != null) { -+ val setScriptWrapperMethod = workletsModule::class.java.methods.find { it.name == "setScriptWrapper" } -+ val setSourceURLMethod = workletsModule::class.java.methods.find { it.name == "setSourceURL" } -+ if (setScriptWrapperMethod != null && setSourceURLMethod != null) { -+ setScriptWrapperMethod.invoke(workletsModule, scriptWrapper) -+ setSourceURLMethod.invoke(workletsModule, sourceURL) -+ } -+ } ++ context.setSourceURL(sourceURL) ++ context.setBundle(scriptWrapper) + } + fun loadJSBundle(bundleLoader: JSBundleLoader) { Systrace.beginSection(Systrace.TRACE_TAG_REACT, "ReactInstance.loadJSBundle") bundleLoader.loadScript( -@@ -310,11 +323,17 @@ internal class ReactInstance( +@@ -309,12 +315,17 @@ internal class ReactInstance( + sourceURL: String, loadSynchronously: Boolean, ) { - context.sourceURL = sourceURL +- context.sourceURL = sourceURL - loadJSBundleFromFile(fileName, sourceURL) + val script = BigStringBufferWrapper(fileName); + @@ -202,10 +558,11 @@ index 96bb76b3b2a0926f08a7c25cf72c87d26258958b..1be57c5937f13826e8931cb6fca5acc7 } override fun loadScriptFromAssets( -@@ -323,7 +342,11 @@ internal class ReactInstance( +@@ -322,8 +333,11 @@ internal class ReactInstance( + assetURL: String, loadSynchronously: Boolean, ) { - context.sourceURL = assetURL +- context.sourceURL = assetURL - loadJSBundleFromAssets(assetManager, assetURL) + val sourceURL = assetURL.removePrefix("assets://") + val script = BigStringBufferWrapper(assetManager, sourceURL) @@ -215,7 +572,7 @@ index 96bb76b3b2a0926f08a7c25cf72c87d26258958b..1be57c5937f13826e8931cb6fca5acc7 } override fun setSourceURLs(deviceURL: String, remoteURL: String) { -@@ -438,7 +461,7 @@ internal class ReactInstance( +@@ -438,7 +452,7 @@ internal class ReactInstance( reactHostInspectorTarget: ReactHostInspectorTarget?, ): HybridData @@ -224,12 +581,33 @@ index 96bb76b3b2a0926f08a7c25cf72c87d26258958b..1be57c5937f13826e8931cb6fca5acc7 private external fun loadJSBundleFromAssets(assetManager: AssetManager, assetURL: String) +diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +index d91b7f1b189..d4b3b00e659 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +@@ -21,6 +21,7 @@ import com.facebook.react.bridge.ReactApplicationContext + import com.facebook.react.bridge.ReactContext + import com.facebook.react.bridge.UIManager + import com.facebook.react.common.annotations.internal.LegacyArchitecture ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder + + /** +@@ -149,6 +150,8 @@ public class ThemedReactContext( + ) + override fun getFabricUIManager(): UIManager? = reactApplicationContext.getFabricUIManager() + ++ override fun getBundle(): BigStringBufferWrapper? = reactApplicationContext.getBundle() ++ + override fun getSourceURL(): String? = reactApplicationContext.getSourceURL() + + override fun registerSegment(segmentId: Int, path: String?, callback: Callback?) { diff --git a/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp new file mode 100644 -index 0000000000000000000000000000000000000000..8a9c9b7ebff1c1880f6ab9e102658bcd07bba15c +index 00000000000..0efb9dac6b6 --- /dev/null +++ b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp -@@ -0,0 +1,55 @@ +@@ -0,0 +1,54 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -283,11 +661,10 @@ index 0000000000000000000000000000000000000000..8a9c9b7ebff1c1880f6ab9e102658bcd + "initHybridFromAssets", + BigStringBufferWrapper::initHybridFromAssets)}); +} -+ +} // namespace facebook::react diff --git a/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h new file mode 100644 -index 0000000000000000000000000000000000000000..248f99faf1e0bf061b6fd24de5fd42ea4bd6394e +index 00000000000..248f99faf1e --- /dev/null +++ b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h @@ -0,0 +1,47 @@ @@ -339,7 +716,7 @@ index 0000000000000000000000000000000000000000..248f99faf1e0bf061b6fd24de5fd42ea + +} // namespace facebook::react diff --git a/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp b/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp -index 2d411d4dc7af987fc60a5f60f42494a53e73ede1..3425c9e6067778ba85fe873cb0a8bf583f0e6113 100644 +index 2d411d4dc7a..3425c9e6067 100644 --- a/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +++ b/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp @@ -7,6 +7,7 @@ @@ -358,7 +735,7 @@ index 2d411d4dc7af987fc60a5f60f42494a53e73ede1..3425c9e6067778ba85fe873cb0a8bf58 }); } diff --git a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp -index 5ffd7492ba8132fce79ce1879b9f2a97f9810e62..5414a38d0210a74915814e34dcd0f7a8c2c8144b 100644 +index 5ffd7492ba8..5414a38d021 100644 --- a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +++ b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp @@ -132,24 +132,11 @@ jni::local_ref JReactInstance::initHybrid( @@ -403,7 +780,7 @@ index 5ffd7492ba8132fce79ce1879b9f2a97f9810e62..5414a38d0210a74915814e34dcd0f7a8 "getJSCallInvokerHolder", JReactInstance::getJSCallInvokerHolder), makeNativeMethod( diff --git a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h -index d6552a8a97895f8effb8e0631a7c72e6717b9247..ff9445980f7c37562a99b7ce7c52bb71ff3877d3 100644 +index d6552a8a978..ff9445980f7 100644 --- a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h +++ b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h @@ -13,6 +13,7 @@ @@ -430,7 +807,7 @@ index d6552a8a97895f8effb8e0631a7c72e6717b9247..ff9445980f7c37562a99b7ce7c52bb71 void callFunctionOnModule( diff --git a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h -index 9ef16f4cc5cbd567e431eacff7441aeb165f40ec..5c0622ad990fa0e34db9142741a0e6434f1b08d6 100644 +index 9ef16f4cc5c..5c0622ad990 100644 --- a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +++ b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h @@ -150,6 +150,7 @@ class JSI_EXPORT TurboModule : public jsi::HostObject { @@ -442,7 +819,7 @@ index 9ef16f4cc5cbd567e431eacff7441aeb165f40ec..5c0622ad990fa0e34db9142741a0e643 /** diff --git a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp -index 5ac4fbd2f7ec06ce2a212ebde0a7702eae6ee8dd..41db0a07c35637ed7194f9e3238be98eb01bb71a 100644 +index 5ac4fbd2f7e..41db0a07c35 100644 --- a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +++ b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp @@ -178,6 +178,7 @@ jsi::Value TurboModuleBinding::getModule( @@ -453,8 +830,20 @@ index 5ac4fbd2f7ec06ce2a212ebde0a7702eae6ee8dd..41db0a07c35637ed7194f9e3238be98e // Lazily populate the jsRepresentation, on property access. // +diff --git a/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm b/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +index 5168bbf415d..375550eb0fd 100644 +--- a/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm ++++ b/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +@@ -791,6 +791,7 @@ - (BOOL)_shouldCreateObjCModule:(Class)moduleClass + moduleRegistry:_bridge.moduleRegistry + viewRegistry_DEPRECATED:nil + bundleManager:nil ++ bundleProvider:nil + callableJSModules:nil]; + [_bridge registerModuleForFrameUpdates:(id)module withModuleData:data]; + } diff --git a/ReactCommon/react/runtime/ReactInstance.cpp b/ReactCommon/react/runtime/ReactInstance.cpp -index ea24e5c8682ed94d407e9d69f6069a025646f4a7..8ba492d52d404851fe48807bfa1967fdc0fada0b 100644 +index ea24e5c8682..8ba492d52d4 100644 --- a/ReactCommon/react/runtime/ReactInstance.cpp +++ b/ReactCommon/react/runtime/ReactInstance.cpp @@ -216,17 +216,16 @@ std::string simpleBasename(const std::string& path) { @@ -487,7 +876,7 @@ index ea24e5c8682ed94d407e9d69f6069a025646f4a7..8ba492d52d404851fe48807bfa1967fd /** * TODO(T183610671): We need a safe/reliable way to enable the js diff --git a/ReactCommon/react/runtime/ReactInstance.h b/ReactCommon/react/runtime/ReactInstance.h -index 3c92b268f38c745140419d3f99d51f68a5263ee3..d9e69dc6563c35bc30fbb54ea3738e0ca6e93155 100644 +index 3c92b268f38..d9e69dc6563 100644 --- a/ReactCommon/react/runtime/ReactInstance.h +++ b/ReactCommon/react/runtime/ReactInstance.h @@ -48,7 +48,7 @@ class ReactInstance final : private jsinspector_modern::InstanceTargetDelegate { @@ -499,8 +888,64 @@ index 3c92b268f38c745140419d3f99d51f68a5263ee3..d9e69dc6563c35bc30fbb54ea3738e0c const std::string& sourceURL, std::function&& beforeLoad = nullptr, std::function&& afterLoad = nullptr); +diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +index 12631915e88..47c6733c344 100644 +--- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm ++++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +@@ -115,6 +115,7 @@ @implementation RCTHost { + NSURL *_oldDelegateBundleURL; + NSURL *_bundleURL; + RCTBundleManager *_bundleManager; ++ RCTBundleProvider *_bundleProvider; + RCTHostBundleURLProvider _bundleURLProvider; + RCTHostJSEngineProvider _jsEngineProvider; + +@@ -165,6 +166,7 @@ - (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider + _turboModuleManagerDelegate = turboModuleManagerDelegate; + _bundleManager = [RCTBundleManager new]; + _moduleRegistry = [RCTModuleRegistry new]; ++ _bundleProvider = [RCTBundleProvider new]; + _jsEngineProvider = [jsEngineProvider copy]; + _launchOptions = [launchOptions copy]; + +@@ -243,6 +245,7 @@ - (void)start + _instance = [[RCTInstance alloc] initWithDelegate:self + jsRuntimeFactory:[self _provideJSEngine] + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + turboModuleManagerDelegate:_turboModuleManagerDelegate + moduleRegistry:_moduleRegistry + parentInspectorTarget:_inspectorTarget.get() +@@ -446,6 +449,7 @@ - (void)_reloadWithShouldRestartSurfaces:(BOOL)shouldRestartSurfaces + _instance = [[RCTInstance alloc] initWithDelegate:self + jsRuntimeFactory:[self _provideJSEngine] + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + turboModuleManagerDelegate:_turboModuleManagerDelegate + moduleRegistry:_moduleRegistry + parentInspectorTarget:_inspectorTarget.get() +diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +index 5d4ea87be9e..57bd143832e 100644 +--- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h ++++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +@@ -26,6 +26,7 @@ RCT_EXTERN NSString *RCTInstanceRuntimeDiagnosticFlags(void); + RCT_EXTERN void RCTInstanceSetRuntimeDiagnosticFlags(NSString *_Nullable flags); + + @class RCTBundleManager; ++@class RCTBundleProvider; + @class RCTInstance; + @class RCTJSThreadManager; + @class RCTModuleRegistry; +@@ -68,6 +69,7 @@ RCT_EXTERN void RCTInstanceSetRuntimeDiagnosticFlags(NSString *_Nullable flags); + - (instancetype)initWithDelegate:(id)delegate + jsRuntimeFactory:(std::shared_ptr)jsRuntimeFactory + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + turboModuleManagerDelegate:(id)turboModuleManagerDelegate + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + parentInspectorTarget:(facebook::react::jsinspector_modern::HostTarget *)parentInspectorTarget diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm -index f5e53529e42045543f2b37a6f19392f75297620c..f37e8ba3091790842c85f7be48dc17133a712261 100644 +index f5e53529e42..d05f665f049 100644 --- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm @@ -11,6 +11,7 @@ @@ -511,40 +956,53 @@ index f5e53529e42045543f2b37a6f19392f75297620c..f37e8ba3091790842c85f7be48dc1713 #import #import #import -@@ -19,6 +20,7 @@ - #import - #import - #import -+#import - #import - #import - #import -@@ -572,9 +574,19 @@ - (void)_loadScriptFromSource:(RCTSource *)source +@@ -111,6 +112,7 @@ @implementation RCTInstance { + RCTPerformanceLogger *_performanceLogger; + RCTDisplayLink *_displayLink; + RCTTurboModuleManager *_turboModuleManager; ++ RCTBundleProvider *_bundleProvider; + std::mutex _invalidationMutex; + std::atomic _valid; + RCTJSThreadManager *_jsThreadManager; +@@ -128,6 +130,7 @@ @implementation RCTInstance { + - (instancetype)initWithDelegate:(id)delegate + jsRuntimeFactory:(std::shared_ptr)jsRuntimeFactory + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + turboModuleManagerDelegate:(id)tmmDelegate + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + parentInspectorTarget:(jsinspector_modern::HostTarget *)parentInspectorTarget +@@ -142,9 +145,11 @@ - (instancetype)initWithDelegate:(id)delegate + _jsRuntimeFactory = jsRuntimeFactory; + _appTMMDelegate = tmmDelegate; + _jsThreadManager = [RCTJSThreadManager new]; ++ _bundleProvider = bundleProvider; + _bridgeModuleDecorator = [[RCTBridgeModuleDecorator alloc] initWithViewRegistry:[RCTViewRegistry new] + moduleRegistry:moduleRegistry + bundleManager:bundleManager ++ bundleProvider:bundleProvider + callableJSModules:[RCTCallableJSModules new]]; + _parentInspectorTarget = parentInspectorTarget; + { +@@ -572,8 +577,12 @@ - (void)_loadScriptFromSource:(RCTSource *)source } auto script = std::make_unique(source.data); + const auto scriptBuffer = std::make_shared(std::move(script)); const auto *url = deriveSourceURL(source.url).UTF8String; -- auto beforeLoad = [waitUntilModuleSetupComplete = self->_waitUntilModuleSetupComplete](jsi::Runtime &_) { -+ auto beforeLoad = [waitUntilModuleSetupComplete = self->_waitUntilModuleSetupComplete, turboModuleManager = self->_turboModuleManager, scriptBuffer, url](jsi::Runtime &_) { -+ @try { -+ id workletsModule = [turboModuleManager moduleForName:@"WorkletsModule".UTF8String]; -+ if ([workletsModule respondsToSelector:@selector(setScriptBuffer:)] && [workletsModule respondsToSelector:@selector(setSourceURL:)]) { -+ [workletsModule setScriptBuffer:[[NSBigStringBuffer alloc] initWithSharedPtr:scriptBuffer]]; -+ [workletsModule setSourceURL:@(url)]; -+ } -+ } @catch (NSException *exception) { -+ } -+ ++ [_bundleProvider setBundle:[[NSBigStringBuffer new] initWithSharedPtr:scriptBuffer]]; ++ [_bundleProvider setSourceURL:@(url)]; ++ + auto beforeLoad = [waitUntilModuleSetupComplete = self->_waitUntilModuleSetupComplete](jsi::Runtime &_) { if (waitUntilModuleSetupComplete) { waitUntilModuleSetupComplete(); - } -@@ -582,7 +594,7 @@ - (void)_loadScriptFromSource:(RCTSource *)source +@@ -582,7 +591,8 @@ - (void)_loadScriptFromSource:(RCTSource *)source auto afterLoad = [](jsi::Runtime &_) { [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTInstanceDidLoadBundle" object:nil]; }; - _reactInstance->loadScript(std::move(script), url, beforeLoad, afterLoad); ++ + _reactInstance->loadScript(scriptBuffer, url, beforeLoad, afterLoad); } diff --git a/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch b/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch new file mode 100644 index 000000000000..f7991e2a295e --- /dev/null +++ b/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch @@ -0,0 +1,1009 @@ +diff --git a/React/Base/RCTBridgeModule.h b/React/Base/RCTBridgeModule.h +index 1fb3e3e0e7e..be3e25f6a3a 100644 +--- a/React/Base/RCTBridgeModule.h ++++ b/React/Base/RCTBridgeModule.h +@@ -14,6 +14,7 @@ + #import + + #import "RCTBundleManager.h" ++#import "RCTBundleProvider.h" + + @class RCTBridge; + @protocol RCTBridgeMethod; +@@ -130,6 +131,16 @@ RCT_EXTERN_C_END + */ + @property (nonatomic, weak, readwrite) RCTBundleManager *bundleManager; + ++/** ++ * A reference to the RCTBundleProvider. Useful for modules that need to use ++ the app's JavaScript bundle and sourceURL. ++ * ++ * To implement this in your module, just add `@synthesize bundleProvider = ++ * _bundleProvider;`. If using Swift, add `@objc var bundleProvider: ++ * RCTBundleProvider!` to your module. ++ */ ++@property (nonatomic, weak, readwrite) RCTBundleProvider *bundleProvider; ++ + /** + * A reference to an RCTCallableJSModules. Useful for modules that need to + * call into methods on JavaScript modules registered as callable with +diff --git a/React/Base/RCTBridgeModuleDecorator.h b/React/Base/RCTBridgeModuleDecorator.h +index e7860967d1a..4724ba8e407 100644 +--- a/React/Base/RCTBridgeModuleDecorator.h ++++ b/React/Base/RCTBridgeModuleDecorator.h +@@ -23,11 +23,13 @@ + @property (nonatomic, strong, readonly) RCTViewRegistry *viewRegistry_DEPRECATED; + @property (nonatomic, strong, readonly) RCTModuleRegistry *moduleRegistry; + @property (nonatomic, strong, readonly) RCTBundleManager *bundleManager; ++@property (nonatomic, strong, readonly) RCTBundleProvider *bundleProvider; + @property (nonatomic, strong, readonly) RCTCallableJSModules *callableJSModules; + + - (instancetype)initWithViewRegistry:(RCTViewRegistry *)viewRegistry + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules; + + - (void)attachInteropAPIsToModule:(id)bridgeModule; +diff --git a/React/Base/RCTBridgeModuleDecorator.m b/React/Base/RCTBridgeModuleDecorator.m +index 7f8e15417bc..397df7e4178 100644 +--- a/React/Base/RCTBridgeModuleDecorator.m ++++ b/React/Base/RCTBridgeModuleDecorator.m +@@ -12,12 +12,14 @@ @implementation RCTBridgeModuleDecorator + - (instancetype)initWithViewRegistry:(RCTViewRegistry *)viewRegistry + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules + { + if (self = [super init]) { + _viewRegistry_DEPRECATED = viewRegistry; + _moduleRegistry = moduleRegistry; + _bundleManager = bundleManager; ++ _bundleProvider = bundleProvider; + _callableJSModules = callableJSModules; + } + return self; +@@ -47,6 +49,17 @@ - (void)attachInteropAPIsToModule:(id)bridgeModule + bridgeModule.bundleManager = _bundleManager; + } + ++ /** ++ * Attach the RCTBundleProvider to this TurboModule, which allows this TurboModule to ++ * read from the app's bundle and sourceURL. ++ * ++ * Usage: In the TurboModule @implementation, include: ++ * `@synthesize bundleProvider = _bundleProvider` ++ */ ++ if([bridgeModule respondsToSelector:@selector(setBundleProvider:)]) { ++ bridgeModule.bundleProvider = _bundleProvider; ++ } ++ + /** + * Attach the RCTCallableJSModules to this TurboModule, which allows this TurboModule + * to call JS Module methods. +diff --git a/React/Base/RCTBundleProvider.h b/React/Base/RCTBundleProvider.h +new file mode 100644 +index 00000000000..017bfdfbd07 +--- /dev/null ++++ b/React/Base/RCTBundleProvider.h +@@ -0,0 +1,22 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ */ ++ ++#import ++ ++@class NSBigStringBuffer; ++ ++/** ++ * Provides the interface needed to register a Bundle Provider module. ++ */ ++@interface RCTBundleProvider : NSObject ++ ++- (NSBigStringBuffer *)getBundle; ++- (void)setBundle:(NSBigStringBuffer *)bundle; ++- (NSString *)getSourceURL; ++- (void)setSourceURL:(NSString *)sourceURL; ++ ++@end +diff --git a/React/Base/RCTBundleProvider.mm b/React/Base/RCTBundleProvider.mm +new file mode 100644 +index 00000000000..3d00e0d3d49 +--- /dev/null ++++ b/React/Base/RCTBundleProvider.mm +@@ -0,0 +1,30 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ */ ++ ++#import "RCTBundleProvider.h" ++ ++@implementation RCTBundleProvider{ ++ NSBigStringBuffer *_scriptBuffer; ++ NSString *_sourceURL; ++} ++ ++- (NSBigStringBuffer *)getBundle { ++ return _scriptBuffer; ++} ++ ++- (void)setBundle:(NSBigStringBuffer *)bundle { ++ _scriptBuffer = bundle; ++} ++ ++- (NSString *)getSourceURL { ++ return _sourceURL; ++} ++ ++- (void)setSourceURL:(NSString *)sourceURL { ++ _sourceURL = sourceURL; ++} ++@end +diff --git a/React/Base/RCTModuleData.h b/React/Base/RCTModuleData.h +index 812991e4d26..e2008a5eff3 100644 +--- a/React/Base/RCTModuleData.h ++++ b/React/Base/RCTModuleData.h +@@ -18,6 +18,7 @@ + @class RCTBundleManager; + @class RCTCallableJSModules; + @class RCTCallInvoker; ++@class RCTBundleProvider; + + typedef id (^RCTBridgeModuleProvider)(void); + +@@ -34,6 +35,7 @@ typedef id (^RCTBridgeModuleProvider)(void); + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules NS_DESIGNATED_INITIALIZER + __deprecated_msg("This API will be removed along with the legacy architecture."); + +@@ -42,6 +44,7 @@ typedef id (^RCTBridgeModuleProvider)(void); + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules NS_DESIGNATED_INITIALIZER + __deprecated_msg("This API will be removed along with the legacy architecture."); + +diff --git a/React/Base/RCTModuleData.mm b/React/Base/RCTModuleData.mm +index 225f6b3c16e..68dd317537b 100644 +--- a/React/Base/RCTModuleData.mm ++++ b/React/Base/RCTModuleData.mm +@@ -46,6 +46,7 @@ @implementation RCTModuleData { + RCTModuleRegistry *_moduleRegistry; + RCTViewRegistry *_viewRegistry_DEPRECATED; + RCTBundleManager *_bundleManager; ++ RCTBundleProvider *_bundleProvider; + RCTCallableJSModules *_callableJSModules; + BOOL _isInitialized; + } +@@ -100,6 +101,7 @@ - (instancetype)initWithModuleClass:(Class)moduleClass + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules + { + if (self = [super init]) { +@@ -121,6 +123,7 @@ - (instancetype)initWithModuleInstance:(id)instance + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + callableJSModules:(RCTCallableJSModules *)callableJSModules + { + if (self = [super init]) { +@@ -195,6 +198,7 @@ - (void)setUpInstanceAndBridge:(int32_t)requestId + [[RCTBridgeModuleDecorator alloc] initWithViewRegistry:_viewRegistry_DEPRECATED + moduleRegistry:_moduleRegistry + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + [moduleDecorator attachInteropAPIsToModule:_instance]; + +diff --git a/React/CxxBridge/NSBigStringBuffer.h b/React/CxxBridge/NSBigStringBuffer.h +new file mode 100644 +index 00000000000..5fa8aebb618 +--- /dev/null ++++ b/React/CxxBridge/NSBigStringBuffer.h +@@ -0,0 +1,24 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ */ ++ ++#import ++#import ++#import ++ ++using namespace facebook; ++using namespace facebook::react; ++ ++@interface NSBigStringBuffer : NSObject ++ ++{ ++ std::shared_ptr _buffer; ++} ++ ++- (instancetype)initWithSharedPtr:(const std::shared_ptr &)buffer; ++- (const std::shared_ptr &)getBuffer; ++ ++@end +diff --git a/React/CxxBridge/NSBigStringBuffer.mm b/React/CxxBridge/NSBigStringBuffer.mm +new file mode 100644 +index 00000000000..20ec1a93bc7 +--- /dev/null ++++ b/React/CxxBridge/NSBigStringBuffer.mm +@@ -0,0 +1,23 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ */ ++ ++#import "NSBigStringBuffer.h" ++ ++@implementation NSBigStringBuffer ++ ++- (instancetype)initWithSharedPtr:(const std::shared_ptr&)buffer { ++ if (self = [super init]) { ++ _buffer = buffer; ++ } ++ return self; ++} ++ ++- (const std::shared_ptr&)getBuffer { ++ return _buffer; ++} ++ ++@end +diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm +index 9ea645d4752..25343e36ad2 100644 +--- a/React/CxxBridge/RCTCxxBridge.mm ++++ b/React/CxxBridge/RCTCxxBridge.mm +@@ -249,6 +249,7 @@ @implementation RCTCxxBridge { + RCTModuleRegistry *_objCModuleRegistry; + RCTViewRegistry *_viewRegistry_DEPRECATED; + RCTBundleManager *_bundleManager; ++ RCTBundleProvider *_bundleProvider; + RCTCallableJSModules *_callableJSModules; + std::atomic _loading; + std::atomic _valid; +@@ -293,6 +294,7 @@ - (RCTBridgeModuleDecorator *)bridgeModuleDecorator + return [[RCTBridgeModuleDecorator alloc] initWithViewRegistry:_viewRegistry_DEPRECATED + moduleRegistry:_objCModuleRegistry + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + } + +@@ -815,6 +817,7 @@ - (void)updateModuleWithInstance:(id)instance + moduleRegistry:_objCModuleRegistry + viewRegistry_DEPRECATED:_viewRegistry_DEPRECATED + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + moduleData.callInvokerProvider = self; + BridgeNativeModulePerfLogger::moduleDataCreateEnd([moduleName UTF8String], moduleDataId); +@@ -893,6 +896,7 @@ - (void)registerExtraModules + moduleRegistry:_objCModuleRegistry + viewRegistry_DEPRECATED:_viewRegistry_DEPRECATED + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + callableJSModules:_callableJSModules]; + BridgeNativeModulePerfLogger::moduleDataCreateEnd([moduleName UTF8String], moduleDataId); + +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +index 1ccb8abad43..e6a3b28bc13 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +@@ -25,6 +25,7 @@ import com.facebook.react.common.annotations.VisibleForTesting; + import com.facebook.react.common.annotations.internal.LegacyArchitecture; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger; ++import com.facebook.react.fabric.BigStringBufferWrapper; + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; + import java.util.Collection; + import java.util.Objects; +@@ -292,6 +293,16 @@ public class BridgeReactContext extends ReactApplicationContext { + return Objects.requireNonNull(mCatalystInstance).getFabricUIManager(); + } + ++ /** ++ * Get the JS bundle. ++ * ++ * @return The JS bundle set when the bundle was loaded ++ */ ++ @Override ++ public @Nullable BigStringBufferWrapper getBundle() { ++ return mCatalystInstance == null ? null : mCatalystInstance.getBundle(); ++ } ++ + /** + * Get the sourceURL for the JS bundle from the CatalystInstance. This method is needed for + * compatibility with bridgeless mode, which has no CatalystInstance. +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +index 81ee574dd1d..9b41308c7ad 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +@@ -12,6 +12,7 @@ package com.facebook.react.bridge + import com.facebook.proguard.annotations.DoNotStrip + import com.facebook.react.bridge.queue.ReactQueueConfiguration + import com.facebook.react.common.annotations.internal.LegacyArchitecture ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder + import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder +@@ -39,6 +40,11 @@ public interface CatalystInstance : MemoryPressureListener, JSInstance, JSBundle + */ + public val sourceURL: String? + ++ /** ++ * Get the JS bundle. ++ */ ++ public val bundle: BigStringBufferWrapper? ++ + // This is called from java code, so it won't be stripped anyway, but proguard will rename it, + // which this prevents. + @DoNotStrip public override fun invokeCallback(callbackID: Int, arguments: NativeArrayInterface) +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +index fd6af7089cc..6e30689524a 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +@@ -29,6 +29,7 @@ import com.facebook.react.common.annotations.VisibleForTesting; + import com.facebook.react.common.annotations.internal.LegacyArchitecture; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel; + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger; ++import com.facebook.react.fabric.BigStringBufferWrapper; + import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags; + import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry; + import com.facebook.react.module.annotations.ReactModule; +@@ -107,6 +108,7 @@ public class CatalystInstanceImpl implements CatalystInstance { + + private boolean mJSBundleHasLoaded; + private @Nullable String mSourceURL; ++ private @Nullable BigStringBufferWrapper mBundle; + + private JavaScriptContextHolder mJavaScriptContextHolder; + private @Nullable TurboModuleRegistry mTurboModuleRegistry; +@@ -300,6 +302,11 @@ public class CatalystInstanceImpl implements CatalystInstance { + } + } + ++ @Override ++ public @Nullable BigStringBufferWrapper getBundle() { ++ return mBundle; ++ } ++ + @Override + public @Nullable String getSourceURL() { + return mSourceURL; +diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +index 7a0655081a8..891c386052b 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java ++++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +@@ -26,6 +26,7 @@ import com.facebook.react.bridge.queue.MessageQueueThread; + import com.facebook.react.bridge.queue.ReactQueueConfiguration; + import com.facebook.react.common.LifecycleState; + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; ++import com.facebook.react.fabric.BigStringBufferWrapper; + import java.lang.ref.WeakReference; + import java.util.Collection; + import java.util.concurrent.CopyOnWriteArraySet; +@@ -505,6 +506,13 @@ public abstract class ReactContext extends ContextWrapper { + */ + public abstract @Nullable UIManager getFabricUIManager(); + ++ /** ++ * Get the BigStringBufferWrapper for the JS bundle. ++ * ++ * @return The BigStringBufferWrapper containing the JS bundle. ++ */ ++ public abstract @Nullable BigStringBufferWrapper getBundle(); ++ + /** + * Get the sourceURL for the JS bundle from the CatalystInstance. This method is needed for + * compatibility with bridgeless mode, which has no CatalystInstance. +diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt b/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt +new file mode 100644 +index 00000000000..1d41653271a +--- /dev/null ++++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt +@@ -0,0 +1,36 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ */ ++ ++package com.facebook.react.fabric ++ ++import android.annotation.SuppressLint ++import android.content.res.AssetManager ++import com.facebook.jni.HybridData ++import com.facebook.proguard.annotations.DoNotStripAny ++ ++/** TODO: Description */ ++@SuppressLint("MissingNativeLoadLibrary") ++@DoNotStripAny ++public class BigStringBufferWrapper { ++ ++ private val mHybridData: HybridData ++ ++ public constructor(fileName: String) { ++ mHybridData = initHybridFromFile(fileName) ++ } ++ ++ public constructor(assetManager: AssetManager, assetURL: String) { ++ mHybridData = initHybridFromAssets(assetManager, assetURL) ++ } ++ ++ private external fun initHybridFromFile(fileName: String): HybridData ++ ++ private external fun initHybridFromAssets( ++ assetManager: AssetManager, ++ assetURL: String ++ ): HybridData ++} +diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +index d70ec496050..85804b41be0 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +@@ -29,6 +29,7 @@ import com.facebook.react.common.annotations.VisibleForTesting + import com.facebook.react.common.annotations.internal.LegacyArchitecture + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel + import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder + import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder +@@ -137,6 +138,9 @@ internal class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) + throw UnsupportedOperationException("Unimplemented method 'extendNativeModules'") + } + ++ override val bundle: BigStringBufferWrapper? ++ get() = throw UnsupportedOperationException("Unimplemented method 'getBundle'") ++ + override val sourceURL: String + get() = throw UnsupportedOperationException("Unimplemented method 'getSourceURL'") + +diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +index 6e6921ee950..b644e0726cc 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +@@ -25,6 +25,7 @@ import com.facebook.react.common.annotations.FrameworkAPI + import com.facebook.react.common.annotations.UnstableReactNativeAPI + import com.facebook.react.common.build.ReactBuildConfig + import com.facebook.react.devsupport.interfaces.DevSupportManager ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags + import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder +@@ -43,6 +44,7 @@ import java.util.concurrent.atomic.AtomicReference + */ + internal class BridgelessReactContext(context: Context, private val reactHost: ReactHostImpl) : + ReactApplicationContext(context), EventDispatcherProvider { ++ private val bundleRef = AtomicReference() + private val sourceURLRef = AtomicReference() + private val TAG: String = this.javaClass.simpleName + +@@ -54,6 +56,12 @@ internal class BridgelessReactContext(context: Context, private val reactHost: R + + override fun getEventDispatcher(): EventDispatcher = reactHost.eventDispatcher + ++ override fun getBundle(): BigStringBufferWrapper? = bundleRef.get() ++ ++ fun setBundle(bundle: BigStringBufferWrapper?) { ++ bundleRef.set(bundle) ++ } ++ + override fun getSourceURL(): String? = sourceURLRef.get() + + fun setSourceURL(sourceURL: String?) { +diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +index 96bb76b3b2a..92daa32a0a1 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +@@ -43,6 +43,7 @@ import com.facebook.react.common.annotations.UnstableReactNativeAPI + import com.facebook.react.devsupport.InspectorFlags.getIsProfilingBuild + import com.facebook.react.devsupport.StackTraceHelper + import com.facebook.react.devsupport.interfaces.DevSupportManager ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.fabric.ComponentFactory + import com.facebook.react.fabric.FabricUIManager + import com.facebook.react.fabric.FabricUIManagerBinding +@@ -300,6 +301,11 @@ internal class ReactInstance( + } + } + ++ fun beforeLoad(scriptWrapper: BigStringBufferWrapper, sourceURL: String){ ++ context.setSourceURL(sourceURL) ++ context.setBundle(scriptWrapper) ++ } ++ + fun loadJSBundle(bundleLoader: JSBundleLoader) { + Systrace.beginSection(Systrace.TRACE_TAG_REACT, "ReactInstance.loadJSBundle") + bundleLoader.loadScript( +@@ -309,12 +315,17 @@ internal class ReactInstance( + sourceURL: String, + loadSynchronously: Boolean, + ) { +- context.sourceURL = sourceURL +- loadJSBundleFromFile(fileName, sourceURL) ++ val script = BigStringBufferWrapper(fileName); ++ ++ beforeLoad(script, sourceURL); ++ loadJSBundle(script, sourceURL) + } + + override fun loadSplitBundleFromFile(fileName: String, sourceURL: String) { +- loadJSBundleFromFile(fileName, sourceURL) ++ val script = BigStringBufferWrapper(fileName) ++ ++ beforeLoad(script, sourceURL); ++ loadJSBundle(script, sourceURL) + } + + override fun loadScriptFromAssets( +@@ -322,8 +333,11 @@ internal class ReactInstance( + assetURL: String, + loadSynchronously: Boolean, + ) { +- context.sourceURL = assetURL +- loadJSBundleFromAssets(assetManager, assetURL) ++ val sourceURL = assetURL.removePrefix("assets://") ++ val script = BigStringBufferWrapper(assetManager, sourceURL) ++ ++ beforeLoad(script, assetURL); ++ loadJSBundle(script, assetURL) + } + + override fun setSourceURLs(deviceURL: String, remoteURL: String) { +@@ -438,7 +452,7 @@ internal class ReactInstance( + reactHostInspectorTarget: ReactHostInspectorTarget?, + ): HybridData + +- private external fun loadJSBundleFromFile(fileName: String, sourceURL: String) ++ private external fun loadJSBundle(scriptWrapper: BigStringBufferWrapper, sourceURL: String) + + private external fun loadJSBundleFromAssets(assetManager: AssetManager, assetURL: String) + +diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +index d91b7f1b189..d4b3b00e659 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt ++++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +@@ -21,6 +21,7 @@ import com.facebook.react.bridge.ReactApplicationContext + import com.facebook.react.bridge.ReactContext + import com.facebook.react.bridge.UIManager + import com.facebook.react.common.annotations.internal.LegacyArchitecture ++import com.facebook.react.fabric.BigStringBufferWrapper + import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder + + /** +@@ -149,6 +150,8 @@ public class ThemedReactContext( + ) + override fun getFabricUIManager(): UIManager? = reactApplicationContext.getFabricUIManager() + ++ override fun getBundle(): BigStringBufferWrapper? = reactApplicationContext.getBundle() ++ + override fun getSourceURL(): String? = reactApplicationContext.getSourceURL() + + override fun registerSegment(segmentId: Int, path: String?, callback: Callback?) { +diff --git a/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp +new file mode 100644 +index 00000000000..0efb9dac6b6 +--- /dev/null ++++ b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp +@@ -0,0 +1,54 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ */ ++ ++#include "BigStringBufferWrapper.h" ++#include ++#include ++ ++using namespace facebook::jni; ++ ++namespace facebook::react { ++jni::local_ref ++BigStringBufferWrapper::initHybridFromFile( ++ jni::alias_ref jThis, ++ std::string fileName) { ++ std::unique_ptr script; ++ RecoverableError::runRethrowingAsRecoverable( ++ [&fileName, &script]() { script = JSBigFileString::fromPath(fileName); }); ++ auto buffer = std::make_shared(std::move(script)); ++ return makeCxxInstance(buffer); ++} ++ ++jni::local_ref ++BigStringBufferWrapper::initHybridFromAssets( ++ jni::alias_ref jThis, ++ jni::alias_ref assetManager, ++ const std::string& sourceURL) { ++ auto manager = extractAssetManager(assetManager); ++ auto script = loadScriptFromAssets(manager, sourceURL); ++ auto buffer = std::make_shared(std::move(script)); ++ return makeCxxInstance(buffer); ++} ++ ++BigStringBufferWrapper::BigStringBufferWrapper( ++ const std::shared_ptr& script) ++ : script_(script) {} ++ ++const std::shared_ptr BigStringBufferWrapper::getScript() ++ const { ++ return script_; ++} ++ ++void BigStringBufferWrapper::registerNatives() { ++ registerHybrid( ++ {makeNativeMethod( ++ "initHybridFromFile", BigStringBufferWrapper::initHybridFromFile), ++ makeNativeMethod( ++ "initHybridFromAssets", ++ BigStringBufferWrapper::initHybridFromAssets)}); ++} ++} // namespace facebook::react +diff --git a/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h +new file mode 100644 +index 00000000000..248f99faf1e +--- /dev/null ++++ b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h +@@ -0,0 +1,47 @@ ++/* ++ * Copyright (c) Meta Platforms, Inc. and affiliates. ++ * ++ * This source code is licensed under the MIT license found in the ++ * LICENSE file in the root directory of this source tree. ++ */ ++ ++#pragma once ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++namespace facebook::react { ++ ++class BigStringBufferWrapper : public jni::HybridClass { ++ public: ++ constexpr static const char* const kJavaDescriptor = ++ "Lcom/facebook/react/fabric/BigStringBufferWrapper;"; ++ ++ static void registerNatives(); ++ ++ [[nodiscard]] const std::shared_ptr getScript() const; ++ ++ private: ++ static jni::local_ref initHybridFromFile( ++ jni::alias_ref jThis, ++ std::string fileName); ++ ++ static jni::local_ref ++ initHybridFromAssets( ++ jni::alias_ref jThis, ++ jni::alias_ref assetManager, ++ const std::string& assetURL); ++ ++ friend HybridBase; ++ ++ explicit BigStringBufferWrapper( ++ const std::shared_ptr& script); ++ ++ const std::shared_ptr script_; ++}; ++ ++} // namespace facebook::react +diff --git a/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp b/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +index 2d411d4dc7a..3425c9e6067 100644 +--- a/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp ++++ b/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +@@ -7,6 +7,7 @@ + + #include + ++#include "BigStringBufferWrapper.h" + #include "ComponentFactory.h" + #include "EventBeatManager.h" + #include "EventEmitterWrapper.h" +@@ -22,5 +23,6 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* /*unused*/) { + facebook::react::StateWrapperImpl::registerNatives(); + facebook::react::ComponentFactory::registerNatives(); + facebook::react::SurfaceHandlerBinding::registerNatives(); ++ facebook::react::BigStringBufferWrapper::registerNatives(); + }); + } +diff --git a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +index 5ffd7492ba8..5414a38d021 100644 +--- a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp ++++ b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +@@ -132,24 +132,11 @@ jni::local_ref JReactInstance::initHybrid( + jReactHostInspectorTarget); + } + +-void JReactInstance::loadJSBundleFromAssets( +- jni::alias_ref assetManager, +- const std::string& assetURL) { +- const int kAssetsLength = 9; // strlen("assets://"); +- auto sourceURL = assetURL.substr(kAssetsLength); +- +- auto manager = extractAssetManager(assetManager); +- auto script = loadScriptFromAssets(manager, sourceURL); +- instance_->loadScript(std::move(script), sourceURL); +-} +- +-void JReactInstance::loadJSBundleFromFile( +- const std::string& fileName, ++void JReactInstance::loadJSBundle( ++ jni::alias_ref scriptWrapper, + const std::string& sourceURL) { +- std::unique_ptr script; +- RecoverableError::runRethrowingAsRecoverable( +- [&fileName, &script]() { script = JSBigFileString::fromPath(fileName); }); +- instance_->loadScript(std::move(script), sourceURL); ++ auto script = scriptWrapper->cthis()->getScript(); ++ instance_->loadScript(script, sourceURL); + } + + /** +@@ -219,10 +206,7 @@ void JReactInstance::registerNatives() { + makeNativeMethod("initHybrid", JReactInstance::initHybrid), + makeNativeMethod( + "createJSTimerExecutor", JReactInstance::createJSTimerExecutor), +- makeNativeMethod( +- "loadJSBundleFromAssets", JReactInstance::loadJSBundleFromAssets), +- makeNativeMethod( +- "loadJSBundleFromFile", JReactInstance::loadJSBundleFromFile), ++ makeNativeMethod("loadJSBundle", JReactInstance::loadJSBundle), + makeNativeMethod( + "getJSCallInvokerHolder", JReactInstance::getJSCallInvokerHolder), + makeNativeMethod( +diff --git a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h +index d6552a8a978..ff9445980f7 100644 +--- a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h ++++ b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -58,12 +59,8 @@ class JReactInstance : public jni::HybridClass { + + static void registerNatives(); + +- void loadJSBundleFromAssets( +- jni::alias_ref assetManager, +- const std::string& assetURL); +- +- void loadJSBundleFromFile( +- const std::string& fileName, ++ void loadJSBundle( ++ jni::alias_ref scriptWrapper, + const std::string& sourceURL); + + void callFunctionOnModule( +diff --git a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +index 9ef16f4cc5c..5c0622ad990 100644 +--- a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h ++++ b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +@@ -150,6 +150,7 @@ class JSI_EXPORT TurboModule : public jsi::HostObject { + private: + friend class TurboModuleBinding; + std::unique_ptr jsRepresentation_; ++ jsi::Runtime* representationRuntime_; + }; + + /** +diff --git a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +index 5ac4fbd2f7e..41db0a07c35 100644 +--- a/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp ++++ b/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +@@ -178,6 +178,7 @@ jsi::Value TurboModuleBinding::getModule( + jsi::Object jsRepresentation(runtime); + weakJsRepresentation = + std::make_unique(runtime, jsRepresentation); ++ module->representationRuntime_ = &runtime; + + // Lazily populate the jsRepresentation, on property access. + // +diff --git a/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm b/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +index 5168bbf415d..375550eb0fd 100644 +--- a/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm ++++ b/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +@@ -791,6 +791,7 @@ - (BOOL)_shouldCreateObjCModule:(Class)moduleClass + moduleRegistry:_bridge.moduleRegistry + viewRegistry_DEPRECATED:nil + bundleManager:nil ++ bundleProvider:nil + callableJSModules:nil]; + [_bridge registerModuleForFrameUpdates:(id)module withModuleData:data]; + } +diff --git a/ReactCommon/react/runtime/ReactInstance.cpp b/ReactCommon/react/runtime/ReactInstance.cpp +index ea24e5c8682..8ba492d52d4 100644 +--- a/ReactCommon/react/runtime/ReactInstance.cpp ++++ b/ReactCommon/react/runtime/ReactInstance.cpp +@@ -216,17 +216,16 @@ std::string simpleBasename(const std::string& path) { + * preferably via the runtimeExecutor_. + */ + void ReactInstance::loadScript( +- std::unique_ptr script, ++ const std::shared_ptr& script, + const std::string& sourceURL, + std::function&& beforeLoad, + std::function&& afterLoad) { +- auto buffer = std::make_shared(std::move(script)); + std::string scriptName = simpleBasename(sourceURL); + + runtimeScheduler_->scheduleWork([this, + scriptName, + sourceURL, +- buffer = std::move(buffer), ++ script, + weakBufferedRuntimeExecuter = + std::weak_ptr( + bufferedRuntimeExecutor_), +@@ -242,7 +241,7 @@ void ReactInstance::loadScript( + ReactMarker::RUN_JS_BUNDLE_START, scriptName.c_str()); + } + +- runtime.evaluateJavaScript(buffer, sourceURL); ++ runtime.evaluateJavaScript(script, sourceURL); + + /** + * TODO(T183610671): We need a safe/reliable way to enable the js +diff --git a/ReactCommon/react/runtime/ReactInstance.h b/ReactCommon/react/runtime/ReactInstance.h +index 3c92b268f38..d9e69dc6563 100644 +--- a/ReactCommon/react/runtime/ReactInstance.h ++++ b/ReactCommon/react/runtime/ReactInstance.h +@@ -48,7 +48,7 @@ class ReactInstance final : private jsinspector_modern::InstanceTargetDelegate { + BindingsInstallFunc bindingsInstallFunc) noexcept; + + void loadScript( +- std::unique_ptr script, ++ const std::shared_ptr& script, + const std::string& sourceURL, + std::function&& beforeLoad = nullptr, + std::function&& afterLoad = nullptr); +diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +index 12631915e88..47c6733c344 100644 +--- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm ++++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +@@ -115,6 +115,7 @@ @implementation RCTHost { + NSURL *_oldDelegateBundleURL; + NSURL *_bundleURL; + RCTBundleManager *_bundleManager; ++ RCTBundleProvider *_bundleProvider; + RCTHostBundleURLProvider _bundleURLProvider; + RCTHostJSEngineProvider _jsEngineProvider; + +@@ -165,6 +166,7 @@ - (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider + _turboModuleManagerDelegate = turboModuleManagerDelegate; + _bundleManager = [RCTBundleManager new]; + _moduleRegistry = [RCTModuleRegistry new]; ++ _bundleProvider = [RCTBundleProvider new]; + _jsEngineProvider = [jsEngineProvider copy]; + _launchOptions = [launchOptions copy]; + +@@ -243,6 +245,7 @@ - (void)start + _instance = [[RCTInstance alloc] initWithDelegate:self + jsRuntimeFactory:[self _provideJSEngine] + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + turboModuleManagerDelegate:_turboModuleManagerDelegate + moduleRegistry:_moduleRegistry + parentInspectorTarget:_inspectorTarget.get() +@@ -446,6 +449,7 @@ - (void)_reloadWithShouldRestartSurfaces:(BOOL)shouldRestartSurfaces + _instance = [[RCTInstance alloc] initWithDelegate:self + jsRuntimeFactory:[self _provideJSEngine] + bundleManager:_bundleManager ++ bundleProvider:_bundleProvider + turboModuleManagerDelegate:_turboModuleManagerDelegate + moduleRegistry:_moduleRegistry + parentInspectorTarget:_inspectorTarget.get() +diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +index 5d4ea87be9e..57bd143832e 100644 +--- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h ++++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +@@ -26,6 +26,7 @@ RCT_EXTERN NSString *RCTInstanceRuntimeDiagnosticFlags(void); + RCT_EXTERN void RCTInstanceSetRuntimeDiagnosticFlags(NSString *_Nullable flags); + + @class RCTBundleManager; ++@class RCTBundleProvider; + @class RCTInstance; + @class RCTJSThreadManager; + @class RCTModuleRegistry; +@@ -68,6 +69,7 @@ RCT_EXTERN void RCTInstanceSetRuntimeDiagnosticFlags(NSString *_Nullable flags); + - (instancetype)initWithDelegate:(id)delegate + jsRuntimeFactory:(std::shared_ptr)jsRuntimeFactory + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + turboModuleManagerDelegate:(id)turboModuleManagerDelegate + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + parentInspectorTarget:(facebook::react::jsinspector_modern::HostTarget *)parentInspectorTarget +diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +index f5e53529e42..d05f665f049 100644 +--- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm ++++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +@@ -11,6 +11,7 @@ + + #import + #import ++#import + #import + #import + #import +@@ -111,6 +112,7 @@ @implementation RCTInstance { + RCTPerformanceLogger *_performanceLogger; + RCTDisplayLink *_displayLink; + RCTTurboModuleManager *_turboModuleManager; ++ RCTBundleProvider *_bundleProvider; + std::mutex _invalidationMutex; + std::atomic _valid; + RCTJSThreadManager *_jsThreadManager; +@@ -128,6 +130,7 @@ @implementation RCTInstance { + - (instancetype)initWithDelegate:(id)delegate + jsRuntimeFactory:(std::shared_ptr)jsRuntimeFactory + bundleManager:(RCTBundleManager *)bundleManager ++ bundleProvider:(RCTBundleProvider *)bundleProvider + turboModuleManagerDelegate:(id)tmmDelegate + moduleRegistry:(RCTModuleRegistry *)moduleRegistry + parentInspectorTarget:(jsinspector_modern::HostTarget *)parentInspectorTarget +@@ -142,9 +145,11 @@ - (instancetype)initWithDelegate:(id)delegate + _jsRuntimeFactory = jsRuntimeFactory; + _appTMMDelegate = tmmDelegate; + _jsThreadManager = [RCTJSThreadManager new]; ++ _bundleProvider = bundleProvider; + _bridgeModuleDecorator = [[RCTBridgeModuleDecorator alloc] initWithViewRegistry:[RCTViewRegistry new] + moduleRegistry:moduleRegistry + bundleManager:bundleManager ++ bundleProvider:bundleProvider + callableJSModules:[RCTCallableJSModules new]]; + _parentInspectorTarget = parentInspectorTarget; + { +@@ -572,8 +577,12 @@ - (void)_loadScriptFromSource:(RCTSource *)source + } + + auto script = std::make_unique(source.data); ++ const auto scriptBuffer = std::make_shared(std::move(script)); + const auto *url = deriveSourceURL(source.url).UTF8String; + ++ [_bundleProvider setBundle:[[NSBigStringBuffer new] initWithSharedPtr:scriptBuffer]]; ++ [_bundleProvider setSourceURL:@(url)]; ++ + auto beforeLoad = [waitUntilModuleSetupComplete = self->_waitUntilModuleSetupComplete](jsi::Runtime &_) { + if (waitUntilModuleSetupComplete) { + waitUntilModuleSetupComplete(); +@@ -582,7 +591,8 @@ - (void)_loadScriptFromSource:(RCTSource *)source + auto afterLoad = [](jsi::Runtime &_) { + [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTInstanceDidLoadBundle" object:nil]; + }; +- _reactInstance->loadScript(std::move(script), url, beforeLoad, afterLoad); ++ ++ _reactInstance->loadScript(scriptBuffer, url, beforeLoad, afterLoad); + } + + - (void)_handleJSError:(const JsErrorHandler::ProcessedError &)error withRuntime:(jsi::Runtime &)runtime diff --git a/apps/common-app/package.json b/apps/common-app/package.json index e81e28a9015f..c45c337ae5c4 100644 --- a/apps/common-app/package.json +++ b/apps/common-app/package.json @@ -71,7 +71,7 @@ "madge": "^5.0.1", "patch-package": "^8.0.0", "prettier": "^3.3.3", - "react-native": "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch", + "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", "react-native-monorepo-tools": "^1.2.1", "react-test-renderer": "19.1.1", "typescript": "5.8.3", diff --git a/apps/fabric-example/android/gradle.properties b/apps/fabric-example/android/gradle.properties index d183897bec8e..7fdf50386b4a 100644 --- a/apps/fabric-example/android/gradle.properties +++ b/apps/fabric-example/android/gradle.properties @@ -49,7 +49,7 @@ isReanimatedExampleApp=true enableReanimatedProfiling=true # Uncomment the next line to enable bundle mode. -# workletsBundleMode=true +workletsBundleMode=true # https://docs.gradle.org/current/userguide/configuration_cache.html org.gradle.configuration-cache=true diff --git a/apps/fabric-example/android/settings.gradle b/apps/fabric-example/android/settings.gradle index afaf8c45a5f0..c3c54348786a 100644 --- a/apps/fabric-example/android/settings.gradle +++ b/apps/fabric-example/android/settings.gradle @@ -7,11 +7,11 @@ includeBuild('../../../node_modules/@react-native/gradle-plugin') // Build from source (https://reactnative.dev/contributing/how-to-build-from-source) // NOTE: Please do not remove these lines even though they are commented out. -// includeBuild('../../../node_modules/react-native') { -// dependencySubstitution { -// substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid")) -// substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid")) -// substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) -// substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) -// } -// } +includeBuild('../../../node_modules/react-native') { + dependencySubstitution { + substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid")) + substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid")) + substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) + substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) + } +} diff --git a/apps/fabric-example/babel.config.js b/apps/fabric-example/babel.config.js index 259ed1ad84b1..ebdbea9d22c9 100644 --- a/apps/fabric-example/babel.config.js +++ b/apps/fabric-example/babel.config.js @@ -6,7 +6,7 @@ module.exports = { 'react-native-worklets/plugin', { // Uncomment the next line to enable bundle mode. - // bundleMode: true, + bundleMode: true, }, ], [ diff --git a/apps/fabric-example/ios/Podfile b/apps/fabric-example/ios/Podfile index 3f8fe4a6e278..e208389ca3e6 100644 --- a/apps/fabric-example/ios/Podfile +++ b/apps/fabric-example/ios/Podfile @@ -10,7 +10,7 @@ require_relative '../../../packages/react-native-reanimated/scripts/clangd-add-x ENV['IS_REANIMATED_EXAMPLE_APP'] = '1' # Uncomment the next line to enable bundle mode. -# ENV['WORKLETS_BUNDLE_MODE'] = '1' +ENV['WORKLETS_BUNDLE_MODE'] = '1' platform :ios, min_ios_version_supported prepare_react_native_project! diff --git a/apps/fabric-example/metro.config.js b/apps/fabric-example/metro.config.js index cb4f1c4adceb..b05b824d9cc2 100644 --- a/apps/fabric-example/metro.config.js +++ b/apps/fabric-example/metro.config.js @@ -34,7 +34,7 @@ let config = { config = mergeConfig(getDefaultConfig(__dirname), config); // Uncomment the following to enable bundle mode. -// config = mergeConfig(config, bundleModeMetroConfig); +config = mergeConfig(config, bundleModeMetroConfig); module.exports = wrapWithReanimatedMetroConfig( mergeConfig(getDefaultConfig(__dirname), config) diff --git a/apps/fabric-example/package.json b/apps/fabric-example/package.json index b8095d694e9b..0ecda6e03682 100644 --- a/apps/fabric-example/package.json +++ b/apps/fabric-example/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "common-app": "workspace:*", - "react-native": "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch" + "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" }, "devDependencies": { "prettier": "^3.3.3" diff --git a/apps/macos-example/package.json b/apps/macos-example/package.json index e34064e2bb8e..b15f96d57c3a 100644 --- a/apps/macos-example/package.json +++ b/apps/macos-example/package.json @@ -11,7 +11,7 @@ "dependencies": { "common-app": "workspace:*", "react": "18.3.1", - "react-native": "patch:react-native@npm%3A0.80.0#~/.yarn/patches/react-native-npm-0.80.0-dababd395b.patch", + "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", "react-native-macos": "^0.75.13", "react-native-reanimated": "workspace:*" }, diff --git a/apps/tvos-example/package.json b/apps/tvos-example/package.json index 4a6905969c23..a0baa63e4e65 100644 --- a/apps/tvos-example/package.json +++ b/apps/tvos-example/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "react": "19.1.0", - "react-native": "npm:react-native-tvos@0.81.1-1", + "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", "react-native-reanimated": "workspace:*", "react-native-worklets": "workspace:*" }, diff --git a/apps/web-example/package.json b/apps/web-example/package.json index 1accb8b5d713..77195b72dc31 100644 --- a/apps/web-example/package.json +++ b/apps/web-example/package.json @@ -14,7 +14,7 @@ "common-app": "workspace:*", "expo": "^54.0.0-preview.13", "react-dom": "19.1.1", - "react-native": "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch", + "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", "react-native-web": "~0.21.1" }, "devDependencies": { diff --git a/packages/react-native-reanimated/package.json b/packages/react-native-reanimated/package.json index 85c44df8d7da..99c0c992b94d 100644 --- a/packages/react-native-reanimated/package.json +++ b/packages/react-native-reanimated/package.json @@ -147,7 +147,7 @@ "madge": "^5.0.1", "prettier": "^3.3.3", "react": "19.1.1", - "react-native": "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch", + "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", "react-native-builder-bob": "0.40.13", "react-native-gesture-handler": "2.28.0", "react-native-svg": "15.12.1", diff --git a/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java b/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java index bd0696b1de70..ebaad8e622e4 100644 --- a/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java +++ b/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java @@ -3,7 +3,6 @@ import androidx.annotation.OptIn; import com.facebook.jni.HybridData; import com.facebook.proguard.annotations.DoNotStrip; -import com.facebook.react.bridge.BundleConsumer; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactMethod; @@ -21,7 +20,7 @@ @SuppressWarnings("JavaJniMissingFunction") @ReactModule(name = WorkletsModule.NAME) public class WorkletsModule extends NativeWorkletsModuleSpec - implements LifecycleEventListener, BundleConsumer { + implements LifecycleEventListener { static { SoLoader.loadLibrary("worklets"); } @@ -42,16 +41,6 @@ protected HybridData getHybridData() { private BigStringBufferWrapper mScriptWrapper = null; private String mSourceURL = null; - @Override - public void setScriptWrapper(BigStringBufferWrapper scriptWrapper) { - mScriptWrapper = scriptWrapper; - } - - @Override - public void setSourceURL(String sourceURL) { - mSourceURL = sourceURL; - } - /** * Invalidating concurrently could be fatal. It shouldn't happen in a normal flow, but it doesn't * cost us much to add synchronization for extra safety. @@ -90,6 +79,9 @@ public boolean installTurboModule() { var jsContext = Objects.requireNonNull(context.getJavaScriptContextHolder()).get(); var jsCallInvokerHolder = JSCallInvokerResolver.getJSCallInvokerHolder(context); + mSourceURL = context.getSourceURL(); + mScriptWrapper = context.getBundle(); + mHybridData = initHybrid( jsContext, diff --git a/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm b/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm index 69b49a853884..bc3adfbf07c9 100644 --- a/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm +++ b/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm @@ -12,6 +12,11 @@ #import #import +#if __has_include() +// Bundle mode +#import +#endif // __has_include() + using worklets::RNRuntimeWorkletDecorator; using worklets::WorkletsModuleProxy; @@ -33,11 +38,10 @@ @implementation WorkletsModule { return workletsModuleProxy_; } -#if __has_include() +#if __has_include() // Bundle mode -@synthesize scriptBuffer = scriptBuffer_; -@synthesize sourceURL = sourceURL_; -#endif // __has_include() +@synthesize bundleProvider = bundleProvider_; +#endif // __has_include() - (void)checkBridgeless { @@ -66,8 +70,8 @@ - (void)checkBridgeless std::string sourceURL = ""; std::shared_ptr script = nullptr; #ifdef WORKLETS_BUNDLE_MODE - script = [scriptBuffer_ getBuffer]; - sourceURL = [sourceURL_ UTF8String]; + script = [[bundleProvider_ getBundle] getBuffer]; + sourceURL = [[bundleProvider_ getSourceURL] UTF8String]; #endif // WORKLETS_BUNDLE_MODE auto jsCallInvoker = _callInvoker.callInvoker; diff --git a/packages/react-native-worklets/package.json b/packages/react-native-worklets/package.json index bacda2276ccd..1f909354d89d 100644 --- a/packages/react-native-worklets/package.json +++ b/packages/react-native-worklets/package.json @@ -83,7 +83,7 @@ "madge": "^5.0.1", "prettier": "^3.3.3", "react": "19.1.1", - "react-native": "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch", + "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", "react-native-builder-bob": "0.40.13", "typescript": "5.8.3" }, diff --git a/yarn.lock b/yarn.lock index c1b1be2d6a68..45a1c8830138 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5947,23 +5947,6 @@ __metadata: languageName: node linkType: hard -"@react-native-tvos/virtualized-lists@npm:0.81.1-1": - version: 0.81.1-1 - resolution: "@react-native-tvos/virtualized-lists@npm:0.81.1-1" - dependencies: - invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - peerDependencies: - "@types/react": ^19.1.0 - react: "*" - react-native: "*" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10/ead69272d63413836d00f0da654e6c76b2fc19c07435ec051fdbd131d93440461afda68c433d35aa6843d20ed05632c4c57d8fcccbbc2cf21b93ca65ed630da2 - languageName: node - linkType: hard - "@react-native/assets-registry@npm:0.75.4": version: 0.75.4 resolution: "@react-native/assets-registry@npm:0.75.4" @@ -5971,24 +5954,10 @@ __metadata: languageName: node linkType: hard -"@react-native/assets-registry@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/assets-registry@npm:0.80.0" - checksum: 10/13da4d9561db9267ca4577f4c19a35e6c992504fcd72f3431267b554b8e94891b7e59eeca06a2e8ebbe2b42d15c0ba3feffb1107f1095a329b0d0164a8b4cc93 - languageName: node - linkType: hard - -"@react-native/assets-registry@npm:0.81.1": - version: 0.81.1 - resolution: "@react-native/assets-registry@npm:0.81.1" - checksum: 10/eb9a69695f6354eb61b68a5ff056ee91f430ae435311f1e8aa72b2c40fdeecd0ad7c7f2334f9b7b6e60e645f6f900353405e4e95145e95fb02aadd13fe867a76 - languageName: node - linkType: hard - -"@react-native/assets-registry@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/assets-registry@npm:0.82.0-rc.0" - checksum: 10/a8a340696ba5d2dc2d3c20d0c704df0004c2b2df1b7e54de2555ef7789c84549373b5fa0e3f80ce91aabe08871f551f45a155bcaf9f222812d029fad3516c81a +"@react-native/assets-registry@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/assets-registry@npm:0.82.0-rc.4" + checksum: 10/9af9a0cba8b41d79664fa7a6dbe07b2a8cd65075bd097f09ae5724fff26ddab3bef0d55169ad96d94a9372ae774307404f7238293d2ab5dcf59fd4c2fb15c24c languageName: node linkType: hard @@ -6204,41 +6173,43 @@ __metadata: languageName: node linkType: hard -"@react-native/codegen@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/codegen@npm:0.80.0" +"@react-native/codegen@npm:0.81.1": + version: 0.81.1 + resolution: "@react-native/codegen@npm:0.81.1" dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/parser": "npm:^7.25.3" glob: "npm:^7.1.1" - hermes-parser: "npm:0.28.1" + hermes-parser: "npm:0.29.1" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10/149588d22ed880e80fa4e78b351216485ccfd87b6b86baf96fe7e13874ecb006bacceb009802272895fd42cdb064254e1b82489032b8d366f7f41ac3a1600d77 + checksum: 10/9097dbcf9025dd580c2fbf0c0162c63a0b748916fce6afb159a1f3ee4cfd77fda391b8b260396bf2a298d4de8a61b5e7fb2315a4b160997dcfee3c7d2d802d5e languageName: node linkType: hard -"@react-native/codegen@npm:0.81.1": - version: 0.81.1 - resolution: "@react-native/codegen@npm:0.81.1" +"@react-native/codegen@npm:0.82.0-rc.0": + version: 0.82.0-rc.0 + resolution: "@react-native/codegen@npm:0.82.0-rc.0" dependencies: "@babel/core": "npm:^7.25.2" "@babel/parser": "npm:^7.25.3" glob: "npm:^7.1.1" - hermes-parser: "npm:0.29.1" + hermes-parser: "npm:0.32.0" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10/9097dbcf9025dd580c2fbf0c0162c63a0b748916fce6afb159a1f3ee4cfd77fda391b8b260396bf2a298d4de8a61b5e7fb2315a4b160997dcfee3c7d2d802d5e + checksum: 10/0632031ee7e7af6f1a48a36b23b1bed5bb698a3897de31512e46cd06e72a68a6e9423751b58c0708521cec96fd13aef9051de7edb92e571cbbdcc43503ff5038 languageName: node linkType: hard -"@react-native/codegen@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/codegen@npm:0.82.0-rc.0" +"@react-native/codegen@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/codegen@npm:0.82.0-rc.4" dependencies: "@babel/core": "npm:^7.25.2" "@babel/parser": "npm:^7.25.3" @@ -6249,7 +6220,7 @@ __metadata: yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10/0632031ee7e7af6f1a48a36b23b1bed5bb698a3897de31512e46cd06e72a68a6e9423751b58c0708521cec96fd13aef9051de7edb92e571cbbdcc43503ff5038 + checksum: 10/c89fcec1d31fefa8f0c95c1395fc7cd8a4682b74b01c5f6e65ba2e81805ee3098f086a9d0bf98b738e4baa72e07c66b1f34009d3765c2762af67579252837a3a languageName: node linkType: hard @@ -6272,32 +6243,11 @@ __metadata: languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/community-cli-plugin@npm:0.80.0" +"@react-native/community-cli-plugin@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/community-cli-plugin@npm:0.82.0-rc.4" dependencies: - "@react-native/dev-middleware": "npm:0.80.0" - chalk: "npm:^4.0.0" - debug: "npm:^4.4.0" - invariant: "npm:^2.2.4" - metro: "npm:^0.82.2" - metro-config: "npm:^0.82.2" - metro-core: "npm:^0.82.2" - semver: "npm:^7.1.3" - peerDependencies: - "@react-native-community/cli": "*" - peerDependenciesMeta: - "@react-native-community/cli": - optional: true - checksum: 10/2391aa8f63555e3da68466f5eae2d1ac0ee749ef92dc2217c89d3133dad2268cea3f4b7be7dd7a0d64ba96e048c4c1b3fee7a1123fce8521a561f7ec5aac65fe - languageName: node - linkType: hard - -"@react-native/community-cli-plugin@npm:0.81.1": - version: 0.81.1 - resolution: "@react-native/community-cli-plugin@npm:0.81.1" - dependencies: - "@react-native/dev-middleware": "npm:0.81.1" + "@react-native/dev-middleware": "npm:0.82.0-rc.4" debug: "npm:^4.4.0" invariant: "npm:^2.2.4" metro: "npm:^0.83.1" @@ -6312,51 +6262,7 @@ __metadata: optional: true "@react-native/metro-config": optional: true - checksum: 10/d6dd960010f0cb2be94fbc48b7636af808c36732cc0533a70e69abf6a484ee40e735ca835b0d1ac97809ea9dd28f591c0abe2fb6c7b679a746eae3374a62ee8b - languageName: node - linkType: hard - -"@react-native/community-cli-plugin@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/community-cli-plugin@npm:0.82.0-rc.0" - dependencies: - "@react-native/dev-middleware": "npm:0.82.0-rc.0" - debug: "npm:^4.4.0" - invariant: "npm:^2.2.4" - metro: "npm:^0.83.1" - metro-config: "npm:^0.83.1" - metro-core: "npm:^0.83.1" - semver: "npm:^7.1.3" - peerDependencies: - "@react-native-community/cli": "*" - "@react-native/metro-config": "*" - peerDependenciesMeta: - "@react-native-community/cli": - optional: true - "@react-native/metro-config": - optional: true - checksum: 10/4140db11c0a0ee6d72dc41474d1efb74c3e1258be67b507ed089cc68ea397d8f6cd69075e487c76faa06488d85d33509e7b9f2b428dd18002ab2c843bce6af76 - languageName: node - linkType: hard - -"@react-native/community-cli-plugin@patch:@react-native/community-cli-plugin@npm%3A0.80.0#~/.yarn/patches/@react-native-community-cli-plugin-npm-0.80.0-4137b3f35c.patch": - version: 0.80.0 - resolution: "@react-native/community-cli-plugin@patch:@react-native/community-cli-plugin@npm%3A0.80.0#~/.yarn/patches/@react-native-community-cli-plugin-npm-0.80.0-4137b3f35c.patch::version=0.80.0&hash=4968e4" - dependencies: - "@react-native/dev-middleware": "npm:0.80.0" - chalk: "npm:^4.0.0" - debug: "npm:^4.4.0" - invariant: "npm:^2.2.4" - metro: "npm:^0.82.2" - metro-config: "npm:^0.82.2" - metro-core: "npm:^0.82.2" - semver: "npm:^7.1.3" - peerDependencies: - "@react-native-community/cli": "*" - peerDependenciesMeta: - "@react-native-community/cli": - optional: true - checksum: 10/ea085a27b6071475bd2dd5bbe550900d808ba1c9965b0d2acfa449b624833d56687e018196f45f3fce1f751e6520726584f2b5a623cebaf5ead4030cf99f7d92 + checksum: 10/7a83d445d1e77fa8518787fab6b58834767d0e8dd377e226455c0f9c74f67aa34c41cdf2dcfca4269d63b68edcc23596f68268315154958cec3f4f751c74e1ea languageName: node linkType: hard @@ -6367,13 +6273,6 @@ __metadata: languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/debugger-frontend@npm:0.80.0" - checksum: 10/cd53d067f5b5e579e2d74fef97fc7a6df15eeb0ff6e7a3c6b607a89be553dcc18bda6a1bec3867b398fc431ebeabe42bb281b13738c6e6fec02540d05c6dd9c9 - languageName: node - linkType: hard - "@react-native/debugger-frontend@npm:0.81.1": version: 0.81.1 resolution: "@react-native/debugger-frontend@npm:0.81.1" @@ -6381,20 +6280,20 @@ __metadata: languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/debugger-frontend@npm:0.82.0-rc.0" - checksum: 10/3630b2361b4fd71e0caec4653d03d844506ba7c34cd3d72db92c7784ca1c5b7049eb65f0f7c9683384d810754c99591e4a12956c48c7ea375ae4830c2ded75e6 +"@react-native/debugger-frontend@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/debugger-frontend@npm:0.82.0-rc.4" + checksum: 10/14840a1d400cf05b2ce0b91eba5bce8f2cdf997f085dcb4bcf688c97afbf76fd83793d5b2122fad26fcb3ea5ee02615fd0f594589107e0fe6a827304af63d136 languageName: node linkType: hard -"@react-native/debugger-shell@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/debugger-shell@npm:0.82.0-rc.0" +"@react-native/debugger-shell@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/debugger-shell@npm:0.82.0-rc.4" dependencies: cross-spawn: "npm:^7.0.6" fb-dotslash: "npm:0.5.8" - checksum: 10/263e8a064cf6d89b25280aa659268405bbb90b98b3ab550d0128e3df3ad0c3aa5ef4b81a76fba6c2bd71bc1044283ec94c8376381bf3219c298681f58d4e0ad5 + checksum: 10/6e7d68d65b03cf7606e35d98ae3e456070216c8ac21f918bfd91e08cf43910d23cb00abc817c45680c4f72d95711d85892235a2349440fe1f3d5f22f4a0f4851 languageName: node linkType: hard @@ -6418,25 +6317,6 @@ __metadata: languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/dev-middleware@npm:0.80.0" - dependencies: - "@isaacs/ttlcache": "npm:^1.4.1" - "@react-native/debugger-frontend": "npm:0.80.0" - chrome-launcher: "npm:^0.15.2" - chromium-edge-launcher: "npm:^0.2.0" - connect: "npm:^3.6.5" - debug: "npm:^4.4.0" - invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - open: "npm:^7.0.3" - serve-static: "npm:^1.16.2" - ws: "npm:^6.2.3" - checksum: 10/32b7bcb92ea48577d87efb9b9d8fab07991e7426436ebb42cad61553252647037d179729f5c12fda62cabbc6bb35687f7d0820152a4dad38bcb356e45082c8e1 - languageName: node - linkType: hard - "@react-native/dev-middleware@npm:0.81.1": version: 0.81.1 resolution: "@react-native/dev-middleware@npm:0.81.1" @@ -6456,13 +6336,13 @@ __metadata: languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/dev-middleware@npm:0.82.0-rc.0" +"@react-native/dev-middleware@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/dev-middleware@npm:0.82.0-rc.4" dependencies: "@isaacs/ttlcache": "npm:^1.4.1" - "@react-native/debugger-frontend": "npm:0.82.0-rc.0" - "@react-native/debugger-shell": "npm:0.82.0-rc.0" + "@react-native/debugger-frontend": "npm:0.82.0-rc.4" + "@react-native/debugger-shell": "npm:0.82.0-rc.4" chrome-launcher: "npm:^0.15.2" chromium-edge-launcher: "npm:^0.2.0" connect: "npm:^3.6.5" @@ -6472,7 +6352,7 @@ __metadata: open: "npm:^7.0.3" serve-static: "npm:^1.16.2" ws: "npm:^6.2.3" - checksum: 10/fb0b3265475cc140a6f2c64631599edc40df51d0dd88d620124dc0b134ede79af2083c604b854a5016134ae2a795388b4b8dd4aa9297ce3a1662857582c6ed63 + checksum: 10/2b6cdba7a694640aae948e41062ff5c75cfd80673378ea9094af100bdf6276b255fc6648fd9c9386e73336f4ad97525d30cc20e6ff4c6223032d65a82cc5e018 languageName: node linkType: hard @@ -6573,24 +6453,10 @@ __metadata: languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/gradle-plugin@npm:0.80.0" - checksum: 10/e2cfcb8c5a16f42ca5912dc731084a4a693682921c64653a95c58025c7c9666f169d7af6eb831e33e5362a586d1b2b4487dd7e17c7f9757c639d9d8d9167dbb0 - languageName: node - linkType: hard - -"@react-native/gradle-plugin@npm:0.81.1": - version: 0.81.1 - resolution: "@react-native/gradle-plugin@npm:0.81.1" - checksum: 10/9d75807431bd8671147eb5b2e894de3d1f8a6bd6b20f3478158fb10696e4505d8888934c909b5774aa48a1cfee2c1dcd0e4c6d0b3c88bfa69bba61466b314582 - languageName: node - linkType: hard - -"@react-native/gradle-plugin@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/gradle-plugin@npm:0.82.0-rc.0" - checksum: 10/ce7bb68b29b280d671f4d3fab2ca3069b9f563712e8706b8eb95be4119bdd7109b070a1025df9f916d20909165e8773658bd896ba1a8b509bb1a13158631b3fe +"@react-native/gradle-plugin@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/gradle-plugin@npm:0.82.0-rc.4" + checksum: 10/06b206928a79a961f8cc16f4ddd2c845e07381330757b86d9937a04a51cdf992fbb73674df1395ea2fac2b1ae44d6bc42e8c1dce7d61429f0fc960f153c77ce4 languageName: node linkType: hard @@ -6601,13 +6467,6 @@ __metadata: languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/js-polyfills@npm:0.80.0" - checksum: 10/a1db21e65ddb2b24d499ba60abb20446ba05b5a811389adf10d7a04dd11ffd7f352050c723359f7331ec877ab5b7be64f4b19c25a249ec56cbd3b3720df29748 - languageName: node - linkType: hard - "@react-native/js-polyfills@npm:0.81.1": version: 0.81.1 resolution: "@react-native/js-polyfills@npm:0.81.1" @@ -6622,6 +6481,13 @@ __metadata: languageName: node linkType: hard +"@react-native/js-polyfills@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/js-polyfills@npm:0.82.0-rc.4" + checksum: 10/f6de1f31a1b7aacc3cccd858050e6f0db2d910fd4cd9f9f1b4b16eed75fb4d74d8fec9a5430e7305a709d6556e57d1aade4e7651301c5442cc3119964904a5b7 + languageName: node + linkType: hard + "@react-native/metro-babel-transformer@npm:0.75.4": version: 0.75.4 resolution: "@react-native/metro-babel-transformer@npm:0.75.4" @@ -6714,13 +6580,6 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/normalize-colors@npm:0.80.0" - checksum: 10/ff44f237030434de81c8bed2ce823ae73351b658fd5a0565565aa80d796c30c5d5024d44bfaa005f3142e2dd3f02dead8baa2fa3f7578aee16540c22bd07d01e - languageName: node - linkType: hard - "@react-native/normalize-colors@npm:0.81.1": version: 0.81.1 resolution: "@react-native/normalize-colors@npm:0.81.1" @@ -6728,10 +6587,10 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/normalize-colors@npm:0.82.0-rc.0" - checksum: 10/8dc9dfe3fa205d688e9c70f35a7d892ed4657094645d2f9087bc116fb2c6024e8a1c5c571719389ef249e25b0f9ad02a253a3d619030fa6220e500b8cb91ce79 +"@react-native/normalize-colors@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/normalize-colors@npm:0.82.0-rc.4" + checksum: 10/c8dcb3a42cf417681224585d7a2cf90812a99fe1cd91a5e2b4e54d17d7fa731da4cb2cfb7f6c2c295165ac77e101a1daf914bccecae53d0847e9c532afc39d4a languageName: node linkType: hard @@ -6763,26 +6622,9 @@ __metadata: languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.80.0": - version: 0.80.0 - resolution: "@react-native/virtualized-lists@npm:0.80.0" - dependencies: - invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - peerDependencies: - "@types/react": ^19.0.0 - react: "*" - react-native: "*" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10/70d17f1226a4d0b650ced1ea1e412b4bd167ed4aea956f1d51f036de543129f65af9a926edab1204644181793e5c3b595db9893bb675cf3da92c4a084102874b - languageName: node - linkType: hard - -"@react-native/virtualized-lists@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "@react-native/virtualized-lists@npm:0.82.0-rc.0" +"@react-native/virtualized-lists@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "@react-native/virtualized-lists@npm:0.82.0-rc.4" dependencies: invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" @@ -6793,7 +6635,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 10/8e65b3c530992db48dbeb20c4468a5c9a18226a237337ba9bbeb10a930df17460ecefc625cacdc0dcfcca58b4dedbe998804cf8e23ef2e1d6b87fc61194d3b63 + checksum: 10/8ff3600fa0e1a5c7335761e7e9b8cd7ee71e553c1cbc4818c792fae3d1c6e92779db6c4fde062df0333ce27041ca479e9d04890917a326fac56a91d6f117d8f4 languageName: node linkType: hard @@ -9404,15 +9246,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:0.28.1, babel-plugin-syntax-hermes-parser@npm:^0.28.0": - version: 0.28.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" - dependencies: - hermes-parser: "npm:0.28.1" - checksum: 10/2cbc921e663463480ead9ccc8bb229a5196032367ba2b5ccb18a44faa3afa84b4dc493297749983b9a837a3d76b0b123664aecc06f9122618c3246f03e076a9d - languageName: node - linkType: hard - "babel-plugin-syntax-hermes-parser@npm:0.29.1": version: 0.29.1 resolution: "babel-plugin-syntax-hermes-parser@npm:0.29.1" @@ -9440,6 +9273,15 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-hermes-parser@npm:^0.28.0": + version: 0.28.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" + dependencies: + hermes-parser: "npm:0.28.1" + checksum: 10/2cbc921e663463480ead9ccc8bb229a5196032367ba2b5ccb18a44faa3afa84b4dc493297749983b9a837a3d76b0b123664aecc06f9122618c3246f03e076a9d + languageName: node + linkType: hard + "babel-plugin-transform-flow-enums@npm:^0.0.2": version: 0.0.2 resolution: "babel-plugin-transform-flow-enums@npm:0.0.2" @@ -10601,7 +10443,7 @@ __metadata: patch-package: "npm:^8.0.0" prettier: "npm:^3.3.3" react: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch" + react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" react-native-gesture-handler: "npm:2.28.0" react-native-monorepo-tools: "npm:^1.2.1" react-native-pager-view: "npm:7.0.0" @@ -13582,7 +13424,7 @@ __metadata: dependencies: common-app: "workspace:*" prettier: "npm:^3.3.3" - react-native: "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch" + react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" languageName: unknown linkType: soft @@ -14809,6 +14651,13 @@ __metadata: languageName: node linkType: hard +"hermes-compiler@npm:0.0.0": + version: 0.0.0 + resolution: "hermes-compiler@npm:0.0.0" + checksum: 10/8b6fc8a64c2fa18c9aa6ddb8831c92253b6a2f10adf7d5d8f361b574f07e91b64f0c44b1370665075c33c17dd71c02fd19422124a3d2aa1717c37006ab12a1f0 + languageName: node + linkType: hard + "hermes-estree@npm:0.22.0": version: 0.22.0 resolution: "hermes-estree@npm:0.22.0" @@ -17382,7 +17231,7 @@ __metadata: common-app: "workspace:*" prettier: "npm:^3.3.3" react: "npm:18.3.1" - react-native: "patch:react-native@npm%3A0.80.0#~/.yarn/patches/react-native-npm-0.80.0-dababd395b.patch" + react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" react-native-macos: "npm:^0.75.13" react-native-reanimated: "workspace:*" languageName: unknown @@ -17688,18 +17537,6 @@ __metadata: languageName: node linkType: hard -"metro-cache@npm:0.82.5": - version: 0.82.5 - resolution: "metro-cache@npm:0.82.5" - dependencies: - exponential-backoff: "npm:^3.1.1" - flow-enums-runtime: "npm:^0.0.6" - https-proxy-agent: "npm:^7.0.5" - metro-core: "npm:0.82.5" - checksum: 10/e90299ae6e411349e5283c57a69ec0d4dd8a4424c3a85078d72d740b425b3dfc77078601ab426e6fb35bcb985e835374846e89f9730f4db413424bd48d9df863 - languageName: node - linkType: hard - "metro-cache@npm:0.83.1": version: 0.83.1 resolution: "metro-cache@npm:0.83.1" @@ -17760,22 +17597,6 @@ __metadata: languageName: node linkType: hard -"metro-config@npm:^0.82.2": - version: 0.82.5 - resolution: "metro-config@npm:0.82.5" - dependencies: - connect: "npm:^3.6.5" - cosmiconfig: "npm:^5.0.5" - flow-enums-runtime: "npm:^0.0.6" - jest-validate: "npm:^29.7.0" - metro: "npm:0.82.5" - metro-cache: "npm:0.82.5" - metro-core: "npm:0.82.5" - metro-runtime: "npm:0.82.5" - checksum: 10/91e7860a6a3dfaf7287d5abe553fec1592699f92c756fae1218e0cad5a027396b16d4ba7edea75a9fac26c431f719858c9ae17ed737e54605969730c338eb07f - languageName: node - linkType: hard - "metro-core@npm:0.80.12, metro-core@npm:^0.80.3": version: 0.80.12 resolution: "metro-core@npm:0.80.12" @@ -17798,17 +17619,6 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.82.5, metro-core@npm:^0.82.2": - version: 0.82.5 - resolution: "metro-core@npm:0.82.5" - dependencies: - flow-enums-runtime: "npm:^0.0.6" - lodash.throttle: "npm:^4.1.1" - metro-resolver: "npm:0.82.5" - checksum: 10/e97282e0164042d1206fee7ac764eddb33f02abb238c139f0d5804a284a2c9e40683293913e29c900b95ee257f85cd18803a07ab3143481bdddc436e137bdf05 - languageName: node - linkType: hard - "metro-core@npm:0.83.1, metro-core@npm:^0.83.1": version: 0.83.1 resolution: "metro-core@npm:0.83.1" @@ -17940,15 +17750,6 @@ __metadata: languageName: node linkType: hard -"metro-resolver@npm:0.82.5": - version: 0.82.5 - resolution: "metro-resolver@npm:0.82.5" - dependencies: - flow-enums-runtime: "npm:^0.0.6" - checksum: 10/2ccabf3d9e1f931496b0cbc7075713b79cd6989f802607c845d2ce2fb0a1eeab8133d045fd92d8654ce7a943a276b2ab59e9e1039c9b6744a26d0107554d6f2f - languageName: node - linkType: hard - "metro-resolver@npm:0.83.1": version: 0.83.1 resolution: "metro-resolver@npm:0.83.1" @@ -18033,24 +17834,6 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.82.5, metro-source-map@npm:^0.82.2": - version: 0.82.5 - resolution: "metro-source-map@npm:0.82.5" - dependencies: - "@babel/traverse": "npm:^7.25.3" - "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" - "@babel/types": "npm:^7.25.2" - flow-enums-runtime: "npm:^0.0.6" - invariant: "npm:^2.2.4" - metro-symbolicate: "npm:0.82.5" - nullthrows: "npm:^1.1.1" - ob1: "npm:0.82.5" - source-map: "npm:^0.5.6" - vlq: "npm:^1.0.0" - checksum: 10/8731c6257afa7bf2b460d4059d7fea1498c91d982b09e536e6dda73e166c7155ceea2eb7709dbea6d1e10a59be746ec9a7b3e5000e5cc79fd38d30d833c181c6 - languageName: node - linkType: hard - "metro-source-map@npm:0.83.1, metro-source-map@npm:^0.83.1": version: 0.83.1 resolution: "metro-source-map@npm:0.83.1" @@ -18102,22 +17885,6 @@ __metadata: languageName: node linkType: hard -"metro-symbolicate@npm:0.82.5": - version: 0.82.5 - resolution: "metro-symbolicate@npm:0.82.5" - dependencies: - flow-enums-runtime: "npm:^0.0.6" - invariant: "npm:^2.2.4" - metro-source-map: "npm:0.82.5" - nullthrows: "npm:^1.1.1" - source-map: "npm:^0.5.6" - vlq: "npm:^1.0.0" - bin: - metro-symbolicate: src/index.js - checksum: 10/593e853b702f3ff2d3f9e6677fcfef832cf3373506a6116a9ec5e3d3f6ab46f83af34167cfd6d53a52cda2238a504b7bac63436dc8b59a6c5d3da54bce9140ad - languageName: node - linkType: hard - "metro-symbolicate@npm:0.83.1": version: 0.83.1 resolution: "metro-symbolicate@npm:0.83.1" @@ -19397,15 +19164,6 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.82.5": - version: 0.82.5 - resolution: "ob1@npm:0.82.5" - dependencies: - flow-enums-runtime: "npm:^0.0.6" - checksum: 10/3faa161e5b5307188b6bbbf7e21727b1e434b8f6c31c51386808b2efd5e7238cf85a7ce71416d9a3f073625afb5a2212f80ec267996dc88fe086944adbb525d9 - languageName: node - linkType: hard - "ob1@npm:0.83.1": version: 0.83.1 resolution: "ob1@npm:0.83.1" @@ -20615,7 +20373,7 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^6.1.1, react-devtools-core@npm:^6.1.5": +"react-devtools-core@npm:^6.1.5": version: 6.1.5 resolution: "react-devtools-core@npm:6.1.5" dependencies: @@ -20917,7 +20675,7 @@ __metadata: madge: "npm:^5.0.1" prettier: "npm:^3.3.3" react: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch" + react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" react-native-builder-bob: "npm:0.40.13" react-native-gesture-handler: "npm:2.28.0" react-native-is-edge-to-edge: "npm:^1.2.1" @@ -21040,7 +20798,7 @@ __metadata: madge: "npm:^5.0.1" prettier: "npm:^3.3.3" react: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch" + react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" react-native-builder-bob: "npm:0.40.13" semver: "npm:7.7.2" typescript: "npm:5.8.3" @@ -21051,69 +20809,18 @@ __metadata: languageName: unknown linkType: soft -"react-native@npm:0.80.0": - version: 0.80.0 - resolution: "react-native@npm:0.80.0" +"react-native@npm:0.82.0-rc.4": + version: 0.82.0-rc.4 + resolution: "react-native@npm:0.82.0-rc.4" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.80.0" - "@react-native/codegen": "npm:0.80.0" - "@react-native/community-cli-plugin": "npm:0.80.0" - "@react-native/gradle-plugin": "npm:0.80.0" - "@react-native/js-polyfills": "npm:0.80.0" - "@react-native/normalize-colors": "npm:0.80.0" - "@react-native/virtualized-lists": "npm:0.80.0" - abort-controller: "npm:^3.0.0" - anser: "npm:^1.4.9" - ansi-regex: "npm:^5.0.0" - babel-jest: "npm:^29.7.0" - babel-plugin-syntax-hermes-parser: "npm:0.28.1" - base64-js: "npm:^1.5.1" - chalk: "npm:^4.0.0" - commander: "npm:^12.0.0" - flow-enums-runtime: "npm:^0.0.6" - glob: "npm:^7.1.1" - invariant: "npm:^2.2.4" - jest-environment-node: "npm:^29.7.0" - memoize-one: "npm:^5.0.0" - metro-runtime: "npm:^0.82.2" - metro-source-map: "npm:^0.82.2" - nullthrows: "npm:^1.1.1" - pretty-format: "npm:^29.7.0" - promise: "npm:^8.3.0" - react-devtools-core: "npm:^6.1.1" - react-refresh: "npm:^0.14.0" - regenerator-runtime: "npm:^0.13.2" - scheduler: "npm:0.26.0" - semver: "npm:^7.1.3" - stacktrace-parser: "npm:^0.1.10" - whatwg-fetch: "npm:^3.0.0" - ws: "npm:^6.2.3" - yargs: "npm:^17.6.2" - peerDependencies: - "@types/react": ^19.1.0 - react: ^19.1.0 - peerDependenciesMeta: - "@types/react": - optional: true - bin: - react-native: cli.js - checksum: 10/3843c65358005aa2bb6d5b1b2a6a2d3ba011fb5f62428e19912418e0ce650e5a6bd51104690fe4df4e65a929b19589ff18929258c811b8d8c25c253c7b300141 - languageName: node - linkType: hard - -"react-native@npm:0.82.0-rc.0": - version: 0.82.0-rc.0 - resolution: "react-native@npm:0.82.0-rc.0" - dependencies: - "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.82.0-rc.0" - "@react-native/codegen": "npm:0.82.0-rc.0" - "@react-native/community-cli-plugin": "npm:0.82.0-rc.0" - "@react-native/gradle-plugin": "npm:0.82.0-rc.0" - "@react-native/js-polyfills": "npm:0.82.0-rc.0" - "@react-native/normalize-colors": "npm:0.82.0-rc.0" - "@react-native/virtualized-lists": "npm:0.82.0-rc.0" + "@react-native/assets-registry": "npm:0.82.0-rc.4" + "@react-native/codegen": "npm:0.82.0-rc.4" + "@react-native/community-cli-plugin": "npm:0.82.0-rc.4" + "@react-native/gradle-plugin": "npm:0.82.0-rc.4" + "@react-native/js-polyfills": "npm:0.82.0-rc.4" + "@react-native/normalize-colors": "npm:0.82.0-rc.4" + "@react-native/virtualized-lists": "npm:0.82.0-rc.4" abort-controller: "npm:^3.0.0" anser: "npm:^1.4.9" ansi-regex: "npm:^5.0.0" @@ -21123,6 +20830,7 @@ __metadata: commander: "npm:^12.0.0" flow-enums-runtime: "npm:^0.0.6" glob: "npm:^7.1.1" + hermes-compiler: "npm:0.0.0" invariant: "npm:^2.2.4" jest-environment-node: "npm:^29.7.0" memoize-one: "npm:^5.0.0" @@ -21148,123 +20856,22 @@ __metadata: optional: true bin: react-native: cli.js - checksum: 10/e6ba4ed4241043eb4044410442f00094f640b64bdb21a81ffbd763fb2c1292a7f4989808c4dfe1bfe76b9dcfe2534364aa37eea137e0669299765dcb9a054683 - languageName: node - linkType: hard - -"react-native@npm:react-native-tvos@0.81.1-1": - version: 0.81.1-1 - resolution: "react-native-tvos@npm:0.81.1-1" - dependencies: - "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native-tvos/virtualized-lists": "npm:0.81.1-1" - "@react-native/assets-registry": "npm:0.81.1" - "@react-native/codegen": "npm:0.81.1" - "@react-native/community-cli-plugin": "npm:0.81.1" - "@react-native/gradle-plugin": "npm:0.81.1" - "@react-native/js-polyfills": "npm:0.81.1" - "@react-native/normalize-colors": "npm:0.81.1" - abort-controller: "npm:^3.0.0" - anser: "npm:^1.4.9" - ansi-regex: "npm:^5.0.0" - babel-jest: "npm:^29.7.0" - babel-plugin-syntax-hermes-parser: "npm:0.29.1" - base64-js: "npm:^1.5.1" - commander: "npm:^12.0.0" - flow-enums-runtime: "npm:^0.0.6" - glob: "npm:^7.1.1" - invariant: "npm:^2.2.4" - jest-environment-node: "npm:^29.7.0" - memoize-one: "npm:^5.0.0" - metro-runtime: "npm:^0.83.1" - metro-source-map: "npm:^0.83.1" - nullthrows: "npm:^1.1.1" - pretty-format: "npm:^29.7.0" - promise: "npm:^8.3.0" - react-devtools-core: "npm:^6.1.5" - react-refresh: "npm:^0.14.0" - regenerator-runtime: "npm:^0.13.2" - scheduler: "npm:0.26.0" - semver: "npm:^7.1.3" - stacktrace-parser: "npm:^0.1.10" - whatwg-fetch: "npm:^3.0.0" - ws: "npm:^6.2.3" - yargs: "npm:^17.6.2" - peerDependencies: - "@types/react": ^19.1.0 - react: ^19.1.0 - peerDependenciesMeta: - "@types/react": - optional: true - bin: - react-native: cli.js - checksum: 10/b4f8515c3c90fc2a02465f8a31791a099fcf763d6b5d45c8e70eaa88a707c8835d96f5d09559bf3f27fa828ee4c82923ac717bad58c2cc6a71cbe15994ea388f + checksum: 10/9de6d818c3cc2bd1eba01590b45de7337c62c666fd5a075c4c2b1a5b9e3be2aac2f1bd9cbbb12baa01db04f29c8da7802e31805d1b9e5ea1d19fa027a4e945e9 languageName: node linkType: hard -"react-native@patch:react-native@npm%3A0.80.0#~/.yarn/patches/react-native-npm-0.80.0-dababd395b.patch": - version: 0.80.0 - resolution: "react-native@patch:react-native@npm%3A0.80.0#~/.yarn/patches/react-native-npm-0.80.0-dababd395b.patch::version=0.80.0&hash=79b219" +"react-native@patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch": + version: 0.82.0-rc.4 + resolution: "react-native@patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch::version=0.82.0-rc.4&hash=7425c0" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.80.0" - "@react-native/codegen": "npm:0.80.0" - "@react-native/community-cli-plugin": "npm:0.80.0" - "@react-native/gradle-plugin": "npm:0.80.0" - "@react-native/js-polyfills": "npm:0.80.0" - "@react-native/normalize-colors": "npm:0.80.0" - "@react-native/virtualized-lists": "npm:0.80.0" - abort-controller: "npm:^3.0.0" - anser: "npm:^1.4.9" - ansi-regex: "npm:^5.0.0" - babel-jest: "npm:^29.7.0" - babel-plugin-syntax-hermes-parser: "npm:0.28.1" - base64-js: "npm:^1.5.1" - chalk: "npm:^4.0.0" - commander: "npm:^12.0.0" - flow-enums-runtime: "npm:^0.0.6" - glob: "npm:^7.1.1" - invariant: "npm:^2.2.4" - jest-environment-node: "npm:^29.7.0" - memoize-one: "npm:^5.0.0" - metro-runtime: "npm:^0.82.2" - metro-source-map: "npm:^0.82.2" - nullthrows: "npm:^1.1.1" - pretty-format: "npm:^29.7.0" - promise: "npm:^8.3.0" - react-devtools-core: "npm:^6.1.1" - react-refresh: "npm:^0.14.0" - regenerator-runtime: "npm:^0.13.2" - scheduler: "npm:0.26.0" - semver: "npm:^7.1.3" - stacktrace-parser: "npm:^0.1.10" - whatwg-fetch: "npm:^3.0.0" - ws: "npm:^6.2.3" - yargs: "npm:^17.6.2" - peerDependencies: - "@types/react": ^19.1.0 - react: ^19.1.0 - peerDependenciesMeta: - "@types/react": - optional: true - bin: - react-native: cli.js - checksum: 10/529c6163f731eadb24bc73ed5b8430736ae06f348dfe39f9f90baa7caf96fba732a861fc5197c3374345a3181e63b1f2d69c6ef0e938c564ceed6b85c916ddb7 - languageName: node - linkType: hard - -"react-native@patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch": - version: 0.82.0-rc.0 - resolution: "react-native@patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch::version=0.82.0-rc.0&hash=583bec" - dependencies: - "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.82.0-rc.0" - "@react-native/codegen": "npm:0.82.0-rc.0" - "@react-native/community-cli-plugin": "npm:0.82.0-rc.0" - "@react-native/gradle-plugin": "npm:0.82.0-rc.0" - "@react-native/js-polyfills": "npm:0.82.0-rc.0" - "@react-native/normalize-colors": "npm:0.82.0-rc.0" - "@react-native/virtualized-lists": "npm:0.82.0-rc.0" + "@react-native/assets-registry": "npm:0.82.0-rc.4" + "@react-native/codegen": "npm:0.82.0-rc.4" + "@react-native/community-cli-plugin": "npm:0.82.0-rc.4" + "@react-native/gradle-plugin": "npm:0.82.0-rc.4" + "@react-native/js-polyfills": "npm:0.82.0-rc.4" + "@react-native/normalize-colors": "npm:0.82.0-rc.4" + "@react-native/virtualized-lists": "npm:0.82.0-rc.4" abort-controller: "npm:^3.0.0" anser: "npm:^1.4.9" ansi-regex: "npm:^5.0.0" @@ -21274,6 +20881,7 @@ __metadata: commander: "npm:^12.0.0" flow-enums-runtime: "npm:^0.0.6" glob: "npm:^7.1.1" + hermes-compiler: "npm:0.0.0" invariant: "npm:^2.2.4" jest-environment-node: "npm:^29.7.0" memoize-one: "npm:^5.0.0" @@ -21299,7 +20907,7 @@ __metadata: optional: true bin: react-native: cli.js - checksum: 10/b93963023062ecb7895d3ef3015bcb4f26621a4df23696b96ceed442d763cf8d3a1cb98116b67172da4de668c9e3a56b4a20ffd73cae379b887ef894ef6e852b + checksum: 10/fcf080abced656fa3bc7c0b4c352074ab6dd158c3182c0d19b758f33eb039751dde6322b46024a5a8ceb32112bffe8eb3afa31f0a17c301ceed25d2b0d1a8c8f languageName: node linkType: hard @@ -23817,7 +23425,7 @@ __metadata: jest: "npm:^29.6.3" prettier: "npm:^3.3.3" react: "npm:19.1.0" - react-native: "npm:react-native-tvos@0.81.1-1" + react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" react-native-reanimated: "workspace:*" react-native-worklets: "workspace:*" react-test-renderer: "npm:19.1.0" @@ -24656,7 +24264,7 @@ __metadata: expo: "npm:^54.0.0-preview.13" prettier: "npm:^3.3.3" react-dom: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch" + react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" react-native-web: "npm:~0.21.1" serve: "npm:^14.2.3" languageName: unknown From 2aef8c039c4f57e8dd8bc7ba128eea5a8344fb6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Thu, 25 Sep 2025 16:18:38 +0200 Subject: [PATCH 2/7] chore: updates --- ...ct-native-npm-0.82.0-rc.4-228ad0ffa7.patch | 339 +++++----- apps/fabric-example/android/gradle.properties | 2 +- apps/fabric-example/android/settings.gradle | 16 +- apps/fabric-example/babel.config.js | 2 +- apps/fabric-example/ios/Podfile | 2 +- apps/fabric-example/ios/Podfile.lock | 607 +++++++++--------- apps/fabric-example/metro.config.js | 2 +- .../swmansion/worklets/WorkletsModule.java | 10 +- .../cpp/worklets/android/WorkletsModule.cpp | 5 +- .../cpp/worklets/android/WorkletsModule.h | 7 +- .../apple/worklets/apple/WorkletsModule.mm | 8 +- yarn.lock | 4 +- 12 files changed, 488 insertions(+), 516 deletions(-) diff --git a/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch b/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch index f7991e2a295e..5786993e420f 100644 --- a/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch +++ b/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch @@ -1,15 +1,15 @@ diff --git a/React/Base/RCTBridgeModule.h b/React/Base/RCTBridgeModule.h -index 1fb3e3e0e7e..be3e25f6a3a 100644 +index 1fb3e3e0e7e..ec6ecf70d70 100644 --- a/React/Base/RCTBridgeModule.h +++ b/React/Base/RCTBridgeModule.h -@@ -14,6 +14,7 @@ - #import - - #import "RCTBundleManager.h" -+#import "RCTBundleProvider.h" +@@ -22,6 +22,7 @@ + @class RCTModuleRegistry; + @class RCTViewRegistry; + @class RCTCallableJSModules; ++@class RCTBundleProvider; - @class RCTBridge; - @protocol RCTBridgeMethod; + /** + * The type of a block that is capable of sending a response to a bridged @@ -130,6 +131,16 @@ RCT_EXTERN_C_END */ @property (nonatomic, weak, readwrite) RCTBundleManager *bundleManager; @@ -84,10 +84,10 @@ index 7f8e15417bc..397df7e4178 100644 * to call JS Module methods. diff --git a/React/Base/RCTBundleProvider.h b/React/Base/RCTBundleProvider.h new file mode 100644 -index 00000000000..017bfdfbd07 +index 00000000000..451f7c4adfc --- /dev/null +++ b/React/Base/RCTBundleProvider.h -@@ -0,0 +1,22 @@ +@@ -0,0 +1,25 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -96,26 +96,29 @@ index 00000000000..017bfdfbd07 + */ + +#import ++#ifdef __cplusplus ++#import ++#endif // __cplusplus + -+@class NSBigStringBuffer; ++@class NSBundleWrapper; + +/** + * Provides the interface needed to register a Bundle Provider module. + */ +@interface RCTBundleProvider : NSObject + -+- (NSBigStringBuffer *)getBundle; -+- (void)setBundle:(NSBigStringBuffer *)bundle; ++# ifdef __cplusplus ++- (std::shared_ptr)getBundle; ++# endif // __cplusplus +- (NSString *)getSourceURL; -+- (void)setSourceURL:(NSString *)sourceURL; + +@end diff --git a/React/Base/RCTBundleProvider.mm b/React/Base/RCTBundleProvider.mm new file mode 100644 -index 00000000000..3d00e0d3d49 +index 00000000000..6e59a2a9a30 --- /dev/null +++ b/React/Base/RCTBundleProvider.mm -@@ -0,0 +1,30 @@ +@@ -0,0 +1,32 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -125,17 +128,19 @@ index 00000000000..3d00e0d3d49 + +#import "RCTBundleProvider.h" + ++using namespace facebook::react; ++ +@implementation RCTBundleProvider{ -+ NSBigStringBuffer *_scriptBuffer; ++ std::shared_ptr _bundleBuffer; + NSString *_sourceURL; +} + -+- (NSBigStringBuffer *)getBundle { -+ return _scriptBuffer; ++- (std::shared_ptr)getBundle { ++ return _bundleBuffer; +} + -+- (void)setBundle:(NSBigStringBuffer *)bundle { -+ _scriptBuffer = bundle; ++- (void)setBundle:(std::shared_ptr)bundle { ++ _bundleBuffer = bundle; +} + +- (NSString *)getSourceURL { @@ -210,65 +215,6 @@ index 225f6b3c16e..68dd317537b 100644 callableJSModules:_callableJSModules]; [moduleDecorator attachInteropAPIsToModule:_instance]; -diff --git a/React/CxxBridge/NSBigStringBuffer.h b/React/CxxBridge/NSBigStringBuffer.h -new file mode 100644 -index 00000000000..5fa8aebb618 ---- /dev/null -+++ b/React/CxxBridge/NSBigStringBuffer.h -@@ -0,0 +1,24 @@ -+/* -+ * Copyright (c) Meta Platforms, Inc. and affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ */ -+ -+#import -+#import -+#import -+ -+using namespace facebook; -+using namespace facebook::react; -+ -+@interface NSBigStringBuffer : NSObject -+ -+{ -+ std::shared_ptr _buffer; -+} -+ -+- (instancetype)initWithSharedPtr:(const std::shared_ptr &)buffer; -+- (const std::shared_ptr &)getBuffer; -+ -+@end -diff --git a/React/CxxBridge/NSBigStringBuffer.mm b/React/CxxBridge/NSBigStringBuffer.mm -new file mode 100644 -index 00000000000..20ec1a93bc7 ---- /dev/null -+++ b/React/CxxBridge/NSBigStringBuffer.mm -@@ -0,0 +1,23 @@ -+/* -+ * Copyright (c) Meta Platforms, Inc. and affiliates. -+ * -+ * This source code is licensed under the MIT license found in the -+ * LICENSE file in the root directory of this source tree. -+ */ -+ -+#import "NSBigStringBuffer.h" -+ -+@implementation NSBigStringBuffer -+ -+- (instancetype)initWithSharedPtr:(const std::shared_ptr&)buffer { -+ if (self = [super init]) { -+ _buffer = buffer; -+ } -+ return self; -+} -+ -+- (const std::shared_ptr&)getBuffer { -+ return _buffer; -+} -+ -+@end diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm index 9ea645d4752..25343e36ad2 100644 --- a/React/CxxBridge/RCTCxxBridge.mm @@ -306,14 +252,14 @@ index 9ea645d4752..25343e36ad2 100644 BridgeNativeModulePerfLogger::moduleDataCreateEnd([moduleName UTF8String], moduleDataId); diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java -index 1ccb8abad43..e6a3b28bc13 100644 +index 1ccb8abad43..5e50bb62af1 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java @@ -25,6 +25,7 @@ import com.facebook.react.common.annotations.VisibleForTesting; import com.facebook.react.common.annotations.internal.LegacyArchitecture; import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel; import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger; -+import com.facebook.react.fabric.BigStringBufferWrapper; ++import com.facebook.react.fabric.BundleWrapper; import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; import java.util.Collection; import java.util.Objects; @@ -327,7 +273,7 @@ index 1ccb8abad43..e6a3b28bc13 100644 + * @return The JS bundle set when the bundle was loaded + */ + @Override -+ public @Nullable BigStringBufferWrapper getBundle() { ++ public @Nullable BundleWrapper getBundle() { + return mCatalystInstance == null ? null : mCatalystInstance.getBundle(); + } + @@ -335,14 +281,14 @@ index 1ccb8abad43..e6a3b28bc13 100644 * Get the sourceURL for the JS bundle from the CatalystInstance. This method is needed for * compatibility with bridgeless mode, which has no CatalystInstance. diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt -index 81ee574dd1d..9b41308c7ad 100644 +index 81ee574dd1d..024a18df9b9 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt @@ -12,6 +12,7 @@ package com.facebook.react.bridge import com.facebook.proguard.annotations.DoNotStrip import com.facebook.react.bridge.queue.ReactQueueConfiguration import com.facebook.react.common.annotations.internal.LegacyArchitecture -+import com.facebook.react.fabric.BigStringBufferWrapper ++import com.facebook.react.fabric.BundleWrapper import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder @@ -351,22 +297,22 @@ index 81ee574dd1d..9b41308c7ad 100644 public val sourceURL: String? + /** -+ * Get the JS bundle. ++ * Get the JS bundle that was run or `null` if no JS bundle has been run yet. + */ -+ public val bundle: BigStringBufferWrapper? ++ public val bundle: BundleWrapper? + // This is called from java code, so it won't be stripped anyway, but proguard will rename it, // which this prevents. @DoNotStrip public override fun invokeCallback(callbackID: Int, arguments: NativeArrayInterface) diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java -index fd6af7089cc..6e30689524a 100644 +index fd6af7089cc..8c08fc60a3c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java @@ -29,6 +29,7 @@ import com.facebook.react.common.annotations.VisibleForTesting; import com.facebook.react.common.annotations.internal.LegacyArchitecture; import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel; import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger; -+import com.facebook.react.fabric.BigStringBufferWrapper; ++import com.facebook.react.fabric.BundleWrapper; import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags; import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry; import com.facebook.react.module.annotations.ReactModule; @@ -374,7 +320,7 @@ index fd6af7089cc..6e30689524a 100644 private boolean mJSBundleHasLoaded; private @Nullable String mSourceURL; -+ private @Nullable BigStringBufferWrapper mBundle; ++ private @Nullable BundleWrapper mBundle; private JavaScriptContextHolder mJavaScriptContextHolder; private @Nullable TurboModuleRegistry mTurboModuleRegistry; @@ -383,7 +329,7 @@ index fd6af7089cc..6e30689524a 100644 } + @Override -+ public @Nullable BigStringBufferWrapper getBundle() { ++ public @Nullable BundleWrapper getBundle() { + return mBundle; + } + @@ -391,14 +337,14 @@ index fd6af7089cc..6e30689524a 100644 public @Nullable String getSourceURL() { return mSourceURL; diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java -index 7a0655081a8..891c386052b 100644 +index 7a0655081a8..c49dffd0dca 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -26,6 +26,7 @@ import com.facebook.react.bridge.queue.MessageQueueThread; import com.facebook.react.bridge.queue.ReactQueueConfiguration; import com.facebook.react.common.LifecycleState; import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; -+import com.facebook.react.fabric.BigStringBufferWrapper; ++import com.facebook.react.fabric.BundleWrapper; import java.lang.ref.WeakReference; import java.util.Collection; import java.util.concurrent.CopyOnWriteArraySet; @@ -407,21 +353,21 @@ index 7a0655081a8..891c386052b 100644 public abstract @Nullable UIManager getFabricUIManager(); + /** -+ * Get the BigStringBufferWrapper for the JS bundle. ++ * Get the BundleWrapper for the JS bundle. + * -+ * @return The BigStringBufferWrapper containing the JS bundle. ++ * @return The BundleWrapper containing the JS bundle. + */ -+ public abstract @Nullable BigStringBufferWrapper getBundle(); ++ public abstract @Nullable BundleWrapper getBundle(); + /** * Get the sourceURL for the JS bundle from the CatalystInstance. This method is needed for * compatibility with bridgeless mode, which has no CatalystInstance. -diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt b/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt +diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/BundleWrapper.kt b/ReactAndroid/src/main/java/com/facebook/react/fabric/BundleWrapper.kt new file mode 100644 -index 00000000000..1d41653271a +index 00000000000..1a686f66bc1 --- /dev/null -+++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/BigStringBufferWrapper.kt -@@ -0,0 +1,36 @@ ++++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/BundleWrapper.kt +@@ -0,0 +1,38 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -436,10 +382,12 @@ index 00000000000..1d41653271a +import com.facebook.jni.HybridData +import com.facebook.proguard.annotations.DoNotStripAny + -+/** TODO: Description */ ++/** ++ * A wrapper around a JavaScript bundle that is backed by a native C++ object. ++ */ +@SuppressLint("MissingNativeLoadLibrary") +@DoNotStripAny -+public class BigStringBufferWrapper { ++public class BundleWrapper { + + private val mHybridData: HybridData + @@ -459,14 +407,14 @@ index 00000000000..1d41653271a + ): HybridData +} diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt -index d70ec496050..85804b41be0 100644 +index d70ec496050..8329317e6f5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -29,6 +29,7 @@ import com.facebook.react.common.annotations.VisibleForTesting import com.facebook.react.common.annotations.internal.LegacyArchitecture import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger -+import com.facebook.react.fabric.BigStringBufferWrapper ++import com.facebook.react.fabric.BundleWrapper import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder @@ -474,21 +422,21 @@ index d70ec496050..85804b41be0 100644 throw UnsupportedOperationException("Unimplemented method 'extendNativeModules'") } -+ override val bundle: BigStringBufferWrapper? ++ override val bundle: BundleWrapper? + get() = throw UnsupportedOperationException("Unimplemented method 'getBundle'") + override val sourceURL: String get() = throw UnsupportedOperationException("Unimplemented method 'getSourceURL'") diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt -index 6e6921ee950..b644e0726cc 100644 +index 6e6921ee950..a44ffa6817c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt @@ -25,6 +25,7 @@ import com.facebook.react.common.annotations.FrameworkAPI import com.facebook.react.common.annotations.UnstableReactNativeAPI import com.facebook.react.common.build.ReactBuildConfig import com.facebook.react.devsupport.interfaces.DevSupportManager -+import com.facebook.react.fabric.BigStringBufferWrapper ++import com.facebook.react.fabric.BundleWrapper import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder @@ -496,7 +444,7 @@ index 6e6921ee950..b644e0726cc 100644 */ internal class BridgelessReactContext(context: Context, private val reactHost: ReactHostImpl) : ReactApplicationContext(context), EventDispatcherProvider { -+ private val bundleRef = AtomicReference() ++ private val bundleRef = AtomicReference() private val sourceURLRef = AtomicReference() private val TAG: String = this.javaClass.simpleName @@ -504,9 +452,9 @@ index 6e6921ee950..b644e0726cc 100644 override fun getEventDispatcher(): EventDispatcher = reactHost.eventDispatcher -+ override fun getBundle(): BigStringBufferWrapper? = bundleRef.get() ++ override fun getBundle(): BundleWrapper? = bundleRef.get() + -+ fun setBundle(bundle: BigStringBufferWrapper?) { ++ fun setBundle(bundle: BundleWrapper?) { + bundleRef.set(bundle) + } + @@ -514,14 +462,14 @@ index 6e6921ee950..b644e0726cc 100644 fun setSourceURL(sourceURL: String?) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt b/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt -index 96bb76b3b2a..92daa32a0a1 100644 +index 96bb76b3b2a..5228c58e535 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +++ b/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt @@ -43,6 +43,7 @@ import com.facebook.react.common.annotations.UnstableReactNativeAPI import com.facebook.react.devsupport.InspectorFlags.getIsProfilingBuild import com.facebook.react.devsupport.StackTraceHelper import com.facebook.react.devsupport.interfaces.DevSupportManager -+import com.facebook.react.fabric.BigStringBufferWrapper ++import com.facebook.react.fabric.BundleWrapper import com.facebook.react.fabric.ComponentFactory import com.facebook.react.fabric.FabricUIManager import com.facebook.react.fabric.FabricUIManagerBinding @@ -529,9 +477,9 @@ index 96bb76b3b2a..92daa32a0a1 100644 } } -+ fun beforeLoad(scriptWrapper: BigStringBufferWrapper, sourceURL: String){ ++ fun beforeLoad(bundle: BundleWrapper, sourceURL: String){ + context.setSourceURL(sourceURL) -+ context.setBundle(scriptWrapper) ++ context.setBundle(bundle) + } + fun loadJSBundle(bundleLoader: JSBundleLoader) { @@ -543,18 +491,18 @@ index 96bb76b3b2a..92daa32a0a1 100644 ) { - context.sourceURL = sourceURL - loadJSBundleFromFile(fileName, sourceURL) -+ val script = BigStringBufferWrapper(fileName); ++ val bundle = BundleWrapper(fileName); + -+ beforeLoad(script, sourceURL); -+ loadJSBundle(script, sourceURL) ++ beforeLoad(bundle, sourceURL); ++ loadJSBundle(bundle, sourceURL) } override fun loadSplitBundleFromFile(fileName: String, sourceURL: String) { - loadJSBundleFromFile(fileName, sourceURL) -+ val script = BigStringBufferWrapper(fileName) ++ val bundle = BundleWrapper(fileName) + -+ beforeLoad(script, sourceURL); -+ loadJSBundle(script, sourceURL) ++ beforeLoad(bundle, sourceURL) ++ loadJSBundle(bundle, sourceURL) } override fun loadScriptFromAssets( @@ -565,10 +513,10 @@ index 96bb76b3b2a..92daa32a0a1 100644 - context.sourceURL = assetURL - loadJSBundleFromAssets(assetManager, assetURL) + val sourceURL = assetURL.removePrefix("assets://") -+ val script = BigStringBufferWrapper(assetManager, sourceURL) ++ val bundle = BundleWrapper(assetManager, sourceURL) + -+ beforeLoad(script, assetURL); -+ loadJSBundle(script, assetURL) ++ beforeLoad(bundle, assetURL) ++ loadJSBundle(bundle, assetURL) } override fun setSourceURLs(deviceURL: String, remoteURL: String) { @@ -577,19 +525,19 @@ index 96bb76b3b2a..92daa32a0a1 100644 ): HybridData - private external fun loadJSBundleFromFile(fileName: String, sourceURL: String) -+ private external fun loadJSBundle(scriptWrapper: BigStringBufferWrapper, sourceURL: String) ++ private external fun loadJSBundle(bundle: BundleWrapper, sourceURL: String) private external fun loadJSBundleFromAssets(assetManager: AssetManager, assetURL: String) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt -index d91b7f1b189..d4b3b00e659 100644 +index d91b7f1b189..1257b348366 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt @@ -21,6 +21,7 @@ import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.UIManager import com.facebook.react.common.annotations.internal.LegacyArchitecture -+import com.facebook.react.fabric.BigStringBufferWrapper ++import com.facebook.react.fabric.BundleWrapper import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder /** @@ -597,17 +545,17 @@ index d91b7f1b189..d4b3b00e659 100644 ) override fun getFabricUIManager(): UIManager? = reactApplicationContext.getFabricUIManager() -+ override fun getBundle(): BigStringBufferWrapper? = reactApplicationContext.getBundle() ++ override fun getBundle(): BundleWrapper? = reactApplicationContext.getBundle() + override fun getSourceURL(): String? = reactApplicationContext.getSourceURL() override fun registerSegment(segmentId: Int, path: String?, callback: Callback?) { -diff --git a/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp +diff --git a/ReactAndroid/src/main/jni/react/fabric/BundleWrapper.cpp b/ReactAndroid/src/main/jni/react/fabric/BundleWrapper.cpp new file mode 100644 -index 00000000000..0efb9dac6b6 +index 00000000000..ff3d82c60c1 --- /dev/null -+++ b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.cpp -@@ -0,0 +1,54 @@ ++++ b/ReactAndroid/src/main/jni/react/fabric/BundleWrapper.cpp +@@ -0,0 +1,50 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -615,59 +563,55 @@ index 00000000000..0efb9dac6b6 + * LICENSE file in the root directory of this source tree. + */ + -+#include "BigStringBufferWrapper.h" ++#include "BundleWrapper.h" +#include +#include + +using namespace facebook::jni; + +namespace facebook::react { -+jni::local_ref -+BigStringBufferWrapper::initHybridFromFile( ++jni::local_ref BundleWrapper::initHybridFromFile( + jni::alias_ref jThis, + std::string fileName) { + std::unique_ptr script; + RecoverableError::runRethrowingAsRecoverable( + [&fileName, &script]() { script = JSBigFileString::fromPath(fileName); }); -+ auto buffer = std::make_shared(std::move(script)); -+ return makeCxxInstance(buffer); ++ auto bundle = std::make_shared(std::move(script)); ++ return makeCxxInstance(bundle); +} + -+jni::local_ref -+BigStringBufferWrapper::initHybridFromAssets( ++jni::local_ref BundleWrapper::initHybridFromAssets( + jni::alias_ref jThis, + jni::alias_ref assetManager, + const std::string& sourceURL) { + auto manager = extractAssetManager(assetManager); + auto script = loadScriptFromAssets(manager, sourceURL); -+ auto buffer = std::make_shared(std::move(script)); -+ return makeCxxInstance(buffer); ++ auto bundle = std::make_shared(std::move(script)); ++ return makeCxxInstance(bundle); +} + -+BigStringBufferWrapper::BigStringBufferWrapper( -+ const std::shared_ptr& script) -+ : script_(script) {} ++BundleWrapper::BundleWrapper( ++ const std::shared_ptr& bundle) ++ : bundle_(bundle) {} + -+const std::shared_ptr BigStringBufferWrapper::getScript() -+ const { -+ return script_; ++const std::shared_ptr BundleWrapper::getBundle() const { ++ return bundle_; +} + -+void BigStringBufferWrapper::registerNatives() { ++void BundleWrapper::registerNatives() { + registerHybrid( + {makeNativeMethod( -+ "initHybridFromFile", BigStringBufferWrapper::initHybridFromFile), ++ "initHybridFromFile", BundleWrapper::initHybridFromFile), + makeNativeMethod( -+ "initHybridFromAssets", -+ BigStringBufferWrapper::initHybridFromAssets)}); ++ "initHybridFromAssets", BundleWrapper::initHybridFromAssets)}); +} +} // namespace facebook::react -diff --git a/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h +diff --git a/ReactAndroid/src/main/jni/react/fabric/BundleWrapper.h b/ReactAndroid/src/main/jni/react/fabric/BundleWrapper.h new file mode 100644 -index 00000000000..248f99faf1e +index 00000000000..eb044ecdd48 --- /dev/null -+++ b/ReactAndroid/src/main/jni/react/fabric/BigStringBufferWrapper.h -@@ -0,0 +1,47 @@ ++++ b/ReactAndroid/src/main/jni/react/fabric/BundleWrapper.h +@@ -0,0 +1,45 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * @@ -686,44 +630,42 @@ index 00000000000..248f99faf1e + +namespace facebook::react { + -+class BigStringBufferWrapper : public jni::HybridClass { ++class BundleWrapper : public jni::HybridClass { + public: + constexpr static const char* const kJavaDescriptor = -+ "Lcom/facebook/react/fabric/BigStringBufferWrapper;"; ++ "Lcom/facebook/react/fabric/BundleWrapper;"; + + static void registerNatives(); + -+ [[nodiscard]] const std::shared_ptr getScript() const; ++ [[nodiscard]] const std::shared_ptr getBundle() const; + + private: -+ static jni::local_ref initHybridFromFile( ++ static jni::local_ref initHybridFromFile( + jni::alias_ref jThis, + std::string fileName); + -+ static jni::local_ref -+ initHybridFromAssets( ++ static jni::local_ref initHybridFromAssets( + jni::alias_ref jThis, + jni::alias_ref assetManager, + const std::string& assetURL); + + friend HybridBase; + -+ explicit BigStringBufferWrapper( -+ const std::shared_ptr& script); ++ explicit BundleWrapper(const std::shared_ptr& bundle); + -+ const std::shared_ptr script_; ++ const std::shared_ptr bundle_; +}; + +} // namespace facebook::react diff --git a/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp b/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp -index 2d411d4dc7a..3425c9e6067 100644 +index 2d411d4dc7a..8fec1ae37be 100644 --- a/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +++ b/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp @@ -7,6 +7,7 @@ #include -+#include "BigStringBufferWrapper.h" ++#include "BundleWrapper.h" #include "ComponentFactory.h" #include "EventBeatManager.h" #include "EventEmitterWrapper.h" @@ -731,11 +673,11 @@ index 2d411d4dc7a..3425c9e6067 100644 facebook::react::StateWrapperImpl::registerNatives(); facebook::react::ComponentFactory::registerNatives(); facebook::react::SurfaceHandlerBinding::registerNatives(); -+ facebook::react::BigStringBufferWrapper::registerNatives(); ++ facebook::react::BundleWrapper::registerNatives(); }); } diff --git a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp -index 5ffd7492ba8..5414a38d021 100644 +index 5ffd7492ba8..d40d77aa471 100644 --- a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +++ b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp @@ -132,24 +132,11 @@ jni::local_ref JReactInstance::initHybrid( @@ -756,14 +698,14 @@ index 5ffd7492ba8..5414a38d021 100644 -void JReactInstance::loadJSBundleFromFile( - const std::string& fileName, +void JReactInstance::loadJSBundle( -+ jni::alias_ref scriptWrapper, ++ jni::alias_ref bundleWrapper, const std::string& sourceURL) { - std::unique_ptr script; - RecoverableError::runRethrowingAsRecoverable( - [&fileName, &script]() { script = JSBigFileString::fromPath(fileName); }); - instance_->loadScript(std::move(script), sourceURL); -+ auto script = scriptWrapper->cthis()->getScript(); -+ instance_->loadScript(script, sourceURL); ++ auto bundle = bundleWrapper->cthis()->getBundle(); ++ instance_->loadScript(bundle, sourceURL); } /** @@ -780,14 +722,14 @@ index 5ffd7492ba8..5414a38d021 100644 "getJSCallInvokerHolder", JReactInstance::getJSCallInvokerHolder), makeNativeMethod( diff --git a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h -index d6552a8a978..ff9445980f7 100644 +index d6552a8a978..ca4e72ac488 100644 --- a/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h +++ b/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.h @@ -13,6 +13,7 @@ #include #include #include -+#include ++#include #include #include #include @@ -802,7 +744,7 @@ index d6552a8a978..ff9445980f7 100644 - void loadJSBundleFromFile( - const std::string& fileName, + void loadJSBundle( -+ jni::alias_ref scriptWrapper, ++ jni::alias_ref bundleWrapper, const std::string& sourceURL); void callFunctionOnModule( @@ -889,10 +831,18 @@ index 3c92b268f38..d9e69dc6563 100644 std::function&& beforeLoad = nullptr, std::function&& afterLoad = nullptr); diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm -index 12631915e88..47c6733c344 100644 +index 12631915e88..fb893682056 100644 --- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm -@@ -115,6 +115,7 @@ @implementation RCTHost { +@@ -10,6 +10,7 @@ + + #import + #import ++#import + #import + #import + #import +@@ -115,6 +116,7 @@ @implementation RCTHost { NSURL *_oldDelegateBundleURL; NSURL *_bundleURL; RCTBundleManager *_bundleManager; @@ -900,7 +850,7 @@ index 12631915e88..47c6733c344 100644 RCTHostBundleURLProvider _bundleURLProvider; RCTHostJSEngineProvider _jsEngineProvider; -@@ -165,6 +166,7 @@ - (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider +@@ -165,6 +167,7 @@ - (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider _turboModuleManagerDelegate = turboModuleManagerDelegate; _bundleManager = [RCTBundleManager new]; _moduleRegistry = [RCTModuleRegistry new]; @@ -908,7 +858,7 @@ index 12631915e88..47c6733c344 100644 _jsEngineProvider = [jsEngineProvider copy]; _launchOptions = [launchOptions copy]; -@@ -243,6 +245,7 @@ - (void)start +@@ -243,6 +246,7 @@ - (void)start _instance = [[RCTInstance alloc] initWithDelegate:self jsRuntimeFactory:[self _provideJSEngine] bundleManager:_bundleManager @@ -916,7 +866,7 @@ index 12631915e88..47c6733c344 100644 turboModuleManagerDelegate:_turboModuleManagerDelegate moduleRegistry:_moduleRegistry parentInspectorTarget:_inspectorTarget.get() -@@ -446,6 +449,7 @@ - (void)_reloadWithShouldRestartSurfaces:(BOOL)shouldRestartSurfaces +@@ -446,6 +450,7 @@ - (void)_reloadWithShouldRestartSurfaces:(BOOL)shouldRestartSurfaces _instance = [[RCTInstance alloc] initWithDelegate:self jsRuntimeFactory:[self _provideJSEngine] bundleManager:_bundleManager @@ -945,18 +895,22 @@ index 5d4ea87be9e..57bd143832e 100644 moduleRegistry:(RCTModuleRegistry *)moduleRegistry parentInspectorTarget:(facebook::react::jsinspector_modern::HostTarget *)parentInspectorTarget diff --git a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm -index f5e53529e42..d05f665f049 100644 +index f5e53529e42..353b78fb814 100644 --- a/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +++ b/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm -@@ -11,6 +11,7 @@ +@@ -70,6 +70,11 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags) + sRuntimeDiagnosticFlags = [flags copy]; + } - #import - #import -+#import - #import - #import - #import -@@ -111,6 +112,7 @@ @implementation RCTInstance { ++@interface RCTBundleProvider : NSObject ++- (void)setBundle:(std::shared_ptr)bundleBuffer; ++- (void)setSourceURL:(NSString *)sourceURL; ++@end ++ + @interface RCTBridgelessDisplayLinkModuleHolder : NSObject + - (instancetype)initWithModule:(id)module; + @end +@@ -111,6 +116,7 @@ @implementation RCTInstance { RCTPerformanceLogger *_performanceLogger; RCTDisplayLink *_displayLink; RCTTurboModuleManager *_turboModuleManager; @@ -964,7 +918,7 @@ index f5e53529e42..d05f665f049 100644 std::mutex _invalidationMutex; std::atomic _valid; RCTJSThreadManager *_jsThreadManager; -@@ -128,6 +130,7 @@ @implementation RCTInstance { +@@ -128,6 +134,7 @@ @implementation RCTInstance { - (instancetype)initWithDelegate:(id)delegate jsRuntimeFactory:(std::shared_ptr)jsRuntimeFactory bundleManager:(RCTBundleManager *)bundleManager @@ -972,7 +926,7 @@ index f5e53529e42..d05f665f049 100644 turboModuleManagerDelegate:(id)tmmDelegate moduleRegistry:(RCTModuleRegistry *)moduleRegistry parentInspectorTarget:(jsinspector_modern::HostTarget *)parentInspectorTarget -@@ -142,9 +145,11 @@ - (instancetype)initWithDelegate:(id)delegate +@@ -142,9 +149,11 @@ - (instancetype)initWithDelegate:(id)delegate _jsRuntimeFactory = jsRuntimeFactory; _appTMMDelegate = tmmDelegate; _jsThreadManager = [RCTJSThreadManager new]; @@ -984,25 +938,24 @@ index f5e53529e42..d05f665f049 100644 callableJSModules:[RCTCallableJSModules new]]; _parentInspectorTarget = parentInspectorTarget; { -@@ -572,8 +577,12 @@ - (void)_loadScriptFromSource:(RCTSource *)source +@@ -572,8 +581,12 @@ - (void)_loadScriptFromSource:(RCTSource *)source } auto script = std::make_unique(source.data); + const auto scriptBuffer = std::make_shared(std::move(script)); const auto *url = deriveSourceURL(source.url).UTF8String; -+ [_bundleProvider setBundle:[[NSBigStringBuffer new] initWithSharedPtr:scriptBuffer]]; ++ [_bundleProvider setBundle:scriptBuffer]; + [_bundleProvider setSourceURL:@(url)]; + auto beforeLoad = [waitUntilModuleSetupComplete = self->_waitUntilModuleSetupComplete](jsi::Runtime &_) { if (waitUntilModuleSetupComplete) { waitUntilModuleSetupComplete(); -@@ -582,7 +591,8 @@ - (void)_loadScriptFromSource:(RCTSource *)source +@@ -582,7 +595,7 @@ - (void)_loadScriptFromSource:(RCTSource *)source auto afterLoad = [](jsi::Runtime &_) { [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTInstanceDidLoadBundle" object:nil]; }; - _reactInstance->loadScript(std::move(script), url, beforeLoad, afterLoad); -+ + _reactInstance->loadScript(scriptBuffer, url, beforeLoad, afterLoad); } diff --git a/apps/fabric-example/android/gradle.properties b/apps/fabric-example/android/gradle.properties index 7fdf50386b4a..d183897bec8e 100644 --- a/apps/fabric-example/android/gradle.properties +++ b/apps/fabric-example/android/gradle.properties @@ -49,7 +49,7 @@ isReanimatedExampleApp=true enableReanimatedProfiling=true # Uncomment the next line to enable bundle mode. -workletsBundleMode=true +# workletsBundleMode=true # https://docs.gradle.org/current/userguide/configuration_cache.html org.gradle.configuration-cache=true diff --git a/apps/fabric-example/android/settings.gradle b/apps/fabric-example/android/settings.gradle index c3c54348786a..afaf8c45a5f0 100644 --- a/apps/fabric-example/android/settings.gradle +++ b/apps/fabric-example/android/settings.gradle @@ -7,11 +7,11 @@ includeBuild('../../../node_modules/@react-native/gradle-plugin') // Build from source (https://reactnative.dev/contributing/how-to-build-from-source) // NOTE: Please do not remove these lines even though they are commented out. -includeBuild('../../../node_modules/react-native') { - dependencySubstitution { - substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid")) - substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid")) - substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) - substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) - } -} +// includeBuild('../../../node_modules/react-native') { +// dependencySubstitution { +// substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid")) +// substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid")) +// substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) +// substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine")) +// } +// } diff --git a/apps/fabric-example/babel.config.js b/apps/fabric-example/babel.config.js index ebdbea9d22c9..259ed1ad84b1 100644 --- a/apps/fabric-example/babel.config.js +++ b/apps/fabric-example/babel.config.js @@ -6,7 +6,7 @@ module.exports = { 'react-native-worklets/plugin', { // Uncomment the next line to enable bundle mode. - bundleMode: true, + // bundleMode: true, }, ], [ diff --git a/apps/fabric-example/ios/Podfile b/apps/fabric-example/ios/Podfile index e208389ca3e6..3f8fe4a6e278 100644 --- a/apps/fabric-example/ios/Podfile +++ b/apps/fabric-example/ios/Podfile @@ -10,7 +10,7 @@ require_relative '../../../packages/react-native-reanimated/scripts/clangd-add-x ENV['IS_REANIMATED_EXAMPLE_APP'] = '1' # Uncomment the next line to enable bundle mode. -ENV['WORKLETS_BUNDLE_MODE'] = '1' +# ENV['WORKLETS_BUNDLE_MODE'] = '1' platform :ios, min_ios_version_supported prepare_react_native_project! diff --git a/apps/fabric-example/ios/Podfile.lock b/apps/fabric-example/ios/Podfile.lock index d6e599e87e19..9b1ff727a948 100644 --- a/apps/fabric-example/ios/Podfile.lock +++ b/apps/fabric-example/ios/Podfile.lock @@ -2,12 +2,12 @@ PODS: - boost (1.84.0) - DoubleConversion (1.1.6) - fast_float (8.0.0) - - FBLazyVector (0.82.0-rc.0) + - FBLazyVector (0.82.0-rc.4) - fmt (11.0.2) - glog (0.3.5) - - hermes-engine (0.82.0-rc.0): - - hermes-engine/Pre-built (= 0.82.0-rc.0) - - hermes-engine/Pre-built (0.82.0-rc.0) + - hermes-engine (0.82.0-rc.4): + - hermes-engine/Pre-built (= 0.82.0-rc.4) + - hermes-engine/Pre-built (0.82.0-rc.4) - RCT-Folly (2024.11.18.00): - boost - DoubleConversion @@ -27,27 +27,27 @@ PODS: - fast_float (= 8.0.0) - fmt (= 11.0.2) - glog - - RCTDeprecation (0.82.0-rc.0) - - RCTRequired (0.82.0-rc.0) - - RCTTypeSafety (0.82.0-rc.0): - - FBLazyVector (= 0.82.0-rc.0) - - RCTRequired (= 0.82.0-rc.0) - - React-Core (= 0.82.0-rc.0) - - React (0.82.0-rc.0): - - React-Core (= 0.82.0-rc.0) - - React-Core/DevSupport (= 0.82.0-rc.0) - - React-Core/RCTWebSocket (= 0.82.0-rc.0) - - React-RCTActionSheet (= 0.82.0-rc.0) - - React-RCTAnimation (= 0.82.0-rc.0) - - React-RCTBlob (= 0.82.0-rc.0) - - React-RCTImage (= 0.82.0-rc.0) - - React-RCTLinking (= 0.82.0-rc.0) - - React-RCTNetwork (= 0.82.0-rc.0) - - React-RCTSettings (= 0.82.0-rc.0) - - React-RCTText (= 0.82.0-rc.0) - - React-RCTVibration (= 0.82.0-rc.0) - - React-callinvoker (0.82.0-rc.0) - - React-Core (0.82.0-rc.0): + - RCTDeprecation (0.82.0-rc.4) + - RCTRequired (0.82.0-rc.4) + - RCTTypeSafety (0.82.0-rc.4): + - FBLazyVector (= 0.82.0-rc.4) + - RCTRequired (= 0.82.0-rc.4) + - React-Core (= 0.82.0-rc.4) + - React (0.82.0-rc.4): + - React-Core (= 0.82.0-rc.4) + - React-Core/DevSupport (= 0.82.0-rc.4) + - React-Core/RCTWebSocket (= 0.82.0-rc.4) + - React-RCTActionSheet (= 0.82.0-rc.4) + - React-RCTAnimation (= 0.82.0-rc.4) + - React-RCTBlob (= 0.82.0-rc.4) + - React-RCTImage (= 0.82.0-rc.4) + - React-RCTLinking (= 0.82.0-rc.4) + - React-RCTNetwork (= 0.82.0-rc.4) + - React-RCTSettings (= 0.82.0-rc.4) + - React-RCTText (= 0.82.0-rc.4) + - React-RCTVibration (= 0.82.0-rc.4) + - React-callinvoker (0.82.0-rc.4) + - React-Core (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -57,7 +57,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTDeprecation - - React-Core/Default (= 0.82.0-rc.0) + - React-Core/Default (= 0.82.0-rc.4) - React-cxxreact - React-featureflags - React-hermes @@ -72,7 +72,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/CoreModulesHeaders (0.82.0-rc.0): + - React-Core/CoreModulesHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -97,7 +97,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/Default (0.82.0-rc.0): + - React-Core/Default (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -121,7 +121,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/DevSupport (0.82.0-rc.0): + - React-Core/DevSupport (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -131,8 +131,8 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTDeprecation - - React-Core/Default (= 0.82.0-rc.0) - - React-Core/RCTWebSocket (= 0.82.0-rc.0) + - React-Core/Default (= 0.82.0-rc.4) + - React-Core/RCTWebSocket (= 0.82.0-rc.4) - React-cxxreact - React-featureflags - React-hermes @@ -147,7 +147,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTActionSheetHeaders (0.82.0-rc.0): + - React-Core/RCTActionSheetHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -172,7 +172,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTAnimationHeaders (0.82.0-rc.0): + - React-Core/RCTAnimationHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -197,7 +197,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTBlobHeaders (0.82.0-rc.0): + - React-Core/RCTBlobHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -222,7 +222,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTImageHeaders (0.82.0-rc.0): + - React-Core/RCTImageHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -247,7 +247,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTLinkingHeaders (0.82.0-rc.0): + - React-Core/RCTLinkingHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -272,7 +272,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTNetworkHeaders (0.82.0-rc.0): + - React-Core/RCTNetworkHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -297,7 +297,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTSettingsHeaders (0.82.0-rc.0): + - React-Core/RCTSettingsHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -322,7 +322,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTTextHeaders (0.82.0-rc.0): + - React-Core/RCTTextHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -347,7 +347,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTVibrationHeaders (0.82.0-rc.0): + - React-Core/RCTVibrationHeaders (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -372,7 +372,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-Core/RCTWebSocket (0.82.0-rc.0): + - React-Core/RCTWebSocket (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -382,7 +382,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - RCTDeprecation - - React-Core/Default (= 0.82.0-rc.0) + - React-Core/Default (= 0.82.0-rc.4) - React-cxxreact - React-featureflags - React-hermes @@ -397,7 +397,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-CoreModules (0.82.0-rc.0): + - React-CoreModules (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -405,21 +405,21 @@ PODS: - glog - RCT-Folly - RCT-Folly/Fabric - - RCTTypeSafety (= 0.82.0-rc.0) - - React-Core/CoreModulesHeaders (= 0.82.0-rc.0) + - RCTTypeSafety (= 0.82.0-rc.4) + - React-Core/CoreModulesHeaders (= 0.82.0-rc.4) - React-debug - - React-jsi (= 0.82.0-rc.0) + - React-jsi (= 0.82.0-rc.4) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-NativeModulesApple - React-RCTBlob - React-RCTFBReactNativeSpec - - React-RCTImage (= 0.82.0-rc.0) + - React-RCTImage (= 0.82.0-rc.4) - React-runtimeexecutor - ReactCommon - SocketRocket - - React-cxxreact (0.82.0-rc.0): + - React-cxxreact (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -428,19 +428,19 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - React-callinvoker (= 0.82.0-rc.0) - - React-debug (= 0.82.0-rc.0) - - React-jsi (= 0.82.0-rc.0) + - React-callinvoker (= 0.82.0-rc.4) + - React-debug (= 0.82.0-rc.4) + - React-jsi (= 0.82.0-rc.4) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-logger (= 0.82.0-rc.0) - - React-perflogger (= 0.82.0-rc.0) + - React-logger (= 0.82.0-rc.4) + - React-perflogger (= 0.82.0-rc.4) - React-runtimeexecutor - - React-timing (= 0.82.0-rc.0) + - React-timing (= 0.82.0-rc.4) - SocketRocket - - React-debug (0.82.0-rc.0) - - React-defaultsnativemodule (0.82.0-rc.0): + - React-debug (0.82.0-rc.4) + - React-defaultsnativemodule (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -456,8 +456,9 @@ PODS: - React-jsiexecutor - React-microtasksnativemodule - React-RCTFBReactNativeSpec + - React-webperformancenativemodule - SocketRocket - - React-domnativemodule (0.82.0-rc.0): + - React-domnativemodule (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -477,7 +478,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-Fabric (0.82.0-rc.0): + - React-Fabric (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -491,23 +492,23 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.82.0-rc.0) - - React-Fabric/attributedstring (= 0.82.0-rc.0) - - React-Fabric/bridging (= 0.82.0-rc.0) - - React-Fabric/componentregistry (= 0.82.0-rc.0) - - React-Fabric/componentregistrynative (= 0.82.0-rc.0) - - React-Fabric/components (= 0.82.0-rc.0) - - React-Fabric/consistency (= 0.82.0-rc.0) - - React-Fabric/core (= 0.82.0-rc.0) - - React-Fabric/dom (= 0.82.0-rc.0) - - React-Fabric/imagemanager (= 0.82.0-rc.0) - - React-Fabric/leakchecker (= 0.82.0-rc.0) - - React-Fabric/mounting (= 0.82.0-rc.0) - - React-Fabric/observers (= 0.82.0-rc.0) - - React-Fabric/scheduler (= 0.82.0-rc.0) - - React-Fabric/telemetry (= 0.82.0-rc.0) - - React-Fabric/templateprocessor (= 0.82.0-rc.0) - - React-Fabric/uimanager (= 0.82.0-rc.0) + - React-Fabric/animations (= 0.82.0-rc.4) + - React-Fabric/attributedstring (= 0.82.0-rc.4) + - React-Fabric/bridging (= 0.82.0-rc.4) + - React-Fabric/componentregistry (= 0.82.0-rc.4) + - React-Fabric/componentregistrynative (= 0.82.0-rc.4) + - React-Fabric/components (= 0.82.0-rc.4) + - React-Fabric/consistency (= 0.82.0-rc.4) + - React-Fabric/core (= 0.82.0-rc.4) + - React-Fabric/dom (= 0.82.0-rc.4) + - React-Fabric/imagemanager (= 0.82.0-rc.4) + - React-Fabric/leakchecker (= 0.82.0-rc.4) + - React-Fabric/mounting (= 0.82.0-rc.4) + - React-Fabric/observers (= 0.82.0-rc.4) + - React-Fabric/scheduler (= 0.82.0-rc.4) + - React-Fabric/telemetry (= 0.82.0-rc.4) + - React-Fabric/templateprocessor (= 0.82.0-rc.4) + - React-Fabric/uimanager (= 0.82.0-rc.4) - React-featureflags - React-graphics - React-jsi @@ -519,7 +520,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/animations (0.82.0-rc.0): + - React-Fabric/animations (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -544,7 +545,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/attributedstring (0.82.0-rc.0): + - React-Fabric/attributedstring (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -569,7 +570,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/bridging (0.82.0-rc.0): + - React-Fabric/bridging (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -594,7 +595,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/componentregistry (0.82.0-rc.0): + - React-Fabric/componentregistry (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -619,7 +620,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/componentregistrynative (0.82.0-rc.0): + - React-Fabric/componentregistrynative (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -644,7 +645,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/components (0.82.0-rc.0): + - React-Fabric/components (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -658,10 +659,10 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.82.0-rc.0) - - React-Fabric/components/root (= 0.82.0-rc.0) - - React-Fabric/components/scrollview (= 0.82.0-rc.0) - - React-Fabric/components/view (= 0.82.0-rc.0) + - React-Fabric/components/legacyviewmanagerinterop (= 0.82.0-rc.4) + - React-Fabric/components/root (= 0.82.0-rc.4) + - React-Fabric/components/scrollview (= 0.82.0-rc.4) + - React-Fabric/components/view (= 0.82.0-rc.4) - React-featureflags - React-graphics - React-jsi @@ -673,7 +674,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/components/legacyviewmanagerinterop (0.82.0-rc.0): + - React-Fabric/components/legacyviewmanagerinterop (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -698,7 +699,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/components/root (0.82.0-rc.0): + - React-Fabric/components/root (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -723,7 +724,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/components/scrollview (0.82.0-rc.0): + - React-Fabric/components/scrollview (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -748,7 +749,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/components/view (0.82.0-rc.0): + - React-Fabric/components/view (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -775,7 +776,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-Fabric/consistency (0.82.0-rc.0): + - React-Fabric/consistency (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -800,7 +801,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/core (0.82.0-rc.0): + - React-Fabric/core (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -825,7 +826,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/dom (0.82.0-rc.0): + - React-Fabric/dom (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -850,7 +851,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/imagemanager (0.82.0-rc.0): + - React-Fabric/imagemanager (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -875,7 +876,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/leakchecker (0.82.0-rc.0): + - React-Fabric/leakchecker (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -900,7 +901,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/mounting (0.82.0-rc.0): + - React-Fabric/mounting (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -925,7 +926,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/observers (0.82.0-rc.0): + - React-Fabric/observers (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -939,7 +940,7 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/observers/events (= 0.82.0-rc.0) + - React-Fabric/observers/events (= 0.82.0-rc.4) - React-featureflags - React-graphics - React-jsi @@ -951,7 +952,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/observers/events (0.82.0-rc.0): + - React-Fabric/observers/events (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -976,7 +977,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/scheduler (0.82.0-rc.0): + - React-Fabric/scheduler (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1004,7 +1005,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/telemetry (0.82.0-rc.0): + - React-Fabric/telemetry (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1029,7 +1030,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/templateprocessor (0.82.0-rc.0): + - React-Fabric/templateprocessor (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1054,7 +1055,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/uimanager (0.82.0-rc.0): + - React-Fabric/uimanager (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1068,7 +1069,7 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/uimanager/consistency (= 0.82.0-rc.0) + - React-Fabric/uimanager/consistency (= 0.82.0-rc.4) - React-featureflags - React-graphics - React-jsi @@ -1081,7 +1082,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-Fabric/uimanager/consistency (0.82.0-rc.0): + - React-Fabric/uimanager/consistency (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1107,7 +1108,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - SocketRocket - - React-FabricComponents (0.82.0-rc.0): + - React-FabricComponents (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1122,8 +1123,8 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components (= 0.82.0-rc.0) - - React-FabricComponents/textlayoutmanager (= 0.82.0-rc.0) + - React-FabricComponents/components (= 0.82.0-rc.4) + - React-FabricComponents/textlayoutmanager (= 0.82.0-rc.4) - React-featureflags - React-graphics - React-jsi @@ -1136,7 +1137,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components (0.82.0-rc.0): + - React-FabricComponents/components (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1151,18 +1152,18 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.82.0-rc.0) - - React-FabricComponents/components/iostextinput (= 0.82.0-rc.0) - - React-FabricComponents/components/modal (= 0.82.0-rc.0) - - React-FabricComponents/components/rncore (= 0.82.0-rc.0) - - React-FabricComponents/components/safeareaview (= 0.82.0-rc.0) - - React-FabricComponents/components/scrollview (= 0.82.0-rc.0) - - React-FabricComponents/components/switch (= 0.82.0-rc.0) - - React-FabricComponents/components/text (= 0.82.0-rc.0) - - React-FabricComponents/components/textinput (= 0.82.0-rc.0) - - React-FabricComponents/components/unimplementedview (= 0.82.0-rc.0) - - React-FabricComponents/components/virtualview (= 0.82.0-rc.0) - - React-FabricComponents/components/virtualviewexperimental (= 0.82.0-rc.0) + - React-FabricComponents/components/inputaccessory (= 0.82.0-rc.4) + - React-FabricComponents/components/iostextinput (= 0.82.0-rc.4) + - React-FabricComponents/components/modal (= 0.82.0-rc.4) + - React-FabricComponents/components/rncore (= 0.82.0-rc.4) + - React-FabricComponents/components/safeareaview (= 0.82.0-rc.4) + - React-FabricComponents/components/scrollview (= 0.82.0-rc.4) + - React-FabricComponents/components/switch (= 0.82.0-rc.4) + - React-FabricComponents/components/text (= 0.82.0-rc.4) + - React-FabricComponents/components/textinput (= 0.82.0-rc.4) + - React-FabricComponents/components/unimplementedview (= 0.82.0-rc.4) + - React-FabricComponents/components/virtualview (= 0.82.0-rc.4) + - React-FabricComponents/components/virtualviewexperimental (= 0.82.0-rc.4) - React-featureflags - React-graphics - React-jsi @@ -1175,7 +1176,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/inputaccessory (0.82.0-rc.0): + - React-FabricComponents/components/inputaccessory (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1202,7 +1203,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/iostextinput (0.82.0-rc.0): + - React-FabricComponents/components/iostextinput (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1229,7 +1230,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/modal (0.82.0-rc.0): + - React-FabricComponents/components/modal (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1256,7 +1257,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/rncore (0.82.0-rc.0): + - React-FabricComponents/components/rncore (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1283,7 +1284,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/safeareaview (0.82.0-rc.0): + - React-FabricComponents/components/safeareaview (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1310,7 +1311,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/scrollview (0.82.0-rc.0): + - React-FabricComponents/components/scrollview (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1337,7 +1338,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/switch (0.82.0-rc.0): + - React-FabricComponents/components/switch (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1364,7 +1365,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/text (0.82.0-rc.0): + - React-FabricComponents/components/text (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1391,7 +1392,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/textinput (0.82.0-rc.0): + - React-FabricComponents/components/textinput (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1418,7 +1419,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/unimplementedview (0.82.0-rc.0): + - React-FabricComponents/components/unimplementedview (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1445,7 +1446,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/virtualview (0.82.0-rc.0): + - React-FabricComponents/components/virtualview (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1472,7 +1473,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/components/virtualviewexperimental (0.82.0-rc.0): + - React-FabricComponents/components/virtualviewexperimental (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1499,7 +1500,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricComponents/textlayoutmanager (0.82.0-rc.0): + - React-FabricComponents/textlayoutmanager (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1526,7 +1527,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-FabricImage (0.82.0-rc.0): + - React-FabricImage (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1535,21 +1536,21 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - RCTRequired (= 0.82.0-rc.0) - - RCTTypeSafety (= 0.82.0-rc.0) + - RCTRequired (= 0.82.0-rc.4) + - RCTTypeSafety (= 0.82.0-rc.4) - React-Fabric - React-featureflags - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.82.0-rc.0) + - React-jsiexecutor (= 0.82.0-rc.4) - React-logger - React-rendererdebug - React-utils - ReactCommon - SocketRocket - Yoga - - React-featureflags (0.82.0-rc.0): + - React-featureflags (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1558,7 +1559,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - SocketRocket - - React-featureflagsnativemodule (0.82.0-rc.0): + - React-featureflagsnativemodule (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1573,7 +1574,7 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core - SocketRocket - - React-graphics (0.82.0-rc.0): + - React-graphics (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1586,7 +1587,7 @@ PODS: - React-jsiexecutor - React-utils - SocketRocket - - React-hermes (0.82.0-rc.0): + - React-hermes (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1595,17 +1596,17 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - React-cxxreact (= 0.82.0-rc.0) + - React-cxxreact (= 0.82.0-rc.4) - React-jsi - - React-jsiexecutor (= 0.82.0-rc.0) + - React-jsiexecutor (= 0.82.0-rc.4) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-oscompat - - React-perflogger (= 0.82.0-rc.0) + - React-perflogger (= 0.82.0-rc.4) - React-runtimeexecutor - SocketRocket - - React-idlecallbacksnativemodule (0.82.0-rc.0): + - React-idlecallbacksnativemodule (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1621,7 +1622,7 @@ PODS: - React-runtimescheduler - ReactCommon/turbomodule/core - SocketRocket - - React-ImageManager (0.82.0-rc.0): + - React-ImageManager (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1636,7 +1637,7 @@ PODS: - React-rendererdebug - React-utils - SocketRocket - - React-jserrorhandler (0.82.0-rc.0): + - React-jserrorhandler (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1651,7 +1652,7 @@ PODS: - React-jsi - ReactCommon/turbomodule/bridging - SocketRocket - - React-jsi (0.82.0-rc.0): + - React-jsi (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1661,7 +1662,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - SocketRocket - - React-jsiexecutor (0.82.0-rc.0): + - React-jsiexecutor (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1679,7 +1680,7 @@ PODS: - React-perflogger - React-runtimeexecutor - SocketRocket - - React-jsinspector (0.82.0-rc.0): + - React-jsinspector (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1694,10 +1695,10 @@ PODS: - React-jsinspectornetwork - React-jsinspectortracing - React-oscompat - - React-perflogger (= 0.82.0-rc.0) + - React-perflogger (= 0.82.0-rc.4) - React-runtimeexecutor - SocketRocket - - React-jsinspectorcdp (0.82.0-rc.0): + - React-jsinspectorcdp (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1706,7 +1707,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - SocketRocket - - React-jsinspectornetwork (0.82.0-rc.0): + - React-jsinspectornetwork (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1719,7 +1720,7 @@ PODS: - React-performancetimeline - React-timing - SocketRocket - - React-jsinspectortracing (0.82.0-rc.0): + - React-jsinspectortracing (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1730,7 +1731,7 @@ PODS: - React-oscompat - React-timing - SocketRocket - - React-jsitooling (0.82.0-rc.0): + - React-jsitooling (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1738,17 +1739,17 @@ PODS: - glog - RCT-Folly - RCT-Folly/Fabric - - React-cxxreact (= 0.82.0-rc.0) + - React-cxxreact (= 0.82.0-rc.4) - React-debug - - React-jsi (= 0.82.0-rc.0) + - React-jsi (= 0.82.0-rc.4) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-runtimeexecutor - SocketRocket - - React-jsitracing (0.82.0-rc.0): + - React-jsitracing (0.82.0-rc.4): - React-jsi - - React-logger (0.82.0-rc.0): + - React-logger (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1757,7 +1758,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - SocketRocket - - React-Mapbuffer (0.82.0-rc.0): + - React-Mapbuffer (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1767,7 +1768,7 @@ PODS: - RCT-Folly/Fabric - React-debug - SocketRocket - - React-microtasksnativemodule (0.82.0-rc.0): + - React-microtasksnativemodule (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1896,7 +1897,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - React-NativeModulesApple (0.82.0-rc.0): + - React-NativeModulesApple (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1917,8 +1918,8 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - SocketRocket - - React-oscompat (0.82.0-rc.0) - - React-perflogger (0.82.0-rc.0): + - React-oscompat (0.82.0-rc.4) + - React-perflogger (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1927,7 +1928,7 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - SocketRocket - - React-performancecdpmetrics (0.82.0-rc.0): + - React-performancecdpmetrics (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1941,7 +1942,7 @@ PODS: - React-runtimeexecutor - React-timing - SocketRocket - - React-performancetimeline (0.82.0-rc.0): + - React-performancetimeline (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1954,9 +1955,9 @@ PODS: - React-perflogger - React-timing - SocketRocket - - React-RCTActionSheet (0.82.0-rc.0): - - React-Core/RCTActionSheetHeaders (= 0.82.0-rc.0) - - React-RCTAnimation (0.82.0-rc.0): + - React-RCTActionSheet (0.82.0-rc.4): + - React-Core/RCTActionSheetHeaders (= 0.82.0-rc.4) + - React-RCTAnimation (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -1972,7 +1973,7 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - SocketRocket - - React-RCTAppDelegate (0.82.0-rc.0): + - React-RCTAppDelegate (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2006,7 +2007,7 @@ PODS: - React-utils - ReactCommon - SocketRocket - - React-RCTBlob (0.82.0-rc.0): + - React-RCTBlob (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2025,7 +2026,7 @@ PODS: - React-RCTNetwork - ReactCommon - SocketRocket - - React-RCTFabric (0.82.0-rc.0): + - React-RCTFabric (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2061,7 +2062,7 @@ PODS: - React-utils - SocketRocket - Yoga - - React-RCTFBReactNativeSpec (0.82.0-rc.0): + - React-RCTFBReactNativeSpec (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2075,10 +2076,10 @@ PODS: - React-Core - React-jsi - React-NativeModulesApple - - React-RCTFBReactNativeSpec/components (= 0.82.0-rc.0) + - React-RCTFBReactNativeSpec/components (= 0.82.0-rc.4) - ReactCommon - SocketRocket - - React-RCTFBReactNativeSpec/components (0.82.0-rc.0): + - React-RCTFBReactNativeSpec/components (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2101,7 +2102,7 @@ PODS: - ReactCommon - SocketRocket - Yoga - - React-RCTImage (0.82.0-rc.0): + - React-RCTImage (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2117,14 +2118,14 @@ PODS: - React-RCTNetwork - ReactCommon - SocketRocket - - React-RCTLinking (0.82.0-rc.0): - - React-Core/RCTLinkingHeaders (= 0.82.0-rc.0) - - React-jsi (= 0.82.0-rc.0) + - React-RCTLinking (0.82.0-rc.4): + - React-Core/RCTLinkingHeaders (= 0.82.0-rc.4) + - React-jsi (= 0.82.0-rc.4) - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - ReactCommon/turbomodule/core (= 0.82.0-rc.0) - - React-RCTNetwork (0.82.0-rc.0): + - ReactCommon/turbomodule/core (= 0.82.0-rc.4) + - React-RCTNetwork (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2143,7 +2144,7 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - SocketRocket - - React-RCTRuntime (0.82.0-rc.0): + - React-RCTRuntime (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2164,7 +2165,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - SocketRocket - - React-RCTSettings (0.82.0-rc.0): + - React-RCTSettings (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2179,10 +2180,10 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - SocketRocket - - React-RCTText (0.82.0-rc.0): - - React-Core/RCTTextHeaders (= 0.82.0-rc.0) + - React-RCTText (0.82.0-rc.4): + - React-Core/RCTTextHeaders (= 0.82.0-rc.4) - Yoga - - React-RCTVibration (0.82.0-rc.0): + - React-RCTVibration (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2196,11 +2197,11 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - SocketRocket - - React-rendererconsistency (0.82.0-rc.0) - - React-renderercss (0.82.0-rc.0): + - React-rendererconsistency (0.82.0-rc.4) + - React-renderercss (0.82.0-rc.4): - React-debug - React-utils - - React-rendererdebug (0.82.0-rc.0): + - React-rendererdebug (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2210,7 +2211,7 @@ PODS: - RCT-Folly/Fabric - React-debug - SocketRocket - - React-RuntimeApple (0.82.0-rc.0): + - React-RuntimeApple (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2239,7 +2240,7 @@ PODS: - React-runtimescheduler - React-utils - SocketRocket - - React-RuntimeCore (0.82.0-rc.0): + - React-RuntimeCore (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2261,7 +2262,7 @@ PODS: - React-runtimescheduler - React-utils - SocketRocket - - React-runtimeexecutor (0.82.0-rc.0): + - React-runtimeexecutor (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2271,10 +2272,10 @@ PODS: - RCT-Folly/Fabric - React-debug - React-featureflags - - React-jsi (= 0.82.0-rc.0) + - React-jsi (= 0.82.0-rc.4) - React-utils - SocketRocket - - React-RuntimeHermes (0.82.0-rc.0): + - React-RuntimeHermes (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2295,7 +2296,7 @@ PODS: - React-runtimeexecutor - React-utils - SocketRocket - - React-runtimescheduler (0.82.0-rc.0): + - React-runtimescheduler (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2317,9 +2318,9 @@ PODS: - React-timing - React-utils - SocketRocket - - React-timing (0.82.0-rc.0): + - React-timing (0.82.0-rc.4): - React-debug - - React-utils (0.82.0-rc.0): + - React-utils (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2329,11 +2330,27 @@ PODS: - RCT-Folly - RCT-Folly/Fabric - React-debug - - React-jsi (= 0.82.0-rc.0) + - React-jsi (= 0.82.0-rc.4) - SocketRocket - - ReactAppDependencyProvider (0.82.0-rc.0): + - React-webperformancenativemodule (0.82.0-rc.4): + - boost + - DoubleConversion + - fast_float + - fmt + - glog + - hermes-engine + - RCT-Folly + - RCT-Folly/Fabric + - React-jsi + - React-jsiexecutor + - React-performancetimeline + - React-RCTFBReactNativeSpec + - React-runtimeexecutor + - ReactCommon/turbomodule/core + - SocketRocket + - ReactAppDependencyProvider (0.82.0-rc.4): - ReactCodegen - - ReactCodegen (0.82.0-rc.0): + - ReactCodegen (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2359,7 +2376,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - SocketRocket - - ReactCommon (0.82.0-rc.0): + - ReactCommon (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2367,9 +2384,9 @@ PODS: - glog - RCT-Folly - RCT-Folly/Fabric - - ReactCommon/turbomodule (= 0.82.0-rc.0) + - ReactCommon/turbomodule (= 0.82.0-rc.4) - SocketRocket - - ReactCommon/turbomodule (0.82.0-rc.0): + - ReactCommon/turbomodule (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2378,15 +2395,15 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - React-callinvoker (= 0.82.0-rc.0) - - React-cxxreact (= 0.82.0-rc.0) - - React-jsi (= 0.82.0-rc.0) - - React-logger (= 0.82.0-rc.0) - - React-perflogger (= 0.82.0-rc.0) - - ReactCommon/turbomodule/bridging (= 0.82.0-rc.0) - - ReactCommon/turbomodule/core (= 0.82.0-rc.0) + - React-callinvoker (= 0.82.0-rc.4) + - React-cxxreact (= 0.82.0-rc.4) + - React-jsi (= 0.82.0-rc.4) + - React-logger (= 0.82.0-rc.4) + - React-perflogger (= 0.82.0-rc.4) + - ReactCommon/turbomodule/bridging (= 0.82.0-rc.4) + - ReactCommon/turbomodule/core (= 0.82.0-rc.4) - SocketRocket - - ReactCommon/turbomodule/bridging (0.82.0-rc.0): + - ReactCommon/turbomodule/bridging (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2395,13 +2412,13 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - React-callinvoker (= 0.82.0-rc.0) - - React-cxxreact (= 0.82.0-rc.0) - - React-jsi (= 0.82.0-rc.0) - - React-logger (= 0.82.0-rc.0) - - React-perflogger (= 0.82.0-rc.0) + - React-callinvoker (= 0.82.0-rc.4) + - React-cxxreact (= 0.82.0-rc.4) + - React-jsi (= 0.82.0-rc.4) + - React-logger (= 0.82.0-rc.4) + - React-perflogger (= 0.82.0-rc.4) - SocketRocket - - ReactCommon/turbomodule/core (0.82.0-rc.0): + - ReactCommon/turbomodule/core (0.82.0-rc.4): - boost - DoubleConversion - fast_float @@ -2410,14 +2427,14 @@ PODS: - hermes-engine - RCT-Folly - RCT-Folly/Fabric - - React-callinvoker (= 0.82.0-rc.0) - - React-cxxreact (= 0.82.0-rc.0) - - React-debug (= 0.82.0-rc.0) - - React-featureflags (= 0.82.0-rc.0) - - React-jsi (= 0.82.0-rc.0) - - React-logger (= 0.82.0-rc.0) - - React-perflogger (= 0.82.0-rc.0) - - React-utils (= 0.82.0-rc.0) + - React-callinvoker (= 0.82.0-rc.4) + - React-cxxreact (= 0.82.0-rc.4) + - React-debug (= 0.82.0-rc.4) + - React-featureflags (= 0.82.0-rc.4) + - React-jsi (= 0.82.0-rc.4) + - React-logger (= 0.82.0-rc.4) + - React-perflogger (= 0.82.0-rc.4) + - React-utils (= 0.82.0-rc.4) - SocketRocket - RNCAsyncStorage (2.2.0): - boost @@ -2903,6 +2920,7 @@ DEPENDENCIES: - React-runtimescheduler (from `../../../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-timing (from `../../../node_modules/react-native/ReactCommon/react/timing`) - React-utils (from `../../../node_modules/react-native/ReactCommon/react/utils`) + - React-webperformancenativemodule (from `../../../node_modules/react-native/ReactCommon/react/nativemodule/webperformance`) - ReactAppDependencyProvider (from `build/generated/ios`) - ReactCodegen (from `build/generated/ios`) - ReactCommon/turbomodule/core (from `../../../node_modules/react-native/ReactCommon`) @@ -3063,6 +3081,8 @@ EXTERNAL SOURCES: :path: "../../../node_modules/react-native/ReactCommon/react/timing" React-utils: :path: "../../../node_modules/react-native/ReactCommon/react/utils" + React-webperformancenativemodule: + :path: "../../../node_modules/react-native/ReactCommon/react/nativemodule/webperformance" ReactAppDependencyProvider: :path: build/generated/ios ReactCodegen: @@ -3092,76 +3112,77 @@ SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 - FBLazyVector: 0e4be2c101c127fd14d36aacdc4a19ae7836246a + FBLazyVector: 4963926890f2f2b981e1c4e2af79c37d0a9121f3 fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 - hermes-engine: 813c22b2349dbec2cc9d22d64969f17f88cb1034 + hermes-engine: 883ad6cdbcb152221038266a5908c1fa6c1002f7 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 - RCTDeprecation: e93e6a74a445a6778419f46bafc3a45372df96d5 - RCTRequired: d5d54bd30b7e58a6b6d6e3b49f531624e04e9b6e - RCTTypeSafety: b6b1c7ef473915430028ad19a2f731b78f455c71 - React: 08f82c5ac367d86630ee8bb2e8d6acdf9730c90e - React-callinvoker: 14c1ad8ea0683f1ff2a26bf15d5dfb809ca8a890 - React-Core: 82229a87e772170b5b0fabd99de66cea3a9b0393 - React-CoreModules: 3f8f1c2ed83e9fd1854a5326dfcb9781b14feb69 - React-cxxreact: 1b3cba0b0aa2a56d99bcd2a6bb2eb6a28b80ecca - React-debug: 9090e40788a9523e9a5430dc931a2e5499fade1c - React-defaultsnativemodule: 4bd2b6d120717d569e29b2453e06b2436e08b752 - React-domnativemodule: ccdd0a599767d702d943b6a788500e546c70e077 - React-Fabric: 67651058e1d05c137a13b69a5520ddca2ae1698a - React-FabricComponents: a63250588065904baf8356f84445b99a2e3c20c7 - React-FabricImage: 1976c71c2f6aa036feccab89213fc9859954c7fd - React-featureflags: dde6ccdf1982027a3ae4f0134ded6a5e0aa514c4 - React-featureflagsnativemodule: def2bbfbc4049ac5a62b3dfc06bb0e9d166e2e7f - React-graphics: 063598ce5f74cfa907077b097246f51e3322b5f1 - React-hermes: 8e2e0526639e4394b10b5bac5cb22f34f3e69ecb - React-idlecallbacksnativemodule: 80e83e22d8319356e2cdab53cff7073cf0a46d10 - React-ImageManager: f1229fd7824e2421bca5728ddddf533ae67dd666 - React-jserrorhandler: dcb3672723be009bf4be6c5ab76a439dadc8ead6 - React-jsi: 9a72e8f2770889738138eab5d6dbf2d7353633de - React-jsiexecutor: 0d08332e963603a4a9de21442a8d9d56f0e05cc5 - React-jsinspector: 685e76c42885fe35274f64162e7d60100f2c75de - React-jsinspectorcdp: eceddf32d42e68adcf797bb54ccc93b9e9cffbb2 - React-jsinspectornetwork: b5cb5a2fab446f56a1ea7531007f6c6fb158f674 - React-jsinspectortracing: c8bad8e57d14f9fa0b8d8687442c1735789fb2ba - React-jsitooling: d7369b72d887a1827c9c1b1a5e28e2b23154cec7 - React-jsitracing: 1a227a8ad6bd97058d4ca1dfb4d91a87a1028e3b - React-logger: 2fb8a9f32bbc80f6a37dc02c95579d5d3bf6fb58 - React-Mapbuffer: 54166856b49f9e140c3db0c5ddba90dc256a402c - React-microtasksnativemodule: 36b1d448cbf4c8ef706d5e6c4267238943a369d1 + RCTDeprecation: 5f54be68187ef1fc21b4d70a262f0d05d6fba854 + RCTRequired: e52808dfaf897a452bf296466de8c3c5a3ca9332 + RCTTypeSafety: 0c96598083fbfd1c605997a7c2d51a25ac97c35b + React: 0fde0b13f6cca9b4e4525d888dd952e87e5f2c28 + React-callinvoker: 726b0350220fa95dfdf03c81eee83f65bc88de3f + React-Core: f50d50abad4b3a216367c3ed0b86ec720775c28a + React-CoreModules: d762f1a139da379ede82234a70493bec77b15131 + React-cxxreact: f821b84f1c641c70d1cf87e5d04e083da6122365 + React-debug: c5d7221ff1dd6c84f966ef7e6427d76ba1299f72 + React-defaultsnativemodule: dd2335ee560e6ad4759af43b86ae294331bd7a4b + React-domnativemodule: bead078ea4c4fa49c2033e9b904102340428abbb + React-Fabric: e373a8c9ce91901161d731a16dd7ea889107ca49 + React-FabricComponents: f73303c6576f20749a11728b37b7f4f971a7c1cd + React-FabricImage: 83a96e48676ddb80e61213828d21d6969dc1f410 + React-featureflags: e84781f6e3a628f520700f1612504d8ff4c506bc + React-featureflagsnativemodule: 7af1facc2d42d641e86fda5e87560645f8554d08 + React-graphics: 75d2eb4e2240ab813061e92b462ee97601fbf6f2 + React-hermes: dc25666c0164862cdb720bf15d001b6446105f5f + React-idlecallbacksnativemodule: 821c6a223defd780a5b896364b2937772e426391 + React-ImageManager: f8082ae179286fb9238e7ed8fc6488a2358f8205 + React-jserrorhandler: be73e5ebb035fae3cb567e756c28d06b474c3c11 + React-jsi: ec757a030440df8715a385560e6313c40774ac13 + React-jsiexecutor: 52213d9c9c692ae020b16f7af3b615835e41fe42 + React-jsinspector: 647d56e6485db9255c6b77494085d0a850d03996 + React-jsinspectorcdp: e417478e17e563bf9c25a6601c4d8cd2df7f9a72 + React-jsinspectornetwork: a7abc18ff515c402ba105155c6524795e157bc08 + React-jsinspectortracing: 39e50229c8e1b1376dc4ec48b43759a432983d49 + React-jsitooling: d42b0a3ced5f5f80e1ad4ebbd9d95dfd909df824 + React-jsitracing: d5b57c7e28be599d7a3237c87e051d6f75859441 + React-logger: e4ba9237d477e4cdcd4e67233dd3587e523ef7da + React-Mapbuffer: 47216c2be76e628722597ce78bb0b5b852c743b8 + React-microtasksnativemodule: 135c7f287264f28c405aedd62bd77a97141a4f68 react-native-pager-view: 0b0b445d3cb9f8e9972842edf6ddf892b46bdc55 react-native-safe-area-context: a72764e0eb5d6b79b7450e5d0ae919eb1a4567b4 - React-NativeModulesApple: 71d6462e4b71c937be98abcd077f8823711b1586 - React-oscompat: 807cec62bbd3251a44defc198424c20ee9d1558c - React-perflogger: 1648a6865fea7d777534220e8668541b97572b3f - React-performancecdpmetrics: afb2067814f6f08266a2d0ae60c797a7e9a5e01f - React-performancetimeline: 0279b25161398a11be2cdb0a2c7a4f88b873bce8 - React-RCTActionSheet: 781823fd9a74845b21bfe2b5af8d39e35f0e2c0e - React-RCTAnimation: a4235b1c6b3f48cb20fe48114294b8fb1dc84042 - React-RCTAppDelegate: e6f0d9e5af9d0db4cb300de1b7ea5c1a0533b41b - React-RCTBlob: b3fde1ada2c7a6d41539bf167e717f5b4658e2d8 - React-RCTFabric: c28fafc81a0a125e0c2ca97c9ec25c29e6df43f0 - React-RCTFBReactNativeSpec: 612c7e0b3f5ca3d7a6057d4e4aea987e7cbe7fda - React-RCTImage: cf24fd574632c55d90ace4fe45e96deee27bb7c8 - React-RCTLinking: 9af6960f6f7217b328f6ccaf3ad779de41a0f997 - React-RCTNetwork: d3dbd90087ddcf8517d236c62bfc38dc010ca806 - React-RCTRuntime: 11df4d2d3c7fc884d6150d384a145b28b8db30ba - React-RCTSettings: 734c8a399ec2971da5edcb415e6a1df5b6a6f8f8 - React-RCTText: 645f3a99eacf2b40cb810ab5dbf4b61b42071d32 - React-RCTVibration: dd22d8109e3c22ed49099558345c346fc9857e02 - React-rendererconsistency: 758a49e38560f1c0748466f4a506532d8cb9793f - React-renderercss: d5b029626669c59cf0017012c1cbae5884a0da84 - React-rendererdebug: 473e8c297e0e265ed1cc1c7e6ae533c46c6813d3 - React-RuntimeApple: 3bdd3768c9908ffc6dc6f65c74c14f432bf58acf - React-RuntimeCore: c45189c58b888e387142ccb7f9b1370670cf3496 - React-runtimeexecutor: 0380d24c2329bfddbc015a4b45ae55f0dfa191f7 - React-RuntimeHermes: 4cab15f5de2041b671d2cc1cef77d425934c93a1 - React-runtimescheduler: 5f3b4ddd3820ddbf0878ca785dfcc9506f92cdd1 - React-timing: 52c01e3743d5cc011ac86e5aa2d1acc0685786b3 - React-utils: 3d0e2246dd37f25d358d81ea98d2e2d126346f15 - ReactAppDependencyProvider: b7d0459feccff90d83b7564bb3969b2f00f4cfbb - ReactCodegen: db442551e93da446d257785cf521043187a60eda - ReactCommon: 6ae9ac5259d47fa084d36e526f69c620c53f7a6a + React-NativeModulesApple: 090cebb1ed9c348f05a94fe6dc800dfa1dead547 + React-oscompat: 1a6aa7919259f5f49f1f1cf6041d2941acb6dc70 + React-perflogger: f97ac7a4796dc8b51e1a8a3c3473ab50f4bbe0d1 + React-performancecdpmetrics: 557057331e7163a5dd59bd89a4de355706a96f8b + React-performancetimeline: 68bdf6f04fb888f6afdb25391c1a200ee46cd692 + React-RCTActionSheet: abf57df1aca1a93f2fb018a48cbf9628617e1081 + React-RCTAnimation: eedf2176d131b06b660eedb5994d3b958bef0cce + React-RCTAppDelegate: 95cfb5a0ed4da695397dd25c64638570ab38e3bd + React-RCTBlob: a809bf4b388b616102b68c7a194891300b10cca6 + React-RCTFabric: 9eb7f37275a6a05a66cc3b6402eecb8affaf981e + React-RCTFBReactNativeSpec: 7c2b61217e7c7e7158987f992920092bbfad49f8 + React-RCTImage: 948aaea5a6ce00754779490eedb428a26a87b254 + React-RCTLinking: fe0ef2b12e253b2f8ccc8cf6ef9d9bdff5209741 + React-RCTNetwork: e60409b60529da7c84daab2d7ad53ce8e042afe8 + React-RCTRuntime: f16d661d46c4b1546045aa690a46ef633e32480e + React-RCTSettings: 0238ffe3949e17b069a210bebb453348c82bc703 + React-RCTText: 7baa79da111fa42470bd7338fd6c80f639661400 + React-RCTVibration: b9a95bbd35163dbb31345ce28293f6af972b6e54 + React-rendererconsistency: b10d5a7fab7187ca6224d77b946ed8ebffc27db2 + React-renderercss: f8d7fb3ec8c0e2fad76b268537a5f0e8226dbe1c + React-rendererdebug: 16592fb46948391be053fc6a68f2438c9e6ce1d4 + React-RuntimeApple: c9abd664b70b05d77580195c0e3f030c6fcee82e + React-RuntimeCore: 952f749563dda4c3da1aaf61b37eac162b6f9489 + React-runtimeexecutor: 629714be1c07b5b336530745f6ce003bcf5787bf + React-RuntimeHermes: 1472a050d5d51d765408661b218dd0ab0785a297 + React-runtimescheduler: 2e6567439046a7b59bed99066e2af99889feeca9 + React-timing: 4946f977bab4bc93cd31f3070a2fe13221654db8 + React-utils: 1fea35ba03892bf8ed9842c9d01c4c7639b6ca0b + React-webperformancenativemodule: 87b775b17d135e3fd0dcd20687f13712f7b0be3e + ReactAppDependencyProvider: 1202b833d8cca6c917dabcf679837c34a9ca5723 + ReactCodegen: ddf325dbe8f946a2abecd28102815efccf24e162 + ReactCommon: 9e5f2e80ecaeb6c70f21ae0db29caaff75dabe47 RNCAsyncStorage: 29f0230e1a25f36c20b05f65e2eb8958d6526e82 RNCClipboard: 4b58c780f63676367640f23c8e114e9bd0cf86ac RNCMaskedView: 5ef8c95cbab95334a32763b72896a7b7d07e6299 @@ -3169,10 +3190,10 @@ SPEC CHECKSUMS: RNReanimated: 3b47c33660454c6f9700b463e92daa282030866a RNScreens: 6ced6ae8a526512a6eef6e28c2286e1fc2d378c3 RNSVG: 287504b73fa0e90a605225aa9f852a86d5461e84 - RNWorklets: 991f94e4fa31fc20853e74d5d987426f8580cb0d + RNWorklets: 7119ae08263033c456c80d90794a312f2f88c956 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: ab8f72ebaa01498a48a81e0f2bcb90ffb0643de8 + Yoga: e80c5fabbc3e26311152fa20404cdfa14f16a11f -PODFILE CHECKSUM: db099f48c6dadedd8fc0a430129b75e561867ab9 +PODFILE CHECKSUM: 5d8c04f461eed0f22e86610877d94f2b8b838b8b COCOAPODS: 1.15.2 diff --git a/apps/fabric-example/metro.config.js b/apps/fabric-example/metro.config.js index b05b824d9cc2..cb4f1c4adceb 100644 --- a/apps/fabric-example/metro.config.js +++ b/apps/fabric-example/metro.config.js @@ -34,7 +34,7 @@ let config = { config = mergeConfig(getDefaultConfig(__dirname), config); // Uncomment the following to enable bundle mode. -config = mergeConfig(config, bundleModeMetroConfig); +// config = mergeConfig(config, bundleModeMetroConfig); module.exports = wrapWithReanimatedMetroConfig( mergeConfig(getDefaultConfig(__dirname), config) diff --git a/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java b/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java index ebaad8e622e4..bdf621447dc2 100644 --- a/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java +++ b/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java @@ -8,7 +8,7 @@ import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.queue.MessageQueueThread; import com.facebook.react.common.annotations.FrameworkAPI; -import com.facebook.react.fabric.BigStringBufferWrapper; +import com.facebook.react.fabric.BundleWrapper; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.turbomodule.core.CallInvokerHolderImpl; import com.facebook.soloader.SoLoader; @@ -38,7 +38,7 @@ protected HybridData getHybridData() { private final AndroidUIScheduler mAndroidUIScheduler; private final AnimationFrameQueue mAnimationFrameQueue; private boolean mSlowAnimationsEnabled; - private BigStringBufferWrapper mScriptWrapper = null; + private BundleWrapper mBundleWrapper = null; private String mSourceURL = null; /** @@ -53,7 +53,7 @@ private native HybridData initHybrid( MessageQueueThread messageQueueThread, CallInvokerHolderImpl jsCallInvokerHolder, AndroidUIScheduler androidUIScheduler, - BigStringBufferWrapper scriptWrapper, + BundleWrapper bundleWrapper, String sourceURL); public WorkletsModule(ReactApplicationContext reactContext) { @@ -80,7 +80,7 @@ public boolean installTurboModule() { var jsCallInvokerHolder = JSCallInvokerResolver.getJSCallInvokerHolder(context); mSourceURL = context.getSourceURL(); - mScriptWrapper = context.getBundle(); + mBundleWrapper = context.getBundle(); mHybridData = initHybrid( @@ -88,7 +88,7 @@ public boolean installTurboModule() { mMessageQueueThread, jsCallInvokerHolder, mAndroidUIScheduler, - mScriptWrapper, + mBundleWrapper, mSourceURL); return true; } diff --git a/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.cpp b/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.cpp index 84979ee67e5c..9f8f67af2347 100644 --- a/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.cpp +++ b/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.cpp @@ -52,8 +52,7 @@ jni::local_ref WorkletsModule::initHybrid( jni::alias_ref androidUIScheduler #ifdef WORKLETS_BUNDLE_MODE , - jni::alias_ref - scriptWrapper, + jni::alias_ref bundleWrapper, const std::string &sourceURL #endif // WORKLETS_BUNDLE_MODE ) { @@ -63,7 +62,7 @@ jni::local_ref WorkletsModule::initHybrid( std::shared_ptr script = nullptr; #ifdef WORKLETS_BUNDLE_MODE - script = scriptWrapper->cthis()->getScript(); + script = bundleWrapper->cthis()->getBundle(); #else const auto sourceURL = std::string{}; #endif // WORKLETS_BUNDLE_MODE diff --git a/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.h b/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.h index d63c98f79523..3770363697f4 100644 --- a/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.h +++ b/packages/react-native-worklets/android/src/main/cpp/worklets/android/WorkletsModule.h @@ -6,7 +6,7 @@ #include #include #ifdef WORKLETS_BUNDLE_MODE -#include +#include #endif // WORKLETS_BUNDLE_MODE #include @@ -35,8 +35,7 @@ class WorkletsModule : public jni::HybridClass { androidUIScheduler #ifdef WORKLETS_BUNDLE_MODE , - jni::alias_ref - scriptWrapper, + jni::alias_ref bundleWrapper, const std::string &sourceURL #endif // WORKLETS_BUNDLE_MODE ); @@ -54,7 +53,7 @@ class WorkletsModule : public jni::HybridClass { jni::alias_ref messageQueueThread, const std::shared_ptr &jsCallInvoker, const std::shared_ptr &uiScheduler, - const std::shared_ptr &script, + const std::shared_ptr &bundle, const std::string &sourceURL); void invalidateCpp(); diff --git a/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm b/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm index bc3adfbf07c9..d27547abf110 100644 --- a/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm +++ b/packages/react-native-worklets/apple/worklets/apple/WorkletsModule.mm @@ -12,10 +12,10 @@ #import #import -#if __has_include() +#if __has_include() // Bundle mode -#import -#endif // __has_include() +#import +#endif // __has_include() using worklets::RNRuntimeWorkletDecorator; using worklets::WorkletsModuleProxy; @@ -70,7 +70,7 @@ - (void)checkBridgeless std::string sourceURL = ""; std::shared_ptr script = nullptr; #ifdef WORKLETS_BUNDLE_MODE - script = [[bundleProvider_ getBundle] getBuffer]; + script = [bundleProvider_ getBundle]; sourceURL = [[bundleProvider_ getSourceURL] UTF8String]; #endif // WORKLETS_BUNDLE_MODE diff --git a/yarn.lock b/yarn.lock index 45a1c8830138..89f92e4085e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20862,7 +20862,7 @@ __metadata: "react-native@patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch": version: 0.82.0-rc.4 - resolution: "react-native@patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch::version=0.82.0-rc.4&hash=7425c0" + resolution: "react-native@patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch::version=0.82.0-rc.4&hash=d3b1fc" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" "@react-native/assets-registry": "npm:0.82.0-rc.4" @@ -20907,7 +20907,7 @@ __metadata: optional: true bin: react-native: cli.js - checksum: 10/fcf080abced656fa3bc7c0b4c352074ab6dd158c3182c0d19b758f33eb039751dde6322b46024a5a8ceb32112bffe8eb3afa31f0a17c301ceed25d2b0d1a8c8f + checksum: 10/dce22cfc5ac4ec32dfc280909b87dba94714f3e2ad92fccc13c6b746fe4f3a8e56e1c03a8f25ae55074b4cc51cb737cd4bf9838e1cf9d2ab1e85031669cd9dd9 languageName: node linkType: hard From e1b49157be71c4a273de6176144afede096a6691 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Mon, 29 Sep 2025 18:38:09 +0200 Subject: [PATCH 3/7] chore: update patch file --- scripts/patches/bundle-mode.patch | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/patches/bundle-mode.patch b/scripts/patches/bundle-mode.patch index 4f538f424567..1d655ea51754 100644 --- a/scripts/patches/bundle-mode.patch +++ b/scripts/patches/bundle-mode.patch @@ -75,29 +75,28 @@ index cb4f1c4adc..b05b824d9c 100644 module.exports = wrapWithReanimatedMetroConfig( mergeConfig(getDefaultConfig(__dirname), config) diff --git a/apps/fabric-example/package.json b/apps/fabric-example/package.json -index 7810a059bc..b8095d694e 100644 +index 64c031cba0..0ecda6e036 100644 --- a/apps/fabric-example/package.json +++ b/apps/fabric-example/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "common-app": "workspace:*", -- "react-native": "0.82.0-rc.0" -+ "react-native": "patch:react-native@npm%3A0.82.0-rc.0#~/.yarn/patches/react-native-npm-0.82.0-rc.0-4775a171a4.patch" +- "react-native": "0.82.0-rc.4" ++ "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" }, "devDependencies": { "prettier": "^3.3.3" diff --git a/package.json b/package.json -index 6a77357267..fa77b14543 100644 +index 6a77357267..b13ccd7ddc 100644 --- a/package.json +++ b/package.json -@@ -49,5 +49,28 @@ +@@ -49,5 +49,27 @@ "prettier": "^3.3.3", "prettier-plugin-jsdoc": "^1.3.0", "typescript": "5.8.3" + }, + "resolutions": { -+ "@react-native/community-cli-plugin@npm:0.80.0": "patch:@react-native/community-cli-plugin@npm%3A0.80.0#~/.yarn/patches/@react-native-community-cli-plugin-npm-0.80.0-4137b3f35c.patch", + "metro@npm:^0.82.0": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", + "metro@npm:^0.82.2": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", + "metro@npm:0.82.4": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", From 56346ad642bd0929fdb78039cdde24860c8f4a97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Mon, 29 Sep 2025 18:59:14 +0200 Subject: [PATCH 4/7] chore: update packages --- packages/react-native-reanimated/package.json | 2 +- packages/react-native-worklets/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native-reanimated/package.json b/packages/react-native-reanimated/package.json index b49112e08d1f..aa8d26ab8290 100644 --- a/packages/react-native-reanimated/package.json +++ b/packages/react-native-reanimated/package.json @@ -147,7 +147,7 @@ "madge": "^5.0.1", "prettier": "^3.3.3", "react": "19.1.1", - "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", + "react-native": "0.82.0-rc.4", "react-native-builder-bob": "0.40.13", "react-native-gesture-handler": "2.28.0", "react-native-svg": "15.12.1", diff --git a/packages/react-native-worklets/package.json b/packages/react-native-worklets/package.json index 655cd1874b74..ac3fcc6fcb92 100644 --- a/packages/react-native-worklets/package.json +++ b/packages/react-native-worklets/package.json @@ -83,7 +83,7 @@ "madge": "^5.0.1", "prettier": "^3.3.3", "react": "19.1.1", - "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch", + "react-native": "0.82.0-rc.4", "react-native-builder-bob": "0.40.13", "typescript": "5.8.3" }, From 48f51a1a8fe76ae5460897b8745e4a53923098e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Mon, 29 Sep 2025 19:00:10 +0200 Subject: [PATCH 5/7] chore: update packages --- scripts/patches/bundle-mode.patch | 40 ++++--------------------------- 1 file changed, 5 insertions(+), 35 deletions(-) diff --git a/scripts/patches/bundle-mode.patch b/scripts/patches/bundle-mode.patch index 1d655ea51754..351f2acec26f 100644 --- a/scripts/patches/bundle-mode.patch +++ b/scripts/patches/bundle-mode.patch @@ -74,48 +74,18 @@ index cb4f1c4adc..b05b824d9c 100644 module.exports = wrapWithReanimatedMetroConfig( mergeConfig(getDefaultConfig(__dirname), config) -diff --git a/apps/fabric-example/package.json b/apps/fabric-example/package.json -index 64c031cba0..0ecda6e036 100644 ---- a/apps/fabric-example/package.json -+++ b/apps/fabric-example/package.json -@@ -11,7 +11,7 @@ - }, - "dependencies": { - "common-app": "workspace:*", -- "react-native": "0.82.0-rc.4" -+ "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" - }, - "devDependencies": { - "prettier": "^3.3.3" diff --git a/package.json b/package.json -index 6a77357267..b13ccd7ddc 100644 +index 6a77357267..df6817cce5 100644 --- a/package.json +++ b/package.json -@@ -49,5 +49,27 @@ +@@ -49,5 +49,10 @@ "prettier": "^3.3.3", "prettier-plugin-jsdoc": "^1.3.0", "typescript": "5.8.3" + }, + "resolutions": { -+ "metro@npm:^0.82.0": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", -+ "metro@npm:^0.82.2": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", -+ "metro@npm:0.82.4": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", -+ "metro@npm:0.80.12": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", -+ "metro@npm:0.82.1": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", -+ "metro@npm:0.82.3": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", -+ "metro@npm:^0.80.3": "patch:metro@npm%3A0.82.4#~/.yarn/patches/metro-npm-0.82.4-2c6a795208.patch", -+ "metro@npm:^0.83.1": "patch:metro@npm%3A0.83.1#~/.yarn/patches/metro-npm-0.83.1-241fe42591.patch", -+ "metro@npm:0.83.1": "patch:metro@npm%3A0.83.1#~/.yarn/patches/metro-npm-0.83.1-241fe42591.patch", -+ "metro@npm:0.82.5": "patch:metro@npm%3A0.83.1#~/.yarn/patches/metro-npm-0.83.1-241fe42591.patch", -+ "metro-runtime@npm:^0.80.3": "patch:metro-runtime@npm%3A0.82.4#~/.yarn/patches/metro-runtime-npm-0.82.4-32e8f779f8.patch", -+ "metro-runtime@npm:0.80.12": "patch:metro-runtime@npm%3A0.82.4#~/.yarn/patches/metro-runtime-npm-0.82.4-32e8f779f8.patch", -+ "metro-runtime@npm:0.82.1": "patch:metro-runtime@npm%3A0.82.4#~/.yarn/patches/metro-runtime-npm-0.82.4-32e8f779f8.patch", -+ "metro-runtime@npm:0.82.3": "patch:metro-runtime@npm%3A0.82.4#~/.yarn/patches/metro-runtime-npm-0.82.4-32e8f779f8.patch", -+ "metro-runtime@npm:^0.82.0": "patch:metro-runtime@npm%3A0.82.4#~/.yarn/patches/metro-runtime-npm-0.82.4-32e8f779f8.patch", -+ "metro-runtime@npm:^0.82.2": "patch:metro-runtime@npm%3A0.82.4#~/.yarn/patches/metro-runtime-npm-0.82.4-32e8f779f8.patch", -+ "metro-runtime@npm:0.82.4": "patch:metro-runtime@npm%3A0.82.4#~/.yarn/patches/metro-runtime-npm-0.82.4-32e8f779f8.patch", -+ "metro-runtime@npm:^0.83.1": "patch:metro-runtime@npm%3A0.83.1#~/.yarn/patches/metro-runtime-npm-0.83.1-c3d616063e.patch", -+ "metro-runtime@npm:0.83.1": "patch:metro-runtime@npm%3A0.83.1#~/.yarn/patches/metro-runtime-npm-0.83.1-c3d616063e.patch", -+ "metro-runtime@npm:0.82.5": "patch:metro-runtime@npm%3A0.83.1#~/.yarn/patches/metro-runtime-npm-0.83.1-c3d616063e.patch" ++ "metro": "patch:metro@npm%3A0.83.1#~/.yarn/patches/metro-npm-0.83.1-241fe42591.patch", ++ "metro-runtime": "patch:metro-runtime@npm%3A0.83.1#~/.yarn/patches/metro-runtime-npm-0.83.1-c3d616063e.patch", ++ "react-native": "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" } } From 7ef17b1b9447104d825a693447143ae245001975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Mon, 29 Sep 2025 19:01:56 +0200 Subject: [PATCH 6/7] chore: update packages --- yarn.lock | 361 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 274 insertions(+), 87 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9801026139a0..72af579076d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5947,6 +5947,23 @@ __metadata: languageName: node linkType: hard +"@react-native-tvos/virtualized-lists@npm:0.81.1-1": + version: 0.81.1-1 + resolution: "@react-native-tvos/virtualized-lists@npm:0.81.1-1" + dependencies: + invariant: "npm:^2.2.4" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@types/react": ^19.1.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/ead69272d63413836d00f0da654e6c76b2fc19c07435ec051fdbd131d93440461afda68c433d35aa6843d20ed05632c4c57d8fcccbbc2cf21b93ca65ed630da2 + languageName: node + linkType: hard + "@react-native/assets-registry@npm:0.75.4": version: 0.75.4 resolution: "@react-native/assets-registry@npm:0.75.4" @@ -5954,6 +5971,20 @@ __metadata: languageName: node linkType: hard +"@react-native/assets-registry@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/assets-registry@npm:0.80.0" + checksum: 10/13da4d9561db9267ca4577f4c19a35e6c992504fcd72f3431267b554b8e94891b7e59eeca06a2e8ebbe2b42d15c0ba3feffb1107f1095a329b0d0164a8b4cc93 + languageName: node + linkType: hard + +"@react-native/assets-registry@npm:0.81.1": + version: 0.81.1 + resolution: "@react-native/assets-registry@npm:0.81.1" + checksum: 10/eb9a69695f6354eb61b68a5ff056ee91f430ae435311f1e8aa72b2c40fdeecd0ad7c7f2334f9b7b6e60e645f6f900353405e4e95145e95fb02aadd13fe867a76 + languageName: node + linkType: hard + "@react-native/assets-registry@npm:0.82.0-rc.4": version: 0.82.0-rc.4 resolution: "@react-native/assets-registry@npm:0.82.0-rc.4" @@ -6173,37 +6204,35 @@ __metadata: languageName: node linkType: hard -"@react-native/codegen@npm:0.81.1": - version: 0.81.1 - resolution: "@react-native/codegen@npm:0.81.1" +"@react-native/codegen@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/codegen@npm:0.80.0" dependencies: - "@babel/core": "npm:^7.25.2" - "@babel/parser": "npm:^7.25.3" glob: "npm:^7.1.1" - hermes-parser: "npm:0.29.1" + hermes-parser: "npm:0.28.1" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10/9097dbcf9025dd580c2fbf0c0162c63a0b748916fce6afb159a1f3ee4cfd77fda391b8b260396bf2a298d4de8a61b5e7fb2315a4b160997dcfee3c7d2d802d5e + checksum: 10/149588d22ed880e80fa4e78b351216485ccfd87b6b86baf96fe7e13874ecb006bacceb009802272895fd42cdb064254e1b82489032b8d366f7f41ac3a1600d77 languageName: node linkType: hard -"@react-native/codegen@npm:0.82.0-rc.4": - version: 0.82.0-rc.4 - resolution: "@react-native/codegen@npm:0.82.0-rc.4" +"@react-native/codegen@npm:0.81.1": + version: 0.81.1 + resolution: "@react-native/codegen@npm:0.81.1" dependencies: "@babel/core": "npm:^7.25.2" "@babel/parser": "npm:^7.25.3" glob: "npm:^7.1.1" - hermes-parser: "npm:0.32.0" + hermes-parser: "npm:0.29.1" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10/c89fcec1d31fefa8f0c95c1395fc7cd8a4682b74b01c5f6e65ba2e81805ee3098f086a9d0bf98b738e4baa72e07c66b1f34009d3765c2762af67579252837a3a + checksum: 10/9097dbcf9025dd580c2fbf0c0162c63a0b748916fce6afb159a1f3ee4cfd77fda391b8b260396bf2a298d4de8a61b5e7fb2315a4b160997dcfee3c7d2d802d5e languageName: node linkType: hard @@ -6243,6 +6272,50 @@ __metadata: languageName: node linkType: hard +"@react-native/community-cli-plugin@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/community-cli-plugin@npm:0.80.0" + dependencies: + "@react-native/dev-middleware": "npm:0.80.0" + chalk: "npm:^4.0.0" + debug: "npm:^4.4.0" + invariant: "npm:^2.2.4" + metro: "npm:^0.82.2" + metro-config: "npm:^0.82.2" + metro-core: "npm:^0.82.2" + semver: "npm:^7.1.3" + peerDependencies: + "@react-native-community/cli": "*" + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + checksum: 10/2391aa8f63555e3da68466f5eae2d1ac0ee749ef92dc2217c89d3133dad2268cea3f4b7be7dd7a0d64ba96e048c4c1b3fee7a1123fce8521a561f7ec5aac65fe + languageName: node + linkType: hard + +"@react-native/community-cli-plugin@npm:0.81.1": + version: 0.81.1 + resolution: "@react-native/community-cli-plugin@npm:0.81.1" + dependencies: + "@react-native/dev-middleware": "npm:0.81.1" + debug: "npm:^4.4.0" + invariant: "npm:^2.2.4" + metro: "npm:^0.83.1" + metro-config: "npm:^0.83.1" + metro-core: "npm:^0.83.1" + semver: "npm:^7.1.3" + peerDependencies: + "@react-native-community/cli": "*" + "@react-native/metro-config": "*" + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + "@react-native/metro-config": + optional: true + checksum: 10/d6dd960010f0cb2be94fbc48b7636af808c36732cc0533a70e69abf6a484ee40e735ca835b0d1ac97809ea9dd28f591c0abe2fb6c7b679a746eae3374a62ee8b + languageName: node + linkType: hard + "@react-native/community-cli-plugin@npm:0.82.0-rc.4": version: 0.82.0-rc.4 resolution: "@react-native/community-cli-plugin@npm:0.82.0-rc.4" @@ -6273,6 +6346,13 @@ __metadata: languageName: node linkType: hard +"@react-native/debugger-frontend@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/debugger-frontend@npm:0.80.0" + checksum: 10/cd53d067f5b5e579e2d74fef97fc7a6df15eeb0ff6e7a3c6b607a89be553dcc18bda6a1bec3867b398fc431ebeabe42bb281b13738c6e6fec02540d05c6dd9c9 + languageName: node + linkType: hard + "@react-native/debugger-frontend@npm:0.81.1": version: 0.81.1 resolution: "@react-native/debugger-frontend@npm:0.81.1" @@ -6317,6 +6397,25 @@ __metadata: languageName: node linkType: hard +"@react-native/dev-middleware@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/dev-middleware@npm:0.80.0" + dependencies: + "@isaacs/ttlcache": "npm:^1.4.1" + "@react-native/debugger-frontend": "npm:0.80.0" + chrome-launcher: "npm:^0.15.2" + chromium-edge-launcher: "npm:^0.2.0" + connect: "npm:^3.6.5" + debug: "npm:^4.4.0" + invariant: "npm:^2.2.4" + nullthrows: "npm:^1.1.1" + open: "npm:^7.0.3" + serve-static: "npm:^1.16.2" + ws: "npm:^6.2.3" + checksum: 10/32b7bcb92ea48577d87efb9b9d8fab07991e7426436ebb42cad61553252647037d179729f5c12fda62cabbc6bb35687f7d0820152a4dad38bcb356e45082c8e1 + languageName: node + linkType: hard + "@react-native/dev-middleware@npm:0.81.1": version: 0.81.1 resolution: "@react-native/dev-middleware@npm:0.81.1" @@ -6453,6 +6552,20 @@ __metadata: languageName: node linkType: hard +"@react-native/gradle-plugin@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/gradle-plugin@npm:0.80.0" + checksum: 10/e2cfcb8c5a16f42ca5912dc731084a4a693682921c64653a95c58025c7c9666f169d7af6eb831e33e5362a586d1b2b4487dd7e17c7f9757c639d9d8d9167dbb0 + languageName: node + linkType: hard + +"@react-native/gradle-plugin@npm:0.81.1": + version: 0.81.1 + resolution: "@react-native/gradle-plugin@npm:0.81.1" + checksum: 10/9d75807431bd8671147eb5b2e894de3d1f8a6bd6b20f3478158fb10696e4505d8888934c909b5774aa48a1cfee2c1dcd0e4c6d0b3c88bfa69bba61466b314582 + languageName: node + linkType: hard + "@react-native/gradle-plugin@npm:0.82.0-rc.4": version: 0.82.0-rc.4 resolution: "@react-native/gradle-plugin@npm:0.82.0-rc.4" @@ -6467,6 +6580,13 @@ __metadata: languageName: node linkType: hard +"@react-native/js-polyfills@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/js-polyfills@npm:0.80.0" + checksum: 10/a1db21e65ddb2b24d499ba60abb20446ba05b5a811389adf10d7a04dd11ffd7f352050c723359f7331ec877ab5b7be64f4b19c25a249ec56cbd3b3720df29748 + languageName: node + linkType: hard + "@react-native/js-polyfills@npm:0.81.1": version: 0.81.1 resolution: "@react-native/js-polyfills@npm:0.81.1" @@ -6481,13 +6601,6 @@ __metadata: languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.82.0-rc.4": - version: 0.82.0-rc.4 - resolution: "@react-native/js-polyfills@npm:0.82.0-rc.4" - checksum: 10/f6de1f31a1b7aacc3cccd858050e6f0db2d910fd4cd9f9f1b4b16eed75fb4d74d8fec9a5430e7305a709d6556e57d1aade4e7651301c5442cc3119964904a5b7 - languageName: node - linkType: hard - "@react-native/metro-babel-transformer@npm:0.75.4": version: 0.75.4 resolution: "@react-native/metro-babel-transformer@npm:0.75.4" @@ -6580,6 +6693,13 @@ __metadata: languageName: node linkType: hard +"@react-native/normalize-colors@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/normalize-colors@npm:0.80.0" + checksum: 10/ff44f237030434de81c8bed2ce823ae73351b658fd5a0565565aa80d796c30c5d5024d44bfaa005f3142e2dd3f02dead8baa2fa3f7578aee16540c22bd07d01e + languageName: node + linkType: hard + "@react-native/normalize-colors@npm:0.81.1": version: 0.81.1 resolution: "@react-native/normalize-colors@npm:0.81.1" @@ -6622,6 +6742,23 @@ __metadata: languageName: node linkType: hard +"@react-native/virtualized-lists@npm:0.80.0": + version: 0.80.0 + resolution: "@react-native/virtualized-lists@npm:0.80.0" + dependencies: + invariant: "npm:^2.2.4" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@types/react": ^19.0.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/70d17f1226a4d0b650ced1ea1e412b4bd167ed4aea956f1d51f036de543129f65af9a926edab1204644181793e5c3b595db9893bb675cf3da92c4a084102874b + languageName: node + linkType: hard + "@react-native/virtualized-lists@npm:0.82.0-rc.4": version: 0.82.0-rc.4 resolution: "@react-native/virtualized-lists@npm:0.82.0-rc.4" @@ -9246,6 +9383,15 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-hermes-parser@npm:0.28.1, babel-plugin-syntax-hermes-parser@npm:^0.28.0": + version: 0.28.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" + dependencies: + hermes-parser: "npm:0.28.1" + checksum: 10/2cbc921e663463480ead9ccc8bb229a5196032367ba2b5ccb18a44faa3afa84b4dc493297749983b9a837a3d76b0b123664aecc06f9122618c3246f03e076a9d + languageName: node + linkType: hard + "babel-plugin-syntax-hermes-parser@npm:0.29.1": version: 0.29.1 resolution: "babel-plugin-syntax-hermes-parser@npm:0.29.1" @@ -9273,15 +9419,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:^0.28.0": - version: 0.28.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" - dependencies: - hermes-parser: "npm:0.28.1" - checksum: 10/2cbc921e663463480ead9ccc8bb229a5196032367ba2b5ccb18a44faa3afa84b4dc493297749983b9a837a3d76b0b123664aecc06f9122618c3246f03e076a9d - languageName: node - linkType: hard - "babel-plugin-transform-flow-enums@npm:^0.0.2": version: 0.0.2 resolution: "babel-plugin-transform-flow-enums@npm:0.0.2" @@ -10443,7 +10580,7 @@ __metadata: patch-package: "npm:^8.0.0" prettier: "npm:^3.3.3" react: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" + react-native: "npm:0.82.0-rc.4" react-native-gesture-handler: "npm:2.28.0" react-native-monorepo-tools: "npm:^1.2.1" react-native-pager-view: "npm:7.0.0" @@ -13431,7 +13568,7 @@ __metadata: dependencies: common-app: "workspace:*" prettier: "npm:^3.3.3" - react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" + react-native: "npm:0.82.0-rc.4" languageName: unknown linkType: soft @@ -17254,7 +17391,7 @@ __metadata: common-app: "workspace:*" prettier: "npm:^3.3.3" react: "npm:18.3.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" + react-native: "npm:0.80.0" react-native-macos: "npm:^0.75.13" react-native-reanimated: "workspace:*" languageName: unknown @@ -17590,15 +17727,15 @@ __metadata: languageName: node linkType: hard -"metro-cache@npm:0.82.4": - version: 0.82.4 - resolution: "metro-cache@npm:0.82.4" +"metro-cache@npm:0.82.5": + version: 0.82.5 + resolution: "metro-cache@npm:0.82.5" dependencies: exponential-backoff: "npm:^3.1.1" flow-enums-runtime: "npm:^0.0.6" https-proxy-agent: "npm:^7.0.5" - metro-core: "npm:0.82.4" - checksum: 10/801a6b552266f1d3291555c58c371c34be563effe7d33de6d20ac94b7e6f95893ceda9219f49bf83a1e4b466fdbc588007ec97da7f19b4843e184404e66f0bd6 + metro-core: "npm:0.82.5" + checksum: 10/e90299ae6e411349e5283c57a69ec0d4dd8a4424c3a85078d72d740b425b3dfc77078601ab426e6fb35bcb985e835374846e89f9730f4db413424bd48d9df863 languageName: node linkType: hard @@ -17679,14 +17816,14 @@ __metadata: resolution: "metro-config@npm:0.83.2" dependencies: connect: "npm:^3.6.5" - cosmiconfig: "npm:^5.0.5" flow-enums-runtime: "npm:^0.0.6" - jest-validate: "npm:^29.6.3" - metro: "npm:0.80.12" - metro-cache: "npm:0.80.12" - metro-core: "npm:0.80.12" - metro-runtime: "npm:0.80.12" - checksum: 10/2d11745d32e8992b78159c275dc54b08bf258871f274634f9824540f1ec80a9b1a9d7eb5493b52078a5a68cccd4fd688cd846dd0802aea2f065b5588e98eb146 + jest-validate: "npm:^29.7.0" + metro: "npm:0.83.2" + metro-cache: "npm:0.83.2" + metro-core: "npm:0.83.2" + metro-runtime: "npm:0.83.2" + yaml: "npm:^2.6.1" + checksum: 10/830696bb515ad421f1a25003d64c01bca580b2485c69266e03faf0c8f36f55283388fda5505f53ae400f8298502f712aab6c76655e45996907588288d2586c6b languageName: node linkType: hard @@ -17701,14 +17838,14 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.82.4": - version: 0.82.4 - resolution: "metro-core@npm:0.82.4" +"metro-core@npm:0.82.5, metro-core@npm:^0.82.2": + version: 0.82.5 + resolution: "metro-core@npm:0.82.5" dependencies: flow-enums-runtime: "npm:^0.0.6" lodash.throttle: "npm:^4.1.1" - metro-resolver: "npm:0.82.4" - checksum: 10/9cc7539f8d9e33e4b1f6ef93e086ec99559bbaba7319a0f61927532f93cb57c1c0d7ca99dbc01f2cd642be21ba5565a8b9d101db8b6f2b6091cf2e9a2f844cac + metro-resolver: "npm:0.82.5" + checksum: 10/e97282e0164042d1206fee7ac764eddb33f02abb238c139f0d5804a284a2c9e40683293913e29c900b95ee257f85cd18803a07ab3143481bdddc436e137bdf05 languageName: node linkType: hard @@ -17905,12 +18042,12 @@ __metadata: languageName: node linkType: hard -"metro-resolver@npm:0.82.4": - version: 0.82.4 - resolution: "metro-resolver@npm:0.82.4" +"metro-resolver@npm:0.82.5": + version: 0.82.5 + resolution: "metro-resolver@npm:0.82.5" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10/15b2f1619e3979f9a9f3456ceeb07324354bcb57f22342b6a99e19cdb5d7421d65e03d608f1879231a17fa138cedb2ff10292a3a7f44d3c3bc6be9fd682680c1 + checksum: 10/2ccabf3d9e1f931496b0cbc7075713b79cd6989f802607c845d2ce2fb0a1eeab8133d045fd92d8654ce7a943a276b2ab59e9e1039c9b6744a26d0107554d6f2f languageName: node linkType: hard @@ -17989,21 +18126,21 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.82.4": - version: 0.82.4 - resolution: "metro-source-map@npm:0.82.4" +"metro-source-map@npm:0.82.5, metro-source-map@npm:^0.82.2": + version: 0.82.5 + resolution: "metro-source-map@npm:0.82.5" dependencies: "@babel/traverse": "npm:^7.25.3" "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" "@babel/types": "npm:^7.25.2" flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-symbolicate: "npm:0.82.4" + metro-symbolicate: "npm:0.82.5" nullthrows: "npm:^1.1.1" - ob1: "npm:0.82.4" + ob1: "npm:0.82.5" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" - checksum: 10/bd3b7bc2ec3474b2315cf14d36b77499aa04d9f8d8b70aff22b755da2cb9ed6850e38bfcea2bfd3ffd0704a17033e93965bb9013eefbb8a94e269e1221519a93 + checksum: 10/8731c6257afa7bf2b460d4059d7fea1498c91d982b09e536e6dda73e166c7155ceea2eb7709dbea6d1e10a59be746ec9a7b3e5000e5cc79fd38d30d833c181c6 languageName: node linkType: hard @@ -18060,19 +18197,19 @@ __metadata: languageName: node linkType: hard -"metro-symbolicate@npm:0.82.4": - version: 0.82.4 - resolution: "metro-symbolicate@npm:0.82.4" +"metro-symbolicate@npm:0.82.5": + version: 0.82.5 + resolution: "metro-symbolicate@npm:0.82.5" dependencies: flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-source-map: "npm:0.82.4" + metro-source-map: "npm:0.82.5" nullthrows: "npm:^1.1.1" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" bin: metro-symbolicate: src/index.js - checksum: 10/264f84b6062948321c0180d6757bf87eefb517e363e5593a4062ff26172fbce3a6fb789e1907ec2002180fc93edc2ce9911419a8c89065fcdab278d1e5e5c29f + checksum: 10/593e853b702f3ff2d3f9e6677fcfef832cf3373506a6116a9ec5e3d3f6ab46f83af34167cfd6d53a52cda2238a504b7bac63436dc8b59a6c5d3da54bce9140ad languageName: node linkType: hard @@ -19441,12 +19578,12 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.82.4": - version: 0.82.4 - resolution: "ob1@npm:0.82.4" +"ob1@npm:0.82.5": + version: 0.82.5 + resolution: "ob1@npm:0.82.5" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10/8385f5a20195c5c6e61bd18528a10baebe2287dd67fcf5721efeffe89dc61c7ab2b6c56ae9c6649687dda80a20663c33c18e4fc5cc651fd53e6befed3b9d9cf1 + checksum: 10/3faa161e5b5307188b6bbbf7e21727b1e434b8f6c31c51386808b2efd5e7238cf85a7ce71416d9a3f073625afb5a2212f80ec267996dc88fe086944adbb525d9 languageName: node linkType: hard @@ -20668,7 +20805,7 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^6.1.5": +"react-devtools-core@npm:^6.1.1, react-devtools-core@npm:^6.1.5": version: 6.1.5 resolution: "react-devtools-core@npm:6.1.5" dependencies: @@ -20970,7 +21107,7 @@ __metadata: madge: "npm:^5.0.1" prettier: "npm:^3.3.3" react: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" + react-native: "npm:0.82.0-rc.4" react-native-builder-bob: "npm:0.40.13" react-native-gesture-handler: "npm:2.28.0" react-native-is-edge-to-edge: "npm:^1.2.1" @@ -21093,7 +21230,7 @@ __metadata: madge: "npm:^5.0.1" prettier: "npm:^3.3.3" react: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" + react-native: "npm:0.82.0-rc.4" react-native-builder-bob: "npm:0.40.13" semver: "npm:7.7.2" typescript: "npm:5.8.3" @@ -21104,6 +21241,57 @@ __metadata: languageName: unknown linkType: soft +"react-native@npm:0.80.0": + version: 0.80.0 + resolution: "react-native@npm:0.80.0" + dependencies: + "@jest/create-cache-key-function": "npm:^29.7.0" + "@react-native/assets-registry": "npm:0.80.0" + "@react-native/codegen": "npm:0.80.0" + "@react-native/community-cli-plugin": "npm:0.80.0" + "@react-native/gradle-plugin": "npm:0.80.0" + "@react-native/js-polyfills": "npm:0.80.0" + "@react-native/normalize-colors": "npm:0.80.0" + "@react-native/virtualized-lists": "npm:0.80.0" + abort-controller: "npm:^3.0.0" + anser: "npm:^1.4.9" + ansi-regex: "npm:^5.0.0" + babel-jest: "npm:^29.7.0" + babel-plugin-syntax-hermes-parser: "npm:0.28.1" + base64-js: "npm:^1.5.1" + chalk: "npm:^4.0.0" + commander: "npm:^12.0.0" + flow-enums-runtime: "npm:^0.0.6" + glob: "npm:^7.1.1" + invariant: "npm:^2.2.4" + jest-environment-node: "npm:^29.7.0" + memoize-one: "npm:^5.0.0" + metro-runtime: "npm:^0.82.2" + metro-source-map: "npm:^0.82.2" + nullthrows: "npm:^1.1.1" + pretty-format: "npm:^29.7.0" + promise: "npm:^8.3.0" + react-devtools-core: "npm:^6.1.1" + react-refresh: "npm:^0.14.0" + regenerator-runtime: "npm:^0.13.2" + scheduler: "npm:0.26.0" + semver: "npm:^7.1.3" + stacktrace-parser: "npm:^0.1.10" + whatwg-fetch: "npm:^3.0.0" + ws: "npm:^6.2.3" + yargs: "npm:^17.6.2" + peerDependencies: + "@types/react": ^19.1.0 + react: ^19.1.0 + peerDependenciesMeta: + "@types/react": + optional: true + bin: + react-native: cli.js + checksum: 10/3843c65358005aa2bb6d5b1b2a6a2d3ba011fb5f62428e19912418e0ce650e5a6bd51104690fe4df4e65a929b19589ff18929258c811b8d8c25c253c7b300141 + languageName: node + linkType: hard + "react-native@npm:0.82.0-rc.4": version: 0.82.0-rc.4 resolution: "react-native@npm:0.82.0-rc.4" @@ -21155,28 +21343,27 @@ __metadata: languageName: node linkType: hard -"react-native@patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch": - version: 0.82.0-rc.4 - resolution: "react-native@patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch::version=0.82.0-rc.4&hash=d3b1fc" +"react-native@npm:react-native-tvos@0.81.1-1": + version: 0.81.1-1 + resolution: "react-native-tvos@npm:0.81.1-1" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.82.0-rc.4" - "@react-native/codegen": "npm:0.82.0-rc.4" - "@react-native/community-cli-plugin": "npm:0.82.0-rc.4" - "@react-native/gradle-plugin": "npm:0.82.0-rc.4" - "@react-native/js-polyfills": "npm:0.82.0-rc.4" - "@react-native/normalize-colors": "npm:0.82.0-rc.4" - "@react-native/virtualized-lists": "npm:0.82.0-rc.4" + "@react-native-tvos/virtualized-lists": "npm:0.81.1-1" + "@react-native/assets-registry": "npm:0.81.1" + "@react-native/codegen": "npm:0.81.1" + "@react-native/community-cli-plugin": "npm:0.81.1" + "@react-native/gradle-plugin": "npm:0.81.1" + "@react-native/js-polyfills": "npm:0.81.1" + "@react-native/normalize-colors": "npm:0.81.1" abort-controller: "npm:^3.0.0" anser: "npm:^1.4.9" ansi-regex: "npm:^5.0.0" babel-jest: "npm:^29.7.0" - babel-plugin-syntax-hermes-parser: "npm:0.32.0" + babel-plugin-syntax-hermes-parser: "npm:0.29.1" base64-js: "npm:^1.5.1" commander: "npm:^12.0.0" flow-enums-runtime: "npm:^0.0.6" glob: "npm:^7.1.1" - hermes-compiler: "npm:0.0.0" invariant: "npm:^2.2.4" jest-environment-node: "npm:^29.7.0" memoize-one: "npm:^5.0.0" @@ -21195,14 +21382,14 @@ __metadata: ws: "npm:^6.2.3" yargs: "npm:^17.6.2" peerDependencies: - "@types/react": ^19.1.1 - react: ^19.1.1 + "@types/react": ^19.1.0 + react: ^19.1.0 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: 10/dce22cfc5ac4ec32dfc280909b87dba94714f3e2ad92fccc13c6b746fe4f3a8e56e1c03a8f25ae55074b4cc51cb737cd4bf9838e1cf9d2ab1e85031669cd9dd9 + checksum: 10/b4f8515c3c90fc2a02465f8a31791a099fcf763d6b5d45c8e70eaa88a707c8835d96f5d09559bf3f27fa828ee4c82923ac717bad58c2cc6a71cbe15994ea388f languageName: node linkType: hard @@ -23720,7 +23907,7 @@ __metadata: jest: "npm:^29.6.3" prettier: "npm:^3.3.3" react: "npm:19.1.0" - react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" + react-native: "npm:react-native-tvos@0.81.1-1" react-native-reanimated: "workspace:*" react-native-worklets: "workspace:*" react-test-renderer: "npm:19.1.0" @@ -24559,7 +24746,7 @@ __metadata: expo: "npm:^54.0.0-preview.13" prettier: "npm:^3.3.3" react-dom: "npm:19.1.1" - react-native: "patch:react-native@npm%3A0.82.0-rc.4#~/.yarn/patches/react-native-npm-0.82.0-rc.4-228ad0ffa7.patch" + react-native: "npm:0.82.0-rc.4" react-native-web: "npm:~0.21.1" serve: "npm:^14.2.3" languageName: unknown From 5d0112af4bf0917b51960961887b03db17cfdc64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=BBelawski?= Date: Tue, 30 Sep 2025 10:19:33 +0200 Subject: [PATCH 7/7] chore: fix formatting --- .../com/swmansion/worklets/WorkletsModule.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java b/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java index bdf621447dc2..eba112f3940b 100644 --- a/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java +++ b/packages/react-native-worklets/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java @@ -19,8 +19,7 @@ @SuppressWarnings("JavaJniMissingFunction") @ReactModule(name = WorkletsModule.NAME) -public class WorkletsModule extends NativeWorkletsModuleSpec - implements LifecycleEventListener { +public class WorkletsModule extends NativeWorkletsModuleSpec implements LifecycleEventListener { static { SoLoader.loadLibrary("worklets"); }