expo 52.0.7 → 52.0.9

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.
@@ -33,7 +33,7 @@ def getRNVersion() {
33
33
  ensureDependeciesWereEvaluated(project)
34
34
 
35
35
  group = 'host.exp.exponent'
36
- version = '52.0.7'
36
+ version = '52.0.9'
37
37
 
38
38
  buildscript {
39
39
  // Simple helper that allows the root project to override versions declared by this library.
@@ -46,7 +46,7 @@ android {
46
46
  namespace "expo.core"
47
47
  defaultConfig {
48
48
  versionCode 1
49
- versionName "52.0.7"
49
+ versionName "52.0.9"
50
50
  consumerProguardFiles("proguard-rules.pro")
51
51
  }
52
52
  testOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"FormData.d.ts","sourceRoot":"","sources":["../../src/winter/FormData.ts"],"names":[],"mappings":"AA6BA,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAAQ;;;EAyH7D"}
1
+ {"version":3,"file":"FormData.d.ts","sourceRoot":"","sources":["../../src/winter/FormData.ts"],"names":[],"mappings":"AA6BA,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,QAAQ;;;EA8H7D"}
@@ -5,6 +5,7 @@ declare const ConcreteNativeResponse: typeof NativeResponse;
5
5
  * A response implementation for the `fetch.Response` API.
6
6
  */
7
7
  export declare class FetchResponse extends ConcreteNativeResponse implements Response {
8
+ private streamingStarted;
8
9
  get body(): ReadableStream<Uint8Array> | null;
9
10
  get headers(): Headers;
10
11
  get ok(): boolean;
@@ -15,6 +16,7 @@ export declare class FetchResponse extends ConcreteNativeResponse implements Res
15
16
  toString(): string;
16
17
  toJSON(): object;
17
18
  clone(): FetchResponse;
19
+ private removeAllRegisteredListeners;
18
20
  }
19
21
  export {};
20
22
  //# sourceMappingURL=FetchResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FetchResponse.d.ts","sourceRoot":"","sources":["../../../src/winter/fetch/FetchResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,QAAA,MAAM,sBAAsB,uBAA0D,CAAC;AAEvF;;GAEG;AACH,qBAAa,aAAc,SAAQ,sBAAuB,YAAW,QAAQ;IAC3E,IAAI,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAsB5C;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,SAAgB,IAAI,aAAa;IAE3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAY7B,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAK1B,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAShB,KAAK,IAAI,aAAa;CAGvB"}
1
+ {"version":3,"file":"FetchResponse.d.ts","sourceRoot":"","sources":["../../../src/winter/fetch/FetchResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,QAAA,MAAM,sBAAsB,uBAA0D,CAAC;AAEvF;;GAEG;AACH,qBAAa,aAAc,SAAQ,sBAAuB,YAAW,QAAQ;IAC3E,OAAO,CAAC,gBAAgB,CAAS;IAEjC,IAAI,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CA6B5C;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,EAAE,IAAI,OAAO,CAEhB;IAED,SAAgB,IAAI,aAAa;IAE3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAY7B,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAK1B,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAShB,KAAK,IAAI,aAAa;IAItB,OAAO,CAAC,4BAA4B;CAKrC"}
@@ -3,7 +3,7 @@
3
3
  "@expo/vector-icons": "^14.0.2",
4
4
  "@react-native-async-storage/async-storage": "1.23.1",
5
5
  "@react-native-community/datetimepicker": "8.2.0",
6
- "@react-native-masked-view/masked-view": "0.3.1",
6
+ "@react-native-masked-view/masked-view": "0.3.2",
7
7
  "@react-native-community/netinfo": "11.4.1",
8
8
  "@react-native-community/slider": "4.5.5",
9
9
  "@react-native-community/viewpager": "5.0.11",
@@ -14,10 +14,10 @@
14
14
  "expo-analytics-amplitude": "~11.3.0",
15
15
  "expo-app-auth": "~11.1.0",
16
16
  "expo-app-loader-provider": "~8.0.0",
17
- "expo-apple-authentication": "~7.1.0",
17
+ "expo-apple-authentication": "~7.1.2",
18
18
  "expo-application": "~6.0.1",
19
19
  "expo-asset": "~11.0.1",
20
- "expo-audio": "~0.2.3",
20
+ "expo-audio": "~0.2.4",
21
21
  "expo-auth-session": "~6.0.0",
22
22
  "expo-av": "~15.0.1",
23
23
  "expo-background-fetch": "~13.0.3",
@@ -26,23 +26,23 @@
26
26
  "expo-brightness": "~13.0.2",
27
27
  "expo-build-properties": "~0.13.1",
28
28
  "expo-calendar": "~14.0.2",
29
- "expo-camera": "~16.0.5",
29
+ "expo-camera": "~16.0.6",
30
30
  "expo-cellular": "~7.0.1",
31
31
  "expo-checkbox": "~4.0.0",
32
32
  "expo-clipboard": "~7.0.0",
33
33
  "expo-constants": "~17.0.3",
34
34
  "expo-contacts": "~14.0.2",
35
35
  "expo-crypto": "~14.0.1",
36
- "expo-dev-client": "~5.0.1",
36
+ "expo-dev-client": "~5.0.3",
37
37
  "expo-device": "~7.0.1",
38
38
  "expo-document-picker": "~13.0.1",
39
39
  "expo-face-detector": "~13.0.1",
40
- "expo-file-system": "~18.0.3",
40
+ "expo-file-system": "~18.0.4",
41
41
  "expo-font": "~13.0.1",
42
42
  "expo-gl": "~15.0.2",
43
43
  "expo-google-app-auth": "~8.3.0",
44
44
  "expo-haptics": "~14.0.0",
45
- "expo-image": "~2.0.0",
45
+ "expo-image": "~2.0.1",
46
46
  "expo-image-loader": "~5.0.0",
47
47
  "expo-image-manipulator": "~13.0.5",
48
48
  "expo-image-picker": "~16.0.2",
@@ -50,19 +50,19 @@
50
50
  "expo-insights": "~0.8.1",
51
51
  "expo-keep-awake": "~14.0.1",
52
52
  "expo-linear-gradient": "~14.0.1",
53
- "expo-linking": "~7.0.2",
53
+ "expo-linking": "~7.0.3",
54
54
  "expo-local-authentication": "~15.0.1",
55
55
  "expo-localization": "~16.0.0",
56
- "expo-location": "~18.0.1",
56
+ "expo-location": "~18.0.2",
57
57
  "expo-mail-composer": "~14.0.1",
58
58
  "expo-media-library": "~17.0.2",
59
59
  "expo-module-template": "~10.15.10",
60
- "expo-modules-core": "~2.0.3",
60
+ "expo-modules-core": "~2.0.4",
61
61
  "expo-navigation-bar": "~4.0.3",
62
62
  "expo-network": "~7.0.0",
63
63
  "expo-notifications": "~0.29.8",
64
64
  "expo-print": "~14.0.2",
65
- "expo-router": "~4.0.5",
65
+ "expo-router": "~4.0.7",
66
66
  "expo-screen-capture": "~7.0.0",
67
67
  "expo-screen-orientation": "~8.0.0",
68
68
  "expo-secure-store": "~14.0.0",
@@ -70,7 +70,7 @@
70
70
  "expo-sharing": "~13.0.0",
71
71
  "expo-sms": "~13.0.0",
72
72
  "expo-speech": "~13.0.0",
73
- "expo-splash-screen": "~0.29.10",
73
+ "expo-splash-screen": "~0.29.12",
74
74
  "expo-sqlite": "~15.0.3",
75
75
  "expo-status-bar": "~2.0.0",
76
76
  "expo-store-review": "~8.0.0",
@@ -78,12 +78,12 @@
78
78
  "expo-system-ui": "~4.0.3",
79
79
  "expo-task-manager": "~12.0.3",
80
80
  "expo-tracking-transparency": "~5.0.0",
81
- "expo-updates": "~0.26.7",
81
+ "expo-updates": "~0.26.8",
82
82
  "expo-video-thumbnails": "~9.0.2",
83
- "expo-video": "~2.0.0",
83
+ "expo-video": "~2.0.1",
84
84
  "expo-web-browser": "~14.0.1",
85
- "jest-expo": "~52.0.1",
86
- "lottie-react-native": "7.0.0",
85
+ "jest-expo": "~52.0.2",
86
+ "lottie-react-native": "7.1.0",
87
87
  "react": "18.3.1",
88
88
  "react-dom": "18.3.1",
89
89
  "react-native": "0.76.2",
@@ -91,13 +91,13 @@
91
91
  "react-native-gesture-handler": "~2.20.2",
92
92
  "react-native-get-random-values": "~1.11.0",
93
93
  "react-native-maps": "1.18.0",
94
- "react-native-pager-view": "6.4.1",
94
+ "react-native-pager-view": "6.5.1",
95
95
  "react-native-reanimated": "~3.16.1",
96
- "react-native-screens": "~4.0.0",
96
+ "react-native-screens": "~4.1.0",
97
97
  "react-native-safe-area-context": "4.12.0",
98
98
  "react-native-svg": "15.8.0",
99
- "react-native-view-shot": "~4.0.0",
100
- "react-native-webview": "13.12.2",
99
+ "react-native-view-shot": "~4.0.2",
100
+ "react-native-webview": "13.12.4",
101
101
  "sentry-expo": "~7.0.0",
102
102
  "unimodules-app-loader": "~5.0.0",
103
103
  "unimodules-image-loader-interface": "~6.1.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo",
3
- "version": "52.0.7",
3
+ "version": "52.0.9",
4
4
  "description": "The Expo SDK",
5
5
  "main": "src/Expo.ts",
6
6
  "module": "src/Expo.ts",
@@ -68,20 +68,20 @@
68
68
  "homepage": "https://github.com/expo/expo/tree/main/packages/expo",
69
69
  "dependencies": {
70
70
  "@babel/runtime": "^7.20.0",
71
- "@expo/cli": "0.21.5",
72
- "@expo/config": "~10.0.4",
73
- "@expo/config-plugins": "9.0.9",
71
+ "@expo/cli": "0.21.7",
72
+ "@expo/config": "~10.0.5",
73
+ "@expo/config-plugins": "~9.0.10",
74
74
  "@expo/fingerprint": "0.11.2",
75
75
  "@expo/metro-config": "0.19.4",
76
76
  "@expo/vector-icons": "^14.0.0",
77
77
  "babel-preset-expo": "~12.0.1",
78
78
  "expo-asset": "~11.0.1",
79
79
  "expo-constants": "~17.0.3",
80
- "expo-file-system": "~18.0.3",
80
+ "expo-file-system": "~18.0.4",
81
81
  "expo-font": "~13.0.1",
82
82
  "expo-keep-awake": "~14.0.1",
83
83
  "expo-modules-autolinking": "2.0.2",
84
- "expo-modules-core": "2.0.3",
84
+ "expo-modules-core": "2.0.4",
85
85
  "fbemitter": "^3.0.0",
86
86
  "web-streams-polyfill": "^3.3.2",
87
87
  "whatwg-url-without-unicode": "8.0.0-3"
@@ -112,5 +112,5 @@
112
112
  "optional": true
113
113
  }
114
114
  },
115
- "gitHead": "9ff989048e66f85facda048e4be78329d8665e7c"
115
+ "gitHead": "8b7a5da5dc407c5242f4c512e892c2ca3506a096"
116
116
  }
@@ -114,11 +114,13 @@ export function installFormDataPatch(formData: typeof FormData) {
114
114
  );
115
115
  }
116
116
  for (const part of this._parts) {
117
+ // @ts-ignore: part[1] could throw an error in Node.js runtime because of `File` type mismatch.
117
118
  callback.call(thisArg, part[1], part[0], this);
118
119
  }
119
120
  };
120
121
 
121
122
  // Required for RSC: https://github.com/facebook/react/blob/985747f81033833dca22f30b0c04704dd4bd3714/packages/react-server/src/ReactFlightServer.js#L2117
123
+ // @ts-ignore: DOM.iterable is disabled for jest compat
122
124
  formData.prototype.entries = function* entries(
123
125
  this: ReactNativeFormDataInternal
124
126
  ): IterableIterator<[string, FormDataEntryValue]> {
@@ -129,12 +131,14 @@ export function installFormDataPatch(formData: typeof FormData) {
129
131
  }
130
132
  };
131
133
 
134
+ // @ts-ignore: DOM.iterable is disabled for jest compat
132
135
  formData.prototype.keys ??= function* keys(this: ReactNativeFormDataInternal) {
133
136
  for (const part of this._parts) {
134
137
  yield part[0];
135
138
  }
136
139
  };
137
140
 
141
+ // @ts-ignore: DOM.iterable is disabled for jest compat
138
142
  formData.prototype.values ??= function* values(
139
143
  this: ReactNativeFormDataInternal
140
144
  ): IterableIterator<FormDataEntryValue> {
@@ -145,6 +149,7 @@ export function installFormDataPatch(formData: typeof FormData) {
145
149
  }
146
150
  };
147
151
 
152
+ // @ts-ignore: DOM.iterable is disabled for jest compat
148
153
  formData.prototype[Symbol.iterator] = formData.prototype.entries;
149
154
 
150
155
  return formData;
@@ -9,6 +9,8 @@ const ConcreteNativeResponse = ExpoFetchModule.NativeResponse as typeof NativeRe
9
9
  * A response implementation for the `fetch.Response` API.
10
10
  */
11
11
  export class FetchResponse extends ConcreteNativeResponse implements Response {
12
+ private streamingStarted = false;
13
+
12
14
  get body(): ReadableStream<Uint8Array> | null {
13
15
  const response = this;
14
16
  return new ReadableStream({
@@ -18,16 +20,23 @@ export class FetchResponse extends ConcreteNativeResponse implements Response {
18
20
  });
19
21
 
20
22
  response.addListener('didComplete', () => {
23
+ response.removeAllRegisteredListeners();
21
24
  controller.close();
22
25
  });
23
26
 
24
27
  response.addListener('didFailWithError', (error: string) => {
28
+ response.removeAllRegisteredListeners();
25
29
  controller.error(new Error(error));
26
30
  });
27
-
28
- response.startStreaming();
31
+ },
32
+ pull() {
33
+ if (!response.streamingStarted) {
34
+ response.startStreaming();
35
+ response.streamingStarted = true;
36
+ }
29
37
  },
30
38
  cancel(reason) {
39
+ response.removeAllRegisteredListeners();
31
40
  response.cancelStreaming(String(reason));
32
41
  },
33
42
  });
@@ -81,4 +90,10 @@ export class FetchResponse extends ConcreteNativeResponse implements Response {
81
90
  clone(): FetchResponse {
82
91
  throw new Error('Not implemented');
83
92
  }
93
+
94
+ private removeAllRegisteredListeners() {
95
+ this.removeAllListeners('didReceiveResponseData');
96
+ this.removeAllListeners('didComplete');
97
+ this.removeAllListeners('didFailWithError');
98
+ }
84
99
  }
@@ -1,5 +1,7 @@
1
1
  // This file configures the runtime environment to increase compatibility with WinterCG.
2
2
  // https://wintercg.org/
3
+
4
+ // @ts-ignore: PolyfillFunctions does not have types exported
3
5
  import { polyfillGlobal as installGlobal } from 'react-native/Libraries/Utilities/PolyfillFunctions';
4
6
 
5
7
  import { installFormDataPatch } from './FormData';
@@ -1,18 +0,0 @@
1
- declare const process: {
2
- env: {
3
- NODE_ENV: string;
4
- /** Used in `@expo/metro-runtime`. */
5
- EXPO_DEV_SERVER_ORIGIN?: string;
6
-
7
- EXPO_ROUTER_IMPORT_MODE?: string;
8
- EXPO_ROUTER_ABS_APP_ROOT?: string;
9
- EXPO_ROUTER_APP_ROOT?: string;
10
-
11
- /** Maps to the `experiments.baseUrl` property in the project Expo config. This is injected by `babel-preset-expo` and supports automatic cache invalidation. */
12
- EXPO_BASE_URL?: string;
13
-
14
- /** Build-time representation of the `Platform.OS` value that the current JavaScript was bundled for. Does not support platform shaking wrapped require statements. */
15
- EXPO_OS?: string;
16
- };
17
- [key: string]: any;
18
- };