expo 54.0.0-preview.0 → 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.
@@ -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-preview.0'
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-preview.0"
46
+ versionName "54.0.0-preview.1"
47
47
  consumerProguardFiles("proguard-rules.pro")
48
48
  }
49
49
  testOptions {
@@ -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"}
@@ -1,8 +1,8 @@
1
1
  {
2
- "@expo/fingerprint": "~0.14.0",
3
- "@expo/metro-runtime": "~6.0.0",
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.2.0-alpha.0",
5
+ "@expo/ui": "~0.2.0-alpha.1",
6
6
  "@react-native-async-storage/async-storage": "2.2.0",
7
7
  "@react-native-community/datetimepicker": "8.4.4",
8
8
  "@react-native-masked-view/masked-view": "0.3.2",
@@ -16,78 +16,78 @@
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": "~8.0.0",
20
- "expo-application": "~7.0.0",
21
- "expo-asset": "~12.0.0",
22
- "expo-audio": "~1.0.0",
23
- "expo-auth-session": "~7.0.0",
24
- "expo-av": "~16.0.0",
25
- "expo-background-fetch": "~14.0.0",
26
- "expo-background-task": "~1.0.0",
27
- "expo-battery": "~10.0.0",
28
- "expo-blur": "~15.0.0",
29
- "expo-brightness": "~14.0.0",
30
- "expo-build-properties": "~1.0.0",
31
- "expo-calendar": "~15.0.0",
32
- "expo-camera": "~17.0.0",
33
- "expo-cellular": "~8.0.0",
34
- "expo-checkbox": "~5.0.0",
35
- "expo-clipboard": "~8.0.0",
36
- "expo-constants": "~18.0.0",
37
- "expo-contacts": "~15.0.0",
38
- "expo-crypto": "~15.0.0",
39
- "expo-dev-client": "~6.0.0",
40
- "expo-device": "~8.0.0",
41
- "expo-document-picker": "~14.0.0",
42
- "expo-file-system": "~19.0.0",
43
- "expo-font": "~14.0.0",
44
- "expo-gl": "~16.0.0",
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": "~15.0.0",
47
- "expo-image": "~3.0.0",
46
+ "expo-haptics": "~15.0.1",
47
+ "expo-image": "~3.0.1",
48
48
  "expo-image-loader": "~6.0.0",
49
- "expo-image-manipulator": "~14.0.0",
50
- "expo-image-picker": "~17.0.0",
51
- "expo-intent-launcher": "~13.0.0",
52
- "expo-insights": "~0.10.0",
53
- "expo-keep-awake": "~15.0.0",
54
- "expo-linear-gradient": "~15.0.0",
55
- "expo-linking": "~8.0.0",
56
- "expo-local-authentication": "~17.0.0",
57
- "expo-localization": "~17.0.0",
58
- "expo-location": "~19.0.0",
59
- "expo-mail-composer": "~15.0.0",
60
- "expo-manifests": "~1.0.0",
61
- "expo-maps": "~0.12.0",
62
- "expo-media-library": "~18.0.0",
63
- "expo-mesh-gradient": "~0.4.0",
64
- "expo-module-template": "~11.0.0",
65
- "expo-modules-core": "~3.0.0",
66
- "expo-navigation-bar": "~5.0.0",
67
- "expo-network": "~8.0.0",
68
- "expo-notifications": "~0.32.0",
69
- "expo-print": "~15.0.0",
70
- "expo-live-photo": "~1.0.0",
71
- "expo-router": "~6.0.0-beta.0",
72
- "expo-screen-capture": "~8.0.0",
73
- "expo-screen-orientation": "~9.0.0",
74
- "expo-secure-store": "~15.0.0",
75
- "expo-sensors": "~15.0.0",
76
- "expo-sharing": "~14.0.0",
77
- "expo-sms": "~14.0.0",
78
- "expo-speech": "~14.0.0",
79
- "expo-splash-screen": "~31.0.0",
80
- "expo-sqlite": "~16.0.0",
81
- "expo-status-bar": "~3.0.0",
82
- "expo-store-review": "~9.0.0",
83
- "expo-symbols": "~1.0.0",
84
- "expo-system-ui": "~6.0.0",
85
- "expo-task-manager": "~14.0.0",
86
- "expo-tracking-transparency": "~6.0.0",
87
- "expo-updates": "~29.0.0",
88
- "expo-video-thumbnails": "~10.0.0",
89
- "expo-video": "~3.0.0",
90
- "expo-web-browser": "~15.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
91
  "jest-expo": "~54.0.0",
92
92
  "lottie-react-native": "~7.3.1",
93
93
  "react": "19.1.0",
@@ -102,13 +102,13 @@
102
102
  "react-native-pager-view": "6.9.1",
103
103
  "react-native-worklets": "~0.4.1",
104
104
  "react-native-reanimated": "~4.0.2",
105
- "react-native-screens": "4.14.0-nightly-20250803-1df3db25a",
105
+ "react-native-screens": "4.14.0",
106
106
  "react-native-safe-area-context": "5.6.0",
107
107
  "react-native-svg": "15.12.1",
108
108
  "react-native-view-shot": "4.0.3",
109
109
  "react-native-webview": "13.15.0",
110
110
  "sentry-expo": "~7.0.0",
111
- "unimodules-app-loader": "~6.0.0",
111
+ "unimodules-app-loader": "~6.0.1",
112
112
  "unimodules-image-loader-interface": "~6.1.0",
113
113
  "@shopify/react-native-skia": "2.2.3",
114
114
  "@shopify/flash-list": "2.0.2",
@@ -5,6 +5,19 @@ import React
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo",
3
- "version": "54.0.0-preview.0",
3
+ "version": "54.0.0-preview.1",
4
4
  "description": "The Expo SDK",
5
5
  "main": "src/Expo.ts",
6
6
  "module": "src/Expo.ts",
@@ -75,22 +75,21 @@
75
75
  "homepage": "https://github.com/expo/expo/tree/main/packages/expo",
76
76
  "dependencies": {
77
77
  "@babel/runtime": "^7.20.0",
78
- "@expo/cli": "0.25.0",
79
- "@expo/config": "~12.0.0",
80
- "@expo/config-plugins": "~11.0.0",
81
- "@expo/devtools": "0.1.0",
82
- "@expo/fingerprint": "0.14.0",
78
+ "@expo/cli": "0.25.1",
79
+ "@expo/config": "~12.0.1",
80
+ "@expo/config-plugins": "~11.0.1",
81
+ "@expo/devtools": "0.1.1",
82
+ "@expo/fingerprint": "0.14.1",
83
83
  "@expo/metro": "~0.1.1",
84
- "@expo/metro-config": "0.21.0",
84
+ "@expo/metro-config": "0.21.1",
85
85
  "@expo/vector-icons": "^14.0.0",
86
- "babel-preset-expo": "~14.0.0",
87
- "expo-asset": "~12.0.0",
88
- "expo-constants": "~18.0.0",
89
- "expo-file-system": "~19.0.0",
90
- "expo-font": "~14.0.0",
91
- "expo-keep-awake": "~15.0.0",
92
- "expo-modules-autolinking": "3.0.0",
93
- "expo-modules-core": "3.0.0",
86
+ "babel-preset-expo": "~14.0.1",
87
+ "expo-asset": "~12.0.1",
88
+ "expo-constants": "~18.0.1",
89
+ "expo-font": "~14.0.1",
90
+ "expo-keep-awake": "~15.0.1",
91
+ "expo-modules-autolinking": "3.0.1",
92
+ "expo-modules-core": "3.0.1",
94
93
  "pretty-format": "^29.7.0",
95
94
  "react-native-edge-to-edge": "1.6.0",
96
95
  "react-refresh": "^0.14.2",
@@ -98,9 +97,9 @@
98
97
  },
99
98
  "devDependencies": {
100
99
  "@types/node": "^22.14.0",
101
- "@types/react": "~19.0.10",
102
- "@types/react-test-renderer": "^19.1.0",
103
- "expo-module-scripts": "^5.0.0",
100
+ "@types/react": "~19.1.10",
101
+ "@types/react-test-renderer": "~19.1.0",
102
+ "expo-module-scripts": "^5.0.1",
104
103
  "react": "19.1.0",
105
104
  "react-dom": "19.1.0",
106
105
  "react-native": "0.81.0",
@@ -124,5 +123,5 @@
124
123
  "optional": true
125
124
  }
126
125
  },
127
- "gitHead": "cb7062e2c17d1fb09522834aaaac0e19b766df62"
126
+ "gitHead": "2f7f90d0736af48cb542ccbc8addb836e330693a"
128
127
  }
@@ -14,14 +14,14 @@ type UniversalFormData = globalThis.FormData & RNFormData;
14
14
  */
15
15
  export class FetchResponse extends ConcreteNativeResponse implements Response {
16
16
  private streamingState: 'none' | 'started' | 'completed' = 'none';
17
- private bodyStream: ReadableStream<Uint8Array> | null = null;
17
+ private bodyStream: ReadableStream<Uint8Array<ArrayBuffer>> | null = null;
18
18
 
19
19
  constructor(private readonly abortCleanupFunction: AbortSubscriptionCleanupFunction) {
20
20
  super();
21
21
  this.addListener('readyForJSFinalization', this.finalize);
22
22
  }
23
23
 
24
- get body(): ReadableStream<Uint8Array> | null {
24
+ get body(): ReadableStream<Uint8Array<ArrayBuffer>> | null {
25
25
  if (this.bodyStream == null) {
26
26
  const response = this;
27
27
 
@@ -35,7 +35,7 @@ export class FetchResponse extends ConcreteNativeResponse implements Response {
35
35
  if (response.streamingState === 'completed') {
36
36
  return;
37
37
  }
38
- response.addListener('didReceiveResponseData', (data: Uint8Array) => {
38
+ response.addListener('didReceiveResponseData', (data: Uint8Array<ArrayBuffer>) => {
39
39
  if (!isControllerClosed) {
40
40
  controller.enqueue(data);
41
41
  }
@@ -113,7 +113,7 @@ export class FetchResponse extends ConcreteNativeResponse implements Response {
113
113
  return JSON.parse(text);
114
114
  }
115
115
 
116
- async bytes(): Promise<Uint8Array> {
116
+ async bytes(): Promise<Uint8Array<ArrayBuffer>> {
117
117
  return new Uint8Array(await this.arrayBuffer());
118
118
  }
119
119
 
@@ -32,7 +32,7 @@ export declare class NativeResponse extends SharedObject<NativeResponseEvents> {
32
32
  readonly statusText: string;
33
33
  readonly url: string;
34
34
  readonly redirected: boolean;
35
- startStreaming(): Promise<Uint8Array | null>;
35
+ startStreaming(): Promise<Uint8Array<ArrayBuffer> | null>;
36
36
  cancelStreaming(reason: string): void;
37
37
  arrayBuffer(): Promise<ArrayBuffer>;
38
38
  text(): Promise<string>;
@@ -5,7 +5,7 @@
5
5
 
6
6
  import { TextDecoder, TextEncoder } from 'node:util';
7
7
  import RNFormData from 'react-native/Libraries/Network/FormData';
8
- import { ReadableStream } from 'web-streams-polyfill';
8
+ import { ReadableStream as WebReadableStream } from 'web-streams-polyfill';
9
9
 
10
10
  import { type NativeHeadersType } from '../NativeRequest';
11
11
  import {
@@ -25,12 +25,12 @@ globalThis.TextEncoder ??= TextEncoder;
25
25
 
26
26
  describe(convertReadableStreamToUint8ArrayAsync, () => {
27
27
  it('should convert a readable stream to a Uint8Array', async () => {
28
- const stream = new ReadableStream<Uint8Array>({
28
+ const stream = new WebReadableStream<Uint8Array>({
29
29
  start(controller) {
30
30
  controller.enqueue(new TextEncoder().encode('Hello, world!'));
31
31
  controller.close();
32
32
  },
33
- });
33
+ }) as ReadableStream<Uint8Array>;
34
34
 
35
35
  const result = await convertReadableStreamToUint8ArrayAsync(stream);
36
36
  const resultString = new TextDecoder().decode(result);
@@ -38,22 +38,22 @@ describe(convertReadableStreamToUint8ArrayAsync, () => {
38
38
  });
39
39
 
40
40
  it('should handle an empty readable stream', async () => {
41
- const stream = new ReadableStream({
41
+ const stream = new WebReadableStream({
42
42
  start(controller) {
43
43
  controller.close();
44
44
  },
45
- });
45
+ }) as ReadableStream;
46
46
 
47
47
  const result = await convertReadableStreamToUint8ArrayAsync(stream);
48
48
  expect(result).toEqual(new Uint8Array());
49
49
  });
50
50
 
51
51
  it('should handle errors in the readable stream', async () => {
52
- const stream = new ReadableStream({
52
+ const stream = new WebReadableStream({
53
53
  start(controller) {
54
54
  controller.error(new Error('Stream error'));
55
55
  },
56
- });
56
+ }) as ReadableStream;
57
57
 
58
58
  await expect(convertReadableStreamToUint8ArrayAsync(stream)).rejects.toThrow('Stream error');
59
59
  });
package/template.tgz CHANGED
Binary file