expo 54.0.0-preview.0 → 54.0.0-preview.2
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/android/build.gradle +2 -2
- package/build/winter/fetch/FetchResponse.d.ts +2 -2
- package/build/winter/fetch/FetchResponse.d.ts.map +1 -1
- package/build/winter/fetch/NativeRequest.d.ts +1 -1
- package/build/winter/fetch/NativeRequest.d.ts.map +1 -1
- package/bundledNativeModules.json +79 -79
- package/internal/install-global.d.ts +2 -0
- package/internal/install-global.js +5 -0
- package/ios/AppDelegates/ExpoReactNativeFactory.swift +13 -0
- package/package.json +18 -19
- package/src/winter/fetch/FetchResponse.ts +4 -4
- package/src/winter/fetch/NativeRequest.ts +1 -1
- package/src/winter/fetch/__tests__/RequestUtils-test.ts +7 -7
- package/template.tgz +0 -0
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 = '54.0.0-preview.
|
|
35
|
+
version = '54.0.0-preview.2'
|
|
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.
|
|
46
|
+
versionName "54.0.0-preview.2"
|
|
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
|
|
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,
|
|
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;
|
|
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.
|
|
3
|
-
"@expo/metro-runtime": "~6.0.
|
|
2
|
+
"@expo/fingerprint": "~0.14.2",
|
|
3
|
+
"@expo/metro-runtime": "~6.0.2",
|
|
4
4
|
"@expo/vector-icons": "^14.1.0",
|
|
5
|
-
"@expo/ui": "~0.2.0-alpha.
|
|
5
|
+
"@expo/ui": "~0.2.0-alpha.2",
|
|
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,79 +16,79 @@
|
|
|
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.
|
|
20
|
-
"expo-application": "~7.0.
|
|
21
|
-
"expo-asset": "~12.0.
|
|
22
|
-
"expo-audio": "~1.0.
|
|
23
|
-
"expo-auth-session": "~7.0.
|
|
24
|
-
"expo-av": "~16.0.
|
|
25
|
-
"expo-background-fetch": "~14.0.
|
|
26
|
-
"expo-background-task": "~1.0.
|
|
27
|
-
"expo-battery": "~10.0.
|
|
28
|
-
"expo-blur": "~15.0.
|
|
29
|
-
"expo-brightness": "~14.0.
|
|
30
|
-
"expo-build-properties": "~1.0.
|
|
31
|
-
"expo-calendar": "~15.0.
|
|
32
|
-
"expo-camera": "~17.0.
|
|
33
|
-
"expo-cellular": "~8.0.
|
|
34
|
-
"expo-checkbox": "~5.0.
|
|
35
|
-
"expo-clipboard": "~8.0.
|
|
36
|
-
"expo-constants": "~18.0.
|
|
37
|
-
"expo-contacts": "~15.0.
|
|
38
|
-
"expo-crypto": "~15.0.
|
|
39
|
-
"expo-dev-client": "~6.0.
|
|
40
|
-
"expo-device": "~8.0.
|
|
41
|
-
"expo-document-picker": "~14.0.
|
|
42
|
-
"expo-file-system": "~19.0.
|
|
43
|
-
"expo-font": "~14.0.
|
|
44
|
-
"expo-gl": "~16.0.
|
|
19
|
+
"expo-apple-authentication": "~8.0.2",
|
|
20
|
+
"expo-application": "~7.0.2",
|
|
21
|
+
"expo-asset": "~12.0.2",
|
|
22
|
+
"expo-audio": "~1.0.2",
|
|
23
|
+
"expo-auth-session": "~7.0.2",
|
|
24
|
+
"expo-av": "~16.0.2",
|
|
25
|
+
"expo-background-fetch": "~14.0.2",
|
|
26
|
+
"expo-background-task": "~1.0.2",
|
|
27
|
+
"expo-battery": "~10.0.2",
|
|
28
|
+
"expo-blur": "~15.0.2",
|
|
29
|
+
"expo-brightness": "~14.0.2",
|
|
30
|
+
"expo-build-properties": "~1.0.2",
|
|
31
|
+
"expo-calendar": "~15.0.2",
|
|
32
|
+
"expo-camera": "~17.0.2",
|
|
33
|
+
"expo-cellular": "~8.0.2",
|
|
34
|
+
"expo-checkbox": "~5.0.2",
|
|
35
|
+
"expo-clipboard": "~8.0.2",
|
|
36
|
+
"expo-constants": "~18.0.2",
|
|
37
|
+
"expo-contacts": "~15.0.2",
|
|
38
|
+
"expo-crypto": "~15.0.2",
|
|
39
|
+
"expo-dev-client": "~6.0.2",
|
|
40
|
+
"expo-device": "~8.0.2",
|
|
41
|
+
"expo-document-picker": "~14.0.2",
|
|
42
|
+
"expo-file-system": "~19.0.2",
|
|
43
|
+
"expo-font": "~14.0.2",
|
|
44
|
+
"expo-gl": "~16.0.2",
|
|
45
45
|
"expo-google-app-auth": "~8.3.0",
|
|
46
|
-
"expo-haptics": "~15.0.
|
|
47
|
-
"expo-image": "~3.0.
|
|
46
|
+
"expo-haptics": "~15.0.2",
|
|
47
|
+
"expo-image": "~3.0.2",
|
|
48
48
|
"expo-image-loader": "~6.0.0",
|
|
49
|
-
"expo-image-manipulator": "~14.0.
|
|
50
|
-
"expo-image-picker": "~17.0.
|
|
51
|
-
"expo-intent-launcher": "~13.0.
|
|
52
|
-
"expo-insights": "~0.10.
|
|
53
|
-
"expo-keep-awake": "~15.0.
|
|
54
|
-
"expo-linear-gradient": "~15.0.
|
|
55
|
-
"expo-linking": "~8.0.
|
|
56
|
-
"expo-local-authentication": "~17.0.
|
|
57
|
-
"expo-localization": "~17.0.
|
|
58
|
-
"expo-location": "~19.0.
|
|
59
|
-
"expo-mail-composer": "~15.0.
|
|
60
|
-
"expo-manifests": "~1.0.
|
|
61
|
-
"expo-maps": "~0.12.
|
|
62
|
-
"expo-media-library": "~18.0.
|
|
63
|
-
"expo-mesh-gradient": "~0.4.
|
|
64
|
-
"expo-module-template": "~11.0.
|
|
65
|
-
"expo-modules-core": "~3.0.
|
|
66
|
-
"expo-navigation-bar": "~5.0.
|
|
67
|
-
"expo-network": "~8.0.
|
|
68
|
-
"expo-notifications": "~0.32.
|
|
69
|
-
"expo-print": "~15.0.
|
|
70
|
-
"expo-live-photo": "~1.0.
|
|
71
|
-
"expo-router": "~6.0.0-beta.
|
|
72
|
-
"expo-screen-capture": "~8.0.
|
|
73
|
-
"expo-screen-orientation": "~9.0.
|
|
74
|
-
"expo-secure-store": "~15.0.
|
|
75
|
-
"expo-sensors": "~15.0.
|
|
76
|
-
"expo-sharing": "~14.0.
|
|
77
|
-
"expo-sms": "~14.0.
|
|
78
|
-
"expo-speech": "~14.0.
|
|
79
|
-
"expo-splash-screen": "~31.0.
|
|
80
|
-
"expo-sqlite": "~16.0.
|
|
81
|
-
"expo-status-bar": "~3.0.
|
|
82
|
-
"expo-store-review": "~9.0.
|
|
83
|
-
"expo-symbols": "~1.0.
|
|
84
|
-
"expo-system-ui": "~6.0.
|
|
85
|
-
"expo-task-manager": "~14.0.
|
|
86
|
-
"expo-tracking-transparency": "~6.0.
|
|
87
|
-
"expo-updates": "~29.0.
|
|
88
|
-
"expo-video-thumbnails": "~10.0.
|
|
89
|
-
"expo-video": "~3.0.
|
|
90
|
-
"expo-web-browser": "~15.0.
|
|
91
|
-
"jest-expo": "~54.0.
|
|
49
|
+
"expo-image-manipulator": "~14.0.2",
|
|
50
|
+
"expo-image-picker": "~17.0.2",
|
|
51
|
+
"expo-intent-launcher": "~13.0.2",
|
|
52
|
+
"expo-insights": "~0.10.2",
|
|
53
|
+
"expo-keep-awake": "~15.0.2",
|
|
54
|
+
"expo-linear-gradient": "~15.0.2",
|
|
55
|
+
"expo-linking": "~8.0.2",
|
|
56
|
+
"expo-local-authentication": "~17.0.2",
|
|
57
|
+
"expo-localization": "~17.0.2",
|
|
58
|
+
"expo-location": "~19.0.2",
|
|
59
|
+
"expo-mail-composer": "~15.0.2",
|
|
60
|
+
"expo-manifests": "~1.0.2",
|
|
61
|
+
"expo-maps": "~0.12.2",
|
|
62
|
+
"expo-media-library": "~18.0.2",
|
|
63
|
+
"expo-mesh-gradient": "~0.4.2",
|
|
64
|
+
"expo-module-template": "~11.0.2",
|
|
65
|
+
"expo-modules-core": "~3.0.2",
|
|
66
|
+
"expo-navigation-bar": "~5.0.2",
|
|
67
|
+
"expo-network": "~8.0.2",
|
|
68
|
+
"expo-notifications": "~0.32.2",
|
|
69
|
+
"expo-print": "~15.0.2",
|
|
70
|
+
"expo-live-photo": "~1.0.2",
|
|
71
|
+
"expo-router": "~6.0.0-beta.2",
|
|
72
|
+
"expo-screen-capture": "~8.0.2",
|
|
73
|
+
"expo-screen-orientation": "~9.0.2",
|
|
74
|
+
"expo-secure-store": "~15.0.2",
|
|
75
|
+
"expo-sensors": "~15.0.2",
|
|
76
|
+
"expo-sharing": "~14.0.2",
|
|
77
|
+
"expo-sms": "~14.0.2",
|
|
78
|
+
"expo-speech": "~14.0.2",
|
|
79
|
+
"expo-splash-screen": "~31.0.2",
|
|
80
|
+
"expo-sqlite": "~16.0.2",
|
|
81
|
+
"expo-status-bar": "~3.0.2",
|
|
82
|
+
"expo-store-review": "~9.0.2",
|
|
83
|
+
"expo-symbols": "~1.0.2",
|
|
84
|
+
"expo-system-ui": "~6.0.2",
|
|
85
|
+
"expo-task-manager": "~14.0.2",
|
|
86
|
+
"expo-tracking-transparency": "~6.0.2",
|
|
87
|
+
"expo-updates": "~29.0.2",
|
|
88
|
+
"expo-video-thumbnails": "~10.0.2",
|
|
89
|
+
"expo-video": "~3.0.2",
|
|
90
|
+
"expo-web-browser": "~15.0.2",
|
|
91
|
+
"jest-expo": "~54.0.1",
|
|
92
92
|
"lottie-react-native": "~7.3.1",
|
|
93
93
|
"react": "19.1.0",
|
|
94
94
|
"react-dom": "19.1.0",
|
|
@@ -102,16 +102,16 @@
|
|
|
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
|
|
106
|
-
"react-native-safe-area-context": "5.6.0",
|
|
105
|
+
"react-native-screens": "~4.14.0",
|
|
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.
|
|
111
|
+
"unimodules-app-loader": "~6.0.2",
|
|
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",
|
|
115
|
-
"@sentry/react-native": "~6.
|
|
116
|
-
"react-native-bootsplash": "^6.3.
|
|
115
|
+
"@sentry/react-native": "~6.20.0",
|
|
116
|
+
"react-native-bootsplash": "^6.3.10"
|
|
117
117
|
}
|
|
@@ -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.
|
|
3
|
+
"version": "54.0.0-preview.2",
|
|
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.
|
|
79
|
-
"@expo/config": "~12.0.
|
|
80
|
-
"@expo/config-plugins": "~11.0.
|
|
81
|
-
"@expo/devtools": "0.1.
|
|
82
|
-
"@expo/fingerprint": "0.14.
|
|
78
|
+
"@expo/cli": "0.25.2",
|
|
79
|
+
"@expo/config": "~12.0.2",
|
|
80
|
+
"@expo/config-plugins": "~11.0.2",
|
|
81
|
+
"@expo/devtools": "0.1.2",
|
|
82
|
+
"@expo/fingerprint": "0.14.2",
|
|
83
83
|
"@expo/metro": "~0.1.1",
|
|
84
|
-
"@expo/metro-config": "0.21.
|
|
84
|
+
"@expo/metro-config": "0.21.2",
|
|
85
85
|
"@expo/vector-icons": "^14.0.0",
|
|
86
|
-
"babel-preset-expo": "~14.0.
|
|
87
|
-
"expo-asset": "~12.0.
|
|
88
|
-
"expo-constants": "~18.0.
|
|
89
|
-
"expo-
|
|
90
|
-
"expo-
|
|
91
|
-
"expo-
|
|
92
|
-
"expo-modules-
|
|
93
|
-
"expo-modules-core": "3.0.0",
|
|
86
|
+
"babel-preset-expo": "~14.0.2",
|
|
87
|
+
"expo-asset": "~12.0.2",
|
|
88
|
+
"expo-constants": "~18.0.2",
|
|
89
|
+
"expo-font": "~14.0.2",
|
|
90
|
+
"expo-keep-awake": "~15.0.2",
|
|
91
|
+
"expo-modules-autolinking": "3.0.2",
|
|
92
|
+
"expo-modules-core": "3.0.2",
|
|
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.
|
|
102
|
-
"@types/react-test-renderer": "
|
|
103
|
-
"expo-module-scripts": "^5.0.
|
|
100
|
+
"@types/react": "~19.1.10",
|
|
101
|
+
"@types/react-test-renderer": "~19.1.0",
|
|
102
|
+
"expo-module-scripts": "^5.0.2",
|
|
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": "
|
|
126
|
+
"gitHead": "eaa9b645058cf2233fbb27bb21a19bc605c90a88"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|