From 5bfc52850c36ffe0de37e47066538a8a14dc9e01 Mon Sep 17 00:00:00 2001 From: Santhosh Vaiyapuri <3846977+santhoshvai@users.noreply.github.com> Date: Thu, 10 Oct 2024 17:20:44 +0200 Subject: [PATCH 01/15] fix: do not release track if track was not removed from stream (#1517) --- .../src/devices/InputMediaDeviceManager.ts | 9 +---- packages/client/src/devices/devices.ts | 6 ---- .../client/src/helpers/RNSpeechDetector.ts | 9 +---- packages/client/src/rtc/Publisher.ts | 35 ++++++------------- 4 files changed, 13 insertions(+), 46 deletions(-) diff --git a/packages/client/src/devices/InputMediaDeviceManager.ts b/packages/client/src/devices/InputMediaDeviceManager.ts index f5977c6762..0b13138165 100644 --- a/packages/client/src/devices/InputMediaDeviceManager.ts +++ b/packages/client/src/devices/InputMediaDeviceManager.ts @@ -279,14 +279,7 @@ export abstract class InputMediaDeviceManager< private stopTracks() { this.getTracks().forEach((track) => { - if (track.readyState === 'live') { - track.stop(); - // @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the track - if (typeof track.release === 'function') { - // @ts-expect-error - track.release(); - } - } + if (track.readyState === 'live') track.stop(); }); } diff --git a/packages/client/src/devices/devices.ts b/packages/client/src/devices/devices.ts index f0eacf008e..684da44b14 100644 --- a/packages/client/src/devices/devices.ts +++ b/packages/client/src/devices/devices.ts @@ -276,12 +276,6 @@ export const disposeOfMediaStream = (stream: MediaStream) => { if (!stream.active) return; stream.getTracks().forEach((track) => { track.stop(); - stream.removeTrack(track); - // @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the track - if (typeof track.release === 'function') { - // @ts-expect-error - track.release(); - } }); // @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the stream if (typeof stream.release === 'function') { diff --git a/packages/client/src/helpers/RNSpeechDetector.ts b/packages/client/src/helpers/RNSpeechDetector.ts index 97dba7aaa3..828ed1d155 100644 --- a/packages/client/src/helpers/RNSpeechDetector.ts +++ b/packages/client/src/helpers/RNSpeechDetector.ts @@ -106,14 +106,7 @@ export class RNSpeechDetector { if (!this.audioStream) { return; } - this.audioStream.getTracks().forEach((track) => { - track.stop(); - // @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the track - if (typeof track.release === 'function') { - // @ts-expect-error - track.release(); - } - }); + this.audioStream.getTracks().forEach((track) => track.stop()); if ( // @ts-expect-error release() is present in react-native-webrtc typeof this.audioStream.release === 'function' diff --git a/packages/client/src/rtc/Publisher.ts b/packages/client/src/rtc/Publisher.ts index af66f92c7c..8ef17b23a8 100644 --- a/packages/client/src/rtc/Publisher.ts +++ b/packages/client/src/rtc/Publisher.ts @@ -316,11 +316,6 @@ export class Publisher { if (previousTrack && previousTrack !== track) { previousTrack.stop(); previousTrack.removeEventListener('ended', handleTrackEnded); - // @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the track - if (typeof previousTrack.release === 'function') { - // @ts-expect-error - track.release(); - } track.addEventListener('ended', handleTrackEnded); } if (!track.enabled) { @@ -342,18 +337,16 @@ export class Publisher { const transceiver = this.pc .getTransceivers() .find((t) => t === this.transceiverRegistry[trackType] && t.sender.track); - const track = transceiver?.sender.track; - if (track && (stopTrack ? track.readyState === 'live' : track.enabled)) { - if (stopTrack) { - track.stop(); - // @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the track - if (typeof track.release === 'function') { - // @ts-expect-error - track.release(); - } - } else { - track.enabled = false; - } + if ( + transceiver && + transceiver.sender.track && + (stopTrack + ? transceiver.sender.track.readyState === 'live' + : transceiver.sender.track.enabled) + ) { + stopTrack + ? transceiver.sender.track.stop() + : (transceiver.sender.track.enabled = false); // We don't need to notify SFU if unpublishing in response to remote soft mute if (this.state.localParticipant?.publishedTracks.includes(trackType)) { await this.notifyTrackMuteStateChanged(undefined, trackType, true); @@ -406,13 +399,7 @@ export class Publisher { private stopPublishing = () => { this.logger('debug', 'Stopping publishing all tracks'); this.pc.getSenders().forEach((s) => { - const track = s.track; - track?.stop(); - // @ts-expect-error release() is present in react-native-webrtc and must be called to dispose the track - if (typeof track?.release === 'function') { - // @ts-expect-error - track.release(); - } + s.track?.stop(); if (this.pc.signalingState !== 'closed') { this.pc.removeTrack(s); } From 017ff2b053f0a536fe2bf877ed1cb987323cf774 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Thu, 10 Oct 2024 15:23:36 +0000 Subject: [PATCH 02/15] chore(@stream-io/video-client): release version 1.8.3 --- packages/client/CHANGELOG.md | 7 +++++++ packages/client/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index 1e0cfca737..2b611a5538 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -2,6 +2,13 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +## [1.8.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.8.2...@stream-io/video-client-1.8.3) (2024-10-10) + + +### Bug Fixes + +* do not release track if track was not removed from stream ([#1517](https://github.com/GetStream/stream-video-js/issues/1517)) ([5bfc528](https://github.com/GetStream/stream-video-js/commit/5bfc52850c36ffe0de37e47066538a8a14dc9e01)) + ## [1.8.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-client-1.8.1...@stream-io/video-client-1.8.2) (2024-10-10) diff --git a/packages/client/package.json b/packages/client/package.json index a045aa715b..09d3e14105 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-client", - "version": "1.8.2", + "version": "1.8.3", "packageManager": "yarn@3.2.4", "main": "dist/index.cjs.js", "module": "dist/index.es.js", From 9b1185308c3c8ee5582cb036300402672cb638ce Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Thu, 10 Oct 2024 15:24:00 +0000 Subject: [PATCH 03/15] chore(@stream-io/video-react-bindings): release version 1.1.3 --- packages/react-bindings/CHANGELOG.md | 5 +++++ packages/react-bindings/package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react-bindings/CHANGELOG.md b/packages/react-bindings/CHANGELOG.md index 6b3a64ddb5..86ff8e62ac 100644 --- a/packages/react-bindings/CHANGELOG.md +++ b/packages/react-bindings/CHANGELOG.md @@ -2,6 +2,11 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +## [1.1.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-1.1.2...@stream-io/video-react-bindings-1.1.3) (2024-10-10) + +### Dependency Updates + +* `@stream-io/video-client` updated to version `1.8.3` ## [1.1.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-bindings-1.1.1...@stream-io/video-react-bindings-1.1.2) (2024-10-10) ### Dependency Updates diff --git a/packages/react-bindings/package.json b/packages/react-bindings/package.json index 224b5ea1e1..622bf76c44 100644 --- a/packages/react-bindings/package.json +++ b/packages/react-bindings/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-react-bindings", - "version": "1.1.2", + "version": "1.1.3", "packageManager": "yarn@3.2.4", "main": "./dist/index.cjs.js", "module": "./dist/index.es.js", From 007d2d65b4613b49f4d91b8bc76374ec4ea3f259 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Thu, 10 Oct 2024 15:24:08 +0000 Subject: [PATCH 04/15] chore(@stream-io/video-react-sdk): release version 1.6.5 --- packages/react-sdk/CHANGELOG.md | 6 ++++++ packages/react-sdk/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/react-sdk/CHANGELOG.md b/packages/react-sdk/CHANGELOG.md index 14a2f499f1..4d3ba3e61e 100644 --- a/packages/react-sdk/CHANGELOG.md +++ b/packages/react-sdk/CHANGELOG.md @@ -2,6 +2,12 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +## [1.6.5](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.6.4...@stream-io/video-react-sdk-1.6.5) (2024-10-10) + +### Dependency Updates + +* `@stream-io/video-client` updated to version `1.8.3` +* `@stream-io/video-react-bindings` updated to version `1.1.3` ## [1.6.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.6.3...@stream-io/video-react-sdk-1.6.4) (2024-10-10) ### Dependency Updates diff --git a/packages/react-sdk/package.json b/packages/react-sdk/package.json index 6c6172d6a7..314d9ec7cb 100644 --- a/packages/react-sdk/package.json +++ b/packages/react-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-react-sdk", - "version": "1.6.4", + "version": "1.6.5", "packageManager": "yarn@3.2.4", "main": "./dist/index.cjs.js", "module": "./dist/index.es.js", From 1df1fdccda45e4d497385dd1a2c74e0f57623e62 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Thu, 10 Oct 2024 15:24:27 +0000 Subject: [PATCH 05/15] chore(@stream-io/video-react-native-sdk): release version 1.1.4 --- packages/react-native-sdk/CHANGELOG.md | 6 ++++++ packages/react-native-sdk/package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/react-native-sdk/CHANGELOG.md b/packages/react-native-sdk/CHANGELOG.md index 677380093b..c96d0292e6 100644 --- a/packages/react-native-sdk/CHANGELOG.md +++ b/packages/react-native-sdk/CHANGELOG.md @@ -2,6 +2,12 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +## [1.1.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.3...@stream-io/video-react-native-sdk-1.1.4) (2024-10-10) + +### Dependency Updates + +* `@stream-io/video-client` updated to version `1.8.3` +* `@stream-io/video-react-bindings` updated to version `1.1.3` ## [1.1.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.2...@stream-io/video-react-native-sdk-1.1.3) (2024-10-10) ### Dependency Updates diff --git a/packages/react-native-sdk/package.json b/packages/react-native-sdk/package.json index fa7478dc21..15c4119153 100644 --- a/packages/react-native-sdk/package.json +++ b/packages/react-native-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-react-native-sdk", - "version": "1.1.3", + "version": "1.1.4", "packageManager": "yarn@3.2.4", "main": "dist/commonjs/index.js", "module": "dist/module/index.js", From b7906d9952eaa840453ca02269ca7387609f774a Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Thu, 10 Oct 2024 15:24:50 +0000 Subject: [PATCH 06/15] chore(@stream-io/video-react-native-dogfood): release version 4.3.10 --- sample-apps/react-native/dogfood/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample-apps/react-native/dogfood/package.json b/sample-apps/react-native/dogfood/package.json index 820bfd044e..2b4c0ed99a 100644 --- a/sample-apps/react-native/dogfood/package.json +++ b/sample-apps/react-native/dogfood/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-react-native-dogfood", - "version": "4.3.9", + "version": "4.3.10", "private": true, "scripts": { "android": "react-native run-android", From 9b1121966d3e3f7610fbbca386b8837563203e86 Mon Sep 17 00:00:00 2001 From: Oliver Lazoroski Date: Mon, 14 Oct 2024 14:43:10 +0200 Subject: [PATCH 07/15] fix: check for user capabilities before rendering call control buttons (#1513) Adds OwnCapability checks on the Call Control buttons. They shouldn't be rendered at all when certain user capabilities are not present. ## Fixes When browser permissions are not granted, and the user doesn't have `send-video` or `send-audio` permissions, the `CallControls` component is still prompting for browser permissions. The reason for this prompt is - these buttons use `useMicrophoneState()` and `useCameraState()` hooks that trigger these prompts. Fixing this in the buttons component will require a bit of refactoring, so I'm opting for this less ideal and simple fix. --- .../components/CallControls/CallControls.tsx | 31 ++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/packages/react-sdk/src/components/CallControls/CallControls.tsx b/packages/react-sdk/src/components/CallControls/CallControls.tsx index e897dfa6d9..b7a09e1175 100644 --- a/packages/react-sdk/src/components/CallControls/CallControls.tsx +++ b/packages/react-sdk/src/components/CallControls/CallControls.tsx @@ -1,3 +1,5 @@ +import { OwnCapability } from '@stream-io/video-client'; +import { Restricted } from '@stream-io/video-react-bindings'; import { SpeakingWhileMutedNotification } from '../Notification'; import { RecordCallButton } from './RecordCallButton'; import { ReactionsButton } from './ReactionsButton'; @@ -12,13 +14,28 @@ export type CallControlsProps = { export const CallControls = ({ onLeave }: CallControlsProps) => (
- - - - - - - + + + + + + + + + + + + + + + + +
); From 4b12c61111ed8cffea82a500dfc9ce07dba1d525 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Mon, 14 Oct 2024 12:46:05 +0000 Subject: [PATCH 08/15] chore(@stream-io/video-react-sdk): release version 1.6.6 --- packages/react-sdk/CHANGELOG.md | 7 +++++++ packages/react-sdk/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/react-sdk/CHANGELOG.md b/packages/react-sdk/CHANGELOG.md index 4d3ba3e61e..8a17f925e0 100644 --- a/packages/react-sdk/CHANGELOG.md +++ b/packages/react-sdk/CHANGELOG.md @@ -2,6 +2,13 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +## [1.6.6](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.6.5...@stream-io/video-react-sdk-1.6.6) (2024-10-14) + + +### Bug Fixes + +* check for user capabilities before rendering call control buttons ([#1513](https://github.com/GetStream/stream-video-js/issues/1513)) ([9b11219](https://github.com/GetStream/stream-video-js/commit/9b1121966d3e3f7610fbbca386b8837563203e86)) + ## [1.6.5](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-sdk-1.6.4...@stream-io/video-react-sdk-1.6.5) (2024-10-10) ### Dependency Updates diff --git a/packages/react-sdk/package.json b/packages/react-sdk/package.json index 314d9ec7cb..8b7a05eb35 100644 --- a/packages/react-sdk/package.json +++ b/packages/react-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-react-sdk", - "version": "1.6.5", + "version": "1.6.6", "packageManager": "yarn@3.2.4", "main": "./dist/index.cjs.js", "module": "./dist/index.es.js", From 35ed5238e771eaa1793eac1fc8f11e0009ac8448 Mon Sep 17 00:00:00 2001 From: Kristian Date: Tue, 15 Oct 2024 11:18:53 +0200 Subject: [PATCH 09/15] chore: Upgrade to expo version 51 (#1518) - Upgrades the expo version in the `expo-video-sample app` to 51 - Fixes android startup issues related with the notifee dependency --- .../expo-video-sample/android/.gitignore | 1 + .../android/app/build.gradle | 39 +- .../android/app/src/main/AndroidManifest.xml | 6 +- .../expovideosample/MainApplication.kt | 12 +- .../res/drawable/rn_edit_text_material.xml | 3 +- .../expo-video-sample/android/build.gradle | 8 +- .../android/gradle.properties | 6 +- .../android/gradle/wrapper/gradle-wrapper.jar | Bin 63721 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../expo-video-sample/android/gradlew.bat | 21 +- .../react-settings-plugin/build.gradle.kts | 19 + .../expo/plugins/ReactSettingsPlugin.kt | 10 + .../expo-video-sample/android/settings.gradle | 52 +- .../react-native/expo-video-sample/app.json | 8 +- .../expo-video-sample/ios/Info.plist | 88 - .../expo-video-sample/ios/Podfile | 51 +- .../expo-video-sample/ios/Podfile.lock | 1135 ++++++---- .../ios/Podfile.properties.json | 1 - .../expovideosample.xcodeproj/project.pbxproj | 308 +-- .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../ios/expovideosample/AppDelegate.mm | 4 +- .../ios/expovideosample/Info.plist | 12 +- .../ios/expovideosample/PrivacyInfo.xcprivacy | 50 + .../ios/expovideosample/Supporting/Expo.plist | 2 +- .../expo-video-sample/package.json | 34 +- yarn.lock | 1963 ++++++++++++----- 26 files changed, 2493 insertions(+), 1350 deletions(-) create mode 100644 sample-apps/react-native/expo-video-sample/android/react-settings-plugin/build.gradle.kts create mode 100644 sample-apps/react-native/expo-video-sample/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt delete mode 100644 sample-apps/react-native/expo-video-sample/ios/Info.plist delete mode 100644 sample-apps/react-native/expo-video-sample/ios/expovideosample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 sample-apps/react-native/expo-video-sample/ios/expovideosample/PrivacyInfo.xcprivacy diff --git a/sample-apps/react-native/expo-video-sample/android/.gitignore b/sample-apps/react-native/expo-video-sample/android/.gitignore index 877b87e9a5..8a6be07718 100644 --- a/sample-apps/react-native/expo-video-sample/android/.gitignore +++ b/sample-apps/react-native/expo-video-sample/android/.gitignore @@ -10,6 +10,7 @@ build/ local.properties *.iml *.hprof +.cxx/ # Bundle artifacts *.jsbundle diff --git a/sample-apps/react-native/expo-video-sample/android/app/build.gradle b/sample-apps/react-native/expo-video-sample/android/app/build.gradle index 67786b4df9..efdaeeead7 100644 --- a/sample-apps/react-native/expo-video-sample/android/app/build.gradle +++ b/sample-apps/react-native/expo-video-sample/android/app/build.gradle @@ -4,6 +4,27 @@ apply plugin: "com.facebook.react" def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() +static def versionToNumber(major, minor, patch) { + return patch * 100 + minor * 10000 + major * 1000000 +} + +def getRNVersion() { + def version = providers.exec { + workingDir(projectDir) + commandLine("node", "-e", "console.log(require('react-native/package.json').version);") + }.standardOutput.asText.get().trim() + + def coreVersion = version.split("-")[0] + def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() } + + return versionToNumber( + major, + minor, + patch + ) +} +def rnVersion = getRNVersion() + /** * This is the configuration block to customize your React Native Android app. * By default you don't need to apply any configuration, just uncomment the lines you need. @@ -57,6 +78,11 @@ react { // // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" // hermesFlags = ["-O", "-output-source-map"] + + if (rnVersion >= versionToNumber(0, 75, 0)) { + /* Autolinking */ + autolinkLibrariesWithApp() + } } /** @@ -95,8 +121,6 @@ android { targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0.0" - - buildConfigField("boolean", "REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS", (findProperty("reactNative.unstable_useRuntimeSchedulerAlways") ?: true).toString()) } signingConfigs { debug { @@ -117,6 +141,7 @@ android { shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false) minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + crunchPngs (findProperty('android.enablePngCrunchInReleaseBuilds')?.toBoolean() ?: true) } } packagingOptions { @@ -168,16 +193,18 @@ dependencies { } } - implementation("com.facebook.react:flipper-integration") - if (hermesEnabled.toBoolean()) { implementation("com.facebook.react:hermes-android") } else { implementation jscFlavor } + + implementation project(':notifee_react-native') } -apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); -applyNativeModulesAppBuildGradle(project) +if (rnVersion < versionToNumber(0, 75, 0)) { + apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); + applyNativeModulesAppBuildGradle(project) +} apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/sample-apps/react-native/expo-video-sample/android/app/src/main/AndroidManifest.xml b/sample-apps/react-native/expo-video-sample/android/app/src/main/AndroidManifest.xml index 83aecde96c..c6e6e2c383 100644 --- a/sample-apps/react-native/expo-video-sample/android/app/src/main/AndroidManifest.xml +++ b/sample-apps/react-native/expo-video-sample/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ - + @@ -15,7 +15,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/sample-apps/react-native/expo-video-sample/android/app/src/main/java/io/getstream/expovideosample/MainApplication.kt b/sample-apps/react-native/expo-video-sample/android/app/src/main/java/io/getstream/expovideosample/MainApplication.kt index 82e09215f2..19488a0561 100644 --- a/sample-apps/react-native/expo-video-sample/android/app/src/main/java/io/getstream/expovideosample/MainApplication.kt +++ b/sample-apps/react-native/expo-video-sample/android/app/src/main/java/io/getstream/expovideosample/MainApplication.kt @@ -2,18 +2,14 @@ package io.getstream.expovideosample import android.app.Application import android.content.res.Configuration -import androidx.annotation.NonNull import com.facebook.react.PackageList import com.facebook.react.ReactApplication import com.facebook.react.ReactNativeHost import com.facebook.react.ReactPackage import com.facebook.react.ReactHost -import com.facebook.react.config.ReactFeatureFlags import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load -import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.react.flipper.ReactNativeFlipper import com.facebook.soloader.SoLoader import expo.modules.ApplicationLifecycleDispatcher @@ -40,21 +36,15 @@ class MainApplication : Application(), ReactApplication { ) override val reactHost: ReactHost - get() = getDefaultReactHost(this.applicationContext, reactNativeHost) + get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost) override fun onCreate() { super.onCreate() SoLoader.init(this, false) - if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) { - ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false - } if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { // If you opted-in for the New Architecture, we load the native entry point for this app. load() } - if (BuildConfig.DEBUG) { - ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) - } ApplicationLifecycleDispatcher.onApplicationCreate(this) } diff --git a/sample-apps/react-native/expo-video-sample/android/app/src/main/res/drawable/rn_edit_text_material.xml b/sample-apps/react-native/expo-video-sample/android/app/src/main/res/drawable/rn_edit_text_material.xml index 73b37e4d99..5c25e728ea 100644 --- a/sample-apps/react-native/expo-video-sample/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ b/sample-apps/react-native/expo-video-sample/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -17,7 +17,8 @@ android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material" android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" android:insetTop="@dimen/abc_edit_text_inset_top_material" - android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> + android:insetBottom="@dimen/abc_edit_text_inset_bottom_material" + > Dly_^lOSy&zIIhm*HXm1?VS=_iacG);_I9c zUQH1>i#*?oPIwBMJkzi_*>HoUe}_4o>2(SHWzqQ=;TyhAHS;Enr7!#8;sdlty&(>d zl%5cjri8`2X^Ds`jnw7>A`X|bl=U8n+3LKLy(1dAu8`g@9=5iw$R0qk)w8Vh_Dt^U zIglK}sn^)W7aB(Q>HvrX=rxB z+*L)3DiqpQ_%~|m=44LcD4-bxO3OO*LPjsh%p(k?&jvLp0py57oMH|*IMa(<|{m1(0S|x)?R-mqJ=I;_YUZA>J z62v*eSK;5w!h8J+6Z2~oyGdZ68waWfy09?4fU&m7%u~zi?YPHPgK6LDwphgaYu%0j zurtw)AYOpYKgHBrkX189mlJ`q)w-f|6>IER{5Lk97%P~a-JyCRFjejW@L>n4vt6#hq;!|m;hNE||LK3nw1{bJOy+eBJjK=QqNjI;Q6;Rp5 z&035pZDUZ#%Oa;&_7x0T<7!RW`#YBOj}F380Bq?MjjEhrvlCATPdkCTTl+2efTX$k zH&0zR1n^`C3ef~^sXzJK-)52(T}uTG%OF8yDhT76L~|^+hZ2hiSM*QA9*D5odI1>& z9kV9jC~twA5MwyOx(lsGD_ggYmztXPD`2=_V|ks_FOx!_J8!zM zTzh^cc+=VNZ&(OdN=y4Juw)@8-85lwf_#VMN!Ed(eQiRiLB2^2e`4dp286h@v@`O%_b)Y~A; zv}r6U?zs&@uD_+(_4bwoy7*uozNvp?bXFoB8?l8yG0qsm1JYzIvB_OH4_2G*IIOwT zVl%HX1562vLVcxM_RG*~w_`FbIc!(T=3>r528#%mwwMK}uEhJ()3MEby zQQjzqjWkwfI~;Fuj(Lj=Ug0y`>~C7`w&wzjK(rPw+Hpd~EvQ-ufQOiB4OMpyUKJhw zqEt~jle9d7S~LI~$6Z->J~QJ{Vdn3!c}g9}*KG^Kzr^(7VI5Gk(mHLL{itj_hG?&K4Ws0+T4gLfi3eu$N=`s36geNC?c zm!~}vG6lx9Uf^5M;bWntF<-{p^bruy~f?sk9 zcETAPQZLoJ8JzMMg<-=ju4keY@SY%Wo?u9Gx=j&dfa6LIAB|IrbORLV1-H==Z1zCM zeZcOYpm5>U2fU7V*h;%n`8 zN95QhfD994={1*<2vKLCNF)feKOGk`R#K~G=;rfq}|)s20&MCa65 zUM?xF5!&e0lF%|U!#rD@I{~OsS_?=;s_MQ_b_s=PuWdC)q|UQ&ea)DMRh5>fpQjXe z%9#*x=7{iRCtBKT#H>#v%>77|{4_slZ)XCY{s3j_r{tdpvb#|r|sbS^dU1x70$eJMU!h{Y7Kd{dl}9&vxQl6Jt1a` zHQZrWyY0?!vqf@u-fxU_@+}u(%Wm>0I#KP48tiAPYY!TdW(o|KtVI|EUB9V`CBBNaBLVih7+yMVF|GSoIQD0Jfb{ z!OXq;(>Z?O`1gap(L~bUcp>Lc@Jl-})^=6P%<~~9ywY=$iu8pJ0m*hOPzr~q`23eX zgbs;VOxxENe0UMVeN*>uCn9Gk!4siN-e>x)pIKAbQz!G)TcqIJ0`JBBaX>1-4_XO_-HCS^vr2vjv#7KltDZdyQ{tlWh4$Gm zB>|O1cBDC)yG(sbnc*@w6e%e}r*|IhpXckx&;sQCwGdKH+3oSG-2)Bf#x`@<4ETAr z0My%7RFh6ZLiZ_;X6Mu1YmXx7C$lSZ^}1h;j`EZd6@%JNUe=btBE z%s=Xmo1Ps?8G`}9+6>iaB8bgjUdXT?=trMu|4yLX^m0Dg{m7rpKNJey|EwHI+nN1e zL^>qN%5Fg)dGs4DO~uwIdXImN)QJ*Jhpj7$fq_^`{3fwpztL@WBB}OwQ#Epo-mqMO zsM$UgpFiG&d#)lzEQ{3Q;)&zTw;SzGOah-Dpm{!q7<8*)Ti_;xvV2TYXa}=faXZy? z3y?~GY@kl)>G&EvEijk9y1S`*=zBJSB1iet>0;x1Ai)*`^{pj0JMs)KAM=@UyOGtO z3y0BouW$N&TnwU6!%zS%nIrnANvZF&vB1~P5_d`x-giHuG zPJ;>XkVoghm#kZXRf>qxxEix;2;D1CC~NrbO6NBX!`&_$iXwP~P*c($EVV|669kDO zKoTLZNF4Cskh!Jz5ga9uZ`3o%7Pv`d^;a=cXI|>y;zC3rYPFLQkF*nv(r>SQvD*## z(Vo%^9g`%XwS0t#94zPq;mYGLKu4LU3;txF26?V~A0xZbU4Lmy`)>SoQX^m7fd^*E z+%{R4eN!rIk~K)M&UEzxp9dbY;_I^c} zOc{wlIrN_P(PPqi51k_$>Lt|X6A^|CGYgKAmoI#Li?;Wq%q~q*L7ehZkUrMxW67Jl zhsb~+U?33QS>eqyN{(odAkbopo=Q$Az?L+NZW>j;#~@wCDX?=L5SI|OxI~7!Pli;e zELMFcZtJY3!|=Gr2L4>z8yQ-{To>(f80*#;6`4IAiqUw`=Pg$%C?#1 z_g@hIGerILSU>=P>z{gM|DS91A4cT@PEIB^hSop!uhMo#2G;+tQSpDO_6nOnPWSLU zS;a9m^DFMXR4?*X=}d7l;nXuHk&0|m`NQn%d?8|Ab3A9l9Jh5s120ibWBdB z$5YwsK3;wvp!Kn@)Qae{ef`0#NwlRpQ}k^r>yos_Ne1;xyKLO?4)t_G4eK~wkUS2A&@_;)K0-03XGBzU+5f+uMDxC z(s8!8!RvdC#@`~fx$r)TKdLD6fWEVdEYtV#{ncT-ZMX~eI#UeQ-+H(Z43vVn%Yj9X zLdu9>o%wnWdvzA-#d6Z~vzj-}V3FQ5;axDIZ;i(95IIU=GQ4WuU{tl-{gk!5{l4_d zvvb&uE{%!iFwpymz{wh?bKr1*qzeZb5f6e6m_ozRF&zux2mlK=v_(_s^R6b5lu?_W4W3#<$zeG~Pd)^!4tzhs}-Sx$FJP>)ZGF(hVTH|C3(U zs0PO&*h_ zNA-&qZpTP$$LtIgfiCn07}XDbK#HIXdmv8zdz4TY;ifNIH-0jy(gMSByG2EF~Th#eb_TueZC` zE?3I>UTMpKQ})=C;6p!?G)M6w^u*A57bD?2X`m3X^6;&4%i_m(uGJ3Z5h`nwxM<)H z$I5m?wN>O~8`BGnZ=y^p6;0+%_0K}Dcg|K;+fEi|qoBqvHj(M&aHGqNF48~XqhtU? z^ogwBzRlOfpAJ+Rw7IED8lRbTdBdyEK$gPUpUG}j-M42xDj_&qEAQEtbs>D#dRd7Y z<&TpSZ(quQDHiCFn&0xsrz~4`4tz!CdL8m~HxZM_agu@IrBpyeL1Ft}V$HX_ZqDPm z-f89)pjuEzGdq-PRu`b1m+qBGY{zr_>{6Ss>F|xHZlJj9dt5HD$u`1*WZe)qEIuDSR)%z+|n zatVlhQ?$w#XRS7xUrFE;Y8vMGhQS5*T{ZnY=q1P?w5g$OKJ#M&e??tAmPWHMj3xhS ziGxapy?kn@$~2%ZY;M8Bc@%$pkl%Rvj!?o%agBvpQ-Q61n9kznC4ttrRNQ4%GFR5u zyv%Yo9~yxQJWJSfj z?#HY$y=O~F|2pZs22pu|_&Ajd+D(Mt!nPUG{|1nlvP`=R#kKH zO*s$r_%ss5h1YO7k0bHJ2CXN)Yd6CHn~W!R=SqkWe=&nAZu(Q1G!xgcUilM@YVei@2@a`8he z9@pM`)VB*=e7-MWgLlXlc)t;fF&-AwM{E-EX}pViFn0I0CNw2bNEnN2dj!^4(^zS3 zobUm1uQnpqk_4q{pl*n06=TfK_C>UgurKFjRXsK_LEn};=79`TB12tv6KzwSu*-C8 z;=~ohDLZylHQ|Mpx-?yql>|e=vI1Z!epyUpAcDCp4T|*RV&X`Q$0ogNwy6mFALo^@ z9=&(9txO8V@E!@6^(W0{*~CT>+-MA~vnJULBxCTUW>X5>r7*eXYUT0B6+w@lzw%n> z_VjJ<2qf|(d6jYq2(x$(ZDf!yVkfnbvNmb5c|hhZ^2TV_LBz`9w!e_V*W_(MiA7|= z&EeIIkw*+$Xd!)j8<@_<}A5;~A_>3JT*kX^@}cDoLd>Qj<`Se^wdUa(j0dp+Tl8EptwBm{9OGsdFEq zM`!pjf(Lm(`$e3FLOjqA5LnN5o!}z{ zNf}rJuZh@yUtq&ErjHeGzX4(!luV!jB&;FAP|!R_QHYw#^Z1LwTePAKJ6X&IDNO#; z)#I@Xnnzyij~C@UH~X51JCgQeF0&hTXnuoElz#m{heZRexWc0k4<>0+ClX7%0 zEBqCCld1tD9Zwkr4{?Nor19#E5-YKfB8d?qgR82-Ow2^AuNevly2*tHA|sK!ybYkX zm-sLQH72P&{vEAW6+z~O5d0qd=xW~rua~5a?ymYFSD@8&gV)E5@RNNBAj^C99+Z5Z zR@Pq55mbCQbz+Mn$d_CMW<-+?TU960agEk1J<>d>0K=pF19yN))a~4>m^G&tc*xR+yMD*S=yip-q=H zIlredHpsJV8H(32@Zxc@bX6a21dUV95Th--8pE6C&3F>pk=yv$yd6@Haw;$v4+Fcb zRwn{Qo@0`7aPa2LQOP}j9v>sjOo5Kqvn|`FLizX zB+@-u4Lw|jsvz{p^>n8Vo8H2peIqJJnMN}A)q6%$Tmig7eu^}K2 zrh$X?T|ZMsoh{6pdw1G$_T<`Ds-G=jc;qcGdK4{?dN2-XxjDNbb(7pk|3JUVCU4y; z)?LXR>f+AAu)JEiti_Zy#z5{RgsC}R(@jl%9YZ>zu~hKQ*AxbvhC378-I@{~#%Y`Z zy=a=9YpewPIC+gkEUUwtUL7|RU7=!^Aa}Mk^6uxOgRGA#JXjWLsjFUnix|Mau{hDT z7mn*z1m5g`vP(#tjT0Zy4eAY(br&!RiiXE=ZI!{sE1#^#%x^Z7t1U)b<;%Y}Q9=5v z;wpDCEZ@OE36TWT=|gxigT@VaW9BvHS05;_P(#s z8zI4XFQys}q)<`tkX$WnSarn{3e!s}4(J!=Yf>+Y>cP3f;vr63f2{|S^`_pWc)^5_!R z*(x-fuBxL51@xe!lnDBKi}Br$c$BMZ3%f2Sa6kLabiBS{pq*yj;q|k(86x`PiC{p6 z_bxCW{>Q2BA8~Ggz&0jkrcU+-$ANBsOop*ms>34K9lNYil@}jC;?cYP(m^P}nR6FV zk(M%48Z&%2Rx$A&FhOEirEhY0(dn;-k(qkTU)sFQ`+-ih+s@A8g?r8Pw+}2;35WYf zi}VO`jS`p(tc)$X$a>-#WXoW!phhatC*$}|rk>|wUU71eUJG^$c6_jwX?iSHM@6__ zvV|6%U*$sSXJu9SX?2%M^kK|}a2QJ8AhF{fuXrHZxXsI~O zGKX45!K7p*MCPEQ=gp?eu&#AW*pR{lhQR##P_*{c_DjMGL|3T3-bSJ(o$|M{ytU}> zAV>wq*uE*qFo9KvnA^@juy{x<-u*#2NvkV={Ly}ysKYB-k`K3@K#^S1Bb$8Y#0L0# z`6IkSG&|Z$ODy|VLS+y5pFJx&8tvPmMd8c9FhCyiU8~k6FwkakUd^(_ml8`rnl>JS zZV){9G*)xBqPz^LDqRwyS6w86#D^~xP4($150M)SOZRe9sn=>V#aG0Iy(_^YcPpIz8QYM-#s+n% z@Jd?xQq?Xk6=<3xSY7XYP$$yd&Spu{A#uafiIfy8gRC`o0nk{ezEDjb=q_qRAlR1d zFq^*9Gn)yTG4b}R{!+3hWQ+u3GT~8nwl2S1lpw`s0X_qpxv)g+JIkVKl${sYf_nV~B>Em>M;RlqGb5WVil(89 zs=ld@|#;dq1*vQGz=7--Br-|l) zZ%Xh@v8>B7P?~}?Cg$q9_={59l%m~O&*a6TKsCMAzG&vD>k2WDzJ6!tc!V)+oxF;h zJH;apM=wO?r_+*#;ulohuP=E>^zon}a$NnlcQ{1$SO*i=jnGVcQa^>QOILc)e6;eNTI>os=eaJ{*^DE+~jc zS}TYeOykDmJ=6O%>m`i*>&pO_S;qMySJIyP=}4E&J%#1zju$RpVAkZbEl+p%?ZP^C z*$$2b4t%a(e+%>a>d_f_<JjxI#J1x;=hPd1zFPx=6T$;;X1TD*2(edZ3f46zaAoW>L53vS_J*N8TMB|n+;LD| zC=GkQPpyDY#Am4l49chDv*gojhRj_?63&&8#doW`INATAo(qY#{q}%nf@eTIXmtU< zdB<7YWfyCmBs|c)cK>1)v&M#!yNj#4d$~pVfDWQc_ke1?fw{T1Nce_b`v|Vp5ig(H zJvRD^+ps46^hLX;=e2!2e;w9y1D@!D$c@Jc&%%%IL=+xzw55&2?darw=9g~>P z9>?Kdc$r?6c$m%x2S$sdpPl>GQZ{rC9mPS63*qjCVa?OIBj!fW zm|g?>CVfGXNjOfcyqImXR_(tXS(F{FcoNzKvG5R$IgGaxC@)i(e+$ME}vPVIhd|mx2IIE+f zM?9opQHIVgBWu)^A|RzXw!^??S!x)SZOwZaJkGjc<_}2l^eSBm!eAJG9T>EC6I_sy z?bxzDIAn&K5*mX)$RQzDA?s)-no-XF(g*yl4%+GBf`##bDXJ==AQk*xmnatI;SsLp zP9XTHq5mmS=iWu~9ES>b%Q=1aMa|ya^vj$@qz9S!ih{T8_PD%Sf_QrNKwgrXw9ldm zHRVR98*{C?_XNpJn{abA!oix_mowRMu^2lV-LPi;0+?-F(>^5#OHX-fPED zCu^l7u3E%STI}c4{J2!)9SUlGP_@!d?5W^QJXOI-Ea`hFMKjR7TluLvzC-ozCPn1`Tpy z!vlv@_Z58ILX6>nDjTp-1LlFMx~-%GA`aJvG$?8*Ihn;mH37eK**rmOEwqegf-Ccx zrIX4;{c~RK>XuTXxYo5kMiWMy)!IC{*DHG@E$hx?RwP@+wuad(P1{@%tRkyJRqD)3 zMHHHZ4boqDn>-=DgR5VlhQTpfVy182Gk;A_S8A1-;U1RR>+$62>(MUx@Nox$vTjHq z%QR=j!6Gdyb5wu7y(YUktwMuW5<@jl?m4cv4BODiT5o8qVdC0MBqGr@-YBIwnpZAY znX9(_uQjP}JJ=!~Ve9#5I~rUnN|P_3D$LqZcvBnywYhjlMSFHm`;u9GPla{5QD7(7*6Tb3Svr8;(nuAd81q$*uq6HC_&~je*Ca7hP4sJp0av{M8480wF zxASi7Qv+~@2U%Nu1Ud;s-G4CTVWIPyx!sg&8ZG0Wq zG_}i3C(6_1>q3w!EH7$Kwq8uBp2F2N7}l65mk1p*9v0&+;th=_E-W)E;w}P(j⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc diff --git a/sample-apps/react-native/expo-video-sample/android/gradle/wrapper/gradle-wrapper.properties b/sample-apps/react-native/expo-video-sample/android/gradle/wrapper/gradle-wrapper.properties index d11cdd907d..6f7a6eb33e 100644 --- a/sample-apps/react-native/expo-video-sample/android/gradle/wrapper/gradle-wrapper.properties +++ b/sample-apps/react-native/expo-video-sample/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/sample-apps/react-native/expo-video-sample/android/gradlew.bat b/sample-apps/react-native/expo-video-sample/android/gradlew.bat index 53a6b238d4..7101f8e467 100644 --- a/sample-apps/react-native/expo-video-sample/android/gradlew.bat +++ b/sample-apps/react-native/expo-video-sample/android/gradlew.bat @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -42,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -56,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/sample-apps/react-native/expo-video-sample/android/react-settings-plugin/build.gradle.kts b/sample-apps/react-native/expo-video-sample/android/react-settings-plugin/build.gradle.kts new file mode 100644 index 0000000000..b4f6668e9e --- /dev/null +++ b/sample-apps/react-native/expo-video-sample/android/react-settings-plugin/build.gradle.kts @@ -0,0 +1,19 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") version "1.9.24" + id("java-gradle-plugin") +} + +repositories { + mavenCentral() +} + +gradlePlugin { + plugins { + create("reactSettingsPlugin") { + id = "com.facebook.react.settings" + implementationClass = "expo.plugins.ReactSettingsPlugin" + } + } +} diff --git a/sample-apps/react-native/expo-video-sample/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt b/sample-apps/react-native/expo-video-sample/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt new file mode 100644 index 0000000000..c54f6c7a6a --- /dev/null +++ b/sample-apps/react-native/expo-video-sample/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt @@ -0,0 +1,10 @@ +package expo.plugins + +import org.gradle.api.Plugin +import org.gradle.api.initialization.Settings + +class ReactSettingsPlugin : Plugin { + override fun apply(settings: Settings) { + // Do nothing, just register the plugin. + } +} diff --git a/sample-apps/react-native/expo-video-sample/android/settings.gradle b/sample-apps/react-native/expo-video-sample/android/settings.gradle index 29469a48f3..4d35d3a505 100644 --- a/sample-apps/react-native/expo-video-sample/android/settings.gradle +++ b/sample-apps/react-native/expo-video-sample/android/settings.gradle @@ -1,3 +1,49 @@ +pluginManagement { + def version = providers.exec { + commandLine("node", "-e", "console.log(require('react-native/package.json').version);") + }.standardOutput.asText.get().trim() + def (_, reactNativeMinor, reactNativePatch) = version.split("-")[0].tokenize('.').collect { it.toInteger() } + + includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile().toString()) + if(reactNativeMinor == 74 && reactNativePatch <= 3){ + includeBuild("react-settings-plugin") + } +} + +plugins { id("com.facebook.react.settings") } + +def getRNMinorVersion() { + def version = providers.exec { + commandLine("node", "-e", "console.log(require('react-native/package.json').version);") + }.standardOutput.asText.get().trim() + + def coreVersion = version.split("-")[0] + def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() } + + return minor +} + +if (getRNMinorVersion() >= 75) { + extensions.configure(com.facebook.react.ReactSettingsExtension) { ex -> + if (System.getenv('EXPO_UNSTABLE_CORE_AUTOLINKING') == '1') { + println('\u001B[32mUsing expo-modules-autolinking as core autolinking source\u001B[0m') + def command = [ + 'node', + '--no-warnings', + '--eval', + 'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))', + 'react-native-config', + '--json', + '--platform', + 'android' + ].toList() + ex.autolinkLibrariesFromCommand(command) + } else { + ex.autolinkLibrariesFromCommand() + } + } +} + rootProject.name = 'expo-video-sample' dependencyResolutionManagement { @@ -11,8 +57,10 @@ dependencyResolutionManagement { apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); useExpoModules() -apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); -applyNativeModulesSettingsGradle(settings) +if (getRNMinorVersion() < 75) { + apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); + applyNativeModulesSettingsGradle(settings) +} include ':app' includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile()) diff --git a/sample-apps/react-native/expo-video-sample/app.json b/sample-apps/react-native/expo-video-sample/app.json index b126d9e3e0..df5ab8926e 100644 --- a/sample-apps/react-native/expo-video-sample/app.json +++ b/sample-apps/react-native/expo-video-sample/app.json @@ -12,7 +12,9 @@ "resizeMode": "contain", "backgroundColor": "#ffffff" }, - "assetBundlePatterns": ["**/*"], + "assetBundlePatterns": [ + "**/*" + ], "ios": { "supportsTablet": true, "bitcode": false, @@ -59,7 +61,7 @@ "android": { "minSdkVersion": 24, "extraMavenRepos": [ - "../../node_modules/@notifee/react-native/android/libs" + "../../../node_modules/@notifee/react-native/android/libs" ] }, "ios": { @@ -71,4 +73,4 @@ "expo-router" ] } -} +} \ No newline at end of file diff --git a/sample-apps/react-native/expo-video-sample/ios/Info.plist b/sample-apps/react-native/expo-video-sample/ios/Info.plist deleted file mode 100644 index a27da48c47..0000000000 --- a/sample-apps/react-native/expo-video-sample/ios/Info.plist +++ /dev/null @@ -1,88 +0,0 @@ - - - - - CADisableMinimumFrameDurationOnPhone - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - expo-video-sample - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleURLTypes - - - CFBundleURLSchemes - - expo-video-sample - io.getstream.expovideosample - - - - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - NSAllowsLocalNetworking - - - NSCameraUsageDescription - Allow $(PRODUCT_NAME) to access your camera - NSMicrophoneUsageDescription - Allow $(PRODUCT_NAME) to access your microphone - RTCAppGroupIdentifier - group.io.getstream.expovideosample.appgroup - RTCScreenSharingExtension - io.getstream.expovideosample.broadcast - UIBackgroundModes - - fetch - voip - audio - remote-notification - - UILaunchStoryboardName - SplashScreen - UIRequiredDeviceCapabilities - - armv7 - - UIRequiresFullScreen - - UIStatusBarStyle - UIStatusBarStyleDefault - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIUserInterfaceStyle - Light - UIViewControllerBasedStatusBarAppearance - - - diff --git a/sample-apps/react-native/expo-video-sample/ios/Podfile b/sample-apps/react-native/expo-video-sample/ios/Podfile index 38d01b9579..2806bc0068 100644 --- a/sample-apps/react-native/expo-video-sample/ios/Podfile +++ b/sample-apps/react-native/expo-video-sample/ios/Podfile @@ -7,36 +7,33 @@ podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] +use_autolinking_method_symbol = ('use' + '_native' + '_modules!').to_sym +origin_autolinking_method = self.method(use_autolinking_method_symbol) +self.define_singleton_method(use_autolinking_method_symbol) do |*args| + if ENV['EXPO_UNSTABLE_CORE_AUTOLINKING'] == '1' + Pod::UI.puts('Using expo-modules-autolinking as core autolinking source'.green) + config_command = [ + 'node', + '--no-warnings', + '--eval', + 'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))', + 'react-native-config', + '--json', + '--platform', + 'ios' + ] + origin_autolinking_method.call(config_command) + else + origin_autolinking_method.call() + end +end + platform :ios, podfile_properties['ios.deploymentTarget'] || '13.4' install! 'cocoapods', :deterministic_uuids => false prepare_react_native_project! -# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. -# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this, -# you can also exclude `react-native-flipper` in `react-native.config.js` -# -# ```js -# module.exports = { -# dependencies: { -# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), -# } -# } -# ``` -flipper_config = FlipperConfiguration.disabled -if ENV['NO_FLIPPER'] == '1' then - # Explicitly disabled through environment variables - flipper_config = FlipperConfiguration.disabled -elsif podfile_properties.key?('ios.flipper') then - # Configure Flipper in Podfile.properties.json - if podfile_properties['ios.flipper'] == 'true' then - flipper_config = FlipperConfiguration.enabled(["Debug", "Release"]) - elsif podfile_properties['ios.flipper'] != 'false' then - flipper_config = FlipperConfiguration.enabled(["Debug", "Release"], { 'Flipper' => podfile_properties['ios.flipper'] }) - end -end - target 'expovideosample' do use_expo_modules! config = use_native_modules! @@ -49,15 +46,15 @@ target 'expovideosample' do :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/..", - # Note that if you have use_frameworks! enabled, Flipper will not work if enabled - :flipper_configuration => flipper_config + :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', ) post_install do |installer| react_native_post_install( installer, config[:reactNativePath], - :mac_catalyst_enabled => false + :mac_catalyst_enabled => false, + :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true', ) # This is necessary for Xcode 14, because it signs resource bundles by default diff --git a/sample-apps/react-native/expo-video-sample/ios/Podfile.lock b/sample-apps/react-native/expo-video-sample/ios/Podfile.lock index 5a45fc39b7..2434f3ecb7 100644 --- a/sample-apps/react-native/expo-video-sample/ios/Podfile.lock +++ b/sample-apps/react-native/expo-video-sample/ios/Podfile.lock @@ -1,45 +1,73 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - EXApplication (5.8.4): + - EXApplication (5.9.1): - ExpoModulesCore - - EXConstants (15.4.6): + - EXConstants (16.0.2): - ExpoModulesCore - - EXFont (11.10.3): + - EXNotifications (0.28.18): - ExpoModulesCore - - EXNotifications (0.27.8): + - Expo (51.0.37): - ExpoModulesCore - - Expo (50.0.19): + - ExpoAsset (10.0.10): - ExpoModulesCore - - ExpoFileSystem (16.0.9): + - ExpoFileSystem (17.0.1): - ExpoModulesCore - - ExpoHead (3.4.10): + - ExpoFont (12.0.10): - ExpoModulesCore - - ExpoKeepAwake (12.8.2): + - ExpoHead (3.5.23): - ExpoModulesCore - - ExpoModulesCore (1.11.13): + - ExpoKeepAwake (13.0.2): + - ExpoModulesCore + - ExpoModulesCore (1.12.25): + - DoubleConversion - glog - - RCT-Folly (= 2022.05.16.00) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsinspector - React-NativeModulesApple - React-RCTAppDelegate + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - EXSplashScreen (0.26.5): + - Yoga + - EXSplashScreen (0.27.6): + - DoubleConversion - ExpoModulesCore - glog - - RCT-Folly (= 2022.05.16.00) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - EXTaskManager (11.7.3): + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - EXTaskManager (11.8.2): - ExpoModulesCore - UMAppLoader - - FBLazyVector (0.73.6) - - FBReactNativeSpec (0.73.6): - - RCT-Folly (= 2022.05.16.00) - - RCTRequired (= 0.73.6) - - RCTTypeSafety (= 0.73.6) - - React-Core (= 0.73.6) - - React-jsi (= 0.73.6) - - ReactCommon/turbomodule/core (= 0.73.6) + - FBLazyVector (0.74.5) - Firebase/CoreOnly (10.24.0): - FirebaseCore (= 10.24.0) - Firebase/Messaging (10.24.0): @@ -49,11 +77,11 @@ PODS: - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.12) - GoogleUtilities/Logger (~> 7.12) - - FirebaseCoreExtension (10.24.0): + - FirebaseCoreExtension (10.29.0): - FirebaseCore (~> 10.0) - - FirebaseCoreInternal (10.24.0): + - FirebaseCoreInternal (10.29.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseInstallations (10.24.0): + - FirebaseInstallations (10.29.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) @@ -67,352 +95,395 @@ PODS: - GoogleUtilities/Reachability (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - nanopb (< 2.30911.0, >= 2.30908.0) - - fmt (6.2.1) + - fmt (9.1.0) - glog (0.3.5) - GoogleDataTransport (9.4.1): - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30911.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/AppDelegateSwizzler (7.13.0): + - GoogleUtilities/AppDelegateSwizzler (7.13.3): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Privacy - - GoogleUtilities/Environment (7.13.0): + - GoogleUtilities/Environment (7.13.3): - GoogleUtilities/Privacy - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.13.0): + - GoogleUtilities/Logger (7.13.3): - GoogleUtilities/Environment - GoogleUtilities/Privacy - - GoogleUtilities/Network (7.13.0): + - GoogleUtilities/Network (7.13.3): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Privacy - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.13.0)": + - "GoogleUtilities/NSData+zlib (7.13.3)": - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (7.13.0) - - GoogleUtilities/Reachability (7.13.0): + - GoogleUtilities/Privacy (7.13.3) + - GoogleUtilities/Reachability (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GoogleUtilities/UserDefaults (7.13.0): + - GoogleUtilities/UserDefaults (7.13.3): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - hermes-engine (0.73.6): - - hermes-engine/Pre-built (= 0.73.6) - - hermes-engine/Pre-built (0.73.6) + - hermes-engine (0.74.5): + - hermes-engine/Pre-built (= 0.74.5) + - hermes-engine/Pre-built (0.74.5) - JitsiWebRTC (118.0.0) - - libevent (2.1.12) - nanopb (2.30910.0): - nanopb/decode (= 2.30910.0) - nanopb/encode (= 2.30910.0) - nanopb/decode (2.30910.0) - nanopb/encode (2.30910.0) - PromisesObjC (2.4.0) - - RCT-Folly (2022.05.16.00): + - RCT-Folly (2024.01.01.00): - boost - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - - RCT-Folly/Default (= 2022.05.16.00) - - RCT-Folly/Default (2022.05.16.00): + - RCT-Folly/Default (= 2024.01.01.00) + - RCT-Folly/Default (2024.01.01.00): - boost - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - - RCT-Folly/Fabric (2022.05.16.00): + - RCT-Folly/Fabric (2024.01.01.00): - boost - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCT-Folly/Futures (2022.05.16.00): - - boost + - fmt (= 9.1.0) + - glog + - RCTDeprecation (0.74.5) + - RCTRequired (0.74.5) + - RCTTypeSafety (0.74.5): + - FBLazyVector (= 0.74.5) + - RCTRequired (= 0.74.5) + - React-Core (= 0.74.5) + - React (0.74.5): + - React-Core (= 0.74.5) + - React-Core/DevSupport (= 0.74.5) + - React-Core/RCTWebSocket (= 0.74.5) + - React-RCTActionSheet (= 0.74.5) + - React-RCTAnimation (= 0.74.5) + - React-RCTBlob (= 0.74.5) + - React-RCTImage (= 0.74.5) + - React-RCTLinking (= 0.74.5) + - React-RCTNetwork (= 0.74.5) + - React-RCTSettings (= 0.74.5) + - React-RCTText (= 0.74.5) + - React-RCTVibration (= 0.74.5) + - React-callinvoker (0.74.5) + - React-Codegen (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) - - glog - - libevent - - RCTRequired (0.73.6) - - RCTTypeSafety (0.73.6): - - FBLazyVector (= 0.73.6) - - RCTRequired (= 0.73.6) - - React-Core (= 0.73.6) - - React (0.73.6): - - React-Core (= 0.73.6) - - React-Core/DevSupport (= 0.73.6) - - React-Core/RCTWebSocket (= 0.73.6) - - React-RCTActionSheet (= 0.73.6) - - React-RCTAnimation (= 0.73.6) - - React-RCTBlob (= 0.73.6) - - React-RCTImage (= 0.73.6) - - React-RCTLinking (= 0.73.6) - - React-RCTNetwork (= 0.73.6) - - React-RCTSettings (= 0.73.6) - - React-RCTText (= 0.73.6) - - React-RCTVibration (= 0.73.6) - - React-callinvoker (0.73.6) - - React-Codegen (0.73.6): - - DoubleConversion - - FBReactNativeSpec - glog - hermes-engine - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-featureflags + - React-graphics - React-jsi - React-jsiexecutor - React-NativeModulesApple - - React-rncore + - React-rendererdebug + - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.73.6): + - React-Core (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.6) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.5) - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.73.6): + - React-Core/CoreModulesHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.73.6): + - React-Core/Default (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.73.6): + - React-Core/DevSupport (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.6) - - React-Core/RCTWebSocket (= 0.73.6) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.5) + - React-Core/RCTWebSocket (= 0.74.5) - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.73.6) + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.73.6): + - React-Core/RCTActionSheetHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.73.6): + - React-Core/RCTAnimationHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.73.6): + - React-Core/RCTBlobHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.73.6): + - React-Core/RCTImageHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.73.6): + - React-Core/RCTLinkingHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.73.6): + - React-Core/RCTNetworkHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.73.6): + - React-Core/RCTSettingsHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.73.6): + - React-Core/RCTTextHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.73.6): + - React-Core/RCTVibrationHeaders (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation - React-Core/Default - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.73.6): + - React-Core/RCTWebSocket (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-Core/Default (= 0.73.6) + - RCT-Folly (= 2024.01.01.00) + - RCTDeprecation + - React-Core/Default (= 0.74.5) - React-cxxreact + - React-featureflags - React-hermes - React-jsi - React-jsiexecutor + - React-jsinspector - React-perflogger - React-runtimescheduler - React-utils - - SocketRocket (= 0.6.1) + - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.73.6): - - RCT-Folly (= 2022.05.16.00) - - RCTTypeSafety (= 0.73.6) + - React-CoreModules (0.74.5): + - DoubleConversion + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) + - RCTTypeSafety (= 0.74.5) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.73.6) - - React-jsi (= 0.73.6) + - React-Core/CoreModulesHeaders (= 0.74.5) + - React-jsi (= 0.74.5) + - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.73.6) + - React-RCTImage (= 0.74.5) - ReactCommon - - SocketRocket (= 0.6.1) - - React-cxxreact (0.73.6): + - SocketRocket (= 0.7.0) + - React-cxxreact (0.74.5): - boost (= 1.83.0) - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.6) - - React-debug (= 0.73.6) - - React-jsi (= 0.73.6) - - React-jsinspector (= 0.73.6) - - React-logger (= 0.73.6) - - React-perflogger (= 0.73.6) - - React-runtimeexecutor (= 0.73.6) - - React-debug (0.73.6) - - React-Fabric (0.73.6): + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.5) + - React-debug (= 0.74.5) + - React-jsi (= 0.74.5) + - React-jsinspector + - React-logger (= 0.74.5) + - React-perflogger (= 0.74.5) + - React-runtimeexecutor (= 0.74.5) + - React-debug (0.74.5) + - React-Fabric (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.73.6) - - React-Fabric/attributedstring (= 0.73.6) - - React-Fabric/componentregistry (= 0.73.6) - - React-Fabric/componentregistrynative (= 0.73.6) - - React-Fabric/components (= 0.73.6) - - React-Fabric/core (= 0.73.6) - - React-Fabric/imagemanager (= 0.73.6) - - React-Fabric/leakchecker (= 0.73.6) - - React-Fabric/mounting (= 0.73.6) - - React-Fabric/scheduler (= 0.73.6) - - React-Fabric/telemetry (= 0.73.6) - - React-Fabric/templateprocessor (= 0.73.6) - - React-Fabric/textlayoutmanager (= 0.73.6) - - React-Fabric/uimanager (= 0.73.6) + - React-Fabric/animations (= 0.74.5) + - React-Fabric/attributedstring (= 0.74.5) + - React-Fabric/componentregistry (= 0.74.5) + - React-Fabric/componentregistrynative (= 0.74.5) + - React-Fabric/components (= 0.74.5) + - React-Fabric/core (= 0.74.5) + - React-Fabric/imagemanager (= 0.74.5) + - React-Fabric/leakchecker (= 0.74.5) + - React-Fabric/mounting (= 0.74.5) + - React-Fabric/scheduler (= 0.74.5) + - React-Fabric/telemetry (= 0.74.5) + - React-Fabric/templateprocessor (= 0.74.5) + - React-Fabric/textlayoutmanager (= 0.74.5) + - React-Fabric/uimanager (= 0.74.5) - React-graphics - React-jsi - React-jsiexecutor @@ -421,12 +492,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.73.6): + - React-Fabric/animations (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -440,12 +511,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.73.6): + - React-Fabric/attributedstring (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -459,12 +530,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.73.6): + - React-Fabric/componentregistry (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -478,12 +549,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.73.6): + - React-Fabric/componentregistrynative (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -497,28 +568,28 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.73.6): + - React-Fabric/components (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.73.6) - - React-Fabric/components/legacyviewmanagerinterop (= 0.73.6) - - React-Fabric/components/modal (= 0.73.6) - - React-Fabric/components/rncore (= 0.73.6) - - React-Fabric/components/root (= 0.73.6) - - React-Fabric/components/safeareaview (= 0.73.6) - - React-Fabric/components/scrollview (= 0.73.6) - - React-Fabric/components/text (= 0.73.6) - - React-Fabric/components/textinput (= 0.73.6) - - React-Fabric/components/unimplementedview (= 0.73.6) - - React-Fabric/components/view (= 0.73.6) + - React-Fabric/components/inputaccessory (= 0.74.5) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.5) + - React-Fabric/components/modal (= 0.74.5) + - React-Fabric/components/rncore (= 0.74.5) + - React-Fabric/components/root (= 0.74.5) + - React-Fabric/components/safeareaview (= 0.74.5) + - React-Fabric/components/scrollview (= 0.74.5) + - React-Fabric/components/text (= 0.74.5) + - React-Fabric/components/textinput (= 0.74.5) + - React-Fabric/components/unimplementedview (= 0.74.5) + - React-Fabric/components/view (= 0.74.5) - React-graphics - React-jsi - React-jsiexecutor @@ -527,12 +598,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.73.6): + - React-Fabric/components/inputaccessory (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -546,12 +617,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.73.6): + - React-Fabric/components/legacyviewmanagerinterop (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -565,12 +636,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.73.6): + - React-Fabric/components/modal (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -584,12 +655,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.73.6): + - React-Fabric/components/rncore (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -603,12 +674,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.73.6): + - React-Fabric/components/root (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -622,12 +693,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.73.6): + - React-Fabric/components/safeareaview (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -641,12 +712,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.73.6): + - React-Fabric/components/scrollview (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -660,12 +731,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.73.6): + - React-Fabric/components/text (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -679,12 +750,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.73.6): + - React-Fabric/components/textinput (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -698,12 +769,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.73.6): + - React-Fabric/components/unimplementedview (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -717,12 +788,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.73.6): + - React-Fabric/components/view (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -737,12 +808,12 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.73.6): + - React-Fabric/core (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -756,12 +827,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.73.6): + - React-Fabric/imagemanager (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -775,12 +846,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.73.6): + - React-Fabric/leakchecker (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -794,12 +865,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.73.6): + - React-Fabric/mounting (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -813,12 +884,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.73.6): + - React-Fabric/scheduler (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -832,12 +903,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.73.6): + - React-Fabric/telemetry (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -851,12 +922,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.73.6): + - React-Fabric/templateprocessor (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -870,12 +941,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.73.6): + - React-Fabric/textlayoutmanager (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -890,12 +961,12 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.73.6): + - React-Fabric/uimanager (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - RCTRequired - RCTTypeSafety - React-Core @@ -909,42 +980,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.73.6): + - React-FabricImage (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - RCTRequired (= 0.73.6) - - RCTTypeSafety (= 0.73.6) + - RCT-Folly/Fabric (= 2024.01.01.00) + - RCTRequired (= 0.74.5) + - RCTTypeSafety (= 0.74.5) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.73.6) + - React-jsiexecutor (= 0.74.5) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-graphics (0.73.6): + - React-featureflags (0.74.5) + - React-graphics (0.74.5): + - DoubleConversion + - fmt (= 9.1.0) - glog - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-Core/Default (= 0.73.6) + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-Core/Default (= 0.74.5) - React-utils - - React-hermes (0.73.6): + - React-hermes (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.6) + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.5) - React-jsi - - React-jsiexecutor (= 0.73.6) - - React-jsinspector (= 0.73.6) - - React-perflogger (= 0.73.6) - - React-ImageManager (0.73.6): + - React-jsiexecutor (= 0.74.5) + - React-jsinspector + - React-perflogger (= 0.74.5) + - React-runtimeexecutor + - React-ImageManager (0.74.5): - glog - RCT-Folly/Fabric - React-Core/Default @@ -953,94 +1027,120 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.73.6): - - RCT-Folly/Fabric (= 2022.05.16.00) + - React-jserrorhandler (0.74.5): + - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.73.6): + - React-jsi (0.74.5): - boost (= 1.83.0) - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-jsiexecutor (0.73.6): + - RCT-Folly (= 2024.01.01.00) + - React-jsiexecutor (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-cxxreact (= 0.73.6) - - React-jsi (= 0.73.6) - - React-perflogger (= 0.73.6) - - React-jsinspector (0.73.6) - - React-logger (0.73.6): + - RCT-Folly (= 2024.01.01.00) + - React-cxxreact (= 0.74.5) + - React-jsi (= 0.74.5) + - React-jsinspector + - React-perflogger (= 0.74.5) + - React-jsinspector (0.74.5): + - DoubleConversion - glog - - React-Mapbuffer (0.73.6): + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-featureflags + - React-jsi + - React-runtimeexecutor (= 0.74.5) + - React-jsitracing (0.74.5): + - React-jsi + - React-logger (0.74.5): + - glog + - React-Mapbuffer (0.74.5): - glog - React-debug - - react-native-netinfo (11.1.0): + - react-native-netinfo (11.3.1): - React-Core - - react-native-safe-area-context (4.8.2): + - react-native-safe-area-context (4.10.5): - React-Core - - React-nativeconfig (0.73.6) - - React-NativeModulesApple (0.73.6): + - React-nativeconfig (0.74.5) + - React-NativeModulesApple (0.74.5): - glog - hermes-engine - React-callinvoker - React-Core - React-cxxreact - React-jsi + - React-jsinspector - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.73.6) - - React-RCTActionSheet (0.73.6): - - React-Core/RCTActionSheetHeaders (= 0.73.6) - - React-RCTAnimation (0.73.6): - - RCT-Folly (= 2022.05.16.00) + - React-perflogger (0.74.5) + - React-RCTActionSheet (0.74.5): + - React-Core/RCTActionSheetHeaders (= 0.74.5) + - React-RCTAnimation (0.74.5): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTAnimationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.73.6): - - RCT-Folly + - React-RCTAppDelegate (0.74.5): + - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety + - React-Codegen - React-Core - React-CoreModules + - React-debug + - React-Fabric + - React-featureflags + - React-graphics - React-hermes - React-nativeconfig - React-NativeModulesApple - React-RCTFabric - React-RCTImage - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes - React-runtimescheduler + - React-utils - ReactCommon - - React-RCTBlob (0.73.6): + - React-RCTBlob (0.74.5): + - DoubleConversion + - fmt (= 9.1.0) - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTBlobHeaders - React-Core/RCTWebSocket - React-jsi + - React-jsinspector - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.73.6): + - React-RCTFabric (0.74.5): - glog - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) - React-Core - React-debug - React-Fabric - React-FabricImage + - React-featureflags - React-graphics - React-ImageManager - React-jsi + - React-jsinspector - React-nativeconfig - React-RCTImage - React-RCTText @@ -1048,8 +1148,8 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.73.6): - - RCT-Folly (= 2022.05.16.00) + - React-RCTImage (0.74.5): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTImageHeaders @@ -1057,105 +1157,151 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.73.6): + - React-RCTLinking (0.74.5): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.73.6) - - React-jsi (= 0.73.6) + - React-Core/RCTLinkingHeaders (= 0.74.5) + - React-jsi (= 0.74.5) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.73.6) - - React-RCTNetwork (0.73.6): - - RCT-Folly (= 2022.05.16.00) + - ReactCommon/turbomodule/core (= 0.74.5) + - React-RCTNetwork (0.74.5): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTNetworkHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.73.6): - - RCT-Folly (= 2022.05.16.00) + - React-RCTSettings (0.74.5): + - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen - React-Core/RCTSettingsHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTText (0.73.6): - - React-Core/RCTTextHeaders (= 0.73.6) + - React-RCTText (0.74.5): + - React-Core/RCTTextHeaders (= 0.74.5) - Yoga - - React-RCTVibration (0.73.6): - - RCT-Folly (= 2022.05.16.00) + - React-RCTVibration (0.74.5): + - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.73.6): + - React-rendererdebug (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) - - RCT-Folly (= 2022.05.16.00) + - fmt (= 9.1.0) + - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.73.6) - - React-runtimeexecutor (0.73.6): - - React-jsi (= 0.73.6) - - React-runtimescheduler (0.73.6): + - React-rncore (0.74.5) + - React-RuntimeApple (0.74.5): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-utils + - React-RuntimeCore (0.74.5): - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-cxxreact + - React-featureflags + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - React-runtimeexecutor (0.74.5): + - React-jsi (= 0.74.5) + - React-RuntimeHermes (0.74.5): + - hermes-engine + - RCT-Folly/Fabric (= 2024.01.01.00) + - React-featureflags + - React-hermes + - React-jsi + - React-jsinspector + - React-jsitracing + - React-nativeconfig + - React-RuntimeCore + - React-utils + - React-runtimescheduler (0.74.5): + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) - React-callinvoker - React-cxxreact - React-debug + - React-featureflags - React-jsi - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.73.6): + - React-utils (0.74.5): - glog - - RCT-Folly (= 2022.05.16.00) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) - React-debug - - ReactCommon (0.73.6): - - React-logger (= 0.73.6) - - ReactCommon/turbomodule (= 0.73.6) - - ReactCommon/turbomodule (0.73.6): + - React-jsi (= 0.74.5) + - ReactCommon (0.74.5): + - ReactCommon/turbomodule (= 0.74.5) + - ReactCommon/turbomodule (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.6) - - React-cxxreact (= 0.73.6) - - React-jsi (= 0.73.6) - - React-logger (= 0.73.6) - - React-perflogger (= 0.73.6) - - ReactCommon/turbomodule/bridging (= 0.73.6) - - ReactCommon/turbomodule/core (= 0.73.6) - - ReactCommon/turbomodule/bridging (0.73.6): + - fmt (= 9.1.0) + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.5) + - React-cxxreact (= 0.74.5) + - React-jsi (= 0.74.5) + - React-logger (= 0.74.5) + - React-perflogger (= 0.74.5) + - ReactCommon/turbomodule/bridging (= 0.74.5) + - ReactCommon/turbomodule/core (= 0.74.5) + - ReactCommon/turbomodule/bridging (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.6) - - React-cxxreact (= 0.73.6) - - React-jsi (= 0.73.6) - - React-logger (= 0.73.6) - - React-perflogger (= 0.73.6) - - ReactCommon/turbomodule/core (0.73.6): + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.5) + - React-cxxreact (= 0.74.5) + - React-jsi (= 0.74.5) + - React-logger (= 0.74.5) + - React-perflogger (= 0.74.5) + - ReactCommon/turbomodule/core (0.74.5): - DoubleConversion - - fmt (~> 6.2.1) + - fmt (= 9.1.0) - glog - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - React-callinvoker (= 0.73.6) - - React-cxxreact (= 0.73.6) - - React-jsi (= 0.73.6) - - React-logger (= 0.73.6) - - React-perflogger (= 0.73.6) + - RCT-Folly (= 2024.01.01.00) + - React-callinvoker (= 0.74.5) + - React-cxxreact (= 0.74.5) + - React-debug (= 0.74.5) + - React-jsi (= 0.74.5) + - React-logger (= 0.74.5) + - React-perflogger (= 0.74.5) + - React-utils (= 0.74.5) - ReactNativeIncallManager (4.2.0): - React-Core - RNCallKeep (4.3.12): - React - - RNCAsyncStorage (1.21.0): + - RNCAsyncStorage (1.23.1): - React-Core - RNFBApp (19.2.2): - Firebase/CoreOnly (= 10.24.0) @@ -1165,60 +1311,131 @@ PODS: - FirebaseCoreExtension - React-Core - RNFBApp - - RNGestureHandler (2.14.1): + - RNGestureHandler (2.16.2): + - DoubleConversion - glog - - RCT-Folly (= 2022.05.16.00) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - RNNotifee (7.8.0): + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNNotifee (9.1.1): - React-Core - - RNNotifee/NotifeeCore (= 7.8.0) - - RNNotifee/NotifeeCore (7.8.0): + - RNNotifee/NotifeeCore (= 9.1.1) + - RNNotifee/NotifeeCore (9.1.1): - React-Core - - RNReanimated (3.6.2): + - RNReanimated (3.10.1): + - DoubleConversion - glog - - RCT-Folly (= 2022.05.16.00) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNScreens (3.29.0): + - Yoga + - RNScreens (3.31.1): + - DoubleConversion - glog - - RCT-Folly (= 2022.05.16.00) + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core - - RNSVG (14.1.0): + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNSVG (15.2.0): - React-Core - RNVoipPushNotification (3.3.2): - React-Core - - SocketRocket (0.6.1) + - SocketRocket (0.7.0) - stream-react-native-webrtc (118.1.0): - JitsiWebRTC (~> 118.0.0) - React-Core - - stream-video-react-native (0.8.8): + - stream-video-react-native (1.1.4): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core - stream-react-native-webrtc - - UMAppLoader (4.5.1) - - Yoga (1.14.0) + - Yoga + - UMAppLoader (4.6.0) + - Yoga (0.0.0) DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - EXApplication (from `../node_modules/expo-application/ios`) - EXConstants (from `../node_modules/expo-constants/ios`) - - EXFont (from `../node_modules/expo-font/ios`) - EXNotifications (from `../node_modules/expo-notifications/ios`) - Expo (from `../node_modules/expo`) + - ExpoAsset (from `../node_modules/expo-asset/ios`) - ExpoFileSystem (from `../node_modules/expo-file-system/ios`) + - ExpoFont (from `../node_modules/expo-font/ios`) - ExpoHead (from `../node_modules/expo-router/ios`) - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) - ExpoModulesCore (from `../node_modules/expo-modules-core`) - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) - EXTaskManager (from `../node_modules/expo-task-manager/ios`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) + - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - libevent (~> 2.1.12) - 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`) + - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) + - RCTRequired (from `../node_modules/react-native/Libraries/Required`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) @@ -1230,6 +1447,7 @@ DEPENDENCIES: - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`) - React-Fabric (from `../node_modules/react-native/ReactCommon`) - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`) - 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`) @@ -1237,6 +1455,7 @@ DEPENDENCIES: - 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-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" @@ -1257,7 +1476,10 @@ DEPENDENCIES: - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) @@ -1285,11 +1507,9 @@ SPEC REPOS: - FirebaseCoreInternal - FirebaseInstallations - FirebaseMessaging - - fmt - GoogleDataTransport - GoogleUtilities - JitsiWebRTC - - libevent - nanopb - PromisesObjC - SocketRocket @@ -1303,14 +1523,16 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-application/ios" EXConstants: :path: "../node_modules/expo-constants/ios" - EXFont: - :path: "../node_modules/expo-font/ios" EXNotifications: :path: "../node_modules/expo-notifications/ios" Expo: :path: "../node_modules/expo" + ExpoAsset: + :path: "../node_modules/expo-asset/ios" ExpoFileSystem: :path: "../node_modules/expo-file-system/ios" + ExpoFont: + :path: "../node_modules/expo-font/ios" ExpoHead: :path: "../node_modules/expo-router/ios" ExpoKeepAwake: @@ -1323,17 +1545,19 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-task-manager/ios" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../node_modules/react-native/React/FBReactNativeSpec" + fmt: + :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" 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-2024-02-20-RNv0.73.5-18f99ace4213052c5e7cdbcd39ee9766cd5df7e4 + :tag: hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85 RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTDeprecation: + :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" RCTRequired: - :path: "../node_modules/react-native/Libraries/RCTRequired" + :path: "../node_modules/react-native/Libraries/Required" RCTTypeSafety: :path: "../node_modules/react-native/Libraries/TypeSafety" React: @@ -1354,6 +1578,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" React-FabricImage: :path: "../node_modules/react-native/ReactCommon" + React-featureflags: + :path: "../node_modules/react-native/ReactCommon/react/featureflags" React-graphics: :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" React-hermes: @@ -1368,6 +1594,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" React-logger: :path: "../node_modules/react-native/ReactCommon/logger" React-Mapbuffer: @@ -1408,8 +1636,14 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" React-rncore: :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimeexecutor: :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimescheduler: :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" React-utils: @@ -1449,95 +1683,100 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 - DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - EXApplication: 16bcea16789221bd566e64b5ea2608cf7756b005 - EXConstants: a5f6276e565d98f9eb4280f81241fc342d641590 - EXFont: f20669cb266ef48b004f1eb1f2b20db96cd1df9f - EXNotifications: e254c0fa11337e15b30c200e91437b521f682bad - Expo: ad8bce0c0fc557cae703cc8dbce73d61a90ab5c5 - ExpoFileSystem: 74cc0fae916f9f044248433971dcfc8c3befd057 - ExpoHead: 89ffd324e60520751c2c285233fe45e875c91874 - ExpoKeepAwake: 0f5cad99603a3268e50af9a6eb8b76d0d9ac956c - ExpoModulesCore: 370096473359f5f6aade0871400d063333747719 - EXSplashScreen: 0fabdcf746d29e7f8b8969879cb09125cdd365d2 - EXTaskManager: 07d427a5213dd275c13b6b6c07bba35a672e6698 - FBLazyVector: f64d1e2ea739b4d8f7e4740cde18089cd97fe864 - FBReactNativeSpec: 9f2b8b243131565335437dba74923a8d3015e780 + DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 + EXApplication: c08200c34daca7af7fd76ac4b9d606077410e8ad + EXConstants: 409690fbfd5afea964e5e9d6c4eb2c2b59222c59 + EXNotifications: dd289340c26bc5388e440fc90d0b2c661cbd0285 + Expo: 67b60b3b80a3c8e9f3bcaaa84d06d140229a246d + ExpoAsset: 323700f291684f110fb55f0d4022a3362ea9f875 + ExpoFileSystem: 80bfe850b1f9922c16905822ecbf97acd711dc51 + ExpoFont: 00756e6c796d8f7ee8d211e29c8b619e75cbf238 + ExpoHead: fcb28a68ed4ba28f177394d2dfb8a0a8824cd103 + ExpoKeepAwake: 3b8815d9dd1d419ee474df004021c69fdd316d08 + ExpoModulesCore: 3f83202e3cfec3aa1485eaf2e68cc902b2b10737 + EXSplashScreen: 20d60cb03f05e50c23745bf2dc2573b9b2eb42ec + EXTaskManager: 9c3520305c3aa1b4a12a7c6d1e3f85f2779c06e9 + FBLazyVector: ac12dc084d1c8ec4cc4d7b3cf1b0ebda6dab85af Firebase: 91fefd38712feb9186ea8996af6cbdef41473442 FirebaseCore: 11dc8a16dfb7c5e3c3f45ba0e191a33ac4f50894 - FirebaseCoreExtension: af5fd85e817ea9d19f9a2659a376cf9cf99f03c0 - FirebaseCoreInternal: bcb5acffd4ea05e12a783ecf835f2210ce3dc6af - FirebaseInstallations: 8f581fca6478a50705d2bd2abd66d306e0f5736e + FirebaseCoreExtension: 705ca5b14bf71d2564a0ddc677df1fc86ffa600f + FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 + FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd FirebaseMessaging: 4d52717dd820707cc4eadec5eb981b4832ec8d5d - fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 + fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 + glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a - GoogleUtilities: d053d902a8edaa9904e1bd00c37535385b8ed152 - hermes-engine: 9cecf9953a681df7556b8cc9c74905de8f3293c0 + GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 + hermes-engine: 8c1577f3fdb849cbe7729c2e7b5abc4b845e88f8 JitsiWebRTC: 3a41671ef65a51d7204323814b055a2690b921c7 - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 nanopb: 438bc412db1928dac798aa6fd75726007be04262 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 - RCTRequired: ca1d7414aba0b27efcfa2ccd37637edb1ab77d96 - RCTTypeSafety: 678e344fb976ff98343ca61dc62e151f3a042292 - React: e296bcebb489deaad87326067204eb74145934ab - React-callinvoker: d0b7015973fa6ccb592bb0363f6bc2164238ab8c - React-Codegen: 627cd02719674bfc5612f2f8394b4da2bf03a7b2 - React-Core: 44c936d0ab879e9c32e5381bd7596a677c59c974 - React-CoreModules: 558228e12cddb9ca00ff7937894cc5104a21be6b - React-cxxreact: 1fcf565012c203655b3638f35aa03c13c2ed7e9e - React-debug: f9c7f6877e2dad21448d12fe48d8192e0df918b4 - React-Fabric: a7a7976066a6e0d50b3952edd5429180c0671b4a - React-FabricImage: ec74705d026f1ee3da4b41a9bfe8120890f0d653 - React-graphics: 7d82a511085b3426749c35e2d4caee9083ef77d4 - React-hermes: 783023e43af9d6be4fbaeeb96b5beee00649a5f7 - React-ImageManager: 3db2aeaa313231542b42429257fb20da1fb4c303 - React-jserrorhandler: 7b5ef812483514dbe88e460e6a2dfec890872ed1 - React-jsi: ae102ccb38d2e4d0f512b7074d0c9b4e1851f402 - React-jsiexecutor: bd12ec75873d3ef0a755c11f878f2c420430f5a9 - React-jsinspector: 85583ef014ce53d731a98c66a0e24496f7a83066 - React-logger: 3eb80a977f0d9669468ef641a5e1fabbc50a09ec - React-Mapbuffer: d81d930c1b7f4db284e1d721fe7fdc99230ca108 - react-native-netinfo: 3aa5637c18834966e0c932de8ae1ae56fea20a97 - react-native-safe-area-context: 0ee144a6170530ccc37a0fd9388e28d06f516a89 - React-nativeconfig: e700ac3ec3d66329076bd2c2787a204411815d43 - React-NativeModulesApple: f7fa541118d195ac850ca2ea460f338152ced167 - React-perflogger: 5f49905de275bac07ac7ea7f575a70611fa988f2 - React-RCTActionSheet: 37edf35aeb8e4f30e76c82aab61f12d1b75c04ec - React-RCTAnimation: a69de7f3daa8462743094f4736c455e844ea63f7 - React-RCTAppDelegate: 51fb96b554a6acd0cd7818acecd5aa5ca2f3ab9f - React-RCTBlob: d91771caebf2d015005d750cd1dc2b433ad07c99 - React-RCTFabric: 0e798727a1886b11c01afd3936c95d732a114577 - React-RCTImage: a0bfe87b6908c7b76bd7d74520f40660bd0ad881 - React-RCTLinking: 5f10be1647952cceddfa1970fdb374087582fc34 - React-RCTNetwork: a0bc3dd45a2dc7c879c80cebb6f9707b2c8bbed6 - React-RCTSettings: 28c202b68afa59afb4067510f2c69c5a530fb9e3 - React-RCTText: 4119d9e53ca5db9502b916e1b146e99798986d21 - React-RCTVibration: 55bd7c48487eb9a2562f2bd3fdc833274f5b0636 - React-rendererdebug: 883c19511182c699b9df32746efb11ed28547473 - React-rncore: a975147d80ac4d920f85184b9147339514dc9ec7 - React-runtimeexecutor: bb328dbe2865f3a550df0240df8e2d8c3aaa4c57 - React-runtimescheduler: 4fa81221f3bb96df737d682fa828b574bea3827c - React-utils: a45dd70919baff681d43a4a457e9884ef96b4581 - ReactCommon: e168ee1704806f10f47ee8c7f825b5850b18eaea + RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 + RCTDeprecation: 3afceddffa65aee666dafd6f0116f1d975db1584 + RCTRequired: ec1239bc9d8bf63e10fb92bd8b26171a9258e0c1 + RCTTypeSafety: f5ecbc86c5c5fa163c05acb7a1c5012e15b5f994 + React: fc9fa7258eff606f44d58c5b233a82dc9cf09018 + React-callinvoker: e3fab14d69607fb7e8e3a57e5a415aed863d3599 + React-Codegen: bd1a15f54af401efee5f439aa6fd420b10550125 + React-Core: 3a5fd9e781cecf87803e5b091496a606a3df774a + React-CoreModules: cbf4707dafab8f9f826ac0c63a07d0bf5d01e256 + React-cxxreact: 7b188556271e3c7fdf22a04819f6a6225045b9dd + React-debug: 2d6f912c0c4c91a9fde617d8425088af7315c10b + React-Fabric: 47ff62e0c7f017606585327f6016190625295c5e + React-FabricImage: 823627aa521b4ecc896334f0dbf2bc8376edbf1e + React-featureflags: 2a4555681de0d4b683d98d7e9fd7bdf9e9ce1aa2 + React-graphics: edbd2a6c018b2e2d541ab8cb886cc31babf14646 + React-hermes: a7054fbcbda3957e3c5eaad06ef9bf79998d535a + React-ImageManager: 314824c4bb6f152699724dc9eb3ce544b87048bd + React-jserrorhandler: fffe10523886a352161ef492af2063651721c8ee + React-jsi: f3ce1dd2e950b6ad12b65ea3ef89168f1b94c584 + React-jsiexecutor: b4df3a27973d82f9abf3c4bd0f88e042cda25f16 + React-jsinspector: 2ea90b8e53970a1fea1449fb8e6419e21ca79867 + React-jsitracing: c83efb63c8e9e1dff72a3c56e88ae1c530a87795 + React-logger: 257858bd55f3a4e1bc0cf07ddc8fb9faba6f8c7c + React-Mapbuffer: dce508662b995ffefd29e278a16b78217039d43d + react-native-netinfo: bdb108d340cdb41875c9ced535977cac6d2ff321 + react-native-safe-area-context: a240ad4b683349e48b1d51fed1611138d1bdad97 + React-nativeconfig: f326487bc61eba3f0e328da6efb2711533dcac46 + React-NativeModulesApple: d89733f5baed8b9249ca5a8e497d63c550097312 + React-perflogger: ed4e0c65781521e0424f2e5e40b40cc7879d737e + React-RCTActionSheet: 49d53ff03bb5688ca4606c55859053a0cd129ea5 + React-RCTAnimation: 07b4923885c52c397c4ec103924bf6e53b42c73e + React-RCTAppDelegate: 316e295076734baf9bdf1bfac7d92ab647aed930 + React-RCTBlob: 85c57b0d5e667ff8a472163ba3af0628171a64bb + React-RCTFabric: 62695e345da7c451b05a131f0c6ba80367dbd5c3 + React-RCTImage: b965c85bec820e2a9c154b1fb00a2ecdd59a9c92 + React-RCTLinking: 75f04a5f27c26c4e73a39c50df470820d219df79 + React-RCTNetwork: c1a9143f4d5778efc92da40d83969d03912ccc24 + React-RCTSettings: c6800f91c0ecd48868cd5db754b0b0a7f5ffe039 + React-RCTText: b923e24f9b7250bc4f7ab154c4168ad9f8d8fc9d + React-RCTVibration: 08c4f0c917c435b3619386c25a94ee5d64c250f0 + React-rendererdebug: fac75dc155e1202cfc187485a6e4f6e842fcc5c7 + React-rncore: 12dc32f08f195e573e9d969a348b976a3d057bbc + React-RuntimeApple: 5c7591dd19de1c7fefe8e61cf934d8f8f9fc0409 + React-RuntimeCore: ec3c8be706ca2e4607eb8c675d32512352501f9e + React-runtimeexecutor: 0e688aefc14c6bc8601f4968d8d01c3fb6446844 + React-RuntimeHermes: df243bd7c8d4ba3bd237ce6ded22031e02d37908 + React-runtimescheduler: db7189185a2e5912b0d17194302e501f801a381e + React-utils: 3f1fcffc14893afb9a7e5b7c736353873cc5fc95 + ReactCommon: f79ae672224dc1e6c2d932062176883c98eebd57 ReactNativeIncallManager: bfc9c67358cd524882a7c4116dcb311ac2293d4b RNCallKeep: aa9b1f9286f8f60d7b7d41ee5de47de564356aac - RNCAsyncStorage: 618d03a5f52fbccb3d7010076bc54712844c18ef + RNCAsyncStorage: 826b603ae9c0f88b5ac4e956801f755109fa4d5c RNFBApp: 614f1621b49db54ebd258df8c45427370d8d84a2 RNFBMessaging: 74754ed198239360950f54f3e3de365fe85db451 - RNGestureHandler: 12833709769dde5fdb36ec9d4cdf4d3a1a024122 - RNNotifee: f3c01b391dd8e98e67f539f9a35a9cbcd3bae744 - RNReanimated: 548d4cb6785a032be887c66433082155d12baba0 - RNScreens: a4d9ce8f68f833f4e42410140eafd88e38bba163 - RNSVG: ba3e7232f45e34b7b47e74472386cf4e1a676d0a + RNGestureHandler: 20a4307fd21cbff339abfcfa68192f3f0a6a518b + RNNotifee: 35b5f984d11083b02d7f2990b3408cd99a0aeeac + RNReanimated: d51431fd3597a8f8320319dce8e42cee82a5445f + RNScreens: 30249f9331c3b00ae7cb7922e11f58b3ed369c07 + RNSVG: 43b64ed39c14ce830d840903774154ca0c1f27ec RNVoipPushNotification: 543e18f83089134a35e7f1d2eba4c8b1f7776b08 - SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 + SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d stream-react-native-webrtc: 4ccf61161f77c57b9aa45f78cb7f69b7d91f3e9f - stream-video-react-native: 9deac7fd7a9e0a7c9d288a68dffdf83365745d1b - UMAppLoader: 79d3ee6aa2447a1fe2e8b0d07acf2de106e55b58 - Yoga: 805bf71192903b20fc14babe48080582fee65a80 + stream-video-react-native: c2213992fcac5dea37fb29e2fe3d355b31c4780c + UMAppLoader: f17a5ee8e85b536ace0fc254b447a37ed198d57e + Yoga: 33622183a85805e12703cd618b2c16bfd18bfffb -PODFILE CHECKSUM: 62944e30c04351c14d7dd2748771ca3367058e0a +PODFILE CHECKSUM: bcdd2355f4023e32afa92c59366350f1e0302dc3 COCOAPODS: 1.15.2 diff --git a/sample-apps/react-native/expo-video-sample/ios/Podfile.properties.json b/sample-apps/react-native/expo-video-sample/ios/Podfile.properties.json index b5a0884c5e..d9bb409d9b 100644 --- a/sample-apps/react-native/expo-video-sample/ios/Podfile.properties.json +++ b/sample-apps/react-native/expo-video-sample/ios/Podfile.properties.json @@ -2,7 +2,6 @@ "expo.jsEngine": "hermes", "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true", "ios.useFrameworks": "static", - "ios.flipper": "false", "apple.extraPods": "[]", "apple.ccacheEnabled": "false", "apple.privacyManifestAggregationEnabled": "true" diff --git a/sample-apps/react-native/expo-video-sample/ios/expovideosample.xcodeproj/project.pbxproj b/sample-apps/react-native/expo-video-sample/ios/expovideosample.xcodeproj/project.pbxproj index 211e1df32d..41e33634d8 100644 --- a/sample-apps/react-native/expo-video-sample/ios/expovideosample.xcodeproj/project.pbxproj +++ b/sample-apps/react-native/expo-video-sample/ios/expovideosample.xcodeproj/project.pbxproj @@ -7,44 +7,45 @@ objects = { /* Begin PBXBuildFile section */ - 117CEA8885984539AAA14486 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13D4D3994A414D918CCC86D8 /* ReplayKit.framework */; }; - 13305095FC2A4BE1AE9DFC32 /* SampleUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC25E12286634B25BB3974DC /* SampleUploader.swift */; }; 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 290814EFFB5046948F8BF1FA /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7B22D9413C8405F82206646 /* CallKit.framework */; }; + 256E6A80392942AF9ECA3A89 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 42137E28813A463C9EB9A66B /* CallKit.framework */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - 5A13D81B8B76193BCFD48A90 /* Pods_expovideosample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D2C023E7E49A6E6BC6F2FA7 /* Pods_expovideosample.framework */; }; - 7AC70C88C8064066BFD60BA5 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = CA2F404E063841EB93075767 /* GoogleService-Info.plist */; }; - 7ED82B2DA4704325BDE72B13 /* DarwinNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3127278D462843EA81286CF9 /* DarwinNotificationCenter.swift */; }; - A533365FDF424E6A84F8527B /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C5DC1020204CA095D99BD3 /* noop-file.swift */; }; - A75676DD1AF64E399AE1A0A0 /* SocketConnection.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1BB5C79F2984EF6B5E86270 /* SocketConnection.swift */; }; + 3F366EE4670B4461AA58A8A4 /* SocketConnection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2BF1967E7A584C9BA8D5AFD0 /* SocketConnection.swift */; }; + 3F92CE1ACC344DCE7F4F9EBB /* Pods_expovideosample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B9DAAE34B382A5DA096163C /* Pods_expovideosample.framework */; }; + 61C0D56ADA7847F7833FC567 /* DarwinNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA823ECE6B94C95A608F7DE /* DarwinNotificationCenter.swift */; }; + 6A68CD95E5B243E8844F7A0E /* SampleUploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72227D6383A74D6FA7D6EECD /* SampleUploader.swift */; }; + 7828157D1D00490E906412E9 /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D786DA1335B45CB93521AD2 /* Intents.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 85209989E3244EBB7E3707F1 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 23E9C38E77A8A4C98FC56649 /* PrivacyInfo.xcprivacy */; }; B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; + B23BBC60EF3046A78EF1B640 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1B87530A1B9E48E2A68D3E2D /* GoogleService-Info.plist */; }; + B4DF33A481AC4F369DAB458F /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE180BB8F0F844078A9BCDD8 /* SampleHandler.swift */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; - C1A0C58DC35743E382E0664C /* Intents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 62153DA4E9934B0B8A79C68B /* Intents.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - C3EBD21CF1CA431794452067 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A69BD393C3742B3BA8E25FF /* Atomic.swift */; }; - CF302540D3C34461B4A5823B /* broadcast.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = BBF9D5B5A0294F938C26FA82 /* broadcast.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - FB33D8B02B8547CE9349D6FA /* SampleHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B0363C99B4E4D1EA746C3DE /* SampleHandler.swift */; }; + BCCF9F969B264676BE9DA23E /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 051237483F4144529034BAAC /* ReplayKit.framework */; }; + C22C630153E2421294F2ED9F /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7C31A0202048208D4B5997 /* noop-file.swift */; }; + F78F62EE83704A68ABF73021 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 122310C8064E42C9BB0BC981 /* Atomic.swift */; }; + FE3F2444B32E49748F4FE77F /* broadcast.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1D5EEAA33D54476E8080458C /* broadcast.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - DC57ED76042D44108AED1F6A /* PBXContainerItemProxy */ = { + C4F39B40F05142919EDEF7E7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3D30FAE20C6248A495744A08; + remoteGlobalIDString = 0B02A91F5F6A41FEB6FE93DA; remoteInfo = broadcast; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 70910EA7542443CAB7C38186 /* Embed App Extensions */ = { + A4CB8EB60CFB4C8F98BA6BB7 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 13; files = ( - CF302540D3C34461B4A5823B /* broadcast.appex in Embed App Extensions */, + FE3F2444B32E49748F4FE77F /* broadcast.appex in Embed App Extensions */, ); name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -52,51 +53,52 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 0B0363C99B4E4D1EA746C3DE /* SampleHandler.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = SampleHandler.swift; path = SampleHandler.swift; sourceTree = ""; }; + 051237483F4144529034BAAC /* ReplayKit.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; + 0B7C31A0202048208D4B5997 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "expovideosample/noop-file.swift"; sourceTree = ""; }; + 12072E53993243B78AA0DEB0 /* Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = ""; }; + 122310C8064E42C9BB0BC981 /* Atomic.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = Atomic.swift; path = Atomic.swift; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* expovideosample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = expovideosample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = expovideosample/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = expovideosample/AppDelegate.mm; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = expovideosample/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = expovideosample/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = expovideosample/main.m; sourceTree = ""; }; - 13D4D3994A414D918CCC86D8 /* ReplayKit.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; - 26DAC082A1CF4F74A3CE6B94 /* broadcast.entitlements */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = text.plist.entitlements; name = broadcast.entitlements; path = broadcast.entitlements; sourceTree = ""; }; - 2A69BD393C3742B3BA8E25FF /* Atomic.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = Atomic.swift; path = Atomic.swift; sourceTree = ""; }; - 3127278D462843EA81286CF9 /* DarwinNotificationCenter.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = DarwinNotificationCenter.swift; path = DarwinNotificationCenter.swift; sourceTree = ""; }; - 3BDEE957938B43AD9351095F /* Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = ""; }; - 4F79CA725111425C9E3AD6BA /* expovideosample-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "expovideosample-Bridging-Header.h"; path = "expovideosample/expovideosample-Bridging-Header.h"; sourceTree = ""; }; - 62153DA4E9934B0B8A79C68B /* Intents.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = Intents.framework; path = System/Library/Frameworks/Intents.framework; sourceTree = SDKROOT; }; + 158047E9C3784EAEA0CA240E /* broadcast.entitlements */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = text.plist.entitlements; name = broadcast.entitlements; path = broadcast.entitlements; sourceTree = ""; }; + 1B87530A1B9E48E2A68D3E2D /* GoogleService-Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "expovideosample/GoogleService-Info.plist"; sourceTree = ""; }; + 1D5EEAA33D54476E8080458C /* broadcast.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = undefined; name = broadcast.appex; path = broadcast.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 23E9C38E77A8A4C98FC56649 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = expovideosample/PrivacyInfo.xcprivacy; sourceTree = ""; }; + 2BF1967E7A584C9BA8D5AFD0 /* SocketConnection.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = SocketConnection.swift; path = SocketConnection.swift; sourceTree = ""; }; + 3B9DAAE34B382A5DA096163C /* Pods_expovideosample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_expovideosample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3C03E55019B544D09A6CC987 /* expovideosample-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "expovideosample-Bridging-Header.h"; path = "expovideosample/expovideosample-Bridging-Header.h"; sourceTree = ""; }; + 42137E28813A463C9EB9A66B /* CallKit.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; }; + 4D786DA1335B45CB93521AD2 /* Intents.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = Intents.framework; path = System/Library/Frameworks/Intents.framework; sourceTree = SDKROOT; }; 6C2E3173556A471DD304B334 /* Pods-expovideosample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-expovideosample.debug.xcconfig"; path = "Target Support Files/Pods-expovideosample/Pods-expovideosample.debug.xcconfig"; sourceTree = ""; }; + 6EA823ECE6B94C95A608F7DE /* DarwinNotificationCenter.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = DarwinNotificationCenter.swift; path = DarwinNotificationCenter.swift; sourceTree = ""; }; + 72227D6383A74D6FA7D6EECD /* SampleUploader.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = SampleUploader.swift; path = SampleUploader.swift; sourceTree = ""; }; 7A4D352CD337FB3A3BF06240 /* Pods-expovideosample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-expovideosample.release.xcconfig"; path = "Target Support Files/Pods-expovideosample/Pods-expovideosample.release.xcconfig"; sourceTree = ""; }; - 9D2C023E7E49A6E6BC6F2FA7 /* Pods_expovideosample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_expovideosample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A6C5DC1020204CA095D99BD3 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "expovideosample/noop-file.swift"; sourceTree = ""; }; AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = expovideosample/SplashScreen.storyboard; sourceTree = ""; }; - B7B22D9413C8405F82206646 /* CallKit.framework */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; }; BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; - BBF9D5B5A0294F938C26FA82 /* broadcast.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = undefined; name = broadcast.appex; path = broadcast.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - BC25E12286634B25BB3974DC /* SampleUploader.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = SampleUploader.swift; path = SampleUploader.swift; sourceTree = ""; }; - CA2F404E063841EB93075767 /* GoogleService-Info.plist */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "expovideosample/GoogleService-Info.plist"; sourceTree = ""; }; - E1BB5C79F2984EF6B5E86270 /* SocketConnection.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = SocketConnection.swift; path = SocketConnection.swift; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-expovideosample/ExpoModulesProvider.swift"; sourceTree = ""; }; + FE180BB8F0F844078A9BCDD8 /* SampleHandler.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = SampleHandler.swift; path = SampleHandler.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + 0E1355FD86EC4E058D6A9472 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 290814EFFB5046948F8BF1FA /* CallKit.framework in Frameworks */, - C1A0C58DC35743E382E0664C /* Intents.framework in Frameworks */, - 5A13D81B8B76193BCFD48A90 /* Pods_expovideosample.framework in Frameworks */, + BCCF9F969B264676BE9DA23E /* ReplayKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1C0E40C54311452FB740463B /* Frameworks */ = { + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 117CEA8885984539AAA14486 /* ReplayKit.framework in Frameworks */, + 256E6A80392942AF9ECA3A89 /* CallKit.framework in Frameworks */, + 7828157D1D00490E906412E9 /* Intents.framework in Frameworks */, + 3F92CE1ACC344DCE7F4F9EBB /* Pods_expovideosample.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -113,9 +115,10 @@ 13B07FB61A68108700A75B9A /* Info.plist */, 13B07FB71A68108700A75B9A /* main.m */, AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, - CA2F404E063841EB93075767 /* GoogleService-Info.plist */, - A6C5DC1020204CA095D99BD3 /* noop-file.swift */, - 4F79CA725111425C9E3AD6BA /* expovideosample-Bridging-Header.h */, + 1B87530A1B9E48E2A68D3E2D /* GoogleService-Info.plist */, + 0B7C31A0202048208D4B5997 /* noop-file.swift */, + 3C03E55019B544D09A6CC987 /* expovideosample-Bridging-Header.h */, + 23E9C38E77A8A4C98FC56649 /* PrivacyInfo.xcprivacy */, ); name = expovideosample; sourceTree = ""; @@ -124,14 +127,29 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - B7B22D9413C8405F82206646 /* CallKit.framework */, - 62153DA4E9934B0B8A79C68B /* Intents.framework */, - 13D4D3994A414D918CCC86D8 /* ReplayKit.framework */, - 9D2C023E7E49A6E6BC6F2FA7 /* Pods_expovideosample.framework */, + 42137E28813A463C9EB9A66B /* CallKit.framework */, + 4D786DA1335B45CB93521AD2 /* Intents.framework */, + 051237483F4144529034BAAC /* ReplayKit.framework */, + 3B9DAAE34B382A5DA096163C /* Pods_expovideosample.framework */, ); name = Frameworks; sourceTree = ""; }; + 67900E3335894CC6B219427E /* broadcast */ = { + isa = PBXGroup; + children = ( + FE180BB8F0F844078A9BCDD8 /* SampleHandler.swift */, + 12072E53993243B78AA0DEB0 /* Info.plist */, + 158047E9C3784EAEA0CA240E /* broadcast.entitlements */, + 122310C8064E42C9BB0BC981 /* Atomic.swift */, + 6EA823ECE6B94C95A608F7DE /* DarwinNotificationCenter.swift */, + 72227D6383A74D6FA7D6EECD /* SampleUploader.swift */, + 2BF1967E7A584C9BA8D5AFD0 /* SocketConnection.swift */, + ); + name = broadcast; + path = broadcast; + sourceTree = ""; + }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( @@ -148,7 +166,7 @@ 2D16E6871FA4F8E400B85C8A /* Frameworks */, D65327D7A22EEC0BE12398D9 /* Pods */, D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */, - F9D8FF44E92D4692A855A910 /* broadcast */, + 67900E3335894CC6B219427E /* broadcast */, ); indentWidth = 2; sourceTree = ""; @@ -159,7 +177,7 @@ isa = PBXGroup; children = ( 13B07F961A680F5B00A75B9A /* expovideosample.app */, - BBF9D5B5A0294F938C26FA82 /* broadcast.appex */, + 1D5EEAA33D54476E8080458C /* broadcast.appex */, ); name = Products; sourceTree = ""; @@ -198,66 +216,51 @@ name = ExpoModulesProviders; sourceTree = ""; }; - F9D8FF44E92D4692A855A910 /* broadcast */ = { - isa = PBXGroup; - children = ( - 0B0363C99B4E4D1EA746C3DE /* SampleHandler.swift */, - 3BDEE957938B43AD9351095F /* Info.plist */, - 26DAC082A1CF4F74A3CE6B94 /* broadcast.entitlements */, - 2A69BD393C3742B3BA8E25FF /* Atomic.swift */, - 3127278D462843EA81286CF9 /* DarwinNotificationCenter.swift */, - BC25E12286634B25BB3974DC /* SampleUploader.swift */, - E1BB5C79F2984EF6B5E86270 /* SocketConnection.swift */, - ); - name = broadcast; - path = broadcast; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 0B02A91F5F6A41FEB6FE93DA /* broadcast */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6EF215372D4A4A999A5A8E43 /* Build configuration list for PBXNativeTarget "broadcast" */; + buildPhases = ( + C728906DED624343B783E931 /* Sources */, + 0E1355FD86EC4E058D6A9472 /* Frameworks */, + 63EB3D4A30184566B1E5A77A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = broadcast; + productName = broadcast; + productReference = 1D5EEAA33D54476E8080458C /* broadcast.appex */; + productType = "com.apple.product-type.app-extension"; + }; 13B07F861A680F5B00A75B9A /* expovideosample */ = { isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "expovideosample" */; buildPhases = ( 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, - 9C92FA637B164BE79BFE1A84 /* [Expo] Configure project */, + A608E3019E4A32635E198DF2 /* [Expo] Configure project */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, - 70910EA7542443CAB7C38186 /* Embed App Extensions */, - 92714E5E63931BA4A574D389 /* [CP] Embed Pods Frameworks */, - 10447E3B76725D0A04F8D988 /* [CP-User] [RNFB] Core Configuration */, + A4CB8EB60CFB4C8F98BA6BB7 /* Embed App Extensions */, + 4369EDDE6D71F47D5EBBD3DC /* [CP] Embed Pods Frameworks */, + 383713C6E9F9BC2E0D5685F3 /* [CP-User] [RNFB] Core Configuration */, ); buildRules = ( ); dependencies = ( - 61C16534D9064F50B9B3180C /* PBXTargetDependency */, + 3DF21040EC874AB78BCC6D54 /* PBXTargetDependency */, ); name = expovideosample; productName = expovideosample; productReference = 13B07F961A680F5B00A75B9A /* expovideosample.app */; productType = "com.apple.product-type.application"; }; - 3D30FAE20C6248A495744A08 /* broadcast */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E2DB1EC6841424FACC2F8DE /* Build configuration list for PBXNativeTarget "broadcast" */; - buildPhases = ( - 6E9B58397E474915B92C2391 /* Sources */, - 1C0E40C54311452FB740463B /* Frameworks */, - 2A17C9DFB2B446F68D586517 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = broadcast; - productName = broadcast; - productReference = BBF9D5B5A0294F938C26FA82 /* broadcast.appex */; - productType = "com.apple.product-type.app-extension"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -267,16 +270,14 @@ LastSwiftUpdateCheck = 1340; LastUpgradeCheck = 1130; TargetAttributes = { - 13B07F861A680F5B00A75B9A = { - DevelopmentTeam = EHV7XZLAHA; - LastSwiftMigration = 1250; - ProvisioningStyle = Automatic; - }; - 3D30FAE20C6248A495744A08 = { + 0B02A91F5F6A41FEB6FE93DA = { CreatedOnToolsVersion = 13.4.1; DevelopmentTeam = EHV7XZLAHA; ProvisioningStyle = Automatic; }; + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1250; + }; }; }; buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "expovideosample" */; @@ -293,7 +294,7 @@ projectRoot = ""; targets = ( 13B07F861A680F5B00A75B9A /* expovideosample */, - 3D30FAE20C6248A495744A08 /* broadcast */, + 0B02A91F5F6A41FEB6FE93DA /* broadcast */, ); }; /* End PBXProject section */ @@ -306,11 +307,12 @@ BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, - 7AC70C88C8064066BFD60BA5 /* GoogleService-Info.plist in Resources */, + B23BBC60EF3046A78EF1B640 /* GoogleService-Info.plist in Resources */, + 85209989E3244EBB7E3707F1 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2A17C9DFB2B446F68D586517 /* Resources */ = { + 63EB3D4A30184566B1E5A77A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -333,7 +335,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios relative | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; + shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; }; 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; @@ -357,7 +359,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 10447E3B76725D0A04F8D988 /* [CP-User] [RNFB] Core Configuration */ = { + 383713C6E9F9BC2E0D5685F3 /* [CP-User] [RNFB] Core Configuration */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -370,6 +372,26 @@ shellPath = /bin/sh; shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n\n##########################################################################\n##########################################################################\n#\n# NOTE THAT IF YOU CHANGE THIS FILE YOU MUST RUN pod install AFTERWARDS\n#\n# This file is installed as an Xcode build script in the project file\n# by cocoapods, and you will not see your changes until you pod install\n#\n##########################################################################\n##########################################################################\n\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_analytics_storage\n _ANALYTICS_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_analytics_storage\")\n if [[ $_ANALYTICS_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_storage\n _ANALYTICS_AD_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_storage\")\n if [[ $_ANALYTICS_AD_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_user_data\n _ANALYTICS_AD_USER_DATA=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_user_data\")\n if [[ $_ANALYTICS_AD_USER_DATA ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_USER_DATA\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.analytics_registration_with_ad_network_enabled\n _ANALYTICS_REGISTRATION_WITH_AD_NETWORK=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_registration_with_ad_network_enabled\")\n if [[ $_ANALYTICS_REGISTRATION_WITH_AD_NETWORK ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_REGISTRATION_WITH_AD_NETWORK\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n"; }; + 4369EDDE6D71F47D5EBBD3DC /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-expovideosample/Pods-expovideosample-frameworks.sh", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiWebRTC/WebRTC.framework/WebRTC", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-expovideosample/Pods-expovideosample-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -391,6 +413,7 @@ "${PODS_CONFIGURATION_BUILD_DIR}/GoogleDataTransport/GoogleDataTransport_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises_Privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb_Privacy.bundle", ); @@ -410,6 +433,7 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleDataTransport_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleUtilities_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FBLPromises_Privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/nanopb_Privacy.bundle", ); @@ -418,27 +442,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-expovideosample/Pods-expovideosample-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 92714E5E63931BA4A574D389 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-expovideosample/Pods-expovideosample-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiWebRTC/WebRTC.framework/WebRTC", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-expovideosample/Pods-expovideosample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 9C92FA637B164BE79BFE1A84 /* [Expo] Configure project */ = { + A608E3019E4A32635E198DF2 /* [Expo] Configure project */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; @@ -467,29 +471,29 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, - A533365FDF424E6A84F8527B /* noop-file.swift in Sources */, + C22C630153E2421294F2ED9F /* noop-file.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6E9B58397E474915B92C2391 /* Sources */ = { + C728906DED624343B783E931 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FB33D8B02B8547CE9349D6FA /* SampleHandler.swift in Sources */, - C3EBD21CF1CA431794452067 /* Atomic.swift in Sources */, - 7ED82B2DA4704325BDE72B13 /* DarwinNotificationCenter.swift in Sources */, - 13305095FC2A4BE1AE9DFC32 /* SampleUploader.swift in Sources */, - A75676DD1AF64E399AE1A0A0 /* SocketConnection.swift in Sources */, + B4DF33A481AC4F369DAB458F /* SampleHandler.swift in Sources */, + F78F62EE83704A68ABF73021 /* Atomic.swift in Sources */, + 61C0D56ADA7847F7833FC567 /* DarwinNotificationCenter.swift in Sources */, + 6A68CD95E5B243E8844F7A0E /* SampleUploader.swift in Sources */, + 3F366EE4670B4461AA58A8A4 /* SocketConnection.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 61C16534D9064F50B9B3180C /* PBXTargetDependency */ = { + 3DF21040EC874AB78BCC6D54 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 3D30FAE20C6248A495744A08 /* broadcast */; - targetProxy = DC57ED76042D44108AED1F6A /* PBXContainerItemProxy */; + target = 0B02A91F5F6A41FEB6FE93DA /* broadcast */; + targetProxy = C4F39B40F05142919EDEF7E7 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -502,10 +506,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = expovideosample/expovideosample.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = EHV7XZLAHA; ENABLE_BITCODE = NO; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", @@ -526,7 +527,7 @@ ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = io.getstream.expovideosample; - PRODUCT_NAME = "expovideosample"; + PRODUCT_NAME = expovideosample; SWIFT_OBJC_BRIDGING_HEADER = "expovideosample/expovideosample-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -543,10 +544,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = expovideosample/expovideosample.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = EHV7XZLAHA; ENABLE_BITCODE = NO; HEADER_SEARCH_PATHS = ( "$(inherited)", @@ -563,7 +561,7 @@ ); OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = io.getstream.expovideosample; - PRODUCT_NAME = "expovideosample"; + PRODUCT_NAME = expovideosample; SWIFT_OBJC_BRIDGING_HEADER = "expovideosample/expovideosample-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -571,7 +569,7 @@ }; name = Release; }; - 3E5D10B961EF4C3893C1DD4E /* Release */ = { + 62A83ADA67354AE6886FB65F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_ANALYZER_NONNULL = YES; @@ -582,12 +580,10 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = broadcast/broadcast.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = EHV7XZLAHA; ENABLE_BITCODE = NO; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -614,6 +610,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -640,10 +637,10 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CXX = ""; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -671,13 +668,16 @@ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = ""; + LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited)"; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; @@ -688,6 +688,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -714,10 +715,10 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + CXX = ""; ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -738,12 +739,15 @@ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = ""; + LDPLUSPLUS = ""; LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "$(inherited)"; - OTHER_CPLUSPLUSFLAGS = "$(inherited)"; - OTHER_LDFLAGS = "$(inherited)"; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; @@ -751,7 +755,7 @@ }; name = Release; }; - FA811D179D7141E9A53C7C18 /* Debug */ = { + AF08D85E9C814770BFF12A85 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_ANALYZER_NONNULL = YES; @@ -762,11 +766,9 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = broadcast/broadcast.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = EHV7XZLAHA; ENABLE_BITCODE = NO; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -793,20 +795,20 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0E2DB1EC6841424FACC2F8DE /* Build configuration list for PBXNativeTarget "broadcast" */ = { + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "expovideosample" */ = { isa = XCConfigurationList; buildConfigurations = ( - FA811D179D7141E9A53C7C18 /* Debug */, - 3E5D10B961EF4C3893C1DD4E /* Release */, + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "expovideosample" */ = { + 6EF215372D4A4A999A5A8E43 /* Build configuration list for PBXNativeTarget "broadcast" */ = { isa = XCConfigurationList; buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, + AF08D85E9C814770BFF12A85 /* Debug */, + 62A83ADA67354AE6886FB65F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/sample-apps/react-native/expo-video-sample/ios/expovideosample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/sample-apps/react-native/expo-video-sample/ios/expovideosample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d..0000000000 --- a/sample-apps/react-native/expo-video-sample/ios/expovideosample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/sample-apps/react-native/expo-video-sample/ios/expovideosample/AppDelegate.mm b/sample-apps/react-native/expo-video-sample/ios/expovideosample/AppDelegate.mm index 91afd789cc..5e38c04c90 100644 --- a/sample-apps/react-native/expo-video-sample/ios/expovideosample/AppDelegate.mm +++ b/sample-apps/react-native/expo-video-sample/ios/expovideosample/AppDelegate.mm @@ -34,10 +34,10 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { - return [self getBundleURL]; + return [self bundleURL]; } -- (NSURL *)getBundleURL +- (NSURL *)bundleURL { #if DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"]; diff --git a/sample-apps/react-native/expo-video-sample/ios/expovideosample/Info.plist b/sample-apps/react-native/expo-video-sample/ios/expovideosample/Info.plist index e42edc5bfb..f5288bbebc 100644 --- a/sample-apps/react-native/expo-video-sample/ios/expovideosample/Info.plist +++ b/sample-apps/react-native/expo-video-sample/ios/expovideosample/Info.plist @@ -44,9 +44,15 @@ NSCameraUsageDescription - Allow $(PRODUCT_NAME) to access your camera + $(PRODUCT_NAME) requires camera access in order to capture and transmit video NSMicrophoneUsageDescription - Allow $(PRODUCT_NAME) to access your microphone + $(PRODUCT_NAME) requires microphone access in order to capture and transmit audio + NSUserActivityTypes + + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + $(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route + RTCAppGroupIdentifier group.io.getstream.expovideosample.appgroup RTCScreenSharingExtension @@ -62,7 +68,7 @@ SplashScreen UIRequiredDeviceCapabilities - armv7 + arm64 UIRequiresFullScreen diff --git a/sample-apps/react-native/expo-video-sample/ios/expovideosample/PrivacyInfo.xcprivacy b/sample-apps/react-native/expo-video-sample/ios/expovideosample/PrivacyInfo.xcprivacy new file mode 100644 index 0000000000..02a8a056e8 --- /dev/null +++ b/sample-apps/react-native/expo-video-sample/ios/expovideosample/PrivacyInfo.xcprivacy @@ -0,0 +1,50 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + 0A2A.1 + 3B52.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + 1C8F.1 + C56D.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 + 85F4.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/sample-apps/react-native/expo-video-sample/ios/expovideosample/Supporting/Expo.plist b/sample-apps/react-native/expo-video-sample/ios/expovideosample/Supporting/Expo.plist index 540b7462fb..20025234c9 100644 --- a/sample-apps/react-native/expo-video-sample/ios/expovideosample/Supporting/Expo.plist +++ b/sample-apps/react-native/expo-video-sample/ios/expovideosample/Supporting/Expo.plist @@ -9,6 +9,6 @@ EXUpdatesLaunchWaitMs 0 EXUpdatesSDKVersion - 50.0.0 + 51.0.0 \ No newline at end of file diff --git a/sample-apps/react-native/expo-video-sample/package.json b/sample-apps/react-native/expo-video-sample/package.json index fe6e612ac6..17420dea97 100644 --- a/sample-apps/react-native/expo-video-sample/package.json +++ b/sample-apps/react-native/expo-video-sample/package.json @@ -12,30 +12,30 @@ "dependencies": { "@config-plugins/react-native-callkeep": "^6.0.0", "@config-plugins/react-native-webrtc": "^9.0.0", - "@notifee/react-native": "^7.8.0", - "@react-native-async-storage/async-storage": "1.21.0", - "@react-native-community/netinfo": "11.1.0", + "@notifee/react-native": "^9.1.1", + "@react-native-async-storage/async-storage": "1.23.1", + "@react-native-community/netinfo": "11.3.1", "@react-native-firebase/app": "19.2.2", "@react-native-firebase/messaging": "19.2.2", "@stream-io/react-native-webrtc": "118.1.0", "@stream-io/video-react-native-sdk": "workspace:^", - "expo": "~50.0.19", - "expo-constants": "~15.4.6", - "expo-linking": "~6.2.2", - "expo-notifications": "~0.27.8", - "expo-router": "~3.4.10", - "expo-splash-screen": "~0.26.5", - "expo-status-bar": "~1.11.1", - "expo-task-manager": "~11.7.3", + "expo": "51", + "expo-constants": "~16.0.2", + "expo-linking": "~6.3.1", + "expo-notifications": "~0.28.18", + "expo-router": "~3.5.23", + "expo-splash-screen": "~0.27.6", + "expo-status-bar": "~1.12.1", + "expo-task-manager": "~11.8.2", "react": "18.2.0", - "react-native": "0.73.6", + "react-native": "0.74.5", "react-native-callkeep": "4.3.12", - "react-native-gesture-handler": "~2.14.0", + "react-native-gesture-handler": "~2.16.1", "react-native-incall-manager": "^4.2.0", - "react-native-reanimated": "~3.6.0", - "react-native-safe-area-context": "4.8.2", - "react-native-screens": "~3.29.0", - "react-native-svg": "14.1.0", + "react-native-reanimated": "~3.10.1", + "react-native-safe-area-context": "4.10.5", + "react-native-screens": "3.31.1", + "react-native-svg": "15.2.0", "react-native-voip-push-notification": "^3.3.2" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index bbf280b456..95c8cb70c6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -43,13 +43,13 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/code-frame@npm:7.25.7" dependencies: - "@babel/highlight": ^7.24.7 + "@babel/highlight": ^7.25.7 picocolors: ^1.0.0 - checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 + checksum: f235cdf9c5d6f172898a27949bd63731c5f201671f77bcf4c2ad97229bc462d89746c1a7f5671a132aecff5baf43f3d878b93a7ecc6aa71f9612d2b51270c53e languageName: node linkType: hard @@ -97,24 +97,37 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.20.5, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6, @babel/generator@npm:^7.7.2": - version: 7.25.6 - resolution: "@babel/generator@npm:7.25.6" +"@babel/generator@npm:7.2.0": + version: 7.2.0 + resolution: "@babel/generator@npm:7.2.0" dependencies: - "@babel/types": ^7.25.6 + "@babel/types": ^7.2.0 + jsesc: ^2.5.1 + lodash: ^4.17.10 + source-map: ^0.5.0 + trim-right: ^1.0.1 + checksum: 0cfa36e3fee34908194e85a87dfcd2a92425e3810396556ae0c7987707754f1a2502cd66590fec0a5b7bf532ec021b8e2925a1119db54ed5b48f1e3c43145891 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.20.5, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.7, @babel/generator@npm:^7.7.2": + version: 7.25.7 + resolution: "@babel/generator@npm:7.25.7" + dependencies: + "@babel/types": ^7.25.7 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: b55975cd664f5602304d868bb34f4ee3bed6f5c7ce8132cd92ff27a46a53a119def28a182d91992e86f75db904f63094a81247703c4dc96e4db0c03fd04bcd68 + jsesc: ^3.0.2 + checksum: f81cf9dc0191ae4411d82978114382ad6e047bfb678f9a95942bac5034a41719d88f047679f5e2f51ba7728b54ebd1cc32a10df7b556215d8a6ab9bdd4f11831 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5, @babel/helper-annotate-as-pure@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" +"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5, @babel/helper-annotate-as-pure@npm:^7.24.7, @babel/helper-annotate-as-pure@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.7" dependencies: - "@babel/types": ^7.24.7 - checksum: 6178566099a6a0657db7a7fa601a54fb4731ca0b8614fbdccfd8e523c210c13963649bc8fdfd53ce7dd14d05e3dda2fb22dea5b30113c488b9eb1a906d60212e + "@babel/types": ^7.25.7 + checksum: 4b3680b31244ee740828cd7537d5e5323dd9858c245a02f5636d54e45956f42d77bbe9e1dd743e6763eb47c25967a8b12823002cc47809f5f7d8bc24eefe0304 languageName: node linkType: hard @@ -141,20 +154,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.10, @babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.10, @babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.4, @babel/helper-create-class-features-plugin@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-member-expression-to-functions": ^7.24.8 - "@babel/helper-optimise-call-expression": ^7.24.7 - "@babel/helper-replace-supers": ^7.25.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - "@babel/traverse": ^7.25.4 + "@babel/helper-annotate-as-pure": ^7.25.7 + "@babel/helper-member-expression-to-functions": ^7.25.7 + "@babel/helper-optimise-call-expression": ^7.25.7 + "@babel/helper-replace-supers": ^7.25.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.7 + "@babel/traverse": ^7.25.7 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 4544ebda4516eb25efdebd47ca024bd7bdb1eb6e7cc3ad89688c8ef8e889734c2f4411ed78981899c641394f013f246f2af63d92a0e9270f6c453309b4cb89ba + checksum: 6b04760b405cff47b82c7e121fc3fe335bc470806bff49467675581f1cfe285a68ed3d6b00001ad47e28aa4b224f095e03eb7a184dc35e3c651e8f83e0cc6f43 languageName: node linkType: hard @@ -211,53 +224,53 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" +"@babel/helper-member-expression-to-functions@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7" dependencies: - "@babel/traverse": ^7.24.8 - "@babel/types": ^7.24.8 - checksum: bf923d05d81b06857f4ca4fe9c528c9c447a58db5ea39595bb559eae2fce01a8266173db0fd6a2ec129d7bbbb9bb22f4e90008252f7c66b422c76630a878a4bc + "@babel/traverse": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 12141c17b92a36a00f878abccbee1dfdd848fa4995d502b623190076f10696241949b30e51485187cee1c1527dbf4610a59d8fd80d2e31aac1131e474b5bfed6 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.21.4, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.21.4, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.7, @babel/helper-module-imports@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-imports@npm:7.25.7" dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 + "@babel/traverse": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: a7255755e9799978de4bf72563b94b53cf955e5fc3d2acc67c783d3b84d5d34dd41691e473ecc124a94654483fff573deacd87eccd8bd16b47ac4455b5941b30 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" +"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2, @babel/helper-module-transforms@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-transforms@npm:7.25.7" dependencies: - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.2 + "@babel/helper-module-imports": ^7.25.7 + "@babel/helper-simple-access": ^7.25.7 + "@babel/helper-validator-identifier": ^7.25.7 + "@babel/traverse": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: 282d4e3308df6746289e46e9c39a0870819630af5f84d632559171e4fae6045684d771a65f62df3d569e88ccf81dc2def78b8338a449ae3a94bb421aa14fc367 + checksum: b1daeded78243da969d90b105a564ed918dcded66fba5cd24fe09cb13f7ee9e84d9b9dee789d60237b9a674582d9831a35dbaf6f0a92a3af5f035234a5422814 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" +"@babel/helper-optimise-call-expression@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.7" dependencies: - "@babel/types": ^7.24.7 - checksum: 280654eaf90e92bf383d7eed49019573fb35a98c9e992668f701ad099957246721044be2068cf6840cb2299e0ad393705a1981c88c23a1048096a8d59e5f79a3 + "@babel/types": ^7.25.7 + checksum: 5555d2d3f11f424e38ad8383efccc7ebad4f38fddd2782de46c5fcbf77a5e1e0bc5b8cdbee3bd59ab38f353690568ffe08c7830f39b0aff23f5179d345799f06 languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.25.7 + resolution: "@babel/helper-plugin-utils@npm:7.25.7" + checksum: eef4450361e597f11247d252e69207324dfe0431df9b8bcecc8bef1204358e93fa7776a659c3c4f439e9ee71cd967aeca6c4d6034ebc17a7ae48143bbb580f2f languageName: node linkType: hard @@ -274,36 +287,36 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.9, @babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-replace-supers@npm:7.25.0" +"@babel/helper-replace-supers@npm:^7.22.9, @babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0, @babel/helper-replace-supers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-replace-supers@npm:7.25.7" dependencies: - "@babel/helper-member-expression-to-functions": ^7.24.8 - "@babel/helper-optimise-call-expression": ^7.24.7 - "@babel/traverse": ^7.25.0 + "@babel/helper-member-expression-to-functions": ^7.25.7 + "@babel/helper-optimise-call-expression": ^7.25.7 + "@babel/traverse": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: f669fc2487c22d40b808f94b9c3ee41129484d5ef0ba689bdd70f216ff91e10b6b021d2f8cd37e7bdd700235a2a6ae6622526344f064528190383bf661ac65f8 + checksum: bbfb4de148b1ce24d0f953b1e7cd31a8f8e8e881f3cd908d1848c0f453c87b4a1529c0b9c5a9e8b70de734a6993b3bb2f3594af16f46f5324a9461aaa04976c4 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" +"@babel/helper-simple-access@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-simple-access@npm:7.25.7" dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 + "@babel/traverse": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 684d0b0330c42d62834355f127df3ed78f16e6f1f66213c72adb7b3b0bcd6283ea8792f5b172868b3ca6518c479b54e18adac564219519072dda9053cca210bd languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7, @babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7" dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 11b28fe534ce2b1a67c4d8e51a7b5711a2a0a0cae802f74614eee54cca58c744d9a62f6f60103c41759e81c537d270bfd665bf368a6bea214c6052f2094f8407 + "@babel/traverse": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 2fbdcef036135ffd14ab50861e3560c455e532f9a470e7ed97141b6a7f17bfcc2977b29d16affd0634c6656de4fcc0e91f3bc62a50a4e5d6314cb6164c4d3a67 languageName: node linkType: hard @@ -316,24 +329,24 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce +"@babel/helper-string-parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-string-parser@npm:7.25.7" + checksum: 0835fda5efe02cdcb5144a939b639acc017ba4aa1cc80524b44032ddb714080d3e40e8f0d3240832b7bd86f5513f0b63d4fe77d8fc52d8c8720ae674182c0753 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 +"@babel/helper-validator-identifier@npm:^7.24.7, @babel/helper-validator-identifier@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-identifier@npm:7.25.7" + checksum: 062f55208deead4876eb474dc6fd55155c9eada8d0a505434de3b9aa06c34195562e0f3142b22a08793a38d740238efa2fe00ff42956cdcb8ac03f0b6c542247 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.24.7, @babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.24.8, @babel/helper-validator-option@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-option@npm:7.25.7" + checksum: 87b801fe7d8337699f2fba5323243dd974ea214d27cf51faf2f0063da6dc5bb67c9bb7867fd337573870f9ab498d2788a75bcf9685442bd9430611c62b0195d1 languageName: node linkType: hard @@ -358,26 +371,26 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/highlight@npm:7.25.7" dependencies: - "@babel/helper-validator-identifier": ^7.24.7 + "@babel/helper-validator-identifier": ^7.25.7 chalk: ^2.4.2 js-tokens: ^4.0.0 picocolors: ^1.0.0 - checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 + checksum: b6aa45c5bf7ecc16b8204bbed90335706131ac6cacb0f1bfb1b862ada3741539c913b56c9d26beb56cece0c231ffab36f66aa36aac6b04b32669c314705203f2 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/parser@npm:7.25.6" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.7": + version: 7.25.8 + resolution: "@babel/parser@npm:7.25.8" dependencies: - "@babel/types": ^7.25.6 + "@babel/types": ^7.25.8 bin: parser: ./bin/babel-parser.js - checksum: 85b237ded09ee43cc984493c35f3b1ff8a83e8dbbb8026b8132e692db6567acc5a1659ec928e4baa25499ddd840d7dae9dee3062be7108fe23ec5f94a8066b1e + checksum: c33f6d26542f156927c5dbe131265c791177d271e582338e960f803903086ec5c152bf25deae5f4c061b7bee14dc0b5fd2882ccb5a21c16ee0738d24fcc0406e languageName: node linkType: hard @@ -747,14 +760,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.24.7, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.24.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" +"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.25.7, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.25.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7a5ca629d8ca1e1ee78705a78e58c12920d07ed8006d7e7232b31296a384ff5e41d7b649bde5561196041037bbb9f9715be1d1c20975df87ca204f34ad15b965 + checksum: 3584566707a1c92e48b3ad2423af73bc4497093fb17fb786977fc5aef6130ae7a2f7856a7848431bed1ac21b4a8d86d2ff4505325b700f76f9bd57b4e95a2297 languageName: node linkType: hard @@ -846,14 +859,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.24.7, @babel/plugin-syntax-typescript@npm:^7.3.3, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.24.7 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" +"@babel/plugin-syntax-typescript@npm:^7.25.7, @babel/plugin-syntax-typescript@npm:^7.3.3, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.25.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 56fe84f3044ecbf038977281648db6b63bd1301f2fff6595820dc10ee276c1d1586919d48d52a8d497ecae32c958be38f42c1c8d174dc58aad856c516dc5b35a + checksum: b347da4c681d41c1780417939e9a0388c23cbe46ac9d2d6e5ef2119914bce11ea607963252a87e2c9f8e09eb5e0dac6b9741d79a7c7214c49b314d325d79ba8b languageName: node linkType: hard @@ -869,14 +882,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.0.0-0, @babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 707c209b5331c7dc79bd326128c6a6640dbd62a78da1653c844db20c4f36bf7b68454f1bc4d2d051b3fde9136fa291f276ec03a071bb00ee653069ff82f91010 + checksum: e3433df7f487393a207d9942db604493f07b1f59dd8995add55d97ffe6a8f566360fbc9bf54b820a76f05308e46fca524069087e5c975a22b978faa711d56bf6 languageName: node linkType: hard @@ -1159,16 +1172,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.7, @babel/plugin-transform-modules-commonjs@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7" dependencies: - "@babel/helper-module-transforms": ^7.24.8 - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-simple-access": ^7.24.7 + "@babel/helper-module-transforms": ^7.25.7 + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-simple-access": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a4cf95b1639c33382064b44558f73ee5fac023f2a94d16e549d2bb55ceebd5cbc10fcddd505d08cd5bc97f5a64af9fd155512358b7dcf7b1a0082e8945cf21c5 + checksum: 440ba085e0c66a8f65a760f669f699623c759c8e13c57aed6df505e1ded1df7d5f050c07a4ff3273c4a327301058f5dcfeea6743cbd260bd4fed5f4e7006c5d7 languageName: node linkType: hard @@ -1221,15 +1234,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.0.0-0, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.25.8 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/helper-plugin-utils": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4a9221356401d87762afbc37a9e8e764afc2daf09c421117537820f8cfbed6876888372ad3a7bcfae2d45c95f026651f050ab4020b777be31d3ffb00908dbdd3 + checksum: 9941b638a4dce9e1bde3bd26d426fc0250c811f7fdfa76f6d1310e37f30b051e829e5027441c75ca4e0559dddbb0db9ac231a972d848e75abd1b4b57ec0b7b08 languageName: node linkType: hard @@ -1294,16 +1306,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" +"@babel/plugin-transform-optional-chaining@npm:^7.0.0-0, @babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8": + version: 7.25.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8" dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 45e55e3a2fffb89002d3f89aef59c141610f23b60eee41e047380bffc40290b59f64fc649aa7ec5281f73d41b2065410d788acc6afaad2a9f44cad6e8af04442 + checksum: 234cf8487aa6e61d1d73073f780686490f81eaa1792f9e8da3d0db6bd979b9aa29804b34f9ade80ee5e9c77e65e95d7dc8650d1a34e90511be43341065a75dfc languageName: node linkType: hard @@ -1465,14 +1476,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.0.0-0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7b524245814607188212b8eb86d8c850e5974203328455a30881b4a92c364b93353fae14bc2af5b614ef16300b75b8c1d3b8f3a08355985b4794a7feb240adc3 + checksum: 62f4fbd1aeec76a0bc41c89fad30ee0687b2070720a3f21322e769d889a12bd58f76c73901b3dff6e6892fb514411839482a2792b99f26a73b0dd8f57cb6b3d8 languageName: node linkType: hard @@ -1499,14 +1510,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" +"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.0.0-0, @babel/plugin-transform-template-literals@npm:^7.24.7": + version: 7.25.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ad44e5826f5a98c1575832dbdbd033adfe683cdff195e178528ead62507564bf02f479b282976cfd3caebad8b06d5fd7349c1cdb880dec3c56daea4f1f179619 + checksum: f1776fb4181ca41a35adb8a427748999b6c24cbb25778b78f716179e9c8bc28b03ef88da8062914e6327ef277844b4bbdac9dc0c6d6076855fc36af593661275 languageName: node linkType: hard @@ -1521,17 +1532,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.24.7, @babel/plugin-transform-typescript@npm:^7.5.0": - version: 7.24.7 - resolution: "@babel/plugin-transform-typescript@npm:7.24.7" +"@babel/plugin-transform-typescript@npm:^7.25.7, @babel/plugin-transform-typescript@npm:^7.5.0": + version: 7.25.7 + resolution: "@babel/plugin-transform-typescript@npm:7.25.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-create-class-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-typescript": ^7.24.7 + "@babel/helper-annotate-as-pure": ^7.25.7 + "@babel/helper-create-class-features-plugin": ^7.25.7 + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.7 + "@babel/plugin-syntax-typescript": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b367d1e3d6bdbe438878a76436fc6903e2b4fd7c31fa036d43865570d282679ec3f7c0306399851f2866a9b36686a0ea8c343df3750f70d427f1fe20ca54310 + checksum: d3b419a05e032385a6666c0612e23f18d54c60e6ec7613fec377424f1b338e4cc1229a2a6b9df0b18bb2b15e8d25024cdabd160c3b86e66f4e13d021695f1b82 languageName: node linkType: hard @@ -1717,18 +1729,18 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.17.12, @babel/preset-typescript@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/preset-typescript@npm:7.24.7" +"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.0, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.17.12, @babel/preset-typescript@npm:^7.23.0, @babel/preset-typescript@npm:^7.24.7": + version: 7.25.7 + resolution: "@babel/preset-typescript@npm:7.25.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-validator-option": ^7.24.7 - "@babel/plugin-syntax-jsx": ^7.24.7 - "@babel/plugin-transform-modules-commonjs": ^7.24.7 - "@babel/plugin-transform-typescript": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.7 + "@babel/helper-validator-option": ^7.25.7 + "@babel/plugin-syntax-jsx": ^7.25.7 + "@babel/plugin-transform-modules-commonjs": ^7.25.7 + "@babel/plugin-transform-typescript": ^7.25.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 12929b24757f3bd6548103475f86478eda4c872bc7cefd920b29591eee8f4a4f350561d888e133d632d0c9402b8615fdcec9138e5127a6567dcb22f804ff207f + checksum: e482651092a8f73f13bdabc70d670381c1ccc7764f7f68abdc8ebb173c850e3e762d00ec1f562ef026eb616a5a339b140111d33f5a9c8e9c98130b68eb176f04 languageName: node linkType: hard @@ -1763,40 +1775,40 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.0.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.3.3": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" +"@babel/template@npm:^7.0.0, @babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.25.7, @babel/template@npm:^7.3.3": + version: 7.25.7 + resolution: "@babel/template@npm:7.25.7" dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/parser": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b + "@babel/code-frame": ^7.25.7 + "@babel/parser": ^7.25.7 + "@babel/types": ^7.25.7 + checksum: 83f025a4a777103965ee41b7c0fa2bb1c847ea7ed2b9f2cb258998ea96dfc580206176b532edf6d723d85237bc06fca26be5c8772e2af7d9e4fe6927e3bed8a3 languageName: node linkType: hard -"@babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.4, @babel/traverse@npm:^7.7.4": - version: 7.25.6 - resolution: "@babel/traverse@npm:7.25.6" +"@babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.4, @babel/traverse@npm:^7.25.7, @babel/traverse@npm:^7.7.4": + version: 7.25.7 + resolution: "@babel/traverse@npm:7.25.7" dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.6 - "@babel/parser": ^7.25.6 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.6 + "@babel/code-frame": ^7.25.7 + "@babel/generator": ^7.25.7 + "@babel/parser": ^7.25.7 + "@babel/template": ^7.25.7 + "@babel/types": ^7.25.7 debug: ^4.3.1 globals: ^11.1.0 - checksum: 11ee47269aa4356f2d6633a05b9af73405b5ed72c09378daf644289b686ef852035a6ac9aa410f601991993c6bbf72006795b5478283b78eb1ca77874ada7737 + checksum: 4d329b6e7a409a63f4815bbc0a08d0b0cb566c5a2fecd1767661fe1821ced213c554d7d74e6aca048672fed2c8f76071cb0d94f4bd5f120fba8d55a38af63094 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.25.6 - resolution: "@babel/types@npm:7.25.6" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.19.0, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.25.8 + resolution: "@babel/types@npm:7.25.8" dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 + "@babel/helper-string-parser": ^7.25.7 + "@babel/helper-validator-identifier": ^7.25.7 to-fast-properties: ^2.0.0 - checksum: 9b2f84ff3f874ad05b0b9bf06862c56f478b65781801f82296b4cc01bee39e79c20a7c0a06959fed0ee582c8267e1cb21638318655c5e070b0287242a844d1c9 + checksum: 93d84858e820dbfa0fc4882b3ba6a421544d224ee61455a58eed0af9fc3518b30dc2166b8ba48cdd2e91083c5885ed773c36acf46d177b7b1fad9c35b6eb7639 languageName: node linkType: hard @@ -2573,6 +2585,93 @@ __metadata: languageName: node linkType: hard +"@expo/cli@npm:0.18.30": + version: 0.18.30 + resolution: "@expo/cli@npm:0.18.30" + dependencies: + "@babel/runtime": ^7.20.0 + "@expo/code-signing-certificates": 0.0.5 + "@expo/config": ~9.0.0-beta.0 + "@expo/config-plugins": ~8.0.8 + "@expo/devcert": ^1.0.0 + "@expo/env": ~0.3.0 + "@expo/image-utils": ^0.5.0 + "@expo/json-file": ^8.3.0 + "@expo/metro-config": 0.18.11 + "@expo/osascript": ^2.0.31 + "@expo/package-manager": ^1.5.0 + "@expo/plist": ^0.1.0 + "@expo/prebuild-config": 7.0.9 + "@expo/rudder-sdk-node": 1.1.1 + "@expo/spawn-async": ^1.7.2 + "@expo/xcpretty": ^4.3.0 + "@react-native/dev-middleware": 0.74.85 + "@urql/core": 2.3.6 + "@urql/exchange-retry": 0.3.0 + accepts: ^1.3.8 + arg: 5.0.2 + better-opn: ~3.0.2 + bplist-creator: 0.0.7 + bplist-parser: ^0.3.1 + cacache: ^18.0.2 + chalk: ^4.0.0 + ci-info: ^3.3.0 + connect: ^3.7.0 + debug: ^4.3.4 + env-editor: ^0.4.1 + fast-glob: ^3.3.2 + find-yarn-workspace-root: ~2.0.0 + form-data: ^3.0.1 + freeport-async: 2.0.0 + fs-extra: ~8.1.0 + getenv: ^1.0.0 + glob: ^7.1.7 + graphql: 15.8.0 + graphql-tag: ^2.10.1 + https-proxy-agent: ^5.0.1 + internal-ip: 4.3.0 + is-docker: ^2.0.0 + is-wsl: ^2.1.1 + js-yaml: ^3.13.1 + json-schema-deref-sync: ^0.13.0 + lodash.debounce: ^4.0.8 + md5hex: ^1.0.0 + minimatch: ^3.0.4 + node-fetch: ^2.6.7 + node-forge: ^1.3.1 + npm-package-arg: ^7.0.0 + open: ^8.3.0 + ora: 3.4.0 + picomatch: ^3.0.1 + pretty-bytes: 5.6.0 + progress: 2.0.3 + prompts: ^2.3.2 + qrcode-terminal: 0.11.0 + require-from-string: ^2.0.2 + requireg: ^0.2.2 + resolve: ^1.22.2 + resolve-from: ^5.0.0 + resolve.exports: ^2.0.2 + semver: ^7.6.0 + send: ^0.18.0 + slugify: ^1.3.4 + source-map-support: ~0.5.21 + stacktrace-parser: ^0.1.10 + structured-headers: ^0.4.1 + tar: ^6.0.5 + temp-dir: ^2.0.0 + tempy: ^0.7.1 + terminal-link: ^2.1.1 + text-table: ^0.2.0 + url-join: 4.0.0 + wrap-ansi: ^7.0.0 + ws: ^8.12.1 + bin: + expo-internal: build/bin/cli + checksum: b4d422bac862efe592491782006414c776908612381632d6a604cfaad88ab07cd739efadedc2ec673090bbf00651bcbb00a26204b49643e1f263e74bbaa88b48 + languageName: node + linkType: hard + "@expo/code-signing-certificates@npm:0.0.5": version: 0.0.5 resolution: "@expo/code-signing-certificates@npm:0.0.5" @@ -2608,6 +2707,29 @@ __metadata: languageName: node linkType: hard +"@expo/config-plugins@npm:8.0.10, @expo/config-plugins@npm:~8.0.0-beta.0, @expo/config-plugins@npm:~8.0.8": + version: 8.0.10 + resolution: "@expo/config-plugins@npm:8.0.10" + dependencies: + "@expo/config-types": ^51.0.3 + "@expo/json-file": ~8.3.0 + "@expo/plist": ^0.1.0 + "@expo/sdk-runtime-versions": ^1.0.0 + chalk: ^4.1.2 + debug: ^4.3.1 + find-up: ~5.0.0 + getenv: ^1.0.0 + glob: 7.1.6 + resolve-from: ^5.0.0 + semver: ^7.5.4 + slash: ^3.0.0 + slugify: ^1.6.6 + xcode: ^3.0.1 + xml2js: 0.6.0 + checksum: 16dd818c6f52e5d0298e28a37b6fa3a6c3c5dd070c851642760f62a062058192a4b91f73e57cf9f5e1a3be4ffe9c48c46a965366756c108531b915f214dd2182 + languageName: node + linkType: hard + "@expo/config-plugins@npm:~7.8.4": version: 7.8.4 resolution: "@expo/config-plugins@npm:7.8.4" @@ -2640,6 +2762,13 @@ __metadata: languageName: node linkType: hard +"@expo/config-types@npm:^51.0.0-unreleased, @expo/config-types@npm:^51.0.3": + version: 51.0.3 + resolution: "@expo/config-types@npm:51.0.3" + checksum: c46def814a5e0d6c8358b9767a89f51239f4f1c3b4a5305ffcfa1a86e4360ac40de54a65f7c6e787be7656e4144c99a050e98b600a1edd3d6e8e20c83d8e107b + languageName: node + linkType: hard + "@expo/config@npm:8.5.6, @expo/config@npm:~8.5.0": version: 8.5.6 resolution: "@expo/config@npm:8.5.6" @@ -2659,6 +2788,25 @@ __metadata: languageName: node linkType: hard +"@expo/config@npm:9.0.4, @expo/config@npm:~9.0.0, @expo/config@npm:~9.0.0-beta.0": + version: 9.0.4 + resolution: "@expo/config@npm:9.0.4" + dependencies: + "@babel/code-frame": ~7.10.4 + "@expo/config-plugins": ~8.0.8 + "@expo/config-types": ^51.0.3 + "@expo/json-file": ^8.3.0 + getenv: ^1.0.0 + glob: 7.1.6 + require-from-string: ^2.0.2 + resolve-from: ^5.0.0 + semver: ^7.6.0 + slugify: ^1.3.4 + sucrase: 3.34.0 + checksum: a00b2690a1abbfd83f419c436dcff8590d1e8c8c0a598339ae30da57aedde49564e5bd5f71edf4d634ebe079c4008a64eb9850ee4cf69592a7506c71a36f3132 + languageName: node + linkType: hard + "@expo/devcert@npm:^1.0.0": version: 1.1.0 resolution: "@expo/devcert@npm:1.1.0" @@ -2693,6 +2841,19 @@ __metadata: languageName: node linkType: hard +"@expo/env@npm:~0.3.0": + version: 0.3.0 + resolution: "@expo/env@npm:0.3.0" + dependencies: + chalk: ^4.0.0 + debug: ^4.3.4 + dotenv: ~16.4.5 + dotenv-expand: ~11.0.6 + getenv: ^1.0.0 + checksum: 4199b7a3e186de81a5ddae4966d1a60694c1f0b3b24c190b9e5a584d47fb98254c8597ed66808511c09b3ee2774284fc72e03fc69ad9ee79005a7cd470ef6787 + languageName: node + linkType: hard + "@expo/fingerprint@npm:^0.6.0": version: 0.6.0 resolution: "@expo/fingerprint@npm:0.6.0" @@ -2728,7 +2889,25 @@ __metadata: languageName: node linkType: hard -"@expo/json-file@npm:^8.2.37, @expo/json-file@npm:~8.3.0": +"@expo/image-utils@npm:^0.5.0": + version: 0.5.1 + resolution: "@expo/image-utils@npm:0.5.1" + dependencies: + "@expo/spawn-async": ^1.7.2 + chalk: ^4.0.0 + fs-extra: 9.0.0 + getenv: ^1.0.0 + jimp-compact: 0.16.1 + node-fetch: ^2.6.0 + parse-png: ^2.1.0 + resolve-from: ^5.0.0 + semver: ^7.6.0 + tempy: 0.3.0 + checksum: ce369f863635391ce752832bba081b90130140de931166b9d2e26384087a8d04a3b401eacdfba874b09da1d18e90526328d82ebdc4798925c7fe0593dc08e4e6 + languageName: node + linkType: hard + +"@expo/json-file@npm:^8.2.37, @expo/json-file@npm:^8.3.0, @expo/json-file@npm:~8.3.0": version: 8.3.3 resolution: "@expo/json-file@npm:8.3.3" dependencies: @@ -2769,12 +2948,38 @@ __metadata: languageName: node linkType: hard -"@expo/metro-runtime@npm:3.1.3": - version: 3.1.3 - resolution: "@expo/metro-runtime@npm:3.1.3" +"@expo/metro-config@npm:0.18.11": + version: 0.18.11 + resolution: "@expo/metro-config@npm:0.18.11" + dependencies: + "@babel/core": ^7.20.0 + "@babel/generator": ^7.20.5 + "@babel/parser": ^7.20.0 + "@babel/types": ^7.20.0 + "@expo/config": ~9.0.0-beta.0 + "@expo/env": ~0.3.0 + "@expo/json-file": ~8.3.0 + "@expo/spawn-async": ^1.7.2 + chalk: ^4.1.0 + debug: ^4.3.2 + find-yarn-workspace-root: ~2.0.0 + fs-extra: ^9.1.0 + getenv: ^1.0.0 + glob: ^7.2.3 + jsc-safe-url: ^0.2.4 + lightningcss: ~1.19.0 + postcss: ~8.4.32 + resolve-from: ^5.0.0 + checksum: 4de79b97c6d818a487c6eaa83a55d3d9d1a1b28262507d74ad407fa22c2c32658d2cd2fa38babf82c32cf58239aff2c5d85e130609eaa34ed29a8e20a295cd7f + languageName: node + linkType: hard + +"@expo/metro-runtime@npm:3.2.3": + version: 3.2.3 + resolution: "@expo/metro-runtime@npm:3.2.3" peerDependencies: react-native: "*" - checksum: 58f959c05c0c70cee45e7792354ef0c1a5c81c9ea02a3a05e4e3db47633503de304fe911a342877d67ae0a78fc39f6c61a0b3c03f33197eb23bd35382d366f8d + checksum: 138fff0f018f6d39346984c82c843979c4588ed04695bdb76cd80fd1081d79c0503ad961a8f632a642024c758f2757edf6b7e2272adc6f207aa0ed84726fabdc languageName: node linkType: hard @@ -2788,12 +2993,12 @@ __metadata: languageName: node linkType: hard -"@expo/package-manager@npm:^1.1.1": - version: 1.4.2 - resolution: "@expo/package-manager@npm:1.4.2" +"@expo/package-manager@npm:^1.1.1, @expo/package-manager@npm:^1.5.0": + version: 1.5.2 + resolution: "@expo/package-manager@npm:1.5.2" dependencies: - "@expo/json-file": ^8.2.37 - "@expo/spawn-async": ^1.5.0 + "@expo/json-file": ^8.3.0 + "@expo/spawn-async": ^1.7.2 ansi-regex: ^5.0.0 chalk: ^4.0.0 find-up: ^5.0.0 @@ -2804,7 +3009,7 @@ __metadata: ora: ^3.4.0 split: ^1.0.1 sudo-prompt: 9.1.1 - checksum: d7f7157f93929ac61c6e3859b0b1ab82b80091eac85ddf5c5fbf07bc3190cc5ae60f211b33819fca8a1046aebb8fa331315e3b5311e4c3ebd1ac11b8c90799a9 + checksum: 825e727106592bac98c82c69bf316b8b1ee20829f7f3e909cf374861b771cfa77d38b029f8b078341b2a9333004b4b90392f6f1a6a366c45ecf3f397798fb2a4 languageName: node linkType: hard @@ -2839,6 +3044,69 @@ __metadata: languageName: node linkType: hard +"@expo/prebuild-config@npm:7.0.6": + version: 7.0.6 + resolution: "@expo/prebuild-config@npm:7.0.6" + dependencies: + "@expo/config": ~9.0.0-beta.0 + "@expo/config-plugins": ~8.0.0-beta.0 + "@expo/config-types": ^51.0.0-unreleased + "@expo/image-utils": ^0.5.0 + "@expo/json-file": ^8.3.0 + "@react-native/normalize-colors": 0.74.84 + debug: ^4.3.1 + fs-extra: ^9.0.0 + resolve-from: ^5.0.0 + semver: ^7.6.0 + xml2js: 0.6.0 + peerDependencies: + expo-modules-autolinking: ">=0.8.1" + checksum: 7210870c33b0fd78c4a1e758f801af3f47e16cf67a3a4a46a12bb10ad242e7925ec7f027dc348b6b4121c04ab76924630730f49debe086ccb95f72dc11c39c10 + languageName: node + linkType: hard + +"@expo/prebuild-config@npm:7.0.8": + version: 7.0.8 + resolution: "@expo/prebuild-config@npm:7.0.8" + dependencies: + "@expo/config": ~9.0.0-beta.0 + "@expo/config-plugins": ~8.0.8 + "@expo/config-types": ^51.0.0-unreleased + "@expo/image-utils": ^0.5.0 + "@expo/json-file": ^8.3.0 + "@react-native/normalize-colors": 0.74.85 + debug: ^4.3.1 + fs-extra: ^9.0.0 + resolve-from: ^5.0.0 + semver: ^7.6.0 + xml2js: 0.6.0 + peerDependencies: + expo-modules-autolinking: ">=0.8.1" + checksum: b3715b10aa5aa9e60e97802feaaa6ddca4330752ec566d9f272e23417d00e2a298b6cc2f0d33f8a46a3c907f10b862d2975b737ba10e194ac834eae48847923b + languageName: node + linkType: hard + +"@expo/prebuild-config@npm:7.0.9": + version: 7.0.9 + resolution: "@expo/prebuild-config@npm:7.0.9" + dependencies: + "@expo/config": ~9.0.0-beta.0 + "@expo/config-plugins": ~8.0.8 + "@expo/config-types": ^51.0.3 + "@expo/image-utils": ^0.5.0 + "@expo/json-file": ^8.3.0 + "@react-native/normalize-colors": 0.74.85 + debug: ^4.3.1 + fs-extra: ^9.0.0 + resolve-from: ^5.0.0 + semver: ^7.6.0 + xml2js: 0.6.0 + peerDependencies: + expo-modules-autolinking: ">=0.8.1" + checksum: 358ab0db1dea3a8c623314c462ebfb3d55b4be3fd854aa6f83e41052eea4eeec69532588cce480637aa9d9fb0e6670217812aee99f914c494972db3c13b8b11d + languageName: node + linkType: hard + "@expo/rudder-sdk-node@npm:1.1.1": version: 1.1.1 resolution: "@expo/rudder-sdk-node@npm:1.1.1" @@ -2861,15 +3129,15 @@ __metadata: languageName: node linkType: hard -"@expo/server@npm:^0.3.0": - version: 0.3.1 - resolution: "@expo/server@npm:0.3.1" +"@expo/server@npm:^0.4.0": + version: 0.4.4 + resolution: "@expo/server@npm:0.4.4" dependencies: - "@remix-run/node": ^1.19.3 + "@remix-run/node": ^2.7.2 abort-controller: ^3.0.0 debug: ^4.3.4 source-map-support: ~0.5.21 - checksum: 7234eb04106960cfebd2f7935d9b4737a2da723e974a902860e207b8520897e8c7ddeeeaf12e325d72432f3a18c10f3e18d9c5dc71c7e8d74f9c04fc7dc11b6e + checksum: 6f1ae48b2cc86527ad580d9eedd64cf0be803a134a81bbeff5093c621f1fb8747715d703af39076a6c4d2e4dd60d07ba3b94db800906dbdfe97e416ecccbb504 languageName: node linkType: hard @@ -2891,10 +3159,12 @@ __metadata: languageName: node linkType: hard -"@expo/vector-icons@npm:^14.0.0": - version: 14.0.0 - resolution: "@expo/vector-icons@npm:14.0.0" - checksum: aae8160cd1b0dbe97e7e7b3f6102c8696186ce481a20117550a3bc7da23b6943534aa493e2c08fbcee80ee31f6e111e8012fe57df2446e55ab7dd8f6f3098d05 +"@expo/vector-icons@npm:^14.0.0, @expo/vector-icons@npm:^14.0.3": + version: 14.0.4 + resolution: "@expo/vector-icons@npm:14.0.4" + dependencies: + prop-types: ^15.8.1 + checksum: 31bd5d4e4e2f0b0620b7e8b55b0c5691875cf57c5737bd0ccef0017d0e7abee66352f3d66a58997b719bd0720cccf8f5119503c69fe1a30398747306ebefeb6e languageName: node linkType: hard @@ -3364,6 +3634,17 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^24.9.0": + version: 24.9.0 + resolution: "@jest/types@npm:24.9.0" + dependencies: + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^1.1.1 + "@types/yargs": ^13.0.0 + checksum: 603698f774cf22f9d16a0e0fac9e10e7db21052aebfa33db154c8a5940e0eb1fa9c079a8c91681041ad3aeee2adfa950608dd0c663130316ba034b8bca7b301c + languageName: node + linkType: hard + "@jest/types@npm:^26.6.2": version: 26.6.2 resolution: "@jest/types@npm:26.6.2" @@ -3939,6 +4220,15 @@ __metadata: languageName: node linkType: hard +"@notifee/react-native@npm:^9.1.1": + version: 9.1.1 + resolution: "@notifee/react-native@npm:9.1.1" + peerDependencies: + react-native: "*" + checksum: 93d7efcb1a622cb6f53af99bd0b6856e2cf30ec684e74d8c91715dee5135cf7ea165eef26a7a5acc0e7b13db91c68982a4d22f186019322ed01c162fa02f5d03 + languageName: node + linkType: hard + "@npmcli/fs@npm:^1.0.0": version: 1.1.1 resolution: "@npmcli/fs@npm:1.1.1" @@ -3959,6 +4249,15 @@ __metadata: languageName: node linkType: hard +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: ^7.3.5 + checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 + languageName: node + linkType: hard + "@npmcli/move-file@npm:^1.0.1": version: 1.1.2 resolution: "@npmcli/move-file@npm:1.1.2" @@ -4711,14 +5010,14 @@ __metadata: languageName: node linkType: hard -"@react-native-async-storage/async-storage@npm:1.21.0": - version: 1.21.0 - resolution: "@react-native-async-storage/async-storage@npm:1.21.0" +"@react-native-async-storage/async-storage@npm:1.23.1": + version: 1.23.1 + resolution: "@react-native-async-storage/async-storage@npm:1.23.1" dependencies: merge-options: ^3.0.4 peerDependencies: react-native: ^0.0.0-0 || >=0.60 <1.0 - checksum: 969cdeb444a037087b1897553082e148e25c8331055dd0dc142f76deeb4aadd9ed5ec26926ae990b3e9ff088396e74ab557148a2dd2a7db86058051b774f2619 + checksum: 7096546ed4a5faf1f6e0425e2e15713575f1a7493a04524da386ff35c3844b57b8fd20544fad4157b4a61e048b10235f2f06124f262da5b327edc74fbc31e02b languageName: node linkType: hard @@ -4752,26 +5051,27 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-clean@npm:12.3.6" +"@react-native-community/cli-clean@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-clean@npm:13.6.6" dependencies: - "@react-native-community/cli-tools": 12.3.6 + "@react-native-community/cli-tools": 13.6.6 chalk: ^4.1.2 execa: ^5.0.0 - checksum: bc0ae6d198e724dabd62df8172abc9be29b421f2f8314308f96371e8f54f2de73f7798bba5a3bca758c234f115567012183b6d99bb839f7b2877db9ec38a0bee + fast-glob: ^3.3.2 + checksum: ac230d0bc73a9c72cd32fdf6fdb51581db6a46150f6fa33e9b5055be39464e545f4f2ea90f078e2d20c90a4b7a95db8fa810ae6411c4fa692cade1946add012b languageName: node linkType: hard -"@react-native-community/cli-clean@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-clean@npm:13.6.6" +"@react-native-community/cli-clean@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-clean@npm:13.6.9" dependencies: - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-tools": 13.6.9 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 - checksum: ac230d0bc73a9c72cd32fdf6fdb51581db6a46150f6fa33e9b5055be39464e545f4f2ea90f078e2d20c90a4b7a95db8fa810ae6411c4fa692cade1946add012b + checksum: 2afb05e88e954161f14034dbb0f06b490f348e0ea473fc974dd704ca4704fd6b98fc38e1bd3f712ba24c2878ec376ee46ce203055c14ac37107c7c7654533c1e languageName: node linkType: hard @@ -4801,31 +5101,31 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-config@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-config@npm:12.3.6" +"@react-native-community/cli-config@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-config@npm:13.6.6" dependencies: - "@react-native-community/cli-tools": 12.3.6 + "@react-native-community/cli-tools": 13.6.6 chalk: ^4.1.2 cosmiconfig: ^5.1.0 deepmerge: ^4.3.0 - glob: ^7.1.3 + fast-glob: ^3.3.2 joi: ^17.2.1 - checksum: 1f372dac334aef34ea360aa3fc9e1ed09a9d4e84caac04abd3728ab743b0456ff079e83c013d349a49f359ed2355bf96c494c08a9e09bc1e21dad96904ef18a3 + checksum: 254272884c417ab50aaf4463683ccc79f82dd152e3905624eb0b433042de3ed4295d129261eb7216dd1b13457ab0fa20a4bc661fc40f106af0964ec09a2325fe languageName: node linkType: hard -"@react-native-community/cli-config@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-config@npm:13.6.6" +"@react-native-community/cli-config@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-config@npm:13.6.9" dependencies: - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-tools": 13.6.9 chalk: ^4.1.2 cosmiconfig: ^5.1.0 deepmerge: ^4.3.0 fast-glob: ^3.3.2 joi: ^17.2.1 - checksum: 254272884c417ab50aaf4463683ccc79f82dd152e3905624eb0b433042de3ed4295d129261eb7216dd1b13457ab0fa20a4bc661fc40f106af0964ec09a2325fe + checksum: 6bef773e793d445f44e6bdf02fcb083f390700d0f9aeeed2e3d43522d26a31c38b08c2b7613fdad42bb0de8c03c9123a1d3a0478c0b65ff4d139c231211e8618 languageName: node linkType: hard @@ -4852,21 +5152,21 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-debugger-ui@npm:12.3.6" +"@react-native-community/cli-debugger-ui@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-debugger-ui@npm:13.6.6" dependencies: serve-static: ^1.13.1 - checksum: 8ecb7a9ea822359c606fecc724876e584480ec510c46f0c13f312a22dac98ee0555dd4f1b96dc1c83439e18e8dd6d5250b4ffdd08c801a70a5fc5e89f52146ce + checksum: 11c75024d38e04a04a99ecc58727151ebff10dbfcbf8fcfc9a9c38811962874ae01dfcc32d6986e399d6c700197bf5db27b5919fc75a10225d3b379d4e6b9a5b languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-debugger-ui@npm:13.6.6" +"@react-native-community/cli-debugger-ui@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-debugger-ui@npm:13.6.9" dependencies: serve-static: ^1.13.1 - checksum: 11c75024d38e04a04a99ecc58727151ebff10dbfcbf8fcfc9a9c38811962874ae01dfcc32d6986e399d6c700197bf5db27b5919fc75a10225d3b379d4e6b9a5b + checksum: 9c2db8a1d9fe0378418557c37b58a2acd2c5c8ec72e1fd162305d7a05556e9833fd0c0ee4c60d5e811708dbd3932b263f11a15559595e05798fd829e846fd2f2 languageName: node linkType: hard @@ -4904,14 +5204,15 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-doctor@npm:12.3.6" +"@react-native-community/cli-doctor@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-doctor@npm:13.6.6" dependencies: - "@react-native-community/cli-config": 12.3.6 - "@react-native-community/cli-platform-android": 12.3.6 - "@react-native-community/cli-platform-ios": 12.3.6 - "@react-native-community/cli-tools": 12.3.6 + "@react-native-community/cli-config": 13.6.6 + "@react-native-community/cli-platform-android": 13.6.6 + "@react-native-community/cli-platform-apple": 13.6.6 + "@react-native-community/cli-platform-ios": 13.6.6 + "@react-native-community/cli-tools": 13.6.6 chalk: ^4.1.2 command-exists: ^1.2.8 deepmerge: ^4.3.0 @@ -4924,19 +5225,19 @@ __metadata: strip-ansi: ^5.2.0 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: 9f2d4b5be291b78365225e0d11279ce7fd8cdafd5de0d8d1545bcd1994b61a9f30b0e59fd1c2111eb5a88f61f39da150bde881bc975ae5583b4368c8186bd67f + checksum: 388b839a627bdc3523277846a288502f81b14928195be84722c721e0d62942e51fabe35f0a8dd66462ee4c5f3d1193078b5e473990fba869d40ae16dd6d18df7 languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-doctor@npm:13.6.6" +"@react-native-community/cli-doctor@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-doctor@npm:13.6.9" dependencies: - "@react-native-community/cli-config": 13.6.6 - "@react-native-community/cli-platform-android": 13.6.6 - "@react-native-community/cli-platform-apple": 13.6.6 - "@react-native-community/cli-platform-ios": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-config": 13.6.9 + "@react-native-community/cli-platform-android": 13.6.9 + "@react-native-community/cli-platform-apple": 13.6.9 + "@react-native-community/cli-platform-ios": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 chalk: ^4.1.2 command-exists: ^1.2.8 deepmerge: ^4.3.0 @@ -4949,7 +5250,7 @@ __metadata: strip-ansi: ^5.2.0 wcwidth: ^1.0.1 yaml: ^2.2.1 - checksum: 388b839a627bdc3523277846a288502f81b14928195be84722c721e0d62942e51fabe35f0a8dd66462ee4c5f3d1193078b5e473990fba869d40ae16dd6d18df7 + checksum: d34c011f54fb4091ca9ad31f09e54c2da88efad43ae0b8634de14e575f69530c2793fcb49052e25b4abf18532353391d796bd5297c38ac9ca9c157dcfc40f4cc languageName: node linkType: hard @@ -4990,18 +5291,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-hermes@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-hermes@npm:12.3.6" - dependencies: - "@react-native-community/cli-platform-android": 12.3.6 - "@react-native-community/cli-tools": 12.3.6 - chalk: ^4.1.2 - hermes-profile-transformer: ^0.0.6 - checksum: fcf524032306c1816c88612754080829211699abd22500a460b71253e5b1b61a11727b678dc65c60fc930111302582f124d19cda01c86d870d3658a6c3e259a7 - languageName: node - linkType: hard - "@react-native-community/cli-hermes@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-hermes@npm:13.6.6" @@ -5014,6 +5303,18 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-hermes@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-hermes@npm:13.6.9" + dependencies: + "@react-native-community/cli-platform-android": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + hermes-profile-transformer: ^0.0.6 + checksum: b4b4bbf695c1a880bcdcacfc1ca685a73f90730af03859a68e5f55a6a70f4232ec3b33e4f63e14942a963e0067cb04805ba9902b8765a94b5ccbb807b4dcd4e6 + languageName: node + linkType: hard + "@react-native-community/cli-hermes@npm:^10.2.0": version: 10.2.0 resolution: "@react-native-community/cli-hermes@npm:10.2.0" @@ -5054,31 +5355,31 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-platform-android@npm:12.3.6" +"@react-native-community/cli-platform-android@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-platform-android@npm:13.6.6" dependencies: - "@react-native-community/cli-tools": 12.3.6 + "@react-native-community/cli-tools": 13.6.6 chalk: ^4.1.2 execa: ^5.0.0 + fast-glob: ^3.3.2 fast-xml-parser: ^4.2.4 - glob: ^7.1.3 logkitty: ^0.7.1 - checksum: 82e8939daafd640b453d8b67671e4d131900f38434823b66c429fcf88417abab652c7ad3cb77a2d97c437756bc229b036f9c704a2602ce9f8c9b1a4c070ab52e + checksum: 426833e8a4e925be9447840c34e70d0a1c5a11d0a2177fef91849ce3977bbad346486a4599170361b7d05c6bf9f676ef9d86876da3a0f2534a9c31298a8a7195 languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-platform-android@npm:13.6.6" +"@react-native-community/cli-platform-android@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-platform-android@npm:13.6.9" dependencies: - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-tools": 13.6.9 chalk: ^4.1.2 execa: ^5.0.0 fast-glob: ^3.3.2 fast-xml-parser: ^4.2.4 logkitty: ^0.7.1 - checksum: 426833e8a4e925be9447840c34e70d0a1c5a11d0a2177fef91849ce3977bbad346486a4599170361b7d05c6bf9f676ef9d86876da3a0f2534a9c31298a8a7195 + checksum: a743571c99d8a9769ec37086d3a1e04ceddb9ea0e76788a3fc95c458ca1f419b15059bbc18485e25f33d853e1116937ec09464b9fe463109dca5010914c2e72a languageName: node linkType: hard @@ -5096,6 +5397,20 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-platform-apple@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-platform-apple@npm:13.6.9" + dependencies: + "@react-native-community/cli-tools": 13.6.9 + chalk: ^4.1.2 + execa: ^5.0.0 + fast-glob: ^3.3.2 + fast-xml-parser: ^4.0.12 + ora: ^5.4.1 + checksum: 4ecd78baf03dbf6e916cc59a623c111cdf5b876427fcfbf34151ff5cc60c1e428362f176703078665d3a7438360d29844d7d2bcec9d692a6082342d8f9d7ffff + languageName: node + linkType: hard + "@react-native-community/cli-platform-ios@npm:10.2.1": version: 10.2.1 resolution: "@react-native-community/cli-platform-ios@npm:10.2.1" @@ -5124,20 +5439,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-platform-ios@npm:12.3.6" - dependencies: - "@react-native-community/cli-tools": 12.3.6 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-xml-parser: ^4.0.12 - glob: ^7.1.3 - ora: ^5.4.1 - checksum: af0d53b27129de26184497786e544bb8dae1f25439d65fb000a5a4ed6275f7b22f4351bf2ec649ff3be61ed0c24700646ff441952410c0dc87dc46f165d29c96 - languageName: node - linkType: hard - "@react-native-community/cli-platform-ios@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-platform-ios@npm:13.6.6" @@ -5147,6 +5448,15 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-platform-ios@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-platform-ios@npm:13.6.9" + dependencies: + "@react-native-community/cli-platform-apple": 13.6.9 + checksum: ba88a11d49d7a41fad8455d78be9956ba0a11257257995e2706e0e451f451c4bde352eb178a5e4743811a976f7c271caaae804e23defac9883b1f03c308edd26 + languageName: node + linkType: hard + "@react-native-community/cli-platform-ios@npm:^10.2.5": version: 10.2.5 resolution: "@react-native-community/cli-platform-ios@npm:10.2.5" @@ -5168,13 +5478,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-plugin-metro@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-plugin-metro@npm:12.3.6" - checksum: e184bf230b55bc2e93d51734467c90ced3bc65bd6b134a5e6945c8eaebeecf6530b35071dd1d392fb4716842905559b57b05dd1aacae6b391c1749bdee3cd36c - languageName: node - linkType: hard - "@react-native-community/cli-plugin-metro@npm:^10.2.2": version: 10.2.3 resolution: "@react-native-community/cli-plugin-metro@npm:10.2.3" @@ -5211,29 +5514,29 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-server-api@npm:12.3.6" +"@react-native-community/cli-server-api@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-server-api@npm:13.6.6" dependencies: - "@react-native-community/cli-debugger-ui": 12.3.6 - "@react-native-community/cli-tools": 12.3.6 + "@react-native-community/cli-debugger-ui": 13.6.6 + "@react-native-community/cli-tools": 13.6.6 compression: ^1.7.1 connect: ^3.6.5 errorhandler: ^1.5.1 nocache: ^3.0.1 pretty-format: ^26.6.2 serve-static: ^1.13.1 - ws: ^7.5.1 - checksum: bc5e0dcb842e24889b46f61a12553efaf6cedb2750a93e59a6bde2cf81eb0bd1e5586ff1fbf5f43d92b4d0a51e6a4af27c44ba799264835a817f779c0832b2e5 + ws: ^6.2.2 + checksum: 48a044811b6efc4139afa81fedd53645da8a56a4531449091ff95a6fd4d2bb228747db1bfdac9790826036fb019d869eda1e5fc729dfccc8ca65703210a405c5 languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-server-api@npm:13.6.6" +"@react-native-community/cli-server-api@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-server-api@npm:13.6.9" dependencies: - "@react-native-community/cli-debugger-ui": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 + "@react-native-community/cli-debugger-ui": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 compression: ^1.7.1 connect: ^3.6.5 errorhandler: ^1.5.1 @@ -5241,7 +5544,7 @@ __metadata: pretty-format: ^26.6.2 serve-static: ^1.13.1 ws: ^6.2.2 - checksum: 48a044811b6efc4139afa81fedd53645da8a56a4531449091ff95a6fd4d2bb228747db1bfdac9790826036fb019d869eda1e5fc729dfccc8ca65703210a405c5 + checksum: 962a3e32cad3609cb181e4578c23ca4225d5aa16daf12902661b7185efd8e6b92e194bf8a44c3525c85ee91a742cc28acc374c5c9af3574496ff7554621f8c64 languageName: node linkType: hard @@ -5280,12 +5583,13 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-tools@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-tools@npm:12.3.6" +"@react-native-community/cli-tools@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-tools@npm:13.6.6" dependencies: appdirsjs: ^1.2.4 chalk: ^4.1.2 + execa: ^5.0.0 find-up: ^5.0.0 mime: ^2.4.1 node-fetch: ^2.6.0 @@ -5294,13 +5598,13 @@ __metadata: semver: ^7.5.2 shell-quote: ^1.7.3 sudo-prompt: ^9.0.0 - checksum: b820e8822e2f861784752a37aacd11926f71eb0e749aa65de25fd0e5da7c0f2498bb9e65413f5d8b39341664f935d819fd24836a52c9ec78de21273ea14e4cfb + checksum: 645979ddf649f23583e2b83c2911a780406bcaa03423b07487924414e383b471512a0b76d34e708d0e5f47a1652cbd282dd505ef6ecdf7e4606b49a3b230d5a3 languageName: node linkType: hard -"@react-native-community/cli-tools@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-tools@npm:13.6.6" +"@react-native-community/cli-tools@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-tools@npm:13.6.9" dependencies: appdirsjs: ^1.2.4 chalk: ^4.1.2 @@ -5313,7 +5617,7 @@ __metadata: semver: ^7.5.2 shell-quote: ^1.7.3 sudo-prompt: ^9.0.0 - checksum: 645979ddf649f23583e2b83c2911a780406bcaa03423b07487924414e383b471512a0b76d34e708d0e5f47a1652cbd282dd505ef6ecdf7e4606b49a3b230d5a3 + checksum: dc5ee921480a03249b408544146737a0674aa6259d797672a5f369d337a2775ec62fb986fcf62fe554992605305b75a220609db8eea9f6b75d97241a4dd79ad3 languageName: node linkType: hard @@ -5343,21 +5647,21 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-types@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli-types@npm:12.3.6" +"@react-native-community/cli-types@npm:13.6.6": + version: 13.6.6 + resolution: "@react-native-community/cli-types@npm:13.6.6" dependencies: joi: ^17.2.1 - checksum: f087c41d7b63ab8cb5d608bb176847bc442706710748c324faa8c7f3087c3fb7a1f84e8f6dd5c6d32c691c2f12c08cb47429ce83fd1dd577679f7171043cd439 + checksum: f2c8ffcd2e68df552687d687cab663b5c6bf9c2b807ba156eecde109ffd08cad5aa179aeb482d6922a8adce59e14deba67e7916ed077da8986a0ab7a0a9a49c9 languageName: node linkType: hard -"@react-native-community/cli-types@npm:13.6.6": - version: 13.6.6 - resolution: "@react-native-community/cli-types@npm:13.6.6" +"@react-native-community/cli-types@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-types@npm:13.6.9" dependencies: joi: ^17.2.1 - checksum: f2c8ffcd2e68df552687d687cab663b5c6bf9c2b807ba156eecde109ffd08cad5aa179aeb482d6922a8adce59e14deba67e7916ed077da8986a0ab7a0a9a49c9 + checksum: 224c60447fcebb9fd4719685a3d85aebabbd709f79d056a76750c59cc9d215882bd7386f0822103b2c7b6df1815f738f615c27838381f94028169833ae4473f8 languageName: node linkType: hard @@ -5425,34 +5729,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli@npm:12.3.6": - version: 12.3.6 - resolution: "@react-native-community/cli@npm:12.3.6" - dependencies: - "@react-native-community/cli-clean": 12.3.6 - "@react-native-community/cli-config": 12.3.6 - "@react-native-community/cli-debugger-ui": 12.3.6 - "@react-native-community/cli-doctor": 12.3.6 - "@react-native-community/cli-hermes": 12.3.6 - "@react-native-community/cli-plugin-metro": 12.3.6 - "@react-native-community/cli-server-api": 12.3.6 - "@react-native-community/cli-tools": 12.3.6 - "@react-native-community/cli-types": 12.3.6 - chalk: ^4.1.2 - commander: ^9.4.1 - deepmerge: ^4.3.0 - execa: ^5.0.0 - find-up: ^4.1.0 - fs-extra: ^8.1.0 - graceful-fs: ^4.1.3 - prompts: ^2.4.2 - semver: ^7.5.2 - bin: - react-native: build/bin.js - checksum: 0a410ddcd3d86acfd0a6ec93b220169c416e26f8b08b11d991e1defa4089c460cfec019c5d1ce6d71ac013ad09fc2e522c7a8c2948256a167e8fd89458f5a65c - languageName: node - linkType: hard - "@react-native-community/cli@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli@npm:13.6.6" @@ -5480,12 +5756,30 @@ __metadata: languageName: node linkType: hard -"@react-native-community/netinfo@npm:11.1.0": - version: 11.1.0 - resolution: "@react-native-community/netinfo@npm:11.1.0" - peerDependencies: - react-native: ">=0.59" - checksum: bbfa921c7d21f4c1c8bd01789256e096eed054ca6663caaa34446f1429f8394ec630c99f524a35e1a0a5873b3bc7f135e5721a7cc53f6cea68509b8723386db8 +"@react-native-community/cli@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli@npm:13.6.9" + dependencies: + "@react-native-community/cli-clean": 13.6.9 + "@react-native-community/cli-config": 13.6.9 + "@react-native-community/cli-debugger-ui": 13.6.9 + "@react-native-community/cli-doctor": 13.6.9 + "@react-native-community/cli-hermes": 13.6.9 + "@react-native-community/cli-server-api": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 + "@react-native-community/cli-types": 13.6.9 + chalk: ^4.1.2 + commander: ^9.4.1 + deepmerge: ^4.3.0 + execa: ^5.0.0 + find-up: ^4.1.0 + fs-extra: ^8.1.0 + graceful-fs: ^4.1.3 + prompts: ^2.4.2 + semver: ^7.5.2 + bin: + rnc-cli: build/bin.js + checksum: 5e997b50fd687b4f3fcdde6a1fd36317ffee5536649fb16e87f6e3bb1bd56a279daad57b7d904d0442425106f048a114e3987f9a0fc8dc3fadd0a784dcb83a40 languageName: node linkType: hard @@ -5498,6 +5792,15 @@ __metadata: languageName: node linkType: hard +"@react-native-community/netinfo@npm:11.3.1": + version: 11.3.1 + resolution: "@react-native-community/netinfo@npm:11.3.1" + peerDependencies: + react-native: ">=0.59" + checksum: 435601f7c7567a8610cfcb267f9d1ef4148cdb859b30d9220bfd345ba6ac5615db351b55040c7ff9379ebbe5b38f7ba14aaa03b22f0ea710a0c65efd02bcff0d + languageName: node + linkType: hard + "@react-native-community/netinfo@npm:9.3.9": version: 9.3.9 resolution: "@react-native-community/netinfo@npm:9.3.9" @@ -5633,6 +5936,13 @@ __metadata: languageName: node linkType: hard +"@react-native/assets-registry@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/assets-registry@npm:0.74.87" + checksum: 265a85038dd578546a6f9ce9e7f9c6b3e424051b9aac314e4804aea6370420be5c3207e6f672345c0e63fab49175d7b5bd1956a98b9fce080b81a054e43e4bb3 + languageName: node + linkType: hard + "@react-native/assets@npm:1.0.0": version: 1.0.0 resolution: "@react-native/assets@npm:1.0.0" @@ -5658,6 +5968,15 @@ __metadata: languageName: node linkType: hard +"@react-native/babel-plugin-codegen@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/babel-plugin-codegen@npm:0.74.87" + dependencies: + "@react-native/codegen": 0.74.87 + checksum: f4d1d85deb0925d86a4763643f380afed37476733ef15e416f4022eab8a5aa51737406175c9701d19b9103f4359370a6a5d26f544f299660524fd2d8f5121b71 + languageName: node + linkType: hard + "@react-native/babel-preset@npm:0.73.21, @react-native/babel-preset@npm:^0.73.18": version: 0.73.21 resolution: "@react-native/babel-preset@npm:0.73.21" @@ -5763,6 +6082,59 @@ __metadata: languageName: node linkType: hard +"@react-native/babel-preset@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/babel-preset@npm:0.74.87" + 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-logical-assignment-operators": ^7.18.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-private-methods": ^7.22.5 + "@babel/plugin-transform-private-property-in-object": ^7.22.11 + "@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 + "@react-native/babel-plugin-codegen": 0.74.87 + babel-plugin-transform-flow-enums: ^0.0.2 + react-refresh: ^0.14.0 + peerDependencies: + "@babel/core": "*" + checksum: 7a8f7c1bbba5cc50e6feeec2912b686b0d5d3257af11c15c6ebbadb501d5af7db29dca846ee79c4ad9d5e2737a4eb7e0a1a7df92c0bf173d7c82f9c3dcee7f6d + languageName: node + linkType: hard + "@react-native/codegen@npm:0.73.3": version: 0.73.3 resolution: "@react-native/codegen@npm:0.73.3" @@ -5797,6 +6169,23 @@ __metadata: languageName: node linkType: hard +"@react-native/codegen@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/codegen@npm:0.74.87" + dependencies: + "@babel/parser": ^7.20.0 + glob: ^7.1.1 + hermes-parser: 0.19.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: 587b9eacebf3cc96055c11868ac3cf73be3c135cb15b9bb67d0c7b252ef7d46c13621bffd5cbeb5b1744cd9809e97f86d87cb7ab27d517b3aaefeef07fa70642 + languageName: node + linkType: hard + "@react-native/community-cli-plugin@npm:0.73.16": version: 0.73.16 resolution: "@react-native/community-cli-plugin@npm:0.73.16" @@ -5816,33 +6205,34 @@ __metadata: languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.73.17": - version: 0.73.17 - resolution: "@react-native/community-cli-plugin@npm:0.73.17" +"@react-native/community-cli-plugin@npm:0.74.83": + version: 0.74.83 + resolution: "@react-native/community-cli-plugin@npm:0.74.83" dependencies: - "@react-native-community/cli-server-api": 12.3.6 - "@react-native-community/cli-tools": 12.3.6 - "@react-native/dev-middleware": 0.73.8 - "@react-native/metro-babel-transformer": 0.73.15 + "@react-native-community/cli-server-api": 13.6.6 + "@react-native-community/cli-tools": 13.6.6 + "@react-native/dev-middleware": 0.74.83 + "@react-native/metro-babel-transformer": 0.74.83 chalk: ^4.0.0 execa: ^5.1.1 metro: ^0.80.3 metro-config: ^0.80.3 metro-core: ^0.80.3 node-fetch: ^2.2.0 + querystring: ^0.2.1 readline: ^1.3.0 - checksum: e5b39194657d8d9e1cd35711df9fea3b28a00dcf09443490f0afa2f28995bcdc62a711d4975f0894a925f56285cc9219bf271a8be7042a6f37f94e769a00220b + checksum: ef71d38baae09d37657a03e79a084308b882e240faaeddf12adbb36dff77393273ea4e8f57c28c7004cd23323313f61e08832584957caf6fb51bd8014bd4b265 languageName: node linkType: hard -"@react-native/community-cli-plugin@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/community-cli-plugin@npm:0.74.83" +"@react-native/community-cli-plugin@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/community-cli-plugin@npm:0.74.87" dependencies: - "@react-native-community/cli-server-api": 13.6.6 - "@react-native-community/cli-tools": 13.6.6 - "@react-native/dev-middleware": 0.74.83 - "@react-native/metro-babel-transformer": 0.74.83 + "@react-native-community/cli-server-api": 13.6.9 + "@react-native-community/cli-tools": 13.6.9 + "@react-native/dev-middleware": 0.74.87 + "@react-native/metro-babel-transformer": 0.74.87 chalk: ^4.0.0 execa: ^5.1.1 metro: ^0.80.3 @@ -5851,7 +6241,7 @@ __metadata: node-fetch: ^2.2.0 querystring: ^0.2.1 readline: ^1.3.0 - checksum: ef71d38baae09d37657a03e79a084308b882e240faaeddf12adbb36dff77393273ea4e8f57c28c7004cd23323313f61e08832584957caf6fb51bd8014bd4b265 + checksum: 299735c5c62fae3cdd71470684cc9ed688cd146e134ed0d41d612b7a1b1356632d7fdd21034d86035117552f0e6db7e3fd1900a9df4633e7fe333b6338effb19 languageName: node linkType: hard @@ -5869,6 +6259,20 @@ __metadata: languageName: node linkType: hard +"@react-native/debugger-frontend@npm:0.74.85": + version: 0.74.85 + resolution: "@react-native/debugger-frontend@npm:0.74.85" + checksum: 0044555fa0024353b0d4d26f8a4b307796685820a5b12bdb3b971448347cf85787d947962451191196e6040fc916d5162e3f3593a312f31b9d58e74291fed147 + languageName: node + linkType: hard + +"@react-native/debugger-frontend@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/debugger-frontend@npm:0.74.87" + checksum: dccd3d33774820ce9ca91910d13273c227ffb3b667fba5f3ec877c0d9b241e1cf16f8462b967ed52d1688826dd019d176a0425401b4d824568eda1faeec29f26 + languageName: node + linkType: hard + "@react-native/dev-middleware@npm:0.73.7": version: 0.73.7 resolution: "@react-native/dev-middleware@npm:0.73.7" @@ -5887,31 +6291,33 @@ __metadata: languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.73.8, @react-native/dev-middleware@npm:^0.73.6": - version: 0.73.8 - resolution: "@react-native/dev-middleware@npm:0.73.8" +"@react-native/dev-middleware@npm:0.74.83": + version: 0.74.83 + resolution: "@react-native/dev-middleware@npm:0.74.83" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.73.3 + "@react-native/debugger-frontend": 0.74.83 + "@rnx-kit/chromium-edge-launcher": ^1.0.0 chrome-launcher: ^0.15.2 - chromium-edge-launcher: ^1.0.0 connect: ^3.6.5 debug: ^2.2.0 node-fetch: ^2.2.0 + nullthrows: ^1.1.1 open: ^7.0.3 + selfsigned: ^2.4.1 serve-static: ^1.13.1 temp-dir: ^2.0.0 ws: ^6.2.2 - checksum: 1b05cd4f36c341ba41ea98360f330ccc78dba0eb3d03099af8e410d2d66ae43dd7a1422165dd26f9d06e6de23ca249b64f8687b9f16d1b165356e004158e587b + checksum: 8324c52af4dffcdce860ffa12795de112635eefab01e3412938dfbda248675a77a8f85c452c93cc485b43b375b6b4c43245977563cbd1221729b909af98f38ba languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.74.83": - version: 0.74.83 - resolution: "@react-native/dev-middleware@npm:0.74.83" +"@react-native/dev-middleware@npm:0.74.85": + version: 0.74.85 + resolution: "@react-native/dev-middleware@npm:0.74.85" dependencies: "@isaacs/ttlcache": ^1.4.1 - "@react-native/debugger-frontend": 0.74.83 + "@react-native/debugger-frontend": 0.74.85 "@rnx-kit/chromium-edge-launcher": ^1.0.0 chrome-launcher: ^0.15.2 connect: ^3.6.5 @@ -5923,7 +6329,47 @@ __metadata: serve-static: ^1.13.1 temp-dir: ^2.0.0 ws: ^6.2.2 - checksum: 8324c52af4dffcdce860ffa12795de112635eefab01e3412938dfbda248675a77a8f85c452c93cc485b43b375b6b4c43245977563cbd1221729b909af98f38ba + checksum: 588bb3155ab9b26aa51dcdd0f7c2716f9a632a24f2f530772b43a9de1ccc712cc562ea9fe51d464c5f6263568929d875f2002a34f2acf60053de9daf374092cd + languageName: node + linkType: hard + +"@react-native/dev-middleware@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/dev-middleware@npm:0.74.87" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.74.87 + "@rnx-kit/chromium-edge-launcher": ^1.0.0 + chrome-launcher: ^0.15.2 + connect: ^3.6.5 + debug: ^2.2.0 + node-fetch: ^2.2.0 + nullthrows: ^1.1.1 + open: ^7.0.3 + selfsigned: ^2.4.1 + serve-static: ^1.13.1 + temp-dir: ^2.0.0 + ws: ^6.2.2 + checksum: c78339f431d8206be0e3044435b994963bde0358c2210420fee939343d391cd117adaf3ee5895fbb3e7b829f31bef121602a71224e949941ee5e1c6a3677af49 + languageName: node + linkType: hard + +"@react-native/dev-middleware@npm:^0.73.6": + version: 0.73.8 + resolution: "@react-native/dev-middleware@npm:0.73.8" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.73.3 + chrome-launcher: ^0.15.2 + chromium-edge-launcher: ^1.0.0 + connect: ^3.6.5 + debug: ^2.2.0 + node-fetch: ^2.2.0 + open: ^7.0.3 + serve-static: ^1.13.1 + temp-dir: ^2.0.0 + ws: ^6.2.2 + checksum: 1b05cd4f36c341ba41ea98360f330ccc78dba0eb3d03099af8e410d2d66ae43dd7a1422165dd26f9d06e6de23ca249b64f8687b9f16d1b165356e004158e587b languageName: node linkType: hard @@ -5972,6 +6418,13 @@ __metadata: languageName: node linkType: hard +"@react-native/gradle-plugin@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/gradle-plugin@npm:0.74.87" + checksum: b524e51b33a0ae4faf826928974390da164394b2f95fb203c903ff20ce2c66ef825bf8a0ae228c37b9c5e417e7af66070e97ea6590d3ce3a933599cde8f8ba7e + languageName: node + linkType: hard + "@react-native/js-polyfills@npm:0.73.1": version: 0.73.1 resolution: "@react-native/js-polyfills@npm:0.73.1" @@ -5986,6 +6439,13 @@ __metadata: languageName: node linkType: hard +"@react-native/js-polyfills@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/js-polyfills@npm:0.74.87" + checksum: 268df78b62d22af2ad3e70e107ba0dd5d3c242a5fb11388dd9967c8bb46ce89433fbffd115c3752d31b3bde80616d1f6386edda4538983ddd74eb0df7c72344e + languageName: node + linkType: hard + "@react-native/metro-babel-transformer@npm:0.73.15": version: 0.73.15 resolution: "@react-native/metro-babel-transformer@npm:0.73.15" @@ -6014,6 +6474,20 @@ __metadata: languageName: node linkType: hard +"@react-native/metro-babel-transformer@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/metro-babel-transformer@npm:0.74.87" + dependencies: + "@babel/core": ^7.20.0 + "@react-native/babel-preset": 0.74.87 + hermes-parser: 0.19.1 + nullthrows: ^1.1.1 + peerDependencies: + "@babel/core": "*" + checksum: c665e7652aa086ed04efa03cfcaa22a405f2c885e844b23b194c5860f7ec616a59c6ac189dc024c8117a684b3d730c383d51f2a28f360277ab446a0f2ff0210c + languageName: node + linkType: hard + "@react-native/metro-config@npm:0.73.5": version: 0.73.5 resolution: "@react-native/metro-config@npm:0.73.5" @@ -6047,6 +6521,27 @@ __metadata: languageName: node linkType: hard +"@react-native/normalize-colors@npm:0.74.84": + version: 0.74.84 + resolution: "@react-native/normalize-colors@npm:0.74.84" + checksum: e9a7b3020e6a298ba1c7310d267ef90c39327cb2ed7899bf3778224e52b280802899420dbf36fb8c1a37914f410be0187a9796c1790c1dca86404a40a948235a + languageName: node + linkType: hard + +"@react-native/normalize-colors@npm:0.74.85": + version: 0.74.85 + resolution: "@react-native/normalize-colors@npm:0.74.85" + checksum: d2aef06be265c27ec89e1bec8f3a6869a62300479fbafdabd5e06323cf22a892189d42f9f613cc48c48f97351634c9ce98b07e565d9344714bb2627e5aae4c60 + languageName: node + linkType: hard + +"@react-native/normalize-colors@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/normalize-colors@npm:0.74.87" + checksum: 903f9cd8a0fdcb26f4f621b260b9f48e703ca183ac4ee363b6dea4f424e23a254adebe36ce3d560e6e909f58b1c568bafe596e5858fadf51b5be080f401446c7 + languageName: node + linkType: hard + "@react-native/polyfills@npm:2.0.0": version: 2.0.0 resolution: "@react-native/polyfills@npm:2.0.0" @@ -6090,6 +6585,23 @@ __metadata: languageName: node linkType: hard +"@react-native/virtualized-lists@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/virtualized-lists@npm:0.74.87" + dependencies: + invariant: ^2.2.4 + nullthrows: ^1.1.1 + peerDependencies: + "@types/react": ^18.2.6 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 417e9b4044ef48943914ff729995d908cf0df7f337403be80d126fc7d5542df1cc6d40503504b60a65f411002d138bb7e65fd8b10b931df640297d6daa8de263 + languageName: node + linkType: hard + "@react-native/virtualized-lists@npm:^0.72.4": version: 0.72.8 resolution: "@react-native/virtualized-lists@npm:0.72.8" @@ -6207,20 +6719,23 @@ __metadata: languageName: node linkType: hard -"@remix-run/node@npm:^1.19.3": - version: 1.19.3 - resolution: "@remix-run/node@npm:1.19.3" +"@remix-run/node@npm:^2.7.2": + version: 2.13.1 + resolution: "@remix-run/node@npm:2.13.1" dependencies: - "@remix-run/server-runtime": 1.19.3 - "@remix-run/web-fetch": ^4.3.6 - "@remix-run/web-file": ^3.0.3 - "@remix-run/web-stream": ^1.0.4 + "@remix-run/server-runtime": 2.13.1 + "@remix-run/web-fetch": ^4.4.2 "@web3-storage/multipart-parser": ^1.0.0 - abort-controller: ^3.0.0 cookie-signature: ^1.1.0 source-map-support: ^0.5.21 stream-slice: ^0.1.2 - checksum: ae0b41d8e4296fb0af88c2ea0dfcac49b9010ac6ea12e53dcc1dce7b9e473d6f94586442174a3934d856174dea1d9af2f8f71c8bb6ea81487cfe3df1c48ec393 + undici: ^6.11.1 + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: e3ea4381944b697db08846aadd65a7664374ab63a9fe89d3624025937a7c0e1128788480528ae96f04649638ceca0f642369af89bd217d7ba8be9a5675978d06 languageName: node linkType: hard @@ -6231,24 +6746,30 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.7.2": - version: 1.7.2 - resolution: "@remix-run/router@npm:1.7.2" - checksum: ea43bb662f1f5c93965989b1667fb6e8a301cb69c44341ee92c81cb15ea685b494168e5905593b5777d59058f1455b4b58083d5b895f04382e49362e420d7af4 +"@remix-run/router@npm:1.20.0": + version: 1.20.0 + resolution: "@remix-run/router@npm:1.20.0" + checksum: 6bff41117eabb867b17c89baa727580f0a431368b309cd9a1f69767aafa68ea9cac95ff0eeb86d37c2c8655f5cd7c6283d37ae5e6d93e94f648c6112ddb24ede languageName: node linkType: hard -"@remix-run/server-runtime@npm:1.19.3": - version: 1.19.3 - resolution: "@remix-run/server-runtime@npm:1.19.3" +"@remix-run/server-runtime@npm:2.13.1": + version: 2.13.1 + resolution: "@remix-run/server-runtime@npm:2.13.1" dependencies: - "@remix-run/router": 1.7.2 - "@types/cookie": ^0.4.1 + "@remix-run/router": 1.20.0 + "@types/cookie": ^0.6.0 "@web3-storage/multipart-parser": ^1.0.0 - cookie: ^0.4.1 + cookie: ^0.6.0 set-cookie-parser: ^2.4.8 source-map: ^0.7.3 - checksum: b9dffb469ed38ad4017dc6c509d47f6c352ec9bab3d4dd740d0067df6f6ae2f34133d81262f2a762587dbc6004ce94abf6187fb4902f8e1b4f6baf4e8a619648 + turbo-stream: 2.4.0 + peerDependencies: + typescript: ^5.1.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: d08bb5f71252f607f21a2355c0473156f798e8a16d6cdd585598a7cfd017ba915dfb6826eac0c2ff37846cabe45738f9f676523be62303168f167340b163b036 languageName: node linkType: hard @@ -6262,7 +6783,7 @@ __metadata: languageName: node linkType: hard -"@remix-run/web-fetch@npm:^4.3.6": +"@remix-run/web-fetch@npm:^4.4.2": version: 4.4.2 resolution: "@remix-run/web-fetch@npm:4.4.2" dependencies: @@ -6278,7 +6799,7 @@ __metadata: languageName: node linkType: hard -"@remix-run/web-file@npm:^3.0.3, @remix-run/web-file@npm:^3.1.0": +"@remix-run/web-file@npm:^3.1.0": version: 3.1.0 resolution: "@remix-run/web-file@npm:3.1.0" dependencies: @@ -6296,7 +6817,7 @@ __metadata: languageName: node linkType: hard -"@remix-run/web-stream@npm:^1.0.4, @remix-run/web-stream@npm:^1.1.0": +"@remix-run/web-stream@npm:^1.1.0": version: 1.1.0 resolution: "@remix-run/web-stream@npm:1.1.0" dependencies: @@ -7125,9 +7646,9 @@ __metadata: "@babel/core": ^7.25.2 "@config-plugins/react-native-callkeep": ^6.0.0 "@config-plugins/react-native-webrtc": ^9.0.0 - "@notifee/react-native": ^7.8.0 - "@react-native-async-storage/async-storage": 1.21.0 - "@react-native-community/netinfo": 11.1.0 + "@notifee/react-native": ^9.1.1 + "@react-native-async-storage/async-storage": 1.23.1 + "@react-native-community/netinfo": 11.3.1 "@react-native-firebase/app": 19.2.2 "@react-native-firebase/messaging": 19.2.2 "@rnx-kit/metro-config": ^1.3.14 @@ -7136,23 +7657,23 @@ __metadata: "@stream-io/video-react-native-sdk": "workspace:^" "@types/react": ~18.2.45 "@types/react-native-incall-manager": ^4 - expo: ~50.0.19 - expo-constants: ~15.4.6 - expo-linking: ~6.2.2 - expo-notifications: ~0.27.8 - expo-router: ~3.4.10 - expo-splash-screen: ~0.26.5 - expo-status-bar: ~1.11.1 - expo-task-manager: ~11.7.3 + expo: 51 + expo-constants: ~16.0.2 + expo-linking: ~6.3.1 + expo-notifications: ~0.28.18 + expo-router: ~3.5.23 + expo-splash-screen: ~0.27.6 + expo-status-bar: ~1.12.1 + expo-task-manager: ~11.8.2 react: 18.2.0 - react-native: 0.73.6 + react-native: 0.74.5 react-native-callkeep: 4.3.12 - react-native-gesture-handler: ~2.14.0 + react-native-gesture-handler: ~2.16.1 react-native-incall-manager: ^4.2.0 - react-native-reanimated: ~3.6.0 - react-native-safe-area-context: 4.8.2 - react-native-screens: ~3.29.0 - react-native-svg: 14.1.0 + react-native-reanimated: ~3.10.1 + react-native-safe-area-context: 4.10.5 + react-native-screens: 3.31.1 + react-native-svg: 15.2.0 react-native-voip-push-notification: ^3.3.2 typescript: ^5.5.2 languageName: unknown @@ -7828,10 +8349,10 @@ __metadata: languageName: node linkType: hard -"@types/cookie@npm:^0.4.1": - version: 0.4.1 - resolution: "@types/cookie@npm:0.4.1" - checksum: 3275534ed69a76c68eb1a77d547d75f99fedc80befb75a3d1d03662fb08d697e6f8b1274e12af1a74c6896071b11510631ba891f64d30c78528d0ec45a9c1a18 +"@types/cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "@types/cookie@npm:0.6.0" + checksum: 5edce7995775b0b196b142883e4d4f71fd93c294eaec973670f1fa2540b70ea7390408ed513ddefef5fcb12a578100c76596e8f2a714b0c2ae9f70ee773f4510 languageName: node linkType: hard @@ -7963,6 +8484,16 @@ __metadata: languageName: node linkType: hard +"@types/istanbul-reports@npm:^1.1.1": + version: 1.1.2 + resolution: "@types/istanbul-reports@npm:1.1.2" + dependencies: + "@types/istanbul-lib-coverage": "*" + "@types/istanbul-lib-report": "*" + checksum: 00866e815d1e68d0a590d691506937b79d8d65ad8eab5ed34dbfee66136c7c0f4ea65327d32046d5fe469f22abea2b294987591dc66365ebc3991f7e413b2d78 + languageName: node + linkType: hard + "@types/istanbul-reports@npm:^3.0.0": version: 3.0.1 resolution: "@types/istanbul-reports@npm:3.0.1" @@ -8386,6 +8917,15 @@ __metadata: languageName: node linkType: hard +"@types/yargs@npm:^13.0.0": + version: 13.0.12 + resolution: "@types/yargs@npm:13.0.12" + dependencies: + "@types/yargs-parser": "*" + checksum: 4eb34d8c071892299646e5a3fb02a643f5a5ea8da8f4d1817001882ebbcfa4fbda235b8978732f8eb55fa16433296e2087907fe69678a69125f0dca627a91426 + languageName: node + linkType: hard + "@types/yargs@npm:^15.0.0": version: 15.0.15 resolution: "@types/yargs@npm:15.0.15" @@ -9387,7 +9927,7 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^4.1.0": +"ansi-regex@npm:^4.0.0, ansi-regex@npm:^4.1.0": version: 4.1.1 resolution: "ansi-regex@npm:4.1.1" checksum: b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 @@ -9977,6 +10517,21 @@ __metadata: languageName: node linkType: hard +"babel-plugin-react-compiler@npm:0.0.0-experimental-592953e-20240517": + version: 0.0.0-experimental-592953e-20240517 + resolution: "babel-plugin-react-compiler@npm:0.0.0-experimental-592953e-20240517" + dependencies: + "@babel/generator": 7.2.0 + "@babel/types": ^7.19.0 + chalk: 4 + invariant: ^2.2.4 + pretty-format: ^24 + zod: ^3.22.4 + zod-validation-error: ^2.1.0 + checksum: f21ff9fc0139de33f94482d600542557d34b3ecb5e70e7f765b4b912a3a15d922cd3c5bcd46ffba4a7c0e6a075d6b93629105c2b8d19d8b6ce61ca8000bde653 + languageName: node + linkType: hard + "babel-plugin-react-native-web@npm:~0.18.10": version: 0.18.12 resolution: "babel-plugin-react-native-web@npm:0.18.12" @@ -9984,6 +10539,13 @@ __metadata: languageName: node linkType: hard +"babel-plugin-react-native-web@npm:~0.19.10": + version: 0.19.12 + resolution: "babel-plugin-react-native-web@npm:0.19.12" + checksum: bf5378f9ed3477f0165e989cc389da60681032680c5b8147f88905c65bba5267bb296943f87d4885c22a3fcdebfa815f7e7c25ae8f8192c4579f291994a1d946 + languageName: node + linkType: hard + "babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": version: 7.0.0-beta.0 resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" @@ -10046,6 +10608,24 @@ __metadata: languageName: node linkType: hard +"babel-preset-expo@npm:~11.0.15": + version: 11.0.15 + resolution: "babel-preset-expo@npm:11.0.15" + dependencies: + "@babel/plugin-proposal-decorators": ^7.12.9 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.12.13 + "@babel/plugin-transform-parameters": ^7.22.15 + "@babel/preset-react": ^7.22.15 + "@babel/preset-typescript": ^7.23.0 + "@react-native/babel-preset": 0.74.87 + babel-plugin-react-compiler: 0.0.0-experimental-592953e-20240517 + babel-plugin-react-native-web: ~0.19.10 + react-refresh: ^0.14.2 + checksum: 84e36d06e0ff4fda65d4f5fbed99e29030677e847de0f81fe93ba17772b7887b292d82ec5d77be8c81c8af6a5c46c4f07016a05f0319e949c3b4e48e09cb26e2 + languageName: node + linkType: hard + "babel-preset-fbjs@npm:^3.4.0": version: 3.4.0 resolution: "babel-preset-fbjs@npm:3.4.0" @@ -10245,6 +10825,15 @@ __metadata: languageName: node linkType: hard +"bplist-creator@npm:0.0.7": + version: 0.0.7 + resolution: "bplist-creator@npm:0.0.7" + dependencies: + stream-buffers: ~2.2.0 + checksum: 5bcf4091c5a0e5934d56643d9f2705b5149a0b0b62b8314762f6ad4b3208d313c75ad03bab97a3c42b6e17db3d73530d3642d082ca249b55f952c90056c2b2ad + languageName: node + linkType: hard + "bplist-creator@npm:0.1.1": version: 0.1.1 resolution: "bplist-creator@npm:0.1.1" @@ -10474,6 +11063,26 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^18.0.2": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b7422c113b4ec750f33beeca0f426a0024c28e3172f332218f48f963e5b970647fa1ac05679fe5bb448832c51efea9fda4456b9a95c3a1af1105fe6c1833cde2 + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" @@ -10590,7 +11199,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": +"chalk@npm:4, chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -11474,10 +12083,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:^0.4.1": - version: 0.4.2 - resolution: "cookie@npm:0.4.2" - checksum: a00833c998bedf8e787b4c342defe5fa419abd96b32f4464f718b91022586b8f1bafbddd499288e75c037642493c83083da426c6a9080d309e3bd90fd11baa9b +"cookie@npm:^0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410 languageName: node linkType: hard @@ -13590,6 +14199,28 @@ __metadata: languageName: node linkType: hard +"expo-application@npm:~5.9.0": + version: 5.9.1 + resolution: "expo-application@npm:5.9.1" + peerDependencies: + expo: "*" + checksum: aef23ecf4a4ecee95f345679e84f3b6a6d3bef6f8dad345bd9f0a1e8272e0da1d7047740af979a5e80721a97cb9ed02b2b166242c1244161c80d9ac534ff3cb9 + languageName: node + linkType: hard + +"expo-asset@npm:~10.0.10": + version: 10.0.10 + resolution: "expo-asset@npm:10.0.10" + dependencies: + expo-constants: ~16.0.0 + invariant: ^2.2.4 + md5-file: ^3.2.3 + peerDependencies: + expo: "*" + checksum: abf6afee29db1df356008b2260ecfd37eafdeeda989deeaf546d6c6857f82f71efe6d2f6e348d5bf0f077325f9ce2c8dad006ad5d8d2df35cdd9bf3dc15e714a + languageName: node + linkType: hard + "expo-asset@npm:~9.0.2": version: 9.0.2 resolution: "expo-asset@npm:9.0.2" @@ -13616,7 +14247,7 @@ __metadata: languageName: node linkType: hard -"expo-constants@npm:~15.4.0, expo-constants@npm:~15.4.3, expo-constants@npm:~15.4.6": +"expo-constants@npm:~15.4.0": version: 15.4.6 resolution: "expo-constants@npm:15.4.6" dependencies: @@ -13627,6 +14258,18 @@ __metadata: languageName: node linkType: hard +"expo-constants@npm:~16.0.0, expo-constants@npm:~16.0.2": + version: 16.0.2 + resolution: "expo-constants@npm:16.0.2" + dependencies: + "@expo/config": ~9.0.0 + "@expo/env": ~0.3.0 + peerDependencies: + expo: "*" + checksum: 59e0ceeef9d6f863730a940b1d2b1117b1c55a1cf9b71557e6e067fa06b116e703e4848e9ad5e223aca86715a03d91464797e2308c1d9fc8530b5a24f4d01902 + languageName: node + linkType: hard + "expo-file-system@npm:~16.0.0, expo-file-system@npm:~16.0.9": version: 16.0.9 resolution: "expo-file-system@npm:16.0.9" @@ -13636,6 +14279,15 @@ __metadata: languageName: node linkType: hard +"expo-file-system@npm:~17.0.1": + version: 17.0.1 + resolution: "expo-file-system@npm:17.0.1" + peerDependencies: + expo: "*" + checksum: e87f4b663dd01150ccc0c2eda52c221d0e6826ebaad4ff371498fb57c124ca73586868615d17031775671a58096a40a98e7dca189d46538aa3ade77ca2930e8b + languageName: node + linkType: hard + "expo-font@npm:~11.10.3": version: 11.10.3 resolution: "expo-font@npm:11.10.3" @@ -13647,6 +14299,17 @@ __metadata: languageName: node linkType: hard +"expo-font@npm:~12.0.10": + version: 12.0.10 + resolution: "expo-font@npm:12.0.10" + dependencies: + fontfaceobserver: ^2.1.0 + peerDependencies: + expo: "*" + checksum: c8fdc046158d4c2d71d81fcd9ba115bc0e142bc0d637ae9b5fea04cd816c62c051f63e44685530109106565d29feca2035ef6123c56cf9c951d0a2775a8cd9a7 + languageName: node + linkType: hard + "expo-keep-awake@npm:~12.8.2": version: 12.8.2 resolution: "expo-keep-awake@npm:12.8.2" @@ -13656,13 +14319,22 @@ __metadata: languageName: node linkType: hard -"expo-linking@npm:~6.2.2": - version: 6.2.2 - resolution: "expo-linking@npm:6.2.2" +"expo-keep-awake@npm:~13.0.2": + version: 13.0.2 + resolution: "expo-keep-awake@npm:13.0.2" + peerDependencies: + expo: "*" + checksum: 1300c6663632bc00db71a7d3b8a8dfc30ec0cbdd01777ab30b54ef5269cdfd557ae9419ae9f4007dbab1d252610fa6bfd22ebb0b5c2012ecad929bb4c3f35188 + languageName: node + linkType: hard + +"expo-linking@npm:~6.3.1": + version: 6.3.1 + resolution: "expo-linking@npm:6.3.1" dependencies: - expo-constants: ~15.4.3 + expo-constants: ~16.0.0 invariant: ^2.2.4 - checksum: 7deaedc2d410a020f23c2a70f8d7ed5334dfb10ff36259d2042fa5eabe6278065956012f4b7cdfe1fb1b5aea1f5f30cded381d338687eef9e6445bd557c7a112 + checksum: 32e2dbcffc802fc6570a5a9cd7839c873f6cfc40730f1cf3cdabeb2782c30b54455d41c98708dbba2649941d5ff8cb591b85689f9c1a3b7a3fcb20011aae0cb5 languageName: node linkType: hard @@ -13682,6 +14354,23 @@ __metadata: languageName: node linkType: hard +"expo-modules-autolinking@npm:1.11.3": + version: 1.11.3 + resolution: "expo-modules-autolinking@npm:1.11.3" + dependencies: + chalk: ^4.1.0 + commander: ^7.2.0 + fast-glob: ^3.2.5 + find-up: ^5.0.0 + fs-extra: ^9.1.0 + require-from-string: ^2.0.2 + resolve-from: ^5.0.0 + bin: + expo-modules-autolinking: bin/expo-modules-autolinking.js + checksum: 940c2d35d41515f9dff33fec145db763923bdd8a1a782cd7fb04b216f7c01acd7dbd9d5792941f8dd85ae0bb65d97ae89dfe3cecbdb632964e3376616e76d7c8 + languageName: node + linkType: hard + "expo-modules-core@npm:1.11.13": version: 1.11.13 resolution: "expo-modules-core@npm:1.11.13" @@ -13700,6 +14389,15 @@ __metadata: languageName: node linkType: hard +"expo-modules-core@npm:1.12.25": + version: 1.12.25 + resolution: "expo-modules-core@npm:1.12.25" + dependencies: + invariant: ^2.2.4 + checksum: 8bc880c8d46ddc8661a7a2e4ff483b83b3e03b15cd90882be24008337aa98358612475ec34c66e31ce7131c12378a1ab6f75ca38143c26ce3ec2c891c5473d40 + languageName: node + linkType: hard + "expo-notifications@npm:~0.27.8": version: 0.27.8 resolution: "expo-notifications@npm:0.27.8" @@ -13718,17 +14416,35 @@ __metadata: languageName: node linkType: hard -"expo-router@npm:~3.4.10": - version: 3.4.10 - resolution: "expo-router@npm:3.4.10" +"expo-notifications@npm:~0.28.18": + version: 0.28.18 + resolution: "expo-notifications@npm:0.28.18" + dependencies: + "@expo/image-utils": ^0.5.0 + "@ide/backoff": ^1.0.0 + abort-controller: ^3.0.0 + assert: ^2.0.0 + badgin: ^1.1.5 + expo-application: ~5.9.0 + expo-constants: ~16.0.0 + fs-extra: ^9.1.0 + peerDependencies: + expo: "*" + checksum: fbc1549d9dd7045e4b06532ab80b27b09e706beb806d5f967aca83414859b28a0e72685a3a98ee90bd510f3ab932135e001a6d90b1deb9e00ad6be68a111a479 + languageName: node + linkType: hard + +"expo-router@npm:~3.5.23": + version: 3.5.23 + resolution: "expo-router@npm:3.5.23" dependencies: - "@expo/metro-runtime": 3.1.3 - "@expo/server": ^0.3.0 + "@expo/metro-runtime": 3.2.3 + "@expo/server": ^0.4.0 "@radix-ui/react-slot": 1.0.1 "@react-navigation/bottom-tabs": ~6.5.7 "@react-navigation/native": ~6.1.6 "@react-navigation/native-stack": ~6.9.12 - expo-splash-screen: ~0.26.5 + expo-splash-screen: 0.27.5 react-native-helmet-async: 2.0.4 schema-utils: ^4.0.1 peerDependencies: @@ -13747,25 +14463,36 @@ __metadata: optional: true react-native-reanimated: optional: true - checksum: 4211d9cf44ba2b94d4215308c181cd3d5201e03bb0b168f4e46b81e7762e904bf80e8622aa64f372bafad9eb7f9f66db3d308e9128a66b3152fd560873fb350e + checksum: 27bf505c3f4faa2b00c43836bba4e52f5c3d1a153404e50d254499c2536c0e87cf8d6cc690e823819489824c8b8ecd784abdf10188b0317241fc648c3836468b languageName: node linkType: hard -"expo-splash-screen@npm:~0.26.5": - version: 0.26.5 - resolution: "expo-splash-screen@npm:0.26.5" +"expo-splash-screen@npm:0.27.5": + version: 0.27.5 + resolution: "expo-splash-screen@npm:0.27.5" dependencies: - "@expo/prebuild-config": 6.8.1 + "@expo/prebuild-config": 7.0.6 peerDependencies: expo: "*" - checksum: 8db35fa492e525ecddb783a677be7b33220c27865ecb08003a438457467dab1f3fb9ea2d1ae636883e3707775d74327f4e491669ce80e72a3f5d90f35505d7bc + checksum: db82996f2b6b40c566f16f51e3d4f68f6e9fba8f4923455b296a79ff68dd7746f3938714d02220687254d47512f928bc10b0dede2e890db652a37da98586f674 languageName: node linkType: hard -"expo-status-bar@npm:~1.11.1": - version: 1.11.1 - resolution: "expo-status-bar@npm:1.11.1" - checksum: 5ac4d6b592acff4c8d5da2cbe1eb337b9389b648e4e4c56af4c484b5f1fa0dddf09f5b7c86b34fb03d0a77d4a6658e370cfd57904587794fa14b7e06cae41e88 +"expo-splash-screen@npm:~0.27.6": + version: 0.27.6 + resolution: "expo-splash-screen@npm:0.27.6" + dependencies: + "@expo/prebuild-config": 7.0.8 + peerDependencies: + expo: "*" + checksum: a345e53ffd591faca7badf2db425f3f573cd8273bd425696a2d8433fa188f50d4e4d22252ae110a3c835465926949264c9f232ae0e24858e4a31765a89c82483 + languageName: node + linkType: hard + +"expo-status-bar@npm:~1.12.1": + version: 1.12.1 + resolution: "expo-status-bar@npm:1.12.1" + checksum: 82f2e9096660cdb521b920662908b93e1909c2bbe776802c314dff6e0863300d19ba4b9e093825b2bdc094f333010df0b8ed11fcb330e4c29a16c2d55da0aa96 languageName: node linkType: hard @@ -13780,7 +14507,18 @@ __metadata: languageName: node linkType: hard -"expo@npm:50.0.19, expo@npm:~50.0.19": +"expo-task-manager@npm:~11.8.2": + version: 11.8.2 + resolution: "expo-task-manager@npm:11.8.2" + dependencies: + unimodules-app-loader: ~4.6.0 + peerDependencies: + expo: "*" + checksum: ebc0ebb23ce357cfe8be1c19bf781551ea71b40aac69b85814558cf9233b36596241c7b905512bcc174f148aa7d66cd67d2c755747ee16d1359264fc6376ac81 + languageName: node + linkType: hard + +"expo@npm:50.0.19": version: 50.0.19 resolution: "expo@npm:50.0.19" dependencies: @@ -13805,6 +14543,31 @@ __metadata: languageName: node linkType: hard +"expo@npm:51": + version: 51.0.37 + resolution: "expo@npm:51.0.37" + dependencies: + "@babel/runtime": ^7.20.0 + "@expo/cli": 0.18.30 + "@expo/config": 9.0.4 + "@expo/config-plugins": 8.0.10 + "@expo/metro-config": 0.18.11 + "@expo/vector-icons": ^14.0.3 + babel-preset-expo: ~11.0.15 + expo-asset: ~10.0.10 + expo-file-system: ~17.0.1 + expo-font: ~12.0.10 + expo-keep-awake: ~13.0.2 + expo-modules-autolinking: 1.11.3 + expo-modules-core: 1.12.25 + fbemitter: ^3.0.0 + whatwg-url-without-unicode: 8.0.0-3 + bin: + expo: bin/cli + checksum: 6e8da00e71767b6f170ab5fcd60d9fdaa0b1e4bee76c4a069bf0972281cac32ef8825885a1e3d312172c8cb623c48cea4f86ac6ca9948952a92a082284a03726 + languageName: node + linkType: hard + "express@npm:^4.18.2": version: 4.18.2 resolution: "express@npm:4.18.2" @@ -14438,6 +15201,15 @@ __metadata: languageName: node linkType: hard +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" @@ -14838,9 +15610,9 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.7, glob@npm:^10.4.1": - version: 10.4.2 - resolution: "glob@npm:10.4.2" +"glob@npm:^10.2.2, glob@npm:^10.3.7, glob@npm:^10.4.1": + version: 10.4.5 + resolution: "glob@npm:10.4.5" dependencies: foreground-child: ^3.1.0 jackspeak: ^3.1.2 @@ -14850,7 +15622,7 @@ __metadata: path-scurry: ^1.11.1 bin: glob: dist/esm/bin.mjs - checksum: bd7c0e30701136e936f414e5f6f82c7f04503f01df77408f177aa584927412f0bde0338e6ec541618cd21eacc57dde33e7b3c6c0a779cc1c6e6a0e14f3d15d9b + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a languageName: node linkType: hard @@ -17046,6 +17818,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: a36d3ca40574a974d9c2063bf68c2b6141c20da8f2a36bd3279fc802563f35f0527a6c828801295bdfb2803952cf2cf387786c2c90ed564f88d5782475abfe3c + languageName: node + linkType: hard + "jsesc@npm:~0.5.0": version: 0.5.0 resolution: "jsesc@npm:0.5.0" @@ -17700,7 +18481,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.17.13, lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.17.4": +"lodash@npm:4.17.21, lodash@npm:^4.17.10, lodash@npm:^4.17.13, lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.17.4": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -17766,10 +18547,10 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.2.0": - version: 10.3.0 - resolution: "lru-cache@npm:10.3.0" - checksum: f2289639bd94cf3c87bfd8a77ac991f9afe3af004ddca3548c3dae63ead1c73bba449a60a4e270992e16cf3261b3d4130943234d52ca3a4d4de2fc074a3cc7b5 +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a languageName: node linkType: hard @@ -19470,6 +20251,15 @@ __metadata: languageName: node linkType: hard +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + "minipass-fetch@npm:^2.0.3": version: 2.1.2 resolution: "minipass-fetch@npm:2.1.2" @@ -19545,7 +20335,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.1.2": +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3, minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 @@ -21386,6 +22176,18 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^24": + version: 24.9.0 + resolution: "pretty-format@npm:24.9.0" + dependencies: + "@jest/types": ^24.9.0 + ansi-regex: ^4.0.0 + ansi-styles: ^3.2.0 + react-is: ^16.8.4 + checksum: ba9291c8dafd50d2fea1fbad5d2863a6f94e0c8835cce9778ec03bc11bb0f52b9ed0e4ee56aaa331d022ccae2fe52b92f73465a0af58fd0edb59deb6391c6847 + languageName: node + linkType: hard + "pretty-format@npm:^26.5.2, pretty-format@npm:^26.6.2": version: 26.6.2 resolution: "pretty-format@npm:26.6.2" @@ -21796,7 +22598,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^16.13.0, react-is@npm:^16.13.1, react-is@npm:^16.7.0, react-is@npm:^16.8.6": +"react-is@npm:^16.13.0, react-is@npm:^16.13.1, react-is@npm:^16.7.0, react-is@npm:^16.8.4, react-is@npm:^16.8.6": version: 16.13.1 resolution: "react-is@npm:16.13.1" checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f @@ -21943,7 +22745,7 @@ __metadata: languageName: node linkType: hard -"react-native-gesture-handler@npm:2.16.2, react-native-gesture-handler@npm:^2.15.0": +"react-native-gesture-handler@npm:2.16.2, react-native-gesture-handler@npm:^2.15.0, react-native-gesture-handler@npm:~2.16.1": version: 2.16.2 resolution: "react-native-gesture-handler@npm:2.16.2" dependencies: @@ -21959,22 +22761,6 @@ __metadata: languageName: node linkType: hard -"react-native-gesture-handler@npm:~2.14.0": - version: 2.14.1 - resolution: "react-native-gesture-handler@npm:2.14.1" - dependencies: - "@egjs/hammerjs": ^2.0.17 - hoist-non-react-statics: ^3.3.0 - invariant: ^2.2.4 - lodash: ^4.17.21 - prop-types: ^15.7.2 - peerDependencies: - react: "*" - react-native: "*" - checksum: a037e8c5a88a9fc79c283f3064d7653ec8615cb05fc62622eaccb5f3db489ede9c3a0685b7aad210c7efabfd8f5aa34e4f19204318dfda64c8829266d78e0cae - languageName: node - linkType: hard - "react-native-gradle-plugin@npm:^0.71.18": version: 0.71.19 resolution: "react-native-gradle-plugin@npm:0.71.19" @@ -22094,81 +22880,59 @@ __metadata: languageName: node linkType: hard -"react-native-reanimated@npm:^3.7.0": - version: 3.7.0 - resolution: "react-native-reanimated@npm:3.7.0" +"react-native-reanimated@npm:^3.7.0, react-native-reanimated@npm:~3.10.1": + version: 3.10.1 + resolution: "react-native-reanimated@npm:3.10.1" dependencies: - "@babel/plugin-transform-object-assign": ^7.16.7 - "@babel/preset-typescript": ^7.16.7 - convert-source-map: ^2.0.0 - invariant: ^2.2.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.0.0-0 - "@babel/plugin-proposal-optional-chaining": ^7.0.0-0 "@babel/plugin-transform-arrow-functions": ^7.0.0-0 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.0.0-0 + "@babel/plugin-transform-optional-chaining": ^7.0.0-0 "@babel/plugin-transform-shorthand-properties": ^7.0.0-0 "@babel/plugin-transform-template-literals": ^7.0.0-0 - react: "*" - react-native: "*" - checksum: f3ea132d889184eec56023cb82454805dbbc0fb7c4c3921bec6b9d9db6d530beb5e25b2f9d05f265c66bb8a08e0fff70a2376fea5a6ba871f9f479f3538556cd - languageName: node - linkType: hard - -"react-native-reanimated@npm:~3.6.0": - version: 3.6.2 - resolution: "react-native-reanimated@npm:3.6.2" - dependencies: - "@babel/plugin-transform-object-assign": ^7.16.7 "@babel/preset-typescript": ^7.16.7 convert-source-map: ^2.0.0 invariant: ^2.2.4 peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.0.0-0 - "@babel/plugin-proposal-optional-chaining": ^7.0.0-0 - "@babel/plugin-transform-arrow-functions": ^7.0.0-0 - "@babel/plugin-transform-shorthand-properties": ^7.0.0-0 - "@babel/plugin-transform-template-literals": ^7.0.0-0 react: "*" react-native: "*" - checksum: 0a5030ec7d66603bdb1777fb9a37f6621c7c329b47101596d882d0dd526fe1ed34f4088635aacb9d44988bdbc6fe5b792145fc44eafaceb080b7a8c7ddd69eff + checksum: b41808a122799806a524601e75620c8d79ebf8a0127f57fe370412f90471560005f65df8549fd8c39e627c58141a921c849fec9d263f481f153f0ddc90e4a5b6 languageName: node linkType: hard -"react-native-safe-area-context@npm:4.8.2, react-native-safe-area-context@npm:^4.4.1": - version: 4.8.2 - resolution: "react-native-safe-area-context@npm:4.8.2" +"react-native-safe-area-context@npm:4.10.5, react-native-safe-area-context@npm:^4.4.1": + version: 4.10.5 + resolution: "react-native-safe-area-context@npm:4.10.5" peerDependencies: react: "*" react-native: "*" - checksum: 929eaa5ee522f712e7bfabd0f22908f033918d030c932ddf6a83e4315bc781f7aa44e315806dc8130f75619f09951f3237082f720f4fa65a6670469886cf9735 + checksum: 94e049a5579e8cbe6d08a6da89efc948ff20042c7c08670341ec3629752fa40d0b1f14471860a18fdfc121fbdee1b58d582704f3fd2dc612890a0bd002f908a1 languageName: node linkType: hard -"react-native-screens@npm:^3.29.0, react-native-screens@npm:~3.29.0": - version: 3.29.0 - resolution: "react-native-screens@npm:3.29.0" +"react-native-screens@npm:3.31.1, react-native-screens@npm:^3.29.0": + version: 3.31.1 + resolution: "react-native-screens@npm:3.31.1" dependencies: react-freeze: ^1.0.0 warn-once: ^0.1.0 peerDependencies: react: "*" react-native: "*" - checksum: c1879eea8386f32c2655fedd79d41d8e25d2f4e7f883abbcad2c747ea7ac859f4a7f469475a519948e7c5ea317a7ebd8df92c6365627f6a5da1e4a208cece7e1 + checksum: 1fc61cf7a223b3ef1c8000e74416c8953561c5fa0861557da43659db62a640e37fb51fbdc35dae810a665881a7aa9eeaf1873e90f67404b4dda53a672464a7fe languageName: node linkType: hard -"react-native-svg@npm:14.1.0": - version: 14.1.0 - resolution: "react-native-svg@npm:14.1.0" +"react-native-svg@npm:15.2.0": + version: 15.2.0 + resolution: "react-native-svg@npm:15.2.0" dependencies: css-select: ^5.1.0 css-tree: ^1.1.3 peerDependencies: react: "*" react-native: "*" - checksum: ed94adac9bf3144c5dcbf37a2956ab672d402f11c0ed75cda247d1d9136ce8977f4d01bcfc813ba576bd61ece420d66306c148057e2552828aa8fe9bad173d46 + checksum: 0075d3c5bcf6bbbebe064364ec72c02eeff3fc0f2b1ba127bde26a8ecedc190a7890a910a6a051687318fa80504a3bc335eee2bfd6846b90193ca1608bae821e languageName: node linkType: hard @@ -22320,27 +23084,26 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.73.6": - version: 0.73.6 - resolution: "react-native@npm:0.73.6" +"react-native@npm:0.74.1": + version: 0.74.1 + resolution: "react-native@npm:0.74.1" dependencies: "@jest/create-cache-key-function": ^29.6.3 - "@react-native-community/cli": 12.3.6 - "@react-native-community/cli-platform-android": 12.3.6 - "@react-native-community/cli-platform-ios": 12.3.6 - "@react-native/assets-registry": 0.73.1 - "@react-native/codegen": 0.73.3 - "@react-native/community-cli-plugin": 0.73.17 - "@react-native/gradle-plugin": 0.73.4 - "@react-native/js-polyfills": 0.73.1 - "@react-native/normalize-colors": 0.73.2 - "@react-native/virtualized-lists": 0.73.4 + "@react-native-community/cli": 13.6.6 + "@react-native-community/cli-platform-android": 13.6.6 + "@react-native-community/cli-platform-ios": 13.6.6 + "@react-native/assets-registry": 0.74.83 + "@react-native/codegen": 0.74.83 + "@react-native/community-cli-plugin": 0.74.83 + "@react-native/gradle-plugin": 0.74.83 + "@react-native/js-polyfills": 0.74.83 + "@react-native/normalize-colors": 0.74.83 + "@react-native/virtualized-lists": 0.74.83 abort-controller: ^3.0.0 anser: ^1.4.9 ansi-regex: ^5.0.0 base64-js: ^1.5.1 chalk: ^4.0.0 - deprecated-react-native-prop-types: ^5.0.0 event-target-shim: ^5.0.1 flow-enums-runtime: ^0.0.6 invariant: ^2.2.4 @@ -22353,7 +23116,7 @@ __metadata: nullthrows: ^1.1.1 pretty-format: ^26.5.2 promise: ^8.3.0 - react-devtools-core: ^4.27.7 + react-devtools-core: ^5.0.0 react-refresh: ^0.14.0 react-shallow-renderer: ^16.15.0 regenerator-runtime: ^0.13.2 @@ -22363,28 +23126,32 @@ __metadata: ws: ^6.2.2 yargs: ^17.6.2 peerDependencies: + "@types/react": ^18.2.6 react: 18.2.0 + peerDependenciesMeta: + "@types/react": + optional: true bin: react-native: cli.js - checksum: 20e71c902f165c15add9f841bbc555c7b8495235122ccc42f5f1c5c0189c453651a450e59b6541188d8edb829a2aac524a1762501fb6ecebc4c89e9aa6667682 + checksum: f89c54da0b3f475bf1a90cfce62a062606ecdfa9974b264f2b69c823dd1e43c866e89d83d20d1af06018ce8301ca32a270c2f8eb06f6b3f3dcd816e9d0995cc3 languageName: node linkType: hard -"react-native@npm:0.74.1": - version: 0.74.1 - resolution: "react-native@npm:0.74.1" +"react-native@npm:0.74.5": + version: 0.74.5 + resolution: "react-native@npm:0.74.5" dependencies: "@jest/create-cache-key-function": ^29.6.3 - "@react-native-community/cli": 13.6.6 - "@react-native-community/cli-platform-android": 13.6.6 - "@react-native-community/cli-platform-ios": 13.6.6 - "@react-native/assets-registry": 0.74.83 - "@react-native/codegen": 0.74.83 - "@react-native/community-cli-plugin": 0.74.83 - "@react-native/gradle-plugin": 0.74.83 - "@react-native/js-polyfills": 0.74.83 - "@react-native/normalize-colors": 0.74.83 - "@react-native/virtualized-lists": 0.74.83 + "@react-native-community/cli": 13.6.9 + "@react-native-community/cli-platform-android": 13.6.9 + "@react-native-community/cli-platform-ios": 13.6.9 + "@react-native/assets-registry": 0.74.87 + "@react-native/codegen": 0.74.87 + "@react-native/community-cli-plugin": 0.74.87 + "@react-native/gradle-plugin": 0.74.87 + "@react-native/js-polyfills": 0.74.87 + "@react-native/normalize-colors": 0.74.87 + "@react-native/virtualized-lists": 0.74.87 abort-controller: ^3.0.0 anser: ^1.4.9 ansi-regex: ^5.0.0 @@ -22419,7 +23186,7 @@ __metadata: optional: true bin: react-native: cli.js - checksum: f89c54da0b3f475bf1a90cfce62a062606ecdfa9974b264f2b69c823dd1e43c866e89d83d20d1af06018ce8301ca32a270c2f8eb06f6b3f3dcd816e9d0995cc3 + checksum: 3ac8df993a8ca1e2598049dfcdd10ef5708292be37137c7c39884f36044b83b2cbb7b1354059b48551b3570135ea8570c914e64a882a5d51e641d33c40f759bd languageName: node linkType: hard @@ -22452,13 +23219,20 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:0.14.0, react-refresh@npm:^0.14.0": +"react-refresh@npm:0.14.0": version: 0.14.0 resolution: "react-refresh@npm:0.14.0" checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 languageName: node linkType: hard +"react-refresh@npm:^0.14.0, react-refresh@npm:^0.14.2": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: d80db4bd40a36dab79010dc8aa317a5b931f960c0d83c4f3b81f0552cbcf7f29e115b84bb7908ec6a1eb67720fff7023084eff73ece8a7ddc694882478464382 + languageName: node + linkType: hard + "react-refresh@npm:^0.4.0": version: 0.4.3 resolution: "react-refresh@npm:0.4.3" @@ -23792,7 +24566,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.6, source-map@npm:^0.5.7": +"source-map@npm:^0.5.0, source-map@npm:^0.5.6, source-map@npm:^0.5.7": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d @@ -23893,6 +24667,15 @@ __metadata: languageName: node linkType: hard +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: ^7.0.3 + checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 + languageName: node + linkType: hard + "ssri@npm:^8.0.1": version: 8.0.1 resolution: "ssri@npm:8.0.1" @@ -23989,7 +24772,7 @@ __metadata: languageName: node linkType: hard -"stream-buffers@npm:2.2.x": +"stream-buffers@npm:2.2.x, stream-buffers@npm:~2.2.0": version: 2.2.0 resolution: "stream-buffers@npm:2.2.0" checksum: 4587d9e8f050d689fb38b4295e73408401b16de8edecc12026c6f4ae92956705ecfd995ae3845d7fa3ebf19502d5754df9143d91447fd881d86e518f43882c1c @@ -24975,6 +25758,13 @@ __metadata: languageName: node linkType: hard +"trim-right@npm:^1.0.1": + version: 1.0.1 + resolution: "trim-right@npm:1.0.1" + checksum: 9120af534e006a7424a4f9358710e6e707887b6ccf7ea69e50d6ac6464db1fe22268400def01752f09769025d480395159778153fb98d4a2f6f40d4cf5d4f3b6 + languageName: node + linkType: hard + "trough@npm:^1.0.0": version: 1.0.5 resolution: "trough@npm:1.0.5" @@ -25192,6 +25982,13 @@ __metadata: languageName: node linkType: hard +"turbo-stream@npm:2.4.0": + version: 2.4.0 + resolution: "turbo-stream@npm:2.4.0" + checksum: e36f52ed40589f01bede79757a143bef484914d579927235be1fd0c205618994cb5779a39ff8c2a80a87a1464d05771cd75320a9412b15bca03c7ff432e3cdf7 + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -25380,7 +26177,6 @@ __metadata: bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: ab417a2f398380c90a6cf5a5f74badd17866adf57f1165617d6a551f059c3ba0a3e4da0d147b3ac5681db9ac76a303c5876394b13b3de75fdd5b1eaa06181c9d languageName: node linkType: hard @@ -25390,7 +26186,6 @@ __metadata: bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 9d89bac0de650e15d6846485f238d1e65f1013f2c260d9e53e86a1da6ecf8109d9fad9402575c5c36a6592dc5d4370db090e12971c8630ae84453654baabb6b4 languageName: node linkType: hard @@ -25480,6 +26275,13 @@ __metadata: languageName: node linkType: hard +"undici@npm:^6.11.1": + version: 6.20.0 + resolution: "undici@npm:6.20.0" + checksum: 90c2bf3945fe2565eda22f1b983ab700ac778b21d5f9e62c831e096ccffaaceee7df7d0c05fb8766a87faedc6b111b24630527a5e6b7d92af35fddec2d921fb7 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -25547,6 +26349,13 @@ __metadata: languageName: node linkType: hard +"unimodules-app-loader@npm:~4.6.0": + version: 4.6.0 + resolution: "unimodules-app-loader@npm:4.6.0" + checksum: 20897153b02f5436d51090ae30863950abec6a0438e460f4e5561bd155273c2a6eea626d1135fc8b07f5a57c1969e24f89b4ae4d5df198266ee88719db10444d + languageName: node + linkType: hard + "unique-filename@npm:^1.1.1": version: 1.1.1 resolution: "unique-filename@npm:1.1.1" @@ -25565,6 +26374,15 @@ __metadata: languageName: node linkType: hard +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + "unique-random-array@npm:1.0.0": version: 1.0.0 resolution: "unique-random-array@npm:1.0.0" @@ -25606,6 +26424,15 @@ __metadata: languageName: node linkType: hard +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + "unique-string@npm:^1.0.0": version: 1.0.0 resolution: "unique-string@npm:1.0.0" @@ -26837,6 +27664,22 @@ __metadata: languageName: node linkType: hard +"zod-validation-error@npm:^2.1.0": + version: 2.1.0 + resolution: "zod-validation-error@npm:2.1.0" + peerDependencies: + zod: ^3.18.0 + checksum: 2331cc8d876c2df0b720b648249447b65d6b85ad0b6e60dd6515170570e6ffbe7a9adb844d44035c07d59c871048d9c45a8c429849bedeb8cbcdfa5f90101402 + languageName: node + linkType: hard + +"zod@npm:^3.22.4": + version: 3.23.8 + resolution: "zod@npm:3.23.8" + checksum: 15949ff82118f59c893dacd9d3c766d02b6fa2e71cf474d5aa888570c469dbf5446ac5ad562bb035bf7ac9650da94f290655c194f4a6de3e766f43febd432c5c + languageName: node + linkType: hard + "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4" From 00a6373e98f4f23053611f00cd7445d10d03e8e6 Mon Sep 17 00:00:00 2001 From: Kristian Date: Wed, 16 Oct 2024 12:10:35 +0200 Subject: [PATCH 10/15] feat(design-v2): Call control buttons (#1514) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 🎯 Goal - Jira Ticket: [PBE-5857](https://stream-io.atlassian.net/browse/PBE-5857) - Add new call control buttons ## 🛠 Implementation details ✅ ParticipantInfo button is moved to the bottom call controls sections ✅ Around half of the call control buttons in the bottom section are moved to bottom drawer and the remaining main buttons are split in left and right sections ✅ Add more button is added that will open bottom drawer with more call controls ✅ New styling and icons is applied on the call controls ## 🎨 UI Changes iOS
Before After
ios-after ios-after
Android
Before After
ios-after ios-after
[PBE-5857]: https://stream-io.atlassian.net/browse/PBE-5857?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --- .../components/CallControls.test.tsx | 47 +------ .../components/ParticipantView.test.tsx | 1 - .../04-ui-components/call/call-content.mdx | 1 - .../04-ui-components/call/call-top-view.mdx | 4 - .../call-content/participants-info-badge.mdx | 5 - .../Call/CallContent/CallContent.tsx | 24 +--- .../Call/CallControls/CallControlsButton.tsx | 20 +-- .../Call/CallControls/ChatButton.tsx | 90 ------------- .../CallControls/ToggleAudioPreviewButton.tsx | 26 ++-- .../ToggleAudioPublishingButton.tsx | 25 ++-- .../CallControls/ToggleVideoPreviewButton.tsx | 29 +++-- .../ToggleVideoPublishingButton.tsx | 25 ++-- .../components/Call/CallControls/index.tsx | 1 - .../Call/CallTopView/CallTopView.tsx | 22 ---- .../CallTopView/ParticipantsInfoBadge.tsx | 119 ------------------ .../src/components/Call/CallTopView/index.ts | 1 - .../src/components/Call/Lobby/Lobby.tsx | 24 +--- .../LivestreamAudioControlButton.tsx | 5 +- .../LivestreamVideoControlButton.tsx | 5 +- .../FloatingParticipantView/index.tsx | 3 +- .../ParticipantView/ParticipantLabel.tsx | 40 +----- .../react-native-sdk/src/constants/TestIds.ts | 1 + .../src/icons/IconWrapper.tsx | 15 +++ packages/react-native-sdk/src/icons/Mic.tsx | 11 +- .../react-native-sdk/src/icons/MicOff.tsx | 7 +- .../src/icons/Participants.tsx | 18 --- packages/react-native-sdk/src/icons/Video.tsx | 7 +- .../react-native-sdk/src/icons/VideoSlash.tsx | 12 +- packages/react-native-sdk/src/icons/index.tsx | 3 +- packages/react-native-sdk/src/theme/colors.ts | 12 +- packages/react-native-sdk/src/theme/theme.ts | 27 +++- packages/react-native-sdk/src/theme/types.ts | 7 ++ .../react-native/dogfood/ios/Podfile.lock | 4 +- .../react-native/dogfood/src/assets/Audio.tsx | 19 +++ .../react-native/dogfood/src/assets/Chat.tsx | 9 +- .../dogfood/src/assets/LiveStreamChat.tsx | 2 +- .../dogfood/src/assets/MoreActions.tsx | 19 +++ .../dogfood/src/assets/Participants.tsx | 19 +++ .../dogfood/src/assets/RecordCall.tsx | 23 ++++ .../dogfood/src/components/ActiveCall.tsx | 93 ++++++++------ .../components/CallControlls/AudioButton.tsx | 49 ++++++++ .../CallControlls/BadgeCountIndicator.tsx | 68 ++++++++++ .../CallControlls/CallControlsComponent.tsx | 95 ++++++++++++++ .../components/CallControlls/ChatButton.tsx | 45 +++++++ .../CallControlls/MoreActionsButton.tsx | 56 +++++++++ .../CallControlls/ParticipantsButton.tsx | 68 ++++++++++ .../CallControlls/RecordCallButton.tsx | 54 ++++++++ .../src/components/CallControlsComponent.tsx | 84 ------------- .../LiveStreamChatControlButton.tsx | 4 +- .../dogfood/src/components/MeetingUI.tsx | 1 - .../dogfood/src/components/VideoWrapper.tsx | 8 +- sample-apps/react-native/dogfood/src/theme.ts | 17 +++ 52 files changed, 778 insertions(+), 596 deletions(-) delete mode 100644 packages/react-native-sdk/docusaurus/docs/reactnative/common-content/ui-components/call/call-content/participants-info-badge.mdx delete mode 100644 packages/react-native-sdk/src/components/Call/CallControls/ChatButton.tsx delete mode 100644 packages/react-native-sdk/src/components/Call/CallTopView/ParticipantsInfoBadge.tsx create mode 100644 packages/react-native-sdk/src/icons/IconWrapper.tsx delete mode 100644 packages/react-native-sdk/src/icons/Participants.tsx create mode 100644 sample-apps/react-native/dogfood/src/assets/Audio.tsx rename packages/react-native-sdk/src/icons/Chat.tsx => sample-apps/react-native/dogfood/src/assets/LiveStreamChat.tsx (91%) create mode 100644 sample-apps/react-native/dogfood/src/assets/MoreActions.tsx create mode 100644 sample-apps/react-native/dogfood/src/assets/Participants.tsx create mode 100644 sample-apps/react-native/dogfood/src/assets/RecordCall.tsx create mode 100644 sample-apps/react-native/dogfood/src/components/CallControlls/AudioButton.tsx create mode 100644 sample-apps/react-native/dogfood/src/components/CallControlls/BadgeCountIndicator.tsx create mode 100644 sample-apps/react-native/dogfood/src/components/CallControlls/CallControlsComponent.tsx create mode 100644 sample-apps/react-native/dogfood/src/components/CallControlls/ChatButton.tsx create mode 100644 sample-apps/react-native/dogfood/src/components/CallControlls/MoreActionsButton.tsx create mode 100644 sample-apps/react-native/dogfood/src/components/CallControlls/ParticipantsButton.tsx create mode 100644 sample-apps/react-native/dogfood/src/components/CallControlls/RecordCallButton.tsx delete mode 100644 sample-apps/react-native/dogfood/src/components/CallControlsComponent.tsx diff --git a/packages/react-native-sdk/__tests__/components/CallControls.test.tsx b/packages/react-native-sdk/__tests__/components/CallControls.test.tsx index 49188e04b4..2b611fc123 100644 --- a/packages/react-native-sdk/__tests__/components/CallControls.test.tsx +++ b/packages/react-native-sdk/__tests__/components/CallControls.test.tsx @@ -3,11 +3,10 @@ import { mockClientWithUser } from '../mocks/client'; import mockParticipant from '../mocks/participant'; import { ButtonTestIds, ComponentTestIds } from '../../src/constants/TestIds'; import { mockCall } from '../mocks/call'; -import { fireEvent, render, screen, waitFor } from '../utils/RNTLTools'; +import { fireEvent, render, screen } from '../utils/RNTLTools'; import { OwnCapability } from '@stream-io/video-client'; import { defaultEmojiReactions } from '../../src/constants'; -import { CallControls } from '../../src/components/Call/CallControls/CallControls'; -import { ChatButton } from '../../src/components/Call/CallControls/ChatButton'; +import { CallControls } from '../../src'; import { HangUpCallButton } from '../../src/components/Call/CallControls/HangupCallButton'; import { ReactionsButton } from '../../src/components/Call/CallControls/ReactionsButton'; @@ -18,48 +17,6 @@ enum P_IDS { LOCAL_1 = 'local-1', } -describe('ChatButton', () => { - it('should render an unread badge indicator when the value is defined in the chatButton prop', async () => { - const call = mockCall(mockClientWithUser(), [ - mockParticipant({ - isLocalParticipant: true, - sessionId: P_IDS.LOCAL_1, - userId: P_IDS.LOCAL_1, - }), - ]); - - render(, { - call, - }); - - const indicator = await screen.findByText('1'); - - expect(indicator).toBeVisible(); - }); - - it('should not render an unread badge indicator when the value is 0 in the chatButton prop', async () => { - const call = mockCall(mockClientWithUser(), [ - mockParticipant({ - isLocalParticipant: true, - sessionId: P_IDS.LOCAL_1, - userId: P_IDS.LOCAL_1, - }), - ]); - - render(, { - call, - }); - - await waitFor(() => - expect(() => - screen.getByTestId(ComponentTestIds.CHAT_UNREAD_BADGE_COUNT_INDICATOR) - ).toThrow( - /Unable to find an element with testID: chat-unread-badge-count-indicator/i - ) - ); - }); -}); - describe('ReactionsButton', () => { it('render reaction button in call controls component', async () => { const call = mockCall( diff --git a/packages/react-native-sdk/__tests__/components/ParticipantView.test.tsx b/packages/react-native-sdk/__tests__/components/ParticipantView.test.tsx index 15077486ba..c604478f83 100644 --- a/packages/react-native-sdk/__tests__/components/ParticipantView.test.tsx +++ b/packages/react-native-sdk/__tests__/components/ParticipantView.test.tsx @@ -43,7 +43,6 @@ describe('ParticipantView', () => { expect( await screen.findByTestId(ComponentTestIds.PARTICIPANT_AVATAR) ).toBeOnTheScreen(); - expect(screen.getByTestId(IconTestIds.MUTED_VIDEO)).toBeOnTheScreen(); expect(screen.getByText(testParticipant.name)).toBeOnTheScreen(); // reaction is visible and then disappears after 5500 ms expect(screen.getByText('🎉')).toBeOnTheScreen(); diff --git a/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-content.mdx b/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-content.mdx index bf561290fd..63086107a8 100644 --- a/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-content.mdx +++ b/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-content.mdx @@ -10,7 +10,6 @@ import CallContentSpotlight from '../../assets/04-ui-components/call/call-conten import CallTopView from '../../common-content/ui-components/call/call-content/call-top-view.mdx'; import CallControls from '../../common-content/ui-components/call/call-content/call-controls.mdx'; -import ParticipantsInfoBadge from '../../common-content/ui-components/call/call-content/participants-info-badge.mdx'; import Landscape from '../../common-content/ui-components/call/call-content/landscape.mdx'; import OnBackPressed from '../../common-content/ui-components/call/call-content/on-back-pressed.mdx'; import OnParticipantInfoPress from '../../common-content/ui-components/call/call-content/on-participant-info-press.mdx'; diff --git a/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-top-view.mdx b/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-top-view.mdx index 6f82a92401..27f7aad3ce 100644 --- a/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-top-view.mdx +++ b/packages/react-native-sdk/docusaurus/docs/reactnative/04-ui-components/call/call-top-view.mdx @@ -60,10 +60,6 @@ Style to override the container of the `CallTopView`. | ---------------------------------------------------------- | | [ViewStyle](https://reactnative.dev/docs/view-style-props) | -### `ParticipantsInfoBadge` - - - ## Customization You can create your own custom `CallTopView` using the [Call Top View UI Cookbook guide](../../../ui-cookbook/replacing-call-top-view/). diff --git a/packages/react-native-sdk/docusaurus/docs/reactnative/common-content/ui-components/call/call-content/participants-info-badge.mdx b/packages/react-native-sdk/docusaurus/docs/reactnative/common-content/ui-components/call/call-content/participants-info-badge.mdx deleted file mode 100644 index 92a7cb3c9d..0000000000 --- a/packages/react-native-sdk/docusaurus/docs/reactnative/common-content/ui-components/call/call-content/participants-info-badge.mdx +++ /dev/null @@ -1,5 +0,0 @@ -Component to customize the ParticipantInfoBadge of the CallTopView. - -| Type | Default Value | -| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ComponentType`\| `undefined` | [`ParticipantsInfoBadge`](https://github.com/GetStream/stream-video-js/blob/main/packages/react-native-sdk/src/components/Call/CallTopView/ParticipantsInfoBadge.tsx) | diff --git a/packages/react-native-sdk/src/components/Call/CallContent/CallContent.tsx b/packages/react-native-sdk/src/components/Call/CallContent/CallContent.tsx index 51637a173e..2539652703 100644 --- a/packages/react-native-sdk/src/components/Call/CallContent/CallContent.tsx +++ b/packages/react-native-sdk/src/components/Call/CallContent/CallContent.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { StyleSheet, View, ViewStyle } from 'react-native'; +import { StyleSheet, View } from 'react-native'; import InCallManager from 'react-native-incall-manager'; import { @@ -71,10 +71,7 @@ export type CallContentProps = Pick< HangUpCallButtonProps, 'onHangupCallHandler' > & - Pick< - CallTopViewProps, - 'onBackPressed' | 'onParticipantInfoPress' | 'ParticipantsInfoBadge' - > & + Pick & CallContentComponentProps & { /** * This switches the participant's layout between the grid and the spotlight mode. @@ -101,7 +98,6 @@ export type CallContentProps = Pick< export const CallContent = ({ onBackPressed, - onParticipantInfoPress, onHangupCallHandler, CallParticipantsList, CallTopView = DefaultCallTopView, @@ -113,7 +109,6 @@ export const CallContent = ({ ParticipantReaction, ParticipantVideoFallback, ParticipantView, - ParticipantsInfoBadge, VideoRenderer, layout = 'grid', landscape = false, @@ -201,10 +196,6 @@ export const CallContent = ({ supportedReactions, }; - const landscapeStyles: ViewStyle = { - flexDirection: landscape ? 'row' : 'column', - }; - return ( <> {!disablePictureInPicture && ( @@ -212,8 +203,8 @@ export const CallContent = ({ includeLocalParticipantVideo={iOSPiPIncludeLocalParticipantVideo} /> )} - - + + {!isInPiPMode && CallTopView && ( - + )} {showFloatingView && FloatingParticipantView && ( [ styles.container, { - backgroundColor: disabled ? colors.disabled : colorProp || colors.base1, + backgroundColor: disabled + ? colors.buttonPrimaryDisabled + : colorProp || colors.buttonSecondaryDefault, opacity: pressed ? 0.2 : 1, - height: size || buttonSizes.sm, - width: size || buttonSizes.sm, - borderRadius: (size || buttonSizes.sm) / 2, - borderColor: colors.background1, + height: size || roundButtonSizes.lg, + width: size || roundButtonSizes.lg, + borderRadius: defaults.borderRadius, }, styleProp?.container ?? null, container, ]; + const childrenSize = (size || roundButtonSizes.lg) / 2 - 5; return ( diff --git a/packages/react-native-sdk/src/components/Call/CallControls/ChatButton.tsx b/packages/react-native-sdk/src/components/Call/CallControls/ChatButton.tsx deleted file mode 100644 index 66a0bda86c..0000000000 --- a/packages/react-native-sdk/src/components/Call/CallControls/ChatButton.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import React from 'react'; -import { StyleSheet, Text, View } from 'react-native'; -import { CallControlsButton } from './CallControlsButton'; -import { Chat } from '../../../icons'; -import { ComponentTestIds } from '../../../constants/TestIds'; -import { Z_INDEX } from '../../../constants'; -import { useTheme } from '../../../contexts/ThemeContext'; - -/** - * The props for the Chat Button in the Call Controls. - */ -export type ChatButtonProps = { - /** - * Handler to be called when the chat button is pressed. - * @returns void - */ - onPressHandler?: () => void; - /** - * The count of the current unread message to be displayed above on the Chat button. - */ - unreadBadgeCount?: number; -}; - -/** - * Button to open the Chat window while in the call. - * - * This call also display the unread count indicator/badge is there messages that are unread. - */ -export const ChatButton = ({ - onPressHandler, - unreadBadgeCount, -}: ChatButtonProps) => { - const { - theme: { colors, chatButton }, - } = useTheme(); - return ( - - - - - ); -}; - -const UnreadBadgeCountIndicator = ({ - count, -}: { - count: ChatButtonProps['unreadBadgeCount']; -}) => { - const { - theme: { colors, typefaces }, - } = useTheme(); - - // Don't show badge if count is 0 or undefined - if (!count) { - return null; - } - - return ( - - - {count} - - - ); -}; - -const styles = StyleSheet.create({ - chatBadge: { - borderRadius: 30, - position: 'absolute', - left: 15, - bottom: 20, - zIndex: Z_INDEX.IN_FRONT, - height: 24, - width: 24, - justifyContent: 'center', - }, - chatBadgeText: { - textAlign: 'center', - }, -}); diff --git a/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPreviewButton.tsx b/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPreviewButton.tsx index 3a30741189..faeefc5478 100644 --- a/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPreviewButton.tsx +++ b/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPreviewButton.tsx @@ -1,7 +1,7 @@ import { useCallStateHooks } from '@stream-io/video-react-bindings'; import React from 'react'; import { useTheme } from '../../../contexts'; -import { Mic, MicOff } from '../../../icons'; +import { IconWrapper, Mic, MicOff } from '../../../icons'; import { CallControlsButton } from './CallControlsButton'; /** @@ -26,6 +26,7 @@ export const ToggleAudioPreviewButton = ({ colors, toggleAudioPreviewButton, variants: { buttonSizes }, + defaults, }, } = useTheme(); const { useMicrophoneState } = useCallStateHooks(); @@ -42,21 +43,24 @@ export const ToggleAudioPreviewButton = ({ return ( - {!optimisticIsMute ? ( - - ) : ( - - )} + + {!optimisticIsMute ? ( + + ) : ( + + )} + ); }; diff --git a/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPublishingButton.tsx b/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPublishingButton.tsx index c0aed84ee3..1e8e8b45fc 100644 --- a/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPublishingButton.tsx +++ b/packages/react-native-sdk/src/components/Call/CallControls/ToggleAudioPublishingButton.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { OwnCapability } from '@stream-io/video-client'; import { Restricted, useCallStateHooks } from '@stream-io/video-react-bindings'; import { CallControlsButton } from './CallControlsButton'; -import { Mic, MicOff } from '../../../icons'; +import { IconWrapper, Mic, MicOff } from '../../../icons'; import { useTheme } from '../../../contexts/ThemeContext'; /** @@ -26,7 +26,7 @@ export const ToggleAudioPublishingButton = ({ const { optimisticIsMute, microphone } = useMicrophoneState(); const { - theme: { colors, toggleAudioPublishingButton }, + theme: { colors, toggleAudioPublishingButton, defaults }, } = useTheme(); const onPress = async () => { if (onPressHandler) { @@ -41,14 +41,23 @@ export const ToggleAudioPublishingButton = ({ - {!optimisticIsMute ? ( - - ) : ( - - )} + + {!optimisticIsMute ? ( + + ) : ( + + )} + ); diff --git a/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPreviewButton.tsx b/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPreviewButton.tsx index f3da81b65e..6b772dd8d4 100644 --- a/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPreviewButton.tsx +++ b/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPreviewButton.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { useCallStateHooks } from '@stream-io/video-react-bindings'; import { useTheme } from '../../../contexts'; import { CallControlsButton } from './CallControlsButton'; -import { Video, VideoSlash } from '../../../icons'; +import { IconWrapper, Video, VideoSlash } from '../../../icons'; /** * Props for the Toggle Video preview button @@ -26,6 +26,7 @@ export const ToggleVideoPreviewButton = ({ colors, toggleVideoPreviewButton, variants: { buttonSizes }, + defaults, }, } = useTheme(); const { useCameraState, useCallSettings } = useCallStateHooks(); @@ -47,21 +48,27 @@ export const ToggleVideoPreviewButton = ({ return ( - {!optimisticIsMute ? ( - ); }; diff --git a/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPublishingButton.tsx b/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPublishingButton.tsx index a2441a0ce3..ecab938bbb 100644 --- a/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPublishingButton.tsx +++ b/packages/react-native-sdk/src/components/Call/CallControls/ToggleVideoPublishingButton.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { OwnCapability } from '@stream-io/video-client'; import { Restricted, useCallStateHooks } from '@stream-io/video-react-bindings'; import { CallControlsButton } from './CallControlsButton'; -import { Video, VideoSlash } from '../../../icons'; +import { IconWrapper, Video, VideoSlash } from '../../../icons'; import { useTheme } from '../../../contexts/ThemeContext'; /** @@ -27,7 +27,7 @@ export const ToggleVideoPublishingButton = ({ const callSettings = useCallSettings(); const isVideoEnabledInCall = callSettings?.video.enabled; const { - theme: { colors }, + theme: { colors, defaults }, } = useTheme(); const onPress = async () => { if (onPressHandler) { @@ -45,13 +45,22 @@ export const ToggleVideoPublishingButton = ({ - {!optimisticIsMute ? ( - ); diff --git a/packages/react-native-sdk/src/components/Call/CallControls/index.tsx b/packages/react-native-sdk/src/components/Call/CallControls/index.tsx index 1e1d5b50de..1fa2a0543c 100644 --- a/packages/react-native-sdk/src/components/Call/CallControls/index.tsx +++ b/packages/react-native-sdk/src/components/Call/CallControls/index.tsx @@ -6,7 +6,6 @@ export * from './ToggleVideoPreviewButton'; export * from './ToggleAudioPublishingButton'; export * from './ToggleVideoPublishingButton'; export * from './ToggleCameraFaceButton'; -export * from './ChatButton'; export * from './ReactionsButton'; export * from './CallControls'; export * from './CallControlsButton'; diff --git a/packages/react-native-sdk/src/components/Call/CallTopView/CallTopView.tsx b/packages/react-native-sdk/src/components/Call/CallTopView/CallTopView.tsx index 19b4993d86..e16fed2516 100644 --- a/packages/react-native-sdk/src/components/Call/CallTopView/CallTopView.tsx +++ b/packages/react-native-sdk/src/components/Call/CallTopView/CallTopView.tsx @@ -7,10 +7,6 @@ import { StyleProp, ViewStyle, } from 'react-native'; -import { - ParticipantsInfoBadge as DefaultParticipantsInfoBadge, - ParticipantsInfoBadgeProps, -} from './ParticipantsInfoBadge'; import { Back } from '../../../icons/Back'; import { TopViewBackground } from '../../../icons'; import { useCallStateHooks, useI18n } from '@stream-io/video-react-bindings'; @@ -23,11 +19,6 @@ export type CallTopViewProps = { * @returns void */ onBackPressed?: () => void; - /** - * Handler to be called when the Participant icon is pressed in the CallTopView. - * @returns - */ - onParticipantInfoPress?: () => void; /** * Title to be rendered at the center of the Header. */ @@ -36,18 +27,12 @@ export type CallTopViewProps = { * Style to override the container of the CallTopView. */ style?: StyleProp; - /** - * Component to customize the ParticipantInfoBadge of the CallTopView. - */ - ParticipantsInfoBadge?: React.ComponentType | null; }; export const CallTopView = ({ onBackPressed, - onParticipantInfoPress, title, style: styleProp, - ParticipantsInfoBadge = DefaultParticipantsInfoBadge, }: CallTopViewProps) => { const [callTopViewHeight, setCallTopViewHeight] = useState(0); const [callTopViewWidth, setCallTopViewWidth] = useState(0); @@ -121,13 +106,6 @@ export const CallTopView = ({ ) )} - - {ParticipantsInfoBadge && ( - - )} - ); diff --git a/packages/react-native-sdk/src/components/Call/CallTopView/ParticipantsInfoBadge.tsx b/packages/react-native-sdk/src/components/Call/CallTopView/ParticipantsInfoBadge.tsx deleted file mode 100644 index 15d24f6ea2..0000000000 --- a/packages/react-native-sdk/src/components/Call/CallTopView/ParticipantsInfoBadge.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import React from 'react'; -import { Pressable, StyleSheet, Text, View } from 'react-native'; -import { Participants } from '../../../icons'; -import { useCallStateHooks } from '@stream-io/video-react-bindings'; -import { Z_INDEX } from '../../../constants'; -import { CallTopViewProps } from '..'; -import { ButtonTestIds } from '../../../constants/TestIds'; -import { useTheme } from '../../../contexts/ThemeContext'; -import { CallingState } from '@stream-io/video-client'; - -/** - * Props for the ParticipantsInfoBadge component. - */ -export type ParticipantsInfoBadgeProps = Pick< - CallTopViewProps, - 'onParticipantInfoPress' ->; - -/** - * Badge that shows the number of participants in the call. - * When pressed, it opens the ParticipantsInfoList. - */ -export const ParticipantsInfoBadge = ({ - onParticipantInfoPress, -}: ParticipantsInfoBadgeProps) => { - const { - theme: { - colors, - participantInfoBadge, - typefaces, - variants: { iconSizes }, - }, - } = useTheme(); - const { useParticipantCount, useCallMembers, useCallCallingState } = - useCallStateHooks(); - const participantCount = useParticipantCount(); - const members = useCallMembers(); - const callingState = useCallCallingState(); - - let count = 0; - /** - * We show member's length if Incoming and Outgoing Call Views are rendered. - * Else we show the count of the participants that are in the call. - * Since the members count also includes caller/callee, we reduce the count by 1. - **/ - if (callingState === CallingState.RINGING) { - count = members.length - 1; - } else { - count = participantCount; - } - - if (count === 0) { - return null; - } - - return ( - [ - styles.container, - { opacity: pressed ? 0.2 : 1 }, - participantInfoBadge.container, - ]} - disabled={!onParticipantInfoPress} - testID={ButtonTestIds.PARTICIPANTS_INFO} - > - - - - - - {count} - - - - ); -}; - -const styles = StyleSheet.create({ - container: { - flexDirection: 'row', - }, - participantCountContainer: { - justifyContent: 'center', - paddingHorizontal: 8, - borderRadius: 30, - zIndex: Z_INDEX.IN_FRONT, - bottom: 12, - right: 12, - }, - participantCountText: { - includeFontPadding: false, - textAlign: 'center', - }, -}); diff --git a/packages/react-native-sdk/src/components/Call/CallTopView/index.ts b/packages/react-native-sdk/src/components/Call/CallTopView/index.ts index 7734edc003..bb5d521f5b 100644 --- a/packages/react-native-sdk/src/components/Call/CallTopView/index.ts +++ b/packages/react-native-sdk/src/components/Call/CallTopView/index.ts @@ -1,2 +1 @@ export * from './CallTopView'; -export * from './ParticipantsInfoBadge'; diff --git a/packages/react-native-sdk/src/components/Call/Lobby/Lobby.tsx b/packages/react-native-sdk/src/components/Call/Lobby/Lobby.tsx index 4ebbbbba8e..23db831fba 100644 --- a/packages/react-native-sdk/src/components/Call/Lobby/Lobby.tsx +++ b/packages/react-native-sdk/src/components/Call/Lobby/Lobby.tsx @@ -1,6 +1,5 @@ import React, { ComponentType } from 'react'; import { StyleSheet, Text, View, ViewStyle } from 'react-native'; -import { MicOff } from '../../../icons'; import { useCallStateHooks, useConnectedUser, @@ -158,17 +157,10 @@ export const Lobby = ({ const ParticipantStatus = () => { const { - theme: { - colors, - typefaces, - lobby, - variants: { iconSizes }, - }, + theme: { colors, typefaces, lobby }, } = useTheme(); const connectedUser = useConnectedUser(); - const { useMicrophoneState } = useCallStateHooks(); const participantLabel = connectedUser?.name ?? connectedUser?.id; - const { status: micStatus } = useMicrophoneState(); return ( { > {participantLabel} - {(!micStatus || micStatus === 'disabled') && ( - - - - )} ); }; diff --git a/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamAudioControlButton.tsx b/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamAudioControlButton.tsx index 2fb2defaed..005d542298 100644 --- a/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamAudioControlButton.tsx +++ b/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamAudioControlButton.tsx @@ -15,6 +15,7 @@ export const LivestreamAudioControlButton = () => { colors, variants: { iconSizes, buttonSizes }, livestreamAudioControlButton, + defaults, }, } = useTheme(); @@ -46,9 +47,9 @@ export const LivestreamAudioControlButton = () => { ]} > {!optimisticIsMute ? ( - + ) : ( - + )} diff --git a/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamVideoControlButton.tsx b/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamVideoControlButton.tsx index 1f47b71be5..e73f6c7a84 100644 --- a/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamVideoControlButton.tsx +++ b/packages/react-native-sdk/src/components/Livestream/LivestreamControls/LivestreamVideoControlButton.tsx @@ -17,6 +17,7 @@ export const LivestreamVideoControlButton = () => { colors, variants: { iconSizes, buttonSizes }, livestreamVideoControlButton, + defaults, }, } = useTheme(); @@ -52,9 +53,9 @@ export const LivestreamVideoControlButton = () => { ]} > {!optimisticIsMute ? ( - diff --git a/packages/react-native-sdk/src/components/Participant/FloatingParticipantView/index.tsx b/packages/react-native-sdk/src/components/Participant/FloatingParticipantView/index.tsx index d2e34f9a2c..b2ae9cf498 100644 --- a/packages/react-native-sdk/src/components/Participant/FloatingParticipantView/index.tsx +++ b/packages/react-native-sdk/src/components/Participant/FloatingParticipantView/index.tsx @@ -66,6 +66,7 @@ const CustomLocalParticipantViewVideoFallback = () => { colors, floatingParticipantsView, variants: { iconSizes }, + defaults, }, } = useTheme(); @@ -78,7 +79,7 @@ const CustomLocalParticipantViewVideoFallback = () => { ]} > - + ); diff --git a/packages/react-native-sdk/src/components/Participant/ParticipantView/ParticipantLabel.tsx b/packages/react-native-sdk/src/components/Participant/ParticipantView/ParticipantLabel.tsx index c1127a022c..de58feced2 100644 --- a/packages/react-native-sdk/src/components/Participant/ParticipantView/ParticipantLabel.tsx +++ b/packages/react-native-sdk/src/components/Participant/ParticipantView/ParticipantLabel.tsx @@ -1,16 +1,10 @@ import React from 'react'; import { Pressable, StyleSheet, Text, View } from 'react-native'; -import { - MicOff, - PinVertical, - ScreenShareIndicator, - VideoSlash, -} from '../../../icons'; +import { PinVertical, ScreenShareIndicator } from '../../../icons'; import { useCall, useI18n } from '@stream-io/video-react-bindings'; import { ComponentTestIds } from '../../../constants/TestIds'; import { ParticipantViewProps } from './ParticipantView'; import { Z_INDEX } from '../../../constants'; -import { hasAudio, hasVideo } from '@stream-io/video-client'; import { useTheme } from '../../../contexts/ThemeContext'; /** @@ -36,8 +30,6 @@ export const ParticipantLabel = ({ participantLabel: { container, userNameLabel, - audioMutedIconContainer, - videoMutedIconContainer, pinIconContainer, screenShareIconContainer, }, @@ -50,8 +42,6 @@ export const ParticipantLabel = ({ const participantLabel = isLocalParticipant ? t('You') : participantName; const isPinningEnabled = pin?.isLocalPin; - const isAudioMuted = !hasAudio(participant); - const isVideoMuted = !hasVideo(participant); const unPinParticipantHandler = () => { call?.unpin(sessionId); @@ -118,34 +108,6 @@ export const ParticipantLabel = ({ > {participantLabel} - {isAudioMuted && ( - - - - )} - {isVideoMuted && ( - - - - )} {isPinningEnabled && ( { + return {children}; +}; + +const styles = StyleSheet.create({ + container: { + justifyContent: 'center', + alignItems: 'center', + flex: 1, + }, +}); diff --git a/packages/react-native-sdk/src/icons/Mic.tsx b/packages/react-native-sdk/src/icons/Mic.tsx index 229c63f7dc..e46bd03c20 100644 --- a/packages/react-native-sdk/src/icons/Mic.tsx +++ b/packages/react-native-sdk/src/icons/Mic.tsx @@ -4,16 +4,13 @@ import { ColorValue } from 'react-native/types'; type Props = { color: ColorValue; + size: number; }; -export const Mic = ({ color }: Props) => ( - +export const Mic = ({ color, size }: Props) => ( + - diff --git a/packages/react-native-sdk/src/icons/MicOff.tsx b/packages/react-native-sdk/src/icons/MicOff.tsx index 405bc1c4ee..da7510a9ba 100644 --- a/packages/react-native-sdk/src/icons/MicOff.tsx +++ b/packages/react-native-sdk/src/icons/MicOff.tsx @@ -4,12 +4,13 @@ import { ColorValue } from 'react-native/types'; type Props = { color: ColorValue; + size: number; }; -export const MicOff = ({ color }: Props) => ( - +export const MicOff = ({ color, size }: Props) => ( + diff --git a/packages/react-native-sdk/src/icons/Participants.tsx b/packages/react-native-sdk/src/icons/Participants.tsx deleted file mode 100644 index 82be4a3fe5..0000000000 --- a/packages/react-native-sdk/src/icons/Participants.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { Svg, Path } from 'react-native-svg'; -import { ColorValue } from 'react-native/types'; - -type Props = { - color: ColorValue; -}; - -export const Participants = ({ color }: Props) => ( - - - -); diff --git a/packages/react-native-sdk/src/icons/Video.tsx b/packages/react-native-sdk/src/icons/Video.tsx index 331cae6d32..62471ca577 100644 --- a/packages/react-native-sdk/src/icons/Video.tsx +++ b/packages/react-native-sdk/src/icons/Video.tsx @@ -4,12 +4,13 @@ import { ColorValue } from 'react-native/types'; type Props = { color: ColorValue; + size: number; }; -export const Video = ({ color }: Props) => ( - +export const Video = ({ color, size }: Props) => ( + diff --git a/packages/react-native-sdk/src/icons/VideoSlash.tsx b/packages/react-native-sdk/src/icons/VideoSlash.tsx index 6f583561e4..84f02035fd 100644 --- a/packages/react-native-sdk/src/icons/VideoSlash.tsx +++ b/packages/react-native-sdk/src/icons/VideoSlash.tsx @@ -5,12 +5,18 @@ import { IconTestIds } from '../constants/TestIds'; type Props = { color: ColorValue; + size: number; }; -export const VideoSlash = ({ color }: Props) => ( - +export const VideoSlash = ({ color, size }: Props) => ( + diff --git a/packages/react-native-sdk/src/icons/index.tsx b/packages/react-native-sdk/src/icons/index.tsx index 814d18d34d..f3b3ee722f 100644 --- a/packages/react-native-sdk/src/icons/index.tsx +++ b/packages/react-native-sdk/src/icons/index.tsx @@ -6,8 +6,6 @@ export * from './PhoneDown'; export * from './Settings'; export * from './Video'; export * from './VideoSlash'; -export * from './Chat'; -export * from './Participants'; export * from './ThreeDots'; export * from './PinVertical'; export * from './Spotlight'; @@ -21,3 +19,4 @@ export * from './StartStreamIcon'; export * from './StopScreenShare'; export * from './EndStreamIcon'; export * from './LeaveStreamIcon'; +export * from './IconWrapper'; diff --git a/packages/react-native-sdk/src/theme/colors.ts b/packages/react-native-sdk/src/theme/colors.ts index 1d09982558..39c3beb0d3 100644 --- a/packages/react-native-sdk/src/theme/colors.ts +++ b/packages/react-native-sdk/src/theme/colors.ts @@ -28,7 +28,14 @@ const colors: ColorScheme = { background5: palette.grey900, background6: palette.grey950 + opacityToHex(0.85), + // Colors candidates for the default theme buttonPrimaryDefault: '#005fff', + buttonSecondaryDefault: '#19232d', + buttonSecondaryWarningDefault: '#dc433b', + iconPrimaryDefault: '#eff0f1', + iconAlertSuccess: '#00e2a1', + sheetPrimary: '#000000', + buttonPrimaryDisabled: '#1b2c43', buttonPrimaryHover: '#4c8fff', buttonPrimaryPressed: '#123d82', @@ -37,14 +44,12 @@ const colors: ColorScheme = { buttonQuaternaryDisabled: '#31292f', buttonQuaternaryHover: '#e77b76', buttonQuaternaryPressed: '#7d3535', - buttonSecondaryDefault: '#19232d', buttonSecondaryDisabled: '#1e262e29', buttonSecondaryHover: '#323b44', buttonSecondaryPressed: '#101213', buttonSecondaryActiveDefault: '#005fff', buttonSecondaryActiveHover: '#4c8fff', buttonSecondaryActivePressed: '#123d82', - buttonSecondaryWarningDefault: '#dc433b', buttonSecondaryWarningHover: '#e77b76', buttonSecondaryWarningPressed: '#7d3535', buttonTertiaryActive: '#19232d', @@ -60,16 +65,13 @@ const colors: ColorScheme = { containerTertiary: '#2d3042', containerWarning: '#31292f', iconAlertCaution: '#ffd646', - iconAlertSuccess: '#00e2a1', iconAlertWarning: '#dc433b', iconPrimaryAccent: '#005fff', - iconPrimaryDefault: '#eff0f1', iconPrimaryDisabled: '#7e8389', iconPrimaryHover: '#e3e4e5', iconPrimaryOnAccent: '#eff0f1', iconPrimaryPressed: '#656b72', sheetOverlay: '#0c0d0ea6', - sheetPrimary: '#000000', sheetSecondary: '#101213', sheetTertiary: '#19232d', typeAccent: '#00e2a1', diff --git a/packages/react-native-sdk/src/theme/theme.ts b/packages/react-native-sdk/src/theme/theme.ts index 488257cb48..5b7eead4f3 100644 --- a/packages/react-native-sdk/src/theme/theme.ts +++ b/packages/react-native-sdk/src/theme/theme.ts @@ -1,15 +1,23 @@ import { ImageStyle, TextStyle, ViewStyle } from 'react-native/types'; import { colors } from './colors'; -import { ColorScheme, DimensionType, FontStyle, FontTypes } from './types'; +import { + ColorScheme, + DimensionType, + FontStyle, + FontTypes, + Insets, +} from './types'; import { ColorValue } from 'react-native'; export type Theme = { variants: { buttonSizes: DimensionType; + roundButtonSizes: DimensionType; iconSizes: DimensionType; avatarSizes: DimensionType; fontSizes: DimensionType; spacingSizes: DimensionType; + insets: Insets; }; typefaces: Record; defaults: { @@ -18,6 +26,7 @@ export type Theme = { margin: number; padding: number; fontSize: number; + iconSize: number; fontWeight: TextStyle['fontWeight']; borderRadius: ViewStyle['borderRadius']; borderColor: ColorValue; @@ -282,6 +291,13 @@ export type Theme = { export const defaultTheme: Theme = { variants: { + roundButtonSizes: { + xs: 16, + sm: 24, + md: 36, + lg: 44, + xl: 56, + }, buttonSizes: { xs: 40, sm: 50, @@ -317,6 +333,12 @@ export const defaultTheme: Theme = { lg: 20, xl: 24, }, + insets: { + top: 0, + right: 0, + bottom: 0, + left: 0, + }, }, typefaces: { heading4: { @@ -355,7 +377,8 @@ export const defaultTheme: Theme = { padding: 10, fontSize: 16, fontWeight: '500', - borderRadius: 10, + borderRadius: 32, + iconSize: 28, borderColor: colors.primary, borderWidth: 1, }, diff --git a/packages/react-native-sdk/src/theme/types.ts b/packages/react-native-sdk/src/theme/types.ts index d2ba8bf903..4c9c0db527 100644 --- a/packages/react-native-sdk/src/theme/types.ts +++ b/packages/react-native-sdk/src/theme/types.ts @@ -99,6 +99,13 @@ export type DimensionType = { xl: number; }; +export type Insets = { + top: number; + right: number; + bottom: number; + left: number; +}; + export type FontsScheme = Record; export type Theme = ColorType; diff --git a/sample-apps/react-native/dogfood/ios/Podfile.lock b/sample-apps/react-native/dogfood/ios/Podfile.lock index d95247de93..fa7ea9fdbd 100644 --- a/sample-apps/react-native/dogfood/ios/Podfile.lock +++ b/sample-apps/react-native/dogfood/ios/Podfile.lock @@ -1148,7 +1148,7 @@ PODS: - stream-react-native-webrtc (118.1.0): - JitsiWebRTC (~> 118.0.0) - React-Core - - stream-video-react-native (1.1.0): + - stream-video-react-native (1.1.1): - glog - RCT-Folly (= 2022.05.16.00) - React-Core @@ -1479,7 +1479,7 @@ SPEC CHECKSUMS: SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 stream-io-video-filters-react-native: 8c345e6adf5164646696d45f9962c4199b2fe3b9 stream-react-native-webrtc: 4ccf61161f77c57b9aa45f78cb7f69b7d91f3e9f - stream-video-react-native: ffc867d9eb2a97f0eaa8b4376322ed6e82a5383d + stream-video-react-native: ff287d6bc897fffdf7b07ed3828e53bbf74bf576 TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654 Yoga: 1b901a6d6eeba4e8a2e8f308f708691cdb5db312 diff --git a/sample-apps/react-native/dogfood/src/assets/Audio.tsx b/sample-apps/react-native/dogfood/src/assets/Audio.tsx new file mode 100644 index 0000000000..ae5c26767f --- /dev/null +++ b/sample-apps/react-native/dogfood/src/assets/Audio.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { ColorValue } from 'react-native/types'; + +type Props = { + color: ColorValue; + size: number; +}; + +const Audio = ({ color, size }: Props) => ( + + + +); + +export default Audio; diff --git a/sample-apps/react-native/dogfood/src/assets/Chat.tsx b/sample-apps/react-native/dogfood/src/assets/Chat.tsx index adc7b30f55..a6da4abe45 100644 --- a/sample-apps/react-native/dogfood/src/assets/Chat.tsx +++ b/sample-apps/react-native/dogfood/src/assets/Chat.tsx @@ -4,13 +4,16 @@ import { ColorValue } from 'react-native/types'; type Props = { color: ColorValue; + size: number; }; -export const Chat = ({ color }: Props) => ( - +const Chat = ({ color, size }: Props) => ( + ); + +export default Chat; diff --git a/packages/react-native-sdk/src/icons/Chat.tsx b/sample-apps/react-native/dogfood/src/assets/LiveStreamChat.tsx similarity index 91% rename from packages/react-native-sdk/src/icons/Chat.tsx rename to sample-apps/react-native/dogfood/src/assets/LiveStreamChat.tsx index adc7b30f55..2c7073acea 100644 --- a/packages/react-native-sdk/src/icons/Chat.tsx +++ b/sample-apps/react-native/dogfood/src/assets/LiveStreamChat.tsx @@ -6,7 +6,7 @@ type Props = { color: ColorValue; }; -export const Chat = ({ color }: Props) => ( +export const LiveStreamChat = ({ color }: Props) => ( ( + + + +); + +export default MoreActions; diff --git a/sample-apps/react-native/dogfood/src/assets/Participants.tsx b/sample-apps/react-native/dogfood/src/assets/Participants.tsx new file mode 100644 index 0000000000..02b95ca1c0 --- /dev/null +++ b/sample-apps/react-native/dogfood/src/assets/Participants.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { Svg, Path } from 'react-native-svg'; +import { ColorValue } from 'react-native/types'; + +type Props = { + color: ColorValue; + size: number; +}; + +const Participants = ({ color, size }: Props) => ( + + + +); + +export default Participants; diff --git a/sample-apps/react-native/dogfood/src/assets/RecordCall.tsx b/sample-apps/react-native/dogfood/src/assets/RecordCall.tsx new file mode 100644 index 0000000000..c07c995b43 --- /dev/null +++ b/sample-apps/react-native/dogfood/src/assets/RecordCall.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { ColorValue } from 'react-native'; +import { Svg, Path } from 'react-native-svg'; + +type Props = { + color: ColorValue; + size: number; +}; + +const RecordCall = ({ color, size }: Props) => ( + + + + +); + +export default RecordCall; diff --git a/sample-apps/react-native/dogfood/src/components/ActiveCall.tsx b/sample-apps/react-native/dogfood/src/components/ActiveCall.tsx index 07ec207fbe..1f61e00fac 100644 --- a/sample-apps/react-native/dogfood/src/components/ActiveCall.tsx +++ b/sample-apps/react-native/dogfood/src/components/ActiveCall.tsx @@ -1,17 +1,18 @@ -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useCallback, useEffect, useState, useMemo } from 'react'; import { useCall, CallContent, - CallControlProps, + useTheme, } from '@stream-io/video-react-native-sdk'; -import { ActivityIndicator, StyleSheet } from 'react-native'; +import { ActivityIndicator, StyleSheet, View } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; import { ParticipantsInfoList } from './ParticipantsInfoList'; import { CallControlsComponent, CallControlsComponentProps, -} from './CallControlsComponent'; +} from './CallControlls/CallControlsComponent'; import { useOrientation } from '../hooks/useOrientation'; +import { Z_INDEX } from '../constants'; type ActiveCallProps = CallControlsComponentProps & { onBackPressed?: () => void; @@ -22,17 +23,17 @@ export const ActiveCall = ({ onChatOpenHandler, onBackPressed, onCallEnded, - onHangupCallHandler, unreadCountIndicator, }: ActiveCallProps) => { const [isCallParticipantsVisible, setIsCallParticipantsVisible] = useState(false); const call = useCall(); const currentOrientation = useOrientation(); + const styles = useStyles(); - const onOpenCallParticipantsInfo = () => { + const onOpenCallParticipantsInfo = useCallback(() => { setIsCallParticipantsVisible(true); - }; + }, []); useEffect(() => { return call?.on('call.ended', () => { @@ -40,42 +41,60 @@ export const ActiveCall = ({ }); }, [call, onCallEnded]); - const CustomControlsComponent = useCallback( - ({ landscape }: CallControlProps) => { - return ( - - ); - }, - [onChatOpenHandler, onHangupCallHandler, unreadCountIndicator], - ); + const CustomControlsComponent = useCallback(() => { + return ( + + ); + }, [onChatOpenHandler, onOpenCallParticipantsInfo, unreadCountIndicator]); if (!call) { return ; } return ( - - - - + + + + + + + ); }; -const styles = StyleSheet.create({ - container: { - flex: 1, - }, -}); +const useStyles = () => { + const { theme } = useTheme(); + + return useMemo( + () => + StyleSheet.create({ + container: { flex: 1 }, + callContent: { flex: 1 }, + safeArea: { flex: 1, paddingBottom: theme.variants.insets.bottom }, + unsafeArea: { + position: 'absolute', + left: 0, + right: 0, + bottom: 0, + height: theme.variants.insets.bottom, + backgroundColor: theme.colors.sheetPrimary, + }, + view: { + ...StyleSheet.absoluteFillObject, + zIndex: Z_INDEX.IN_FRONT, + }, + }), + [theme], + ); +}; diff --git a/sample-apps/react-native/dogfood/src/components/CallControlls/AudioButton.tsx b/sample-apps/react-native/dogfood/src/components/CallControlls/AudioButton.tsx new file mode 100644 index 0000000000..d53e4fbbfc --- /dev/null +++ b/sample-apps/react-native/dogfood/src/components/CallControlls/AudioButton.tsx @@ -0,0 +1,49 @@ +import React, { useState } from 'react'; +import { + CallControlsButton, + useTheme, +} from '@stream-io/video-react-native-sdk'; +import { IconWrapper } from '@stream-io/video-react-native-sdk/src/icons'; +import Audio from '../../assets/Audio'; + +/** + * The props for the Audio Button in the Call Controls. + */ +export type AudioButtonProps = { + /** + * Handler to be called when the audio button is pressed. + */ + onPressHandler?: () => void; +}; + +/** + * A button that can be used to switch audio output options + * like speaker, headphones, etc. + */ +export const AudioButton = ({ onPressHandler }: AudioButtonProps) => { + const { + theme: { colors, audioButton, variants }, + } = useTheme(); + + const [isPressed, setIsPressed] = useState(false); + const buttonColor = isPressed + ? colors.buttonPrimaryDefault + : colors.buttonSecondaryDefault; + + return ( + { + if (onPressHandler) { + onPressHandler(); + } + setIsPressed(!isPressed); + }} + style={audioButton} + color={buttonColor} + > + + + + + ); +}; diff --git a/sample-apps/react-native/dogfood/src/components/CallControlls/BadgeCountIndicator.tsx b/sample-apps/react-native/dogfood/src/components/CallControlls/BadgeCountIndicator.tsx new file mode 100644 index 0000000000..7b4323a2fc --- /dev/null +++ b/sample-apps/react-native/dogfood/src/components/CallControlls/BadgeCountIndicator.tsx @@ -0,0 +1,68 @@ +import React, { useMemo } from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { useTheme } from '@stream-io/video-react-native-sdk'; +import { ComponentTestIds } from '@stream-io/video-react-native-sdk/src/constants/TestIds'; +import { Z_INDEX } from '../../constants'; + +/** + * A badge that displays a number. + * + * @prop {number} count - The number to display in the badge. + * + * @returns {ReactElement} A View with a Text that displays the count in the badge. + */ +export const BadgeCountIndicator = ({ + count, +}: { + count: number | undefined; +}) => { + const { + theme: { colors, typefaces }, + } = useTheme(); + const styles = useStyles(); + + // Don't show badge if count is 0 or undefined + if (!count) { + return null; + } + + return ( + + + {count} + + + ); +}; + +const useStyles = () => { + const { theme } = useTheme(); + return useMemo( + () => + StyleSheet.create({ + badge: { + position: 'absolute', + justifyContent: 'center', + borderRadius: theme.defaults.borderRadius, + left: 13, + bottom: 17, + zIndex: Z_INDEX.IN_FRONT, + height: theme.variants.roundButtonSizes.xs, + width: theme.variants.roundButtonSizes.xs, + }, + badgeText: { + textAlign: 'center', + }, + }), + [theme], + ); +}; diff --git a/sample-apps/react-native/dogfood/src/components/CallControlls/CallControlsComponent.tsx b/sample-apps/react-native/dogfood/src/components/CallControlls/CallControlsComponent.tsx new file mode 100644 index 0000000000..add4173789 --- /dev/null +++ b/sample-apps/react-native/dogfood/src/components/CallControlls/CallControlsComponent.tsx @@ -0,0 +1,95 @@ +import { + CallContentProps, + ToggleAudioPublishingButton, + ToggleVideoPublishingButton, + useCallStateHooks, +} from '@stream-io/video-react-native-sdk'; +import React from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { appTheme } from '../../theme'; +import { Z_INDEX } from '../../constants'; +import { MoreActionsButton } from './MoreActionsButton'; +import { ParticipantsButton } from './ParticipantsButton'; +import { ChatButton } from './ChatButton'; +import { RecordCallButton } from './RecordCallButton'; +import { AudioButton } from './AudioButton'; + +export type CallControlsComponentProps = Pick< + CallContentProps, + 'supportedReactions' +> & { + onChatOpenHandler?: () => void; + onParticipantInfoPress?: () => void; + unreadCountIndicator?: number; +}; + +export const CallControlsComponent = ({ + onChatOpenHandler, + unreadCountIndicator, + onParticipantInfoPress, +}: CallControlsComponentProps) => { + const { useMicrophoneState } = useCallStateHooks(); + const { isSpeakingWhileMuted } = useMicrophoneState(); + + return ( + + {isSpeakingWhileMuted && ( + + You are muted. Unmute to speak. + + )} + + + + + + + + + + + + + + + ); +}; + +const styles = StyleSheet.create({ + speakingLabelContainer: { + backgroundColor: appTheme.colors.static_overlay, + paddingVertical: 10, + width: '100%', + }, + label: { + textAlign: 'center', + color: appTheme.colors.static_white, + }, + callControlsWrapper: { + display: 'flex', + flexDirection: 'row', + justifyContent: 'flex-start', + zIndex: Z_INDEX.IN_FRONT, + }, + container: { + paddingVertical: 16, + paddingHorizontal: 16, + backgroundColor: 'black', + height: 76, + }, + left: { + flex: 2.5, + flexDirection: 'row', + alignItems: 'flex-start', + gap: 6, + }, + right: { + flex: 1, + flexDirection: 'row', + justifyContent: 'flex-end', + gap: 6, + }, +}); diff --git a/sample-apps/react-native/dogfood/src/components/CallControlls/ChatButton.tsx b/sample-apps/react-native/dogfood/src/components/CallControlls/ChatButton.tsx new file mode 100644 index 0000000000..dce03ccb20 --- /dev/null +++ b/sample-apps/react-native/dogfood/src/components/CallControlls/ChatButton.tsx @@ -0,0 +1,45 @@ +import React from 'react'; +import { + CallControlsButton, + useTheme, +} from '@stream-io/video-react-native-sdk'; +import { IconWrapper } from '@stream-io/video-react-native-sdk/src/icons'; +import { BadgeCountIndicator } from './BadgeCountIndicator'; +import Chat from '../../assets/Chat'; + +/** + * The props for the Chat Button in the Call Controls. + */ +export type ChatButtonProps = { + /** + * Handler to be called when the chat button is pressed. + * @returns void + */ + onPressHandler?: () => void; + /** + * The count of the current unread message to be displayed above on the Chat button. + */ + unreadBadgeCount?: number; +}; + +/** + * Button to open the Chat window while in the call. + * + * This call also display the unread count indicator/badge is there messages that are unread. + */ +export const ChatButton = ({ + onPressHandler, + unreadBadgeCount, +}: ChatButtonProps) => { + const { + theme: { colors, chatButton, defaults }, + } = useTheme(); + return ( + + + + + + + ); +}; diff --git a/sample-apps/react-native/dogfood/src/components/CallControlls/MoreActionsButton.tsx b/sample-apps/react-native/dogfood/src/components/CallControlls/MoreActionsButton.tsx new file mode 100644 index 0000000000..a884cadd37 --- /dev/null +++ b/sample-apps/react-native/dogfood/src/components/CallControlls/MoreActionsButton.tsx @@ -0,0 +1,56 @@ +import React, { useState } from 'react'; +import { + CallControlsButton, + useTheme, +} from '@stream-io/video-react-native-sdk'; +import { IconWrapper } from '@stream-io/video-react-native-sdk/src/icons'; +import MoreActions from '../../assets/MoreActions'; + +/** + * The props for the More Actions Button in the Call Controls. + */ +export type MoreActionsButtonProps = { + /** + * Handler to be called when the more actions button is pressed. + */ + onPressHandler?: () => void; +}; + +/** + * A button that can be used to toggle the visibility + * of a menu or bottom sheet with more actions. + * + */ +export const MoreActionsButton = ({ + onPressHandler, +}: MoreActionsButtonProps) => { + const { + theme: { colors, moreActionsButton, defaults }, + } = useTheme(); + + const [isPressed, setIsPressed] = useState(false); + const buttonColor = isPressed + ? colors.buttonPrimaryDefault + : colors.buttonSecondaryDefault; + + return ( + { + // TODO: Implement PBE-5870 [Demo App] Component for "More" menu items + if (onPressHandler) { + onPressHandler(); + } + setIsPressed(!isPressed); + }} + style={moreActionsButton} + color={buttonColor} + > + + + + + ); +}; diff --git a/sample-apps/react-native/dogfood/src/components/CallControlls/ParticipantsButton.tsx b/sample-apps/react-native/dogfood/src/components/CallControlls/ParticipantsButton.tsx new file mode 100644 index 0000000000..593cd5981c --- /dev/null +++ b/sample-apps/react-native/dogfood/src/components/CallControlls/ParticipantsButton.tsx @@ -0,0 +1,68 @@ +import React from 'react'; +import { + CallControlsButton, + useTheme, +} from '@stream-io/video-react-native-sdk'; +import { IconWrapper } from '@stream-io/video-react-native-sdk/src/icons'; +import { useCallStateHooks } from '@stream-io/video-react-bindings'; +import { CallingState } from '@stream-io/video-client'; +import { BadgeCountIndicator } from './BadgeCountIndicator'; +import Participants from '../../assets/Participants'; + +/** + * The props for the Participants Button in the Call Controls. + */ +export type ParticipantsButtonProps = { + /** + * Handler to be called when the participants button is pressed. + * @returns void + */ + onParticipantInfoPress?: () => void; + /** + * The count of the current participants present in the call. + */ + participantCount?: number; +}; + +/** + * Button to open the Participant window while in the call. + * + * This button also displays the participant count of the participants in the call. + */ +export const ParticipantsButton = ({ + onParticipantInfoPress, + participantCount, +}: ParticipantsButtonProps) => { + const { + theme: { colors, chatButton, defaults }, + } = useTheme(); + + const { useCallMembers, useCallCallingState } = useCallStateHooks(); + const members = useCallMembers(); + const callingState = useCallCallingState(); + + let count = 0; + /** + * We show member's length if Incoming and Outgoing Call Views are rendered. + * Else we show the count of the participants that are in the call. + * Since the members count also includes caller/callee, we reduce the count by 1. + **/ + if (callingState === CallingState.RINGING) { + count = members.length - 1; + } else { + count = participantCount ?? 0; + } + + // TODO: PBE-5873 [Demo App] On click implement showing the Participant List + return ( + + + + + + + ); +}; diff --git a/sample-apps/react-native/dogfood/src/components/CallControlls/RecordCallButton.tsx b/sample-apps/react-native/dogfood/src/components/CallControlls/RecordCallButton.tsx new file mode 100644 index 0000000000..7f80e3e406 --- /dev/null +++ b/sample-apps/react-native/dogfood/src/components/CallControlls/RecordCallButton.tsx @@ -0,0 +1,54 @@ +import React, { useState } from 'react'; +import { + CallControlsButton, + useTheme, +} from '@stream-io/video-react-native-sdk'; +import RecordCall from '../../assets/RecordCall'; +import { IconWrapper } from '@stream-io/video-react-native-sdk/src/icons'; + +/** + * The props for the Record Call Button in the Call Controls. + */ +export type RecordCallButtonProps = { + /** + * Handler to be called when the record call button is pressed. + * @returns void + */ + onPressHandler?: () => void; +}; + +/** + * The Record Call Button is used in the Call Controls component + * and allows the user to toggle call recording. + */ +export const RecordCallButton = ({ onPressHandler }: RecordCallButtonProps) => { + const { + theme: { colors, recordCallButton, defaults, variants }, + } = useTheme(); + const [isRecording, setIsRecording] = useState(false); + const buttonColor = isRecording + ? colors.buttonSecondaryWarningDefault + : colors.buttonSecondaryDefault; + + // TODO: implement PBE-5871 [Demo App] Call Recording flow + return ( + { + if (onPressHandler) { + onPressHandler(); + } + setIsRecording(!isRecording); + }} + color={buttonColor} + style={recordCallButton} + > + + + + + ); +}; diff --git a/sample-apps/react-native/dogfood/src/components/CallControlsComponent.tsx b/sample-apps/react-native/dogfood/src/components/CallControlsComponent.tsx deleted file mode 100644 index 9e20823073..0000000000 --- a/sample-apps/react-native/dogfood/src/components/CallControlsComponent.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { - CallContentProps, - ChatButton, - HangUpCallButton, - ReactionsButton, - ToggleAudioPublishingButton, - ToggleCameraFaceButton, - ToggleVideoPublishingButton, - ScreenShareToggleButton, - useCallStateHooks, -} from '@stream-io/video-react-native-sdk'; -import React from 'react'; -import { StyleSheet, Text, View, ViewStyle } from 'react-native'; -import { appTheme } from '../theme'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Z_INDEX } from '../constants'; -import { VideoEffectsButton } from './VideoEffectsButton'; - -export type CallControlsComponentProps = Pick< - CallContentProps, - 'supportedReactions' -> & { - onChatOpenHandler?: () => void; - onHangupCallHandler?: () => void; - unreadCountIndicator?: number; - landscape?: boolean; -}; - -export const CallControlsComponent = ({ - onChatOpenHandler, - onHangupCallHandler, - unreadCountIndicator, - landscape, -}: CallControlsComponentProps) => { - const { bottom } = useSafeAreaInsets(); - const { useMicrophoneState } = useCallStateHooks(); - const { isSpeakingWhileMuted } = useMicrophoneState(); - const landscapeStyles: ViewStyle = { - flexDirection: landscape ? 'column-reverse' : 'row', - paddingHorizontal: landscape ? 12 : 0, - paddingVertical: landscape ? 0 : 12, - paddingBottom: landscape ? 0 : Math.max(bottom, appTheme.spacing.lg), - }; - - return ( - - {isSpeakingWhileMuted && ( - - You are muted. Unmute to speak. - - )} - - - - - - - - - - - - ); -}; - -const styles = StyleSheet.create({ - speakingLabelContainer: { - backgroundColor: appTheme.colors.static_overlay, - paddingVertical: 10, - width: '100%', - }, - label: { - textAlign: 'center', - color: appTheme.colors.static_white, - }, - callControlsWrapper: { - justifyContent: 'space-evenly', - zIndex: Z_INDEX.IN_FRONT, - backgroundColor: appTheme.colors.static_grey, - }, -}); diff --git a/sample-apps/react-native/dogfood/src/components/LiveStream/LiveStreamChatControlButton.tsx b/sample-apps/react-native/dogfood/src/components/LiveStream/LiveStreamChatControlButton.tsx index 87214f0939..ee39eb8dbc 100644 --- a/sample-apps/react-native/dogfood/src/components/LiveStream/LiveStreamChatControlButton.tsx +++ b/sample-apps/react-native/dogfood/src/components/LiveStream/LiveStreamChatControlButton.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Pressable, View } from 'react-native'; import { appTheme } from '../../theme'; -import { Chat } from '../../assets/Chat'; +import { LiveStreamChat } from '../../assets/LiveStreamChat'; import { StyleSheet } from 'react-native'; type LiveStreamChatControlButtonProps = { @@ -22,7 +22,7 @@ export const LiveStreamChatControlButton = ({ ]} > - + ); diff --git a/sample-apps/react-native/dogfood/src/components/MeetingUI.tsx b/sample-apps/react-native/dogfood/src/components/MeetingUI.tsx index dcae405b3e..f17a03e19a 100644 --- a/sample-apps/react-native/dogfood/src/components/MeetingUI.tsx +++ b/sample-apps/react-native/dogfood/src/components/MeetingUI.tsx @@ -130,7 +130,6 @@ export const MeetingUI = ({ callId, navigation, route }: Props) => { onCallEnded={onCallEnded} onChatOpenHandler={onChatOpenHandler} unreadCountIndicator={unreadCountIndicator} - onHangupCallHandler={onHangupCallHandler} onBackPressed={onHangupCallHandler} /> ); diff --git a/sample-apps/react-native/dogfood/src/components/VideoWrapper.tsx b/sample-apps/react-native/dogfood/src/components/VideoWrapper.tsx index 146075ddc5..9a4064b285 100644 --- a/sample-apps/react-native/dogfood/src/components/VideoWrapper.tsx +++ b/sample-apps/react-native/dogfood/src/components/VideoWrapper.tsx @@ -9,8 +9,10 @@ import { } from '../contexts/AppContext'; import { createToken } from '../modules/helpers/createToken'; import translations from '../translations'; +import { useCustomTheme } from '../theme'; export const VideoWrapper = ({ children }: PropsWithChildren<{}>) => { + const customTheme = useCustomTheme(); const userId = useAppGlobalStoreValue((store) => store.userId); const userName = useAppGlobalStoreValue((store) => store.userName); const userImageUrl = useAppGlobalStoreValue((store) => store.userImageUrl); @@ -64,7 +66,11 @@ export const VideoWrapper = ({ children }: PropsWithChildren<{}>) => { } return ( - + {children} ); diff --git a/sample-apps/react-native/dogfood/src/theme.ts b/sample-apps/react-native/dogfood/src/theme.ts index c1621e8d93..e144d412f8 100644 --- a/sample-apps/react-native/dogfood/src/theme.ts +++ b/sample-apps/react-native/dogfood/src/theme.ts @@ -1,3 +1,6 @@ +import { DeepPartial, Theme } from '@stream-io/video-react-native-sdk'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; + const opacityToHex = (opacity: number) => { return Math.round(opacity * 255) .toString(16) @@ -30,3 +33,17 @@ export const appTheme = { IN_FRONT: 2, }, }; + +export const useCustomTheme = (): DeepPartial => { + const { top, right, bottom, left } = useSafeAreaInsets(); + return { + variants: { + insets: { + top, + right, + bottom, + left, + }, + }, + } as DeepPartial; +}; From 44ef7d2e69a910be45b2d3a7643c3f58e0f29803 Mon Sep 17 00:00:00 2001 From: Santhosh Vaiyapuri <3846977+santhoshvai@users.noreply.github.com> Date: Wed, 16 Oct 2024 13:06:18 +0200 Subject: [PATCH 11/15] fix(react-native): set objectFit based on actual video track dimensions (#1520) --- .../ParticipantView/VideoRenderer.tsx | 9 ++- packages/react-native-sdk/src/hooks/index.ts | 1 + .../src/hooks/useTrackDimensions.ts | 79 +++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 packages/react-native-sdk/src/hooks/useTrackDimensions.ts diff --git a/packages/react-native-sdk/src/components/Participant/ParticipantView/VideoRenderer.tsx b/packages/react-native-sdk/src/components/Participant/ParticipantView/VideoRenderer.tsx index 34b135360e..fe3332226e 100644 --- a/packages/react-native-sdk/src/components/Participant/ParticipantView/VideoRenderer.tsx +++ b/packages/react-native-sdk/src/components/Participant/ParticipantView/VideoRenderer.tsx @@ -14,6 +14,7 @@ import { import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings'; import { ParticipantVideoFallback as DefaultParticipantVideoFallback } from './ParticipantVideoFallback'; import { useTheme } from '../../../contexts/ThemeContext'; +import { useTrackDimensions } from '../../../hooks/useTrackDimensions'; const DEFAULT_VIEWPORT_VISIBILITY_STATE: Record< VideoTrackType, @@ -60,6 +61,7 @@ export const VideoRenderer = ({ const pendingVideoLayoutRef = useRef(); const subscribedVideoLayoutRef = useRef(); const { direction } = useCameraState(); + const videoDimensions = useTrackDimensions(participant, trackType); const { isLocalParticipant, sessionId, @@ -260,7 +262,12 @@ export const VideoRenderer = ({ style={[styles.videoStream, videoRenderer.videoStream]} streamURL={videoStreamToRender.toURL()} mirror={mirror} - objectFit={objectFit ?? (isScreenSharing ? 'contain' : 'cover')} + objectFit={ + objectFit ?? + (videoDimensions.width > videoDimensions.height + ? 'contain' + : 'cover') + } zOrder={videoZOrder} /> ) : ( diff --git a/packages/react-native-sdk/src/hooks/index.ts b/packages/react-native-sdk/src/hooks/index.ts index 4242f446c5..8806546e29 100644 --- a/packages/react-native-sdk/src/hooks/index.ts +++ b/packages/react-native-sdk/src/hooks/index.ts @@ -7,3 +7,4 @@ export * from './useIsInPiPMode'; export * from './useAutoEnterPiPEffect'; export * from './useApplyDefaultMediaStreamSettings'; export * from './useScreenShareButton'; +export * from './useTrackDimensions'; diff --git a/packages/react-native-sdk/src/hooks/useTrackDimensions.ts b/packages/react-native-sdk/src/hooks/useTrackDimensions.ts new file mode 100644 index 0000000000..d0c0f835c9 --- /dev/null +++ b/packages/react-native-sdk/src/hooks/useTrackDimensions.ts @@ -0,0 +1,79 @@ +import { + StreamVideoParticipant, + VideoTrackType, +} from '@stream-io/video-client'; +import { useCall } from '@stream-io/video-react-bindings'; +import { useState, useEffect } from 'react'; + +/** + * This is a utility hook to get the dimensions of the video track of the participant. + * Note: the `tracktype` is used only for local participants. + * `tracktype` should be 'videoTrack' for video track and 'screenShareTrack' for screen share track. + */ +export function useTrackDimensions( + participant: StreamVideoParticipant, + trackType: VideoTrackType +) { + const [trackDimensions, setTrackDimensions] = useState({ + width: 0, + height: 0, + }); + const call = useCall(); + const { isLocalParticipant, sessionId, videoStream, screenShareStream } = + participant; + + // for local participant we can get from track.getSettings() + useEffect(() => { + if (call && isLocalParticipant) { + const stream = + trackType === 'screenShareTrack' ? screenShareStream : videoStream; + if (!stream) return; + const [track] = stream?.getVideoTracks(); + if (!track) return; + const { width = 0, height = 0 } = track.getSettings(); + setTrackDimensions((prev) => { + if (prev.width !== width || prev.height !== height) { + return { width, height }; + } + return prev; + }); + } + }, [call, isLocalParticipant, screenShareStream, trackType, videoStream]); + + // start reporting stats for the remote participant + useEffect(() => { + if (!call) return; + if (isLocalParticipant) return; + call.startReportingStatsFor(sessionId); + return () => { + call.stopReportingStatsFor(sessionId); + }; + }, [call, sessionId, isLocalParticipant]); + + // for remote participants track.getSettings() is not supported it returns an empty object + // so we need to rely on call stats to get the dimensions + useEffect(() => { + if (!call) return; + const sub = call.state.callStatsReport$.subscribe((report) => { + if (!report) return; + const reportForTracks = report.participants[sessionId]; + const trackStats = reportForTracks + ?.flatMap((r) => r.streams) + .filter((track) => track.kind === 'video'); + if (!trackStats) return; + const stat = trackStats[0]; + if (stat) { + const { frameWidth = 0, frameHeight = 0 } = stat; + setTrackDimensions((prev) => { + if (prev.width !== frameWidth || prev.height !== frameHeight) { + return { width: frameWidth, height: frameHeight }; + } + return prev; + }); + } + }); + return () => sub.unsubscribe(); + }, [call, sessionId]); + + return trackDimensions; +} From 1bed36e199b14541d687fb653686649e03d30b7f Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Wed, 16 Oct 2024 11:09:35 +0000 Subject: [PATCH 12/15] chore(@stream-io/video-react-native-sdk): release version 1.1.5 --- packages/react-native-sdk/CHANGELOG.md | 7 +++++++ packages/react-native-sdk/package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/react-native-sdk/CHANGELOG.md b/packages/react-native-sdk/CHANGELOG.md index c96d0292e6..960a0e358a 100644 --- a/packages/react-native-sdk/CHANGELOG.md +++ b/packages/react-native-sdk/CHANGELOG.md @@ -2,6 +2,13 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +## [1.1.5](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.4...@stream-io/video-react-native-sdk-1.1.5) (2024-10-16) + + +### Bug Fixes + +* **react-native:** set objectFit based on actual video track dimensions ([#1520](https://github.com/GetStream/stream-video-js/issues/1520)) ([44ef7d2](https://github.com/GetStream/stream-video-js/commit/44ef7d2e69a910be45b2d3a7643c3f58e0f29803)) + ## [1.1.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.1.3...@stream-io/video-react-native-sdk-1.1.4) (2024-10-10) ### Dependency Updates diff --git a/packages/react-native-sdk/package.json b/packages/react-native-sdk/package.json index 15c4119153..283f6252b9 100644 --- a/packages/react-native-sdk/package.json +++ b/packages/react-native-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-react-native-sdk", - "version": "1.1.4", + "version": "1.1.5", "packageManager": "yarn@3.2.4", "main": "dist/commonjs/index.js", "module": "dist/module/index.js", From 0b262dcba74ca30bc02e7d2f318b7791c5d71c81 Mon Sep 17 00:00:00 2001 From: GitHub Actions Bot <> Date: Wed, 16 Oct 2024 11:09:58 +0000 Subject: [PATCH 13/15] chore(@stream-io/video-react-native-dogfood): release version 4.3.11 --- sample-apps/react-native/dogfood/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample-apps/react-native/dogfood/package.json b/sample-apps/react-native/dogfood/package.json index 2b4c0ed99a..4fd56a9881 100644 --- a/sample-apps/react-native/dogfood/package.json +++ b/sample-apps/react-native/dogfood/package.json @@ -1,6 +1,6 @@ { "name": "@stream-io/video-react-native-dogfood", - "version": "4.3.10", + "version": "4.3.11", "private": true, "scripts": { "android": "react-native run-android", From 6d25558a3839eac579c2334695fe52e96bc020b8 Mon Sep 17 00:00:00 2001 From: Martin Mitrevski Date: Wed, 16 Oct 2024 13:50:19 +0200 Subject: [PATCH 14/15] docs: Added more details for anon users (#1522) Few tickets on support came up, we need to be more clear in the docs. --- .../reactnative/03-core/01-client-auth.mdx | 19 +++++++++++++++++++ .../docs/React/02-guides/01-client-auth.mdx | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/packages/react-native-sdk/docusaurus/docs/reactnative/03-core/01-client-auth.mdx b/packages/react-native-sdk/docusaurus/docs/reactnative/03-core/01-client-auth.mdx index 5c9415602e..641ce941c7 100644 --- a/packages/react-native-sdk/docusaurus/docs/reactnative/03-core/01-client-auth.mdx +++ b/packages/react-native-sdk/docusaurus/docs/reactnative/03-core/01-client-auth.mdx @@ -71,6 +71,25 @@ const apiKey = 'my-stream-api-key'; const client = StreamVideoClient.getOrCreateInstance({ apiKey, user }); ``` +Anonymous users don't establish an active web socket connection, therefore they won't receive any events. They are just able to watch a livestream or join a call. + +The token for an anonymous user should contain the `call_cids` field, which is an array of the call `cid`'s that the user is allowed to join. + +Here's an example JWT token payload for an anonymous user: + +```ts +{ + "iss": "@stream-io/dashboard", + "iat": 1726406693, + "exp": 1726493093, + "user_id": "!anon", + "role": "viewer", + "call_cids": [ + "livestream:123" + ] +} +``` + ## Client options ### `token` or `tokenProvider` diff --git a/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx b/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx index da40abbe38..202f2c143e 100644 --- a/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx +++ b/packages/react-sdk/docusaurus/docs/React/02-guides/01-client-auth.mdx @@ -71,6 +71,25 @@ const apiKey = 'my-stream-api-key'; const client = new StreamVideoClient({ apiKey, user }); ``` +Anonymous users don't establish an active web socket connection, therefore they won't receive any events. They are just able to watch a livestream or join a call. + +The token for an anonymous user should contain the `call_cids` field, which is an array of the call `cid`'s that the user is allowed to join. + +Here's an example JWT token payload for an anonymous user: + +```ts +{ + "iss": "@stream-io/dashboard", + "iat": 1726406693, + "exp": 1726493093, + "user_id": "!anon", + "role": "viewer", + "call_cids": [ + "livestream:123" + ] +} +``` + ## Client options ### `token` or `tokenProvider` From fc20668540a96db5c7c9eff79225a54ff5d51309 Mon Sep 17 00:00:00 2001 From: Oliver Lazoroski Date: Wed, 16 Oct 2024 13:51:50 +0200 Subject: [PATCH 15/15] chore: disable auto-release --- .github/workflows/version-and-release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/version-and-release.yml b/.github/workflows/version-and-release.yml index 451da6e716..8040c9a49e 100644 --- a/.github/workflows/version-and-release.yml +++ b/.github/workflows/version-and-release.yml @@ -4,11 +4,11 @@ env: STREAM_SECRET: ${{ secrets.CLIENT_TEST_SECRET }} on: - push: - branches: - - main - paths: - - 'packages/**' + # push: + # branches: + # - main + # paths: + # - 'packages/**' workflow_dispatch: