From 2c4390f52d3c39cf4bb4f6ac1ba6a660502f031e Mon Sep 17 00:00:00 2001 From: Adam Segal Date: Wed, 22 Jan 2025 20:51:41 -0800 Subject: [PATCH 1/4] fix: build issues --- example/ios/Podfile.lock | 996 +++++++++++++++++++++++++------ example/package.json | 2 +- package.json | 2 +- react-native-cache-video.podspec | 2 +- yarn.lock | 550 +++++++++++++---- 5 files changed, 1240 insertions(+), 312 deletions(-) diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 6ca69f8..5d3bb94 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -2,14 +2,7 @@ PODS: - boost (1.76.0) - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.72.6) - - FBReactNativeSpec (0.72.6): - - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.72.6) - - RCTTypeSafety (= 0.72.6) - - React-Core (= 0.72.6) - - React-jsi (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) + - FBLazyVector (0.72.17) - Flipper (0.182.0): - Flipper-Folly (~> 2.6) - Flipper-Boost-iOSX (1.76.0.1.11) @@ -70,9 +63,9 @@ PODS: - FlipperKit/FlipperKitNetworkPlugin - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (0.72.6): - - hermes-engine/Pre-built (= 0.72.6) - - hermes-engine/Pre-built (0.72.6) + - hermes-engine (0.72.17): + - hermes-engine/Pre-built (= 0.72.17) + - hermes-engine/Pre-built (0.72.17) - libevent (2.1.12) - OpenSSL-Universal (1.1.1100) - RCT-Folly (2021.07.22.00): @@ -86,51 +79,58 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog + - RCT-Folly/Fabric (2021.07.22.00): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog - RCT-Folly/Futures (2021.07.22.00): - boost - DoubleConversion - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.72.6) - - RCTTypeSafety (0.72.6): - - FBLazyVector (= 0.72.6) - - RCTRequired (= 0.72.6) - - React-Core (= 0.72.6) - - React (0.72.6): - - React-Core (= 0.72.6) - - React-Core/DevSupport (= 0.72.6) - - React-Core/RCTWebSocket (= 0.72.6) - - React-RCTActionSheet (= 0.72.6) - - React-RCTAnimation (= 0.72.6) - - React-RCTBlob (= 0.72.6) - - React-RCTImage (= 0.72.6) - - React-RCTLinking (= 0.72.6) - - React-RCTNetwork (= 0.72.6) - - React-RCTSettings (= 0.72.6) - - React-RCTText (= 0.72.6) - - React-RCTVibration (= 0.72.6) - - React-callinvoker (0.72.6) - - React-Codegen (0.72.6): - - DoubleConversion - - FBReactNativeSpec + - RCTRequired (0.72.17) + - RCTTypeSafety (0.72.17): + - FBLazyVector (= 0.72.17) + - RCTRequired (= 0.72.17) + - React-Core (= 0.72.17) + - React (0.72.17): + - React-Core (= 0.72.17) + - React-Core/DevSupport (= 0.72.17) + - React-Core/RCTWebSocket (= 0.72.17) + - React-RCTActionSheet (= 0.72.17) + - React-RCTAnimation (= 0.72.17) + - React-RCTBlob (= 0.72.17) + - React-RCTImage (= 0.72.17) + - React-RCTLinking (= 0.72.17) + - React-RCTNetwork (= 0.72.17) + - React-RCTSettings (= 0.72.17) + - React-RCTText (= 0.72.17) + - React-RCTVibration (= 0.72.17) + - React-callinvoker (0.72.17) + - React-Codegen (0.72.17): + - DoubleConversion - glog - hermes-engine - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core + - React-debug + - React-Fabric + - React-graphics - React-jsi - React-jsiexecutor - React-NativeModulesApple - - React-rncore + - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.72.6): + - React-Core (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.6) + - React-Core/Default (= 0.72.17) - React-cxxreact - React-hermes - React-jsi @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.72.6): + - React-Core/CoreModulesHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -154,7 +154,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.72.6): + - React-Core/Default (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -167,23 +167,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.72.6): + - React-Core/DevSupport (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.6) - - React-Core/RCTWebSocket (= 0.72.6) + - React-Core/Default (= 0.72.17) + - React-Core/RCTWebSocket (= 0.72.17) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.72.6) + - React-jsinspector (= 0.72.17) - React-perflogger - React-runtimeexecutor - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.72.6): + - React-Core/RCTActionSheetHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -197,7 +197,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.72.6): + - React-Core/RCTAnimationHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -211,7 +211,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.72.6): + - React-Core/RCTBlobHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.72.6): + - React-Core/RCTImageHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -239,7 +239,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.72.6): + - React-Core/RCTLinkingHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -253,7 +253,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.72.6): + - React-Core/RCTNetworkHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -267,7 +267,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.72.6): + - React-Core/RCTSettingsHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -281,7 +281,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.72.6): + - React-Core/RCTTextHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -295,7 +295,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.72.6): + - React-Core/RCTVibrationHeaders (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -309,11 +309,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.72.6): + - React-Core/RCTWebSocket (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.6) + - React-Core/Default (= 0.72.17) - React-cxxreact - React-hermes - React-jsi @@ -323,69 +323,653 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.72.6): + - React-CoreModules (0.72.17): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.6) - - React-Codegen (= 0.72.6) - - React-Core/CoreModulesHeaders (= 0.72.6) - - React-jsi (= 0.72.6) + - RCTTypeSafety (= 0.72.17) + - React-Codegen (= 0.72.17) + - React-Core/CoreModulesHeaders (= 0.72.17) + - React-jsi (= 0.72.17) - React-RCTBlob - - React-RCTImage (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) + - React-RCTImage (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) - SocketRocket (= 0.6.1) - - React-cxxreact (0.72.6): + - React-cxxreact (0.72.17): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.6) - - React-debug (= 0.72.6) - - React-jsi (= 0.72.6) - - React-jsinspector (= 0.72.6) - - React-logger (= 0.72.6) - - React-perflogger (= 0.72.6) - - React-runtimeexecutor (= 0.72.6) - - React-debug (0.72.6) - - React-hermes (0.72.6): + - React-callinvoker (= 0.72.17) + - React-debug (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsinspector (= 0.72.17) + - React-logger (= 0.72.17) + - React-perflogger (= 0.72.17) + - React-runtimeexecutor (= 0.72.17) + - React-debug (0.72.17) + - React-Fabric (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-Fabric/animations (= 0.72.17) + - React-Fabric/attributedstring (= 0.72.17) + - React-Fabric/butter (= 0.72.17) + - React-Fabric/componentregistry (= 0.72.17) + - React-Fabric/componentregistrynative (= 0.72.17) + - React-Fabric/components (= 0.72.17) + - React-Fabric/config (= 0.72.17) + - React-Fabric/core (= 0.72.17) + - React-Fabric/debug_renderer (= 0.72.17) + - React-Fabric/imagemanager (= 0.72.17) + - React-Fabric/leakchecker (= 0.72.17) + - React-Fabric/mapbuffer (= 0.72.17) + - React-Fabric/mounting (= 0.72.17) + - React-Fabric/scheduler (= 0.72.17) + - React-Fabric/telemetry (= 0.72.17) + - React-Fabric/templateprocessor (= 0.72.17) + - React-Fabric/textlayoutmanager (= 0.72.17) + - React-Fabric/uimanager (= 0.72.17) + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/animations (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/attributedstring (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/butter (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/componentregistry (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/componentregistrynative (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-Fabric/components/activityindicator (= 0.72.17) + - React-Fabric/components/image (= 0.72.17) + - React-Fabric/components/inputaccessory (= 0.72.17) + - React-Fabric/components/legacyviewmanagerinterop (= 0.72.17) + - React-Fabric/components/modal (= 0.72.17) + - React-Fabric/components/rncore (= 0.72.17) + - React-Fabric/components/root (= 0.72.17) + - React-Fabric/components/safeareaview (= 0.72.17) + - React-Fabric/components/scrollview (= 0.72.17) + - React-Fabric/components/text (= 0.72.17) + - React-Fabric/components/textinput (= 0.72.17) + - React-Fabric/components/unimplementedview (= 0.72.17) + - React-Fabric/components/view (= 0.72.17) + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/activityindicator (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/image (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/inputaccessory (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/legacyviewmanagerinterop (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/modal (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/rncore (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/root (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/safeareaview (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/scrollview (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/text (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/textinput (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/unimplementedview (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/components/view (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - Yoga + - React-Fabric/config (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/core (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/debug_renderer (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/imagemanager (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/leakchecker (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/mapbuffer (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/mounting (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/scheduler (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/telemetry (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/templateprocessor (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/textlayoutmanager (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-Fabric/uimanager + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-Fabric/uimanager (0.72.17): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - RCTRequired (= 0.72.17) + - RCTTypeSafety (= 0.72.17) + - React-Core + - React-debug + - React-graphics (= 0.72.17) + - React-jsi (= 0.72.17) + - React-jsiexecutor (= 0.72.17) + - React-logger + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core (= 0.72.17) + - React-graphics (0.72.17): + - glog + - RCT-Folly/Fabric (= 2021.07.22.00) + - React-Core/Default (= 0.72.17) + - React-hermes (0.72.17): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 0.72.6) + - React-cxxreact (= 0.72.17) - React-jsi - - React-jsiexecutor (= 0.72.6) - - React-jsinspector (= 0.72.6) - - React-perflogger (= 0.72.6) - - React-jsi (0.72.6): + - React-jsiexecutor (= 0.72.17) + - React-jsinspector (= 0.72.17) + - React-perflogger (= 0.72.17) + - React-ImageManager (0.72.17): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-RCTImage + - React-utils + - React-jsi (0.72.17): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-jsiexecutor (0.72.6): + - React-jsiexecutor (0.72.17): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.72.6) - - React-jsi (= 0.72.6) - - React-perflogger (= 0.72.6) - - React-jsinspector (0.72.6) - - React-logger (0.72.6): + - React-cxxreact (= 0.72.17) + - React-jsi (= 0.72.17) + - React-perflogger (= 0.72.17) + - React-jsinspector (0.72.17) + - React-logger (0.72.17): - glog - react-native-blob-util (0.19.2): + - hermes-engine + - RCT-Folly (= 2021.07.22.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - react-native-cache-video (0.2.1): + - React-debug + - React-Fabric + - React-graphics + - React-NativeModulesApple + - React-RCTFabric + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-cache-video (0.3.0): + - hermes-engine - RCT-Folly (= 2021.07.22.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-NativeModulesApple + - React-RCTFabric + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - react-native-video (5.2.1): - React-Core - react-native-video/Video (= 5.2.1) - react-native-video/Video (5.2.1): - React-Core - - React-NativeModulesApple (0.72.6): + - React-NativeModulesApple (0.72.17): - hermes-engine - React-callinvoker - React-Core @@ -394,76 +978,92 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.72.6) - - React-RCTActionSheet (0.72.6): - - React-Core/RCTActionSheetHeaders (= 0.72.6) - - React-RCTAnimation (0.72.6): + - React-perflogger (0.72.17) + - React-RCTActionSheet (0.72.17): + - React-Core/RCTActionSheetHeaders (= 0.72.17) + - React-RCTAnimation (0.72.17): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.6) - - React-Codegen (= 0.72.6) - - React-Core/RCTAnimationHeaders (= 0.72.6) - - React-jsi (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) - - React-RCTAppDelegate (0.72.6): + - RCTTypeSafety (= 0.72.17) + - React-Codegen (= 0.72.17) + - React-Core/RCTAnimationHeaders (= 0.72.17) + - React-jsi (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) + - React-RCTAppDelegate (0.72.17): - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core - React-CoreModules + - React-debug + - React-graphics - React-hermes - React-NativeModulesApple + - React-RCTFabric - React-RCTImage - React-RCTNetwork - React-runtimescheduler + - React-utils - ReactCommon/turbomodule/core - - React-RCTBlob (0.72.6): + - React-RCTBlob (0.72.17): - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.72.6) - - React-Core/RCTBlobHeaders (= 0.72.6) - - React-Core/RCTWebSocket (= 0.72.6) - - React-jsi (= 0.72.6) - - React-RCTNetwork (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) - - React-RCTImage (0.72.6): + - React-Codegen (= 0.72.17) + - React-Core/RCTBlobHeaders (= 0.72.17) + - React-Core/RCTWebSocket (= 0.72.17) + - React-jsi (= 0.72.17) + - React-RCTNetwork (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) + - React-RCTFabric (0.72.17): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2021.07.22.00) + - React-Core (= 0.72.17) + - React-Fabric (= 0.72.17) + - React-ImageManager + - React-RCTImage (= 0.72.17) + - React-RCTText + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTImage (0.72.17): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.6) - - React-Codegen (= 0.72.6) - - React-Core/RCTImageHeaders (= 0.72.6) - - React-jsi (= 0.72.6) - - React-RCTNetwork (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) - - React-RCTLinking (0.72.6): - - React-Codegen (= 0.72.6) - - React-Core/RCTLinkingHeaders (= 0.72.6) - - React-jsi (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) - - React-RCTNetwork (0.72.6): + - RCTTypeSafety (= 0.72.17) + - React-Codegen (= 0.72.17) + - React-Core/RCTImageHeaders (= 0.72.17) + - React-jsi (= 0.72.17) + - React-RCTNetwork (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) + - React-RCTLinking (0.72.17): + - React-Codegen (= 0.72.17) + - React-Core/RCTLinkingHeaders (= 0.72.17) + - React-jsi (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) + - React-RCTNetwork (0.72.17): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.6) - - React-Codegen (= 0.72.6) - - React-Core/RCTNetworkHeaders (= 0.72.6) - - React-jsi (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) - - React-RCTSettings (0.72.6): + - RCTTypeSafety (= 0.72.17) + - React-Codegen (= 0.72.17) + - React-Core/RCTNetworkHeaders (= 0.72.17) + - React-jsi (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) + - React-RCTSettings (0.72.17): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.6) - - React-Codegen (= 0.72.6) - - React-Core/RCTSettingsHeaders (= 0.72.6) - - React-jsi (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) - - React-RCTText (0.72.6): - - React-Core/RCTTextHeaders (= 0.72.6) - - React-RCTVibration (0.72.6): + - RCTTypeSafety (= 0.72.17) + - React-Codegen (= 0.72.17) + - React-Core/RCTSettingsHeaders (= 0.72.17) + - React-jsi (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) + - React-RCTText (0.72.17): + - React-Core/RCTTextHeaders (= 0.72.17) + - React-RCTVibration (0.72.17): - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.72.6) - - React-Core/RCTVibrationHeaders (= 0.72.6) - - React-jsi (= 0.72.6) - - ReactCommon/turbomodule/core (= 0.72.6) - - React-rncore (0.72.6) - - React-runtimeexecutor (0.72.6): - - React-jsi (= 0.72.6) - - React-runtimescheduler (0.72.6): + - React-Codegen (= 0.72.17) + - React-Core/RCTVibrationHeaders (= 0.72.17) + - React-jsi (= 0.72.17) + - ReactCommon/turbomodule/core (= 0.72.17) + - React-rncore (0.72.17) + - React-runtimeexecutor (0.72.17): + - React-jsi (= 0.72.17) + - React-runtimescheduler (0.72.17): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -471,30 +1071,30 @@ PODS: - React-debug - React-jsi - React-runtimeexecutor - - React-utils (0.72.6): + - React-utils (0.72.17): - glog - RCT-Folly (= 2021.07.22.00) - React-debug - - ReactCommon/turbomodule/bridging (0.72.6): + - ReactCommon/turbomodule/bridging (0.72.17): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.6) - - React-cxxreact (= 0.72.6) - - React-jsi (= 0.72.6) - - React-logger (= 0.72.6) - - React-perflogger (= 0.72.6) - - ReactCommon/turbomodule/core (0.72.6): + - React-callinvoker (= 0.72.17) + - React-cxxreact (= 0.72.17) + - React-jsi (= 0.72.17) + - React-logger (= 0.72.17) + - React-perflogger (= 0.72.17) + - ReactCommon/turbomodule/core (0.72.17): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.6) - - React-cxxreact (= 0.72.6) - - React-jsi (= 0.72.6) - - React-logger (= 0.72.6) - - React-perflogger (= 0.72.6) + - React-callinvoker (= 0.72.17) + - React-cxxreact (= 0.72.17) + - React-jsi (= 0.72.17) + - React-logger (= 0.72.17) + - React-perflogger (= 0.72.17) - SocketRocket (0.6.1) - Yoga (1.14.0) - YogaKit (1.18.1): @@ -504,7 +1104,6 @@ DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - Flipper (= 0.182.0) - Flipper-Boost-iOSX (= 1.76.0.1.11) - Flipper-DoubleConversion (= 3.2.0.1) @@ -530,6 +1129,7 @@ DEPENDENCIES: - libevent (~> 2.1.12) - OpenSSL-Universal (= 1.1.1100) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) @@ -541,7 +1141,10 @@ DEPENDENCIES: - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) @@ -555,6 +1158,7 @@ DEPENDENCIES: - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTFabric (from `../node_modules/react-native/React`) - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) @@ -592,13 +1196,10 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../node_modules/react-native/React/FBReactNativeSpec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2023-08-07-RNv0.72.4-813b2def12bc9df02654b3e3653ae4a68d0572e0 RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: @@ -619,8 +1220,14 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/cxxreact" React-debug: :path: "../node_modules/react-native/ReactCommon/react/debug" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" React-hermes: :path: "../node_modules/react-native/ReactCommon/hermes" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" React-jsi: :path: "../node_modules/react-native/ReactCommon/jsi" React-jsiexecutor: @@ -647,6 +1254,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/Libraries/AppDelegate" React-RCTBlob: :path: "../node_modules/react-native/Libraries/Blob" + React-RCTFabric: + :path: "../node_modules/react-native/React" React-RCTImage: :path: "../node_modules/react-native/Libraries/Image" React-RCTLinking: @@ -673,11 +1282,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 57d2868c099736d80fcd648bf211b4431e51a558 + boost: 7dcd2de282d72e344012f7d6564d024930a6a440 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - FBLazyVector: 748c0ef74f2bf4b36cfcccf37916806940a64c32 - FBReactNativeSpec: 966f29e4e697de53a3b366355e8f57375c856ad9 + FBLazyVector: 66398fc2381d8fa1eee4c0f80d931587a7b927e8 Flipper: 6edb735e6c3e332975d1b17956bcc584eccf5818 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 @@ -688,48 +1296,52 @@ SPEC CHECKSUMS: FlipperKit: 2efad7007d6745a3f95e4034d547be637f89d3f6 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b - hermes-engine: 8057e75cfc1437b178ac86c8654b24e7fead7f60 + hermes-engine: 982096772bd947125ee3b4f72ace6cb9a33f1d02 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 - RCTRequired: 28469809442eb4eb5528462705f7d852948c8a74 - RCTTypeSafety: e9c6c409fca2cc584e5b086862d562540cb38d29 - React: 769f469909b18edfe934f0539fffb319c4c61043 - React-callinvoker: e48ce12c83706401251921896576710d81e54763 - React-Codegen: a136b8094d39fd071994eaa935366e6be2239cb1 - React-Core: e548a186fb01c3a78a9aeeffa212d625ca9511bf - React-CoreModules: d226b22d06ea1bc4e49d3c073b2c6cbb42265405 - React-cxxreact: 44a3560510ead6633b6e02f9fbbdd1772fb40f92 - React-debug: 238501490155574ae9f3f8dd1c74330eba30133e - React-hermes: 46e66dc854124d7645c20bfec0a6be9542826ecd - React-jsi: fbdaf4166bae60524b591b18c851b530c8cdb90c - React-jsiexecutor: 3bf18ff7cb03cd8dfdce08fbbc0d15058c1d71ae - React-jsinspector: 194e32c6aab382d88713ad3dd0025c5f5c4ee072 - React-logger: cebf22b6cf43434e471dc561e5911b40ac01d289 - react-native-blob-util: c74e4ce87c76d244761c68623df78bf0d1638271 - react-native-cache-video: 98a3683854b0d7fb73b4f3ad885d69ffc3a5f77d + RCTRequired: 01c639ec840ee03928b2d65f5cd5297d737b3834 + RCTTypeSafety: 9623592521a1576363baf3d6ab8d164cfe9062bf + React: 3c0beeda318c3c515a6bb2c1f197b55bd731aa43 + React-callinvoker: 0cd6ff2cdd80255c82cd4628fc925df1e7133a1a + React-Codegen: e2e3dcf5cc2b0be6062e3b3618ddb0e06c2301bb + React-Core: df691c59e0c8a3db4d138a51bb8862c52c8b14f1 + React-CoreModules: cebd223e814ac07bc1f597bbd2480167a2c7a130 + React-cxxreact: dec3959d439708cb7dd73b46a11ed64c3eea79da + React-debug: 3a5091cbda7ffe5f11ad0443109810fcd1a3e885 + React-Fabric: 388962a210f004ab8b39932d356e0b10be19d57a + React-graphics: 0c0c3cf69cfc9a45fd58fd27fae74dd775694609 + React-hermes: f3b6b278c4ff7e6664a86b2bf964a4dc4ae72d34 + React-ImageManager: 803c8bd2df01f955706a3e43d5a81f7bf816e915 + React-jsi: 6ec4bd4cd929ae9d468b4984b0ae2c657aeeb2da + React-jsiexecutor: 8dc585381e476c3ff2e9468f444c90c4d1d5b874 + React-jsinspector: 853b8631b908636bb09ef77cb217376c38a0c8ff + React-logger: 9ca44bb5703bf2355f3c2d2e5e67bfe98ca2dc34 + react-native-blob-util: 348bec630b5cf083328db333682b09980b04a0c8 + react-native-cache-video: e9e8b1cb9c04b67d0cfff44a9dbfbdf24128efc0 react-native-video: c26780b224543c62d5e1b2a7244a5cd1b50e8253 - React-NativeModulesApple: 02e35e9a51e10c6422f04f5e4076a7c02243fff2 - React-perflogger: e3596db7e753f51766bceadc061936ef1472edc3 - React-RCTActionSheet: 17ab132c748b4471012abbcdcf5befe860660485 - React-RCTAnimation: c8bbaab62be5817d2a31c36d5f2571e3f7dcf099 - React-RCTAppDelegate: af1c7dace233deba4b933cd1d6491fe4e3584ad1 - React-RCTBlob: 1bcf3a0341eb8d6950009b1ddb8aefaf46996b8c - React-RCTImage: 670a3486b532292649b1aef3ffddd0b495a5cee4 - React-RCTLinking: bd7ab853144aed463903237e615fd91d11b4f659 - React-RCTNetwork: be86a621f3e4724758f23ad1fdce32474ab3d829 - React-RCTSettings: 4f3a29a6d23ffa639db9701bc29af43f30781058 - React-RCTText: adde32164a243103aaba0b1dc7b0a2599733873e - React-RCTVibration: 6bd85328388ac2e82ae0ca11afe48ad5555b483a - React-rncore: fda7b1ae5918fa7baa259105298a5487875a57c8 - React-runtimeexecutor: 57d85d942862b08f6d15441a0badff2542fd233c - React-runtimescheduler: f23e337008403341177fc52ee4ca94e442c17ede - React-utils: fa59c9a3375fb6f4aeb66714fd3f7f76b43a9f16 - ReactCommon: dd03c17275c200496f346af93a7b94c53f3093a4 + React-NativeModulesApple: 2edfcbb25329e3eb5f76eb79d89010de7c1c6f1f + React-perflogger: 785b0063af5178298a61b54bb46aae9a19c7bbb5 + React-RCTActionSheet: 84f37b34bd77249263ace75471d6664393c29972 + React-RCTAnimation: 5713910b6223154df4bba80a0bda4e2e671b00f8 + React-RCTAppDelegate: 7284207fcf30dfa17537bb57ac6cef0b9fb5d3f0 + React-RCTBlob: d4d3fb21c0bf1ce2f0308e05227ecd3f19266bf7 + React-RCTFabric: 2351184e6ca82a376b5c6aa1f9efcb943bc8be53 + React-RCTImage: 2e63a483be5d4e46a80dea3b17c9abee38006feb + React-RCTLinking: e3ff685ee62187f8f61e938357307c1f890125b5 + React-RCTNetwork: a35842997a403edfdc1ec25b61a0e10a0526368d + React-RCTSettings: aef81e0ac54268d2928ad31c4f91056cc75e5ce9 + React-RCTText: 7becec5f53f03b20da11f4b7e40e6bcfd476d134 + React-RCTVibration: defaae8016de9b3351a2a67ee8ef3fbdd643b0e1 + React-rncore: 5b900dc9df8134fcf24e349149411ab3b263b1cd + React-runtimeexecutor: 448409b5ae5a01b7793239f630051960c7dd39f9 + React-runtimescheduler: ff30efdf24f8ce62eb517a391ded3d99c4263bb0 + React-utils: 7959d4553163b61e01bbe83dbd80e58ca420aecb + ReactCommon: 841449721eb2e004de2c3366844b0a03f329f2cb SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Yoga: b76f1acfda8212aa16b7e26bcce3983230c82603 + Yoga: ef534101bb891fb09bae657417f34d399c1efe38 YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 4d281a4cf5b16795b7f47cc7c2120d28194a1714 +PODFILE CHECKSUM: 995592b79985a605d594a7813228f6be53e84786 -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.2 diff --git a/example/package.json b/example/package.json index adbb063..21ded15 100644 --- a/example/package.json +++ b/example/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.72.6", + "react-native": "0.72.17", "react-native-blob-util": "^0.19.2", "react-native-url-polyfill": "^2.0.0", "react-native-video": "^5.2.1" diff --git a/package.json b/package.json index 1acbeab..c9d1336 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "pod-install": "^0.1.0", "prettier": "^2.0.5", "react": "18.2.0", - "react-native": "0.72.6", + "react-native": "0.72.17", "react-native-blob-util": "^0.19.2", "react-native-builder-bob": "^0.23.1", "react-native-url-polyfill": "^2.0.0", diff --git a/react-native-cache-video.podspec b/react-native-cache-video.podspec index a44211f..3862ba3 100644 --- a/react-native-cache-video.podspec +++ b/react-native-cache-video.podspec @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.license = package["license"] s.authors = package["author"] - s.platforms = { :ios => "11.0" } + s.platforms = { :ios => "12.4" } s.source = { :git => "https://github.com/nguyenvanphituoc/react-native-cache-video.git", :tag => "#{s.version}" } s.source_files = "ios/**/*.{h,m,mm}" diff --git a/yarn.lock b/yarn.lock index 85538f0..14755de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2637,55 +2637,54 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-clean@npm:11.3.7" +"@react-native-community/cli-clean@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-clean@npm:11.4.1" dependencies: - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-tools": 11.4.1 chalk: ^4.1.2 execa: ^5.0.0 prompts: ^2.4.0 - checksum: 242260caf3a0d2ed277a01ae9ed245311434c9a57889b8a489ec38eef60b9ad84c81062e4724e6433035d83737a2e1a3cbe022ee1ca725a865aca597b2dcbdf7 + checksum: a4f248fcd7cd0743f44c5c16149aa0acc2cb4eeca7405da7e712d4d398b9597e6ba780ec522490b232ef917ad13dce407e2743da08536e5d30e71b964efc8e42 languageName: node linkType: hard -"@react-native-community/cli-config@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-config@npm:11.3.7" +"@react-native-community/cli-config@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-config@npm:11.4.1" dependencies: - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-tools": 11.4.1 chalk: ^4.1.2 cosmiconfig: ^5.1.0 deepmerge: ^4.3.0 glob: ^7.1.3 joi: ^17.2.1 - checksum: 16ccf4e02ef2fba67394683e9cf9619c7b0bfb568841ebaf5d0275e082e6b140eb8d84b3d01c646d466e6c1c7cc8ea474916418a45cbb61ad803423e778bcbb4 + checksum: 7061309acb928fdd9018bd0007bf09995a6108a32d0191590ff977193f20601086fb7b3578267f32b2f720350003f978d4fb551fdeb18faa094a3c8099b06dfe languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-debugger-ui@npm:11.3.7" +"@react-native-community/cli-debugger-ui@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-debugger-ui@npm:11.4.1" dependencies: serve-static: ^1.13.1 - checksum: 3d6b8dbeba49b039c1b6edaa883f310478178edf282aa4a6326fbb6c4a032c71d4d2d492eac1b4b8faeb2076e2eb6d4bbda35d40733ba059abb6612a71e5a841 + checksum: ac317207cea904f30bdaf614536d0a9a9fdeac4f4abbc2e1c0e2f0e4bdc047c4c1709ca671bc28ecd97ad65d11e1f465a02f403ead57219e4f5610328cc7192f languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-doctor@npm:11.3.7" +"@react-native-community/cli-doctor@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-doctor@npm:11.4.1" dependencies: - "@react-native-community/cli-config": 11.3.7 - "@react-native-community/cli-platform-android": 11.3.7 - "@react-native-community/cli-platform-ios": 11.3.7 - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-config": 11.4.1 + "@react-native-community/cli-platform-android": 11.4.1 + "@react-native-community/cli-platform-ios": 11.4.1 + "@react-native-community/cli-tools": 11.4.1 chalk: ^4.1.2 command-exists: ^1.2.8 envinfo: ^7.7.2 execa: ^5.0.0 hermes-profile-transformer: ^0.0.6 - ip: ^1.1.5 node-stream-zip: ^1.9.1 ora: ^5.4.1 prompts: ^2.4.0 @@ -2694,75 +2693,74 @@ __metadata: sudo-prompt: ^9.0.0 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: b67990e71b0859565f8443dca21c5b0d3203ffebe13be22fbbbd38fc7d8e1a6c966b89783ecbefde16e3e3d84cfecb8277104e86a8ff08338d11df1315e0fb1a + checksum: c4899162cf716175987fab6de6833b1e21f0ed92dbdecea756b917f766ef04ecead3a36840a262ffec3af3adbb45ac5568c120f2849ce78a3fdc867bfe0cd487 languageName: node linkType: hard -"@react-native-community/cli-hermes@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-hermes@npm:11.3.7" +"@react-native-community/cli-hermes@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-hermes@npm:11.4.1" dependencies: - "@react-native-community/cli-platform-android": 11.3.7 - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-platform-android": 11.4.1 + "@react-native-community/cli-tools": 11.4.1 chalk: ^4.1.2 hermes-profile-transformer: ^0.0.6 - ip: ^1.1.5 - checksum: e739ff2f891fff7b0d5ead11db05af5cf85db54f0c29ec88df8951567e556b7ce61a0fe930e936d6afab44cbcf7905c01cf73e597dae3c2cd49ef997806754b7 + checksum: 9059ae0329ddfab8836c028d7e7b149bbd63392b6c3a3f3acfbe4222fc7556b5065963b0d70db0370595af27411c8c229aabf9239cd64116825b9208f0cc9f24 languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-platform-android@npm:11.3.7" +"@react-native-community/cli-platform-android@npm:11.4.1, @react-native-community/cli-platform-android@npm:^11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-platform-android@npm:11.4.1" dependencies: - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-tools": 11.4.1 chalk: ^4.1.2 execa: ^5.0.0 glob: ^7.1.3 logkitty: ^0.7.1 - checksum: 5f2f567af3077518d487005fa322f96461f2929762c0bbce6275af97ee00a798683835d481a42477ed3430a5aa141e8fb033d913b7ddbf4ab28aae19bedec4c3 + checksum: 4d024275ab8df1ac70bc46e22389732e63ae1df806acff482d1b063a0ed2f201f00bfe7984df22fca1a894a43967da02abb06635254bde72d8441920ae9a6aa9 languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-platform-ios@npm:11.3.7" +"@react-native-community/cli-platform-ios@npm:11.4.1, @react-native-community/cli-platform-ios@npm:^11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-platform-ios@npm:11.4.1" dependencies: - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-tools": 11.4.1 chalk: ^4.1.2 execa: ^5.0.0 fast-xml-parser: ^4.0.12 glob: ^7.1.3 ora: ^5.4.1 - checksum: 7c067d2e42855b70efd93396ecd6a4379660f5ff0f62472b693e52e092a19b9f39aef73d9ba58cda9eac8bd47710bbee98393438ac7936b6c9d0b5c9c60a1d23 + checksum: ad3f16221b49bddab144869f6d050cbffecee72624cc7dd1ab5cb31af6c0add459dc7a7f528d138a1c529054b7da53489a8cbe34a07b080ba21706d9bc589167 languageName: node linkType: hard -"@react-native-community/cli-plugin-metro@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-plugin-metro@npm:11.3.7" +"@react-native-community/cli-plugin-metro@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-plugin-metro@npm:11.4.1" dependencies: - "@react-native-community/cli-server-api": 11.3.7 - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-server-api": 11.4.1 + "@react-native-community/cli-tools": 11.4.1 chalk: ^4.1.2 execa: ^5.0.0 - metro: 0.76.8 - metro-config: 0.76.8 - metro-core: 0.76.8 - metro-react-native-babel-transformer: 0.76.8 - metro-resolver: 0.76.8 - metro-runtime: 0.76.8 + metro: ^0.76.9 + metro-config: ^0.76.9 + metro-core: ^0.76.9 + metro-react-native-babel-transformer: ^0.76.9 + metro-resolver: ^0.76.9 + metro-runtime: ^0.76.9 readline: ^1.3.0 - checksum: 3504ab8df1bf16335f10088286d71facb59b932ac00500a40fe9a39c77c74b58af0912ac6e9b4c58e5cd8d94ca893e49aecc25a3415740c60be30300b2ae0460 + checksum: e35ff066bd11cc07c930600237a5ea9c9b6ab1f704a07093c6ee0e2118a7213cfc2b83fbe2fb86dc1a14bf118d3f50fb8f5c2d5e3d962bf9bcdaddc3683f14a9 languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-server-api@npm:11.3.7" +"@react-native-community/cli-server-api@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-server-api@npm:11.4.1" dependencies: - "@react-native-community/cli-debugger-ui": 11.3.7 - "@react-native-community/cli-tools": 11.3.7 + "@react-native-community/cli-debugger-ui": 11.4.1 + "@react-native-community/cli-tools": 11.4.1 compression: ^1.7.1 connect: ^3.6.5 errorhandler: ^1.5.1 @@ -2770,13 +2768,13 @@ __metadata: pretty-format: ^26.6.2 serve-static: ^1.13.1 ws: ^7.5.1 - checksum: 86e26df7f43915bc7f10b1ae4d7f32e42ddbf6ac50b9c72f263f51dbb5d7f4b941da464094dfa2244028467c4b04ed8d3bcac7cd4191feea499dc90fcde2965a + checksum: dcf1ab13ae7e1b715281b7d045f06871441faf184c6d031965f0c0829bbf5f1ac18b82e239fe043f0e47c94d1f75e68931ab8483806596c934dcad1fb0fd78cf languageName: node linkType: hard -"@react-native-community/cli-tools@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-tools@npm:11.3.7" +"@react-native-community/cli-tools@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-tools@npm:11.4.1" dependencies: appdirsjs: ^1.2.4 chalk: ^4.1.2 @@ -2787,32 +2785,32 @@ __metadata: ora: ^5.4.1 semver: ^7.5.2 shell-quote: ^1.7.3 - checksum: ae9e368119be1307b341af79d72309b06acab4afd5e38dba860569e9c8c968b33e68b9a0ba02ad152e81fa7d0aa76c44e391714781107561b5119238f27e72b2 + checksum: 371a73219d25dbd381cd92f879f355ed1040900159fc13745050aa06758cabf89502d4db902abdd7998b09a6d5af4bcd5489f9647dc0b5529be1a49997038f15 languageName: node linkType: hard -"@react-native-community/cli-types@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli-types@npm:11.3.7" +"@react-native-community/cli-types@npm:11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli-types@npm:11.4.1" dependencies: joi: ^17.2.1 - checksum: e9d49617c0e17d40680f9cc0b271083a83de0aaf3d53acab54cf195bfa35cae35c69ec88f1cb026c9a096f8dfd5bdc12787ee3e52cf98df68a572de1859c71ea + checksum: 2a17e2a8c254456c86bccbd8418bf4c8279c6a0d1491f5f9081fcf7f7c5975cc5b6c7c6dc26c3f115ca0e83cbe70655df1aa292fad6e5624db6f8e9c134ac631 languageName: node linkType: hard -"@react-native-community/cli@npm:11.3.7": - version: 11.3.7 - resolution: "@react-native-community/cli@npm:11.3.7" +"@react-native-community/cli@npm:^11.4.1": + version: 11.4.1 + resolution: "@react-native-community/cli@npm:11.4.1" dependencies: - "@react-native-community/cli-clean": 11.3.7 - "@react-native-community/cli-config": 11.3.7 - "@react-native-community/cli-debugger-ui": 11.3.7 - "@react-native-community/cli-doctor": 11.3.7 - "@react-native-community/cli-hermes": 11.3.7 - "@react-native-community/cli-plugin-metro": 11.3.7 - "@react-native-community/cli-server-api": 11.3.7 - "@react-native-community/cli-tools": 11.3.7 - "@react-native-community/cli-types": 11.3.7 + "@react-native-community/cli-clean": 11.4.1 + "@react-native-community/cli-config": 11.4.1 + "@react-native-community/cli-debugger-ui": 11.4.1 + "@react-native-community/cli-doctor": 11.4.1 + "@react-native-community/cli-hermes": 11.4.1 + "@react-native-community/cli-plugin-metro": 11.4.1 + "@react-native-community/cli-server-api": 11.4.1 + "@react-native-community/cli-tools": 11.4.1 + "@react-native-community/cli-types": 11.4.1 chalk: ^4.1.2 commander: ^9.4.1 execa: ^5.0.0 @@ -2823,7 +2821,7 @@ __metadata: semver: ^7.5.2 bin: react-native: build/bin.js - checksum: 704e3d5e252a42a45697384b55f140b4961cbc213a90701ef163d1d0bab4fa8481ae4bf9ffe9c965114817087068186422d96d60aed479466bab036049a32866 + checksum: aab22f10eda679050e7eb556ded0a6b0dc57ce44ffe1c423d4202295cbc913d93a4ec510d34644bd23971e67f2800de75583b0125f9a949da55586f48f08dac0 languageName: node linkType: hard @@ -2834,17 +2832,20 @@ __metadata: languageName: node linkType: hard -"@react-native/codegen@npm:^0.72.7": - version: 0.72.7 - resolution: "@react-native/codegen@npm:0.72.7" +"@react-native/codegen@npm:^0.72.8": + version: 0.72.8 + resolution: "@react-native/codegen@npm:0.72.8" dependencies: "@babel/parser": ^7.20.0 flow-parser: ^0.206.0 + glob: ^7.1.1 + invariant: ^2.2.4 jscodeshift: ^0.14.0 + mkdirp: ^0.5.1 nullthrows: ^1.1.1 peerDependencies: "@babel/preset-env": ^7.1.6 - checksum: 7793a9da9eec18a5c68af37ad0e25000ed7f111086223bc85b08e52c79229266d5affc9e6f9cb14348e7921f0d1b96267ff63801d95bc23c55f54b57c0a9c510 + checksum: c031f199cb50f44010faaec96190bfd6a3abb376349c599cad85fa4f202c21d644b54ab6f530d2d0a915f086078f45d1082e2753ed4e4f80d256852ef1d081f9 languageName: node linkType: hard @@ -2912,14 +2913,7 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-colors@npm:*": - version: 0.74.1 - resolution: "@react-native/normalize-colors@npm:0.74.1" - checksum: a8625a2ed4f2595c9e1a0b0877ca8ab02dab243ced6bf98c82c328c2c125ca31dd3afd1f2940f2c114af2c309b28ad24da98aa9519a761a2df796c6968c055ec - languageName: node - linkType: hard - -"@react-native/normalize-colors@npm:^0.72.0": +"@react-native/normalize-colors@npm:<0.73.0, @react-native/normalize-colors@npm:^0.72.0": version: 0.72.0 resolution: "@react-native/normalize-colors@npm:0.72.0" checksum: c8ec577663394a3390eb34c3cd531350521172bcfad7de309ab111e5f9e3d27c966d4a4387f00972302107be3d8cad584c5794ccfa30939aecc56162e4ddbe25 @@ -5364,17 +5358,6 @@ __metadata: languageName: node linkType: hard -"deprecated-react-native-prop-types@npm:4.1.0": - version: 4.1.0 - resolution: "deprecated-react-native-prop-types@npm:4.1.0" - dependencies: - "@react-native/normalize-colors": "*" - invariant: "*" - prop-types: "*" - checksum: bba96622e196f650e782963598a2868a9c89b32e88fba1555fe1308d324eb387ab2a1f16235162b7bccc1900e8f43b7f8eae4f149a37f10cdf52e071990a7c9a - languageName: node - linkType: hard - "deprecated-react-native-prop-types@npm:^2.2.0": version: 2.3.0 resolution: "deprecated-react-native-prop-types@npm:2.3.0" @@ -5386,6 +5369,17 @@ __metadata: languageName: node linkType: hard +"deprecated-react-native-prop-types@npm:^4.2.3": + version: 4.2.3 + resolution: "deprecated-react-native-prop-types@npm:4.2.3" + dependencies: + "@react-native/normalize-colors": <0.73.0 + invariant: ^2.2.4 + prop-types: ^15.8.1 + checksum: 294752f9f15733b66473022d8258a14aac850e4a3db7e802ef189a09871236f5a110f8fe588468ae1df92f24641ae29de05943074dc54da02a5e4262935f913d + languageName: node + linkType: hard + "deprecation@npm:^2.0.0": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -6715,7 +6709,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3": +"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -7271,7 +7265,7 @@ __metadata: languageName: node linkType: hard -"ip@npm:^1.1.5, ip@npm:^1.1.8": +"ip@npm:^1.1.8": version: 1.1.8 resolution: "ip@npm:1.1.8" checksum: a2ade53eb339fb0cbe9e69a44caab10d6e3784662285eb5d2677117ee4facc33a64679051c35e0dfdb1a3983a51ce2f5d2cb36446d52e10d01881789b76e28fb @@ -9188,6 +9182,17 @@ __metadata: languageName: node linkType: hard +"metro-babel-transformer@npm:0.76.9": + version: 0.76.9 + resolution: "metro-babel-transformer@npm:0.76.9" + dependencies: + "@babel/core": ^7.20.0 + hermes-parser: 0.12.0 + nullthrows: ^1.1.1 + checksum: 06e7578547c9a6f5d96b653e35ade75d7b7b33ab76fcb731e7525611d2e80277c0ef8532280a3f99facb03e0744410bd052621b846bd7fc690d86f3bdee80413 + languageName: node + linkType: hard + "metro-cache-key@npm:0.76.8": version: 0.76.8 resolution: "metro-cache-key@npm:0.76.8" @@ -9195,6 +9200,13 @@ __metadata: languageName: node linkType: hard +"metro-cache-key@npm:0.76.9": + version: 0.76.9 + resolution: "metro-cache-key@npm:0.76.9" + checksum: 9056f4fd04da6bb403df970058303645cc1045bc941b06e0c0b778ef9a592d2ce7d7c3b9e4a7b86d40151a24af7d954737927aa26cbc9c395d0a0043e58d83e7 + languageName: node + linkType: hard + "metro-cache@npm:0.76.8": version: 0.76.8 resolution: "metro-cache@npm:0.76.8" @@ -9205,6 +9217,16 @@ __metadata: languageName: node linkType: hard +"metro-cache@npm:0.76.9": + version: 0.76.9 + resolution: "metro-cache@npm:0.76.9" + dependencies: + metro-core: 0.76.9 + rimraf: ^3.0.2 + checksum: 47a25ebc511d07e5577e69800b8906c070f6cd66e565cabd42784e007dc815558ebd30b2618fbac93880775d29e56de51afb89d2a772298c71af46b6fc6d9a76 + languageName: node + linkType: hard + "metro-config@npm:0.76.8": version: 0.76.8 resolution: "metro-config@npm:0.76.8" @@ -9220,6 +9242,21 @@ __metadata: languageName: node linkType: hard +"metro-config@npm:0.76.9, metro-config@npm:^0.76.9": + version: 0.76.9 + resolution: "metro-config@npm:0.76.9" + dependencies: + connect: ^3.6.5 + cosmiconfig: ^5.0.5 + jest-validate: ^29.2.1 + metro: 0.76.9 + metro-cache: 0.76.9 + metro-core: 0.76.9 + metro-runtime: 0.76.9 + checksum: a46a5fd8ff5ae880e21194f8ee385240173712968ac0da6388e58ed056e0cb0d931d2aaf69f65641e525dcc5bcde035338be8e5ff345a9d078772611e9690e7c + languageName: node + linkType: hard + "metro-core@npm:0.76.8": version: 0.76.8 resolution: "metro-core@npm:0.76.8" @@ -9230,6 +9267,16 @@ __metadata: languageName: node linkType: hard +"metro-core@npm:0.76.9, metro-core@npm:^0.76.9": + version: 0.76.9 + resolution: "metro-core@npm:0.76.9" + dependencies: + lodash.throttle: ^4.1.1 + metro-resolver: 0.76.9 + checksum: 6ca96a68808d7cee355872b430fee627ff969f1b315eb8adb567c82504aa7306a5d0ebc99fdb5806a1449afac38514037ef8f70e24bafbda5518ad2b043c3d15 + languageName: node + linkType: hard + "metro-file-map@npm:0.76.8": version: 0.76.8 resolution: "metro-file-map@npm:0.76.8" @@ -9254,6 +9301,30 @@ __metadata: languageName: node linkType: hard +"metro-file-map@npm:0.76.9": + version: 0.76.9 + resolution: "metro-file-map@npm:0.76.9" + dependencies: + anymatch: ^3.0.3 + debug: ^2.2.0 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.4 + invariant: ^2.2.4 + jest-regex-util: ^27.0.6 + jest-util: ^27.2.0 + jest-worker: ^27.2.0 + micromatch: ^4.0.4 + node-abort-controller: ^3.1.1 + nullthrows: ^1.1.1 + walker: ^1.0.7 + dependenciesMeta: + fsevents: + optional: true + checksum: b377a46f2e5037ecaae35f7d1210300e03be1d28a7e5a3a24b24120488be3d7af20b865523a66bddf700da9eebbe0f6c8cf1693c80253968bbd44cd7d4228f42 + languageName: node + linkType: hard + "metro-inspector-proxy@npm:0.76.8": version: 0.76.8 resolution: "metro-inspector-proxy@npm:0.76.8" @@ -9269,6 +9340,21 @@ __metadata: languageName: node linkType: hard +"metro-inspector-proxy@npm:0.76.9": + version: 0.76.9 + resolution: "metro-inspector-proxy@npm:0.76.9" + dependencies: + connect: ^3.6.5 + debug: ^2.2.0 + node-fetch: ^2.2.0 + ws: ^7.5.1 + yargs: ^17.6.2 + bin: + metro-inspector-proxy: src/cli.js + checksum: 8c46f907d301da2b733109c4e4f271c0e34591733bbed3329a16aedbb8aeae975178b6222380a930d0322c8e4e4bac989bffc95c438ffa7b71f36c6e3d8821b5 + languageName: node + linkType: hard + "metro-minify-terser@npm:0.76.8": version: 0.76.8 resolution: "metro-minify-terser@npm:0.76.8" @@ -9278,6 +9364,15 @@ __metadata: languageName: node linkType: hard +"metro-minify-terser@npm:0.76.9": + version: 0.76.9 + resolution: "metro-minify-terser@npm:0.76.9" + dependencies: + terser: ^5.15.0 + checksum: 66f1ffe75635311fe504b66f4841a6985440993092261e6066d6b23b66d9d08871ba06d6e2cae971b67445f3b9040cda4a757f897cdf54fbad954191f9d971e4 + languageName: node + linkType: hard + "metro-minify-uglify@npm:0.76.8": version: 0.76.8 resolution: "metro-minify-uglify@npm:0.76.8" @@ -9287,6 +9382,15 @@ __metadata: languageName: node linkType: hard +"metro-minify-uglify@npm:0.76.9": + version: 0.76.9 + resolution: "metro-minify-uglify@npm:0.76.9" + dependencies: + uglify-es: ^3.1.9 + checksum: d2da815a006cafaf6373d3fa9256929aeada738f9abbd41cc5acbf47cb1ed1aac5a0e71f11b87ca375e313da790e8ad7a4e8163a07983d8d34d3feaeda8729cf + languageName: node + linkType: hard + "metro-react-native-babel-preset@npm:0.76.8": version: 0.76.8 resolution: "metro-react-native-babel-preset@npm:0.76.8" @@ -9336,6 +9440,55 @@ __metadata: languageName: node linkType: hard +"metro-react-native-babel-preset@npm:0.76.9": + version: 0.76.9 + resolution: "metro-react-native-babel-preset@npm:0.76.9" + dependencies: + "@babel/core": ^7.20.0 + "@babel/plugin-proposal-async-generator-functions": ^7.0.0 + "@babel/plugin-proposal-class-properties": ^7.18.0 + "@babel/plugin-proposal-export-default-from": ^7.0.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0 + "@babel/plugin-proposal-numeric-separator": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.20.0 + "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 + "@babel/plugin-proposal-optional-chaining": ^7.20.0 + "@babel/plugin-syntax-dynamic-import": ^7.8.0 + "@babel/plugin-syntax-export-default-from": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.18.0 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 + "@babel/plugin-syntax-optional-chaining": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-async-to-generator": ^7.20.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.20.0 + "@babel/plugin-transform-flow-strip-types": ^7.20.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-react-jsx-self": ^7.0.0 + "@babel/plugin-transform-react-jsx-source": ^7.0.0 + "@babel/plugin-transform-runtime": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-sticky-regex": ^7.0.0 + "@babel/plugin-transform-typescript": ^7.5.0 + "@babel/plugin-transform-unicode-regex": ^7.0.0 + "@babel/template": ^7.0.0 + babel-plugin-transform-flow-enums: ^0.0.2 + react-refresh: ^0.4.0 + peerDependencies: + "@babel/core": "*" + checksum: 344fbcbcf82a9f8425a38a910716777cf45619d7b61a1a935a903f751e3a335ff8a54f80ba9fd9a16b96ac74e68f77760cb09d2c40ec6faf113308c91b863a9e + languageName: node + linkType: hard + "metro-react-native-babel-transformer@npm:0.76.8": version: 0.76.8 resolution: "metro-react-native-babel-transformer@npm:0.76.8" @@ -9351,6 +9504,21 @@ __metadata: languageName: node linkType: hard +"metro-react-native-babel-transformer@npm:^0.76.9": + version: 0.76.9 + resolution: "metro-react-native-babel-transformer@npm:0.76.9" + dependencies: + "@babel/core": ^7.20.0 + babel-preset-fbjs: ^3.4.0 + hermes-parser: 0.12.0 + metro-react-native-babel-preset: 0.76.9 + nullthrows: ^1.1.1 + peerDependencies: + "@babel/core": "*" + checksum: bb4427ed2225f72667f82e0ec5317843582628d35f2a7c329ba6d22eb9ee20726403cf2ab869ee6e9056e80576e5a05a55a92d169ac3276227bb6a0159caadeb + languageName: node + linkType: hard + "metro-resolver@npm:0.76.8": version: 0.76.8 resolution: "metro-resolver@npm:0.76.8" @@ -9358,6 +9526,13 @@ __metadata: languageName: node linkType: hard +"metro-resolver@npm:0.76.9, metro-resolver@npm:^0.76.9": + version: 0.76.9 + resolution: "metro-resolver@npm:0.76.9" + checksum: 340b689582698f87f54cb06dc06f6ad8adaf4bd3a35931c5a8e46754c2ae73d82df29c7e13e87f0326175b04edf61b2a1d012d6f7b31e85a500218952badc6c3 + languageName: node + linkType: hard + "metro-runtime@npm:0.76.8": version: 0.76.8 resolution: "metro-runtime@npm:0.76.8" @@ -9368,6 +9543,16 @@ __metadata: languageName: node linkType: hard +"metro-runtime@npm:0.76.9, metro-runtime@npm:^0.76.9": + version: 0.76.9 + resolution: "metro-runtime@npm:0.76.9" + dependencies: + "@babel/runtime": ^7.0.0 + react-refresh: ^0.4.0 + checksum: e82db2688f05c064c6768d389e33476b62d1106ea5fd630e7a795f889d40c17ac9db9a1fe5d46fb6972559cb90e41f00b2f7f3cb12e24c969ad9885682928817 + languageName: node + linkType: hard + "metro-source-map@npm:0.76.8": version: 0.76.8 resolution: "metro-source-map@npm:0.76.8" @@ -9384,6 +9569,22 @@ __metadata: languageName: node linkType: hard +"metro-source-map@npm:0.76.9, metro-source-map@npm:^0.76.9": + version: 0.76.9 + resolution: "metro-source-map@npm:0.76.9" + dependencies: + "@babel/traverse": ^7.20.0 + "@babel/types": ^7.20.0 + invariant: ^2.2.4 + metro-symbolicate: 0.76.9 + nullthrows: ^1.1.1 + ob1: 0.76.9 + source-map: ^0.5.6 + vlq: ^1.0.0 + checksum: e6b2ad1a9da66bbd1ed23fa78f064415557db9328c01661948fcfd8617472ebcdab0b027c0bb86085e66a4c4f415d47656ee1ad99569e53a95d8ea0d999fb864 + languageName: node + linkType: hard + "metro-symbolicate@npm:0.76.8": version: 0.76.8 resolution: "metro-symbolicate@npm:0.76.8" @@ -9400,6 +9601,22 @@ __metadata: languageName: node linkType: hard +"metro-symbolicate@npm:0.76.9": + version: 0.76.9 + resolution: "metro-symbolicate@npm:0.76.9" + dependencies: + invariant: ^2.2.4 + metro-source-map: 0.76.9 + nullthrows: ^1.1.1 + source-map: ^0.5.6 + through2: ^2.0.1 + vlq: ^1.0.0 + bin: + metro-symbolicate: src/index.js + checksum: 386ffd4e6fb2483d91e16497b9eac130a06d3618a19e8133c312254427b4ea8ec2d5bed7e12c647d4ab9b194c976814406324c83d28ca63366e641ffb9b558b3 + languageName: node + linkType: hard + "metro-transform-plugins@npm:0.76.8": version: 0.76.8 resolution: "metro-transform-plugins@npm:0.76.8" @@ -9413,6 +9630,19 @@ __metadata: languageName: node linkType: hard +"metro-transform-plugins@npm:0.76.9": + version: 0.76.9 + resolution: "metro-transform-plugins@npm:0.76.9" + dependencies: + "@babel/core": ^7.20.0 + "@babel/generator": ^7.20.0 + "@babel/template": ^7.0.0 + "@babel/traverse": ^7.20.0 + nullthrows: ^1.1.1 + checksum: 669e34052a31a535d4b9e0a419641fedcc9db05eac0c2f6a685a6dc69d01f555534e9ff1595fb1d9ad2ccf046e4e9f817a4b5faac9b5189c17bba4611d6c873d + languageName: node + linkType: hard + "metro-transform-worker@npm:0.76.8": version: 0.76.8 resolution: "metro-transform-worker@npm:0.76.8" @@ -9433,6 +9663,27 @@ __metadata: languageName: node linkType: hard +"metro-transform-worker@npm:0.76.9": + version: 0.76.9 + resolution: "metro-transform-worker@npm:0.76.9" + dependencies: + "@babel/core": ^7.20.0 + "@babel/generator": ^7.20.0 + "@babel/parser": ^7.20.0 + "@babel/types": ^7.20.0 + babel-preset-fbjs: ^3.4.0 + metro: 0.76.9 + metro-babel-transformer: 0.76.9 + metro-cache: 0.76.9 + metro-cache-key: 0.76.9 + metro-minify-terser: 0.76.9 + metro-source-map: 0.76.9 + metro-transform-plugins: 0.76.9 + nullthrows: ^1.1.1 + checksum: 62d7d53fd2fe17de3d6f91f32444755df446625c13abad3ce6851f65e39c80809e726d54595cd95481b3c6211a368ff71d305df28674d04492e230db93932b8d + languageName: node + linkType: hard + "metro@npm:0.76.8": version: 0.76.8 resolution: "metro@npm:0.76.8" @@ -9491,6 +9742,63 @@ __metadata: languageName: node linkType: hard +"metro@npm:0.76.9, metro@npm:^0.76.9": + version: 0.76.9 + resolution: "metro@npm:0.76.9" + dependencies: + "@babel/code-frame": ^7.0.0 + "@babel/core": ^7.20.0 + "@babel/generator": ^7.20.0 + "@babel/parser": ^7.20.0 + "@babel/template": ^7.0.0 + "@babel/traverse": ^7.20.0 + "@babel/types": ^7.20.0 + accepts: ^1.3.7 + async: ^3.2.2 + chalk: ^4.0.0 + ci-info: ^2.0.0 + connect: ^3.6.5 + debug: ^2.2.0 + denodeify: ^1.2.1 + error-stack-parser: ^2.0.6 + graceful-fs: ^4.2.4 + hermes-parser: 0.12.0 + image-size: ^1.0.2 + invariant: ^2.2.4 + jest-worker: ^27.2.0 + jsc-safe-url: ^0.2.2 + lodash.throttle: ^4.1.1 + metro-babel-transformer: 0.76.9 + metro-cache: 0.76.9 + metro-cache-key: 0.76.9 + metro-config: 0.76.9 + metro-core: 0.76.9 + metro-file-map: 0.76.9 + metro-inspector-proxy: 0.76.9 + metro-minify-uglify: 0.76.9 + metro-react-native-babel-preset: 0.76.9 + metro-resolver: 0.76.9 + metro-runtime: 0.76.9 + metro-source-map: 0.76.9 + metro-symbolicate: 0.76.9 + metro-transform-plugins: 0.76.9 + metro-transform-worker: 0.76.9 + mime-types: ^2.1.27 + node-fetch: ^2.2.0 + nullthrows: ^1.1.1 + rimraf: ^3.0.2 + serialize-error: ^2.1.0 + source-map: ^0.5.6 + strip-ansi: ^6.0.0 + throat: ^5.0.0 + ws: ^7.5.1 + yargs: ^17.6.2 + bin: + metro: src/cli.js + checksum: 48bb3fe16ea6be22796f520cc95c34ca625678fe48bf0e5b73e974b213680c63200c0e3daa13c59131e31c3b10d9232d2bf1eab399d7fac1a39cbabf76cd4622 + languageName: node + linkType: hard + "micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -9975,6 +10283,13 @@ __metadata: languageName: node linkType: hard +"ob1@npm:0.76.9": + version: 0.76.9 + resolution: "ob1@npm:0.76.9" + checksum: b7ed126985e766a1d00dc1826006ca4d724628f74f917678f63c664efadb2441283e09cd67dce0f1c0b765bb169159d073ad6a9b62959a01cc8fd37687252b31 + languageName: node + linkType: hard + "object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -10887,7 +11202,7 @@ __metadata: metro-react-native-babel-preset: 0.76.8 pod-install: ^0.1.0 react: 18.2.0 - react-native: 0.72.6 + react-native: 0.72.17 react-native-blob-util: ^0.19.2 react-native-url-polyfill: ^2.0.0 react-native-video: ^5.2.1 @@ -10914,7 +11229,7 @@ __metadata: pod-install: ^0.1.0 prettier: ^2.0.5 react: 18.2.0 - react-native: 0.72.6 + react-native: 0.72.17 react-native-blob-util: ^0.19.2 react-native-builder-bob: ^0.23.1 react-native-url-polyfill: ^2.0.0 @@ -10952,32 +11267,33 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.72.6": - version: 0.72.6 - resolution: "react-native@npm:0.72.6" +"react-native@npm:0.72.17": + version: 0.72.17 + resolution: "react-native@npm:0.72.17" dependencies: "@jest/create-cache-key-function": ^29.2.1 - "@react-native-community/cli": 11.3.7 - "@react-native-community/cli-platform-android": 11.3.7 - "@react-native-community/cli-platform-ios": 11.3.7 + "@react-native-community/cli": ^11.4.1 + "@react-native-community/cli-platform-android": ^11.4.1 + "@react-native-community/cli-platform-ios": ^11.4.1 "@react-native/assets-registry": ^0.72.0 - "@react-native/codegen": ^0.72.7 + "@react-native/codegen": ^0.72.8 "@react-native/gradle-plugin": ^0.72.11 "@react-native/js-polyfills": ^0.72.1 "@react-native/normalize-colors": ^0.72.0 "@react-native/virtualized-lists": ^0.72.8 abort-controller: ^3.0.0 anser: ^1.4.9 + ansi-regex: ^5.0.0 base64-js: ^1.1.2 - deprecated-react-native-prop-types: 4.1.0 + deprecated-react-native-prop-types: ^4.2.3 event-target-shim: ^5.0.1 flow-enums-runtime: ^0.0.5 invariant: ^2.2.4 jest-environment-node: ^29.2.1 jsc-android: ^250231.0.0 memoize-one: ^5.0.0 - metro-runtime: 0.76.8 - metro-source-map: 0.76.8 + metro-runtime: ^0.76.9 + metro-source-map: ^0.76.9 mkdirp: ^0.5.1 nullthrows: ^1.1.1 pretty-format: ^26.5.2 @@ -10996,7 +11312,7 @@ __metadata: react: 18.2.0 bin: react-native: cli.js - checksum: 3cf0af092c0d6b9b6e67795664e324136f6d1a41c6a889737fb612e5ddb93d0537c890fe733e751fe3bbc139cbb4f9f6d9eff4467e8d8dc67194ac8b382fa168 + checksum: 3b5162d92dc6d290e47caea0895ce1bb178f267851d0c729cb23cce78946b43fc2bc415436ef2a1a6d940ed6f6b28e8937fc71671bdd60f7a0e54544f7f34043 languageName: node linkType: hard From 69d1c7f99d3a5549626bf81cacbe43aa832729c2 Mon Sep 17 00:00:00 2001 From: Adam Segal Date: Thu, 23 Jan 2025 17:55:56 -0800 Subject: [PATCH 2/4] feat: add ability to clear caches and remove single items from cache --- src/Hooks/useCache.ts | 15 ++++++++ src/Provider/MemoryCacheFreePolicy.ts | 4 ++ src/Provider/MemoryCacheLFUPolicy.ts | 33 ++++++++++++++-- src/Provider/MemoryCacheProvider.ts | 10 +++++ src/ProxyCacheManager.ts | 55 ++++++++++++++++++++++++++- src/types/type.d.ts | 3 ++ 6 files changed, 115 insertions(+), 5 deletions(-) diff --git a/src/Hooks/useCache.ts b/src/Hooks/useCache.ts index b8a9657..6568158 100644 --- a/src/Hooks/useCache.ts +++ b/src/Hooks/useCache.ts @@ -59,8 +59,23 @@ export const useAsyncCache = () => { [cacheManager, delayUpdateVideo] ); + const removeVideoFromCache = useCallback( + async (url: string) => { + if (cacheManager) { + await cacheManager.removeCachedVideo(url); + // Clear our local state if this was the current video + if (url === currentVideoUrl.current) { + currentVideoUrl.current = undefined; + setVideoUrl(undefined); + } + } + }, + [cacheManager] + ); + return { setVideoPlayUrlBy, cachedVideoUrl, + removeVideoFromCache, }; }; diff --git a/src/Provider/MemoryCacheFreePolicy.ts b/src/Provider/MemoryCacheFreePolicy.ts index 7d4f1cb..a43a1c3 100644 --- a/src/Provider/MemoryCacheFreePolicy.ts +++ b/src/Provider/MemoryCacheFreePolicy.ts @@ -12,6 +12,10 @@ export class FreePolicy implements MemoryCachePolicyInterface { this.onEvict.bind(this); } + clear() {} + + removeEntry(_key: string) {} + onAccess(_cache: Map, _key: string) {} onEvict(_cache: Map, _delegate?: MemoryCacheDelegate) {} diff --git a/src/Provider/MemoryCacheLFUPolicy.ts b/src/Provider/MemoryCacheLFUPolicy.ts index a4497cd..02fa701 100644 --- a/src/Provider/MemoryCacheLFUPolicy.ts +++ b/src/Provider/MemoryCacheLFUPolicy.ts @@ -33,6 +33,14 @@ export class LFUPolicy implements MemoryCachePolicyInterface { this.onEvict.bind(this); } + clear(): void { + this.referenceBit = {}; + } + + removeEntry(key: string): void { + delete this.referenceBit[key]; + } + onAccess(cache: Map, key: string) { // Update access frequency for the item const value = cache.get(key); @@ -59,10 +67,19 @@ export class LFUPolicy implements MemoryCachePolicyInterface { // Evict the least recently used item (at the end) for (const key in this.referenceBit) { + if (!cache.has(key)) { + // Only consider keys that actually exist in the cache + delete this.referenceBit[key]; // Clean up stale reference + continue; + } + const freq = this.referenceBit[key]; - if (freq && freq < minFreq && freq !== SECOND_CHANCE_TO_COUNT) { - minFreq = freq; - lfuKey = key; + if (freq && freq < minFreq) { + // Consider SECOND_CHANCE_TO_COUNT items if nothing else found + if (freq !== SECOND_CHANCE_TO_COUNT || lfuKey === null) { + minFreq = freq; + lfuKey = key; + } } } @@ -71,6 +88,16 @@ export class LFUPolicy implements MemoryCachePolicyInterface { cache.delete(lfuKey); delete this.referenceBit[lfuKey]; delegate && delegate.didEvictHandler(lfuKey, value); + } else if (cache.size >= this.capacity) { + // If we couldn't find anything to evict but still need space, + // evict the first item (oldest by insertion order) + const firstKey = cache.keys().next().value; + if (firstKey) { + const value = cache.get(firstKey); + cache.delete(firstKey); + delete this.referenceBit[firstKey]; + delegate && delegate.didEvictHandler(firstKey, value); + } } } // diff --git a/src/Provider/MemoryCacheProvider.ts b/src/Provider/MemoryCacheProvider.ts index 31ec22e..317da51 100644 --- a/src/Provider/MemoryCacheProvider.ts +++ b/src/Provider/MemoryCacheProvider.ts @@ -56,6 +56,8 @@ export class MemoryCacheProvider implements MemoryCacheInterface { } else { // remove this.cache.delete(key); + // Also clean up policy tracking when removing + this.cachePolicy.removeEntry(key); } } // @@ -95,4 +97,12 @@ export class MemoryCacheProvider implements MemoryCacheInterface { } } // + + clear(): void { + // Clear the actual cache + this.cache = new Map(); + + // Clear the policy tracking + this.cachePolicy.clear(); + } } diff --git a/src/ProxyCacheManager.ts b/src/ProxyCacheManager.ts index 7fab488..698c9b9 100644 --- a/src/ProxyCacheManager.ts +++ b/src/ProxyCacheManager.ts @@ -81,6 +81,10 @@ export class CacheManager // } + get memoryCache() { + return this._memoryCache; + } + get sessionTask() { return this._sessionTask; } @@ -123,10 +127,17 @@ export class CacheManager url: string, folder: string = this.cacheFolder ): Promise { - // access cache in memory first + // Check memory cache first const cachedKey = this.getCachedFile(url); if (cachedKey) { - return cachedKey; + // Verify file still exists + if (await this._storage.existsFile(cachedKey)) { + return cachedKey; + } else { + // File missing - clean up cache entries + this._memoryCache?.syncCache(url); + return undefined; + } } // access cache in file system @@ -163,6 +174,46 @@ export class CacheManager this._memoryCache = undefined; } + clearMemoryCache(): void { + if (this._memoryCache) { + this._memoryCache?.clear(); + } + } + + async clearCache(): Promise { + // Clear memory cache and policy + this.clearMemoryCache(); + + // Clear all files from cache directory + const cacheDir = this._storage.getBucketFolder(FileBucket.cache); + await this._storage.clearDirectory(cacheDir); + } + + async removeCachedVideo(url: string): Promise { + if (!this._memoryCache) { + return; + } + + // Get the original URL (needed as the key for memory cache) + const { originURL } = getCacheKey(url, this.cacheFolder, KEY_PREFIX); + const key = originURL.href; + + // First get the cached file path + const cachedPath = await this.getCachedFileAsync(url); + + // Clean up memory cache/policy regardless of file existence + this._memoryCache.syncCache(key); + + // If we had a cached path, try to delete the file + if (cachedPath) { + try { + await this.didEvictHandler(key, cachedPath); + } catch (error) { + // Still succeeded in cleaning cache/policy even if file deletion failed + } + } + } + setMemoryCacheDelegate(delegate?: MemoryCacheDelegate) { this._memoryCache?.delegate && (this._memoryCache.delegate = delegate); } diff --git a/src/types/type.d.ts b/src/types/type.d.ts index 6aa848a..8f29bdb 100644 --- a/src/types/type.d.ts +++ b/src/types/type.d.ts @@ -50,6 +50,8 @@ export interface MemoryCachePolicyInterface { // cache policy onAccess(cache: Map, key: string): void; onEvict(cache: Map, delegate?: MemoryCacheDelegate): void; + clear(): void; + removeEntry(key: string): void; // get dataSource(): any; set dataSource(data: any); @@ -63,6 +65,7 @@ export interface MemoryCacheInterface { referenceBit: any; }; load: (jsonStr: string) => void; + clear: () => void; // put: (key: string, value: Value) => void; get: (key: string) => Value | undefined; From f244c22917a91ab44661be369c7186576e13381e Mon Sep 17 00:00:00 2001 From: Adam Segal Date: Fri, 24 Jan 2025 00:30:26 -0800 Subject: [PATCH 3/4] refactor: removed unnecessary uses of . bind(this) --- src/Provider/MemoryCacheFreePolicy.ts | 5 +---- src/Provider/MemoryCacheLFUPolicy.ts | 3 --- src/Provider/PreCacheProvider.ts | 4 ---- src/ProxyCacheManager.ts | 24 ------------------------ 4 files changed, 1 insertion(+), 35 deletions(-) diff --git a/src/Provider/MemoryCacheFreePolicy.ts b/src/Provider/MemoryCacheFreePolicy.ts index a43a1c3..66154b5 100644 --- a/src/Provider/MemoryCacheFreePolicy.ts +++ b/src/Provider/MemoryCacheFreePolicy.ts @@ -7,10 +7,7 @@ import type { * Free policy is a policy that doesn't care about anything, just cache it */ export class FreePolicy implements MemoryCachePolicyInterface { - constructor() { - this.onAccess.bind(this); - this.onEvict.bind(this); - } + constructor() {} clear() {} diff --git a/src/Provider/MemoryCacheLFUPolicy.ts b/src/Provider/MemoryCacheLFUPolicy.ts index 02fa701..6011e52 100644 --- a/src/Provider/MemoryCacheLFUPolicy.ts +++ b/src/Provider/MemoryCacheLFUPolicy.ts @@ -28,9 +28,6 @@ export class LFUPolicy implements MemoryCachePolicyInterface { [key in string]: number; }; this.capacity = capacity; - - this.onAccess.bind(this); - this.onEvict.bind(this); } clear(): void { diff --git a/src/Provider/PreCacheProvider.ts b/src/Provider/PreCacheProvider.ts index a249ee5..75944b3 100644 --- a/src/Provider/PreCacheProvider.ts +++ b/src/Provider/PreCacheProvider.ts @@ -27,10 +27,6 @@ export class PreCacheProvider implements PreCacheInterface { this.sessionTask = sessionTask; this.cacheFolder = cacheFolder; // - this.preCacheForList.bind(this); - this.prepareSourceMedia = this.prepareSourceMedia.bind(this); - this.cancelCachingList = this.cancelCachingList.bind(this); - // } // MARK: - Pre-cache diff --git a/src/ProxyCacheManager.ts b/src/ProxyCacheManager.ts index 698c9b9..7e5bf32 100644 --- a/src/ProxyCacheManager.ts +++ b/src/ProxyCacheManager.ts @@ -55,30 +55,6 @@ export class CacheManager this._bridgeServer = new BridgeServer(serverName, devMode); this._preCache = new PreCacheProvider(this.cacheFolder, this._sessionTask); this._preCache.delegate = this; - // - this.preCacheFor = this.preCacheFor.bind(this); - this.preCacheForList = this.preCacheForList.bind(this); - this.onCachingPlaylistSource = this.onCachingPlaylistSource.bind(this); - this.contain = this.contain.bind(this); - this.existsFile = this.existsFile.bind(this); - // - this.putCachedFile = this.putCachedFile.bind(this); - this.getCachedFile = this.getCachedFile.bind(this); - this.getCachedFileAsync = this.getCachedFileAsync.bind(this); - // - this.enableMemoryCache = this.enableMemoryCache.bind(this); - this.disableMemoryCache = this.disableMemoryCache.bind(this); - this.saveCacheToStorage = this.saveCacheToStorage.bind(this); - this.loadCacheFromStorage = this.loadCacheFromStorage.bind(this); - this.didEvictHandler = this.didEvictHandler.bind(this); - // - this.enableBridgeServer = this.enableBridgeServer.bind(this); - this.disableBridgeServer = this.disableBridgeServer.bind(this); - this.reverseProxyURL = this.reverseProxyURL.bind(this); - this.addRequestHandlers = this.addRequestHandlers.bind(this); - this.addPlaylistHandler = this.addPlaylistHandler.bind(this); - this.addSegmentHandler = this.addSegmentHandler.bind(this); - // } get memoryCache() { From 386f6687f1feb7806c765dd7f02aaa4cf1b16b11 Mon Sep 17 00:00:00 2001 From: Adam Segal Date: Fri, 24 Jan 2025 00:34:08 -0800 Subject: [PATCH 4/4] feat: add new LFUSizePolicy that manages allowable cache disk size --- src/Libs/fileSystem.ts | 8 + src/Provider/MemoryCacheLFUPolicy.ts | 1 + src/Provider/MemoryCacheLFUSizePolicy.ts | 197 +++++++++++++++++++++++ src/Provider/MemoryCacheProvider.ts | 5 +- src/Provider/index.ts | 1 + src/types/type.d.ts | 6 +- 6 files changed, 216 insertions(+), 2 deletions(-) create mode 100644 src/Provider/MemoryCacheLFUSizePolicy.ts diff --git a/src/Libs/fileSystem.ts b/src/Libs/fileSystem.ts index 5ced2ae..8a2ef0a 100644 --- a/src/Libs/fileSystem.ts +++ b/src/Libs/fileSystem.ts @@ -133,6 +133,14 @@ export class FileSystemManager { return {} as Awaited>; } + async getStatisticList(directory?: string) { + if (directory) { + const lstat = await FSManager.lstat(directory); + return lstat; + } + return [] as Awaited>; + } + async existsFile(forFile: string): Promise { // let key = cacheKey(forKey, folder); // check exist and ignore timestamp path diff --git a/src/Provider/MemoryCacheLFUPolicy.ts b/src/Provider/MemoryCacheLFUPolicy.ts index 6011e52..31920f7 100644 --- a/src/Provider/MemoryCacheLFUPolicy.ts +++ b/src/Provider/MemoryCacheLFUPolicy.ts @@ -13,6 +13,7 @@ import { * - LRU (Least Recently Used): The least recently used item is evicted. This policy is often used to keep recently accessed items in the cache. - LFU (Least Frequently Used): The least frequently used item is evicted. This policy is based on the number of accesses to each item. +- LFUSize (Least Frequently Used by Size): The least frequently used item is evicted. This bases the eviction check on cache directory size in MB. - FIFO (First-In-First-Out): The first item added to the cache is the first one to be evicted. This is a straightforward and easy-to-implement policy. - Random Replacement: A random item is selected for eviction. This policy does not consider access patterns and can lead to uneven cache performance. - MRU (Most Recently Used): The most recently used item is evicted. In contrast to LRU, MRU keeps the most recent item in the cache. diff --git a/src/Provider/MemoryCacheLFUSizePolicy.ts b/src/Provider/MemoryCacheLFUSizePolicy.ts new file mode 100644 index 0000000..9c4f801 --- /dev/null +++ b/src/Provider/MemoryCacheLFUSizePolicy.ts @@ -0,0 +1,197 @@ +import type { + MemoryCacheDelegate, + MemoryCachePolicyInterface, +} from '../types/type'; + +import { SECOND_CHANCE_TO_COUNT } from '../Utils/constants'; +import { + isNull, + mergeLargerNumber, + mergeWithCustomCondition, +} from '../Utils/util'; + +import { FileBucket, FileSystemManager } from '../Libs/fileSystem'; + +/** + * +- LFUSize (Least Recently Used by Size): The least recently used item is evicted. This bases the eviction check on cache directory size in MB. + */ +// LFUSize (Least Frequently Used by Size) replacement policy +export class LFUSizePolicy implements MemoryCachePolicyInterface { + private isEvicting = false; + private referenceBit: { [key in string]: number }; + private capacityBytes: number; + private storage: FileSystemManager; + + constructor(capacityMB: number) { + this.referenceBit = {} as { + [key in string]: number; + }; + this.capacityBytes = capacityMB * 1024 * 1024; // Convert MB to bytes + this.storage = new FileSystemManager(); + } + + clear(): void { + this.referenceBit = {}; + } + + removeEntry(key: string): void { + delete this.referenceBit[key]; + } + + onAccess(cache: Map, key: string) { + // Update access frequency for the item + const value = cache.get(key); + if (value) { + // mixed with LRU + cache.delete(key); + cache.set(key, value); + } + + // access to url, count it if need or give it a chance to be counted + this.referenceBit[key] = isNull(this.referenceBit[key]) + ? SECOND_CHANCE_TO_COUNT + : this.referenceBit[key]! + 1; + } + + async onEvict( + cache: Map, + delegate?: MemoryCacheDelegate, + triggerKey?: string + ) { + if (this.isEvicting) { + return; // Another eviction is in progress + } + try { + this.isEvicting = true; + + // Get current directory size + const files = await this.storage.getStatisticList( + this.storage.getBucketFolder(FileBucket.cache) + ); + + let totalSize = files.reduce( + (sum, file) => sum + parseInt(file.size as unknown as string, 10), + 0 + ); + + // console.log('::::::::::::::::: REFERENCE_BIT', this.referenceBit); + // console.log('::::::::::::::::: CACHE', Object.fromEntries(cache)); + + // Keep evicting least frequently used items until we're under capacity + let count = 0; + while (totalSize > this.capacityBytes) { + count++; + + // Don't evict if it's among last files, could be single giant file + // Don't try more than 10 files at a time per eviction check. + if (files.length <= 2 || count > 10) { + break; + } + + const evictedKey = this.findLFUKey(files, cache, triggerKey); + // console.log('::::::::::::: COUNT', count, ':::'); + // console.log('::::::::::::: EVICTKEY', count, evictedKey, ':::'); + // console.log('::::::::::::: FILES', count, files.length, ':::'); + + if (!evictedKey) { + // Nothing left to evict or only the trigger file remains + break; + } + + const cachedPath = cache.get(evictedKey); + // console.log('::::::::::::: CACHEPATH', count, cachedPath, ':::'); + if (!cachedPath) { + delete this.referenceBit[evictedKey]; // Clean up stale reference + continue; + } + + // Find the file size we're about to evict + const fileToEvict = files.find((f) => cachedPath.includes(f.filename)); + if (!fileToEvict) { + // File doesn't exist on disk, clean up stale reference + cache.delete(evictedKey); + delete this.referenceBit[evictedKey]; + continue; + } + + // Evict the file + cache.delete(evictedKey); + delete this.referenceBit[evictedKey]; + await delegate?.didEvictHandler(evictedKey, cachedPath); + + // Update our running total + totalSize -= fileToEvict.size; + // file must exist or -1 will remove last item + files.splice(files.indexOf(fileToEvict), 1); + + // console.log('::::::::::::: NewSize:', count, '||', totalSize, ':::'); + } + } finally { + this.isEvicting = false; + } + } + + private findLFUKey( + files: Array, + cache: Map, + excludeKey?: string + ): string | null { + let minFreq = Number.MAX_VALUE; + let lfuKey: string | null = null; + + for (const key in this.referenceBit) { + // Skip the file that triggered eviction + if (key === excludeKey) continue; + + const freq = this.referenceBit[key]; + if (freq && freq < minFreq) { + if (freq !== SECOND_CHANCE_TO_COUNT || lfuKey === null) { + minFreq = freq; + lfuKey = key; + } + } + } + + // If all items have equal frequency, use the oldest file + if (!lfuKey && Object.keys(this.referenceBit).length > 0) { + const eligibleFiles = files.filter((file) => { + if (excludeKey) { + const excludePath = cache.get(excludeKey); + return !excludePath?.includes(file.filename); + } + return true; + }); + + // Find the oldest file + const oldestFile = eligibleFiles.reduce((oldest, current) => { + return oldest.lastModified < current.lastModified ? oldest : current; + }); + + // Find the referenceBit key that corresponds to this file + // Find which cache entry has this filename + lfuKey = + Array.from(cache.entries()).find(([_, path]) => + path.includes(oldestFile.filename) + )?.[0] || + cache.keys().next().value || // fallback to first (oldest) key + null; + } + + return lfuKey; + } + + // + get dataSource(): { [key in string]: number } { + return this.referenceBit; + } + + set dataSource(data: { [key in string]: number }) { + const newDataSource = mergeWithCustomCondition( + this.referenceBit, + data, + mergeLargerNumber + ); + this.referenceBit = newDataSource; + } +} diff --git a/src/Provider/MemoryCacheProvider.ts b/src/Provider/MemoryCacheProvider.ts index 317da51..e78d520 100644 --- a/src/Provider/MemoryCacheProvider.ts +++ b/src/Provider/MemoryCacheProvider.ts @@ -31,6 +31,9 @@ export class MemoryCacheProvider implements MemoryCacheInterface { get(key: string): V | undefined { // Update access time or frequency based on the policy this.cachePolicy.onAccess(this.cache, key); + + this.cachePolicy.onEvict(this.cache, this.delegate, key); + return this.cache.get(key); } put(key: string, value: V): void { @@ -43,7 +46,7 @@ export class MemoryCacheProvider implements MemoryCacheInterface { // set for new key only, give it a chance to be counted this.cachePolicy.dataSource[key] = SECOND_CHANCE_TO_COUNT; // If the cache is full, apply the replacement policy to evict an item - this.cachePolicy.onEvict(this.cache, this.delegate); + this.cachePolicy.onEvict(this.cache, this.delegate, key); } this.cache.set(key, value); diff --git a/src/Provider/index.ts b/src/Provider/index.ts index 8333fea..b565ea7 100644 --- a/src/Provider/index.ts +++ b/src/Provider/index.ts @@ -1,4 +1,5 @@ export * from './MemoryCacheLFUPolicy'; +export * from './MemoryCacheLFUSizePolicy'; export * from './MemoryCacheProvider'; export * from './PreCacheProvider'; export * from './MemoryCacheFreePolicy'; diff --git a/src/types/type.d.ts b/src/types/type.d.ts index 8f29bdb..b1cdd54 100644 --- a/src/types/type.d.ts +++ b/src/types/type.d.ts @@ -49,7 +49,11 @@ export interface MemoryCacheDelegate { export interface MemoryCachePolicyInterface { // cache policy onAccess(cache: Map, key: string): void; - onEvict(cache: Map, delegate?: MemoryCacheDelegate): void; + onEvict( + cache: Map, + delegate?: MemoryCacheDelegate, + triggerKey?: string + ): void; clear(): void; removeEntry(key: string): void; //