expo 43.0.3 → 44.0.0-alpha.0

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.
@@ -0,0 +1,261 @@
1
+
2
+ # Created by https://www.gitignore.io/api/java,maven,gradle,android,intellij,androidstudio
3
+
4
+ ### Android ###
5
+ # Built application files
6
+ *.apk
7
+ *.ap_
8
+
9
+ # Files for the ART/Dalvik VM
10
+ *.dex
11
+
12
+ # Java class files
13
+ *.class
14
+
15
+ # Generated files
16
+ bin/
17
+ gen/
18
+ out/
19
+
20
+ # Gradle files
21
+ .gradle/
22
+ build/
23
+
24
+ # Local configuration file (sdk path, etc)
25
+ local.properties
26
+
27
+ # Proguard folder generated by Eclipse
28
+ proguard/
29
+
30
+ # Log Files
31
+ *.log
32
+
33
+ # Android Studio Navigation editor temp files
34
+ .navigation/
35
+
36
+ # Android Studio captures folder
37
+ captures/
38
+
39
+ # Intellij
40
+ *.iml
41
+ .idea/workspace.xml
42
+ .idea/tasks.xml
43
+ .idea/gradle.xml
44
+ .idea/dictionaries
45
+ .idea/libraries
46
+
47
+ # External native build folder generated in Android Studio 2.2 and later
48
+ .externalNativeBuild
49
+
50
+ # Freeline
51
+ freeline.py
52
+ freeline/
53
+ freeline_project_description.json
54
+
55
+ ### Android Patch ###
56
+ gen-external-apklibs
57
+
58
+ ### AndroidStudio ###
59
+ # Covers files to be ignored for android development using Android Studio.
60
+
61
+ # Built application files
62
+
63
+ # Files for the ART/Dalvik VM
64
+
65
+ # Java class files
66
+
67
+ # Generated files
68
+
69
+ # Gradle files
70
+ .gradle
71
+
72
+ # Signing files
73
+ .signing/
74
+
75
+ # Local configuration file (sdk path, etc)
76
+
77
+ # Proguard folder generated by Eclipse
78
+
79
+ # Log Files
80
+
81
+ # Android Studio
82
+ /*/build/
83
+ /*/local.properties
84
+ /*/out
85
+ /*/*/build
86
+ /*/*/production
87
+ *.ipr
88
+ *~
89
+ *.swp
90
+
91
+ # Android Patch
92
+
93
+ # External native build folder generated in Android Studio 2.2 and later
94
+
95
+ # NDK
96
+ obj/
97
+
98
+ # IntelliJ IDEA
99
+ *.iws
100
+ /out/
101
+
102
+ # User-specific configurations
103
+ .idea/libraries/
104
+ .idea/.name
105
+ .idea/compiler.xml
106
+ .idea/copyright/profiles_settings.xml
107
+ .idea/encodings.xml
108
+ .idea/misc.xml
109
+ .idea/modules.xml
110
+ .idea/scopes/scope_settings.xml
111
+ .idea/vcs.xml
112
+ .idea/jsLibraryMappings.xml
113
+ .idea/datasources.xml
114
+ .idea/dataSources.ids
115
+ .idea/sqlDataSources.xml
116
+ .idea/dynamic.xml
117
+ .idea/uiDesigner.xml
118
+
119
+ # OS-specific files
120
+ .DS_Store
121
+ .DS_Store?
122
+ ._*
123
+ .Spotlight-V100
124
+ .Trashes
125
+ ehthumbs.db
126
+ Thumbs.db
127
+
128
+ # Legacy Eclipse project files
129
+ .classpath
130
+ .project
131
+ .cproject
132
+ .settings/
133
+
134
+ # Mobile Tools for Java (J2ME)
135
+ .mtj.tmp/
136
+
137
+ # Package Files #
138
+ *.war
139
+ *.ear
140
+
141
+ # virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
142
+ hs_err_pid*
143
+
144
+ ## Plugin-specific files:
145
+
146
+ # mpeltonen/sbt-idea plugin
147
+ .idea_modules/
148
+
149
+ # JIRA plugin
150
+ atlassian-ide-plugin.xml
151
+
152
+ # Mongo Explorer plugin
153
+ .idea/mongoSettings.xml
154
+
155
+ ### AndroidStudio Patch ###
156
+
157
+ !/gradle/wrapper/gradle-wrapper.jar
158
+
159
+ ### Intellij ###
160
+ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
161
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
162
+
163
+ # User-specific stuff:
164
+ .idea/**/workspace.xml
165
+ .idea/**/tasks.xml
166
+
167
+ # Sensitive or high-churn files:
168
+ .idea/**/dataSources/
169
+ .idea/**/dataSources.ids
170
+ .idea/**/dataSources.xml
171
+ .idea/**/dataSources.local.xml
172
+ .idea/**/sqlDataSources.xml
173
+ .idea/**/dynamic.xml
174
+ .idea/**/uiDesigner.xml
175
+
176
+ # Gradle:
177
+ .idea/**/gradle.xml
178
+ .idea/**/libraries
179
+
180
+ # CMake
181
+ cmake-build-debug/
182
+
183
+ # Mongo Explorer plugin:
184
+ .idea/**/mongoSettings.xml
185
+
186
+ ## File-based project format:
187
+
188
+ ## Plugin-specific files:
189
+
190
+ # IntelliJ
191
+
192
+ # mpeltonen/sbt-idea plugin
193
+
194
+ # JIRA plugin
195
+
196
+ # Cursive Clojure plugin
197
+ .idea/replstate.xml
198
+
199
+ # Ruby plugin and RubyMine
200
+ /.rakeTasks
201
+
202
+ ### Intellij Patch ###
203
+ # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
204
+
205
+ # *.iml
206
+ # modules.xml
207
+ # .idea/misc.xml
208
+ # *.ipr
209
+
210
+ # Sonarlint plugin
211
+ .idea/sonarlint
212
+
213
+ ### Java ###
214
+ # Compiled class file
215
+
216
+ # Log file
217
+
218
+ # BlueJ files
219
+ *.ctxt
220
+
221
+ # Mobile Tools for Java (J2ME)
222
+
223
+ # Package Files #
224
+ *.jar
225
+ *.zip
226
+ *.tar.gz
227
+ *.rar
228
+
229
+ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
230
+
231
+ ### Maven ###
232
+ target/
233
+ pom.xml.tag
234
+ pom.xml.releaseBackup
235
+ pom.xml.versionsBackup
236
+ pom.xml.next
237
+ release.properties
238
+ dependency-reduced-pom.xml
239
+ buildNumber.properties
240
+ .mvn/timing.properties
241
+
242
+ # Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
243
+ !/.mvn/wrapper/maven-wrapper.jar
244
+
245
+ ### Gradle ###
246
+ **/build/
247
+
248
+ # Ignore Gradle GUI config
249
+ gradle-app.setting
250
+
251
+ # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
252
+ !gradle-wrapper.jar
253
+
254
+ # Cache of project
255
+ .gradletasknamecache
256
+
257
+ # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
258
+ # gradle/wrapper/gradle-wrapper.properties
259
+
260
+
261
+ # End of https://www.gitignore.io/api/java,maven,gradle,android,intellij,androidstudio
@@ -8,7 +8,7 @@ apply from: "../scripts/autolinking.gradle"
8
8
  ensureDependeciesWereEvaluated(project)
9
9
 
10
10
  group = 'host.exp.exponent'
11
- version = '43.0.3'
11
+ version = '44.0.0-alpha.0'
12
12
 
13
13
  buildscript {
14
14
  // Simple helper that allows the root project to override versions declared by this library.
@@ -62,7 +62,7 @@ android {
62
62
  minSdkVersion safeExtGet("minSdkVersion", 21)
63
63
  targetSdkVersion safeExtGet("targetSdkVersion", 30)
64
64
  versionCode 1
65
- versionName "43.0.3"
65
+ versionName "44.0.0-alpha.0"
66
66
  consumerProguardFiles("proguard-rules.pro")
67
67
  }
68
68
  lintOptions {
@@ -1,6 +1,7 @@
1
1
  # For ReactNativeDelegateWrapper
2
2
  -keepclassmembers public class com.facebook.react.ReactActivityDelegate {
3
3
  protected *;
4
+ private ReactDelegate mReactDelegate;
4
5
  }
5
6
 
6
7
  # For ReactNativeHostWrapper
@@ -2,21 +2,26 @@ package expo.modules
2
2
 
3
3
  import android.app.Application
4
4
  import android.content.res.Configuration
5
+ import androidx.annotation.UiThread
6
+ import expo.modules.core.interfaces.ApplicationLifecycleListener
5
7
 
6
- class ApplicationLifecycleDispatcher private constructor() {
7
- companion object {
8
- @JvmStatic
9
- fun onApplicationCreate(application: Application) {
10
- ExpoModulesPackage.packageList
11
- .flatMap { it.createApplicationLifecycleListeners(application) }
12
- .forEach { it.onCreate(application) }
13
- }
8
+ object ApplicationLifecycleDispatcher {
9
+ private var listeners: List<ApplicationLifecycleListener>? = null
14
10
 
15
- @JvmStatic
16
- fun onConfigurationChanged(application: Application, newConfig: Configuration) {
17
- ExpoModulesPackage.packageList
18
- .flatMap { it.createApplicationLifecycleListeners(application) }
19
- .forEach { it.onConfigurationChanged(newConfig) }
20
- }
11
+ @UiThread
12
+ private fun getCachedListeners(application: Application): List<ApplicationLifecycleListener> {
13
+ return listeners ?: ExpoModulesPackage.packageList
14
+ .flatMap { it.createApplicationLifecycleListeners(application) }
15
+ .also { listeners = it }
16
+ }
17
+
18
+ @JvmStatic
19
+ fun onApplicationCreate(application: Application) {
20
+ getCachedListeners(application).forEach { it.onCreate(application) }
21
+ }
22
+
23
+ @JvmStatic
24
+ fun onConfigurationChanged(application: Application, newConfig: Configuration) {
25
+ getCachedListeners(application).forEach { it.onConfigurationChanged(newConfig) }
21
26
  }
22
27
  }
@@ -8,6 +8,7 @@ import com.facebook.react.bridge.ReactApplicationContext
8
8
  import com.facebook.react.uimanager.ViewManager
9
9
 
10
10
  import expo.modules.adapters.react.ModuleRegistryAdapter
11
+ import expo.modules.core.ModulePriorities
11
12
  import expo.modules.core.interfaces.Package
12
13
 
13
14
  import java.lang.Exception
@@ -21,9 +22,10 @@ class ExpoModulesPackage : ReactPackage {
21
22
  try {
22
23
  val expoModules = Class.forName("expo.modules.ExpoModulesPackageList")
23
24
  val getPackageList = expoModules.getMethod("getPackageList")
24
- getPackageList.invoke(null) as List<Package>
25
+ (getPackageList.invoke(null) as List<Package>)
26
+ .sortedByDescending { ModulePriorities.get(it::class.qualifiedName) }
25
27
  } catch (e: Exception) {
26
- Log.e("ExpoModulesPackage", "Couldn't get expo modules list.", e)
28
+ Log.e("ExpoModulesPackage", "Couldn't get expo package list.", e)
27
29
  emptyList()
28
30
  }
29
31
  }
@@ -8,6 +8,7 @@ import android.view.KeyEvent
8
8
  import androidx.collection.ArrayMap
9
9
  import com.facebook.react.ReactActivity
10
10
  import com.facebook.react.ReactActivityDelegate
11
+ import com.facebook.react.ReactDelegate
11
12
  import com.facebook.react.ReactInstanceManager
12
13
  import com.facebook.react.ReactNativeHost
13
14
  import com.facebook.react.ReactRootView
@@ -20,6 +21,8 @@ class ReactActivityDelegateWrapper(
20
21
  ) : ReactActivityDelegate(activity, null) {
21
22
  private val reactActivityLifecycleListeners = ExpoModulesPackage.packageList
22
23
  .flatMap { it.createReactActivityLifecycleListeners(activity) }
24
+ private val reactActivityHandlers = ExpoModulesPackage.packageList
25
+ .flatMap { it.createReactActivityHandlers(activity) }
23
26
  private val methodMap: ArrayMap<String, Method> = ArrayMap()
24
27
 
25
28
  //region ReactActivityDelegate
@@ -29,7 +32,9 @@ class ReactActivityDelegateWrapper(
29
32
  }
30
33
 
31
34
  override fun createRootView(): ReactRootView {
32
- return invokeDelegateMethod("createRootView")
35
+ return reactActivityHandlers.asSequence()
36
+ .map { it.createReactRootView(activity) }
37
+ .firstOrNull() ?: invokeDelegateMethod("createRootView")
33
38
  }
34
39
 
35
40
  override fun getReactNativeHost(): ReactNativeHost {
@@ -49,7 +54,24 @@ class ReactActivityDelegateWrapper(
49
54
  }
50
55
 
51
56
  override fun onCreate(savedInstanceState: Bundle?) {
52
- invokeDelegateMethod<Unit, Bundle?>("onCreate", arrayOf(Bundle::class.java), arrayOf(savedInstanceState))
57
+ // Since we just wrap `ReactActivityDelegate` but not inherit it, in its `onCreate`,
58
+ // the calls to `createRootView()` or `getMainComponentName()` have no chances to be our wrapped methods.
59
+ // Instead we intercept `ReactActivityDelegate.onCreate` and replace the `mReactDelegate` with our version.
60
+ // That's not ideal but works.
61
+ val reactDelegate = object : ReactDelegate(
62
+ plainActivity, reactNativeHost, mainComponentName, launchOptions
63
+ ) {
64
+ override fun createRootView(): ReactRootView {
65
+ return this@ReactActivityDelegateWrapper.createRootView()
66
+ }
67
+ }
68
+ val mReactDelegate = ReactActivityDelegate::class.java.getDeclaredField("mReactDelegate")
69
+ mReactDelegate.isAccessible = true
70
+ mReactDelegate.set(delegate, reactDelegate)
71
+ if (mainComponentName != null) {
72
+ loadApp(mainComponentName)
73
+ }
74
+
53
75
  reactActivityLifecycleListeners.forEach { listener ->
54
76
  listener.onCreate(activity, savedInstanceState)
55
77
  }
@@ -124,6 +146,7 @@ class ReactActivityDelegateWrapper(
124
146
 
125
147
  //region Internals
126
148
 
149
+ @Suppress("UNCHECKED_CAST")
127
150
  private fun <T> invokeDelegateMethod(name: String): T {
128
151
  var method = methodMap[name]
129
152
  if (method == null) {
@@ -134,6 +157,7 @@ class ReactActivityDelegateWrapper(
134
157
  return method!!.invoke(delegate) as T
135
158
  }
136
159
 
160
+ @Suppress("UNCHECKED_CAST")
137
161
  private fun <T, A> invokeDelegateMethod(
138
162
  name: String,
139
163
  argTypes: Array<Class<*>>,
@@ -12,7 +12,6 @@ import com.facebook.react.bridge.JavaScriptContextHolder
12
12
  import com.facebook.react.bridge.JavaScriptExecutorFactory
13
13
  import com.facebook.react.bridge.ReactApplicationContext
14
14
  import com.facebook.react.devsupport.RedBoxHandler
15
- import com.facebook.react.uimanager.UIImplementationProvider
16
15
  import java.lang.reflect.Method
17
16
 
18
17
  class ReactNativeHostWrapper(
@@ -24,11 +23,20 @@ class ReactNativeHostWrapper(
24
23
  private val methodMap: ArrayMap<String, Method> = ArrayMap()
25
24
 
26
25
  override fun createReactInstanceManager(): ReactInstanceManager {
27
- // map() without asSequence() gives a chance for handlers
28
- // to get noticed before createReactInstanceManager()
29
- return reactNativeHostHandlers
30
- .map { it.createReactInstanceManager(useDeveloperSupport) }
26
+ val developerSupport = useDeveloperSupport
27
+ reactNativeHostHandlers.forEach { handler ->
28
+ handler.onWillCreateReactInstanceManager(developerSupport)
29
+ }
30
+
31
+ val result = reactNativeHostHandlers.asSequence()
32
+ .map { it.createReactInstanceManager(developerSupport) }
31
33
  .firstOrNull() ?: super.createReactInstanceManager()
34
+
35
+ reactNativeHostHandlers.forEach { handler ->
36
+ handler.onDidCreateReactInstanceManager(developerSupport)
37
+ }
38
+
39
+ return result
32
40
  }
33
41
 
34
42
  override fun getRedBoxHandler(): RedBoxHandler? {
@@ -39,7 +47,8 @@ class ReactNativeHostWrapper(
39
47
  return invokeDelegateMethod("getJavaScriptExecutorFactory")
40
48
  }
41
49
 
42
- override fun getUIImplementationProvider(): UIImplementationProvider {
50
+ @Suppress("DEPRECATION")
51
+ override fun getUIImplementationProvider(): com.facebook.react.uimanager.UIImplementationProvider {
43
52
  return invokeDelegateMethod("getUIImplementationProvider")
44
53
  }
45
54
 
@@ -90,6 +99,7 @@ class ReactNativeHostWrapper(
90
99
  }
91
100
  }
92
101
 
102
+ @Suppress("UNCHECKED_CAST")
93
103
  private fun <T> invokeDelegateMethod(name: String): T {
94
104
  var method = methodMap[name]
95
105
  if (method == null) {
package/build/Expo.fx.js CHANGED
@@ -19,21 +19,6 @@ const isManagedEnvironment = Constants.executionEnvironment === ExecutionEnviron
19
19
  if (StyleSheet.setStyleAttributePreprocessor) {
20
20
  StyleSheet.setStyleAttributePreprocessor('fontFamily', Font.processFontFamily);
21
21
  }
22
- // Add warning about removed navigator.geolocation polyfill.
23
- if (Platform.OS !== 'web' && !window.navigator?.geolocation) {
24
- const logLocationPolyfillWarning = (method) => {
25
- return () => {
26
- console.warn(`window.navigator.geolocation.${method} is not available. Import and execute installWebGeolocationPolyfill() from expo-location to add it, or use the expo-location APIs instead.`);
27
- };
28
- };
29
- // @ts-ignore
30
- window.navigator.geolocation = {
31
- getCurrentPosition: logLocationPolyfillWarning('getCurrentPosition'),
32
- watchPosition: logLocationPolyfillWarning('watchPostion'),
33
- clearWatch: () => { },
34
- stopObserving: () => { },
35
- };
36
- }
37
22
  // Asserts if bare workflow isn't setup correctly.
38
23
  if (NativeModulesProxy.ExpoUpdates?.isMissingRuntimeVersion) {
39
24
  const message = 'expo-updates is installed but there is no runtime or SDK version configured. ' +
@@ -1 +1 @@
1
- {"version":3,"file":"Expo.fx.js","sourceRoot":"","sources":["../src/Expo.fx.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,wEAAwE;AACxE,OAAO,0BAA0B,CAAC;AAClC,OAAO,oCAAoC,CAAC;AAC5C,mFAAmF;AACnF,OAAO,YAAY,CAAC;AAEpB,OAAO,SAAS,EAAE,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,sGAAsG;AACtG,gGAAgG;AAChG,6EAA6E;AAC7E,MAAM,oBAAoB,GACxB,SAAS,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,UAAU;IAClE,SAAS,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,WAAW,CAAC;AAEtE,4FAA4F;AAC5F,IAAI,UAAU,CAAC,6BAA6B,EAAE;IAC5C,UAAU,CAAC,6BAA6B,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;CAChF;AAED,4DAA4D;AAC5D,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE;IAC3D,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,EAAE;QACpD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,IAAI,CACV,gCAAgC,MAAM,4IAA4I,CACnL,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,aAAa;IACb,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG;QAC7B,kBAAkB,EAAE,0BAA0B,CAAC,oBAAoB,CAAC;QACpE,aAAa,EAAE,0BAA0B,CAAC,cAAc,CAAC;QACzD,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;KACxB,CAAC;CACH;AAED,kDAAkD;AAClD,IAAI,kBAAkB,CAAC,WAAW,EAAE,uBAAuB,EAAE;IAC3D,MAAM,OAAO,GACX,+EAA+E;QAC/E,0DAA0D;QAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACtE,yCAAyC,CAAC;IAC5C,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B;CACF;AAED,0EAA0E;AAC1E,IAAI,OAAO,EAAE;IACX,2EAA2E;IAC3E,IAAI,oBAAoB,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE;QACjD,qDAAqD;QACrD,aAAa;QACb,WAAW,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QAE/D,aAAa;QACb,MAAM,mCAAmC,GAAG,WAAW,CAAC,2BAA2B,CAAC;QAEpF,aAAa;QACb,WAAW,CAAC,2BAA2B,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrD,SAAS,wBAAwB,CAAC,KAAU;gBAC1C,MAAM,iBAAiB,GAAG,QAAQ,EAAE,CAAC;gBAErC,OAAO,CACL,oBAAC,eAAe;oBACd,oBAAC,iBAAiB,OAAK,KAAK,GAAI,CAChB,CACnB,CAAC;YACJ,CAAC;YAED,mCAAmC,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC;QACtE,CAAC,CAAC;KACH;CACF","sourcesContent":["import './environment/validate.fx';\n// load remote logging for compatibility with custom development clients\nimport './environment/logging.fx';\nimport './environment/react-native-logs.fx';\n// load expo-asset immediately to set a custom `source` transformer in React Native\nimport 'expo-asset';\n\nimport Constants, { ExecutionEnvironment } from 'expo-constants';\nimport * as Font from 'expo-font';\nimport { NativeModulesProxy, Platform } from 'expo-modules-core';\nimport React from 'react';\nimport { AppRegistry, StyleSheet } from 'react-native';\n\nimport DevAppContainer from './environment/DevAppContainer';\n\n// Represents an app running in the store client or an app built with the legacy `expo build` command.\n// `false` when running in bare workflow, custom dev clients, or `eas build`s (managed or bare).\n// This should be used to ensure code that _should_ exist is treated as such.\nconst isManagedEnvironment =\n Constants.executionEnvironment === ExecutionEnvironment.Standalone ||\n Constants.executionEnvironment === ExecutionEnvironment.StoreClient;\n\n// If expo-font is installed and the style preprocessor is available, use it to parse fonts.\nif (StyleSheet.setStyleAttributePreprocessor) {\n StyleSheet.setStyleAttributePreprocessor('fontFamily', Font.processFontFamily);\n}\n\n// Add warning about removed navigator.geolocation polyfill.\nif (Platform.OS !== 'web' && !window.navigator?.geolocation) {\n const logLocationPolyfillWarning = (method: string) => {\n return () => {\n console.warn(\n `window.navigator.geolocation.${method} is not available. Import and execute installWebGeolocationPolyfill() from expo-location to add it, or use the expo-location APIs instead.`\n );\n };\n };\n\n // @ts-ignore\n window.navigator.geolocation = {\n getCurrentPosition: logLocationPolyfillWarning('getCurrentPosition'),\n watchPosition: logLocationPolyfillWarning('watchPostion'),\n clearWatch: () => {},\n stopObserving: () => {},\n };\n}\n\n// Asserts if bare workflow isn't setup correctly.\nif (NativeModulesProxy.ExpoUpdates?.isMissingRuntimeVersion) {\n const message =\n 'expo-updates is installed but there is no runtime or SDK version configured. ' +\n \"You'll need to configure one of these two properties in \" +\n Platform.select({ ios: 'Expo.plist', android: 'AndroidManifest.xml' }) +\n ' before OTA updates will work properly.';\n if (__DEV__) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n}\n\n// Having two if statements will enable terser to remove the entire block.\nif (__DEV__) {\n // Only enable the fast refresh indicator for managed iOS apps in dev mode.\n if (isManagedEnvironment && Platform.OS === 'ios') {\n // add the dev app container wrapper component on ios\n // @ts-ignore\n AppRegistry.setWrapperComponentProvider(() => DevAppContainer);\n\n // @ts-ignore\n const originalSetWrapperComponentProvider = AppRegistry.setWrapperComponentProvider;\n\n // @ts-ignore\n AppRegistry.setWrapperComponentProvider = (provider) => {\n function PatchedProviderComponent(props: any) {\n const ProviderComponent = provider();\n\n return (\n <DevAppContainer>\n <ProviderComponent {...props} />\n </DevAppContainer>\n );\n }\n\n originalSetWrapperComponentProvider(() => PatchedProviderComponent);\n };\n }\n}\n"]}
1
+ {"version":3,"file":"Expo.fx.js","sourceRoot":"","sources":["../src/Expo.fx.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,wEAAwE;AACxE,OAAO,0BAA0B,CAAC;AAClC,OAAO,oCAAoC,CAAC;AAC5C,mFAAmF;AACnF,OAAO,YAAY,CAAC;AAEpB,OAAO,SAAS,EAAE,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAE5D,sGAAsG;AACtG,gGAAgG;AAChG,6EAA6E;AAC7E,MAAM,oBAAoB,GACxB,SAAS,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,UAAU;IAClE,SAAS,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,WAAW,CAAC;AAEtE,4FAA4F;AAC5F,IAAI,UAAU,CAAC,6BAA6B,EAAE;IAC5C,UAAU,CAAC,6BAA6B,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;CAChF;AAED,kDAAkD;AAClD,IAAI,kBAAkB,CAAC,WAAW,EAAE,uBAAuB,EAAE;IAC3D,MAAM,OAAO,GACX,+EAA+E;QAC/E,0DAA0D;QAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACtE,yCAAyC,CAAC;IAC5C,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B;CACF;AAED,0EAA0E;AAC1E,IAAI,OAAO,EAAE;IACX,2EAA2E;IAC3E,IAAI,oBAAoB,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE;QACjD,qDAAqD;QACrD,aAAa;QACb,WAAW,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QAE/D,aAAa;QACb,MAAM,mCAAmC,GAAG,WAAW,CAAC,2BAA2B,CAAC;QAEpF,aAAa;QACb,WAAW,CAAC,2BAA2B,GAAG,CAAC,QAAQ,EAAE,EAAE;YACrD,SAAS,wBAAwB,CAAC,KAAU;gBAC1C,MAAM,iBAAiB,GAAG,QAAQ,EAAE,CAAC;gBAErC,OAAO,CACL,oBAAC,eAAe;oBACd,oBAAC,iBAAiB,OAAK,KAAK,GAAI,CAChB,CACnB,CAAC;YACJ,CAAC;YAED,mCAAmC,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC;QACtE,CAAC,CAAC;KACH;CACF","sourcesContent":["import './environment/validate.fx';\n// load remote logging for compatibility with custom development clients\nimport './environment/logging.fx';\nimport './environment/react-native-logs.fx';\n// load expo-asset immediately to set a custom `source` transformer in React Native\nimport 'expo-asset';\n\nimport Constants, { ExecutionEnvironment } from 'expo-constants';\nimport * as Font from 'expo-font';\nimport { NativeModulesProxy, Platform } from 'expo-modules-core';\nimport React from 'react';\nimport { AppRegistry, StyleSheet } from 'react-native';\n\nimport DevAppContainer from './environment/DevAppContainer';\n\n// Represents an app running in the store client or an app built with the legacy `expo build` command.\n// `false` when running in bare workflow, custom dev clients, or `eas build`s (managed or bare).\n// This should be used to ensure code that _should_ exist is treated as such.\nconst isManagedEnvironment =\n Constants.executionEnvironment === ExecutionEnvironment.Standalone ||\n Constants.executionEnvironment === ExecutionEnvironment.StoreClient;\n\n// If expo-font is installed and the style preprocessor is available, use it to parse fonts.\nif (StyleSheet.setStyleAttributePreprocessor) {\n StyleSheet.setStyleAttributePreprocessor('fontFamily', Font.processFontFamily);\n}\n\n// Asserts if bare workflow isn't setup correctly.\nif (NativeModulesProxy.ExpoUpdates?.isMissingRuntimeVersion) {\n const message =\n 'expo-updates is installed but there is no runtime or SDK version configured. ' +\n \"You'll need to configure one of these two properties in \" +\n Platform.select({ ios: 'Expo.plist', android: 'AndroidManifest.xml' }) +\n ' before OTA updates will work properly.';\n if (__DEV__) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n}\n\n// Having two if statements will enable terser to remove the entire block.\nif (__DEV__) {\n // Only enable the fast refresh indicator for managed iOS apps in dev mode.\n if (isManagedEnvironment && Platform.OS === 'ios') {\n // add the dev app container wrapper component on ios\n // @ts-ignore\n AppRegistry.setWrapperComponentProvider(() => DevAppContainer);\n\n // @ts-ignore\n const originalSetWrapperComponentProvider = AppRegistry.setWrapperComponentProvider;\n\n // @ts-ignore\n AppRegistry.setWrapperComponentProvider = (provider) => {\n function PatchedProviderComponent(props: any) {\n const ProviderComponent = provider();\n\n return (\n <DevAppContainer>\n <ProviderComponent {...props} />\n </DevAppContainer>\n );\n }\n\n originalSetWrapperComponentProvider(() => PatchedProviderComponent);\n };\n }\n}\n"]}
@@ -13,14 +13,14 @@
13
13
  "@unimodules/react-native-adapter": "~6.5.0",
14
14
  "expo-ads-admob": "~11.0.3",
15
15
  "expo-ads-facebook": "~11.0.3",
16
- "expo-analytics-amplitude": "~11.0.3",
16
+ "expo-analytics-amplitude": "~11.0.4",
17
17
  "expo-analytics-segment": "~11.0.3",
18
18
  "expo-app-auth": "~11.0.3",
19
19
  "expo-app-loader-provider": "~8.0.0",
20
20
  "expo-app-loading": "~1.2.1",
21
21
  "expo-apple-authentication": "~4.0.3",
22
- "expo-application": "~4.0.0",
23
- "expo-asset": "~8.4.3",
22
+ "expo-application": "~4.0.1",
23
+ "expo-asset": "~8.4.4",
24
24
  "expo-auth-session": "~3.4.2",
25
25
  "expo-av": "~10.1.3",
26
26
  "expo-background-fetch": "~10.0.3",
@@ -34,20 +34,20 @@
34
34
  "expo-cellular": "~4.0.0",
35
35
  "expo-checkbox": "~2.0.0",
36
36
  "expo-clipboard": "~2.0.3",
37
- "expo-constants": "~12.1.3",
37
+ "expo-constants": "~12.2.0",
38
38
  "expo-contacts": "~10.0.3",
39
39
  "expo-crypto": "~10.0.3",
40
- "expo-dev-client": "~0.6.3",
41
40
  "expo-device": "~4.0.3",
42
41
  "expo-document-picker": "~10.0.3",
42
+ "expo-dev-client": "~0.6.3",
43
43
  "expo-error-recovery": "~3.0.3",
44
44
  "expo-face-detector": "~11.0.3",
45
45
  "expo-facebook": "~12.0.3",
46
- "expo-file-system": "~13.0.3",
46
+ "expo-file-system": "~13.1.0",
47
47
  "expo-firebase-analytics": "~5.0.3",
48
48
  "expo-firebase-core": "~4.0.3",
49
49
  "expo-firebase-recaptcha": "~2.0.2",
50
- "expo-font": "~10.0.3",
50
+ "expo-font": "~10.0.4",
51
51
  "expo-gl": "~11.0.3",
52
52
  "expo-gl-cpp": "~11.0.1",
53
53
  "expo-google-app-auth": "~9.0.0",
@@ -58,7 +58,7 @@
58
58
  "expo-image-picker": "~11.0.3",
59
59
  "expo-in-app-purchases": "~12.0.0",
60
60
  "expo-intent-launcher": "~10.0.3",
61
- "expo-keep-awake": "~10.0.0",
61
+ "expo-keep-awake": "~10.0.1",
62
62
  "expo-linear-gradient": "~10.0.3",
63
63
  "expo-linking": "~2.4.2",
64
64
  "expo-local-authentication": "~12.0.1",
@@ -67,12 +67,11 @@
67
67
  "expo-mail-composer": "~11.0.3",
68
68
  "expo-media-library": "~13.0.3",
69
69
  "expo-module-template": "~10.0.0",
70
- "expo-modules-core": "~0.4.8",
71
- "expo-navigation-bar": "~1.0.0",
70
+ "expo-modules-core": "~0.5.0",
72
71
  "expo-network": "~4.0.3",
73
72
  "expo-notifications": "~0.13.3",
74
73
  "expo-permissions": "~13.0.3",
75
- "expo-print": "~11.0.4",
74
+ "expo-print": "~11.0.3",
76
75
  "expo-random": "~12.0.1",
77
76
  "expo-screen-orientation": "~4.0.3",
78
77
  "expo-secure-store": "~11.0.3",
@@ -80,14 +79,13 @@
80
79
  "expo-sharing": "~10.0.3",
81
80
  "expo-sms": "~10.0.3",
82
81
  "expo-speech": "~10.0.3",
83
- "expo-splash-screen": "~0.13.5",
82
+ "expo-splash-screen": "~0.13.4",
84
83
  "expo-sqlite": "~10.0.3",
85
84
  "expo-status-bar": "~1.1.0",
86
85
  "expo-store-review": "~5.0.3",
87
- "expo-system-ui": "~1.0.0",
88
86
  "expo-task-manager": "~10.0.3",
89
87
  "expo-tracking-transparency": "~2.0.3",
90
- "expo-updates": "~0.10.15",
88
+ "expo-updates": "~0.10.9",
91
89
  "expo-video-thumbnails": "~6.0.3",
92
90
  "expo-web-browser": "~10.0.3",
93
91
  "lottie-react-native": "4.0.3",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo",
3
- "version": "43.0.3",
3
+ "version": "44.0.0-alpha.0",
4
4
  "description": "The Expo SDK",
5
5
  "main": "build/Expo.js",
6
6
  "module": "build/Expo.js",
@@ -55,39 +55,38 @@
55
55
  "homepage": "https://github.com/expo/expo/tree/master/packages/expo",
56
56
  "dependencies": {
57
57
  "@babel/runtime": "^7.14.0",
58
- "@expo/metro-config": "~0.1.84",
58
+ "@expo/metro-config": "~0.2.6",
59
59
  "@expo/vector-icons": "^12.0.4",
60
60
  "babel-preset-expo": "~8.5.1",
61
61
  "cross-spawn": "^6.0.5",
62
- "expo-application": "~4.0.0",
63
- "expo-asset": "~8.4.3",
64
- "expo-constants": "~12.1.3",
65
- "expo-file-system": "~13.0.3",
66
- "expo-font": "~10.0.3",
67
- "expo-keep-awake": "~10.0.0",
68
- "expo-modules-autolinking": "~0.3.4",
69
- "expo-modules-core": "~0.4.8",
62
+ "expo-application": "~4.0.1",
63
+ "expo-asset": "~8.4.4",
64
+ "expo-constants": "~12.2.0",
65
+ "expo-file-system": "~13.1.0",
66
+ "expo-font": "~10.0.4",
67
+ "expo-keep-awake": "~10.0.1",
68
+ "expo-modules-autolinking": "0.4.0",
69
+ "expo-modules-core": "0.5.0",
70
70
  "fbemitter": "^2.1.1",
71
- "invariant": "^2.2.2",
71
+ "invariant": "^2.2.4",
72
72
  "md5-file": "^3.2.3",
73
- "pretty-format": "^26.4.0",
73
+ "pretty-format": "^26.5.2",
74
74
  "uuid": "^3.4.0"
75
75
  },
76
76
  "optionalDependencies": {
77
- "expo-error-recovery": "~3.0.3"
77
+ "expo-error-recovery": "~3.0.1"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@types/fbemitter": "^2.0.32",
81
- "@types/invariant": "^2.2.29",
82
- "@types/react": "^17.0.18",
81
+ "@types/invariant": "^2.2.33",
82
+ "@types/react": "~17.0.21",
83
83
  "@types/react-native": "~0.64.12",
84
84
  "@types/react-test-renderer": "^17.0.1",
85
85
  "@types/uuid": "^3.4.7",
86
- "expo-location": "^13.0.4",
87
86
  "expo-module-scripts": "^2.0.0",
88
87
  "react": "17.0.1",
89
88
  "react-dom": "17.0.1",
90
89
  "react-native": "0.64.3"
91
90
  },
92
- "gitHead": "a28a29bedc3cd5bb18e419e64c4856924a903c1b"
91
+ "gitHead": "9faa58818454ba59dbff95077b9025a1c1cbd9fd"
93
92
  }