react-native 0.84.0-nightly-20251203-a5e6addc6 → 0.84.0-nightly-20251204-5bb3a6d68

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.
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
29
29
  static major: number = 0;
30
30
  static minor: number = 84;
31
31
  static patch: number = 0;
32
- static prerelease: string | null = 'nightly-20251203-a5e6addc6';
32
+ static prerelease: string | null = 'nightly-20251204-5bb3a6d68';
33
33
 
34
34
  static getVersionString(): string {
35
35
  return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(84),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"nightly-20251203-a5e6addc6",
27
+ RCTVersionPrerelease: @"nightly-20251204-5bb3a6d68",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -2046,53 +2046,6 @@ private:
2046
2046
  };
2047
2047
 
2048
2048
 
2049
- template <typename T>
2050
- class JSI_EXPORT NativeAppearanceCxxSpec : public TurboModule {
2051
- public:
2052
- static constexpr std::string_view kModuleName = "Appearance";
2053
-
2054
- protected:
2055
- NativeAppearanceCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeAppearanceCxxSpec::kModuleName}, jsInvoker) {
2056
- methodMap_["getColorScheme"] = MethodMetadata {.argCount = 0, .invoker = __getColorScheme};
2057
- methodMap_["setColorScheme"] = MethodMetadata {.argCount = 1, .invoker = __setColorScheme};
2058
- methodMap_["addListener"] = MethodMetadata {.argCount = 1, .invoker = __addListener};
2059
- methodMap_["removeListeners"] = MethodMetadata {.argCount = 1, .invoker = __removeListeners};
2060
- }
2061
-
2062
- private:
2063
- static jsi::Value __getColorScheme(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2064
- static_assert(
2065
- bridging::getParameterCount(&T::getColorScheme) == 1,
2066
- "Expected getColorScheme(...) to have 1 parameters");
2067
- auto result = bridging::callFromJs<std::optional<jsi::String>>(rt, &T::getColorScheme, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
2068
- }
2069
-
2070
- static jsi::Value __setColorScheme(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2071
- static_assert(
2072
- bridging::getParameterCount(&T::setColorScheme) == 2,
2073
- "Expected setColorScheme(...) to have 2 parameters");
2074
- bridging::callFromJs<void>(rt, &T::setColorScheme, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2075
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2076
- }
2077
-
2078
- static jsi::Value __addListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2079
- static_assert(
2080
- bridging::getParameterCount(&T::addListener) == 2,
2081
- "Expected addListener(...) to have 2 parameters");
2082
- bridging::callFromJs<void>(rt, &T::addListener, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2083
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2084
- }
2085
-
2086
- static jsi::Value __removeListeners(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2087
- static_assert(
2088
- bridging::getParameterCount(&T::removeListeners) == 2,
2089
- "Expected removeListeners(...) to have 2 parameters");
2090
- bridging::callFromJs<void>(rt, &T::removeListeners, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2091
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber());return jsi::Value::undefined();
2092
- }
2093
- };
2094
-
2095
-
2096
2049
  #pragma mark - NativeAppStateAppState
2097
2050
 
2098
2051
  template <typename P0>
@@ -2222,6 +2175,53 @@ private:
2222
2175
  };
2223
2176
 
2224
2177
 
2178
+ template <typename T>
2179
+ class JSI_EXPORT NativeAppearanceCxxSpec : public TurboModule {
2180
+ public:
2181
+ static constexpr std::string_view kModuleName = "Appearance";
2182
+
2183
+ protected:
2184
+ NativeAppearanceCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeAppearanceCxxSpec::kModuleName}, jsInvoker) {
2185
+ methodMap_["getColorScheme"] = MethodMetadata {.argCount = 0, .invoker = __getColorScheme};
2186
+ methodMap_["setColorScheme"] = MethodMetadata {.argCount = 1, .invoker = __setColorScheme};
2187
+ methodMap_["addListener"] = MethodMetadata {.argCount = 1, .invoker = __addListener};
2188
+ methodMap_["removeListeners"] = MethodMetadata {.argCount = 1, .invoker = __removeListeners};
2189
+ }
2190
+
2191
+ private:
2192
+ static jsi::Value __getColorScheme(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2193
+ static_assert(
2194
+ bridging::getParameterCount(&T::getColorScheme) == 1,
2195
+ "Expected getColorScheme(...) to have 1 parameters");
2196
+ auto result = bridging::callFromJs<std::optional<jsi::String>>(rt, &T::getColorScheme, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
2197
+ }
2198
+
2199
+ static jsi::Value __setColorScheme(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2200
+ static_assert(
2201
+ bridging::getParameterCount(&T::setColorScheme) == 2,
2202
+ "Expected setColorScheme(...) to have 2 parameters");
2203
+ bridging::callFromJs<void>(rt, &T::setColorScheme, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2204
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2205
+ }
2206
+
2207
+ static jsi::Value __addListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2208
+ static_assert(
2209
+ bridging::getParameterCount(&T::addListener) == 2,
2210
+ "Expected addListener(...) to have 2 parameters");
2211
+ bridging::callFromJs<void>(rt, &T::addListener, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2212
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2213
+ }
2214
+
2215
+ static jsi::Value __removeListeners(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2216
+ static_assert(
2217
+ bridging::getParameterCount(&T::removeListeners) == 2,
2218
+ "Expected removeListeners(...) to have 2 parameters");
2219
+ bridging::callFromJs<void>(rt, &T::removeListeners, static_cast<NativeAppearanceCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2220
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber());return jsi::Value::undefined();
2221
+ }
2222
+ };
2223
+
2224
+
2225
2225
  #pragma mark - NativeBlobModuleConstants
2226
2226
 
2227
2227
  template <typename P0, typename P1>
@@ -2380,6 +2380,145 @@ private:
2380
2380
  };
2381
2381
 
2382
2382
 
2383
+ template <typename T>
2384
+ class JSI_EXPORT NativeDevLoadingViewCxxSpec : public TurboModule {
2385
+ public:
2386
+ static constexpr std::string_view kModuleName = "DevLoadingView";
2387
+
2388
+ protected:
2389
+ NativeDevLoadingViewCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeDevLoadingViewCxxSpec::kModuleName}, jsInvoker) {
2390
+ methodMap_["showMessage"] = MethodMetadata {.argCount = 4, .invoker = __showMessage};
2391
+ methodMap_["hide"] = MethodMetadata {.argCount = 0, .invoker = __hide};
2392
+ }
2393
+
2394
+ private:
2395
+ static jsi::Value __showMessage(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2396
+ static_assert(
2397
+ bridging::getParameterCount(&T::showMessage) == 5,
2398
+ "Expected showMessage(...) to have 5 parameters");
2399
+ bridging::callFromJs<void>(rt, &T::showMessage, static_cast<NativeDevLoadingViewCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2400
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
2401
+ count <= 1 || args[1].isNull() || args[1].isUndefined() ? std::nullopt : std::make_optional(args[1].asNumber()),
2402
+ count <= 2 || args[2].isNull() || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asNumber()),
2403
+ count <= 3 || args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asBool()));return jsi::Value::undefined();
2404
+ }
2405
+
2406
+ static jsi::Value __hide(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2407
+ static_assert(
2408
+ bridging::getParameterCount(&T::hide) == 1,
2409
+ "Expected hide(...) to have 1 parameters");
2410
+ bridging::callFromJs<void>(rt, &T::hide, static_cast<NativeDevLoadingViewCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2411
+ }
2412
+ };
2413
+
2414
+
2415
+ template <typename T>
2416
+ class JSI_EXPORT NativeDevSettingsCxxSpec : public TurboModule {
2417
+ public:
2418
+ static constexpr std::string_view kModuleName = "DevSettings";
2419
+
2420
+ protected:
2421
+ NativeDevSettingsCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeDevSettingsCxxSpec::kModuleName}, jsInvoker) {
2422
+ methodMap_["reload"] = MethodMetadata {.argCount = 0, .invoker = __reload};
2423
+ methodMap_["reloadWithReason"] = MethodMetadata {.argCount = 1, .invoker = __reloadWithReason};
2424
+ methodMap_["onFastRefresh"] = MethodMetadata {.argCount = 0, .invoker = __onFastRefresh};
2425
+ methodMap_["setHotLoadingEnabled"] = MethodMetadata {.argCount = 1, .invoker = __setHotLoadingEnabled};
2426
+ methodMap_["setProfilingEnabled"] = MethodMetadata {.argCount = 1, .invoker = __setProfilingEnabled};
2427
+ methodMap_["toggleElementInspector"] = MethodMetadata {.argCount = 0, .invoker = __toggleElementInspector};
2428
+ methodMap_["addMenuItem"] = MethodMetadata {.argCount = 1, .invoker = __addMenuItem};
2429
+ methodMap_["openDebugger"] = MethodMetadata {.argCount = 0, .invoker = __openDebugger};
2430
+ methodMap_["addListener"] = MethodMetadata {.argCount = 1, .invoker = __addListener};
2431
+ methodMap_["removeListeners"] = MethodMetadata {.argCount = 1, .invoker = __removeListeners};
2432
+ methodMap_["setIsShakeToShowDevMenuEnabled"] = MethodMetadata {.argCount = 1, .invoker = __setIsShakeToShowDevMenuEnabled};
2433
+ }
2434
+
2435
+ private:
2436
+ static jsi::Value __reload(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2437
+ static_assert(
2438
+ bridging::getParameterCount(&T::reload) == 1,
2439
+ "Expected reload(...) to have 1 parameters");
2440
+ bridging::callFromJs<void>(rt, &T::reload, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2441
+ }
2442
+
2443
+ static jsi::Value __reloadWithReason(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2444
+ static_assert(
2445
+ bridging::getParameterCount(&T::reloadWithReason) == 2,
2446
+ "Expected reloadWithReason(...) to have 2 parameters");
2447
+ bridging::callFromJs<void>(rt, &T::reloadWithReason, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2448
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2449
+ }
2450
+
2451
+ static jsi::Value __onFastRefresh(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2452
+ static_assert(
2453
+ bridging::getParameterCount(&T::onFastRefresh) == 1,
2454
+ "Expected onFastRefresh(...) to have 1 parameters");
2455
+ bridging::callFromJs<void>(rt, &T::onFastRefresh, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2456
+ }
2457
+
2458
+ static jsi::Value __setHotLoadingEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2459
+ static_assert(
2460
+ bridging::getParameterCount(&T::setHotLoadingEnabled) == 2,
2461
+ "Expected setHotLoadingEnabled(...) to have 2 parameters");
2462
+ bridging::callFromJs<void>(rt, &T::setHotLoadingEnabled, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2463
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool());return jsi::Value::undefined();
2464
+ }
2465
+
2466
+ static jsi::Value __setProfilingEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2467
+ static_assert(
2468
+ bridging::getParameterCount(&T::setProfilingEnabled) == 2,
2469
+ "Expected setProfilingEnabled(...) to have 2 parameters");
2470
+ bridging::callFromJs<void>(rt, &T::setProfilingEnabled, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2471
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool());return jsi::Value::undefined();
2472
+ }
2473
+
2474
+ static jsi::Value __toggleElementInspector(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2475
+ static_assert(
2476
+ bridging::getParameterCount(&T::toggleElementInspector) == 1,
2477
+ "Expected toggleElementInspector(...) to have 1 parameters");
2478
+ bridging::callFromJs<void>(rt, &T::toggleElementInspector, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2479
+ }
2480
+
2481
+ static jsi::Value __addMenuItem(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2482
+ static_assert(
2483
+ bridging::getParameterCount(&T::addMenuItem) == 2,
2484
+ "Expected addMenuItem(...) to have 2 parameters");
2485
+ bridging::callFromJs<void>(rt, &T::addMenuItem, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2486
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2487
+ }
2488
+
2489
+ static jsi::Value __openDebugger(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2490
+ static_assert(
2491
+ bridging::getParameterCount(&T::openDebugger) == 1,
2492
+ "Expected openDebugger(...) to have 1 parameters");
2493
+ bridging::callFromJs<void>(rt, &T::openDebugger, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2494
+ }
2495
+
2496
+ static jsi::Value __addListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2497
+ static_assert(
2498
+ bridging::getParameterCount(&T::addListener) == 2,
2499
+ "Expected addListener(...) to have 2 parameters");
2500
+ bridging::callFromJs<void>(rt, &T::addListener, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2501
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2502
+ }
2503
+
2504
+ static jsi::Value __removeListeners(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2505
+ static_assert(
2506
+ bridging::getParameterCount(&T::removeListeners) == 2,
2507
+ "Expected removeListeners(...) to have 2 parameters");
2508
+ bridging::callFromJs<void>(rt, &T::removeListeners, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2509
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber());return jsi::Value::undefined();
2510
+ }
2511
+
2512
+ static jsi::Value __setIsShakeToShowDevMenuEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2513
+ static_assert(
2514
+ bridging::getParameterCount(&T::setIsShakeToShowDevMenuEnabled) == 2,
2515
+ "Expected setIsShakeToShowDevMenuEnabled(...) to have 2 parameters");
2516
+ bridging::callFromJs<void>(rt, &T::setIsShakeToShowDevMenuEnabled, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2517
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool());return jsi::Value::undefined();
2518
+ }
2519
+ };
2520
+
2521
+
2383
2522
  template <typename T>
2384
2523
  class JSI_EXPORT NativeDeviceEventManagerCxxSpec : public TurboModule {
2385
2524
  public:
@@ -2667,145 +2806,6 @@ private:
2667
2806
  };
2668
2807
 
2669
2808
 
2670
- template <typename T>
2671
- class JSI_EXPORT NativeDevLoadingViewCxxSpec : public TurboModule {
2672
- public:
2673
- static constexpr std::string_view kModuleName = "DevLoadingView";
2674
-
2675
- protected:
2676
- NativeDevLoadingViewCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeDevLoadingViewCxxSpec::kModuleName}, jsInvoker) {
2677
- methodMap_["showMessage"] = MethodMetadata {.argCount = 4, .invoker = __showMessage};
2678
- methodMap_["hide"] = MethodMetadata {.argCount = 0, .invoker = __hide};
2679
- }
2680
-
2681
- private:
2682
- static jsi::Value __showMessage(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2683
- static_assert(
2684
- bridging::getParameterCount(&T::showMessage) == 5,
2685
- "Expected showMessage(...) to have 5 parameters");
2686
- bridging::callFromJs<void>(rt, &T::showMessage, static_cast<NativeDevLoadingViewCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2687
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
2688
- count <= 1 || args[1].isNull() || args[1].isUndefined() ? std::nullopt : std::make_optional(args[1].asNumber()),
2689
- count <= 2 || args[2].isNull() || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asNumber()),
2690
- count <= 3 || args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asBool()));return jsi::Value::undefined();
2691
- }
2692
-
2693
- static jsi::Value __hide(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2694
- static_assert(
2695
- bridging::getParameterCount(&T::hide) == 1,
2696
- "Expected hide(...) to have 1 parameters");
2697
- bridging::callFromJs<void>(rt, &T::hide, static_cast<NativeDevLoadingViewCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2698
- }
2699
- };
2700
-
2701
-
2702
- template <typename T>
2703
- class JSI_EXPORT NativeDevSettingsCxxSpec : public TurboModule {
2704
- public:
2705
- static constexpr std::string_view kModuleName = "DevSettings";
2706
-
2707
- protected:
2708
- NativeDevSettingsCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeDevSettingsCxxSpec::kModuleName}, jsInvoker) {
2709
- methodMap_["reload"] = MethodMetadata {.argCount = 0, .invoker = __reload};
2710
- methodMap_["reloadWithReason"] = MethodMetadata {.argCount = 1, .invoker = __reloadWithReason};
2711
- methodMap_["onFastRefresh"] = MethodMetadata {.argCount = 0, .invoker = __onFastRefresh};
2712
- methodMap_["setHotLoadingEnabled"] = MethodMetadata {.argCount = 1, .invoker = __setHotLoadingEnabled};
2713
- methodMap_["setProfilingEnabled"] = MethodMetadata {.argCount = 1, .invoker = __setProfilingEnabled};
2714
- methodMap_["toggleElementInspector"] = MethodMetadata {.argCount = 0, .invoker = __toggleElementInspector};
2715
- methodMap_["addMenuItem"] = MethodMetadata {.argCount = 1, .invoker = __addMenuItem};
2716
- methodMap_["openDebugger"] = MethodMetadata {.argCount = 0, .invoker = __openDebugger};
2717
- methodMap_["addListener"] = MethodMetadata {.argCount = 1, .invoker = __addListener};
2718
- methodMap_["removeListeners"] = MethodMetadata {.argCount = 1, .invoker = __removeListeners};
2719
- methodMap_["setIsShakeToShowDevMenuEnabled"] = MethodMetadata {.argCount = 1, .invoker = __setIsShakeToShowDevMenuEnabled};
2720
- }
2721
-
2722
- private:
2723
- static jsi::Value __reload(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2724
- static_assert(
2725
- bridging::getParameterCount(&T::reload) == 1,
2726
- "Expected reload(...) to have 1 parameters");
2727
- bridging::callFromJs<void>(rt, &T::reload, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2728
- }
2729
-
2730
- static jsi::Value __reloadWithReason(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2731
- static_assert(
2732
- bridging::getParameterCount(&T::reloadWithReason) == 2,
2733
- "Expected reloadWithReason(...) to have 2 parameters");
2734
- bridging::callFromJs<void>(rt, &T::reloadWithReason, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2735
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2736
- }
2737
-
2738
- static jsi::Value __onFastRefresh(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2739
- static_assert(
2740
- bridging::getParameterCount(&T::onFastRefresh) == 1,
2741
- "Expected onFastRefresh(...) to have 1 parameters");
2742
- bridging::callFromJs<void>(rt, &T::onFastRefresh, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2743
- }
2744
-
2745
- static jsi::Value __setHotLoadingEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2746
- static_assert(
2747
- bridging::getParameterCount(&T::setHotLoadingEnabled) == 2,
2748
- "Expected setHotLoadingEnabled(...) to have 2 parameters");
2749
- bridging::callFromJs<void>(rt, &T::setHotLoadingEnabled, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2750
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool());return jsi::Value::undefined();
2751
- }
2752
-
2753
- static jsi::Value __setProfilingEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2754
- static_assert(
2755
- bridging::getParameterCount(&T::setProfilingEnabled) == 2,
2756
- "Expected setProfilingEnabled(...) to have 2 parameters");
2757
- bridging::callFromJs<void>(rt, &T::setProfilingEnabled, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2758
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool());return jsi::Value::undefined();
2759
- }
2760
-
2761
- static jsi::Value __toggleElementInspector(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2762
- static_assert(
2763
- bridging::getParameterCount(&T::toggleElementInspector) == 1,
2764
- "Expected toggleElementInspector(...) to have 1 parameters");
2765
- bridging::callFromJs<void>(rt, &T::toggleElementInspector, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2766
- }
2767
-
2768
- static jsi::Value __addMenuItem(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2769
- static_assert(
2770
- bridging::getParameterCount(&T::addMenuItem) == 2,
2771
- "Expected addMenuItem(...) to have 2 parameters");
2772
- bridging::callFromJs<void>(rt, &T::addMenuItem, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2773
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2774
- }
2775
-
2776
- static jsi::Value __openDebugger(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
2777
- static_assert(
2778
- bridging::getParameterCount(&T::openDebugger) == 1,
2779
- "Expected openDebugger(...) to have 1 parameters");
2780
- bridging::callFromJs<void>(rt, &T::openDebugger, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));return jsi::Value::undefined();
2781
- }
2782
-
2783
- static jsi::Value __addListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2784
- static_assert(
2785
- bridging::getParameterCount(&T::addListener) == 2,
2786
- "Expected addListener(...) to have 2 parameters");
2787
- bridging::callFromJs<void>(rt, &T::addListener, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2788
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
2789
- }
2790
-
2791
- static jsi::Value __removeListeners(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2792
- static_assert(
2793
- bridging::getParameterCount(&T::removeListeners) == 2,
2794
- "Expected removeListeners(...) to have 2 parameters");
2795
- bridging::callFromJs<void>(rt, &T::removeListeners, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2796
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber());return jsi::Value::undefined();
2797
- }
2798
-
2799
- static jsi::Value __setIsShakeToShowDevMenuEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
2800
- static_assert(
2801
- bridging::getParameterCount(&T::setIsShakeToShowDevMenuEnabled) == 2,
2802
- "Expected setIsShakeToShowDevMenuEnabled(...) to have 2 parameters");
2803
- bridging::callFromJs<void>(rt, &T::setIsShakeToShowDevMenuEnabled, static_cast<NativeDevSettingsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
2804
- count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asBool());return jsi::Value::undefined();
2805
- }
2806
- };
2807
-
2808
-
2809
2809
  #pragma mark - NativeDialogManagerAndroidDialogOptions
2810
2810
 
2811
2811
  template <typename P0, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.84.0-nightly-20251203-a5e6addc6
1
+ VERSION_NAME=0.84.0-nightly-20251204-5bb3a6d68
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
  react.internal.hermesPublishingGroup=com.facebook.hermes
4
4
 
@@ -15,6 +15,6 @@ public object ReactNativeVersion {
15
15
  "major" to 0,
16
16
  "minor" to 84,
17
17
  "patch" to 0,
18
- "prerelease" to "nightly-20251203-a5e6addc6"
18
+ "prerelease" to "nightly-20251204-5bb3a6d68"
19
19
  )
20
20
  }
@@ -22,7 +22,7 @@ constexpr struct {
22
22
  int32_t Major = 0;
23
23
  int32_t Minor = 84;
24
24
  int32_t Patch = 0;
25
- std::string_view Prerelease = "nightly-20251203-a5e6addc6";
25
+ std::string_view Prerelease = "nightly-20251204-5bb3a6d68";
26
26
  } ReactNativeVersion;
27
27
 
28
28
  } // namespace facebook::react
@@ -95,4 +95,22 @@ TEST_F(TracingTest, EmitsRecordedFrameTimingSequences) {
95
95
  EXPECT_THAT(allTraceEvents, Contains(AtJsonPtr("/name", "DrawFrame")));
96
96
  }
97
97
 
98
+ TEST_F(TracingTest, EmitsScreenshotEventWhenScreenshotValuePassed) {
99
+ InSequence s;
100
+
101
+ startTracing({tracing::Category::Screenshot});
102
+ auto now = HighResTimeStamp::now();
103
+ page_->recordFrameTimings(
104
+ tracing::FrameTimingSequence(
105
+ 1, // id
106
+ 11, // threadId
107
+ now,
108
+ now + HighResDuration::fromNanoseconds(10),
109
+ now + HighResDuration::fromNanoseconds(50),
110
+ "base64EncodedScreenshotData"));
111
+
112
+ auto allTraceEvents = endTracingAndCollectEvents();
113
+ EXPECT_THAT(allTraceEvents, Contains(AtJsonPtr("/name", "Screenshot")));
114
+ }
115
+
98
116
  } // namespace facebook::react::jsinspector_modern
@@ -13,6 +13,8 @@
13
13
 
14
14
  namespace facebook::react::jsinspector_modern::tracing {
15
15
 
16
+ using FrameSequenceId = uint64_t;
17
+
16
18
  /**
17
19
  * A struct representing a sequence of frame timings that happened on the Host side.
18
20
  */
@@ -20,7 +22,7 @@ struct FrameTimingSequence {
20
22
  FrameTimingSequence() = delete;
21
23
 
22
24
  FrameTimingSequence(
23
- uint64_t id,
25
+ FrameSequenceId id,
24
26
  ThreadId threadId,
25
27
  HighResTimeStamp beginDrawingTimestamp,
26
28
  HighResTimeStamp commitTimestamp,
@@ -38,7 +40,7 @@ struct FrameTimingSequence {
38
40
  /**
39
41
  * Unique ID of the sequence, used by Chrome DevTools Frontend to identify the events that form one sequence.
40
42
  */
41
- uint64_t id;
43
+ FrameSequenceId id;
42
44
 
43
45
  /**
44
46
  * The ID of the native thread that is associated with the frame.
@@ -100,7 +100,7 @@ constexpr int FALLBACK_LAYER_TREE_ID = 1;
100
100
  chunk.push_back(
101
101
  TraceEventSerializer::serialize(std::move(setLayerTreeIdEvent)));
102
102
 
103
- for (const auto& frameTimingSequence : frameTimings) {
103
+ for (auto&& frameTimingSequence : frameTimings) {
104
104
  if (chunk.size() >= chunkSize) {
105
105
  chunkCallback(std::move(chunk));
106
106
  chunk = generateNewChunk(chunkSize);
@@ -121,6 +121,19 @@ constexpr int FALLBACK_LAYER_TREE_ID = 1;
121
121
  chunk.push_back(TraceEventSerializer::serialize(std::move(commitEvent)));
122
122
  chunk.push_back(
123
123
  TraceEventSerializer::serialize(std::move(endDrawingEvent)));
124
+
125
+ if (frameTimingSequence.screenshot.has_value()) {
126
+ auto screenshotEvent = TraceEventGenerator::createScreenshotEvent(
127
+ frameTimingSequence.id,
128
+ FALLBACK_LAYER_TREE_ID,
129
+ std::move(frameTimingSequence.screenshot.value()),
130
+ frameTimingSequence.endDrawingTimestamp,
131
+ processId,
132
+ frameTimingSequence.threadId);
133
+
134
+ chunk.push_back(
135
+ TraceEventSerializer::serialize(std::move(screenshotEvent)));
136
+ }
124
137
  }
125
138
 
126
139
  if (!chunk.empty()) {
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  #include "TraceEventGenerator.h"
9
+ #include "Timing.h"
9
10
  #include "TracingCategory.h"
10
11
 
11
12
  namespace facebook::react::jsinspector_modern::tracing {
@@ -77,4 +78,27 @@ TraceEventGenerator::createFrameTimingsEvents(
77
78
  return {std::move(beginEvent), std::move(commitEvent), std::move(drawEvent)};
78
79
  }
79
80
 
81
+ /* static */ TraceEvent TraceEventGenerator::createScreenshotEvent(
82
+ FrameSequenceId frameSequenceId,
83
+ int sourceId,
84
+ std::string&& snapshot,
85
+ HighResTimeStamp expectedDisplayTime,
86
+ ProcessId processId,
87
+ ThreadId threadId) {
88
+ folly::dynamic args = folly::dynamic::object("snapshot", std::move(snapshot))(
89
+ "source_id", sourceId)("frame_sequence", frameSequenceId)(
90
+ "expected_display_time",
91
+ highResTimeStampToTracingClockTimeStamp(expectedDisplayTime));
92
+
93
+ return TraceEvent{
94
+ .name = "Screenshot",
95
+ .cat = {Category::Screenshot},
96
+ .ph = 'O',
97
+ .ts = expectedDisplayTime,
98
+ .pid = processId,
99
+ .tid = threadId,
100
+ .args = std::move(args),
101
+ };
102
+ }
103
+
80
104
  }; // namespace facebook::react::jsinspector_modern::tracing
@@ -9,6 +9,7 @@
9
9
 
10
10
  #include "TraceEvent.h"
11
11
 
12
+ #include <jsinspector-modern/tracing/FrameTimingSequence.h>
12
13
  #include <react/timing/primitives.h>
13
14
 
14
15
  #include <tuple>
@@ -35,13 +36,24 @@ class TraceEventGenerator {
35
36
  * Creates canonical "BeginFrame", "Commit", "DrawFrame" trace events.
36
37
  */
37
38
  static std::tuple<TraceEvent, TraceEvent, TraceEvent> createFrameTimingsEvents(
38
- uint64_t sequenceId,
39
+ FrameSequenceId sequenceId,
39
40
  int layerTreeId,
40
41
  HighResTimeStamp beginDrawingTimestamp,
41
42
  HighResTimeStamp commitTimestamp,
42
43
  HighResTimeStamp endDrawingTimestamp,
43
44
  ProcessId processId,
44
45
  ThreadId threadId);
46
+
47
+ /**
48
+ * Creates canonical "Screenshot" trace event.
49
+ */
50
+ static TraceEvent createScreenshotEvent(
51
+ FrameSequenceId frameSequenceId,
52
+ int sourceId,
53
+ std::string &&snapshot,
54
+ HighResTimeStamp expectedDisplayTime,
55
+ ProcessId processId,
56
+ ThreadId threadId);
45
57
  };
46
58
 
47
59
  }; // namespace facebook::react::jsinspector_modern::tracing
@@ -15,7 +15,7 @@
15
15
  #include <cxxreact/TraceSection.h>
16
16
  #include <glog/logging.h>
17
17
  #include <jsi/JSIDynamic.h>
18
- #include <jsi/hermes.h>
18
+ #include <jsi/hermes-interfaces.h>
19
19
  #include <jsi/instrumentation.h>
20
20
  #include <jsinspector-modern/HostTarget.h>
21
21
  #include <react/featureflags/ReactNativeFeatureFlags.h>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.84.0-nightly-20251203-a5e6addc6",
3
+ "version": "0.84.0-nightly-20251204-5bb3a6d68",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -160,13 +160,13 @@
160
160
  },
161
161
  "dependencies": {
162
162
  "@jest/create-cache-key-function": "^29.7.0",
163
- "@react-native/assets-registry": "0.84.0-nightly-20251203-a5e6addc6",
164
- "@react-native/codegen": "0.84.0-nightly-20251203-a5e6addc6",
165
- "@react-native/community-cli-plugin": "0.84.0-nightly-20251203-a5e6addc6",
166
- "@react-native/gradle-plugin": "0.84.0-nightly-20251203-a5e6addc6",
167
- "@react-native/js-polyfills": "0.84.0-nightly-20251203-a5e6addc6",
168
- "@react-native/normalize-colors": "0.84.0-nightly-20251203-a5e6addc6",
169
- "@react-native/virtualized-lists": "0.84.0-nightly-20251203-a5e6addc6",
163
+ "@react-native/assets-registry": "0.84.0-nightly-20251204-5bb3a6d68",
164
+ "@react-native/codegen": "0.84.0-nightly-20251204-5bb3a6d68",
165
+ "@react-native/community-cli-plugin": "0.84.0-nightly-20251204-5bb3a6d68",
166
+ "@react-native/gradle-plugin": "0.84.0-nightly-20251204-5bb3a6d68",
167
+ "@react-native/js-polyfills": "0.84.0-nightly-20251204-5bb3a6d68",
168
+ "@react-native/normalize-colors": "0.84.0-nightly-20251204-5bb3a6d68",
169
+ "@react-native/virtualized-lists": "0.84.0-nightly-20251204-5bb3a6d68",
170
170
  "abort-controller": "^3.0.0",
171
171
  "anser": "^1.4.9",
172
172
  "ansi-regex": "^5.0.0",
@@ -175,8 +175,7 @@
175
175
  "base64-js": "^1.5.1",
176
176
  "commander": "^12.0.0",
177
177
  "flow-enums-runtime": "^0.0.6",
178
- "glob": "^7.1.1",
179
- "hermes-compiler": "0.14.0-commitly-202512022111-b17bcdb50",
178
+ "hermes-compiler": "0.14.0-commitly-202512030604-3713fb12a",
180
179
  "invariant": "^2.2.4",
181
180
  "jest-environment-node": "^29.7.0",
182
181
  "memoize-one": "^5.0.0",
@@ -191,6 +190,7 @@
191
190
  "scheduler": "0.27.0",
192
191
  "semver": "^7.1.3",
193
192
  "stacktrace-parser": "^0.1.10",
193
+ "tinyglobby": "^0.2.15",
194
194
  "whatwg-fetch": "^3.0.0",
195
195
  "ws": "^7.5.10",
196
196
  "yargs": "^17.6.2"
@@ -13,8 +13,8 @@
13
13
  const CodegenUtils = require('../codegen-utils');
14
14
  const {codegenLog} = require('./utils');
15
15
  const fs = require('fs');
16
- const glob = require('glob');
17
16
  const path = require('path');
17
+ const {globSync} = require('tinyglobby');
18
18
 
19
19
  function generateSchemaInfos(
20
20
  libraries /*: $ReadOnlyArray<$FlowFixMe> */,
@@ -57,17 +57,18 @@ function extractSupportedApplePlatforms(
57
57
  dependencyPath /*: string */,
58
58
  ) /*: ?{[string]: boolean} */ {
59
59
  codegenLog('Searching for podspec in the project dependencies.', true);
60
- const podspecs = glob.sync('*.podspec', {cwd: dependencyPath});
60
+ const podspecs = globSync('*.podspec', {
61
+ cwd: dependencyPath,
62
+ onlyFiles: true,
63
+ absolute: true,
64
+ });
61
65
 
62
66
  if (podspecs.length === 0) {
63
67
  return;
64
68
  }
65
69
 
66
70
  // Take the first podspec found
67
- const podspec = fs.readFileSync(
68
- path.join(dependencyPath, podspecs[0]),
69
- 'utf8',
70
- );
71
+ const podspec = fs.readFileSync(podspecs[0], 'utf8');
71
72
 
72
73
  /**
73
74
  * Podspec can have platforms defined in two ways:
@@ -1,2 +1,2 @@
1
- HERMES_VERSION_NAME=0.14.0-commitly-202512022111-b17bcdb50
1
+ HERMES_VERSION_NAME=0.14.0-commitly-202512030604-3713fb12a
2
2
  HERMES_V1_VERSION_NAME=250829098.0.4