diff --git a/CHANGELOG.md b/CHANGELOG.md
index dc8bacbe4..e3933e3c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+## [Unreleased]
+
+### Added
+
+- Added the `Metrics` API, accessible through `player.metrics`, with `currentBandwidthEstimate` returning the player's estimated available bandwidth in bits per second. On iOS/tvOS this value is only reported for THEOlive/HESP streams.
+
## [11.6.0]
### Added
diff --git a/README.md b/README.md
index 0c2105a9d..d7b960f11 100644
--- a/README.md
+++ b/README.md
@@ -188,6 +188,7 @@ This section gives an overview of features, limitations and known issues:
- [Fullscreen presentation](./doc/fullscreen.md)
- [Media Control](./doc/mediacontrol.md)
- [Media Caching](./doc/media-caching.md)
+- [Metrics](./doc/metrics.md)
- [Migrating to THEOplayer 9.x](./doc/migrating-to-react-native-theoplayer-9.md)
- [Migrating to THEOplayer 10.x🔥](./doc/migrating-to-react-native-theoplayer-10.md)
- [Millicast](./doc/millicast.md)
diff --git a/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt b/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt
index c7e9f9191..84b014b6a 100644
--- a/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt
+++ b/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt
@@ -11,6 +11,7 @@ import com.theoplayer.drm.ContentProtectionModule
import com.theoplayer.cast.CastModule
import com.theoplayer.broadcast.EventBroadcastModule
import com.theoplayer.media.MediaControlModule
+import com.theoplayer.metrics.MetricsModule
import com.theoplayer.player.PlayerModule
import com.theoplayer.theolive.THEOliveModule
import com.theoplayer.theoads.THEOadsModule
@@ -28,6 +29,7 @@ class ReactTHEOplayerPackage : BaseReactPackage() {
THEOliveModule.NAME -> THEOliveModule(reactContext)
THEOadsModule.NAME -> THEOadsModule(reactContext)
MediaControlModule.NAME -> MediaControlModule(reactContext)
+ MetricsModule.NAME -> MetricsModule(reactContext)
else -> null
}
}
@@ -48,6 +50,7 @@ class ReactTHEOplayerPackage : BaseReactPackage() {
THEOliveModule.NAME to THEOliveModule.INFO,
THEOadsModule.NAME to THEOadsModule.INFO,
MediaControlModule.NAME to MediaControlModule.INFO,
+ MetricsModule.NAME to MetricsModule.INFO,
)
}
}
diff --git a/android/src/main/java/com/theoplayer/metrics/MetricsModule.kt b/android/src/main/java/com/theoplayer/metrics/MetricsModule.kt
new file mode 100644
index 000000000..a9e85f140
--- /dev/null
+++ b/android/src/main/java/com/theoplayer/metrics/MetricsModule.kt
@@ -0,0 +1,37 @@
+package com.theoplayer.metrics
+
+import com.facebook.react.bridge.*
+import com.facebook.react.module.annotations.ReactModule
+import com.facebook.react.module.model.ReactModuleInfo
+import com.theoplayer.ReactTHEOplayerView
+import com.theoplayer.util.ViewResolver
+
+@Suppress("unused")
+@ReactModule(name = MetricsModule.NAME)
+class MetricsModule(context: ReactApplicationContext) : ReactContextBaseJavaModule(context) {
+ companion object {
+ const val NAME = "THEORCTMetricsModule"
+ val INFO = ReactModuleInfo(
+ name = NAME,
+ className = NAME,
+ canOverrideExistingModule = false,
+ needsEagerInit = false,
+ isCxxModule = false,
+ isTurboModule = false,
+ )
+ }
+
+ private val viewResolver: ViewResolver = ViewResolver(context)
+
+ override fun getName(): String {
+ return NAME
+ }
+
+ // The bandwidth, in bits per second, that the player estimates is currently available.
+ @ReactMethod
+ fun currentBandwidthEstimate(tag: Int, promise: Promise) {
+ viewResolver.resolveViewByTag(tag) { view: ReactTHEOplayerView? ->
+ promise.resolve(view?.player?.metrics?.currentBandwidthEstimate ?: 0.0)
+ }
+ }
+}
diff --git a/doc/metrics.md b/doc/metrics.md
new file mode 100644
index 000000000..9a248e25c
--- /dev/null
+++ b/doc/metrics.md
@@ -0,0 +1,45 @@
+# Metrics
+
+## Overview
+
+The [Metrics API](../src/api/metrics/MetricsAPI.ts) exposes playback metrics gathered by the player. It is available on the [THEOplayer API](../src/api/player/THEOplayer.ts) through `player.metrics`.
+
+Metrics are **poll-based**: there is no change event, so you read a value on demand (for example on an interval, or piggy-backing on an existing event such as a time update).
+
+## Current bandwidth estimate
+
+`player.metrics.currentBandwidthEstimate()` returns the bandwidth, in **bits per second**, that the player estimates is currently available. This is the value the player uses to make adaptive bitrate (ABR) decisions.
+
+```tsx
+const onPlayerReady = (player: THEOplayer) => {
+ // Poll the estimate every second.
+ setInterval(async () => {
+ const bps = await player.metrics.currentBandwidthEstimate();
+ console.log(`Estimated bandwidth: ${bps} bps`);
+ }, 1000);
+};
+
+
+```
+
+> **Note:** A value of `0` means the estimate is **not available yet** (e.g. before playback, after a reset,
+> or on a platform/source that does not populate it — see below). It does **not** mean the available
+> bandwidth is literally zero.
+
+## Platform specifics
+
+The access path (`player.metrics.currentBandwidthEstimate()`, in bits/s) is identical on every platform,
+but the *behaviour* is not uniform:
+
+| Platform | Populated for | Value when unsupported |
+|-----------|--------------------------------------------|--------------------------------------------------------|
+| Android | All streams, via the Media3/ExoPlayer estimate (HLS, DASH, SmoothStreaming, progressive) | `0.0` when no playback backend is attached |
+| Web | All streams driven by THEOplayer's MSE/ABR pipeline (HLS, DASH, HESP) | `0` during native HTML5 playback |
+| iOS/tvOS | THEOlive/HESP streams **only** in practice | `0` for regular `AVPlayer` playback (HLS, MP4) |
+
+- On **iOS/tvOS** the value is only meaningful for THEOlive/HESP sources. For ordinary HLS/MP4 played it stays `0`.
+- On **Android** and **Web** the estimate is reported for regular adaptive streams as well; it is not
+ HESP-specific.
diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock
index f6c3eb430..e9ced27b5 100644
--- a/example/ios/Podfile.lock
+++ b/example/ios/Podfile.lock
@@ -1,41 +1,41 @@
PODS:
- DSFRegex (3.3.1)
- - FBLazyVector (0.84.1-0)
+ - FBLazyVector (0.86.2-0)
- google-cast-sdk-dynamic-xcframework (4.8.3)
- GoogleAds-IMA-iOS-SDK (3.32.0)
- GoogleAds-IMA-tvOS-SDK (4.17.0)
- - hermes-engine (250829098.0.9):
- - hermes-engine/Pre-built (= 250829098.0.9)
- - hermes-engine/Pre-built (250829098.0.9)
+ - hermes-engine (250829098.0.16):
+ - hermes-engine/Pre-built (= 250829098.0.16)
+ - hermes-engine/Pre-built (250829098.0.16)
- MillicastSDK (2.6.0)
- PromisesObjC (2.4.1)
- - RCTDeprecation (0.84.1-0)
- - RCTRequired (0.84.1-0)
- - RCTSwiftUI (0.84.1-0)
- - RCTSwiftUIWrapper (0.84.1-0):
+ - RCTDeprecation (0.86.2-0)
+ - RCTRequired (0.86.2-0)
+ - RCTSwiftUI (0.86.2-0)
+ - RCTSwiftUIWrapper (0.86.2-0):
- RCTSwiftUI
- - RCTTypeSafety (0.84.1-0):
- - FBLazyVector (= 0.84.1-0)
- - RCTRequired (= 0.84.1-0)
- - React-Core (= 0.84.1-0)
- - React (0.84.1-0):
- - React-Core (= 0.84.1-0)
- - React-Core/DevSupport (= 0.84.1-0)
- - React-Core/RCTWebSocket (= 0.84.1-0)
- - React-RCTActionSheet (= 0.84.1-0)
- - React-RCTAnimation (= 0.84.1-0)
- - React-RCTBlob (= 0.84.1-0)
- - React-RCTImage (= 0.84.1-0)
- - React-RCTLinking (= 0.84.1-0)
- - React-RCTNetwork (= 0.84.1-0)
- - React-RCTSettings (= 0.84.1-0)
- - React-RCTText (= 0.84.1-0)
- - React-callinvoker (0.84.1-0)
- - React-Core (0.84.1-0):
+ - RCTTypeSafety (0.86.2-0):
+ - FBLazyVector (= 0.86.2-0)
+ - RCTRequired (= 0.86.2-0)
+ - React-Core (= 0.86.2-0)
+ - React (0.86.2-0):
+ - React-Core (= 0.86.2-0)
+ - React-Core/DevSupport (= 0.86.2-0)
+ - React-Core/RCTWebSocket (= 0.86.2-0)
+ - React-RCTActionSheet (= 0.86.2-0)
+ - React-RCTAnimation (= 0.86.2-0)
+ - React-RCTBlob (= 0.86.2-0)
+ - React-RCTImage (= 0.86.2-0)
+ - React-RCTLinking (= 0.86.2-0)
+ - React-RCTNetwork (= 0.86.2-0)
+ - React-RCTSettings (= 0.86.2-0)
+ - React-RCTText (= 0.86.2-0)
+ - React-callinvoker (0.86.2-0)
+ - React-Core (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
- - React-Core/Default (= 0.84.1-0)
+ - React-Core/Default (= 0.86.2-0)
- React-cxxreact
- React-featureflags
- React-hermes
@@ -50,9 +50,9 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core-prebuilt (0.84.1-0):
+ - React-Core-prebuilt (0.86.2-0):
- ReactNativeDependencies
- - React-Core/CoreModulesHeaders (0.84.1-0):
+ - React-Core/CoreModulesHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -71,7 +71,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/Default (0.84.1-0):
+ - React-Core/Default (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -89,12 +89,12 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/DevSupport (0.84.1-0):
+ - React-Core/DevSupport (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
- - React-Core/Default (= 0.84.1-0)
- - React-Core/RCTWebSocket (= 0.84.1-0)
+ - React-Core/Default (= 0.86.2-0)
+ - React-Core/RCTWebSocket (= 0.86.2-0)
- React-cxxreact
- React-featureflags
- React-hermes
@@ -109,7 +109,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTActionSheetHeaders (0.84.1-0):
+ - React-Core/RCTActionSheetHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -128,7 +128,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTAnimationHeaders (0.84.1-0):
+ - React-Core/RCTAnimationHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -147,7 +147,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTBlobHeaders (0.84.1-0):
+ - React-Core/RCTBlobHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -166,7 +166,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTImageHeaders (0.84.1-0):
+ - React-Core/RCTImageHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -185,7 +185,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTLinkingHeaders (0.84.1-0):
+ - React-Core/RCTLinkingHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -204,7 +204,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTNetworkHeaders (0.84.1-0):
+ - React-Core/RCTNetworkHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -223,7 +223,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTSettingsHeaders (0.84.1-0):
+ - React-Core/RCTSettingsHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -242,7 +242,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTTextHeaders (0.84.1-0):
+ - React-Core/RCTTextHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -261,7 +261,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTVibrationHeaders (0.84.1-0):
+ - React-Core/RCTVibrationHeaders (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -280,11 +280,11 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTWebSocket (0.84.1-0):
+ - React-Core/RCTWebSocket (0.86.2-0):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
- - React-Core/Default (= 0.84.1-0)
+ - React-Core/Default (= 0.86.2-0)
- React-cxxreact
- React-featureflags
- React-hermes
@@ -299,43 +299,47 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-CoreModules (0.84.1-0):
- - RCTTypeSafety (= 0.84.1-0)
+ - React-CoreModules (0.86.2-0):
+ - RCTTypeSafety (= 0.86.2-0)
- React-Core-prebuilt
- - React-Core/CoreModulesHeaders (= 0.84.1-0)
+ - React-Core/CoreModulesHeaders (= 0.86.2-0)
- React-debug
- - React-jsi (= 0.84.1-0)
+ - React-featureflags
+ - React-jsi (= 0.86.2-0)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-NativeModulesApple
- React-RCTBlob
- React-RCTFBReactNativeSpec
- - React-RCTImage (= 0.84.1-0)
+ - React-RCTImage (= 0.86.2-0)
- React-runtimeexecutor
- React-utils
- ReactCommon
- ReactNativeDependencies
- - React-cxxreact (0.84.1-0):
+ - React-cxxreact (0.86.2-0):
- hermes-engine
- - React-callinvoker (= 0.84.1-0)
+ - React-callinvoker (= 0.86.2-0)
- React-Core-prebuilt
- - React-debug (= 0.84.1-0)
- - React-jsi (= 0.84.1-0)
+ - React-debug (= 0.86.2-0)
+ - React-jsi (= 0.86.2-0)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- - React-logger (= 0.84.1-0)
- - React-perflogger (= 0.84.1-0)
+ - React-logger (= 0.86.2-0)
+ - React-perflogger (= 0.86.2-0)
- React-runtimeexecutor
- - React-timing (= 0.84.1-0)
+ - React-timing (= 0.86.2-0)
- React-utils
- ReactNativeDependencies
- - React-debug (0.84.1-0)
- - React-defaultsnativemodule (0.84.1-0):
+ - React-debug (0.86.2-0):
+ - React-debug/redbox (= 0.86.2-0)
+ - React-debug/redbox (0.86.2-0)
+ - React-defaultsnativemodule (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-domnativemodule
+ - React-Fabric/animated
- React-featureflags
- React-featureflagsnativemodule
- React-idlecallbacksnativemodule
@@ -343,11 +347,13 @@ PODS:
- React-jsi
- React-jsiexecutor
- React-microtasksnativemodule
+ - React-mutationobservernativemodule
- React-RCTFBReactNativeSpec
+ - React-viewtransitionnativemodule
- React-webperformancenativemodule
- ReactNativeDependencies
- Yoga
- - React-domnativemodule (0.84.1-0):
+ - React-domnativemodule (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-Fabric
@@ -361,7 +367,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-Fabric (0.84.1-0):
+ - React-Fabric (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -369,25 +375,25 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/animated (= 0.84.1-0)
- - React-Fabric/animationbackend (= 0.84.1-0)
- - React-Fabric/animations (= 0.84.1-0)
- - React-Fabric/attributedstring (= 0.84.1-0)
- - React-Fabric/bridging (= 0.84.1-0)
- - React-Fabric/componentregistry (= 0.84.1-0)
- - React-Fabric/componentregistrynative (= 0.84.1-0)
- - React-Fabric/components (= 0.84.1-0)
- - React-Fabric/consistency (= 0.84.1-0)
- - React-Fabric/core (= 0.84.1-0)
- - React-Fabric/dom (= 0.84.1-0)
- - React-Fabric/imagemanager (= 0.84.1-0)
- - React-Fabric/leakchecker (= 0.84.1-0)
- - React-Fabric/mounting (= 0.84.1-0)
- - React-Fabric/observers (= 0.84.1-0)
- - React-Fabric/scheduler (= 0.84.1-0)
- - React-Fabric/telemetry (= 0.84.1-0)
- - React-Fabric/templateprocessor (= 0.84.1-0)
- - React-Fabric/uimanager (= 0.84.1-0)
+ - React-Fabric/animated (= 0.86.2-0)
+ - React-Fabric/animationbackend (= 0.86.2-0)
+ - React-Fabric/animations (= 0.86.2-0)
+ - React-Fabric/attributedstring (= 0.86.2-0)
+ - React-Fabric/bridging (= 0.86.2-0)
+ - React-Fabric/componentregistry (= 0.86.2-0)
+ - React-Fabric/componentregistrynative (= 0.86.2-0)
+ - React-Fabric/components (= 0.86.2-0)
+ - React-Fabric/consistency (= 0.86.2-0)
+ - React-Fabric/core (= 0.86.2-0)
+ - React-Fabric/dom (= 0.86.2-0)
+ - React-Fabric/imagemanager (= 0.86.2-0)
+ - React-Fabric/leakchecker (= 0.86.2-0)
+ - React-Fabric/mounting (= 0.86.2-0)
+ - React-Fabric/observers (= 0.86.2-0)
+ - React-Fabric/scheduler (= 0.86.2-0)
+ - React-Fabric/telemetry (= 0.86.2-0)
+ - React-Fabric/uimanager (= 0.86.2-0)
+ - React-Fabric/viewtransition (= 0.86.2-0)
- React-featureflags
- React-graphics
- React-jsi
@@ -399,7 +405,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/animated (0.84.1-0):
+ - React-Fabric/animated (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -407,6 +413,7 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
+ - React-Fabric/animationbackend
- React-featureflags
- React-graphics
- React-jsi
@@ -418,7 +425,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/animationbackend (0.84.1-0):
+ - React-Fabric/animationbackend (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -437,7 +444,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/animations (0.84.1-0):
+ - React-Fabric/animations (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -456,7 +463,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/attributedstring (0.84.1-0):
+ - React-Fabric/attributedstring (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -475,7 +482,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/bridging (0.84.1-0):
+ - React-Fabric/bridging (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -494,7 +501,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/componentregistry (0.84.1-0):
+ - React-Fabric/componentregistry (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -513,7 +520,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/componentregistrynative (0.84.1-0):
+ - React-Fabric/componentregistrynative (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -532,7 +539,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components (0.84.1-0):
+ - React-Fabric/components (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -540,10 +547,10 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/components/legacyviewmanagerinterop (= 0.84.1-0)
- - React-Fabric/components/root (= 0.84.1-0)
- - React-Fabric/components/scrollview (= 0.84.1-0)
- - React-Fabric/components/view (= 0.84.1-0)
+ - React-Fabric/components/legacyviewmanagerinterop (= 0.86.2-0)
+ - React-Fabric/components/root (= 0.86.2-0)
+ - React-Fabric/components/scrollview (= 0.86.2-0)
+ - React-Fabric/components/view (= 0.86.2-0)
- React-featureflags
- React-graphics
- React-jsi
@@ -555,7 +562,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/legacyviewmanagerinterop (0.84.1-0):
+ - React-Fabric/components/legacyviewmanagerinterop (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -574,7 +581,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/root (0.84.1-0):
+ - React-Fabric/components/root (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -593,7 +600,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/scrollview (0.84.1-0):
+ - React-Fabric/components/scrollview (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -612,7 +619,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/view (0.84.1-0):
+ - React-Fabric/components/view (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -633,7 +640,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-Fabric/consistency (0.84.1-0):
+ - React-Fabric/consistency (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -652,7 +659,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/core (0.84.1-0):
+ - React-Fabric/core (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -671,7 +678,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/dom (0.84.1-0):
+ - React-Fabric/dom (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -690,7 +697,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/imagemanager (0.84.1-0):
+ - React-Fabric/imagemanager (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -709,7 +716,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/leakchecker (0.84.1-0):
+ - React-Fabric/leakchecker (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -728,7 +735,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/mounting (0.84.1-0):
+ - React-Fabric/mounting (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -740,6 +747,7 @@ PODS:
- React-graphics
- React-jsi
- React-jsiexecutor
+ - React-jsinspectortracing
- React-logger
- React-rendererdebug
- React-runtimeexecutor
@@ -747,7 +755,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/observers (0.84.1-0):
+ - React-Fabric/observers (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -755,8 +763,9 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/observers/events (= 0.84.1-0)
- - React-Fabric/observers/intersection (= 0.84.1-0)
+ - React-Fabric/observers/events (= 0.86.2-0)
+ - React-Fabric/observers/intersection (= 0.86.2-0)
+ - React-Fabric/observers/mutation (= 0.86.2-0)
- React-featureflags
- React-graphics
- React-jsi
@@ -768,7 +777,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/observers/events (0.84.1-0):
+ - React-Fabric/observers/events (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -787,7 +796,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/observers/intersection (0.84.1-0):
+ - React-Fabric/observers/intersection (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -806,7 +815,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/scheduler (0.84.1-0):
+ - React-Fabric/observers/mutation (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -814,21 +823,18 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/observers/events
- React-featureflags
- React-graphics
- React-jsi
- React-jsiexecutor
- React-logger
- - React-performancecdpmetrics
- - React-performancetimeline
- React-rendererdebug
- React-runtimeexecutor
- React-runtimescheduler
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/telemetry (0.84.1-0):
+ - React-Fabric/scheduler (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -836,18 +842,23 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
+ - React-Fabric/animationbackend
+ - React-Fabric/observers/events
+ - React-Fabric/viewtransition
- React-featureflags
- React-graphics
- React-jsi
- React-jsiexecutor
- React-logger
+ - React-performancecdpmetrics
+ - React-performancetimeline
- React-rendererdebug
- React-runtimeexecutor
- React-runtimescheduler
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/templateprocessor (0.84.1-0):
+ - React-Fabric/telemetry (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -866,7 +877,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/uimanager (0.84.1-0):
+ - React-Fabric/uimanager (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -874,7 +885,7 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/uimanager/consistency (= 0.84.1-0)
+ - React-Fabric/uimanager/consistency (= 0.86.2-0)
- React-featureflags
- React-graphics
- React-jsi
@@ -887,7 +898,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/uimanager/consistency (0.84.1-0):
+ - React-Fabric/uimanager/consistency (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -907,7 +918,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-FabricComponents (0.84.1-0):
+ - React-Fabric/viewtransition (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -915,22 +926,18 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric
- - React-FabricComponents/components (= 0.84.1-0)
- - React-FabricComponents/textlayoutmanager (= 0.84.1-0)
- React-featureflags
- React-graphics
- React-jsi
- React-jsiexecutor
- React-logger
- - React-RCTFBReactNativeSpec
- React-rendererdebug
+ - React-runtimeexecutor
- React-runtimescheduler
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - Yoga
- - React-FabricComponents/components (0.84.1-0):
+ - React-FabricComponents (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -939,18 +946,8 @@ PODS:
- React-cxxreact
- React-debug
- React-Fabric
- - React-FabricComponents/components/inputaccessory (= 0.84.1-0)
- - React-FabricComponents/components/iostextinput (= 0.84.1-0)
- - React-FabricComponents/components/modal (= 0.84.1-0)
- - React-FabricComponents/components/rncore (= 0.84.1-0)
- - React-FabricComponents/components/safeareaview (= 0.84.1-0)
- - React-FabricComponents/components/scrollview (= 0.84.1-0)
- - React-FabricComponents/components/switch (= 0.84.1-0)
- - React-FabricComponents/components/text (= 0.84.1-0)
- - React-FabricComponents/components/textinput (= 0.84.1-0)
- - React-FabricComponents/components/unimplementedview (= 0.84.1-0)
- - React-FabricComponents/components/virtualview (= 0.84.1-0)
- - React-FabricComponents/components/virtualviewexperimental (= 0.84.1-0)
+ - React-FabricComponents/components (= 0.86.2-0)
+ - React-FabricComponents/textlayoutmanager (= 0.86.2-0)
- React-featureflags
- React-graphics
- React-jsi
@@ -963,7 +960,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/inputaccessory (0.84.1-0):
+ - React-FabricComponents/components (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -972,6 +969,17 @@ PODS:
- React-cxxreact
- React-debug
- React-Fabric
+ - React-FabricComponents/components/inputaccessory (= 0.86.2-0)
+ - React-FabricComponents/components/iostextinput (= 0.86.2-0)
+ - React-FabricComponents/components/modal (= 0.86.2-0)
+ - React-FabricComponents/components/rncore (= 0.86.2-0)
+ - React-FabricComponents/components/safeareaview (= 0.86.2-0)
+ - React-FabricComponents/components/scrollview (= 0.86.2-0)
+ - React-FabricComponents/components/switch (= 0.86.2-0)
+ - React-FabricComponents/components/text (= 0.86.2-0)
+ - React-FabricComponents/components/textinput (= 0.86.2-0)
+ - React-FabricComponents/components/unimplementedview (= 0.86.2-0)
+ - React-FabricComponents/components/virtualview (= 0.86.2-0)
- React-featureflags
- React-graphics
- React-jsi
@@ -984,7 +992,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/iostextinput (0.84.1-0):
+ - React-FabricComponents/components/inputaccessory (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1005,7 +1013,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/modal (0.84.1-0):
+ - React-FabricComponents/components/iostextinput (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1026,7 +1034,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/rncore (0.84.1-0):
+ - React-FabricComponents/components/modal (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1047,7 +1055,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/safeareaview (0.84.1-0):
+ - React-FabricComponents/components/rncore (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1068,7 +1076,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/scrollview (0.84.1-0):
+ - React-FabricComponents/components/safeareaview (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1089,7 +1097,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/switch (0.84.1-0):
+ - React-FabricComponents/components/scrollview (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1110,7 +1118,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/text (0.84.1-0):
+ - React-FabricComponents/components/switch (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1131,7 +1139,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/textinput (0.84.1-0):
+ - React-FabricComponents/components/text (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1152,7 +1160,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/unimplementedview (0.84.1-0):
+ - React-FabricComponents/components/textinput (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1173,7 +1181,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/virtualview (0.84.1-0):
+ - React-FabricComponents/components/unimplementedview (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1194,7 +1202,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/virtualviewexperimental (0.84.1-0):
+ - React-FabricComponents/components/virtualview (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1215,7 +1223,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/textlayoutmanager (0.84.1-0):
+ - React-FabricComponents/textlayoutmanager (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1236,27 +1244,27 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricImage (0.84.1-0):
+ - React-FabricImage (0.86.2-0):
- hermes-engine
- - RCTRequired (= 0.84.1-0)
- - RCTTypeSafety (= 0.84.1-0)
+ - RCTRequired (= 0.86.2-0)
+ - RCTTypeSafety (= 0.86.2-0)
- React-Core-prebuilt
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-jsi
- - React-jsiexecutor (= 0.84.1-0)
+ - React-jsiexecutor (= 0.86.2-0)
- React-logger
- React-rendererdebug
- React-utils
- ReactCommon
- ReactNativeDependencies
- Yoga
- - React-featureflags (0.84.1-0):
+ - React-featureflags (0.86.2-0):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-featureflagsnativemodule (0.84.1-0):
+ - React-featureflagsnativemodule (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-featureflags
@@ -1265,28 +1273,30 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-graphics (0.84.1-0):
+ - React-graphics (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
+ - React-featureflags
- React-jsi
- React-jsiexecutor
+ - React-rendererdebug
- React-utils
- ReactNativeDependencies
- - React-hermes (0.84.1-0):
+ - React-hermes (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- - React-cxxreact (= 0.84.1-0)
+ - React-cxxreact (= 0.86.2-0)
- React-jsi
- - React-jsiexecutor (= 0.84.1-0)
+ - React-jsiexecutor (= 0.86.2-0)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-jsitooling
- React-oscompat
- - React-perflogger (= 0.84.1-0)
+ - React-perflogger (= 0.86.2-0)
- React-runtimeexecutor
- ReactNativeDependencies
- - React-idlecallbacksnativemodule (0.84.1-0):
+ - React-idlecallbacksnativemodule (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-jsi
@@ -1296,7 +1306,7 @@ PODS:
- React-runtimescheduler
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-ImageManager (0.84.1-0):
+ - React-ImageManager (0.86.2-0):
- React-Core-prebuilt
- React-Core/Default
- React-debug
@@ -1305,7 +1315,7 @@ PODS:
- React-rendererdebug
- React-utils
- ReactNativeDependencies
- - React-intersectionobservernativemodule (0.84.1-0):
+ - React-intersectionobservernativemodule (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1320,7 +1330,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-jserrorhandler (0.84.1-0):
+ - React-jserrorhandler (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1329,11 +1339,11 @@ PODS:
- React-jsi
- ReactCommon/turbomodule/bridging
- ReactNativeDependencies
- - React-jsi (0.84.1-0):
+ - React-jsi (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- ReactNativeDependencies
- - React-jsiexecutor (0.84.1-0):
+ - React-jsiexecutor (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1348,7 +1358,7 @@ PODS:
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-jsinspector (0.84.1-0):
+ - React-jsinspector (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-featureflags
@@ -1357,47 +1367,48 @@ PODS:
- React-jsinspectornetwork
- React-jsinspectortracing
- React-oscompat
- - React-perflogger (= 0.84.1-0)
+ - React-perflogger (= 0.86.2-0)
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-jsinspectorcdp (0.84.1-0):
+ - React-jsinspectorcdp (0.86.2-0):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-jsinspectornetwork (0.84.1-0):
+ - React-jsinspectornetwork (0.86.2-0):
- React-Core-prebuilt
- React-jsinspectorcdp
- ReactNativeDependencies
- - React-jsinspectortracing (0.84.1-0):
+ - React-jsinspectortracing (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-jsi
- React-jsinspectornetwork
- React-oscompat
- React-timing
+ - React-utils
- ReactNativeDependencies
- - React-jsitooling (0.84.1-0):
+ - React-jsitooling (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- - React-cxxreact (= 0.84.1-0)
+ - React-cxxreact (= 0.86.2-0)
- React-debug
- - React-jsi (= 0.84.1-0)
+ - React-jsi (= 0.86.2-0)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-jsitracing (0.84.1-0):
+ - React-jsitracing (0.86.2-0):
- React-jsi
- - React-logger (0.84.1-0):
+ - React-logger (0.86.2-0):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-Mapbuffer (0.84.1-0):
+ - React-Mapbuffer (0.86.2-0):
- React-Core-prebuilt
- React-debug
- ReactNativeDependencies
- - React-microtasksnativemodule (0.84.1-0):
+ - React-microtasksnativemodule (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-jsi
@@ -1405,6 +1416,21 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon/turbomodule/core
- ReactNativeDependencies
+ - React-mutationobservernativemodule (0.86.2-0):
+ - hermes-engine
+ - React-Core-prebuilt
+ - React-cxxreact
+ - React-Fabric
+ - React-Fabric/bridging
+ - React-Fabric/observers/mutation
+ - React-featureflags
+ - React-jsi
+ - React-jsiexecutor
+ - React-RCTFBReactNativeSpec
+ - React-runtimeexecutor
+ - ReactCommon/turbomodule/core
+ - ReactNativeDependencies
+ - Yoga
- react-native-google-cast (4.6.2):
- React
- react-native-google-cast/GuestMode (= 4.6.2)
@@ -1493,7 +1519,7 @@ PODS:
- THEOplayer-Integration-THEOads (~> 11.4)
- THEOplayer-Integration-THEOlive (~> 11.4)
- THEOplayerSDK-core (~> 11.4)
- - React-NativeModulesApple (0.84.1-0):
+ - React-NativeModulesApple (0.86.2-0):
- hermes-engine
- React-callinvoker
- React-Core
@@ -1508,18 +1534,18 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-networking (0.84.1-0):
+ - React-networking (0.86.2-0):
- React-Core-prebuilt
- React-jsinspectornetwork
- React-jsinspectortracing
- React-performancetimeline
- React-timing
- ReactNativeDependencies
- - React-oscompat (0.84.1-0)
- - React-perflogger (0.84.1-0):
+ - React-oscompat (0.86.2-0)
+ - React-perflogger (0.86.2-0):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-performancecdpmetrics (0.84.1-0):
+ - React-performancecdpmetrics (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-jsi
@@ -1527,7 +1553,7 @@ PODS:
- React-runtimeexecutor
- React-timing
- ReactNativeDependencies
- - React-performancetimeline (0.84.1-0):
+ - React-performancetimeline (0.86.2-0):
- React-Core-prebuilt
- React-featureflags
- React-jsinspector
@@ -1535,9 +1561,9 @@ PODS:
- React-perflogger
- React-timing
- ReactNativeDependencies
- - React-RCTActionSheet (0.84.1-0):
- - React-Core/RCTActionSheetHeaders (= 0.84.1-0)
- - React-RCTAnimation (0.84.1-0):
+ - React-RCTActionSheet (0.86.2-0):
+ - React-Core/RCTActionSheetHeaders (= 0.86.2-0)
+ - React-RCTAnimation (0.86.2-0):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTAnimationHeaders
@@ -1548,7 +1574,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-RCTAppDelegate (0.84.1-0):
+ - React-RCTAppDelegate (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1576,7 +1602,7 @@ PODS:
- React-utils
- ReactCommon
- ReactNativeDependencies
- - React-RCTBlob (0.84.1-0):
+ - React-RCTBlob (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-Core/RCTBlobHeaders
@@ -1589,7 +1615,7 @@ PODS:
- React-RCTNetwork
- ReactCommon
- ReactNativeDependencies
- - React-RCTFabric (0.84.1-0):
+ - React-RCTFabric (0.86.2-0):
- hermes-engine
- RCTSwiftUIWrapper
- React-Core
@@ -1620,7 +1646,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-RCTFBReactNativeSpec (0.84.1-0):
+ - React-RCTFBReactNativeSpec (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1628,10 +1654,10 @@ PODS:
- React-Core-prebuilt
- React-jsi
- React-NativeModulesApple
- - React-RCTFBReactNativeSpec/components (= 0.84.1-0)
+ - React-RCTFBReactNativeSpec/components (= 0.86.2-0)
- ReactCommon
- ReactNativeDependencies
- - React-RCTFBReactNativeSpec/components (0.84.1-0):
+ - React-RCTFBReactNativeSpec/components (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1648,7 +1674,7 @@ PODS:
- ReactCommon
- ReactNativeDependencies
- Yoga
- - React-RCTImage (0.84.1-0):
+ - React-RCTImage (0.86.2-0):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTImageHeaders
@@ -1658,14 +1684,14 @@ PODS:
- React-RCTNetwork
- ReactCommon
- ReactNativeDependencies
- - React-RCTLinking (0.84.1-0):
- - React-Core/RCTLinkingHeaders (= 0.84.1-0)
- - React-jsi (= 0.84.1-0)
+ - React-RCTLinking (0.86.2-0):
+ - React-Core/RCTLinkingHeaders (= 0.86.2-0)
+ - React-jsi (= 0.86.2-0)
- React-NativeModulesApple
- React-RCTFBReactNativeSpec
- ReactCommon
- - ReactCommon/turbomodule/core (= 0.84.1-0)
- - React-RCTNetwork (0.84.1-0):
+ - ReactCommon/turbomodule/core (= 0.86.2-0)
+ - React-RCTNetwork (0.86.2-0):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTNetworkHeaders
@@ -1679,7 +1705,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-RCTRuntime (0.84.1-0):
+ - React-RCTRuntime (0.86.2-0):
- hermes-engine
- React-Core
- React-Core-prebuilt
@@ -1695,7 +1721,7 @@ PODS:
- React-RuntimeHermes
- React-utils
- ReactNativeDependencies
- - React-RCTSettings (0.84.1-0):
+ - React-RCTSettings (0.86.2-0):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTSettingsHeaders
@@ -1704,10 +1730,10 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-RCTText (0.84.1-0):
- - React-Core/RCTTextHeaders (= 0.84.1-0)
+ - React-RCTText (0.86.2-0):
+ - React-Core/RCTTextHeaders (= 0.86.2-0)
- Yoga
- - React-RCTVibration (0.84.1-0):
+ - React-RCTVibration (0.86.2-0):
- React-Core-prebuilt
- React-Core/RCTVibrationHeaders
- React-jsi
@@ -1715,15 +1741,15 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-rendererconsistency (0.84.1-0)
- - React-renderercss (0.84.1-0):
+ - React-rendererconsistency (0.86.2-0)
+ - React-renderercss (0.86.2-0):
- React-debug
- React-utils
- - React-rendererdebug (0.84.1-0):
+ - React-rendererdebug (0.86.2-0):
- React-Core-prebuilt
- React-debug
- ReactNativeDependencies
- - React-RuntimeApple (0.84.1-0):
+ - React-RuntimeApple (0.86.2-0):
- hermes-engine
- React-callinvoker
- React-Core-prebuilt
@@ -1746,7 +1772,7 @@ PODS:
- React-runtimescheduler
- React-utils
- ReactNativeDependencies
- - React-RuntimeCore (0.84.1-0):
+ - React-RuntimeCore (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1762,14 +1788,14 @@ PODS:
- React-runtimescheduler
- React-utils
- ReactNativeDependencies
- - React-runtimeexecutor (0.84.1-0):
+ - React-runtimeexecutor (0.86.2-0):
- React-Core-prebuilt
- React-debug
- React-featureflags
- - React-jsi (= 0.84.1-0)
+ - React-jsi (= 0.86.2-0)
- React-utils
- ReactNativeDependencies
- - React-RuntimeHermes (0.84.1-0):
+ - React-RuntimeHermes (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-featureflags
@@ -1784,7 +1810,7 @@ PODS:
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-runtimescheduler (0.84.1-0):
+ - React-runtimescheduler (0.86.2-0):
- hermes-engine
- React-callinvoker
- React-Core-prebuilt
@@ -1800,15 +1826,27 @@ PODS:
- React-timing
- React-utils
- ReactNativeDependencies
- - React-timing (0.84.1-0):
+ - React-timing (0.86.2-0):
- React-debug
- - React-utils (0.84.1-0):
+ - React-utils (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-debug
- - React-jsi (= 0.84.1-0)
+ - React-jsi (= 0.86.2-0)
- ReactNativeDependencies
- - React-webperformancenativemodule (0.84.1-0):
+ - React-viewtransitionnativemodule (0.86.2-0):
+ - hermes-engine
+ - React-Core-prebuilt
+ - React-Fabric
+ - React-Fabric/bridging
+ - React-jsi
+ - React-jsiexecutor
+ - React-RCTFBReactNativeSpec
+ - React-runtimeexecutor
+ - ReactCommon/turbomodule/core
+ - ReactNativeDependencies
+ - Yoga
+ - React-webperformancenativemodule (0.86.2-0):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1819,9 +1857,9 @@ PODS:
- React-runtimeexecutor
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - ReactAppDependencyProvider (0.84.1-0):
+ - ReactAppDependencyProvider (0.86.2-0):
- ReactCodegen
- - ReactCodegen (0.84.1-0):
+ - ReactCodegen (0.86.2-0):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1841,44 +1879,44 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - ReactCommon (0.84.1-0):
+ - ReactCommon (0.86.2-0):
- React-Core-prebuilt
- - ReactCommon/turbomodule (= 0.84.1-0)
+ - ReactCommon/turbomodule (= 0.86.2-0)
- ReactNativeDependencies
- - ReactCommon/turbomodule (0.84.1-0):
+ - ReactCommon/turbomodule (0.86.2-0):
- hermes-engine
- - React-callinvoker (= 0.84.1-0)
+ - React-callinvoker (= 0.86.2-0)
- React-Core-prebuilt
- - React-cxxreact (= 0.84.1-0)
- - React-jsi (= 0.84.1-0)
- - React-logger (= 0.84.1-0)
- - React-perflogger (= 0.84.1-0)
- - ReactCommon/turbomodule/bridging (= 0.84.1-0)
- - ReactCommon/turbomodule/core (= 0.84.1-0)
+ - React-cxxreact (= 0.86.2-0)
+ - React-jsi (= 0.86.2-0)
+ - React-logger (= 0.86.2-0)
+ - React-perflogger (= 0.86.2-0)
+ - ReactCommon/turbomodule/bridging (= 0.86.2-0)
+ - ReactCommon/turbomodule/core (= 0.86.2-0)
- ReactNativeDependencies
- - ReactCommon/turbomodule/bridging (0.84.1-0):
+ - ReactCommon/turbomodule/bridging (0.86.2-0):
- hermes-engine
- - React-callinvoker (= 0.84.1-0)
+ - React-callinvoker (= 0.86.2-0)
- React-Core-prebuilt
- - React-cxxreact (= 0.84.1-0)
- - React-jsi (= 0.84.1-0)
- - React-logger (= 0.84.1-0)
- - React-perflogger (= 0.84.1-0)
+ - React-cxxreact (= 0.86.2-0)
+ - React-jsi (= 0.86.2-0)
+ - React-logger (= 0.86.2-0)
+ - React-perflogger (= 0.86.2-0)
- ReactNativeDependencies
- - ReactCommon/turbomodule/core (0.84.1-0):
+ - ReactCommon/turbomodule/core (0.86.2-0):
- hermes-engine
- - React-callinvoker (= 0.84.1-0)
+ - React-callinvoker (= 0.86.2-0)
- React-Core-prebuilt
- - React-cxxreact (= 0.84.1-0)
- - React-debug (= 0.84.1-0)
- - React-featureflags (= 0.84.1-0)
- - React-jsi (= 0.84.1-0)
- - React-logger (= 0.84.1-0)
- - React-perflogger (= 0.84.1-0)
- - React-utils (= 0.84.1-0)
+ - React-cxxreact (= 0.86.2-0)
+ - React-debug (= 0.86.2-0)
+ - React-featureflags (= 0.86.2-0)
+ - React-jsi (= 0.86.2-0)
+ - React-logger (= 0.86.2-0)
+ - React-perflogger (= 0.86.2-0)
+ - React-utils (= 0.86.2-0)
- ReactNativeDependencies
- - ReactNativeDependencies (0.84.1)
- - RNSVG (15.15.1):
+ - ReactNativeDependencies (0.86.2)
+ - RNSVG (15.15.5):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1899,9 +1937,9 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - RNSVG/common (= 15.15.1)
+ - RNSVG/common (= 15.15.5)
- Yoga
- - RNSVG/common (15.15.1):
+ - RNSVG/common (15.15.5):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2004,6 +2042,7 @@ DEPENDENCIES:
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
- React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
- React-microtasksnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`)
+ - React-mutationobservernativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/mutationobserver`)
- react-native-google-cast (from `https://github.com/Danesz/react-native-google-cast.git`, branch `feature/guestmode_apple_silicon`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- react-native-theoplayer (from `../node_modules/react-native-theoplayer`)
@@ -2036,6 +2075,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-viewtransitionnativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/viewtransition`)
- React-webperformancenativemodule (from `../node_modules/react-native/ReactCommon/react/nativemodule/webperformance`)
- ReactAppDependencyProvider (from `build/generated/ios/ReactAppDependencyProvider`)
- ReactCodegen (from `build/generated/ios/ReactCodegen`)
@@ -2068,7 +2108,7 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/Libraries/FBLazyVector"
hermes-engine:
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
- :tag: hermes-v250829098.0.9
+ :tag: hermes-v250829098.0.16
RCTDeprecation:
:path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation"
RCTRequired:
@@ -2141,6 +2181,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon"
React-microtasksnativemodule:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/microtasks"
+ React-mutationobservernativemodule:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/mutationobserver"
react-native-google-cast:
:branch: feature/guestmode_apple_silicon
:git: https://github.com/Danesz/react-native-google-cast.git
@@ -2206,6 +2248,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/react/timing"
React-utils:
:path: "../node_modules/react-native/ReactCommon/react/utils"
+ React-viewtransitionnativemodule:
+ :path: "../node_modules/react-native/ReactCommon/react/nativemodule/viewtransition"
React-webperformancenativemodule:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/webperformance"
ReactAppDependencyProvider:
@@ -2228,49 +2272,50 @@ CHECKOUT OPTIONS:
SPEC CHECKSUMS:
DSFRegex: 8493187c71ac199695245eb9ec98bad4f87a2f0b
- FBLazyVector: a3651a4af13997df8df1bcd5af1cc7507d51dc7b
+ FBLazyVector: 248c4d075c21685bbf8d27048857a926974d174c
google-cast-sdk-dynamic-xcframework: d4dd8d548462f2a4874515fee68c17805d44be42
GoogleAds-IMA-iOS-SDK: b1b1e3b8f486cfb7c7a669a58a5380421f3bcaab
GoogleAds-IMA-tvOS-SDK: e43d2ddd224b04b910e42aeb5655380af56976eb
- hermes-engine: 76cc5f7b150dc2db4b5d7f680e27fecbe8f3e320
+ hermes-engine: 97ab49025c72c59ff6d9a806dc1db6ff5ecc9703
MillicastSDK: 690470f2108b5d67288babbebbee36c2cf196b4b
PromisesObjC: 752c3227f599e3467650e47ea36f433eeb10c273
- RCTDeprecation: e1d3de84bd12761f1a42ae433c805c84ce3e1447
- RCTRequired: 5f75a4215a8c9551b303a95b0394968ae7490f18
- RCTSwiftUI: 6cfd2a6b1506648cd96493d252069bd1b49bdea4
- RCTSwiftUIWrapper: f6548795d01dcd21dae60f7de099c93169934913
- RCTTypeSafety: b8b083a6cb2cdc8d3bd38b4a309d93c98ba72326
- React: b785d635f91eb1df402a0dbc0305546f139c8048
- React-callinvoker: 3e490bb38efd7cef31c17154d33d3cc294db880b
- React-Core: 0f42a57b76d338e36bd865f4376fd5d1a0f8d713
- React-Core-prebuilt: d2742d070425dcaf24ae76659a57faa3947963d0
- React-CoreModules: f491cab4017c2a0c4bf5b5b87e9941885fe4066a
- React-cxxreact: 0304849cb02fbc7c8c0138fc6f59e914d04687e6
- React-debug: a26fb9a83e45de87601236175f68e3f3b92ab8ac
- React-defaultsnativemodule: f89927303c7639108f229f0a6f0736012bd3158b
- React-domnativemodule: 2943c7bb903ff2c987137bdbe350d79013c4ea53
- React-Fabric: d019bcde72ff88a26b4d62be86f608226c9b2fbd
- React-FabricComponents: 4294e4f24921177c94538dbd0a8277e4f9af2f96
- React-FabricImage: 6013e09c69bf1f0b50889ca972ebece8f7a5deb0
- React-featureflags: 0664a78f044ca1a691db055cf7ab70b7f3ed82ae
- React-featureflagsnativemodule: fb38fb7ced6909730e28f65a8bbae826d21f7d32
- React-graphics: 97881247bbef2e073abc3fe35f7e5b568637a752
- React-hermes: 50269e9916329f5075b5c626c1ea958c2178fb82
- React-idlecallbacksnativemodule: e48515b976b02aba5f3daf07f25ef6483167bb46
- React-ImageManager: 0b738549adf81a0820b34491ddb878ec5314f3eb
- React-intersectionobservernativemodule: 0d2d4b5456b43deda300e37e9c6b6e179cda2484
- React-jserrorhandler: 0d90aee43a20ca50b857795a73a1e73eba8ed2b3
- React-jsi: 8069f33d57103c9d10cac33be126a5e2ba6370c6
- React-jsiexecutor: e99be7b26dc6a2429ea40e7df90b2c8d2405effd
- React-jsinspector: 464b96182be223e81393bc9c448c2535dd6ef738
- React-jsinspectorcdp: aebf443a8f97d0fe62ccfb8b6778aa36ad31b79b
- React-jsinspectornetwork: 7179b9e5158f2d7c64e740e0fa78f148ae0ade54
- React-jsinspectortracing: 0945286464741f26f5d92c39c651ca4bb3b2729a
- React-jsitooling: 1ce3f4a47a73c6d2a15e2bd029834a2280ed3810
- React-jsitracing: fe5db5818d1aeae7a0e3520f77a0b516f0a4d2b0
- React-logger: be828b65e76567b9afe9985294862f367ed9c782
- React-Mapbuffer: 295dbd7da3a50e3c06f0ba802e21deed12b4574e
- React-microtasksnativemodule: eb714fe3d21e607954699ad1dc20dc11c0221bc8
+ RCTDeprecation: 707417941c54d790c0c1b5b650c16328a1e8cedc
+ RCTRequired: 4ee045f5a742778c45c940e11e9c17d2cf1ffb08
+ RCTSwiftUI: 65e640ba61a2eacda4d1e35b0a97c9653977748b
+ RCTSwiftUIWrapper: f6d13c277aec753564139841cb5c324ba34f8260
+ RCTTypeSafety: 8a55410a27cf2cb702b8d49e25f4096f67896f03
+ React: ae0c6b319bef01fdfd8101a8d9cf79270b78dcba
+ React-callinvoker: 531e2e2ece5317920574224906b2bac70d30a398
+ React-Core: 5429c697212e99acbe4a668d0a48b8cc08f53826
+ React-Core-prebuilt: 48452694ccb24d2756c3d761e29938fa8e97685b
+ React-CoreModules: 08f856b550dae54d959a721ec3bf391ee948af6b
+ React-cxxreact: 67c95453489e737cc08f2463e901c9fc50e1a0d1
+ React-debug: 13023e5fced6b8091f987b3c9d813dd262b57fd6
+ React-defaultsnativemodule: 770aa3f5a215d63730cc7ed2e91c392dd20cf6c5
+ React-domnativemodule: e25f6afea9df3676c349bc50270c6df6733a3b93
+ React-Fabric: 2f670ba7131aa902a9e51c744aeedb011e84a8b2
+ React-FabricComponents: 52fe21b6080dfb1ab31de49dd73ae6ecf99b627a
+ React-FabricImage: a63c3d333418d0ab1991c727005225ae68cd5618
+ React-featureflags: 09bfae808bb34cf85a267ec3bc1ca99ffb0f1c2f
+ React-featureflagsnativemodule: 2e17293004fe31e4425f42c2aa2baf8e80bfddee
+ React-graphics: 8aa19609e46de0c6053bf9514c5f4a24988d1c90
+ React-hermes: f9b6a443cf655824d65b40cec9194387eef0f961
+ React-idlecallbacksnativemodule: 1bfbae6c534fcf2bdf098a908c0c584dc9e825f8
+ React-ImageManager: b80805beb40ce97cd3eb576296c066fb10b51b58
+ React-intersectionobservernativemodule: 32dadcbcf151c3052b9cfda4142d8d2adb3df502
+ React-jserrorhandler: 995e6fc61ecc9d89d6776cafe72a97b51ffa9d0d
+ React-jsi: 0968f306c9ae85e54568d0b1cfe0b9049b3486bb
+ React-jsiexecutor: 53baeca1e93b1bbe5bd3bb54cec9110f309875ad
+ React-jsinspector: ab68beb339868d364add404bdf0ff1ee54491b08
+ React-jsinspectorcdp: 9de1265018687a49badec6bf6ccff4fdd66c57e2
+ React-jsinspectornetwork: bfd4085f01d287096dc9793d35f5c2ffb58519c6
+ React-jsinspectortracing: 47116a0dbbdf84dd265be9dd3ec229c49c108789
+ React-jsitooling: 35a7317c155e842e982e81651f52c8c329919bef
+ React-jsitracing: db128c1138491c5d68e6b771ecc63dde51cc789d
+ React-logger: 05d38b40f40094dec7638e3da35f83ecfc71132c
+ React-Mapbuffer: 4fa63fbb61a449ed38e64ae8ed6edebb3946ea12
+ React-microtasksnativemodule: 1a40a09131bfd44259fbf792034270b56a4cd587
+ React-mutationobservernativemodule: 36e092b963f4811880d00c5b1b8c8c7b92c9b965
react-native-google-cast: d7bdfd1a0eeba84afde03b9722351ec29543e74c
react-native-safe-area-context: 53f796cb6c814661bbe99fbdfd0585d07b996cdd
react-native-theoplayer: 06cf4fd677b0fcf025d3d4d23089a57a4a2f39c9
@@ -2319,7 +2364,7 @@ SPEC CHECKSUMS:
THEOplayer-Integration-THEOlive: a9b5b338ebb82205fe85df44621641e7656a5587
THEOplayerSDK-core: b4486670f269a4b89a75bdff79d58d4641750145
TinyCSV: fd6228edbcf1c07466ac34b76dac5e052143eaba
- Yoga: e2029bb72b7cb951e09aa1ee1316c9f5f28409da
+ Yoga: c152491a69e81ff3279fec4ce614628e3bc6af8e
PODFILE CHECKSUM: 6b3681d74f386cbfb1fd986b29a1faacdcd0dce5
diff --git a/example/ios/ReactNativeTHEOplayer.xcodeproj/project.pbxproj b/example/ios/ReactNativeTHEOplayer.xcodeproj/project.pbxproj
index 2b49e7e8d..a18bae5ee 100644
--- a/example/ios/ReactNativeTHEOplayer.xcodeproj/project.pbxproj
+++ b/example/ios/ReactNativeTHEOplayer.xcodeproj/project.pbxproj
@@ -372,6 +372,7 @@
"${PODS_CONFIGURATION_BUILD_DIR}/RNSVG-tvOS/RNSVGFilters.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core-tvOS/React-Core_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact-tvOS/React-cxxreact_privacy.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-timing-tvOS/React-timing_privacy.bundle",
"${PODS_ROOT}/../../node_modules/react-native-theoplayer/ios/style.css",
);
name = "[CP] Copy Pods Resources";
@@ -379,6 +380,7 @@
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNSVGFilters.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-timing_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/style.css",
);
runOnlyForDeploymentPostprocessing = 0;
@@ -397,6 +399,7 @@
"${PODS_CONFIGURATION_BUILD_DIR}/RNSVG-iOS/RNSVGFilters.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core-iOS/React-Core_privacy.bundle",
"${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact-iOS/React-cxxreact_privacy.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-timing-iOS/React-timing_privacy.bundle",
"${PODS_ROOT}/../../node_modules/react-native-theoplayer/ios/style.css",
);
name = "[CP] Copy Pods Resources";
@@ -405,6 +408,7 @@
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNSVGFilters.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-timing_privacy.bundle",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/style.css",
);
runOnlyForDeploymentPostprocessing = 0;
@@ -704,6 +708,7 @@
"-DRCT_REMOVE_LEGACY_ARCH=1",
);
OTHER_LDFLAGS = "$(inherited)";
+ PODFILE_DIR = "$(SRCROOT)";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
@@ -780,6 +785,7 @@
"-DRCT_REMOVE_LEGACY_ARCH=1",
);
OTHER_LDFLAGS = "$(inherited)";
+ PODFILE_DIR = "$(SRCROOT)";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
diff --git a/ios/THEOplayerRCTBridge.m b/ios/THEOplayerRCTBridge.m
index 228057343..78a8992ed 100644
--- a/ios/THEOplayerRCTBridge.m
+++ b/ios/THEOplayerRCTBridge.m
@@ -183,6 +183,18 @@ @interface RCT_EXTERN_REMAP_MODULE(THEORCTAdsModule, THEOplayerRCTAdsAPI, NSObje
@end
+// ----------------------------------------------------------------------------
+// Metrics Module
+// ----------------------------------------------------------------------------
+
+@interface RCT_EXTERN_REMAP_MODULE(THEORCTMetricsModule, THEOplayerRCTMetricsAPI, NSObject)
+
+RCT_EXTERN_METHOD(currentBandwidthEstimate:(nonnull NSNumber *)node
+ resolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject)
+
+@end
+
// ----------------------------------------------------------------------------
// ContentProtection Module
// ----------------------------------------------------------------------------
diff --git a/ios/metrics/THEOplayerRCTMetricsAPI.swift b/ios/metrics/THEOplayerRCTMetricsAPI.swift
new file mode 100644
index 000000000..ece004a0c
--- /dev/null
+++ b/ios/metrics/THEOplayerRCTMetricsAPI.swift
@@ -0,0 +1,31 @@
+//
+// THEOplayerRCTMetricsAPI.swift
+// Theoplayer
+//
+import Foundation
+import UIKit
+
+@objc(THEOplayerRCTMetricsAPI)
+class THEOplayerRCTMetricsAPI: NSObject, RCTBridgeModule {
+ @objc var bridge: RCTBridge!
+
+ static func moduleName() -> String! {
+ return "THEORCTMetricsModule"
+ }
+
+ static func requiresMainQueueSetup() -> Bool {
+ return false
+ }
+
+ @objc(currentBandwidthEstimate:resolver:rejecter:)
+ func currentBandwidthEstimate(_ node: NSNumber, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
+ withViewAndPlayer(node) { _, player in
+ resolve(player.metrics.currentBandwidthEstimate)
+ } onFailure: {
+ // Resolve 0 (rather than rejecting) when the view/player cannot be resolved,
+ // so callers polling on an interval do not receive unhandled rejections.
+ // This matches the documented contract and the Android/Web behaviour.
+ resolve(0.0)
+ }
+ }
+}
diff --git a/react-native-theoplayer.podspec b/react-native-theoplayer.podspec
index 4f315e60c..09a84ae6d 100644
--- a/react-native-theoplayer.podspec
+++ b/react-native-theoplayer.podspec
@@ -35,7 +35,7 @@ Pod::Spec.new do |s|
s.platforms = { :ios => "15.0", :tvos => "15.0" }
s.source = { :git => "https://www.theoplayer.com/.git", :tag => "#{s.version}" }
- s.source_files = 'ios/*.{h,m,swift}', 'ios/ads/*.swift', 'ios/casting/*.swift', 'ios/contentprotection/*.swift', 'ios/pip/*.swift', 'ios/backgroundAudio/*.swift', 'ios/cache/*.swift', 'ios/sideloadedMetadata/*.swift', 'ios/eventBroadcasting/*.swift' , 'ios/ui/*.swift', 'ios/presentationMode/*.swift', 'ios/viewController/*.swift', 'ios/THEOlive/*.swift', 'ios/THEOads/*.swift', 'ios/millicast/*.swift', 'ios/cmcd/*.swift', 'ios/mediaControl/*.swift'
+ s.source_files = 'ios/*.{h,m,swift}', 'ios/ads/*.swift', 'ios/casting/*.swift', 'ios/contentprotection/*.swift', 'ios/pip/*.swift', 'ios/backgroundAudio/*.swift', 'ios/cache/*.swift', 'ios/sideloadedMetadata/*.swift', 'ios/eventBroadcasting/*.swift' , 'ios/ui/*.swift', 'ios/presentationMode/*.swift', 'ios/viewController/*.swift', 'ios/THEOlive/*.swift', 'ios/THEOads/*.swift', 'ios/millicast/*.swift', 'ios/cmcd/*.swift', 'ios/mediaControl/*.swift', 'ios/metrics/*.swift'
s.resources = ['ios/*.css']
# ReactNative Dependency
@@ -43,31 +43,31 @@ Pod::Spec.new do |s|
# THEOplayer Dependency
puts "Adding THEOplayerSDK-core"
- s.dependency "THEOplayerSDK-core", "~> 11.4"
+ s.dependency "THEOplayerSDK-core", "~> 11.8"
# THEOlive Dependency
puts "Adding THEOplayer-Integration-THEOlive"
- s.dependency "THEOplayer-Integration-THEOlive", "~> 11.4"
+ s.dependency "THEOplayer-Integration-THEOlive", "~> 11.8"
# Feature based integration dependencies
if theofeatures.include?("GOOGLE_IMA")
puts "Adding THEOplayer-Integration-GoogleIMA"
- s.dependency "THEOplayer-Integration-GoogleIMA", "~> 11.4"
+ s.dependency "THEOplayer-Integration-GoogleIMA", "~> 11.8"
end
if theofeatures.include?("CHROMECAST")
puts "Adding THEOplayer-Integration-GoogleCast"
- s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 11.4"
+ s.ios.dependency "THEOplayer-Integration-GoogleCast", "~> 11.8"
end
if theofeatures.include?("THEO_ADS")
puts "Adding THEOplayer-Integration-THEOads"
- s.dependency "THEOplayer-Integration-THEOads", "~> 11.4"
+ s.dependency "THEOplayer-Integration-THEOads", "~> 11.8"
end
if theofeatures.include?("MILLICAST")
puts "Adding THEOplayer-Integration-Millicast"
- s.dependency "THEOplayer-Integration-Millicast", "~> 11.4"
+ s.dependency "THEOplayer-Integration-Millicast", "~> 11.8"
end
# Feature based connector dependencies
diff --git a/src/api/barrel.ts b/src/api/barrel.ts
index e031b4eeb..a61b31460 100644
--- a/src/api/barrel.ts
+++ b/src/api/barrel.ts
@@ -10,6 +10,7 @@ export * from './config/barrel';
export * from './error/barrel';
export * from './event/barrel';
export * from './media/barrel';
+export * from './metrics/barrel';
export * from './millicast/barrel';
export * from './drm/barrel';
export * from './source/barrel';
diff --git a/src/api/metrics/MetricsAPI.ts b/src/api/metrics/MetricsAPI.ts
new file mode 100644
index 000000000..6c82ae422
--- /dev/null
+++ b/src/api/metrics/MetricsAPI.ts
@@ -0,0 +1,20 @@
+/**
+ * The API for player metrics.
+ *
+ * @category Player
+ * @public
+ */
+export interface MetricsAPI {
+ /**
+ * The bandwidth, in bits per second, that the player estimates is currently available.
+ * This is the value used to make adaptive bitrate (ABR) decisions.
+ *
+ * @remarks
+ *
- This value is poll-based: read it on demand, as there is no change event.
+ *
- Resolves to `0` when no estimate is available yet (e.g. before playback or after a reset).
+ * A value of `0` means "not available/estimated", not literally zero bandwidth.
+ *
- On Android and Web the estimate is reported for regular adaptive streams (HLS, DASH, ...).
+ *
- On iOS/tvOS the estimate is only populated for THEOlive/HESP streams; it stays `0` for other playback (HLS, MP4).
+ */
+ currentBandwidthEstimate(): Promise;
+}
diff --git a/src/api/metrics/barrel.ts b/src/api/metrics/barrel.ts
new file mode 100644
index 000000000..6114d12c5
--- /dev/null
+++ b/src/api/metrics/barrel.ts
@@ -0,0 +1 @@
+export * from './MetricsAPI';
diff --git a/src/api/player/THEOplayer.ts b/src/api/player/THEOplayer.ts
index b996f997b..641c686a3 100644
--- a/src/api/player/THEOplayer.ts
+++ b/src/api/player/THEOplayer.ts
@@ -16,6 +16,7 @@ import type { EventBroadcastAPI } from '../broadcast/EventBroadcastAPI';
import { TheoAdsAPI } from '../theoads/TheoAdsAPI';
import { TheoLiveAPI } from '../theolive/TheoLiveAPI';
import { MediaControlAPI } from '../media/MediaControlAPI';
+import type { MetricsAPI } from '../metrics/MetricsAPI';
export type PreloadType = 'none' | 'metadata' | 'auto' | '';
@@ -293,4 +294,9 @@ export interface THEOplayer extends EventDispatcher {
* The API for media controls.
*/
readonly mediaControl?: MediaControlAPI;
+
+ /**
+ * The API for player metrics.
+ */
+ readonly metrics: MetricsAPI;
}
diff --git a/src/internal/adapter/THEOplayerAdapter.ts b/src/internal/adapter/THEOplayerAdapter.ts
index 0ff5287a4..9fb88c6ad 100644
--- a/src/internal/adapter/THEOplayerAdapter.ts
+++ b/src/internal/adapter/THEOplayerAdapter.ts
@@ -18,6 +18,7 @@ import {
MediaTrackEventType,
MediaTrackListEvent,
MediaTrackType,
+ MetricsAPI,
NativeHandleType,
PiPConfiguration,
PlayerEventMap,
@@ -54,6 +55,7 @@ import { DefaultNativePlayerState } from './DefaultNativePlayerState';
import { THEOAdsNativeAdapter } from './theoads/THEOAdsNativeAdapter';
import { TheoLiveNativeAdapter } from './theolive/TheoLiveNativeAdapter';
import { MediaControlNativeAdapter } from './media/MediaControlNativeAdapter';
+import { MetricsAdapter } from './metrics/MetricsAdapter';
const NativePlayerModule = NativeModules.THEORCTPlayerModule;
@@ -67,6 +69,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher im
private readonly _textTrackStyleAdapter: TextTrackStyleAdapter;
private readonly _theoliveAdapter: TheoLiveNativeAdapter;
private readonly _mediaControlAdapter: MediaControlNativeAdapter;
+ private readonly _metricsAdapter: MetricsAdapter;
private _externalEventRouter: EventBroadcastAPI | undefined = undefined;
private _playerVersion!: PlayerVersion;
@@ -81,6 +84,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher im
this._textTrackStyleAdapter = new TextTrackStyleAdapter(this._view);
this._theoliveAdapter = new TheoLiveNativeAdapter(this._view);
this._mediaControlAdapter = new MediaControlNativeAdapter(this);
+ this._metricsAdapter = new MetricsAdapter(this._view);
this.addEventListeners();
}
@@ -252,6 +256,10 @@ export class THEOplayerAdapter extends DefaultEventDispatcher im
return this._mediaControlAdapter;
}
+ get metrics(): MetricsAPI {
+ return this._metricsAdapter;
+ }
+
set autoplay(autoplay: boolean) {
this._state.autoplay = autoplay;
NativePlayerModule.setAutoplay(this._view.nativeHandle, autoplay);
diff --git a/src/internal/adapter/THEOplayerWebAdapter.ts b/src/internal/adapter/THEOplayerWebAdapter.ts
index 4b7e136de..5d93974e2 100644
--- a/src/internal/adapter/THEOplayerWebAdapter.ts
+++ b/src/internal/adapter/THEOplayerWebAdapter.ts
@@ -9,6 +9,7 @@ import {
EventBroadcastAPI,
MediaControlAPI,
MediaTrack,
+ MetricsAPI,
NativeHandleType,
PlayerConfiguration,
PlayerEventMap,
@@ -39,6 +40,7 @@ import { DefaultTextTrackState } from './DefaultTextTrackState';
import { THEOAdsWebAdapter } from './theoads/THEOAdsWebAdapter';
import { CMCDConnector, Configuration, createCMCDConnector, TransmissionMode } from '@theoplayer/cmcd-connector-web';
import { TheoLiveWebAdapter } from './theolive/TheoLiveWebAdapter';
+import { THEOplayerWebMetricsAdapter } from './metrics/THEOplayerWebMetricsAdapter';
const defaultBackgroundAudioConfiguration: BackgroundAudioConfiguration = {
enabled: false,
@@ -55,6 +57,7 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher
private readonly _textTrackState: TextTrackState;
private readonly _presentationModeManager: WebPresentationModeManager;
private readonly _theoliveAdapter: TheoLiveWebAdapter;
+ private readonly _metricsAdapter: THEOplayerWebMetricsAdapter;
private _player: NativeChromelessPlayer | undefined;
private _eventForwarder: WebEventForwarder | undefined;
private readonly _mediaSession: WebMediaSession;
@@ -73,6 +76,7 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher
this._castAdapter = new THEOplayerWebCastAdapter(this._player);
this._theoAdsAdapter = new THEOAdsWebAdapter(this._player);
this._theoliveAdapter = new TheoLiveWebAdapter(this._player);
+ this._metricsAdapter = new THEOplayerWebMetricsAdapter(this._player);
this._textTrackState = new DefaultTextTrackState(this);
this._eventForwarder = new WebEventForwarder(this._player, this);
this._presentationModeManager = new WebPresentationModeManager(this._player, this);
@@ -88,6 +92,10 @@ export class THEOplayerWebAdapter extends DefaultEventDispatcher
return this._mediaSession.mediaControlAdapter;
}
+ get metrics(): MetricsAPI {
+ return this._metricsAdapter;
+ }
+
get abr(): ABRConfiguration | undefined {
return this._player?.abr as ABRConfiguration | undefined;
}
diff --git a/src/internal/adapter/metrics/MetricsAdapter.ts b/src/internal/adapter/metrics/MetricsAdapter.ts
new file mode 100644
index 000000000..6029ce3cd
--- /dev/null
+++ b/src/internal/adapter/metrics/MetricsAdapter.ts
@@ -0,0 +1,12 @@
+import type { MetricsAPI, THEOplayerView } from 'react-native-theoplayer';
+import { NativeModules } from 'react-native';
+
+const NativeMetricsModule = NativeModules.THEORCTMetricsModule;
+
+export class MetricsAdapter implements MetricsAPI {
+ constructor(private readonly _view: THEOplayerView) {}
+
+ currentBandwidthEstimate(): Promise {
+ return NativeMetricsModule.currentBandwidthEstimate(this._view.nativeHandle);
+ }
+}
diff --git a/src/internal/adapter/metrics/THEOplayerWebMetricsAdapter.ts b/src/internal/adapter/metrics/THEOplayerWebMetricsAdapter.ts
new file mode 100644
index 000000000..109affd5a
--- /dev/null
+++ b/src/internal/adapter/metrics/THEOplayerWebMetricsAdapter.ts
@@ -0,0 +1,14 @@
+import type { MetricsAPI } from 'react-native-theoplayer';
+import type { ChromelessPlayer } from 'theoplayer';
+
+export class THEOplayerWebMetricsAdapter implements MetricsAPI {
+ private readonly _player: ChromelessPlayer;
+
+ constructor(player: ChromelessPlayer) {
+ this._player = player;
+ }
+
+ currentBandwidthEstimate(): Promise {
+ return Promise.resolve(this._player.metrics?.currentBandwidthEstimate ?? 0);
+ }
+}