Skip to content

Commit 47b7ead

Browse files
chrisbobbegnprice
authored andcommitted
deps: Upgrade to Expo SDK 45
Following the "Bare workflow" instructions for upgrading: https://blog.expo.dev/expo-sdk-45-f4e332954a68#5954 As with the last one, 44 in 3edc37a, the `expo upgrade` command went through a phase it described as "Updating packages to compatible versions (where known)," and that changed several of our dependency ranges, even of non-Expo things. (For speculation on what that phase is about, see 3edc37a.) We rejected version-range changes to these libraries that would have resulted in downgrades to the libraries' resolved versions: - react-native-safe-area-context from 4.3.1 to 4.2.4 - react-native-screens from 3.13.1 to 3.11.1 - react-native-webview from 11.22.2 to 11.18.1 We rejected upgrades to @react-native-community/netinfo and react-native-reanimated for the reasons we gave in the Expo 44 upgrade; see those at zulip#5441 (comment) . And we rejected bumping react-native from 0.67.4 to 0.68.2, with optimism that we can get this Expo upgrade done before that RN upgrade, which is zulip#5344. We took the rest. For the step > Update your `App.Delegate.mm` (you should have moved from .m to > .mm in the previous step) according to this diff , we found that we'd already taken some of those changes when Expo backported them to the Expo 44 template app. Others, like the .m to .mm rename, we'd like to postpone until we do the RN 68 upgrade. A full audit of Expo's template-app commits from 44 to 45 found no changes we'd be interested in applying, except some related to RN 68 that we'd like to do with that upgrade; I've mentioned those on our RN 68 upgrade issue. See: zulip#5507 (comment) I tested basic functionality on my iPhone 13 Pro running iOS 15.6, and on the office Android device, a Samsung Galaxy S9 running Android 9. I didn't see any problems with building or running.
1 parent 9f17d07 commit 47b7ead

17 files changed

+610
-390
lines changed

ios/Podfile.lock

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@ PODS:
22
- boost (1.76.0)
33
- CocoaAsyncSocket (7.6.5)
44
- DoubleConversion (1.1.6)
5-
- EXAppleAuthentication (4.3.0):
5+
- EXAppleAuthentication (4.2.1):
66
- ExpoModulesCore
7-
- EXApplication (4.0.2):
7+
- EXApplication (4.1.0):
88
- ExpoModulesCore
9-
- EXConstants (13.0.2):
9+
- EXConstants (13.1.1):
1010
- ExpoModulesCore
11-
- EXErrorRecovery (3.0.5):
11+
- EXErrorRecovery (3.1.0):
1212
- ExpoModulesCore
13-
- EXFileSystem (13.1.4):
13+
- EXFileSystem (14.0.0):
1414
- ExpoModulesCore
15-
- EXFont (10.0.5):
15+
- EXFont (10.1.0):
1616
- ExpoModulesCore
17-
- EXKeepAwake (10.0.2):
17+
- Expo (45.0.8):
1818
- ExpoModulesCore
19-
- Expo (44.0.6):
19+
- ExpoKeepAwake (10.1.1):
2020
- ExpoModulesCore
21-
- ExpoModulesCore (0.6.5):
21+
- ExpoModulesCore (0.9.2):
2222
- React-Core
2323
- ReactCommon/turbomodule/core
24-
- EXScreenOrientation (4.1.2):
24+
- ExpoWebBrowser (10.2.1):
2525
- ExpoModulesCore
26-
- React-Core
27-
- EXSQLite (10.3.0):
26+
- EXScreenOrientation (4.2.0):
2827
- ExpoModulesCore
29-
- EXWebBrowser (10.1.1):
28+
- React-Core
29+
- EXSQLite (10.2.0):
3030
- ExpoModulesCore
3131
- FBLazyVector (0.67.4)
3232
- FBReactNativeSpec (0.67.4):
@@ -384,7 +384,7 @@ PODS:
384384
- React-perflogger (= 0.67.4)
385385
- rn-fetch-blob (0.11.2):
386386
- React-Core
387-
- RNCAsyncStorage (1.17.10):
387+
- RNCAsyncStorage (1.17.11):
388388
- React-Core
389389
- RNCMaskedView (0.1.11):
390390
- React
@@ -448,12 +448,12 @@ DEPENDENCIES:
448448
- EXErrorRecovery (from `../node_modules/expo-error-recovery/ios`)
449449
- EXFileSystem (from `../node_modules/expo-file-system/ios`)
450450
- EXFont (from `../node_modules/expo-font/ios`)
451-
- EXKeepAwake (from `../node_modules/expo-keep-awake/ios`)
452451
- Expo (from `../node_modules/expo/ios`)
452+
- ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`)
453453
- ExpoModulesCore (from `../node_modules/expo-modules-core/ios`)
454+
- ExpoWebBrowser (from `../node_modules/expo-web-browser/ios`)
454455
- EXScreenOrientation (from `../node_modules/expo-screen-orientation/ios`)
455456
- EXSQLite (from `../node_modules/expo-sqlite/ios`)
456-
- EXWebBrowser (from `../node_modules/expo-web-browser/ios`)
457457
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
458458
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
459459
- Flipper (= 0.99.0)
@@ -560,18 +560,18 @@ EXTERNAL SOURCES:
560560
:path: "../node_modules/expo-file-system/ios"
561561
EXFont:
562562
:path: "../node_modules/expo-font/ios"
563-
EXKeepAwake:
564-
:path: "../node_modules/expo-keep-awake/ios"
565563
Expo:
566564
:path: "../node_modules/expo/ios"
565+
ExpoKeepAwake:
566+
:path: "../node_modules/expo-keep-awake/ios"
567567
ExpoModulesCore:
568568
:path: "../node_modules/expo-modules-core/ios"
569+
ExpoWebBrowser:
570+
:path: "../node_modules/expo-web-browser/ios"
569571
EXScreenOrientation:
570572
:path: "../node_modules/expo-screen-orientation/ios"
571573
EXSQLite:
572574
:path: "../node_modules/expo-sqlite/ios"
573-
EXWebBrowser:
574-
:path: "../node_modules/expo-web-browser/ios"
575575
FBLazyVector:
576576
:path: "../node_modules/react-native/Libraries/FBLazyVector"
577577
FBReactNativeSpec:
@@ -667,18 +667,18 @@ SPEC CHECKSUMS:
667667
boost: a7c83b31436843459a1961bfd74b96033dc77234
668668
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
669669
DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
670-
EXAppleAuthentication: b9e9d8fa9b0cc5277b2121eb809cf0f57c2496a7
671-
EXApplication: 54fe5bd6268d697771645e8f1aef8b806a65247a
672-
EXConstants: 88bf79622fbd9b476c96d8ec57fe97ca44fe8e3c
673-
EXErrorRecovery: b0d7582714a2cc896e94a2308a356f94dbf14ef7
674-
EXFileSystem: 08a3033ac372b6346becf07839e1ccef26fb1058
675-
EXFont: 2597c10ac85a69d348d44d7873eccf5a7576ef5e
676-
EXKeepAwake: bf48d7f740a5cd2befed6cf9a49911d385c6c47d
677-
Expo: 534e51e607aba8229293297da5585f4b26f50fa1
678-
ExpoModulesCore: 32c0ccb47f477d330ee93db72505380adf0de09a
679-
EXScreenOrientation: ca9375ec57e5706128062867516da0b03a97ef64
680-
EXSQLite: 82a4ca937f19d3cbbb6dba9e11d8e963175527c9
681-
EXWebBrowser: f1573262c5de753987ed526c630076eda130804d
670+
EXAppleAuthentication: 709a807fe7f48ac6986a2ceed206ee6a8baf28df
671+
EXApplication: d6562af1204162e0ac46d341a7d4e5dc720b33de
672+
EXConstants: fdbe52259365b6a6faaa5e99a3b82cfa6bc2eb61
673+
EXErrorRecovery: 3ce46e5d42e53c0371ff048a7f0cbc959968ef4a
674+
EXFileSystem: 2aa2d9289f84bca9532b9ccbd81504fa31eb1ded
675+
EXFont: 04235cc22e6fef86028feb67db452978dc6f240f
676+
Expo: 1133eaf0e12dc265ac82a256f3815401b7570f96
677+
ExpoKeepAwake: c0c494b442ecd8122974c13b93ccfb57bd408e88
678+
ExpoModulesCore: e4278a668e8c13c0269ed8b8a4200989deea2973
679+
ExpoWebBrowser: 4b5f9633e5f169dc948587cb6d26d2d1d1406187
680+
EXScreenOrientation: e3c072fb0add472a3037482ea43ccbade9b88a25
681+
EXSQLite: 2b9accd925438293f9f39e0a57a08cca13bdffb2
682682
FBLazyVector: f7b0632c6437e312acf6349288d9aa4cb6d59030
683683
FBReactNativeSpec: 0f4e1f4cfeace095694436e7c7fcc5bf4b03a0ff
684684
Flipper: 30e8eeeed6abdc98edaf32af0cda2f198be4b733
@@ -726,7 +726,7 @@ SPEC CHECKSUMS:
726726
React-runtimeexecutor: a9d3c82ddf7ffdad9fbe6a81c6d6f8c06385464d
727727
ReactCommon: 07d0c460b9ba9af3eaf1b8f5abe7daaad28c9c4e
728728
rn-fetch-blob: f525a73a78df9ed5d35e67ea65e79d53c15255bc
729-
RNCAsyncStorage: 0c357f3156fcb16c8589ede67cc036330b6698ca
729+
RNCAsyncStorage: 8616bd5a58af409453ea4e1b246521bb76578d60
730730
RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489
731731
RNCPushNotificationIOS: 87b8d16d3ede4532745e05b03c42cff33a36cc45
732732
RNDeviceInfo: aad3c663b25752a52bf8fce93f2354001dd185aa

ios/ZulipMobile.xcodeproj/project.pbxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,7 @@
410410
"-ObjC",
411411
"-lc++",
412412
);
413+
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
413414
PRODUCT_BUNDLE_IDENTIFIER = org.zulip.Zulip;
414415
PRODUCT_NAME = ZulipMobile;
415416
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -443,6 +444,7 @@
443444
"-ObjC",
444445
"-lc++",
445446
);
447+
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
446448
PRODUCT_BUNDLE_IDENTIFIER = org.zulip.Zulip;
447449
PRODUCT_NAME = ZulipMobile;
448450
PROVISIONING_PROFILE_SPECIFIER = "";

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"dependencies": {
2424
"@expo/react-native-action-sheet": "^3.8.0",
25-
"@react-native-async-storage/async-storage": "^1.13.0",
25+
"@react-native-async-storage/async-storage": "~1.17.3",
2626
"@react-native-camera-roll/camera-roll": "^5.0.4",
2727
"@react-native-community/masked-view": "^0.1.10",
2828
"@react-native-community/netinfo": "6.0.0",
@@ -31,18 +31,18 @@
3131
"@react-navigation/material-top-tabs": "^5.2.19",
3232
"@react-navigation/native": "^5.7.6",
3333
"@react-navigation/stack": "^5.9.3",
34-
"@sentry/react-native": "^3.3.3",
34+
"@sentry/react-native": "^3.1.1",
3535
"@zulip/shared": "0.0.16",
3636
"base-64": "^1.0.0",
3737
"blueimp-md5": "^2.10.0",
3838
"color": "^4.0.1",
3939
"date-fns": "^2.23.0",
40-
"expo": "^44.0.0",
41-
"expo-apple-authentication": "^4.0.0",
42-
"expo-application": "~4.0.1",
43-
"expo-screen-orientation": "~4.1.1",
44-
"expo-sqlite": "^10.0.0",
45-
"expo-web-browser": "~10.1.0",
40+
"expo": "^45.0.0",
41+
"expo-apple-authentication": "~4.2.1",
42+
"expo-application": "~4.1.0",
43+
"expo-screen-orientation": "~4.2.0",
44+
"expo-sqlite": "~10.2.0",
45+
"expo-web-browser": "~10.2.1",
4646
"flow-enums-runtime": "^0.0.6",
4747
"immutable": "^4.0.0-rc.12",
4848
"invariant": "^2.2.4",
@@ -89,7 +89,7 @@
8989
"@octokit/core": "^3.4.0",
9090
"@rollup/plugin-babel": "^5.2.0",
9191
"@rollup/plugin-node-resolve": "^13.0.4",
92-
"@types/react-native": "^0.67.7",
92+
"@types/react-native": "~0.67.6",
9393
"@vusion/webfonts-generator": "^0.8.0",
9494
"babel-plugin-transform-flow-enums": "^0.0.2",
9595
"core-js": "^3.1.4",
@@ -114,7 +114,7 @@
114114
"jest-cli": "^26.4.1",
115115
"jest-environment-jsdom": "^26.3.0",
116116
"jest-environment-jsdom-global": "^2.0.4",
117-
"jest-expo": "^44.0.0",
117+
"jest-expo": "^45.0.0",
118118
"jest-extended": "^0.11.5",
119119
"jetifier": "^2.0.0",
120120
"metro-react-native-babel-preset": "^0.66.2",

types/expo-modules-core/build/NativeModulesProxy.native.js.flow

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@
33
*/
44
import { type ProxyNativeModule } from './NativeModulesProxy.types';
55
declare var NativeModulesProxy: { [moduleName: string]: ProxyNativeModule, ... };
6-
declare export function useExpoTurboModules(state?: boolean): void;
76
export default NativeModulesProxy;

types/expo-modules-core/build/NativeModulesProxy.types.js.flow

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,3 @@ export type ProxyNativeModule = {
77
removeListeners: (count: number) => void,
88
...
99
};
10-
11-
export type TurboNativeModuleProxy = {
12-
callMethodAsync: <ReturnType>(
13-
moduleName: string,
14-
methodName: string,
15-
args: any[],
16-
) => Promise<ReturnType>,
17-
...
18-
};

types/expo-modules-core/build/index.js.flow

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,12 @@ import Platform from './Platform';
1515
import SyntheticPlatformEmitter from './SyntheticPlatformEmitter';
1616
import { CodedError } from './errors/CodedError';
1717
import { UnavailabilityError } from './errors/UnavailabilityError';
18-
export { default as deprecate } from './deprecate';
1918

19+
/* tsflower-unimplemented: ImportDeclaration with no import clause */
20+
/*
21+
import './sweet/setUpErrorManager.fx'; */
22+
23+
export { default as deprecate } from './deprecate';
2024
export {
2125
DeviceEventEmitter,
2226
EventEmitter,
@@ -31,6 +35,8 @@ export {
3135
export type ProxyNativeModule = ProxyNativeModule_;
3236
export type Subscription = Subscription_;
3337

38+
export * from './requireNativeModule';
39+
3440
// See comment on DeviceEventEmitterStatic import, above.
3541
declare export var RCTDeviceEventEmitter: $FlowFixMe; // $tsflower_import_type$_$react_2d_native$DeviceEventEmitterStatic
3642

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/* @flow
2+
* @generated by TsFlower
3+
*/
4+
/* tsflower-unimplemented: ModuleDeclaration */
5+
/* declare global {
6+
var ExpoModules: undefined | {
7+
[key: string]: any;
8+
};
9+
} */
10+
11+
declare export function requireNativeModule<ModuleType = any>(moduleName: string): ModuleType;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/* @flow
2+
* @generated by TsFlower
3+
*/
4+
import type { ProxyNativeModule as $tsflower_import_type$_$_2e__2e_$ProxyNativeModule } from '..';
5+
declare var _default: $tsflower_import_type$_$_2e__2e_$ProxyNativeModule;
6+
export default _default;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/* @flow
2+
* @generated by TsFlower
3+
*/
4+
export {};

types/expo-web-browser/build/WebBrowser.js.flow

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@ import {
1515
type WebBrowserResultTypeT as WebBrowserResultTypeT_,
1616
type WebBrowserWarmUpResult as WebBrowserWarmUpResult_,
1717
type WebBrowserWindowFeatures as WebBrowserWindowFeatures_,
18+
WebBrowserPresentationStyle,
19+
type WebBrowserPresentationStyleT as WebBrowserPresentationStyleT_,
20+
type AuthSessionOpenOptions as AuthSessionOpenOptions_,
1821
} from "./WebBrowser.types";
1922

20-
export { WebBrowserResultType };
23+
export { WebBrowserResultType, WebBrowserPresentationStyle };
2124

2225
export type WebBrowserAuthSessionResult = WebBrowserAuthSessionResult_;
2326
export type WebBrowserCompleteAuthSessionOptions = WebBrowserCompleteAuthSessionOptions_;
@@ -31,13 +34,15 @@ export type WebBrowserResult = WebBrowserResult_;
3134
export type WebBrowserResultTypeT = WebBrowserResultTypeT_;
3235
export type WebBrowserWarmUpResult = WebBrowserWarmUpResult_;
3336
export type WebBrowserWindowFeatures = WebBrowserWindowFeatures_;
37+
export type WebBrowserPresentationStyleT = WebBrowserPresentationStyleT_;
38+
export type AuthSessionOpenOptions = AuthSessionOpenOptions_;
3439

3540
declare export function getCustomTabsSupportingBrowsersAsync(): Promise<WebBrowserCustomTabsResults>;
3641
declare export function warmUpAsync(browserPackage?: string): Promise<WebBrowserWarmUpResult>;
3742
declare export function mayInitWithUrlAsync(url: string, browserPackage?: string): Promise<WebBrowserMayInitWithUrlResult>;
3843
declare export function coolDownAsync(browserPackage?: string): Promise<WebBrowserCoolDownResult>;
3944
declare export function openBrowserAsync(url: string, browserParams?: WebBrowserOpenOptions): Promise<WebBrowserResult>;
4045
declare export function dismissBrowser(): void;
41-
declare export function openAuthSessionAsync(url: string, redirectUrl: string, browserParams?: WebBrowserOpenOptions): Promise<WebBrowserAuthSessionResult>;
46+
declare export function openAuthSessionAsync(url: string, redirectUrl: string, options?: AuthSessionOpenOptions): Promise<WebBrowserAuthSessionResult>;
4247
declare export function dismissAuthSession(): void;
4348
declare export function maybeCompleteAuthSession(options?: WebBrowserCompleteAuthSessionOptions): WebBrowserCompleteAuthSessionResult;

types/expo-web-browser/build/WebBrowser.types.js.flow

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@ export type WebBrowserOpenOptions = {
1616
controlsColor?: string,
1717
dismissButtonStyle?: "done" | "close" | "cancel",
1818
readerMode?: boolean,
19+
presentationStyle?: WebBrowserPresentationStyleT,
1920
windowName?: string,
2021
windowFeatures?: string | WebBrowserWindowFeatures,
2122
...
2223
};
2324

25+
export type AuthSessionOpenOptions = WebBrowserOpenOptions & { preferEphemeralSession?: boolean, ... };
2426
export type WebBrowserAuthSessionResult = WebBrowserRedirectResult | WebBrowserResult;
2527

2628
export type WebBrowserCustomTabsResults = {
@@ -48,6 +50,50 @@ declare export var WebBrowserResultType: {|
4850
|}
4951
export type WebBrowserResultTypeT = $Values<typeof WebBrowserResultType>;
5052

53+
/**
54+
* A browser presentation style. Its values are directly mapped to the [`UIModalPresentationStyle`](https://developer.apple.com/documentation/uikit/uiviewcontroller/1621355-modalpresentationstyle).
55+
*
56+
* @platform ios
57+
*/
58+
declare export var WebBrowserPresentationStyle: {|
59+
/**
60+
* A presentation style in which the presented browser covers the screen.
61+
*/
62+
+FULL_SCREEN: "fullScreen",
63+
/**
64+
* A presentation style that partially covers the underlying content.
65+
*/
66+
+PAGE_SHEET: "pageSheet",
67+
/**
68+
* A presentation style that displays the browser centered in the screen.
69+
*/
70+
+FORM_SHEET: "formSheet",
71+
/**
72+
* A presentation style where the browser is displayed over the app's content.
73+
*/
74+
+CURRENT_CONTEXT: "currentContext",
75+
/**
76+
* A presentation style in which the browser view covers the screen.
77+
*/
78+
+OVER_FULL_SCREEN: "overFullScreen",
79+
/**
80+
* A presentation style where the browser is displayed over the app's content.
81+
*/
82+
+OVER_CURRENT_CONTEXT: "overCurrentContext",
83+
/**
84+
* A presentation style where the browser is displayed in a popover view.
85+
*/
86+
+POPOVER: "popover",
87+
/**
88+
* The default presentation style chosen by the system.
89+
* On older iOS versions, falls back to `WebBrowserPresentationStyle.FullScreen`.
90+
*
91+
* @platform ios 13+
92+
*/
93+
+AUTOMATIC: "automatic"
94+
|}
95+
export type WebBrowserPresentationStyleT = $Values<typeof WebBrowserPresentationStyle>;
96+
5197
export type WebBrowserResult = { type: WebBrowserResultTypeT, ... };
5298

5399
export type WebBrowserRedirectResult = {

0 commit comments

Comments
 (0)