expo 54.0.9 → 54.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@ buildscript {
32
32
  def reactNativeVersion = project.extensions.getByType(ExpoModuleExtension).reactNativeVersion
33
33
 
34
34
  group = 'host.exp.exponent'
35
- version = '54.0.9'
35
+ version = '54.0.11'
36
36
 
37
37
  expoModule {
38
38
  // We can't prebuild the module because it depends on the generated files.
@@ -43,7 +43,7 @@ android {
43
43
  namespace "expo.core"
44
44
  defaultConfig {
45
45
  versionCode 1
46
- versionName "54.0.9"
46
+ versionName "54.0.11"
47
47
  consumerProguardFiles("proguard-rules.pro")
48
48
  }
49
49
  testOptions {
@@ -2,7 +2,7 @@
2
2
  "@expo/fingerprint": "~0.15.1",
3
3
  "@expo/metro-runtime": "~6.1.2",
4
4
  "@expo/vector-icons": "^15.0.2",
5
- "@expo/ui": "~0.2.0-beta.3",
5
+ "@expo/ui": "~0.2.0-beta.5",
6
6
  "@react-native-async-storage/async-storage": "2.2.0",
7
7
  "@react-native-community/datetimepicker": "8.4.4",
8
8
  "@react-native-masked-view/masked-view": "0.3.2",
@@ -34,12 +34,12 @@
34
34
  "expo-checkbox": "~5.0.7",
35
35
  "expo-clipboard": "~8.0.7",
36
36
  "expo-constants": "~18.0.9",
37
- "expo-contacts": "~15.0.8",
37
+ "expo-contacts": "~15.0.9",
38
38
  "expo-crypto": "~15.0.7",
39
- "expo-dev-client": "~6.0.12",
40
- "expo-device": "~8.0.8",
39
+ "expo-dev-client": "~6.0.13",
40
+ "expo-device": "~8.0.9",
41
41
  "expo-document-picker": "~14.0.7",
42
- "expo-file-system": "~19.0.14",
42
+ "expo-file-system": "~19.0.16",
43
43
  "expo-font": "~14.0.8",
44
44
  "expo-gl": "~16.0.7",
45
45
  "expo-glass-effect": "~0.1.4",
@@ -59,17 +59,17 @@
59
59
  "expo-location": "~19.0.7",
60
60
  "expo-mail-composer": "~15.0.7",
61
61
  "expo-manifests": "~1.0.8",
62
- "expo-maps": "~0.12.7",
62
+ "expo-maps": "~0.12.8",
63
63
  "expo-media-library": "~18.2.0",
64
64
  "expo-mesh-gradient": "~0.4.7",
65
- "expo-module-template": "~11.0.13",
66
- "expo-modules-core": "~3.0.17",
65
+ "expo-module-template": "~11.0.14",
66
+ "expo-modules-core": "~3.0.19",
67
67
  "expo-navigation-bar": "~5.0.8",
68
68
  "expo-network": "~8.0.7",
69
- "expo-notifications": "~0.32.11",
69
+ "expo-notifications": "~0.32.12",
70
70
  "expo-print": "~15.0.7",
71
71
  "expo-live-photo": "~1.0.7",
72
- "expo-router": "~6.0.7",
72
+ "expo-router": "~6.0.9",
73
73
  "expo-screen-capture": "~8.0.8",
74
74
  "expo-screen-orientation": "~9.0.7",
75
75
  "expo-secure-store": "~15.0.7",
@@ -80,15 +80,15 @@
80
80
  "expo-splash-screen": "~31.0.10",
81
81
  "expo-sqlite": "~16.0.8",
82
82
  "expo-status-bar": "~3.0.8",
83
- "expo-store-review": "~9.0.7",
83
+ "expo-store-review": "~9.0.8",
84
84
  "expo-symbols": "~1.0.7",
85
85
  "expo-system-ui": "~6.0.7",
86
86
  "expo-task-manager": "~14.0.7",
87
87
  "expo-tracking-transparency": "~6.0.7",
88
- "expo-updates": "~29.0.11",
88
+ "expo-updates": "~29.0.12",
89
89
  "expo-video-thumbnails": "~10.0.7",
90
90
  "expo-video": "~3.0.11",
91
- "expo-web-browser": "~15.0.7",
91
+ "expo-web-browser": "~15.0.8",
92
92
  "jest-expo": "~54.0.12",
93
93
  "lottie-react-native": "~7.3.1",
94
94
  "react": "19.1.0",
@@ -101,7 +101,7 @@
101
101
  "react-native-maps": "1.20.1",
102
102
  "react-native-pager-view": "6.9.1",
103
103
  "react-native-worklets": "0.5.1",
104
- "react-native-reanimated": "~4.1.0",
104
+ "react-native-reanimated": "~4.1.1",
105
105
  "react-native-screens": "~4.16.0",
106
106
  "react-native-safe-area-context": "~5.6.0",
107
107
  "react-native-svg": "15.12.1",
@@ -112,6 +112,6 @@
112
112
  "unimodules-image-loader-interface": "~6.1.0",
113
113
  "@shopify/react-native-skia": "2.2.12",
114
114
  "@shopify/flash-list": "2.0.2",
115
- "@sentry/react-native": "~6.20.0",
115
+ "@sentry/react-native": "~7.1.0",
116
116
  "react-native-bootsplash": "^6.3.10"
117
117
  }
@@ -2,8 +2,14 @@
2
2
 
3
3
  import React
4
4
 
5
- @MainActor public class ExpoReactNativeFactory: RCTReactNativeFactory {
6
- private let reactDelegate = ExpoReactDelegate(handlers: ExpoAppDelegateSubscriberRepository.reactDelegateHandlers)
5
+ public class ExpoReactNativeFactory: RCTReactNativeFactory, ExpoReactNativeFactoryProtocol {
6
+ private let defaultModuleName = "main"
7
+ private lazy var reactDelegate: ExpoReactDelegate = {
8
+ ExpoReactDelegate(
9
+ handlers: ExpoAppDelegateSubscriberRepository.reactDelegateHandlers,
10
+ reactNativeFactory: self
11
+ )
12
+ }()
7
13
 
8
14
  // TODO: Remove check when react-native-macos 0.81 is released
9
15
  #if !os(macOS)
@@ -21,6 +27,7 @@ import React
21
27
  }
22
28
  #endif
23
29
 
30
+ @MainActor
24
31
  @objc func createRCTRootViewFactory() -> RCTRootViewFactory {
25
32
  // Alan: This is temporary. We need to cast to ExpoReactNativeFactoryDelegate here because currently, if you extend RCTReactNativeFactory
26
33
  // from Swift, customizeRootView will not work on the new arch because the cast to RCTRootView will never
@@ -83,4 +90,49 @@ import React
83
90
  turboModuleManagerDelegate: self
84
91
  )
85
92
  }
93
+
94
+ public func recreateRootView(
95
+ withBundleURL: URL?,
96
+ moduleName: String?,
97
+ initialProps: [AnyHashable: Any]?,
98
+ launchOptions: [AnyHashable: Any]?
99
+ ) -> UIView {
100
+ guard let delegate = self.delegate else {
101
+ fatalError("recreateRootView: Missing RCTReactNativeFactoryDelegate")
102
+ }
103
+
104
+ if RCTIsNewArchEnabled() {
105
+ // chrfalch: rootViewFactory.reactHost is not available here in swift due to the underlying RCTHost type of the property. (todo: check)
106
+ assert(self.rootViewFactory.value(forKey: "reactHost") == nil, "recreateRootViewWithBundleURL: does not support when react instance is created")
107
+ } else {
108
+ assert(self.rootViewFactory.bridge == nil, "recreateRootViewWithBundleURL: does not support when react instance is created")
109
+ }
110
+
111
+ let configuration = self.rootViewFactory.value(forKey: "_configuration") as? RCTRootViewFactoryConfiguration
112
+
113
+ if let bundleURL = withBundleURL {
114
+ configuration?.bundleURLBlock = {
115
+ return bundleURL
116
+ }
117
+ }
118
+
119
+ let rootView: UIView
120
+ if let factory = self.rootViewFactory as? ExpoReactRootViewFactory {
121
+ // When calling `recreateRootViewWithBundleURL:` from `EXReactRootViewFactory`,
122
+ // we don't want to loop the ReactDelegate again. Otherwise, it will be an infinite loop.
123
+ rootView = factory.superView(
124
+ withModuleName: moduleName ?? defaultModuleName,
125
+ initialProperties: initialProps,
126
+ launchOptions: launchOptions ?? [:]
127
+ )
128
+ } else {
129
+ rootView = rootViewFactory.view(
130
+ withModuleName: moduleName ?? defaultModuleName,
131
+ initialProperties: initialProps,
132
+ launchOptions: launchOptions
133
+ )
134
+ }
135
+
136
+ return rootView
137
+ }
86
138
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo",
3
- "version": "54.0.9",
3
+ "version": "54.0.11",
4
4
  "description": "The Expo SDK",
5
5
  "main": "src/Expo.ts",
6
6
  "module": "src/Expo.ts",
@@ -75,23 +75,23 @@
75
75
  "homepage": "https://github.com/expo/expo/tree/main/packages/expo",
76
76
  "dependencies": {
77
77
  "@babel/runtime": "^7.20.0",
78
- "@expo/cli": "54.0.7",
78
+ "@expo/cli": "54.0.9",
79
79
  "@expo/config": "~12.0.9",
80
- "@expo/config-plugins": "~54.0.1",
80
+ "@expo/config-plugins": "~54.0.2",
81
81
  "@expo/devtools": "0.1.7",
82
82
  "@expo/fingerprint": "0.15.1",
83
83
  "@expo/metro": "~54.0.0",
84
- "@expo/metro-config": "54.0.4",
84
+ "@expo/metro-config": "54.0.5",
85
85
  "@expo/vector-icons": "^15.0.2",
86
86
  "@ungap/structured-clone": "^1.3.0",
87
- "babel-preset-expo": "~54.0.2",
87
+ "babel-preset-expo": "~54.0.3",
88
88
  "expo-asset": "~12.0.9",
89
89
  "expo-constants": "~18.0.9",
90
- "expo-file-system": "~19.0.14",
90
+ "expo-file-system": "~19.0.16",
91
91
  "expo-font": "~14.0.8",
92
92
  "expo-keep-awake": "~15.0.7",
93
- "expo-modules-autolinking": "3.0.12",
94
- "expo-modules-core": "3.0.17",
93
+ "expo-modules-autolinking": "3.0.14",
94
+ "expo-modules-core": "3.0.19",
95
95
  "pretty-format": "^29.7.0",
96
96
  "react-refresh": "^0.14.2",
97
97
  "whatwg-url-without-unicode": "8.0.0-3"
@@ -124,5 +124,5 @@
124
124
  "optional": true
125
125
  }
126
126
  },
127
- "gitHead": "0d9ae61f3dea2e2b854576859e5b50fca5503fc1"
127
+ "gitHead": "1ab3b9621b78b77b81049ebf06149753a1e0898c"
128
128
  }
package/template.tgz CHANGED
Binary file
@@ -17,5 +17,5 @@
17
17
  "target": "ESNext"
18
18
  },
19
19
 
20
- "exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
20
+ "exclude": ["${configDir}/node_modules", "${configDir}/babel.config.js", "${configDir}/metro.config.js", "${configDir}/jest.config.js", "${configDir}/android", "${configDir}/ios"]
21
21
  }