expo 55.0.0-canary-20260119-70f7c28 → 55.0.0-canary-20260119-17896bf
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.
- package/Expo.podspec +0 -1
- package/android/build.gradle +5 -5
- package/android/src/main/java/expo/modules/ExpoReactHostFactory.kt +32 -67
- package/android/src/main/java/expo/modules/ReactActivityDelegateWrapper.kt +9 -6
- package/android/src/main/java/expo/modules/ReactNativeHostWrapper.kt +51 -0
- package/android/src/main/java/expo/modules/ReactNativeHostWrapperBase.kt +107 -0
- package/android/src/main/java/expo/modules/fetch/ExpoFetchModule.kt +3 -4
- package/android/src/main/java/expo/modules/fetch/NativeResponse.kt +3 -3
- package/android/src/main/java/expo/modules/fetch/ResponseSink.kt +3 -7
- package/android/src/test/java/expo/modules/ReactActivityDelegateWrapperDelayLoadTest.kt +3 -2
- package/build/Expo.d.ts +1 -1
- package/build/Expo.d.ts.map +1 -1
- package/build/async-require/getDevServer.d.ts.map +1 -1
- package/build/async-require/hmr.d.ts +8 -8
- package/build/async-require/hmr.d.ts.map +1 -1
- package/build/async-require/hmr.native.d.ts +3 -0
- package/build/async-require/hmr.native.d.ts.map +1 -0
- package/build/dom/dom-entry.d.ts.map +1 -1
- package/build/dom/dom.types.d.ts +0 -5
- package/build/dom/dom.types.d.ts.map +1 -1
- package/build/dom/internal.d.ts +0 -1
- package/build/dom/internal.d.ts.map +1 -1
- package/build/dom/webview-wrapper.d.ts +2 -2
- package/build/dom/webview-wrapper.d.ts.map +1 -1
- package/build/hooks/useEvent.d.ts +2 -2
- package/bundledNativeModules.json +101 -99
- package/ios/AppDelegates/AppDelegatesLoaderDelegate.swift +0 -2
- package/ios/AppDelegates/EXAppDelegateWrapper.h +30 -0
- package/ios/AppDelegates/EXAppDelegateWrapper.mm +112 -0
- package/ios/AppDelegates/EXReactRootViewFactory.h +1 -8
- package/ios/AppDelegates/EXReactRootViewFactory.mm +0 -26
- package/ios/AppDelegates/ExpoAppDelegate.swift +52 -13
- package/ios/AppDelegates/ExpoReactNativeFactory.swift +1 -22
- package/ios/Expo.h +1 -2
- package/ios/Fetch/ExpoFetchModule.swift +2 -2
- package/package.json +23 -29
- package/src/Expo.fx.tsx +25 -1
- package/src/Expo.fx.web.tsx +2 -2
- package/src/Expo.ts +0 -3
- package/src/__tests__/__fbBatchedBridgeConfig-test.ts +3 -7
- package/src/async-require/asyncRequireModule.ts +2 -2
- package/src/async-require/getDevServer.ts +9 -3
- package/src/async-require/hmr.native.ts +3 -0
- package/src/async-require/hmr.ts +103 -118
- package/src/async-require/index.ts +1 -1
- package/src/async-require/setupFastRefresh.ts +2 -3
- package/src/dom/dom-entry.tsx +8 -15
- package/src/dom/dom.types.ts +0 -6
- package/src/dom/internal.ts +0 -2
- package/src/dom/webview-wrapper.tsx +6 -14
- package/src/hooks/useEvent.ts +2 -2
- package/template.tgz +0 -0
- package/types/react-native-web.d.ts +1 -1
- package/build/async-require/buildErrors.d.ts +0 -5
- package/build/async-require/buildErrors.d.ts.map +0 -1
- package/build/async-require/getFullBundlerUrl.d.ts +0 -2
- package/build/async-require/getFullBundlerUrl.d.ts.map +0 -1
- package/build/async-require/hmrUtils.d.ts +0 -13
- package/build/async-require/hmrUtils.d.ts.map +0 -1
- package/build/async-require/hmrUtils.native.d.ts +0 -13
- package/build/async-require/hmrUtils.native.d.ts.map +0 -1
- package/build/dom/dom-internal.types.d.ts +0 -11
- package/build/dom/dom-internal.types.d.ts.map +0 -1
- package/ios/AppDelegates/ExpoReactNativeFactory.h +0 -12
- package/ios/AppDelegates/ExpoReactNativeFactory.mm +0 -45
- package/local-build-cache-provider.d.ts +0 -1
- package/local-build-cache-provider.js +0 -1
- package/src/async-require/buildErrors.ts +0 -14
- package/src/async-require/getFullBundlerUrl.ts +0 -13
- package/src/async-require/hmrUtils.native.ts +0 -97
- package/src/async-require/hmrUtils.ts +0 -54
- package/src/dom/dom-internal.types.ts +0 -9
package/Expo.podspec
CHANGED
package/android/build.gradle
CHANGED
|
@@ -32,7 +32,7 @@ buildscript {
|
|
|
32
32
|
def reactNativeVersion = project.extensions.getByType(ExpoModuleExtension).reactNativeVersion
|
|
33
33
|
|
|
34
34
|
group = 'host.exp.exponent'
|
|
35
|
-
version = '55.0.0-canary-20260119-
|
|
35
|
+
version = '55.0.0-canary-20260119-17896bf'
|
|
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 "55.0.0-canary-20260119-
|
|
46
|
+
versionName "55.0.0-canary-20260119-17896bf"
|
|
47
47
|
consumerProguardFiles("proguard-rules.pro")
|
|
48
48
|
}
|
|
49
49
|
testOptions {
|
|
@@ -78,11 +78,11 @@ dependencies { dependencyHandler ->
|
|
|
78
78
|
implementation 'com.facebook.react:react-android'
|
|
79
79
|
|
|
80
80
|
testImplementation 'junit:junit:4.13.2'
|
|
81
|
+
testImplementation 'androidx.test:core:1.5.0'
|
|
82
|
+
testImplementation "com.google.truth:truth:1.1.2"
|
|
81
83
|
testImplementation 'io.mockk:mockk:1.13.5'
|
|
82
|
-
testImplementation 'androidx.test:core:1.7.0'
|
|
83
|
-
testImplementation "com.google.truth:truth:1.4.5"
|
|
84
84
|
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2'
|
|
85
|
-
testImplementation 'org.robolectric:robolectric:4.
|
|
85
|
+
testImplementation 'org.robolectric:robolectric:4.15.1'
|
|
86
86
|
|
|
87
87
|
if (useLegacyAutolinking) {
|
|
88
88
|
// Link expo modules as dependencies of the adapter. It uses `api` configuration so they all will be visible for the app as well.
|
|
@@ -5,12 +5,12 @@ package expo.modules
|
|
|
5
5
|
import android.content.Context
|
|
6
6
|
import com.facebook.react.ReactHost
|
|
7
7
|
import com.facebook.react.ReactInstanceEventListener
|
|
8
|
+
import com.facebook.react.ReactNativeHost
|
|
8
9
|
import com.facebook.react.ReactPackage
|
|
9
10
|
import com.facebook.react.ReactPackageTurboModuleManagerDelegate
|
|
10
11
|
import com.facebook.react.bridge.JSBundleLoader
|
|
11
12
|
import com.facebook.react.bridge.ReactContext
|
|
12
13
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
13
|
-
import com.facebook.react.common.build.ReactBuildConfig
|
|
14
14
|
import com.facebook.react.defaults.DefaultComponentsRegistry
|
|
15
15
|
import com.facebook.react.defaults.DefaultTurboModuleManagerDelegate
|
|
16
16
|
import com.facebook.react.fabric.ComponentFactory
|
|
@@ -19,7 +19,6 @@ import com.facebook.react.runtime.JSRuntimeFactory
|
|
|
19
19
|
import com.facebook.react.runtime.ReactHostDelegate
|
|
20
20
|
import com.facebook.react.runtime.ReactHostImpl
|
|
21
21
|
import com.facebook.react.runtime.hermes.HermesInstance
|
|
22
|
-
import expo.modules.core.interfaces.ReactNativeHostHandler
|
|
23
22
|
import java.lang.ref.WeakReference
|
|
24
23
|
|
|
25
24
|
object ExpoReactHostFactory {
|
|
@@ -28,35 +27,12 @@ object ExpoReactHostFactory {
|
|
|
28
27
|
@UnstableReactNativeAPI
|
|
29
28
|
private class ExpoReactHostDelegate(
|
|
30
29
|
private val weakContext: WeakReference<Context>,
|
|
31
|
-
private val
|
|
32
|
-
override val jsMainModulePath: String,
|
|
33
|
-
private val jsBundleAssetPath: String?,
|
|
34
|
-
private val jsBundleFilePath: String? = null,
|
|
35
|
-
private val useDevSupport: Boolean,
|
|
30
|
+
private val reactNativeHostWrapper: ReactNativeHostWrapper,
|
|
36
31
|
override val bindingsInstaller: BindingsInstaller? = null,
|
|
37
32
|
override val turboModuleManagerDelegateBuilder: ReactPackageTurboModuleManagerDelegate.Builder =
|
|
38
|
-
DefaultTurboModuleManagerDelegate.Builder()
|
|
39
|
-
private val hostHandlers: List<ReactNativeHostHandler>
|
|
33
|
+
DefaultTurboModuleManagerDelegate.Builder()
|
|
40
34
|
) : ReactHostDelegate {
|
|
41
35
|
|
|
42
|
-
val hostDelegateJsBundleFilePath: String?
|
|
43
|
-
get() =
|
|
44
|
-
hostHandlers.asSequence()
|
|
45
|
-
.mapNotNull { it.getJSBundleFile(useDevSupport) }
|
|
46
|
-
.firstOrNull() ?: jsBundleFilePath
|
|
47
|
-
|
|
48
|
-
val hostDelegateJSBundleAssetPath: String?
|
|
49
|
-
get() =
|
|
50
|
-
hostHandlers.asSequence()
|
|
51
|
-
.mapNotNull { it.getBundleAssetName(useDevSupport) }
|
|
52
|
-
.firstOrNull() ?: jsBundleAssetPath
|
|
53
|
-
|
|
54
|
-
val hostDelegateUseDeveloperSupport: Boolean
|
|
55
|
-
get() =
|
|
56
|
-
hostHandlers.asSequence()
|
|
57
|
-
.mapNotNull { it.useDeveloperSupport }
|
|
58
|
-
.firstOrNull() ?: useDevSupport
|
|
59
|
-
|
|
60
36
|
// Keeps this `_jsBundleLoader` backing property for DevLauncher to replace its internal value
|
|
61
37
|
private var _jsBundleLoader: JSBundleLoader? = null
|
|
62
38
|
override val jsBundleLoader: JSBundleLoader
|
|
@@ -65,85 +41,74 @@ object ExpoReactHostFactory {
|
|
|
65
41
|
if (backingJSBundleLoader != null) {
|
|
66
42
|
return backingJSBundleLoader
|
|
67
43
|
}
|
|
68
|
-
val context = weakContext.get()
|
|
69
|
-
|
|
70
|
-
hostDelegateJsBundleFilePath?.let { jsBundleFile ->
|
|
44
|
+
val context = weakContext.get() ?: throw IllegalStateException("Unable to get concrete Context")
|
|
45
|
+
reactNativeHostWrapper.jsBundleFile?.let { jsBundleFile ->
|
|
71
46
|
if (jsBundleFile.startsWith("assets://")) {
|
|
72
47
|
return JSBundleLoader.createAssetLoader(context, jsBundleFile, true)
|
|
73
48
|
}
|
|
74
49
|
return JSBundleLoader.createFileLoader(jsBundleFile)
|
|
75
50
|
}
|
|
76
|
-
|
|
77
|
-
return JSBundleLoader.createAssetLoader(context, "assets://$
|
|
51
|
+
val jsBundleAssetPath = reactNativeHostWrapper.bundleAssetName
|
|
52
|
+
return JSBundleLoader.createAssetLoader(context, "assets://$jsBundleAssetPath", true)
|
|
78
53
|
}
|
|
79
54
|
|
|
55
|
+
override val jsMainModulePath: String
|
|
56
|
+
get() = reactNativeHostWrapper.jsMainModuleName
|
|
57
|
+
|
|
80
58
|
override val jsRuntimeFactory: JSRuntimeFactory
|
|
81
59
|
get() = HermesInstance()
|
|
82
60
|
|
|
83
61
|
override val reactPackages: List<ReactPackage>
|
|
84
|
-
get() =
|
|
62
|
+
get() = reactNativeHostWrapper.packages
|
|
85
63
|
|
|
86
64
|
override fun handleInstanceException(error: Exception) {
|
|
87
|
-
|
|
65
|
+
val handlers = reactNativeHostWrapper.reactNativeHostHandlers
|
|
66
|
+
if (handlers.isEmpty()) {
|
|
88
67
|
throw error
|
|
89
68
|
}
|
|
90
|
-
|
|
91
|
-
|
|
69
|
+
val useDeveloperSupport = reactNativeHostWrapper.useDeveloperSupport
|
|
70
|
+
handlers.forEach { handler ->
|
|
71
|
+
handler.onReactInstanceException(useDeveloperSupport, error)
|
|
92
72
|
}
|
|
93
73
|
}
|
|
94
74
|
}
|
|
95
75
|
|
|
96
76
|
@OptIn(UnstableReactNativeAPI::class)
|
|
97
77
|
@JvmStatic
|
|
98
|
-
fun
|
|
78
|
+
fun createFromReactNativeHost(
|
|
99
79
|
context: Context,
|
|
100
|
-
|
|
101
|
-
jsMainModulePath: String = ".expo/.virtual-metro-entry",
|
|
102
|
-
jsBundleAssetPath: String = "index.android.bundle",
|
|
103
|
-
jsBundleFilePath: String? = null,
|
|
104
|
-
jsRuntimeFactory: JSRuntimeFactory? = null,
|
|
105
|
-
useDevSupport: Boolean = ReactBuildConfig.DEBUG,
|
|
106
|
-
bindingsInstaller: BindingsInstaller? = null
|
|
80
|
+
reactNativeHost: ReactNativeHost
|
|
107
81
|
): ReactHost {
|
|
82
|
+
require(reactNativeHost is ReactNativeHostWrapper) {
|
|
83
|
+
"You can call createFromReactNativeHost only with instances of ReactNativeHostWrapper"
|
|
84
|
+
}
|
|
108
85
|
if (reactHost == null) {
|
|
109
|
-
val
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
val reactHostDelegate = ExpoReactHostDelegate(
|
|
113
|
-
WeakReference(context),
|
|
114
|
-
packageList,
|
|
115
|
-
jsMainModulePath,
|
|
116
|
-
jsBundleAssetPath,
|
|
117
|
-
jsBundleFilePath,
|
|
118
|
-
useDevSupport,
|
|
119
|
-
bindingsInstaller,
|
|
120
|
-
hostHandlers = hostHandlers
|
|
121
|
-
)
|
|
86
|
+
val useDeveloperSupport = reactNativeHost.useDeveloperSupport
|
|
87
|
+
val reactHostDelegate = ExpoReactHostDelegate(WeakReference(context), reactNativeHost)
|
|
122
88
|
val componentFactory = ComponentFactory()
|
|
123
89
|
DefaultComponentsRegistry.register(componentFactory)
|
|
124
90
|
|
|
125
|
-
|
|
126
|
-
handler.onWillCreateReactInstance(
|
|
91
|
+
reactNativeHost.reactNativeHostHandlers.forEach { handler ->
|
|
92
|
+
handler.onWillCreateReactInstance(useDeveloperSupport)
|
|
127
93
|
}
|
|
128
94
|
|
|
129
95
|
val reactHostImpl =
|
|
130
96
|
ReactHostImpl(
|
|
131
97
|
context,
|
|
132
|
-
|
|
133
|
-
componentFactory
|
|
134
|
-
|
|
135
|
-
|
|
98
|
+
reactHostDelegate,
|
|
99
|
+
componentFactory,
|
|
100
|
+
true,
|
|
101
|
+
useDeveloperSupport
|
|
136
102
|
)
|
|
137
103
|
|
|
138
|
-
|
|
139
|
-
handler.onDidCreateReactHost(context, reactHostImpl)
|
|
104
|
+
reactNativeHost.reactNativeHostHandlers.forEach { handler ->
|
|
140
105
|
handler.onDidCreateDevSupportManager(reactHostImpl.devSupportManager)
|
|
141
106
|
}
|
|
142
107
|
|
|
143
108
|
reactHostImpl.addReactInstanceEventListener(object : ReactInstanceEventListener {
|
|
144
109
|
override fun onReactContextInitialized(context: ReactContext) {
|
|
145
|
-
|
|
146
|
-
handler.onDidCreateReactInstance(
|
|
110
|
+
reactNativeHost.reactNativeHostHandlers.forEach { handler ->
|
|
111
|
+
handler.onDidCreateReactInstance(useDeveloperSupport, context)
|
|
147
112
|
}
|
|
148
113
|
}
|
|
149
114
|
})
|
|
@@ -21,6 +21,7 @@ import com.facebook.react.ReactDelegate
|
|
|
21
21
|
import com.facebook.react.ReactHost
|
|
22
22
|
import com.facebook.react.ReactInstanceEventListener
|
|
23
23
|
import com.facebook.react.ReactInstanceManager
|
|
24
|
+
import com.facebook.react.ReactNativeHost
|
|
24
25
|
import com.facebook.react.ReactRootView
|
|
25
26
|
import com.facebook.react.bridge.ReactContext
|
|
26
27
|
import com.facebook.react.modules.core.PermissionListener
|
|
@@ -54,12 +55,15 @@ class ReactActivityDelegateWrapper(
|
|
|
54
55
|
private val reactActivityHandlers = ExpoModulesPackage.packageList
|
|
55
56
|
.flatMap { it.createReactActivityHandlers(activity) }
|
|
56
57
|
private val methodMap: ArrayMap<String, Method> = ArrayMap()
|
|
58
|
+
private val _reactNativeHost: ReactNativeHost by lazy {
|
|
59
|
+
invokeDelegateMethod("getReactNativeHost")
|
|
60
|
+
}
|
|
57
61
|
private val _reactHost: ReactHost? by lazy {
|
|
58
62
|
delegate.reactHost
|
|
59
63
|
}
|
|
60
64
|
private val delayLoadAppHandler: DelayLoadAppHandler? by lazy {
|
|
61
65
|
reactActivityHandlers.asSequence()
|
|
62
|
-
.mapNotNull { it.getDelayLoadAppHandler(activity,
|
|
66
|
+
.mapNotNull { it.getDelayLoadAppHandler(activity, reactNativeHost) }
|
|
63
67
|
.firstOrNull()
|
|
64
68
|
}
|
|
65
69
|
|
|
@@ -98,6 +102,10 @@ class ReactActivityDelegateWrapper(
|
|
|
98
102
|
return invokeDelegateMethod("getReactDelegate")
|
|
99
103
|
}
|
|
100
104
|
|
|
105
|
+
override fun getReactNativeHost(): ReactNativeHost {
|
|
106
|
+
return _reactNativeHost
|
|
107
|
+
}
|
|
108
|
+
|
|
101
109
|
override fun getReactHost(): ReactHost? {
|
|
102
110
|
return _reactHost
|
|
103
111
|
}
|
|
@@ -123,11 +131,6 @@ class ReactActivityDelegateWrapper(
|
|
|
123
131
|
val newDelegate = reactActivityHandlers.asSequence()
|
|
124
132
|
.mapNotNull { it.onDidCreateReactActivityDelegate(activity, this) }
|
|
125
133
|
.firstOrNull()
|
|
126
|
-
|
|
127
|
-
reactActivityHandlers.forEach { handler ->
|
|
128
|
-
handler.onDidCreateReactActivityDelegateNotification(activity, newDelegate)
|
|
129
|
-
}
|
|
130
|
-
|
|
131
134
|
if (newDelegate != null && newDelegate != this) {
|
|
132
135
|
val mDelegateField = ReactActivity::class.java.getDeclaredField("mDelegate")
|
|
133
136
|
mDelegateField.isAccessible = true
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
package expo.modules
|
|
2
|
+
|
|
3
|
+
import android.app.Application
|
|
4
|
+
import android.content.Context
|
|
5
|
+
import com.facebook.react.ReactHost
|
|
6
|
+
import com.facebook.react.ReactNativeHost
|
|
7
|
+
import com.facebook.react.ReactPackageTurboModuleManagerDelegate
|
|
8
|
+
import com.facebook.react.bridge.UIManagerProvider
|
|
9
|
+
import com.facebook.react.common.SurfaceDelegateFactory
|
|
10
|
+
import com.facebook.react.devsupport.DevSupportManagerFactory
|
|
11
|
+
import com.facebook.react.devsupport.interfaces.RedBoxHandler
|
|
12
|
+
|
|
13
|
+
class ReactNativeHostWrapper(
|
|
14
|
+
application: Application,
|
|
15
|
+
host: ReactNativeHost
|
|
16
|
+
) : ReactNativeHostWrapperBase(application, host) {
|
|
17
|
+
override fun getDevSupportManagerFactory(): DevSupportManagerFactory? {
|
|
18
|
+
return reactNativeHostHandlers
|
|
19
|
+
.asSequence()
|
|
20
|
+
.mapNotNull { it.devSupportManagerFactory }
|
|
21
|
+
.firstOrNull() as DevSupportManagerFactory?
|
|
22
|
+
?: invokeDelegateMethod("getDevSupportManagerFactory")
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
override fun getReactPackageTurboModuleManagerDelegateBuilder(): ReactPackageTurboModuleManagerDelegate.Builder? {
|
|
26
|
+
return invokeDelegateMethod("getReactPackageTurboModuleManagerDelegateBuilder")
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
override fun getUIManagerProvider(): UIManagerProvider? {
|
|
30
|
+
return invokeDelegateMethod("getUIManagerProvider")
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
override fun getShouldRequireActivity(): Boolean {
|
|
34
|
+
return host.shouldRequireActivity
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun getSurfaceDelegateFactory(): SurfaceDelegateFactory {
|
|
38
|
+
return host.surfaceDelegateFactory
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
override fun getRedBoxHandler(): RedBoxHandler? {
|
|
42
|
+
return invokeDelegateMethod("getRedBoxHandler")
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
companion object {
|
|
46
|
+
@JvmStatic
|
|
47
|
+
fun createReactHost(context: Context, reactNativeHost: ReactNativeHost): ReactHost {
|
|
48
|
+
return ExpoReactHostFactory.createFromReactNativeHost(context, reactNativeHost)
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
package expo.modules
|
|
2
|
+
|
|
3
|
+
import android.app.Application
|
|
4
|
+
import androidx.collection.ArrayMap
|
|
5
|
+
import com.facebook.react.ReactInstanceEventListener
|
|
6
|
+
import com.facebook.react.ReactInstanceManager
|
|
7
|
+
import com.facebook.react.ReactNativeHost
|
|
8
|
+
import com.facebook.react.ReactPackage
|
|
9
|
+
import com.facebook.react.bridge.JavaScriptExecutorFactory
|
|
10
|
+
import com.facebook.react.bridge.ReactContext
|
|
11
|
+
import com.facebook.react.defaults.DefaultReactNativeHost
|
|
12
|
+
import java.lang.reflect.Method
|
|
13
|
+
|
|
14
|
+
open class ReactNativeHostWrapperBase(
|
|
15
|
+
application: Application,
|
|
16
|
+
protected val host: ReactNativeHost
|
|
17
|
+
) : DefaultReactNativeHost(application) {
|
|
18
|
+
|
|
19
|
+
val reactNativeHostHandlers = ExpoModulesPackage.packageList
|
|
20
|
+
.flatMap { it.createReactNativeHostHandlers(application) }
|
|
21
|
+
private val methodMap: ArrayMap<String, Method> = ArrayMap()
|
|
22
|
+
|
|
23
|
+
override fun createReactInstanceManager(): ReactInstanceManager {
|
|
24
|
+
val developerSupport = useDeveloperSupport
|
|
25
|
+
reactNativeHostHandlers.forEach { handler ->
|
|
26
|
+
handler.onWillCreateReactInstance(developerSupport)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
val result = super.createReactInstanceManager()
|
|
30
|
+
|
|
31
|
+
reactNativeHostHandlers.forEach { handler ->
|
|
32
|
+
handler.onDidCreateDevSupportManager(result.devSupportManager)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
result.addReactInstanceEventListener(object : ReactInstanceEventListener {
|
|
36
|
+
override fun onReactContextInitialized(context: ReactContext) {
|
|
37
|
+
reactNativeHostHandlers.forEach { handler ->
|
|
38
|
+
handler.onDidCreateReactInstance(developerSupport, context)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
injectHostReactInstanceManager(result)
|
|
44
|
+
|
|
45
|
+
return result
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
override fun getJavaScriptExecutorFactory(): JavaScriptExecutorFactory? {
|
|
49
|
+
return reactNativeHostHandlers.asSequence()
|
|
50
|
+
.mapNotNull { it.javaScriptExecutorFactory }
|
|
51
|
+
.firstOrNull() ?: invokeDelegateMethod("getJavaScriptExecutorFactory")
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public override fun getJSMainModuleName(): String {
|
|
55
|
+
return invokeDelegateMethod("getJSMainModuleName")
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public override fun getJSBundleFile(): String? {
|
|
59
|
+
return reactNativeHostHandlers.asSequence()
|
|
60
|
+
.mapNotNull { it.getJSBundleFile(useDeveloperSupport) }
|
|
61
|
+
.firstOrNull() ?: invokeDelegateMethod("getJSBundleFile")
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public override fun getBundleAssetName(): String? {
|
|
65
|
+
return reactNativeHostHandlers.asSequence()
|
|
66
|
+
.mapNotNull { it.getBundleAssetName(useDeveloperSupport) }
|
|
67
|
+
.firstOrNull() ?: invokeDelegateMethod("getBundleAssetName")
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
override fun getUseDeveloperSupport(): Boolean {
|
|
71
|
+
return reactNativeHostHandlers.asSequence()
|
|
72
|
+
.mapNotNull { it.useDeveloperSupport }
|
|
73
|
+
.firstOrNull() ?: host.useDeveloperSupport
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public override fun getPackages(): MutableList<ReactPackage> {
|
|
77
|
+
return invokeDelegateMethod("getPackages")
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//endregion
|
|
81
|
+
|
|
82
|
+
//region Internals
|
|
83
|
+
|
|
84
|
+
// this is to call the methods as overridden in MainApplication.kt
|
|
85
|
+
@Suppress("UNCHECKED_CAST")
|
|
86
|
+
internal fun <T> invokeDelegateMethod(name: String): T {
|
|
87
|
+
var method = methodMap[name]
|
|
88
|
+
if (method == null) {
|
|
89
|
+
method = ReactNativeHost::class.java.getDeclaredMethod(name)
|
|
90
|
+
method.isAccessible = true
|
|
91
|
+
methodMap[name] = method
|
|
92
|
+
}
|
|
93
|
+
return method!!.invoke(host) as T
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Inject the @{ReactInstanceManager} from the wrapper to the wrapped host.
|
|
98
|
+
* In case the wrapped host to call `getReactInstanceManager` inside its methods.
|
|
99
|
+
*/
|
|
100
|
+
private fun injectHostReactInstanceManager(reactInstanceManager: ReactInstanceManager) {
|
|
101
|
+
val mReactInstanceManagerField = ReactNativeHost::class.java.getDeclaredField("mReactInstanceManager")
|
|
102
|
+
mReactInstanceManagerField.isAccessible = true
|
|
103
|
+
mReactInstanceManagerField.set(host, reactInstanceManager)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
//endregion
|
|
107
|
+
}
|
|
@@ -11,7 +11,6 @@ import expo.modules.core.errors.ModuleDestroyedException
|
|
|
11
11
|
import expo.modules.kotlin.Promise
|
|
12
12
|
import expo.modules.kotlin.exception.Exceptions
|
|
13
13
|
import expo.modules.kotlin.exception.toCodedException
|
|
14
|
-
import expo.modules.kotlin.jni.NativeArrayBuffer
|
|
15
14
|
import expo.modules.kotlin.modules.Module
|
|
16
15
|
import expo.modules.kotlin.modules.ModuleDefinition
|
|
17
16
|
import kotlinx.coroutines.CoroutineName
|
|
@@ -98,14 +97,14 @@ class ExpoFetchModule : Module() {
|
|
|
98
97
|
|
|
99
98
|
AsyncFunction("arrayBuffer") { response: NativeResponse, promise: Promise ->
|
|
100
99
|
response.waitForStates(listOf(ResponseState.BODY_COMPLETED)) {
|
|
101
|
-
val data = response.sink.finalize(
|
|
102
|
-
promise.resolve(
|
|
100
|
+
val data = response.sink.finalize()
|
|
101
|
+
promise.resolve(data)
|
|
103
102
|
}
|
|
104
103
|
}
|
|
105
104
|
|
|
106
105
|
AsyncFunction("text") { response: NativeResponse, promise: Promise ->
|
|
107
106
|
response.waitForStates(listOf(ResponseState.BODY_COMPLETED)) {
|
|
108
|
-
val data = response.sink.finalize(
|
|
107
|
+
val data = response.sink.finalize()
|
|
109
108
|
val text = data.toString(Charsets.UTF_8)
|
|
110
109
|
promise.resolve(text)
|
|
111
110
|
}
|
|
@@ -40,7 +40,7 @@ internal class NativeResponse(appContext: AppContext, private val coroutineScope
|
|
|
40
40
|
get() = this.sink.bodyUsed
|
|
41
41
|
|
|
42
42
|
override fun deallocate() {
|
|
43
|
-
this.sink.finalize(
|
|
43
|
+
this.sink.finalize()
|
|
44
44
|
super.deallocate()
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -57,10 +57,10 @@ internal class NativeResponse(appContext: AppContext, private val coroutineScope
|
|
|
57
57
|
}
|
|
58
58
|
if (state == ResponseState.RESPONSE_RECEIVED) {
|
|
59
59
|
state = ResponseState.BODY_STREAMING_STARTED
|
|
60
|
-
val queuedData = this.sink.finalize(
|
|
60
|
+
val queuedData = this.sink.finalize()
|
|
61
61
|
emit("didReceiveResponseData", queuedData)
|
|
62
62
|
} else if (state == ResponseState.BODY_COMPLETED) {
|
|
63
|
-
val queuedData = this.sink.finalize(
|
|
63
|
+
val queuedData = this.sink.finalize()
|
|
64
64
|
return queuedData
|
|
65
65
|
}
|
|
66
66
|
return null
|
|
@@ -15,19 +15,15 @@ internal class ResponseSink {
|
|
|
15
15
|
bodyQueue.add(data)
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
fun finalize(
|
|
18
|
+
fun finalize(): ByteArray {
|
|
19
19
|
val size = bodyQueue.sumOf { it.size }
|
|
20
|
-
val byteBuffer =
|
|
21
|
-
ByteBuffer.allocateDirect(size)
|
|
22
|
-
} else {
|
|
23
|
-
ByteBuffer.allocate(size)
|
|
24
|
-
}
|
|
20
|
+
val byteBuffer = ByteBuffer.allocate(size)
|
|
25
21
|
for (byteArray in bodyQueue) {
|
|
26
22
|
byteBuffer.put(byteArray)
|
|
27
23
|
}
|
|
28
24
|
bodyQueue.clear()
|
|
29
25
|
bodyUsed = true
|
|
30
26
|
isFinalized = true
|
|
31
|
-
return byteBuffer
|
|
27
|
+
return byteBuffer.array()
|
|
32
28
|
}
|
|
33
29
|
}
|
|
@@ -7,12 +7,12 @@ import com.facebook.react.ReactActivity
|
|
|
7
7
|
import com.facebook.react.ReactActivityDelegate
|
|
8
8
|
import com.facebook.react.ReactApplication
|
|
9
9
|
import com.facebook.react.ReactHost
|
|
10
|
+
import com.facebook.react.ReactNativeHost
|
|
10
11
|
import com.facebook.react.ReactRootView
|
|
11
12
|
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
|
|
12
13
|
import com.facebook.react.defaults.DefaultReactActivityDelegate
|
|
13
14
|
import com.facebook.react.interfaces.fabric.ReactSurface
|
|
14
15
|
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
15
|
-
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsForTests
|
|
16
16
|
import com.facebook.soloader.SoLoader
|
|
17
17
|
import expo.modules.core.interfaces.Package
|
|
18
18
|
import expo.modules.core.interfaces.ReactActivityHandler
|
|
@@ -59,7 +59,6 @@ internal class ReactActivityDelegateWrapperDelayLoadTest {
|
|
|
59
59
|
fun setUp() {
|
|
60
60
|
SoLoader.setInTestMode()
|
|
61
61
|
mockkObject(ExpoModulesPackage.Companion)
|
|
62
|
-
ReactNativeFeatureFlagsForTests.setUp()
|
|
63
62
|
mockkStatic(ReactNativeFeatureFlags::class)
|
|
64
63
|
every { ReactNativeFeatureFlags.enableBridgelessArchitecture() } returns true
|
|
65
64
|
every { ReactNativeFeatureFlags.enableFabricRenderer() } returns true
|
|
@@ -252,6 +251,8 @@ internal class MockApplication : Application(), ReactApplication {
|
|
|
252
251
|
currentActivity = activity
|
|
253
252
|
}
|
|
254
253
|
|
|
254
|
+
override val reactNativeHost: ReactNativeHost = mockk<ReactNativeHost>(relaxed = true)
|
|
255
|
+
|
|
255
256
|
override val reactHost: ReactHost by lazy {
|
|
256
257
|
mockk<ReactHost>(relaxed = true)
|
|
257
258
|
.also {
|
package/build/Expo.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import './Expo.fx';
|
|
|
2
2
|
export { disableErrorHandling } from './errors/ExpoErrorManager';
|
|
3
3
|
export { default as registerRootComponent } from './launch/registerRootComponent';
|
|
4
4
|
export { isRunningInExpoGo, getExpoGoProjectConfig } from './environment/ExpoGo';
|
|
5
|
-
export { EventEmitter, SharedObject, SharedRef, NativeModule, requireNativeModule, requireOptionalNativeModule, requireNativeViewManager as requireNativeView, registerWebModule, reloadAppAsync,
|
|
5
|
+
export { EventEmitter, SharedObject, SharedRef, NativeModule, requireNativeModule, requireOptionalNativeModule, requireNativeViewManager as requireNativeView, registerWebModule, reloadAppAsync, } from 'expo-modules-core';
|
|
6
6
|
export type {
|
|
7
7
|
/** @deprecated Move to `SharedRef` with a type-only import instead */
|
|
8
8
|
SharedRef as SharedRefType,
|
package/build/Expo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expo.d.ts","sourceRoot":"","sources":["../src/Expo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAEL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,IAAI,iBAAiB,EAC7C,iBAAiB,EACjB,cAAc,
|
|
1
|
+
{"version":3,"file":"Expo.d.ts","sourceRoot":"","sources":["../src/Expo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAEL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,IAAI,iBAAiB,EAC7C,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACV,sEAAsE;AACtE,SAAS,IAAI,aAAa;AAC1B,yEAAyE;AACzE,YAAY,IAAI,gBAAgB;AAChC,yEAAyE;AACzE,YAAY,IAAI,gBAAgB;AAChC,yEAAyE;AACzE,YAAY,IAAI,gBAAgB,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDevServer.d.ts","sourceRoot":"","sources":["../../src/async-require/getDevServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDevServer.d.ts","sourceRoot":"","sources":["../../src/async-require/getDevServer.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY;;IAcd,0DAA0D;;;CAc7D,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
type LogLevel = 'trace' | 'info' | 'warn' | 'error' | 'log' | 'group' | 'groupCollapsed' | 'groupEnd' | 'debug';
|
|
2
|
-
|
|
3
|
-
* HMR Client that receives from the server HMR updates and propagates them
|
|
4
|
-
* runtime to reflects those changes.
|
|
5
|
-
*/
|
|
6
|
-
declare const HMRClient: {
|
|
2
|
+
export type HMRClientNativeInterface = {
|
|
7
3
|
enable(): void;
|
|
8
4
|
disable(): void;
|
|
9
5
|
registerBundle(requestUrl: string): void;
|
|
10
6
|
log(level: LogLevel, data: any[]): void;
|
|
11
|
-
setup(
|
|
7
|
+
setup(props: {
|
|
12
8
|
isEnabled: boolean;
|
|
13
|
-
}
|
|
14
|
-
_onMetroError(error: unknown): void;
|
|
9
|
+
}): void;
|
|
15
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* HMR Client that receives from the server HMR updates and propagates them
|
|
13
|
+
* runtime to reflects those changes.
|
|
14
|
+
*/
|
|
15
|
+
declare const HMRClient: HMRClientNativeInterface;
|
|
16
16
|
export default HMRClient;
|
|
17
17
|
//# sourceMappingURL=hmr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/async-require/hmr.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/async-require/hmr.ts"],"names":[],"mappings":"AA4CA,KAAK,QAAQ,GACT,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,GACL,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5C,CAAC;AAMF;;;GAGG;AACH,QAAA,MAAM,SAAS,EAAE,wBAiMhB,CAAC;AA4EF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hmr.native.d.ts","sourceRoot":"","sources":["../../src/async-require/hmr.native.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,SAAS,KAAgE,CAAC;AAEhF,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-entry.d.ts","sourceRoot":"","sources":["../../src/dom/dom-entry.tsx"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAC;AAiE7B,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"dom-entry.d.ts","sourceRoot":"","sources":["../../src/dom/dom-entry.tsx"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAC;AAiE7B,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,GAAG,QA6DlD"}
|
package/build/dom/dom.types.d.ts
CHANGED
|
@@ -29,11 +29,6 @@ export interface DOMProps extends Omit<RNWebViewProps, 'source'> {
|
|
|
29
29
|
* @default false
|
|
30
30
|
*/
|
|
31
31
|
useExpoDOMWebView?: boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Allows dynamically redirecting a component to a different source, for example a prebuilt version.
|
|
34
|
-
* @internal
|
|
35
|
-
*/
|
|
36
|
-
overrideUri?: string;
|
|
37
32
|
}
|
|
38
33
|
export {};
|
|
39
34
|
//# sourceMappingURL=dom.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.types.d.ts","sourceRoot":"","sources":["../../src/dom/dom.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC;CAAG;AAEtD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,SAAS,IAAI;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED,KAAK,YAAY,GAAG,SAAS,CAAC;AAC9B,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IAC9D;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"dom.types.d.ts","sourceRoot":"","sources":["../../src/dom/dom.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC;CAAG;AAEtD,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,SAAS,IAAI;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;CAC/C;AAED,KAAK,YAAY,GAAG,SAAS,CAAC;AAC9B,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC;AACtC,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IAC9D;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
|
package/build/dom/internal.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/dom/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/dom/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGvD,eAAO,MAAM,oBAAoB,EAAE,SAAS,GAAG,cAAc,aAAa,EAAE,oBACjE,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { DOMProps } from './dom.types';
|
|
3
3
|
import ExpoDomWebView from './webview/ExpoDOMWebView';
|
|
4
4
|
import RNWebView from './webview/RNWebView';
|
|
5
5
|
type RawWebViewProps = React.ComponentProps<Exclude<typeof ExpoDomWebView, undefined>> & React.ComponentProps<Exclude<typeof RNWebView, undefined>>;
|
|
6
6
|
interface Props {
|
|
7
7
|
children?: any;
|
|
8
|
-
dom?:
|
|
8
|
+
dom?: DOMProps;
|
|
9
9
|
filePath: string;
|
|
10
10
|
ref: React.Ref<object>;
|
|
11
11
|
[propName: string]: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webview-wrapper.d.ts","sourceRoot":"","sources":["../../src/dom/webview-wrapper.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webview-wrapper.d.ts","sourceRoot":"","sources":["../../src/dom/webview-wrapper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAiB,QAAQ,EAA4B,MAAM,aAAa,CAAC;AAUrF,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAG5C,KAAK,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,cAAc,EAAE,SAAS,CAAC,CAAC,GACpF,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAE7D,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED,QAAA,MAAM,UAAU,mFAgMd,CAAC;AAiBH,wBAAgB,cAAc,CAC5B,iBAAiB,EAAE,OAAO,GACzB,KAAK,CAAC,yBAAyB,CAAC,eAAe,CAAC,CASlD;AAED,eAAe,UAAU,CAAC"}
|