Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/sample-distribution.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ concurrency:

on:
push:
branches:
- develop
paths:
- '.github/workflows/sample-distribution.yml'
- 'package/**'
- 'examples/SampleApp/**'
workflow_dispatch:

permissions:
actions: write
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
diff --git a/android/src/main/java/expo/modules/audio/AudioModule.kt b/android/src/main/java/expo/modules/audio/AudioModule.kt
index 992239ba7631ce0c97c0b41c5fbf61cc842386fe..ebc0933beaf40414887ff634029ca8eb0d0558c9 100644
index 6c81fce3dd518d3b82e3280940a001c7be84dd0a..99c0446eb87565b9dcdb9263864ea45869fdb673 100644
--- a/android/src/main/java/expo/modules/audio/AudioModule.kt
+++ b/android/src/main/java/expo/modules/audio/AudioModule.kt
@@ -28,6 +28,9 @@ import androidx.media3.exoplayer.hls.HlsMediaSource
Expand All @@ -12,7 +12,7 @@ index 992239ba7631ce0c97c0b41c5fbf61cc842386fe..ebc0933beaf40414887ff634029ca8eb
import expo.modules.interfaces.permissions.Permissions
import expo.modules.kotlin.Promise
import expo.modules.kotlin.exception.Exceptions
@@ -931,7 +934,12 @@ class AudioModule : Module() {
@@ -1198,7 +1201,12 @@ class AudioModule : Module() {
CONTENT_TYPE_SS -> SsMediaSource.Factory(factory)
CONTENT_TYPE_DASH -> DashMediaSource.Factory(factory)
CONTENT_TYPE_HLS -> HlsMediaSource.Factory(factory)
Expand All @@ -27,18 +27,17 @@ index 992239ba7631ce0c97c0b41c5fbf61cc842386fe..ebc0933beaf40414887ff634029ca8eb
}.createMediaSource(mediaItem)
}
diff --git a/expo-module.config.json b/expo-module.config.json
index 778d6dfb16571238eaaca6ac87e1aab155605c2f..9a131dd948d2eb5adf3cf9b759829a0e8fed15a1 100644
index 259b4ab489907fb5c837526bd4d392a7d339bed1..9a131dd948d2eb5adf3cf9b759829a0e8fed15a1 100644
--- a/expo-module.config.json
+++ b/expo-module.config.json
@@ -4,12 +4,6 @@
@@ -4,11 +4,6 @@
"modules": ["AudioModule"]
},
"android": {
- "modules": ["expo.modules.audio.AudioModule"],
- "publication": {
- "groupId": "expo.modules.audio",
- "artifactId": "expo.modules.audio",
- "version": "57.0.2",
- "repository": "local-maven-repo"
- }
+ "modules": ["expo.modules.audio.AudioModule"]
Expand Down
36 changes: 18 additions & 18 deletions examples/ExpoChatGPTSample/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,23 @@
},
"dependencies": {
"@react-native-community/netinfo": "12.0.1",
"@shopify/react-native-skia": "^2.13.0",
"expo": "^57.0.7",
"expo-clipboard": "~57.0.1",
"expo-constants": "~57.0.6",
"expo-image-manipulator": "~57.0.5",
"expo-image-picker": "~57.0.5",
"expo-linking": "~57.0.3",
"expo-router": "~57.0.7",
"react": "19.2.3",
"react-native": "0.86.0",
"react-native-gesture-handler": "~2.32.0",
"react-native-reanimated": "4.5.2",
"react-native-safe-area-context": "~5.7.0",
"react-native-screens": "4.26.2",
"react-native-svg": "15.15.4",
"react-native-teleport": "^1.1.12",
"react-native-worklets": "0.11.1",
"@shopify/react-native-skia": "^2.14.0",
"expo": "^58.0.8",
"expo-clipboard": "~58.0.3",
"expo-constants": "~58.0.11",
"expo-image-manipulator": "~58.0.14",
"expo-image-picker": "~58.0.10",
"expo-linking": "~58.0.12",
"expo-router": "~58.0.18",
"react": "19.3.0",
"react-native": "0.88.0",
"react-native-gesture-handler": "~3.3.0",
"react-native-reanimated": "4.7.1",
"react-native-safe-area-context": "~5.10.1",
"react-native-screens": "~4.29.0",
"react-native-svg": "15.15.5",
"react-native-teleport": "^1.2.2",
"react-native-worklets": "0.13.0",
"stream-chat": "^9.54.0",
"stream-chat-expo": "workspace:^",
"stream-chat-react-native-core": "workspace:^",
Expand All @@ -37,7 +37,7 @@
"@babel/plugin-transform-export-namespace-from": "^7.27.1",
"@rnx-kit/metro-config": "^2.1.2",
"@stream-io/typescript-config": "workspace:^",
"@types/react": "~19.2.10",
"@types/react": "~19.3.0",
"typescript": "6.0.3"
},
"private": true
Expand Down
2 changes: 1 addition & 1 deletion examples/ExpoChatGPTSample/screens/ChatContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ const additionalFlatListProps = {
minIndexForVisible: 0,
autoscrollToTopThreshold: 0,
},
ListHeaderComponent: null,
ListHeaderComponent: undefined,
};

export const ChatContent = () => {
Expand Down
5 changes: 2 additions & 3 deletions examples/ExpoChatGPTSample/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@
"extends": ["expo/tsconfig.base", "@stream-io/typescript-config/base.json"],
"compilerOptions": {
"paths": {
// Same as ExpoMessaging: this workspace keeps its own React Native (Expo 57 -> RN 0.86) while
// the SDK workspace is on RN 0.87, so the whole program is pinned to this workspace's copy.
"react-native": ["./node_modules/react-native"],
// Same as ExpoMessaging: pins the whole program to this workspace's copy of React Native.
"react-native": ["./node_modules/react-native/types_generated/index.d.ts"],
"react-native/*": ["./node_modules/react-native/*"]
}
},
Expand Down
1 change: 1 addition & 0 deletions examples/ExpoMessaging/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
],
"@react-native-firebase/app",
"@react-native-firebase/messaging",
"./plugins/firebaseAppDelegatePlugin.js",
[
"expo-build-properties",
{
Expand Down
68 changes: 34 additions & 34 deletions examples/ExpoMessaging/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,44 +13,44 @@
},
"dependencies": {
"@notifee/react-native": "^9.1.8",
"@op-engineering/op-sqlite": "^17.1.2",
"@op-engineering/op-sqlite": "^18.2.5",
"@react-native-async-storage/async-storage": "2.2.0",
"@react-native-community/netinfo": "12.0.1",
"@react-native-firebase/app": "^24.0.0",
"@react-native-firebase/messaging": "^24.0.0",
"@shopify/flash-list": "^2.3.3",
"expo": "^57.0.7",
"expo-asset": "~57.0.6",
"expo-audio": "patch:expo-audio@npm%3A57.0.2#~/.yarn/patches/expo-audio-npm-57.0.2-7a40cb0b0a.patch",
"expo-build-properties": "~57.0.6",
"expo-clipboard": "~57.0.1",
"expo-constants": "~57.0.6",
"expo-document-picker": "~57.0.1",
"expo-file-system": "~57.0.1",
"expo-haptics": "~57.0.1",
"expo-image-manipulator": "~57.0.5",
"expo-image-picker": "~57.0.5",
"expo-linking": "~57.0.3",
"expo-location": "~57.0.5",
"expo-media-library": "~57.0.3",
"expo-router": "~57.0.7",
"expo-sharing": "~57.0.6",
"expo-splash-screen": "~57.0.4",
"expo-status-bar": "~57.0.1",
"expo-video": "~57.0.1",
"react": "19.2.3",
"react-dom": "19.2.3",
"react-native": "0.86.0",
"react-native-gesture-handler": "~2.32.0",
"react-native-keyboard-controller": "1.21.9",
"react-native-maps": "1.27.2",
"react-native-reanimated": "4.5.2",
"react-native-safe-area-context": "~5.7.0",
"react-native-screens": "4.26.2",
"react-native-svg": "15.15.4",
"react-native-teleport": "^1.1.12",
"react-native-web": "^0.21.2",
"react-native-worklets": "0.11.1",
"expo": "^58.0.8",
"expo-asset": "~58.0.14",
"expo-audio": "patch:expo-audio@npm%3A58.0.9#~/.yarn/patches/expo-audio-npm-58.0.9-5c313f7a3f.patch",
"expo-build-properties": "~58.0.10",
"expo-clipboard": "~58.0.3",
"expo-constants": "~58.0.11",
"expo-document-picker": "~58.0.4",
"expo-file-system": "~58.0.9",
"expo-haptics": "~58.0.6",
"expo-image-manipulator": "~58.0.14",
"expo-image-picker": "~58.0.10",
"expo-linking": "~58.0.12",
"expo-location": "~58.0.14",
"expo-media-library": "~58.0.8",
"expo-router": "~58.0.18",
"expo-sharing": "~58.0.17",
"expo-splash-screen": "~58.0.8",
"expo-status-bar": "~58.0.3",
"expo-video": "~58.0.10",
"react": "19.3.0",
"react-dom": "19.3.0",
"react-native": "0.88.0",
"react-native-gesture-handler": "~3.3.0",
"react-native-keyboard-controller": "1.22.7",
"react-native-maps": "1.29.11",
"react-native-reanimated": "4.7.1",
"react-native-safe-area-context": "~5.10.1",
"react-native-screens": "~4.29.0",
"react-native-svg": "15.15.5",
"react-native-teleport": "^1.2.2",
"react-native-web": "~0.21.4",
"react-native-worklets": "0.13.0",
"stream-chat": "^9.54.0",
"stream-chat-expo": "workspace:^",
"stream-chat-react-native-core": "workspace:^"
Expand All @@ -59,7 +59,7 @@
"@rnx-kit/metro-config": "^2.1.2",
"@rnx-kit/metro-resolver-symlinks": "^0.2.6",
"@stream-io/typescript-config": "workspace:^",
"@types/react": "~19.2.10",
"@types/react": "~19.3.0",
"typescript": "6.0.3"
},
"expo": {
Expand Down
35 changes: 35 additions & 0 deletions examples/ExpoMessaging/plugins/firebaseAppDelegatePlugin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
const { createRunOncePlugin, withAppDelegate } = require('@expo/config-plugins');

// Expo SDK 58 moved `factory.startReactNative(...)` out of AppDelegate.swift and into
// SceneDelegate.swift (the iOS 27 SDK requires the scene-based life cycle). The
// @react-native-firebase/app config plugin (checked up to 26.4.0) anchors `FirebaseApp.configure()`
// on that call, so it now skips the insertion with a warning and Firebase is never configured.
// Until upstream handles the new template, insert it right before `super.application(...)`.
// Must be listed after `@react-native-firebase/app`, which adds the `FirebaseCore` import.
const CONFIGURE_CALL = 'FirebaseApp.configure()';
const ANCHOR =
/^(\s*)return super\.application\(application, didFinishLaunchingWithOptions: launchOptions\)/m;

const withFirebaseAppDelegate = (config) =>
withAppDelegate(config, (config) => {
const { contents, language } = config.modResults;
if (language !== 'swift' || contents.includes(CONFIGURE_CALL)) {
return config;
}
if (!ANCHOR.test(contents)) {
throw new Error(
'firebaseAppDelegatePlugin: could not find `return super.application(...)` in AppDelegate.swift.',
);
}
config.modResults.contents = contents.replace(
ANCHOR,
(match, indent) => `${indent}${CONFIGURE_CALL}\n${match}`,
);
return config;
});

module.exports = createRunOncePlugin(
withFirebaseAppDelegate,
'firebase-app-delegate-plugin',
'0.0.1',
);
14 changes: 7 additions & 7 deletions examples/ExpoMessaging/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"compilerOptions": {
"paths": {
"@/*": ["./*"],
// This workspace keeps its own React Native (Expo 57 -> RN 0.86) while the SDK workspace is on
// RN 0.87, and `nmHoistingLimits: workspaces` means both copies exist. Without this, the SDK's
// declarations resolve React Native relative to themselves, so `ColorValue` from the SDK's
// theme and `ColorValue` in this app's `ViewStyle` are two different nominal types. Pinning
// the whole program to this workspace's copy models what a real consumer sees (exactly one
// react-native) and, usefully, type-checks the SDK against RN 0.86.
"react-native": ["./node_modules/react-native"],
// `nmHoistingLimits: workspaces` gives this workspace and the SDK workspace separate copies of
// React Native. Without this, the SDK's declarations resolve React Native relative to
// themselves, so `ColorValue` from the SDK's theme and `ColorValue` in this app's `ViewStyle`
// can end up as two different nominal types. Pinning the whole program to this workspace's
// copy models what a real consumer sees (exactly one react-native). The target is the types
// entry because React Native only exposes it through `exports`, which `paths` bypasses.
"react-native": ["./node_modules/react-native/types_generated/index.d.ts"],
"react-native/*": ["./node_modules/react-native/*"]
}
},
Expand Down
Loading
Loading