react-native 0.79.1 → 0.79.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +8 -0
- package/Libraries/Blob/URL.js +13 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +12 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +18 -0
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +18 -4
- package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +1 -1
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +0 -3
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/jsc/React-jsc.podspec +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +45 -9
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +14 -4
- package/ReactCommon/react/renderer/core/ShadowNode.h +6 -0
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +6 -0
- package/ReactCommon/react/runtime/TimerManager.cpp +6 -4
- package/ReactCommon/react/runtime/TimerManager.h +3 -1
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +0 -1
- package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +9 -5
- package/package.json +8 -8
- package/scripts/codegen/generate-artifacts-executor.js +53 -18
- package/sdks/.hermesversion +1 -1
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
- package/types/index.d.ts +1 -1
- package/types/tsconfig.test.json +16 -0
|
@@ -325,22 +325,13 @@ function findExternalLibraries(pkgJson, projectRoot) {
|
|
|
325
325
|
});
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
-
function findLibrariesFromReactNativeConfig(projectRoot) {
|
|
329
|
-
const rnConfigFileName = 'react-native.config.js';
|
|
330
|
-
|
|
328
|
+
function findLibrariesFromReactNativeConfig(projectRoot, rnConfig) {
|
|
331
329
|
codegenLog(
|
|
332
|
-
`Searching for codegen-enabled libraries in
|
|
330
|
+
`Searching for codegen-enabled libraries in react-native.config.js`,
|
|
333
331
|
true,
|
|
334
332
|
);
|
|
335
333
|
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
if (!fs.existsSync(rnConfigFilePath)) {
|
|
339
|
-
return [];
|
|
340
|
-
}
|
|
341
|
-
const rnConfig = require(rnConfigFilePath);
|
|
342
|
-
|
|
343
|
-
if (rnConfig.dependencies == null) {
|
|
334
|
+
if (!rnConfig.dependencies) {
|
|
344
335
|
return [];
|
|
345
336
|
}
|
|
346
337
|
return Object.keys(rnConfig.dependencies).flatMap(name => {
|
|
@@ -364,6 +355,19 @@ function findLibrariesFromReactNativeConfig(projectRoot) {
|
|
|
364
355
|
});
|
|
365
356
|
}
|
|
366
357
|
|
|
358
|
+
/**
|
|
359
|
+
* Finds all disabled libraries by platform based the react native config.
|
|
360
|
+
*
|
|
361
|
+
* This is needed when selectively disabling libraries in react-native.config.js since codegen should exclude those libraries as well.
|
|
362
|
+
*/
|
|
363
|
+
function findDisabledLibrariesByPlatform(reactNativeConfig, platform) {
|
|
364
|
+
const dependencies = reactNativeConfig.dependencies ?? {};
|
|
365
|
+
|
|
366
|
+
return Object.keys(dependencies).filter(
|
|
367
|
+
dependency => dependencies[dependency].platforms?.[platform] === null,
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
|
|
367
371
|
function findProjectRootLibraries(pkgJson, projectRoot) {
|
|
368
372
|
codegenLog('Searching for codegen-enabled libraries in the app.', true);
|
|
369
373
|
|
|
@@ -592,7 +596,7 @@ function mustGenerateNativeCode(includeLibraryPath, schemaInfo) {
|
|
|
592
596
|
);
|
|
593
597
|
}
|
|
594
598
|
|
|
595
|
-
function findCodegenEnabledLibraries(pkgJson, projectRoot) {
|
|
599
|
+
function findCodegenEnabledLibraries(pkgJson, projectRoot, reactNativeConfig) {
|
|
596
600
|
const projectLibraries = findProjectRootLibraries(pkgJson, projectRoot);
|
|
597
601
|
if (pkgJsonIncludesGeneratedCode(pkgJson)) {
|
|
598
602
|
return projectLibraries;
|
|
@@ -600,11 +604,21 @@ function findCodegenEnabledLibraries(pkgJson, projectRoot) {
|
|
|
600
604
|
return [
|
|
601
605
|
...projectLibraries,
|
|
602
606
|
...findExternalLibraries(pkgJson, projectRoot),
|
|
603
|
-
...findLibrariesFromReactNativeConfig(projectRoot),
|
|
607
|
+
...findLibrariesFromReactNativeConfig(projectRoot, reactNativeConfig),
|
|
604
608
|
];
|
|
605
609
|
}
|
|
606
610
|
}
|
|
607
611
|
|
|
612
|
+
function readReactNativeConfig(projectRoot) {
|
|
613
|
+
const rnConfigFilePath = path.resolve(projectRoot, 'react-native.config.js');
|
|
614
|
+
|
|
615
|
+
if (!fs.existsSync(rnConfigFilePath)) {
|
|
616
|
+
return {};
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
return require(rnConfigFilePath);
|
|
620
|
+
}
|
|
621
|
+
|
|
608
622
|
function generateCustomURLHandlers(libraries, outputDir) {
|
|
609
623
|
const customImageURLLoaderClasses = libraries
|
|
610
624
|
.flatMap(
|
|
@@ -833,8 +847,11 @@ function findFilesWithExtension(filePath, extension) {
|
|
|
833
847
|
return null;
|
|
834
848
|
}
|
|
835
849
|
|
|
836
|
-
// Skip hidden folders, that starts with `.`
|
|
837
|
-
if (
|
|
850
|
+
// Skip hidden folders, that starts with `.` but allow `.pnpm`
|
|
851
|
+
if (
|
|
852
|
+
absolutePath.includes(`${path.sep}.`) &&
|
|
853
|
+
!absolutePath.includes(`${path.sep}.pnpm`)
|
|
854
|
+
) {
|
|
838
855
|
return null;
|
|
839
856
|
}
|
|
840
857
|
|
|
@@ -1053,9 +1070,14 @@ function execute(projectRoot, targetPlatform, baseOutputPath, source) {
|
|
|
1053
1070
|
|
|
1054
1071
|
buildCodegenIfNeeded();
|
|
1055
1072
|
|
|
1056
|
-
const
|
|
1073
|
+
const reactNativeConfig = readReactNativeConfig(projectRoot);
|
|
1074
|
+
const codegenEnabledLibraries = findCodegenEnabledLibraries(
|
|
1075
|
+
pkgJson,
|
|
1076
|
+
projectRoot,
|
|
1077
|
+
reactNativeConfig,
|
|
1078
|
+
);
|
|
1057
1079
|
|
|
1058
|
-
if (
|
|
1080
|
+
if (codegenEnabledLibraries.length === 0) {
|
|
1059
1081
|
codegenLog('No codegen-enabled libraries found.', true);
|
|
1060
1082
|
return;
|
|
1061
1083
|
}
|
|
@@ -1064,6 +1086,19 @@ function execute(projectRoot, targetPlatform, baseOutputPath, source) {
|
|
|
1064
1086
|
targetPlatform === 'all' ? supportedPlatforms : [targetPlatform];
|
|
1065
1087
|
|
|
1066
1088
|
for (const platform of platforms) {
|
|
1089
|
+
const disabledLibraries = findDisabledLibrariesByPlatform(
|
|
1090
|
+
reactNativeConfig,
|
|
1091
|
+
platform,
|
|
1092
|
+
);
|
|
1093
|
+
|
|
1094
|
+
const libraries = codegenEnabledLibraries.filter(
|
|
1095
|
+
({name}) => !disabledLibraries.includes(name),
|
|
1096
|
+
);
|
|
1097
|
+
|
|
1098
|
+
if (!libraries.length) {
|
|
1099
|
+
continue;
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1067
1102
|
const outputPath = computeOutputPath(
|
|
1068
1103
|
projectRoot,
|
|
1069
1104
|
baseOutputPath,
|
package/sdks/.hermesversion
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
hermes-2025-
|
|
1
|
+
hermes-2025-06-04-RNv0.79.3-7f9a871eefeb2c3852365ee80f0b6733ec12ac3b
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<5b1d3ba6712de7a927eeeb8602ee2a8f>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -84,12 +84,14 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
84
84
|
removeTurboModuleManagerDelegateMutex: Getter<boolean>,
|
|
85
85
|
throwExceptionInsteadOfDeadlockOnTurboModuleSetupDuringSyncRenderIOS: Getter<boolean>,
|
|
86
86
|
traceTurboModulePromiseRejectionsOnAndroid: Getter<boolean>,
|
|
87
|
+
updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean>,
|
|
87
88
|
useAlwaysAvailableJSErrorHandling: Getter<boolean>,
|
|
88
89
|
useEditTextStockAndroidFocusBehavior: Getter<boolean>,
|
|
89
90
|
useFabricInterop: Getter<boolean>,
|
|
90
91
|
useNativeViewConfigsInBridgelessMode: Getter<boolean>,
|
|
91
92
|
useOptimizedEventBatchingOnAndroid: Getter<boolean>,
|
|
92
93
|
useRawPropsJsiValue: Getter<boolean>,
|
|
94
|
+
useShadowNodeStateOnClone: Getter<boolean>,
|
|
93
95
|
useTurboModuleInterop: Getter<boolean>,
|
|
94
96
|
useTurboModules: Getter<boolean>,
|
|
95
97
|
}>;
|
|
@@ -313,6 +315,10 @@ export const throwExceptionInsteadOfDeadlockOnTurboModuleSetupDuringSyncRenderIO
|
|
|
313
315
|
* Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.
|
|
314
316
|
*/
|
|
315
317
|
export const traceTurboModulePromiseRejectionsOnAndroid: Getter<boolean> = createNativeFlagGetter('traceTurboModulePromiseRejectionsOnAndroid', false);
|
|
318
|
+
/**
|
|
319
|
+
* When enabled, runtime shadow node references will be updated during the commit. This allows running RSNRU from any thread without corrupting the renderer state.
|
|
320
|
+
*/
|
|
321
|
+
export const updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean> = createNativeFlagGetter('updateRuntimeShadowNodeReferencesOnCommit', false);
|
|
316
322
|
/**
|
|
317
323
|
* In Bridgeless mode, use the always available javascript error reporting pipeline.
|
|
318
324
|
*/
|
|
@@ -337,6 +343,10 @@ export const useOptimizedEventBatchingOnAndroid: Getter<boolean> = createNativeF
|
|
|
337
343
|
* Instead of using folly::dynamic as internal representation in RawProps and RawValue, use jsi::Value
|
|
338
344
|
*/
|
|
339
345
|
export const useRawPropsJsiValue: Getter<boolean> = createNativeFlagGetter('useRawPropsJsiValue', false);
|
|
346
|
+
/**
|
|
347
|
+
* Use the state stored on the source shadow node when cloning it instead of reading in the most recent state on the shadow node family.
|
|
348
|
+
*/
|
|
349
|
+
export const useShadowNodeStateOnClone: Getter<boolean> = createNativeFlagGetter('useShadowNodeStateOnClone', false);
|
|
340
350
|
/**
|
|
341
351
|
* In Bridgeless mode, should legacy NativeModules use the TurboModule system?
|
|
342
352
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<f8da5261357616749d6319190ed0139d>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -59,12 +59,14 @@ export interface Spec extends TurboModule {
|
|
|
59
59
|
+removeTurboModuleManagerDelegateMutex?: () => boolean;
|
|
60
60
|
+throwExceptionInsteadOfDeadlockOnTurboModuleSetupDuringSyncRenderIOS?: () => boolean;
|
|
61
61
|
+traceTurboModulePromiseRejectionsOnAndroid?: () => boolean;
|
|
62
|
+
+updateRuntimeShadowNodeReferencesOnCommit?: () => boolean;
|
|
62
63
|
+useAlwaysAvailableJSErrorHandling?: () => boolean;
|
|
63
64
|
+useEditTextStockAndroidFocusBehavior?: () => boolean;
|
|
64
65
|
+useFabricInterop?: () => boolean;
|
|
65
66
|
+useNativeViewConfigsInBridgelessMode?: () => boolean;
|
|
66
67
|
+useOptimizedEventBatchingOnAndroid?: () => boolean;
|
|
67
68
|
+useRawPropsJsiValue?: () => boolean;
|
|
69
|
+
+useShadowNodeStateOnClone?: () => boolean;
|
|
68
70
|
+useTurboModuleInterop?: () => boolean;
|
|
69
71
|
+useTurboModules?: () => boolean;
|
|
70
72
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
/// <reference path="modules/BatchedBridge.d.ts" />
|
|
69
69
|
/// <reference path="modules/Codegen.d.ts" />
|
|
70
70
|
/// <reference path="modules/Devtools.d.ts" />
|
|
71
|
-
/// <reference
|
|
71
|
+
/// <reference path="../src/types/globals.d.ts" />
|
|
72
72
|
/// <reference path="modules/LaunchScreen.d.ts" />
|
|
73
73
|
|
|
74
74
|
export * from '../Libraries/ActionSheetIOS/ActionSheetIOS';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "commonjs",
|
|
4
|
+
"lib": ["es6"],
|
|
5
|
+
"noImplicitAny": true,
|
|
6
|
+
"noImplicitThis": true,
|
|
7
|
+
"strictFunctionTypes": true,
|
|
8
|
+
"strictNullChecks": true,
|
|
9
|
+
"types": [],
|
|
10
|
+
"jsx": "react",
|
|
11
|
+
"noEmit": true,
|
|
12
|
+
"forceConsistentCasingInFileNames": true,
|
|
13
|
+
"paths": {"react-native": ["."]}
|
|
14
|
+
},
|
|
15
|
+
"include": ["../**/*.d.ts", "__typetests__/**/*"]
|
|
16
|
+
}
|