expo 54.0.0-canary-20250729-d8899ae → 54.0.0-preview.1

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.
Files changed (81) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/src/main/java/expo/modules/ExpoReactHostFactory.kt +1 -7
  3. package/android/src/main/java/expo/modules/ReactActivityDelegateWrapper.kt +8 -8
  4. package/android/src/main/java/expo/modules/ReactNativeHostWrapper.kt +0 -5
  5. package/android/src/test/resources/robolectric.properties +1 -0
  6. package/build/Expo.d.ts +9 -1
  7. package/build/Expo.d.ts.map +1 -1
  8. package/build/async-require/fetchAsync.native.d.ts.map +1 -1
  9. package/build/winter/fetch/FetchResponse.d.ts +2 -2
  10. package/build/winter/fetch/FetchResponse.d.ts.map +1 -1
  11. package/build/winter/fetch/NativeRequest.d.ts +1 -1
  12. package/build/winter/fetch/NativeRequest.d.ts.map +1 -1
  13. package/build/winter/installGlobal.d.ts +25 -0
  14. package/build/winter/installGlobal.d.ts.map +1 -0
  15. package/bundledNativeModules.json +94 -93
  16. package/devtools.d.ts +1 -1
  17. package/devtools.js +1 -1
  18. package/internal/babel-preset.d.ts +2 -0
  19. package/internal/babel-preset.js +2 -0
  20. package/internal/unstable-autolinking-exports.d.ts +2 -0
  21. package/internal/unstable-autolinking-exports.js +2 -0
  22. package/internal/unstable-expo-updates-cli-exports.d.ts +2 -0
  23. package/internal/unstable-expo-updates-cli-exports.js +2 -0
  24. package/ios/AppDelegates/ExpoReactNativeFactory.swift +14 -1
  25. package/ios/AppDelegates/ExpoReactNativeFactoryDelegate.swift +1 -1
  26. package/ios/AppDelegates/RCTAppDelegateUmbrella.h +5 -0
  27. package/package.json +28 -27
  28. package/src/Expo.ts +4 -0
  29. package/src/async-require/fetchAsync.native.ts +48 -10
  30. package/src/async-require/messageSocket.native.ts +0 -3
  31. package/src/winter/fetch/FetchResponse.ts +4 -4
  32. package/src/winter/fetch/NativeRequest.ts +1 -1
  33. package/src/winter/fetch/__tests__/RequestUtils-test.ts +7 -7
  34. package/src/winter/installGlobal.ts +109 -0
  35. package/src/winter/runtime.native.ts +1 -20
  36. package/template.tgz +0 -0
  37. package/build/devtools/DevToolsPluginClient.d.ts +0 -72
  38. package/build/devtools/DevToolsPluginClient.d.ts.map +0 -1
  39. package/build/devtools/DevToolsPluginClientFactory.d.ts +0 -16
  40. package/build/devtools/DevToolsPluginClientFactory.d.ts.map +0 -1
  41. package/build/devtools/DevToolsPluginClientImplApp.d.ts +0 -15
  42. package/build/devtools/DevToolsPluginClientImplApp.d.ts.map +0 -1
  43. package/build/devtools/DevToolsPluginClientImplBrowser.d.ts +0 -14
  44. package/build/devtools/DevToolsPluginClientImplBrowser.d.ts.map +0 -1
  45. package/build/devtools/MessageFramePacker.d.ts +0 -50
  46. package/build/devtools/MessageFramePacker.d.ts.map +0 -1
  47. package/build/devtools/ProtocolVersion.d.ts +0 -7
  48. package/build/devtools/ProtocolVersion.d.ts.map +0 -1
  49. package/build/devtools/WebSocketBackingStore.d.ts +0 -10
  50. package/build/devtools/WebSocketBackingStore.d.ts.map +0 -1
  51. package/build/devtools/WebSocketWithReconnect.d.ts +0 -81
  52. package/build/devtools/WebSocketWithReconnect.d.ts.map +0 -1
  53. package/build/devtools/devtools.types.d.ts +0 -42
  54. package/build/devtools/devtools.types.d.ts.map +0 -1
  55. package/build/devtools/getConnectionInfo.d.ts +0 -6
  56. package/build/devtools/getConnectionInfo.d.ts.map +0 -1
  57. package/build/devtools/getConnectionInfo.native.d.ts +0 -6
  58. package/build/devtools/getConnectionInfo.native.d.ts.map +0 -1
  59. package/build/devtools/index.d.ts +0 -12
  60. package/build/devtools/index.d.ts.map +0 -1
  61. package/build/devtools/logger.d.ts +0 -6
  62. package/build/devtools/logger.d.ts.map +0 -1
  63. package/src/devtools/DevToolsPluginClient.ts +0 -240
  64. package/src/devtools/DevToolsPluginClientFactory.ts +0 -73
  65. package/src/devtools/DevToolsPluginClientImplApp.ts +0 -56
  66. package/src/devtools/DevToolsPluginClientImplBrowser.ts +0 -38
  67. package/src/devtools/MessageFramePacker.ts +0 -235
  68. package/src/devtools/ProtocolVersion.ts +0 -6
  69. package/src/devtools/WebSocketBackingStore.ts +0 -10
  70. package/src/devtools/WebSocketWithReconnect.ts +0 -318
  71. package/src/devtools/__tests__/DevToolsPluginClient-test.ts +0 -285
  72. package/src/devtools/__tests__/DevToolsPluginClientFactory-test.ts +0 -120
  73. package/src/devtools/__tests__/MessageFramePack-test.node.ts +0 -157
  74. package/src/devtools/__tests__/MockWebSocket.ts +0 -100
  75. package/src/devtools/__tests__/WebSocketWithReconnect-test.node.ts +0 -184
  76. package/src/devtools/__tests__/logger-test.ts +0 -20
  77. package/src/devtools/devtools.types.ts +0 -50
  78. package/src/devtools/getConnectionInfo.native.ts +0 -18
  79. package/src/devtools/getConnectionInfo.ts +0 -16
  80. package/src/devtools/index.ts +0 -53
  81. package/src/devtools/logger.ts +0 -29
@@ -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.0-canary-20250729-d8899ae'
35
+ version = '54.0.0-preview.1'
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.0-canary-20250729-d8899ae"
46
+ versionName "54.0.0-preview.1"
47
47
  consumerProguardFiles("proguard-rules.pro")
48
48
  }
49
49
  testOptions {
@@ -3,7 +3,6 @@
3
3
  package expo.modules
4
4
 
5
5
  import android.content.Context
6
- import com.facebook.react.JSEngineResolutionAlgorithm
7
6
  import com.facebook.react.ReactHost
8
7
  import com.facebook.react.ReactInstanceEventListener
9
8
  import com.facebook.react.ReactNativeHost
@@ -16,7 +15,6 @@ import com.facebook.react.defaults.DefaultComponentsRegistry
16
15
  import com.facebook.react.defaults.DefaultTurboModuleManagerDelegate
17
16
  import com.facebook.react.fabric.ComponentFactory
18
17
  import com.facebook.react.runtime.BindingsInstaller
19
- import com.facebook.react.runtime.JSCInstance
20
18
  import com.facebook.react.runtime.JSRuntimeFactory
21
19
  import com.facebook.react.runtime.ReactHostDelegate
22
20
  import com.facebook.react.runtime.ReactHostImpl
@@ -58,11 +56,7 @@ object ExpoReactHostFactory {
58
56
  get() = reactNativeHostWrapper.jsMainModuleName
59
57
 
60
58
  override val jsRuntimeFactory: JSRuntimeFactory
61
- get() = if (reactNativeHostWrapper.jsEngineResolutionAlgorithm == JSEngineResolutionAlgorithm.HERMES) {
62
- HermesInstance()
63
- } else {
64
- JSCInstance()
65
- }
59
+ get() = HermesInstance()
66
60
 
67
61
  override val reactPackages: List<ReactPackage>
68
62
  get() = reactNativeHostWrapper.packages
@@ -172,7 +172,7 @@ class ReactActivityDelegateWrapper(
172
172
  launchOptions,
173
173
  isFabricEnabled
174
174
  ) {
175
- override fun createRootView(): ReactRootView {
175
+ override fun createRootView(): ReactRootView? {
176
176
  return this@ReactActivityDelegateWrapper.createRootView() ?: super.createRootView()
177
177
  }
178
178
  }
@@ -292,7 +292,7 @@ class ReactActivityDelegateWrapper(
292
292
  }
293
293
  }
294
294
 
295
- override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
295
+ override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
296
296
  if (!loadAppReady.isCompleted) {
297
297
  return false
298
298
  }
@@ -303,7 +303,7 @@ class ReactActivityDelegateWrapper(
303
303
  .fold(false) { accu, current -> accu || current } || delegate.onKeyDown(keyCode, event)
304
304
  }
305
305
 
306
- override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
306
+ override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
307
307
  if (!loadAppReady.isCompleted) {
308
308
  return false
309
309
  }
@@ -314,7 +314,7 @@ class ReactActivityDelegateWrapper(
314
314
  .fold(false) { accu, current -> accu || current } || delegate.onKeyUp(keyCode, event)
315
315
  }
316
316
 
317
- override fun onKeyLongPress(keyCode: Int, event: KeyEvent?): Boolean {
317
+ override fun onKeyLongPress(keyCode: Int, event: KeyEvent): Boolean {
318
318
  if (!loadAppReady.isCompleted) {
319
319
  return false
320
320
  }
@@ -354,14 +354,14 @@ class ReactActivityDelegateWrapper(
354
354
  }
355
355
  }
356
356
 
357
- override fun requestPermissions(permissions: Array<out String>?, requestCode: Int, listener: PermissionListener?) {
357
+ override fun requestPermissions(permissions: Array<out String>, requestCode: Int, listener: PermissionListener?) {
358
358
  launchLifecycleScopeWithLock {
359
359
  loadAppReady.await()
360
360
  delegate.requestPermissions(permissions, requestCode, listener)
361
361
  }
362
362
  }
363
363
 
364
- override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>?, grantResults: IntArray?) {
364
+ override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
365
365
  launchLifecycleScopeWithLock {
366
366
  loadAppReady.await()
367
367
  delegate.onRequestPermissionsResult(requestCode, permissions, grantResults)
@@ -388,7 +388,7 @@ class ReactActivityDelegateWrapper(
388
388
  return invokeDelegateMethod("composeLaunchOptions")
389
389
  }
390
390
 
391
- override fun onConfigurationChanged(newConfig: Configuration?) {
391
+ override fun onConfigurationChanged(newConfig: Configuration) {
392
392
  launchLifecycleScopeWithLock {
393
393
  loadAppReady.await()
394
394
  delegate.onConfigurationChanged(newConfig)
@@ -438,7 +438,7 @@ class ReactActivityDelegateWrapper(
438
438
  mReactDelegate.isAccessible = true
439
439
  val reactDelegate = mReactDelegate[delegate] as ReactDelegate
440
440
 
441
- reactDelegate.loadApp(appKey)
441
+ reactDelegate.loadApp(requireNotNull(appKey))
442
442
  val reactRootView = reactDelegate.reactRootView
443
443
  (reactRootView?.parent as? ViewGroup)?.removeView(reactRootView)
444
444
  rootViewContainer.addView(reactRootView, ViewGroup.LayoutParams.MATCH_PARENT)
@@ -2,7 +2,6 @@ package expo.modules
2
2
 
3
3
  import android.app.Application
4
4
  import android.content.Context
5
- import com.facebook.react.JSEngineResolutionAlgorithm
6
5
  import com.facebook.react.ReactHost
7
6
  import com.facebook.react.ReactNativeHost
8
7
  import com.facebook.react.ReactPackageTurboModuleManagerDelegate
@@ -31,10 +30,6 @@ class ReactNativeHostWrapper(
31
30
  return invokeDelegateMethod("getUIManagerProvider")
32
31
  }
33
32
 
34
- public override fun getJSEngineResolutionAlgorithm(): JSEngineResolutionAlgorithm? {
35
- return invokeDelegateMethod("getJSEngineResolutionAlgorithm")
36
- }
37
-
38
33
  override fun getShouldRequireActivity(): Boolean {
39
34
  return host.shouldRequireActivity
40
35
  }
package/build/Expo.d.ts CHANGED
@@ -3,6 +3,14 @@ export { disableErrorHandling } from './errors/ExpoErrorManager';
3
3
  export { default as registerRootComponent } from './launch/registerRootComponent';
4
4
  export { isRunningInExpoGo, getExpoGoProjectConfig } from './environment/ExpoGo';
5
5
  export { EventEmitter, SharedObject, SharedRef, NativeModule, requireNativeModule, requireOptionalNativeModule, requireNativeViewManager as requireNativeView, registerWebModule, reloadAppAsync, } from 'expo-modules-core';
6
- export type { SharedRef as SharedRefType, EventEmitter as EventEmitterType, NativeModule as NativeModuleType, SharedObject as SharedObjectType, } from 'expo-modules-core/types';
6
+ export type {
7
+ /** @deprecated Move to `SharedRef` with a type-only import instead */
8
+ SharedRef as SharedRefType,
9
+ /** @deprecated Move to `EventEmitter` with a type-only import instead */
10
+ EventEmitter as EventEmitterType,
11
+ /** @deprecated Move to `NativeModule` with a type-only import instead */
12
+ NativeModule as NativeModuleType,
13
+ /** @deprecated Move to `SharedObject` with a type-only import instead */
14
+ SharedObject as SharedObjectType, } from 'expo-modules-core/types';
7
15
  export { useEvent, useEventListener } from './hooks/useEvent';
8
16
  //# sourceMappingURL=Expo.d.ts.map
@@ -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,GACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,SAAS,IAAI,aAAa,EAC1B,YAAY,IAAI,gBAAgB,EAChC,YAAY,IAAI,gBAAgB,EAChC,YAAY,IAAI,gBAAgB,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,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":"fetchAsync.native.d.ts","sourceRoot":"","sources":["../../src/async-require/fetchAsync.native.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CA2D5E"}
1
+ {"version":3,"file":"fetchAsync.native.d.ts","sourceRoot":"","sources":["../../src/async-require/fetchAsync.native.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwBH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CAgF5E"}
@@ -11,7 +11,7 @@ export declare class FetchResponse extends ConcreteNativeResponse implements Res
11
11
  private streamingState;
12
12
  private bodyStream;
13
13
  constructor(abortCleanupFunction: AbortSubscriptionCleanupFunction);
14
- get body(): ReadableStream<Uint8Array> | null;
14
+ get body(): ReadableStream<Uint8Array<ArrayBuffer>> | null;
15
15
  get headers(): Headers;
16
16
  get ok(): boolean;
17
17
  readonly type = "default";
@@ -21,7 +21,7 @@ export declare class FetchResponse extends ConcreteNativeResponse implements Res
21
21
  blob(): Promise<Blob>;
22
22
  formData(): Promise<UniversalFormData>;
23
23
  json(): Promise<any>;
24
- bytes(): Promise<Uint8Array>;
24
+ bytes(): Promise<Uint8Array<ArrayBuffer>>;
25
25
  toString(): string;
26
26
  toJSON(): object;
27
27
  clone(): Response;
@@ -1 +1 @@
1
- {"version":3,"file":"FetchResponse.d.ts","sourceRoot":"","sources":["../../../src/winter/fetch/FetchResponse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,QAAA,MAAM,sBAAsB,EAAqC,OAAO,cAAc,CAAC;AACvF,MAAM,MAAM,gCAAgC,GAAG,MAAM,IAAI,CAAC;AAI1D,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvE,KAAK,iBAAiB,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC;AAE1D;;GAEG;AACH,qBAAa,aAAc,SAAQ,sBAAuB,YAAW,QAAQ;IAI/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAHjD,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,UAAU,CAA2C;gBAEhC,oBAAoB,EAAE,gCAAgC;IAKnF,IAAI,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAuD5C;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,SAAgB,IAAI,aAAa;IAEjC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAYtC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAKpB,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAIlC,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAShB,KAAK,IAAI,QAAQ;IAIjB,OAAO,CAAC,QAAQ,CAQd;CACH"}
1
+ {"version":3,"file":"FetchResponse.d.ts","sourceRoot":"","sources":["../../../src/winter/fetch/FetchResponse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,QAAA,MAAM,sBAAsB,EAAqC,OAAO,cAAc,CAAC;AACvF,MAAM,MAAM,gCAAgC,GAAG,MAAM,IAAI,CAAC;AAI1D,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvE,KAAK,iBAAiB,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC;AAE1D;;GAEG;AACH,qBAAa,aAAc,SAAQ,sBAAuB,YAAW,QAAQ;IAI/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAHjD,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,UAAU,CAAwD;gBAE7C,oBAAoB,EAAE,gCAAgC;IAKnF,IAAI,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAuDzD;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,SAAgB,IAAI,aAAa;IAEjC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAYtC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAKpB,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAI/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAShB,KAAK,IAAI,QAAQ;IAIjB,OAAO,CAAC,QAAQ,CAQd;CACH"}
@@ -23,7 +23,7 @@ export declare class NativeResponse extends SharedObject<NativeResponseEvents> {
23
23
  readonly statusText: string;
24
24
  readonly url: string;
25
25
  readonly redirected: boolean;
26
- startStreaming(): Promise<Uint8Array | null>;
26
+ startStreaming(): Promise<Uint8Array<ArrayBuffer> | null>;
27
27
  cancelStreaming(reason: string): void;
28
28
  arrayBuffer(): Promise<ArrayBuffer>;
29
29
  text(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeRequest.d.ts","sourceRoot":"","sources":["../../../src/winter/fetch/NativeRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,YAAY;IAC9C,KAAK,CACV,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,OAAO,CAAC,cAAc,CAAC;IACnB,MAAM,IAAI,IAAI;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/C,WAAW,IAAI,IAAI,CAAC;IACpB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sBAAsB,IAAI,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAC5E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IACrC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IACnC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"NativeRequest.d.ts","sourceRoot":"","sources":["../../../src/winter/fetch/NativeRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,YAAY;IAC9C,KAAK,CACV,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,iBAAiB,EAC9B,WAAW,EAAE,UAAU,GAAG,IAAI,GAC7B,OAAO,CAAC,cAAc,CAAC;IACnB,MAAM,IAAI,IAAI;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/C,WAAW,IAAI,IAAI,CAAC;IACpB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sBAAsB,IAAI,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY,CAAC,oBAAoB,CAAC;IAC5E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACzD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IACrC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IACnC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CACxB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright © 2025 650 Industries.
3
+ * Copyright © Meta Platforms, Inc. and affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ *
8
+ * Fork of unexposed react-native module
9
+ * https://github.com/facebook/react-native/blob/c5fb371061c1083684a23aa0852f6dbfb74a8b52/packages/react-native/Libraries/Utilities/PolyfillFunctions.js#L1
10
+ */
11
+ /**
12
+ * Sets an object's property. If a property with the same name exists, this will
13
+ * replace it but maintain its descriptor configuration. The property will be
14
+ * replaced with a lazy getter.
15
+ *
16
+ * In DEV mode the original property value will be preserved as `original[PropertyName]`
17
+ * so that, if necessary, it can be restored. For example, if you want to route
18
+ * network requests through DevTools (to trace them):
19
+ *
20
+ * global.XMLHttpRequest = global.originalXMLHttpRequest;
21
+ *
22
+ * @see https://github.com/facebook/react-native/issues/934
23
+ */
24
+ export declare function installGlobal<T extends object>(name: string, getValue: () => T): void;
25
+ //# sourceMappingURL=installGlobal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installGlobal.d.ts","sourceRoot":"","sources":["../../src/winter/installGlobal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyDH;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CA6BrF"}
@@ -1,116 +1,117 @@
1
1
  {
2
- "@expo/fingerprint": "0.13.5-canary-20250729-d8899ae",
3
- "@expo/metro-runtime": "6.0.0-canary-20250729-d8899ae",
2
+ "@expo/fingerprint": "~0.14.1",
3
+ "@expo/metro-runtime": "~6.0.1",
4
4
  "@expo/vector-icons": "^14.1.0",
5
- "@expo/ui": "0.1.1-canary-20250729-d8899ae",
5
+ "@expo/ui": "~0.2.0-alpha.1",
6
6
  "@react-native-async-storage/async-storage": "2.2.0",
7
- "@react-native-community/datetimepicker": "8.4.3",
7
+ "@react-native-community/datetimepicker": "8.4.4",
8
8
  "@react-native-masked-view/masked-view": "0.3.2",
9
9
  "@react-native-community/netinfo": "11.4.1",
10
- "@react-native-community/slider": "4.5.7",
10
+ "@react-native-community/slider": "5.0.0",
11
11
  "@react-native-community/viewpager": "5.0.11",
12
12
  "@react-native-picker/picker": "2.11.1",
13
13
  "@react-native-segmented-control/segmented-control": "2.5.7",
14
- "@stripe/stripe-react-native": "0.50.1",
15
- "eslint-config-expo": "9.3.0-canary-20250729-d8899ae",
14
+ "@stripe/stripe-react-native": "0.50.3",
15
+ "eslint-config-expo": "~10.0.0",
16
16
  "expo-analytics-amplitude": "~11.3.0",
17
17
  "expo-app-auth": "~11.1.0",
18
18
  "expo-app-loader-provider": "~8.0.0",
19
- "expo-apple-authentication": "7.2.5-canary-20250729-d8899ae",
20
- "expo-application": "6.1.6-canary-20250729-d8899ae",
21
- "expo-asset": "11.2.0-canary-20250729-d8899ae",
22
- "expo-audio": "0.4.9-canary-20250729-d8899ae",
23
- "expo-auth-session": "6.1.6-canary-20250729-d8899ae",
24
- "expo-av": "15.1.8-canary-20250729-d8899ae",
25
- "expo-background-fetch": "13.1.7-canary-20250729-d8899ae",
26
- "expo-background-task": "0.2.9-canary-20250729-d8899ae",
27
- "expo-battery": "9.1.5-canary-20250729-d8899ae",
28
- "expo-blur": "14.1.6-canary-20250729-d8899ae",
29
- "expo-brightness": "13.1.5-canary-20250729-d8899ae",
30
- "expo-build-properties": "0.15.0-canary-20250729-d8899ae",
31
- "expo-calendar": "14.1.5-canary-20250729-d8899ae",
32
- "expo-camera": "16.2.0-canary-20250729-d8899ae",
33
- "expo-cellular": "7.1.6-canary-20250729-d8899ae",
34
- "expo-checkbox": "4.1.5-canary-20250729-d8899ae",
35
- "expo-clipboard": "7.1.6-canary-20250729-d8899ae",
36
- "expo-constants": "17.1.8-canary-20250729-d8899ae",
37
- "expo-contacts": "14.2.6-canary-20250729-d8899ae",
38
- "expo-crypto": "14.1.6-canary-20250729-d8899ae",
39
- "expo-dev-client": "5.1.9-canary-20250729-d8899ae",
40
- "expo-device": "7.1.5-canary-20250729-d8899ae",
41
- "expo-document-picker": "14.0.0-canary-20250729-d8899ae",
42
- "expo-file-system": "18.2.0-canary-20250729-d8899ae",
43
- "expo-font": "13.4.0-canary-20250729-d8899ae",
44
- "expo-gl": "15.1.8-canary-20250729-d8899ae",
19
+ "expo-apple-authentication": "~8.0.1",
20
+ "expo-application": "~7.0.1",
21
+ "expo-asset": "~12.0.1",
22
+ "expo-audio": "~1.0.1",
23
+ "expo-auth-session": "~7.0.1",
24
+ "expo-av": "~16.0.1",
25
+ "expo-background-fetch": "~14.0.1",
26
+ "expo-background-task": "~1.0.1",
27
+ "expo-battery": "~10.0.1",
28
+ "expo-blur": "~15.0.1",
29
+ "expo-brightness": "~14.0.1",
30
+ "expo-build-properties": "~1.0.1",
31
+ "expo-calendar": "~15.0.1",
32
+ "expo-camera": "~17.0.1",
33
+ "expo-cellular": "~8.0.1",
34
+ "expo-checkbox": "~5.0.1",
35
+ "expo-clipboard": "~8.0.1",
36
+ "expo-constants": "~18.0.1",
37
+ "expo-contacts": "~15.0.1",
38
+ "expo-crypto": "~15.0.1",
39
+ "expo-dev-client": "~6.0.1",
40
+ "expo-device": "~8.0.1",
41
+ "expo-document-picker": "~14.0.1",
42
+ "expo-file-system": "~19.0.1",
43
+ "expo-font": "~14.0.1",
44
+ "expo-gl": "~16.0.1",
45
45
  "expo-google-app-auth": "~8.3.0",
46
- "expo-haptics": "14.1.5-canary-20250729-d8899ae",
47
- "expo-image": "2.5.0-canary-20250729-d8899ae",
48
- "expo-image-loader": "5.1.1-canary-20250729-d8899ae",
49
- "expo-image-manipulator": "13.1.8-canary-20250729-d8899ae",
50
- "expo-image-picker": "17.0.0-canary-20250729-d8899ae",
51
- "expo-intent-launcher": "13.0.0-canary-20250729-d8899ae",
52
- "expo-insights": "0.9.4-canary-20250729-d8899ae",
53
- "expo-keep-awake": "14.1.5-canary-20250729-d8899ae",
54
- "expo-linear-gradient": "14.1.6-canary-20250729-d8899ae",
55
- "expo-linking": "7.1.8-canary-20250729-d8899ae",
56
- "expo-local-authentication": "16.1.0-canary-20250729-d8899ae",
57
- "expo-localization": "16.2.0-canary-20250729-d8899ae",
58
- "expo-location": "18.1.7-canary-20250729-d8899ae",
59
- "expo-mail-composer": "14.1.6-canary-20250729-d8899ae",
60
- "expo-manifests": "0.17.0-canary-20250729-d8899ae",
61
- "expo-maps": "0.10.1-canary-20250729-d8899ae",
62
- "expo-media-library": "18.0.0-canary-20250729-d8899ae",
63
- "expo-mesh-gradient": "0.4.0-canary-20250729-d8899ae",
64
- "expo-module-template": "10.16.8-canary-20250729-d8899ae",
65
- "expo-modules-core": "2.6.0-canary-20250729-d8899ae",
66
- "expo-navigation-bar": "4.2.8-canary-20250729-d8899ae",
67
- "expo-network": "7.1.6-canary-20250729-d8899ae",
68
- "expo-notifications": "0.31.5-canary-20250729-d8899ae",
69
- "expo-print": "14.1.5-canary-20250729-d8899ae",
70
- "expo-live-photo": "0.1.5-canary-20250729-d8899ae",
71
- "expo-router": "5.2.0-canary-20250729-d8899ae",
72
- "expo-screen-capture": "7.3.0-canary-20250729-d8899ae",
73
- "expo-screen-orientation": "8.1.8-canary-20250729-d8899ae",
74
- "expo-secure-store": "14.2.4-canary-20250729-d8899ae",
75
- "expo-sensors": "14.1.5-canary-20250729-d8899ae",
76
- "expo-sharing": "13.1.6-canary-20250729-d8899ae",
77
- "expo-sms": "13.1.5-canary-20250729-d8899ae",
78
- "expo-speech": "13.2.0-canary-20250729-d8899ae",
79
- "expo-splash-screen": "0.30.11-canary-20250729-d8899ae",
80
- "expo-sqlite": "15.2.15-canary-20250729-d8899ae",
81
- "expo-status-bar": "2.2.4-canary-20250729-d8899ae",
82
- "expo-store-review": "8.1.6-canary-20250729-d8899ae",
83
- "expo-symbols": "0.4.6-canary-20250729-d8899ae",
84
- "expo-system-ui": "5.0.11-canary-20250729-d8899ae",
85
- "expo-task-manager": "13.1.7-canary-20250729-d8899ae",
86
- "expo-tracking-transparency": "5.2.5-canary-20250729-d8899ae",
87
- "expo-updates": "0.29.0-canary-20250729-d8899ae",
88
- "expo-video-thumbnails": "9.1.4-canary-20250729-d8899ae",
89
- "expo-video": "3.0.0-canary-20250729-d8899ae",
90
- "expo-web-browser": "14.1.7-canary-20250729-d8899ae",
91
- "jest-expo": "54.0.0-canary-20250729-d8899ae",
46
+ "expo-haptics": "~15.0.1",
47
+ "expo-image": "~3.0.1",
48
+ "expo-image-loader": "~6.0.0",
49
+ "expo-image-manipulator": "~14.0.1",
50
+ "expo-image-picker": "~17.0.1",
51
+ "expo-intent-launcher": "~13.0.1",
52
+ "expo-insights": "~0.10.1",
53
+ "expo-keep-awake": "~15.0.1",
54
+ "expo-linear-gradient": "~15.0.1",
55
+ "expo-linking": "~8.0.1",
56
+ "expo-local-authentication": "~17.0.1",
57
+ "expo-localization": "~17.0.1",
58
+ "expo-location": "~19.0.1",
59
+ "expo-mail-composer": "~15.0.1",
60
+ "expo-manifests": "~1.0.1",
61
+ "expo-maps": "~0.12.1",
62
+ "expo-media-library": "~18.0.1",
63
+ "expo-mesh-gradient": "~0.4.1",
64
+ "expo-module-template": "~11.0.1",
65
+ "expo-modules-core": "~3.0.1",
66
+ "expo-navigation-bar": "~5.0.1",
67
+ "expo-network": "~8.0.1",
68
+ "expo-notifications": "~0.32.1",
69
+ "expo-print": "~15.0.1",
70
+ "expo-live-photo": "~1.0.1",
71
+ "expo-router": "~6.0.0-beta.1",
72
+ "expo-screen-capture": "~8.0.1",
73
+ "expo-screen-orientation": "~9.0.1",
74
+ "expo-secure-store": "~15.0.1",
75
+ "expo-sensors": "~15.0.1",
76
+ "expo-sharing": "~14.0.1",
77
+ "expo-sms": "~14.0.1",
78
+ "expo-speech": "~14.0.1",
79
+ "expo-splash-screen": "~31.0.1",
80
+ "expo-sqlite": "~16.0.1",
81
+ "expo-status-bar": "~3.0.1",
82
+ "expo-store-review": "~9.0.1",
83
+ "expo-symbols": "~1.0.1",
84
+ "expo-system-ui": "~6.0.1",
85
+ "expo-task-manager": "~14.0.1",
86
+ "expo-tracking-transparency": "~6.0.1",
87
+ "expo-updates": "~29.0.1",
88
+ "expo-video-thumbnails": "~10.0.1",
89
+ "expo-video": "~3.0.1",
90
+ "expo-web-browser": "~15.0.1",
91
+ "jest-expo": "~54.0.0",
92
+ "lottie-react-native": "~7.3.1",
92
93
  "react": "19.1.0",
93
94
  "react-dom": "19.1.0",
94
- "react-native": "0.80.1",
95
- "react-native-web": "~0.20.0",
95
+ "react-native": "0.81.0",
96
+ "react-native-web": "~0.21.0",
96
97
  "react-native-edge-to-edge": "1.6.0",
97
- "react-native-gesture-handler": "~2.26.0",
98
+ "react-native-gesture-handler": "~2.28.0",
98
99
  "react-native-get-random-values": "~1.11.0",
99
- "react-native-keyboard-controller": "1.17.5",
100
+ "react-native-keyboard-controller": "1.18.4",
100
101
  "react-native-maps": "1.20.1",
101
- "react-native-pager-view": "6.8.1",
102
- "react-native-worklets": "~0.4.0",
103
- "react-native-reanimated": "~4.0.1",
104
- "react-native-screens": "~4.11.1",
105
- "react-native-safe-area-context": "5.4.0",
106
- "react-native-svg": "15.12.0",
102
+ "react-native-pager-view": "6.9.1",
103
+ "react-native-worklets": "~0.4.1",
104
+ "react-native-reanimated": "~4.0.2",
105
+ "react-native-screens": "4.14.0",
106
+ "react-native-safe-area-context": "5.6.0",
107
+ "react-native-svg": "15.12.1",
107
108
  "react-native-view-shot": "4.0.3",
108
- "react-native-webview": "13.13.5",
109
+ "react-native-webview": "13.15.0",
109
110
  "sentry-expo": "~7.0.0",
110
- "unimodules-app-loader": "5.1.4-canary-20250729-d8899ae",
111
+ "unimodules-app-loader": "~6.0.1",
111
112
  "unimodules-image-loader-interface": "~6.1.0",
112
- "@shopify/react-native-skia": "v2.0.0-next.4",
113
- "@shopify/flash-list": "1.8.3",
113
+ "@shopify/react-native-skia": "2.2.3",
114
+ "@shopify/flash-list": "2.0.2",
114
115
  "@sentry/react-native": "~6.14.0",
115
116
  "react-native-bootsplash": "^6.3.7"
116
117
  }
package/devtools.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './build/devtools';
1
+ export * from '@expo/devtools';
package/devtools.js CHANGED
@@ -1 +1 @@
1
- module.exports = require('./src/devtools');
1
+ module.exports = require('@expo/devtools');
@@ -0,0 +1,2 @@
1
+ // WARN: Internal re-export, don't rely on this to be a public API or use it outside of `expo/expo`'s monorepo
2
+ export * from 'babel-preset-expo';
@@ -0,0 +1,2 @@
1
+ // WARN: Internal re-export, don't rely on this to be a public API or use it outside of `expo/expo`'s monorepo
2
+ module.exports = require('babel-preset-expo');
@@ -0,0 +1,2 @@
1
+ // WARN: Internal re-export, you should avoid relying on this, if possible. Expect breaking changes between SDK releases
2
+ export * from 'expo-modules-autolinking/exports';
@@ -0,0 +1,2 @@
1
+ // WARN: Internal re-export, you should avoid relying on this, if possible. Expect breaking changes between SDK releases
2
+ module.exports = require('expo-modules-autolinking/exports');
@@ -0,0 +1,2 @@
1
+ // WARN: Internal re-export, don't rely on this to be a public API or use it outside of `expo/expo`'s monorepo
2
+ export * from '@expo/cli/internal/unstable-expo-updates-exports';
@@ -0,0 +1,2 @@
1
+ // WARN: Internal re-export, don't rely on this to be a public API or use it outside of `expo/expo`'s monorepo
2
+ module.exports = require('@expo/cli/internal/unstable-expo-updates-exports');
@@ -1,10 +1,23 @@
1
1
  // Copyright 2015-present 650 Industries. All rights reserved.
2
2
 
3
- import React_RCTAppDelegate
3
+ import React
4
4
 
5
5
  @MainActor public class ExpoReactNativeFactory: RCTReactNativeFactory {
6
6
  private let reactDelegate = ExpoReactDelegate(handlers: ExpoAppDelegateSubscriberRepository.reactDelegateHandlers)
7
7
 
8
+ @objc public override init(delegate: any RCTReactNativeFactoryDelegate) {
9
+ let releaseLevel = (Bundle.main.object(forInfoDictionaryKey: "ReactNativeReleaseLevel") as? String)
10
+ .flatMap { [
11
+ "canary": RCTReleaseLevel.Canary,
12
+ "experimental": RCTReleaseLevel.Experimental,
13
+ "stable": RCTReleaseLevel.Stable
14
+ ][$0.lowercased()]
15
+ }
16
+ ?? RCTReleaseLevel.Stable
17
+
18
+ super.init(delegate: delegate, releaseLevel: releaseLevel)
19
+ }
20
+
8
21
  @objc func createRCTRootViewFactory() -> RCTRootViewFactory {
9
22
  // Alan: This is temporary. We need to cast to ExpoReactNativeFactoryDelegate here because currently, if you extend RCTReactNativeFactory
10
23
  // from Swift, customizeRootView will not work on the new arch because the cast to RCTRootView will never
@@ -1,4 +1,4 @@
1
- import React_RCTAppDelegate
1
+ import React
2
2
 
3
3
  open class ExpoReactNativeFactoryDelegate: RCTDefaultReactNativeFactoryDelegate {
4
4
  open override func customize(_ rootView: UIView) {
@@ -14,7 +14,12 @@
14
14
  #endif // USE_HERMES
15
15
  #endif // __has_include(<reacthermes/HermesExecutorFactory.h>)
16
16
 
17
+ #if __has_include(<React_RCTAppDelegate/React-RCTAppDelegate-umbrella.h>)
17
18
  #import <React_RCTAppDelegate/React-RCTAppDelegate-umbrella.h>
19
+ #else
20
+ #import <React_RCTAppDelegate/React_RCTAppDelegate-umbrella.h>
21
+ #endif
22
+
18
23
 
19
24
  #if INLINE_USE_HERMES
20
25