From cb46dedd71f8198f6fdd089190b103b143751abf Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Fri, 31 Dec 2021 15:37:36 +0100 Subject: [PATCH 01/14] Fix iOS 12 haptics crash --- .github/workflows/build.yml | 2 +- src/components/haptics.ts | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 89c58145..a76119ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: run: bundle install - name: -- Step 7 -- Run fastlane env: - DEVELOPER_DIR: /Applications/Xcode_13.0.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_13.2.1.app/Contents/Developer ENVIRONMENT: ${{ steps.branch.outputs.branch }} LC_ALL: en_US.UTF-8 LANG: en_US.UTF-8 diff --git a/src/components/haptics.ts b/src/components/haptics.ts index ef77d42a..57148017 100644 --- a/src/components/haptics.ts +++ b/src/components/haptics.ts @@ -4,6 +4,9 @@ import { Platform } from 'react-native' const haptics = ( type: 'Success' | 'Warning' | 'Error' | 'Light' | 'Medium' | 'Heavy' ) => { + if (Platform.OS === 'ios' && parseInt(Platform.Version, 10) <= 12) { + return + } if (Platform.OS === 'android') { if (type === 'Error') { Haptics.impactAsync(Haptics.ImpactFeedbackStyle['Light']).catch(() => {}) From 47822c0aa76f969c2861c200aaf4eba2ec4f9286 Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Sun, 2 Jan 2022 18:20:34 +0100 Subject: [PATCH 02/14] Fix iOS splash screen background color issue --- android/app/src/main/res/values/strings.xml | 2 + ios/tooot/Images.xcassets/Contents.json | 4 +- .../Contents.json | 52 ------- .../background.png | Bin 82 -> 0 bytes .../dark_background.png | Bin 82 -> 0 bytes .../Contents.json | 38 ++++++ ios/tooot/SplashScreen.storyboard | 128 ++++++------------ 7 files changed, 81 insertions(+), 143 deletions(-) delete mode 100644 ios/tooot/Images.xcassets/SplashScreenBackground.imageset/Contents.json delete mode 100644 ios/tooot/Images.xcassets/SplashScreenBackground.imageset/background.png delete mode 100644 ios/tooot/Images.xcassets/SplashScreenBackground.imageset/dark_background.png create mode 100644 ios/tooot/Images.xcassets/SplashScreenBackgroundColor.colorset/Contents.json diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 94c07c32..1f97fdc0 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,4 +1,6 @@ tooot + contain + false \ No newline at end of file diff --git a/ios/tooot/Images.xcassets/Contents.json b/ios/tooot/Images.xcassets/Contents.json index 2d92bd53..73c00596 100644 --- a/ios/tooot/Images.xcassets/Contents.json +++ b/ios/tooot/Images.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } } diff --git a/ios/tooot/Images.xcassets/SplashScreenBackground.imageset/Contents.json b/ios/tooot/Images.xcassets/SplashScreenBackground.imageset/Contents.json deleted file mode 100644 index 847f2599..00000000 --- a/ios/tooot/Images.xcassets/SplashScreenBackground.imageset/Contents.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "images": [ - { - "idiom": "universal", - "filename": "background.png", - "scale": "1x" - }, - { - "appearances": [ - { - "appearance": "luminosity", - "value": "dark" - } - ], - "idiom": "universal", - "filename": "dark_background.png", - "scale": "1x" - }, - { - "idiom": "universal", - "scale": "2x" - }, - { - "appearances": [ - { - "appearance": "luminosity", - "value": "dark" - } - ], - "idiom": "universal", - "scale": "2x" - }, - { - "idiom": "universal", - "scale": "3x" - }, - { - "appearances": [ - { - "appearance": "luminosity", - "value": "dark" - } - ], - "idiom": "universal", - "scale": "3x" - } - ], - "info": { - "version": 1, - "author": "xcode" - } -} \ No newline at end of file diff --git a/ios/tooot/Images.xcassets/SplashScreenBackground.imageset/background.png b/ios/tooot/Images.xcassets/SplashScreenBackground.imageset/background.png deleted file mode 100644 index 8f04420e0437e4b0e1804c7a52824096259f88ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blCQlc~kP5~(QgxSrJZ=y#`N!AS b*XtQL&oRH-^)fshD9qsL>gTe~DWM4frM(p^ diff --git a/ios/tooot/Images.xcassets/SplashScreenBackground.imageset/dark_background.png b/ios/tooot/Images.xcassets/SplashScreenBackground.imageset/dark_background.png deleted file mode 100644 index eadb301df089dfb3990efb9fd51219114f390a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blCQlc~kP5~(QgxSrJZ=y#SwKkW a7e52zGDfpKE7jzI!VI3SelF{r5}E)+6%eTa diff --git a/ios/tooot/Images.xcassets/SplashScreenBackgroundColor.colorset/Contents.json b/ios/tooot/Images.xcassets/SplashScreenBackgroundColor.colorset/Contents.json new file mode 100644 index 00000000..dd794a6f --- /dev/null +++ b/ios/tooot/Images.xcassets/SplashScreenBackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "250", + "green" : "250", + "red" : "250" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "18", + "green" : "18", + "red" : "18" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/tooot/SplashScreen.storyboard b/ios/tooot/SplashScreen.storyboard index 24eec3df..23a5deaa 100644 --- a/ios/tooot/SplashScreen.storyboard +++ b/ios/tooot/SplashScreen.storyboard @@ -1,91 +1,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From a0dcbd050f5614813b143269949c8a1ec7c21a20 Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Sun, 2 Jan 2022 19:10:02 +0100 Subject: [PATCH 03/14] Bump up packages https://github.com/expo/expo/pull/15661/files https://github.com/expo/expo/issues/15632#issuecomment-997279547 --- ios/Podfile.lock | 29 +- package.json | 36 +- patches/expo-av+10.2.0.patch | 81 ++ ...0.11.1.patch => expo-updates+0.11.3.patch} | 1040 +++++++++++------ yarn.lock | 468 ++++++-- 5 files changed, 1181 insertions(+), 473 deletions(-) create mode 100644 patches/expo-av+10.2.0.patch rename patches/{expo-updates+0.11.1.patch => expo-updates+0.11.3.patch} (92%) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 0bebfe30..da85b0f8 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,10 +1,11 @@ PODS: - boost (1.76.0) - DoubleConversion (1.1.6) - - EXApplication (4.0.0): + - EXApplication (4.0.1): - ExpoModulesCore - - EXAV (10.1.3): + - EXAV (10.2.0): - ExpoModulesCore + - ReactCommon/turbomodule/core - EXConstants (13.0.0): - ExpoModulesCore - EXCrypto (10.1.1): @@ -44,7 +45,7 @@ PODS: - ExpoModulesCore - EXPermissions (13.1.0): - ExpoModulesCore - - Expo (44.0.0): + - Expo (44.0.3): - ExpoModulesCore - ExpoHaptics (11.1.0): - ExpoModulesCore @@ -59,13 +60,13 @@ PODS: - ExpoModulesCore - EXSecureStore (11.1.0): - ExpoModulesCore - - EXSplashScreen (0.14.0): + - EXSplashScreen (0.14.1): - ExpoModulesCore - React-Core - EXStoreReview (5.1.0): - ExpoModulesCore - EXStructuredHeaders (2.1.0) - - EXUpdates (0.11.1): + - EXUpdates (0.11.3): - EXManifests - ExpoModulesCore - EXStructuredHeaders @@ -377,11 +378,11 @@ PODS: - glog - react-native-blur (0.8.0): - React - - react-native-blurhash (1.1.7): + - react-native-blurhash (1.1.8): - React-Core - react-native-cameraroll (4.1.2): - React-Core - - react-native-netinfo (7.1.6): + - react-native-netinfo (7.1.7): - React-Core - react-native-pager-view (5.4.9): - React-Core @@ -779,8 +780,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: a7c83b31436843459a1961bfd74b96033dc77234 DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 - EXApplication: 0e15240e4d125b62f1cae48759ffbbd32b9286a6 - EXAV: 8adf9a1c0161144d77e96149a1e5a5f9358be290 + EXApplication: bdc8dc27713235565da1029a34385229f31b8e08 + EXAV: e501565d5aff495b7b5e9249d489f5ef94db03b2 EXConstants: 5d18484e38e8eacef7695a82214b6ac90133dedf EXCrypto: e3c0853c2a9ef885928f6227b967b9598132f727 EXDevice: 7de98d8f97088fad9c01e9a68abad07e501208b2 @@ -798,17 +799,17 @@ SPEC CHECKSUMS: EXMediaLibrary: 6acf919299bccc64a59e6e89a3b792276e309302 EXNotifications: d5b454a2363c8743aa9b2888cc0df70a1d9ee816 EXPermissions: f4c65fa770489cbf16ea17c3013a670671525014 - Expo: 6ca1d5ca8c8264a7131a608afcd01561f79f1e6e + Expo: 5f9812539b12998a813315ea8036971c9b56a9e7 ExpoHaptics: c62a5fc7bba0184d0165d559fc2b0fc46168ef40 ExpoLocalization: 83582a967db52987a8479490b056d5eb9fd70552 ExpoModulesCore: d04e519b3e8e21523b195bb21a40144e30f1e163 EXRandom: 06978dcf45075f3c9e17ae5e726b887316ee9877 EXScreenCapture: 0146fdf6ca4c3402a1cf62b2ddb739a840e08c94 EXSecureStore: fa0fdde1c81ceee2a3cb0519e649feae42767969 - EXSplashScreen: 845290df0d2730fdedc59ee6ce3b959d8079a350 + EXSplashScreen: 7872675b95bb07c25f922b3d3dfae70c76fb5a00 EXStoreReview: 6143555fc912a4a194300992cd297c3e5b521a8a EXStructuredHeaders: 2ce79a3770bd3795bade1aab215ada70deae8bbc - EXUpdates: a0ef6520618deee31b45d9a09406682c9e724789 + EXUpdates: 98b9e647ce7a0e9d5ab67135bf42188c750a99eb EXUpdatesInterface: f459b515151bd73fff7a35366eace34a6c6a0d3f EXVideoThumbnails: 6c08e978ed7a5542c5dca04a1757363fd29cb2a1 EXWebBrowser: 37388663fa51cbfc883de2244931a5182d948e5f @@ -843,9 +844,9 @@ SPEC CHECKSUMS: React-jsinspector: d0374f7509d407d2264168b6d0fad0b54e300b85 React-logger: 933f80c97c633ee8965d609876848148e3fef438 react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c - react-native-blurhash: e19ea985921732379d17951fd46c99ebe71e9cf3 + react-native-blurhash: b7ed7b7de81ae1f9ce52d694f43c5b5cddddcae1 react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866 - react-native-netinfo: 6f98a7fb549351a8f7f9a6d1ca80afc23e320045 + react-native-netinfo: 27f287f2d191693f3b9d01a4273137fcf91c3b5d react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540 react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097 diff --git a/package.json b/package.json index 184bcccd..62d14d55 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "tooot", "versions": { - "native": "211218", + "native": "220102", "major": 3, - "minor": 0, - "patch": 1, + "minor": 1, + "patch": 0, "expo": "44.0.0" }, "description": "tooot app for Mastodon", @@ -29,7 +29,7 @@ "@react-native-async-storage/async-storage": "1.15.14", "@react-native-community/blur": "3.6.0", "@react-native-community/cameraroll": "4.1.2", - "@react-native-community/netinfo": "7.1.6", + "@react-native-community/netinfo": "7.1.7", "@react-native-community/segmented-control": "2.2.2", "@react-navigation/bottom-tabs": "6.0.9", "@react-navigation/native": "6.0.6", @@ -39,9 +39,9 @@ "@sentry/react-native": "3.2.3", "@sharcoux/slider": "5.6.1", "axios": "0.24.0", - "expo": "44.0.0", + "expo": "44.0.3", "expo-auth-session": "3.5.0", - "expo-av": "10.1.3", + "expo-av": "10.2.0", "expo-constants": "^13.0.0", "expo-crypto": "10.1.1", "expo-device": "4.1.0", @@ -58,10 +58,10 @@ "expo-random": "12.1.1", "expo-screen-capture": "4.1.0", "expo-secure-store": "11.1.0", - "expo-splash-screen": "0.14.0", + "expo-splash-screen": "0.14.1", "expo-status-bar": "1.2.0", "expo-store-review": "5.1.0", - "expo-updates": "0.11.1", + "expo-updates": "0.11.3", "expo-video-thumbnails": "6.1.0", "expo-web-browser": "10.1.0", "i18next": "20.6.1", @@ -69,11 +69,11 @@ "lodash": "4.17.21", "react": "17.0.2", "react-dom": "17.0.2", - "react-i18next": "11.15.1", + "react-i18next": "11.15.3", "react-native": "0.66.4", "react-native-animated-spinkit": "1.5.2", "react-native-base64": "^0.2.1", - "react-native-blurhash": "1.1.7", + "react-native-blurhash": "1.1.8", "react-native-fast-image": "8.5.11", "react-native-feather": "1.1.2", "react-native-flash-message": "0.2.0", @@ -86,7 +86,7 @@ "react-native-svg": "12.1.1", "react-native-swipe-list-view": "3.2.9", "react-native-tab-view": "3.1.1", - "react-query": "3.34.5", + "react-query": "3.34.7", "react-redux": "7.2.6", "react-timeago": "6.2.1", "redux-persist": "6.0.0", @@ -96,16 +96,16 @@ "valid-url": "1.0.9" }, "devDependencies": { - "@babel/core": "7.16.5", - "@babel/plugin-proposal-optional-chaining": "7.16.5", - "@babel/preset-typescript": "7.16.5", - "@expo/config": "6.0.14", + "@babel/core": "7.16.7", + "@babel/plugin-proposal-optional-chaining": "7.16.7", + "@babel/preset-typescript": "7.16.7", + "@expo/config": "6.0.15", "@types/lodash": "4.14.178", - "@types/react": "17.0.37", + "@types/react": "17.0.38", "@types/react-dom": "17.0.11", - "@types/react-native": "0.66.9", + "@types/react-native": "0.66.11", "@types/react-native-base64": "^0.2.0", - "@types/react-redux": "7.1.20", + "@types/react-redux": "7.1.21", "@types/react-timeago": "4.1.3", "@types/valid-url": "1.0.3", "@welldone-software/why-did-you-render": "6.2.3", diff --git a/patches/expo-av+10.2.0.patch b/patches/expo-av+10.2.0.patch new file mode 100644 index 00000000..4fea8f38 --- /dev/null +++ b/patches/expo-av+10.2.0.patch @@ -0,0 +1,81 @@ +diff --git a/node_modules/expo-av/ios/EXAV/EXAV.m b/node_modules/expo-av/ios/EXAV/EXAV.m +index d255852..edf934f 100644 +--- a/node_modules/expo-av/ios/EXAV/EXAV.m ++++ b/node_modules/expo-av/ios/EXAV/EXAV.m +@@ -63,7 +63,7 @@ NSString *const EXDidUpdateMetadataEventName = @"didUpdateMetadata"; + @property (nonatomic, assign) BOOL audioRecorderShouldBeginRecording; + @property (nonatomic, assign) int audioRecorderDurationMillis; + +-@property (nonatomic, weak) EXModuleRegistry *moduleRegistry; ++@property (nonatomic, weak) EXModuleRegistry *expoModuleRegistry; + @property (nonatomic, weak) id permissionsManager; + + @end +@@ -106,7 +106,7 @@ EX_EXPORT_MODULE(ExponentAV); + + - (void)installJsiBindings + { +- id jsContextProvider = [_moduleRegistry getModuleImplementingProtocol:@protocol(EXJavaScriptContextProvider)]; ++ id jsContextProvider = [_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXJavaScriptContextProvider)]; + void *jsRuntimePtr = [jsContextProvider javaScriptRuntimePointer]; + if (jsRuntimePtr) { + [self installJSIBindingsForRuntime:jsRuntimePtr withSoundDictionary:_soundDictionary]; +@@ -131,16 +131,16 @@ EX_EXPORT_MODULE(ExponentAV); + + #pragma mark - Expo experience lifecycle + +-- (void)setModuleRegistry:(EXModuleRegistry *)moduleRegistry ++- (void)setModuleRegistry:(EXModuleRegistry *)expoModuleRegistry + { +- [[_moduleRegistry getModuleImplementingProtocol:@protocol(EXAppLifecycleService)] unregisterAppLifecycleListener:self]; +- _moduleRegistry = moduleRegistry; +- _kernelAudioSessionManagerDelegate = [_moduleRegistry getSingletonModuleForName:@"AudioSessionManager"]; ++ [[_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXAppLifecycleService)] unregisterAppLifecycleListener:self]; ++ _expoModuleRegistry = expoModuleRegistry; ++ _kernelAudioSessionManagerDelegate = [_expoModuleRegistry getSingletonModuleForName:@"AudioSessionManager"]; + if (!_isBackgrounded) { + [_kernelAudioSessionManagerDelegate moduleDidForeground:self]; + } +- [[_moduleRegistry getModuleImplementingProtocol:@protocol(EXAppLifecycleService)] registerAppLifecycleListener:self]; +- _permissionsManager = [_moduleRegistry getModuleImplementingProtocol:@protocol(EXPermissionsInterface)]; ++ [[_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXAppLifecycleService)] registerAppLifecycleListener:self]; ++ _permissionsManager = [_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXPermissionsInterface)]; + [EXPermissionsMethodsDelegate registerRequesters:@[[EXAudioRecordingPermissionRequester new]] withPermissionsManager:_permissionsManager]; + } + +@@ -478,7 +478,7 @@ withEXVideoViewForTag:(nonnull NSNumber *)reactTag + { + // TODO check that the bridge is still valid after the dispatch + // TODO check if the queues are ok +- [[_moduleRegistry getModuleImplementingProtocol:@protocol(EXUIManager)] executeUIBlock:^(id view) { ++ [[_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXUIManager)] executeUIBlock:^(id view) { + if ([view isKindOfClass:[EXVideoView class]]) { + block(view); + } else { +@@ -566,7 +566,7 @@ withEXVideoViewForTag:(nonnull NSNumber *)reactTag + return EXErrorWithMessage(@"Recorder is already prepared."); + } + +- id fileSystem = [_moduleRegistry getModuleImplementingProtocol:@protocol(EXFileSystemInterface)]; ++ id fileSystem = [_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXFileSystemInterface)]; + + if (!fileSystem) { + return EXErrorWithMessage(@"No FileSystem module."); +@@ -726,7 +726,7 @@ EX_EXPORT_METHOD_AS(loadForSound, + + - (void)sendEventWithName:(NSString *)eventName body:(NSDictionary *)body + { +- [[_moduleRegistry getModuleImplementingProtocol:@protocol(EXEventEmitterService)] sendEventWithName:eventName body:body]; ++ [[_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXEventEmitterService)] sendEventWithName:eventName body:body]; + } + + EX_EXPORT_METHOD_AS(unloadForSound, +@@ -984,7 +984,7 @@ EX_EXPORT_METHOD_AS(unloadAudioRecorder, + - (void)dealloc + { + [_kernelAudioSessionManagerDelegate moduleWillDeallocate:self]; +- [[_moduleRegistry getModuleImplementingProtocol:@protocol(EXAppLifecycleService)] unregisterAppLifecycleListener:self]; ++ [[_expoModuleRegistry getModuleImplementingProtocol:@protocol(EXAppLifecycleService)] unregisterAppLifecycleListener:self]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + // This will clear all @properties and deactivate the audio session: diff --git a/patches/expo-updates+0.11.1.patch b/patches/expo-updates+0.11.3.patch similarity index 92% rename from patches/expo-updates+0.11.1.patch rename to patches/expo-updates+0.11.3.patch index 520b894e..4d37ad15 100644 --- a/patches/expo-updates+0.11.1.patch +++ b/patches/expo-updates+0.11.3.patch @@ -1,14 +1,14 @@ -diff --git a/node_modules/expo-updates/android/build/.transforms/c7a06c0c29259aee89d461cf4fd92a8e.bin b/node_modules/expo-updates/android/build/.transforms/c7a06c0c29259aee89d461cf4fd92a8e.bin +diff --git a/node_modules/expo-updates/android/build/.transforms/b529fafe6ba15242dd12db714c449fe5.bin b/node_modules/expo-updates/android/build/.transforms/b529fafe6ba15242dd12db714c449fe5.bin new file mode 100644 index 0000000..0d259dd --- /dev/null -+++ b/node_modules/expo-updates/android/build/.transforms/c7a06c0c29259aee89d461cf4fd92a8e.bin ++++ b/node_modules/expo-updates/android/build/.transforms/b529fafe6ba15242dd12db714c449fe5.bin @@ -0,0 +1 @@ +o/classes -diff --git a/node_modules/expo-updates/android/build/.transforms/c7a06c0c29259aee89d461cf4fd92a8e/classes/classes.dex b/node_modules/expo-updates/android/build/.transforms/c7a06c0c29259aee89d461cf4fd92a8e/classes/classes.dex +diff --git a/node_modules/expo-updates/android/build/.transforms/b529fafe6ba15242dd12db714c449fe5/classes/classes.dex b/node_modules/expo-updates/android/build/.transforms/b529fafe6ba15242dd12db714c449fe5/classes/classes.dex new file mode 100644 -index 0000000..a34b527 -Binary files /dev/null and b/node_modules/expo-updates/android/build/.transforms/c7a06c0c29259aee89d461cf4fd92a8e/classes/classes.dex differ +index 0000000..4fcb287 +Binary files /dev/null and b/node_modules/expo-updates/android/build/.transforms/b529fafe6ba15242dd12db714c449fe5/classes/classes.dex differ diff --git a/node_modules/expo-updates/android/build/generated/source/buildConfig/debug/expo/modules/updates/BuildConfig.java b/node_modules/expo-updates/android/build/generated/source/buildConfig/debug/expo/modules/updates/BuildConfig.java new file mode 100644 index 0000000..ef48007 @@ -27,10 +27,10 @@ index 0000000..ef48007 +} diff --git a/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/UpdatesDatabase_Impl.java b/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/UpdatesDatabase_Impl.java new file mode 100644 -index 0000000..a96de18 +index 0000000..b8a8e96 --- /dev/null +++ b/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/UpdatesDatabase_Impl.java -@@ -0,0 +1,280 @@ +@@ -0,0 +1,281 @@ +package expo.modules.updates.db; + +import androidx.room.DatabaseConfiguration; @@ -74,7 +74,7 @@ index 0000000..a96de18 + + @Override + protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration configuration) { -+ final SupportSQLiteOpenHelper.Callback _openCallback = new RoomOpenHelper(configuration, new RoomOpenHelper.Delegate(8) { ++ final SupportSQLiteOpenHelper.Callback _openCallback = new RoomOpenHelper(configuration, new RoomOpenHelper.Delegate(9) { + @Override + public void createAllTables(SupportSQLiteDatabase _db) { + _db.execSQL("CREATE TABLE IF NOT EXISTS `updates` (`id` BLOB NOT NULL, `commit_time` INTEGER NOT NULL, `runtime_version` TEXT NOT NULL, `scope_key` TEXT NOT NULL, `launch_asset_id` INTEGER, `manifest` TEXT, `status` INTEGER NOT NULL, `keep` INTEGER NOT NULL, `last_accessed` INTEGER NOT NULL, `successful_launch_count` INTEGER NOT NULL DEFAULT 0, `failed_launch_count` INTEGER NOT NULL DEFAULT 0, PRIMARY KEY(`id`), FOREIGN KEY(`launch_asset_id`) REFERENCES `assets`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )"); @@ -82,12 +82,12 @@ index 0000000..a96de18 + _db.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_updates_scope_key_commit_time` ON `updates` (`scope_key`, `commit_time`)"); + _db.execSQL("CREATE TABLE IF NOT EXISTS `updates_assets` (`update_id` BLOB NOT NULL, `asset_id` INTEGER NOT NULL, PRIMARY KEY(`update_id`, `asset_id`), FOREIGN KEY(`update_id`) REFERENCES `updates`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`asset_id`) REFERENCES `assets`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )"); + _db.execSQL("CREATE INDEX IF NOT EXISTS `index_updates_assets_asset_id` ON `updates_assets` (`asset_id`)"); -+ _db.execSQL("CREATE TABLE IF NOT EXISTS `assets` (`key` TEXT, `type` TEXT, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT, `headers` TEXT, `metadata` TEXT, `download_time` INTEGER, `relative_path` TEXT, `hash` BLOB, `hash_type` INTEGER NOT NULL, `marked_for_deletion` INTEGER NOT NULL)"); ++ _db.execSQL("CREATE TABLE IF NOT EXISTS `assets` (`key` TEXT, `type` TEXT, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT, `headers` TEXT, `extra_request_headers` TEXT, `metadata` TEXT, `download_time` INTEGER, `relative_path` TEXT, `hash` BLOB, `hash_type` INTEGER NOT NULL, `marked_for_deletion` INTEGER NOT NULL)"); + _db.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_assets_key` ON `assets` (`key`)"); + _db.execSQL("CREATE TABLE IF NOT EXISTS `json_data` (`key` TEXT NOT NULL, `value` TEXT NOT NULL, `last_updated` INTEGER NOT NULL, `scope_key` TEXT NOT NULL, `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)"); + _db.execSQL("CREATE INDEX IF NOT EXISTS `index_json_data_scope_key` ON `json_data` (`scope_key`)"); + _db.execSQL("CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)"); -+ _db.execSQL("INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '536a4a7d1c2bd53759471da31a5db6f2')"); ++ _db.execSQL("INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'edd919e496bef87b4e64f6cd6481762c')"); + } + + @Override @@ -174,12 +174,13 @@ index 0000000..a96de18 + + " Expected:\n" + _infoUpdatesAssets + "\n" + + " Found:\n" + _existingUpdatesAssets); + } -+ final HashMap _columnsAssets = new HashMap(11); ++ final HashMap _columnsAssets = new HashMap(12); + _columnsAssets.put("key", new TableInfo.Column("key", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); + _columnsAssets.put("type", new TableInfo.Column("type", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); + _columnsAssets.put("id", new TableInfo.Column("id", "INTEGER", true, 1, null, TableInfo.CREATED_FROM_ENTITY)); + _columnsAssets.put("url", new TableInfo.Column("url", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); + _columnsAssets.put("headers", new TableInfo.Column("headers", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); ++ _columnsAssets.put("extra_request_headers", new TableInfo.Column("extra_request_headers", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); + _columnsAssets.put("metadata", new TableInfo.Column("metadata", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); + _columnsAssets.put("download_time", new TableInfo.Column("download_time", "INTEGER", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); + _columnsAssets.put("relative_path", new TableInfo.Column("relative_path", "TEXT", false, 0, null, TableInfo.CREATED_FROM_ENTITY)); @@ -214,7 +215,7 @@ index 0000000..a96de18 + } + return new RoomOpenHelper.ValidationResult(true, null); + } -+ }, "536a4a7d1c2bd53759471da31a5db6f2", "e57f0391a819ac86eb61f2b53092c592"); ++ }, "edd919e496bef87b4e64f6cd6481762c", "e266df480de2c6ba738f4881037e4eb3"); + final SupportSQLiteOpenHelper.Configuration _sqliteConfig = SupportSQLiteOpenHelper.Configuration.builder(configuration.context) + .name(configuration.name) + .callback(_openCallback) @@ -313,10 +314,10 @@ index 0000000..a96de18 +} diff --git a/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/dao/AssetDao_Impl.java b/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/dao/AssetDao_Impl.java new file mode 100644 -index 0000000..5db7faf +index 0000000..6dc612b --- /dev/null +++ b/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/dao/AssetDao_Impl.java -@@ -0,0 +1,834 @@ +@@ -0,0 +1,888 @@ +package expo.modules.updates.db.dao; + +import android.database.Cursor; @@ -373,7 +374,7 @@ index 0000000..5db7faf + this.__insertionAdapterOfAssetEntity = new EntityInsertionAdapter(__db) { + @Override + public String createQuery() { -+ return "INSERT OR REPLACE INTO `assets` (`key`,`type`,`id`,`url`,`headers`,`metadata`,`download_time`,`relative_path`,`hash`,`hash_type`,`marked_for_deletion`) VALUES (?,?,nullif(?, 0),?,?,?,?,?,?,?,?)"; ++ return "INSERT OR REPLACE INTO `assets` (`key`,`type`,`id`,`url`,`headers`,`extra_request_headers`,`metadata`,`download_time`,`relative_path`,`hash`,`hash_type`,`marked_for_deletion`) VALUES (?,?,nullif(?, 0),?,?,?,?,?,?,?,?,?)"; + } + + @Override @@ -404,35 +405,42 @@ index 0000000..5db7faf + stmt.bindString(5, _tmp_1); + } + final String _tmp_2; -+ _tmp_2 = __converters.jsonObjectToString(value.getMetadata()); ++ _tmp_2 = __converters.jsonObjectToString(value.getExtraRequestHeaders()); + if (_tmp_2 == null) { + stmt.bindNull(6); + } else { + stmt.bindString(6, _tmp_2); + } -+ final Long _tmp_3; -+ _tmp_3 = __converters.dateToLong(value.getDownloadTime()); ++ final String _tmp_3; ++ _tmp_3 = __converters.jsonObjectToString(value.getMetadata()); + if (_tmp_3 == null) { + stmt.bindNull(7); + } else { -+ stmt.bindLong(7, _tmp_3); ++ stmt.bindString(7, _tmp_3); + } -+ if (value.getRelativePath() == null) { ++ final Long _tmp_4; ++ _tmp_4 = __converters.dateToLong(value.getDownloadTime()); ++ if (_tmp_4 == null) { + stmt.bindNull(8); + } else { -+ stmt.bindString(8, value.getRelativePath()); ++ stmt.bindLong(8, _tmp_4); + } -+ if (value.getHash() == null) { ++ if (value.getRelativePath() == null) { + stmt.bindNull(9); + } else { -+ stmt.bindBlob(9, value.getHash()); ++ stmt.bindString(9, value.getRelativePath()); ++ } ++ if (value.getHash() == null) { ++ stmt.bindNull(10); ++ } else { ++ stmt.bindBlob(10, value.getHash()); + } -+ final int _tmp_4; -+ _tmp_4 = __converters.hashTypeToInt(value.getHashType()); -+ stmt.bindLong(10, _tmp_4); + final int _tmp_5; -+ _tmp_5 = value.getMarkedForDeletion() ? 1 : 0; ++ _tmp_5 = __converters.hashTypeToInt(value.getHashType()); + stmt.bindLong(11, _tmp_5); ++ final int _tmp_6; ++ _tmp_6 = value.getMarkedForDeletion() ? 1 : 0; ++ stmt.bindLong(12, _tmp_6); + } + }; + this.__insertionAdapterOfUpdateAssetEntity = new EntityInsertionAdapter(__db) { @@ -456,7 +464,7 @@ index 0000000..5db7faf + this.__updateAdapterOfAssetEntity = new EntityDeletionOrUpdateAdapter(__db) { + @Override + public String createQuery() { -+ return "UPDATE OR ABORT `assets` SET `key` = ?,`type` = ?,`id` = ?,`url` = ?,`headers` = ?,`metadata` = ?,`download_time` = ?,`relative_path` = ?,`hash` = ?,`hash_type` = ?,`marked_for_deletion` = ? WHERE `id` = ?"; ++ return "UPDATE OR ABORT `assets` SET `key` = ?,`type` = ?,`id` = ?,`url` = ?,`headers` = ?,`extra_request_headers` = ?,`metadata` = ?,`download_time` = ?,`relative_path` = ?,`hash` = ?,`hash_type` = ?,`marked_for_deletion` = ? WHERE `id` = ?"; + } + + @Override @@ -487,36 +495,43 @@ index 0000000..5db7faf + stmt.bindString(5, _tmp_1); + } + final String _tmp_2; -+ _tmp_2 = __converters.jsonObjectToString(value.getMetadata()); ++ _tmp_2 = __converters.jsonObjectToString(value.getExtraRequestHeaders()); + if (_tmp_2 == null) { + stmt.bindNull(6); + } else { + stmt.bindString(6, _tmp_2); + } -+ final Long _tmp_3; -+ _tmp_3 = __converters.dateToLong(value.getDownloadTime()); ++ final String _tmp_3; ++ _tmp_3 = __converters.jsonObjectToString(value.getMetadata()); + if (_tmp_3 == null) { + stmt.bindNull(7); + } else { -+ stmt.bindLong(7, _tmp_3); ++ stmt.bindString(7, _tmp_3); + } -+ if (value.getRelativePath() == null) { ++ final Long _tmp_4; ++ _tmp_4 = __converters.dateToLong(value.getDownloadTime()); ++ if (_tmp_4 == null) { + stmt.bindNull(8); + } else { -+ stmt.bindString(8, value.getRelativePath()); ++ stmt.bindLong(8, _tmp_4); + } -+ if (value.getHash() == null) { ++ if (value.getRelativePath() == null) { + stmt.bindNull(9); + } else { -+ stmt.bindBlob(9, value.getHash()); ++ stmt.bindString(9, value.getRelativePath()); ++ } ++ if (value.getHash() == null) { ++ stmt.bindNull(10); ++ } else { ++ stmt.bindBlob(10, value.getHash()); + } -+ final int _tmp_4; -+ _tmp_4 = __converters.hashTypeToInt(value.getHashType()); -+ stmt.bindLong(10, _tmp_4); + final int _tmp_5; -+ _tmp_5 = value.getMarkedForDeletion() ? 1 : 0; ++ _tmp_5 = __converters.hashTypeToInt(value.getHashType()); + stmt.bindLong(11, _tmp_5); -+ stmt.bindLong(12, value.getId()); ++ final int _tmp_6; ++ _tmp_6 = value.getMarkedForDeletion() ? 1 : 0; ++ stmt.bindLong(12, _tmp_6); ++ stmt.bindLong(13, value.getId()); + } + }; + this.__preparedStmtOf_setUpdateLaunchAsset = new SharedSQLiteStatement(__db) { @@ -721,6 +736,7 @@ index 0000000..5db7faf + final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(_cursor, "id"); + final int _cursorIndexOfUrl = CursorUtil.getColumnIndexOrThrow(_cursor, "url"); + final int _cursorIndexOfHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "headers"); ++ final int _cursorIndexOfExtraRequestHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "extra_request_headers"); + final int _cursorIndexOfMetadata = CursorUtil.getColumnIndexOrThrow(_cursor, "metadata"); + final int _cursorIndexOfDownloadTime = CursorUtil.getColumnIndexOrThrow(_cursor, "download_time"); + final int _cursorIndexOfRelativePath = CursorUtil.getColumnIndexOrThrow(_cursor, "relative_path"); @@ -764,23 +780,32 @@ index 0000000..5db7faf + } + _tmpHeaders = __converters.stringToJsonObject(_tmp_1); + _item.setHeaders(_tmpHeaders); -+ final JSONObject _tmpMetadata; ++ final JSONObject _tmpExtraRequestHeaders; + final String _tmp_2; -+ if (_cursor.isNull(_cursorIndexOfMetadata)) { ++ if (_cursor.isNull(_cursorIndexOfExtraRequestHeaders)) { + _tmp_2 = null; + } else { -+ _tmp_2 = _cursor.getString(_cursorIndexOfMetadata); ++ _tmp_2 = _cursor.getString(_cursorIndexOfExtraRequestHeaders); + } -+ _tmpMetadata = __converters.stringToJsonObject(_tmp_2); -+ _item.setMetadata(_tmpMetadata); -+ final Date _tmpDownloadTime; -+ final Long _tmp_3; -+ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmpExtraRequestHeaders = __converters.stringToJsonObject(_tmp_2); ++ _item.setExtraRequestHeaders(_tmpExtraRequestHeaders); ++ final JSONObject _tmpMetadata; ++ final String _tmp_3; ++ if (_cursor.isNull(_cursorIndexOfMetadata)) { + _tmp_3 = null; + } else { -+ _tmp_3 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ _tmp_3 = _cursor.getString(_cursorIndexOfMetadata); + } -+ _tmpDownloadTime = __converters.longToDate(_tmp_3); ++ _tmpMetadata = __converters.stringToJsonObject(_tmp_3); ++ _item.setMetadata(_tmpMetadata); ++ final Date _tmpDownloadTime; ++ final Long _tmp_4; ++ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmp_4 = null; ++ } else { ++ _tmp_4 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ } ++ _tmpDownloadTime = __converters.longToDate(_tmp_4); + _item.setDownloadTime(_tmpDownloadTime); + final String _tmpRelativePath; + if (_cursor.isNull(_cursorIndexOfRelativePath)) { @@ -797,14 +822,14 @@ index 0000000..5db7faf + } + _item.setHash(_tmpHash); + final HashType _tmpHashType; -+ final int _tmp_4; -+ _tmp_4 = _cursor.getInt(_cursorIndexOfHashType); -+ _tmpHashType = __converters.intToHashType(_tmp_4); ++ final int _tmp_5; ++ _tmp_5 = _cursor.getInt(_cursorIndexOfHashType); ++ _tmpHashType = __converters.intToHashType(_tmp_5); + _item.setHashType(_tmpHashType); + final boolean _tmpMarkedForDeletion; -+ final int _tmp_5; -+ _tmp_5 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); -+ _tmpMarkedForDeletion = _tmp_5 != 0; ++ final int _tmp_6; ++ _tmp_6 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); ++ _tmpMarkedForDeletion = _tmp_6 != 0; + _item.setMarkedForDeletion(_tmpMarkedForDeletion); + _result.add(_item); + } @@ -833,6 +858,7 @@ index 0000000..5db7faf + final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(_cursor, "id"); + final int _cursorIndexOfUrl = CursorUtil.getColumnIndexOrThrow(_cursor, "url"); + final int _cursorIndexOfHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "headers"); ++ final int _cursorIndexOfExtraRequestHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "extra_request_headers"); + final int _cursorIndexOfMetadata = CursorUtil.getColumnIndexOrThrow(_cursor, "metadata"); + final int _cursorIndexOfDownloadTime = CursorUtil.getColumnIndexOrThrow(_cursor, "download_time"); + final int _cursorIndexOfRelativePath = CursorUtil.getColumnIndexOrThrow(_cursor, "relative_path"); @@ -876,23 +902,32 @@ index 0000000..5db7faf + } + _tmpHeaders = __converters.stringToJsonObject(_tmp_1); + _item.setHeaders(_tmpHeaders); -+ final JSONObject _tmpMetadata; ++ final JSONObject _tmpExtraRequestHeaders; + final String _tmp_2; -+ if (_cursor.isNull(_cursorIndexOfMetadata)) { ++ if (_cursor.isNull(_cursorIndexOfExtraRequestHeaders)) { + _tmp_2 = null; + } else { -+ _tmp_2 = _cursor.getString(_cursorIndexOfMetadata); ++ _tmp_2 = _cursor.getString(_cursorIndexOfExtraRequestHeaders); + } -+ _tmpMetadata = __converters.stringToJsonObject(_tmp_2); -+ _item.setMetadata(_tmpMetadata); -+ final Date _tmpDownloadTime; -+ final Long _tmp_3; -+ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmpExtraRequestHeaders = __converters.stringToJsonObject(_tmp_2); ++ _item.setExtraRequestHeaders(_tmpExtraRequestHeaders); ++ final JSONObject _tmpMetadata; ++ final String _tmp_3; ++ if (_cursor.isNull(_cursorIndexOfMetadata)) { + _tmp_3 = null; + } else { -+ _tmp_3 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ _tmp_3 = _cursor.getString(_cursorIndexOfMetadata); + } -+ _tmpDownloadTime = __converters.longToDate(_tmp_3); ++ _tmpMetadata = __converters.stringToJsonObject(_tmp_3); ++ _item.setMetadata(_tmpMetadata); ++ final Date _tmpDownloadTime; ++ final Long _tmp_4; ++ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmp_4 = null; ++ } else { ++ _tmp_4 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ } ++ _tmpDownloadTime = __converters.longToDate(_tmp_4); + _item.setDownloadTime(_tmpDownloadTime); + final String _tmpRelativePath; + if (_cursor.isNull(_cursorIndexOfRelativePath)) { @@ -909,14 +944,14 @@ index 0000000..5db7faf + } + _item.setHash(_tmpHash); + final HashType _tmpHashType; -+ final int _tmp_4; -+ _tmp_4 = _cursor.getInt(_cursorIndexOfHashType); -+ _tmpHashType = __converters.intToHashType(_tmp_4); ++ final int _tmp_5; ++ _tmp_5 = _cursor.getInt(_cursorIndexOfHashType); ++ _tmpHashType = __converters.intToHashType(_tmp_5); + _item.setHashType(_tmpHashType); + final boolean _tmpMarkedForDeletion; -+ final int _tmp_5; -+ _tmp_5 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); -+ _tmpMarkedForDeletion = _tmp_5 != 0; ++ final int _tmp_6; ++ _tmp_6 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); ++ _tmpMarkedForDeletion = _tmp_6 != 0; + _item.setMarkedForDeletion(_tmpMarkedForDeletion); + _result.add(_item); + } @@ -939,6 +974,7 @@ index 0000000..5db7faf + final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(_cursor, "id"); + final int _cursorIndexOfUrl = CursorUtil.getColumnIndexOrThrow(_cursor, "url"); + final int _cursorIndexOfHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "headers"); ++ final int _cursorIndexOfExtraRequestHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "extra_request_headers"); + final int _cursorIndexOfMetadata = CursorUtil.getColumnIndexOrThrow(_cursor, "metadata"); + final int _cursorIndexOfDownloadTime = CursorUtil.getColumnIndexOrThrow(_cursor, "download_time"); + final int _cursorIndexOfRelativePath = CursorUtil.getColumnIndexOrThrow(_cursor, "relative_path"); @@ -982,23 +1018,32 @@ index 0000000..5db7faf + } + _tmpHeaders = __converters.stringToJsonObject(_tmp_1); + _item.setHeaders(_tmpHeaders); -+ final JSONObject _tmpMetadata; ++ final JSONObject _tmpExtraRequestHeaders; + final String _tmp_2; -+ if (_cursor.isNull(_cursorIndexOfMetadata)) { ++ if (_cursor.isNull(_cursorIndexOfExtraRequestHeaders)) { + _tmp_2 = null; + } else { -+ _tmp_2 = _cursor.getString(_cursorIndexOfMetadata); ++ _tmp_2 = _cursor.getString(_cursorIndexOfExtraRequestHeaders); + } -+ _tmpMetadata = __converters.stringToJsonObject(_tmp_2); -+ _item.setMetadata(_tmpMetadata); -+ final Date _tmpDownloadTime; -+ final Long _tmp_3; -+ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmpExtraRequestHeaders = __converters.stringToJsonObject(_tmp_2); ++ _item.setExtraRequestHeaders(_tmpExtraRequestHeaders); ++ final JSONObject _tmpMetadata; ++ final String _tmp_3; ++ if (_cursor.isNull(_cursorIndexOfMetadata)) { + _tmp_3 = null; + } else { -+ _tmp_3 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ _tmp_3 = _cursor.getString(_cursorIndexOfMetadata); + } -+ _tmpDownloadTime = __converters.longToDate(_tmp_3); ++ _tmpMetadata = __converters.stringToJsonObject(_tmp_3); ++ _item.setMetadata(_tmpMetadata); ++ final Date _tmpDownloadTime; ++ final Long _tmp_4; ++ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmp_4 = null; ++ } else { ++ _tmp_4 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ } ++ _tmpDownloadTime = __converters.longToDate(_tmp_4); + _item.setDownloadTime(_tmpDownloadTime); + final String _tmpRelativePath; + if (_cursor.isNull(_cursorIndexOfRelativePath)) { @@ -1015,14 +1060,14 @@ index 0000000..5db7faf + } + _item.setHash(_tmpHash); + final HashType _tmpHashType; -+ final int _tmp_4; -+ _tmp_4 = _cursor.getInt(_cursorIndexOfHashType); -+ _tmpHashType = __converters.intToHashType(_tmp_4); ++ final int _tmp_5; ++ _tmp_5 = _cursor.getInt(_cursorIndexOfHashType); ++ _tmpHashType = __converters.intToHashType(_tmp_5); + _item.setHashType(_tmpHashType); + final boolean _tmpMarkedForDeletion; -+ final int _tmp_5; -+ _tmp_5 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); -+ _tmpMarkedForDeletion = _tmp_5 != 0; ++ final int _tmp_6; ++ _tmp_6 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); ++ _tmpMarkedForDeletion = _tmp_6 != 0; + _item.setMarkedForDeletion(_tmpMarkedForDeletion); + _result.add(_item); + } @@ -1053,6 +1098,7 @@ index 0000000..5db7faf + final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(_cursor, "id"); + final int _cursorIndexOfUrl = CursorUtil.getColumnIndexOrThrow(_cursor, "url"); + final int _cursorIndexOfHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "headers"); ++ final int _cursorIndexOfExtraRequestHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "extra_request_headers"); + final int _cursorIndexOfMetadata = CursorUtil.getColumnIndexOrThrow(_cursor, "metadata"); + final int _cursorIndexOfDownloadTime = CursorUtil.getColumnIndexOrThrow(_cursor, "download_time"); + final int _cursorIndexOfRelativePath = CursorUtil.getColumnIndexOrThrow(_cursor, "relative_path"); @@ -1096,23 +1142,32 @@ index 0000000..5db7faf + } + _tmpHeaders = __converters.stringToJsonObject(_tmp_2); + _item.setHeaders(_tmpHeaders); -+ final JSONObject _tmpMetadata; ++ final JSONObject _tmpExtraRequestHeaders; + final String _tmp_3; -+ if (_cursor.isNull(_cursorIndexOfMetadata)) { ++ if (_cursor.isNull(_cursorIndexOfExtraRequestHeaders)) { + _tmp_3 = null; + } else { -+ _tmp_3 = _cursor.getString(_cursorIndexOfMetadata); ++ _tmp_3 = _cursor.getString(_cursorIndexOfExtraRequestHeaders); + } -+ _tmpMetadata = __converters.stringToJsonObject(_tmp_3); -+ _item.setMetadata(_tmpMetadata); -+ final Date _tmpDownloadTime; -+ final Long _tmp_4; -+ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmpExtraRequestHeaders = __converters.stringToJsonObject(_tmp_3); ++ _item.setExtraRequestHeaders(_tmpExtraRequestHeaders); ++ final JSONObject _tmpMetadata; ++ final String _tmp_4; ++ if (_cursor.isNull(_cursorIndexOfMetadata)) { + _tmp_4 = null; + } else { -+ _tmp_4 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ _tmp_4 = _cursor.getString(_cursorIndexOfMetadata); + } -+ _tmpDownloadTime = __converters.longToDate(_tmp_4); ++ _tmpMetadata = __converters.stringToJsonObject(_tmp_4); ++ _item.setMetadata(_tmpMetadata); ++ final Date _tmpDownloadTime; ++ final Long _tmp_5; ++ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmp_5 = null; ++ } else { ++ _tmp_5 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ } ++ _tmpDownloadTime = __converters.longToDate(_tmp_5); + _item.setDownloadTime(_tmpDownloadTime); + final String _tmpRelativePath; + if (_cursor.isNull(_cursorIndexOfRelativePath)) { @@ -1129,14 +1184,14 @@ index 0000000..5db7faf + } + _item.setHash(_tmpHash); + final HashType _tmpHashType; -+ final int _tmp_5; -+ _tmp_5 = _cursor.getInt(_cursorIndexOfHashType); -+ _tmpHashType = __converters.intToHashType(_tmp_5); ++ final int _tmp_6; ++ _tmp_6 = _cursor.getInt(_cursorIndexOfHashType); ++ _tmpHashType = __converters.intToHashType(_tmp_6); + _item.setHashType(_tmpHashType); + final boolean _tmpMarkedForDeletion; -+ final int _tmp_6; -+ _tmp_6 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); -+ _tmpMarkedForDeletion = _tmp_6 != 0; ++ final int _tmp_7; ++ _tmp_7 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); ++ _tmpMarkedForDeletion = _tmp_7 != 0; + _item.setMarkedForDeletion(_tmpMarkedForDeletion); + _result.add(_item); + } @@ -1366,10 +1421,10 @@ index 0000000..e4d703c +} diff --git a/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/dao/UpdateDao_Impl.java b/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/dao/UpdateDao_Impl.java new file mode 100644 -index 0000000..d32bd7d +index 0000000..0cde755 --- /dev/null +++ b/node_modules/expo-updates/android/build/generated/source/kapt/debug/expo/modules/updates/db/dao/UpdateDao_Impl.java -@@ -0,0 +1,894 @@ +@@ -0,0 +1,904 @@ +package expo.modules.updates.db.dao; + +import android.database.Cursor; @@ -1927,6 +1982,7 @@ index 0000000..d32bd7d + final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(_cursor, "id"); + final int _cursorIndexOfUrl = CursorUtil.getColumnIndexOrThrow(_cursor, "url"); + final int _cursorIndexOfHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "headers"); ++ final int _cursorIndexOfExtraRequestHeaders = CursorUtil.getColumnIndexOrThrow(_cursor, "extra_request_headers"); + final int _cursorIndexOfMetadata = CursorUtil.getColumnIndexOrThrow(_cursor, "metadata"); + final int _cursorIndexOfDownloadTime = CursorUtil.getColumnIndexOrThrow(_cursor, "download_time"); + final int _cursorIndexOfRelativePath = CursorUtil.getColumnIndexOrThrow(_cursor, "relative_path"); @@ -1969,23 +2025,32 @@ index 0000000..d32bd7d + } + _tmpHeaders = __converters.stringToJsonObject(_tmp_2); + _result.setHeaders(_tmpHeaders); -+ final JSONObject _tmpMetadata; ++ final JSONObject _tmpExtraRequestHeaders; + final String _tmp_3; -+ if (_cursor.isNull(_cursorIndexOfMetadata)) { ++ if (_cursor.isNull(_cursorIndexOfExtraRequestHeaders)) { + _tmp_3 = null; + } else { -+ _tmp_3 = _cursor.getString(_cursorIndexOfMetadata); ++ _tmp_3 = _cursor.getString(_cursorIndexOfExtraRequestHeaders); + } -+ _tmpMetadata = __converters.stringToJsonObject(_tmp_3); -+ _result.setMetadata(_tmpMetadata); -+ final Date _tmpDownloadTime; -+ final Long _tmp_4; -+ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmpExtraRequestHeaders = __converters.stringToJsonObject(_tmp_3); ++ _result.setExtraRequestHeaders(_tmpExtraRequestHeaders); ++ final JSONObject _tmpMetadata; ++ final String _tmp_4; ++ if (_cursor.isNull(_cursorIndexOfMetadata)) { + _tmp_4 = null; + } else { -+ _tmp_4 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ _tmp_4 = _cursor.getString(_cursorIndexOfMetadata); + } -+ _tmpDownloadTime = __converters.longToDate(_tmp_4); ++ _tmpMetadata = __converters.stringToJsonObject(_tmp_4); ++ _result.setMetadata(_tmpMetadata); ++ final Date _tmpDownloadTime; ++ final Long _tmp_5; ++ if (_cursor.isNull(_cursorIndexOfDownloadTime)) { ++ _tmp_5 = null; ++ } else { ++ _tmp_5 = _cursor.getLong(_cursorIndexOfDownloadTime); ++ } ++ _tmpDownloadTime = __converters.longToDate(_tmp_5); + _result.setDownloadTime(_tmpDownloadTime); + final String _tmpRelativePath; + if (_cursor.isNull(_cursorIndexOfRelativePath)) { @@ -2002,14 +2067,14 @@ index 0000000..d32bd7d + } + _result.setHash(_tmpHash); + final HashType _tmpHashType; -+ final int _tmp_5; -+ _tmp_5 = _cursor.getInt(_cursorIndexOfHashType); -+ _tmpHashType = __converters.intToHashType(_tmp_5); ++ final int _tmp_6; ++ _tmp_6 = _cursor.getInt(_cursorIndexOfHashType); ++ _tmpHashType = __converters.intToHashType(_tmp_6); + _result.setHashType(_tmpHashType); + final boolean _tmpMarkedForDeletion; -+ final int _tmp_6; -+ _tmp_6 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); -+ _tmpMarkedForDeletion = _tmp_6 != 0; ++ final int _tmp_7; ++ _tmp_7 = _cursor.getInt(_cursorIndexOfMarkedForDeletion); ++ _tmpMarkedForDeletion = _tmp_7 != 0; + _result.setMarkedForDeletion(_tmpMarkedForDeletion); + } else { + _result = null; @@ -2315,7 +2380,7 @@ index 0000000..d8560bd +aarMetadataVersion=1.0 diff --git a/node_modules/expo-updates/android/build/intermediates/compile_library_classes_jar/debug/classes.jar b/node_modules/expo-updates/android/build/intermediates/compile_library_classes_jar/debug/classes.jar new file mode 100644 -index 0000000..f90505d +index 0000000..efbcd2e Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/compile_library_classes_jar/debug/classes.jar differ diff --git a/node_modules/expo-updates/android/build/intermediates/compile_r_class_jar/debug/R.jar b/node_modules/expo-updates/android/build/intermediates/compile_r_class_jar/debug/R.jar new file mode 100644 @@ -4291,11 +4356,11 @@ index 0000000..0d783af \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties b/node_modules/expo-updates/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties new file mode 100644 -index 0000000..12bb486 +index 0000000..8a27964 --- /dev/null +++ b/node_modules/expo-updates/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties @@ -0,0 +1 @@ -+#Sat Dec 18 19:29:34 CET 2021 ++#Sun Jan 02 18:57:29 CET 2022 diff --git a/node_modules/expo-updates/android/build/intermediates/incremental/packageDebugResources/merger.xml b/node_modules/expo-updates/android/build/intermediates/incremental/packageDebugResources/merger.xml new file mode 100644 index 0000000..58e2bae @@ -4311,47 +4376,47 @@ index 0000000..cbf90d1 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/BuildConfig.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/UpdatesDatabase_Impl$1.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/UpdatesDatabase_Impl$1.class new file mode 100644 -index 0000000..e56906d +index 0000000..7086fdc Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/UpdatesDatabase_Impl$1.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/UpdatesDatabase_Impl.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/UpdatesDatabase_Impl.class new file mode 100644 -index 0000000..bcaf59d +index 0000000..b29b28c Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/UpdatesDatabase_Impl.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$1.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$1.class new file mode 100644 -index 0000000..94fbb62 +index 0000000..8e2633d Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$1.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$2.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$2.class new file mode 100644 -index 0000000..f0d5dd6 +index 0000000..e5469c8 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$2.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$3.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$3.class new file mode 100644 -index 0000000..71d376a +index 0000000..1870b1e Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$3.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$4.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$4.class new file mode 100644 -index 0000000..2846a8e +index 0000000..14d9d36 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$4.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$5.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$5.class new file mode 100644 -index 0000000..ef414b0 +index 0000000..5c60b95 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$5.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$6.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$6.class new file mode 100644 -index 0000000..3c8f550 +index 0000000..6369c48 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$6.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$7.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$7.class new file mode 100644 -index 0000000..941b3df +index 0000000..61e4392 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$7.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$8.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$8.class new file mode 100644 -index 0000000..e6cb2e9 +index 0000000..540d8d8 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl$8.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl.class new file mode 100644 -index 0000000..571e6b9 +index 0000000..c214be1 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/AssetDao_Impl.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/JSONDataDao_Impl$1.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/JSONDataDao_Impl$1.class new file mode 100644 @@ -4387,7 +4452,7 @@ index 0000000..a775c8c Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/UpdateDao_Impl$5.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/UpdateDao_Impl.class b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/UpdateDao_Impl.class new file mode 100644 -index 0000000..763c8dd +index 0000000..b7ac5a9 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/javac/debug/classes/expo/modules/updates/db/dao/UpdateDao_Impl.class differ diff --git a/node_modules/expo-updates/android/build/intermediates/library_java_res/debug/res.jar b/node_modules/expo-updates/android/build/intermediates/library_java_res/debug/res.jar new file mode 100644 @@ -4473,7 +4538,7 @@ index 0000000..3a9789b \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar b/node_modules/expo-updates/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar new file mode 100644 -index 0000000..95c9479 +index 0000000..bd31ff5 Binary files /dev/null and b/node_modules/expo-updates/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar differ diff --git a/node_modules/expo-updates/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt b/node_modules/expo-updates/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt new file mode 100644 @@ -5919,31 +5984,43 @@ index 0000000..5a5ecc1 +xml rn_dev_preferences diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/build-history.bin b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/build-history.bin new file mode 100644 -index 0000000..1eb59bf +index 0000000..09cd185 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/build-history.bin differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab new file mode 100644 -index 0000000..6eec7d3 +index 0000000..2c696c0 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream new file mode 100644 -index 0000000..8f56c0c +index 0000000..e30ad45 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len new file mode 100644 -index 0000000..534deea +index 0000000..f5f9db1 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.len new file mode 100644 -index 0000000..9001288 +index 0000000..49d559b Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.len differ +diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values +new file mode 100644 +index 0000000..f9d1b54 +Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.at b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.at new file mode 100644 -index 0000000..5710783 +index 0000000..29f6197 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.at differ +diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.s b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.s +new file mode 100644 +index 0000000..a451638 +--- /dev/null ++++ b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab.values.s +@@ -0,0 +1 @@ ++- +\ No newline at end of file diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i new file mode 100644 -index 0000000..ee40ee9 +index 0000000..f3000f6 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i.len new file mode 100644 @@ -5951,27 +6028,27 @@ index 0000000..131e265 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/inputs/source-to-output.tab_i.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab new file mode 100644 -index 0000000..c833d7e +index 0000000..ab9342b Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream new file mode 100644 -index 0000000..77d7043 +index 0000000..0340fe1 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len new file mode 100644 -index 0000000..9700766 +index 0000000..359576a Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.len new file mode 100644 -index 0000000..51b3725 +index 0000000..b4beefb Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.values.at new file mode 100644 -index 0000000..dd7c695 +index 0000000..ccb64a4 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i new file mode 100644 -index 0000000..3744e13 +index 0000000..e2b50f3 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i.len new file mode 100644 @@ -5979,27 +6056,27 @@ index 0000000..131e265 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab new file mode 100644 -index 0000000..bb1a134 +index 0000000..7d2b57f Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream new file mode 100644 -index 0000000..77d7043 +index 0000000..0340fe1 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len new file mode 100644 -index 0000000..9700766 +index 0000000..359576a Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len new file mode 100644 -index 0000000..51b3725 +index 0000000..b4beefb Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at new file mode 100644 -index 0000000..4505d72 +index 0000000..9cc5798 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i new file mode 100644 -index 0000000..3744e13 +index 0000000..e2b50f3 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len new file mode 100644 @@ -6007,7 +6084,7 @@ index 0000000..131e265 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab new file mode 100644 -index 0000000..bafe315 +index 0000000..7b3f62b Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab.keystream b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab.keystream new file mode 100644 @@ -6035,7 +6112,7 @@ index 0000000..131e265 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/constants.tab_i.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab new file mode 100644 -index 0000000..1e8ec5d +index 0000000..75d0519 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab.keystream b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab.keystream new file mode 100644 @@ -6051,7 +6128,7 @@ index 0000000..01bdaa1 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab.values.at b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab.values.at new file mode 100644 -index 0000000..ce62643 +index 0000000..c83d6a2 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab.values.at differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab_i b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab_i new file mode 100644 @@ -6063,27 +6140,31 @@ index 0000000..131e265 Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/inline-functions.tab_i.len differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab new file mode 100644 -index 0000000..423e05d +index 0000000..dc5131f Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ diff --git a/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream new file mode 100644 -index 0000000..bd5c95b -Binary files /dev/null and b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ +index 0000000..067147b +--- /dev/null ++++ b/node_modules/expo-updates/android/build/kotlin/compileDebugKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +@@ -0,0 +1 @@ ++)expo/modules/updates/UpdatesConfigurationIexpo/modules/updates/UpdatesConfiguration$CheckAutomaticallyConfiguration3expo/modules/updates/UpdatesConfiguration$Companion&expo/modules/updates/UpdatesController.expo/modules/updates/UpdatesController$start$1;expo/modules/updates/UpdatesController$start$1$WhenMappings@expo/modules/updates/UpdatesController$initializeErrorRecovery$1Sexpo/modules/updates/UpdatesController$initializeErrorRecovery$1$loadRemoteUpdate$1Aexpo/modules/updates/UpdatesController$relaunchReactApplication$10expo/modules/updates/UpdatesController$Companion1expo/modules/updates/UpdatesDevLauncherControllerPexpo/modules/updates/UpdatesDevLauncherController$fetchUpdateWithConfiguration$1Fexpo/modules/updates/UpdatesDevLauncherController$launchNewestUpdate$1Rexpo/modules/updates/UpdatesDevLauncherController$launchNewestUpdate$1$onSuccess$1;expo/modules/updates/UpdatesDevLauncherController$Companion%expo/modules/updates/UpdatesInterface"expo/modules/updates/UpdatesModuleRexpo/modules/updates/UpdatesModule$moduleRegistry$$inlined$getFromModuleRegistry$1Dexpo/modules/updates/UpdatesModule$special$$inlined$moduleRegistry$1+expo/modules/updates/UpdatesModule$reload$18expo/modules/updates/UpdatesModule$checkForUpdateAsync$17expo/modules/updates/UpdatesModule$fetchUpdateAsync$1$1,expo/modules/updates/UpdatesModule$Companion#expo/modules/updates/UpdatesPackageKexpo/modules/updates/UpdatesPackage$createReactNativeHostHandlers$handler$1-expo/modules/updates/UpdatesPackage$Companion#expo/modules/updates/UpdatesService-expo/modules/updates/UpdatesService$Companion!expo/modules/updates/UpdatesUtils.expo/modules/updates/UpdatesUtils$WhenMappings!expo/modules/updates/db/BuildData"expo/modules/updates/db/Converters/expo/modules/updates/db/Converters$WhenMappings&expo/modules/updates/db/DatabaseHolder0expo/modules/updates/db/DatabaseHolder$Companion.expo/modules/updates/db/DatabaseIntegrityCheckexpo/modules/updates/db/Reaper'expo/modules/updates/db/UpdatesDatabaseAexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1Kexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1$migrate$1Aexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1Kexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1$migrate$1Aexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1Kexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1$migrate$1Aexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1Kexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1$migrate$1Aexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1Kexpo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1$migrate$11expo/modules/updates/db/UpdatesDatabase$Companion$expo/modules/updates/db/dao/AssetDao'expo/modules/updates/db/dao/JSONDataDao%expo/modules/updates/db/dao/UpdateDao*expo/modules/updates/db/entity/AssetEntity-expo/modules/updates/db/entity/JSONDataEntity0expo/modules/updates/db/entity/UpdateAssetEntity+expo/modules/updates/db/entity/UpdateEntity&expo/modules/updates/db/enums/HashType*expo/modules/updates/db/enums/UpdateStatus0expo/modules/updates/errorrecovery/ErrorRecoveryoexpo/modules/updates/errorrecovery/ErrorRecovery$registerErrorHandler$defaultNativeModuleCallExceptionHandler$1:expo/modules/updates/errorrecovery/ErrorRecovery$Companion8expo/modules/updates/errorrecovery/ErrorRecoveryDelegateIexpo/modules/updates/errorrecovery/ErrorRecoveryDelegate$RemoteLoadStatus7expo/modules/updates/errorrecovery/ErrorRecoveryHandlerNexpo/modules/updates/errorrecovery/ErrorRecoveryHandler$tryRelaunchFromCache$1Cexpo/modules/updates/errorrecovery/ErrorRecoveryHandler$MessageTypeexpo/modules/updates/manifest/NewUpdateManifest$updateEntity$2>expo/modules/updates/manifest/NewUpdateManifest$assetHeaders$2Aexpo/modules/updates/manifest/NewUpdateManifest$assetEntityList$2,expo/modules/updates/manifest/UpdateManifest block) { ++ } ++ + @org.jetbrains.annotations.NotNull() + public final androidx.room.migration.Migration getMIGRATION_4_5() { + return null; @@ -8552,12 +8650,17 @@ index 0000000..077ffd1 + public final androidx.room.migration.Migration getMIGRATION_7_8() { + return null; + } ++ ++ @org.jetbrains.annotations.NotNull() ++ public final androidx.room.migration.Migration getMIGRATION_8_9() { ++ return null; ++ } + } +} \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/UpdatesDatabase.kapt_metadata b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/UpdatesDatabase.kapt_metadata new file mode 100644 -index 0000000..27eaf1f +index 0000000..f810bd8 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/UpdatesDatabase.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/AssetDao.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/AssetDao.java new file mode 100644 @@ -8664,7 +8767,7 @@ index 0000000..ef56943 \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/AssetDao.kapt_metadata b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/AssetDao.kapt_metadata new file mode 100644 -index 0000000..8dbe106 +index 0000000..a26dd22 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/AssetDao.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/JSONDataDao.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/JSONDataDao.java new file mode 100644 @@ -8864,16 +8967,16 @@ index 0000000..fff975b Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/dao/UpdateDao.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/AssetEntity.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/AssetEntity.java new file mode 100644 -index 0000000..9690c32 +index 0000000..3bc98e9 --- /dev/null +++ b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/AssetEntity.java -@@ -0,0 +1,204 @@ +@@ -0,0 +1,216 @@ +package expo.modules.updates.db.entity; + +import java.lang.System; + +@androidx.room.Entity(tableName = "assets", indices = {@androidx.room.Index(unique = true, value = {"key"})}) -+@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000Z\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\n\n\u0002\u0010\u0012\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\t\n\u0002\b\u0005\n\u0002\u0010\u000b\n\u0002\b\u0015\n\u0002\u0010\u0007\n\u0002\b\u0006\n\u0002\u0010\u0011\n\u0002\b\b\n\u0002\u0018\u0002\n\u0002\b\u0005\b\u0007\u0018\u00002\u00020\u0001B\u0019\u0012\b\u0010\u0002\u001a\u0004\u0018\u00010\u0003\u0012\b\u0010\u0004\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\u0002\u0010\u0005R \u0010\u0006\u001a\u0004\u0018\u00010\u00078\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\b\u0010\t\"\u0004\b\n\u0010\u000bR \u0010\f\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\r\u0010\u000e\"\u0004\b\u000f\u0010\u0010R\u001c\u0010\u0011\u001a\u0004\u0018\u00010\u0012X\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\u0013\u0010\u0014\"\u0004\b\u0015\u0010\u0016R\u001e\u0010\u0017\u001a\u00020\u00188\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\u0019\u0010\u001a\"\u0004\b\u001b\u0010\u001cR\u001c\u0010\u001d\u001a\u0004\u0018\u00010\u001eX\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\u001f\u0010 \"\u0004\b!\u0010\"R\u001e\u0010#\u001a\u00020$8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b%\u0010&\"\u0004\b\'\u0010(R\u001e\u0010)\u001a\u00020*8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b)\u0010+\"\u0004\b,\u0010-R \u0010\u0002\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b.\u0010\u000e\"\u0004\b/\u0010\u0010R\u001e\u00100\u001a\u00020*8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b1\u0010+\"\u0004\b2\u0010-R\u001c\u00103\u001a\u0004\u0018\u00010\u001eX\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b4\u0010 \"\u0004\b5\u0010\"R \u00106\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b7\u0010\u000e\"\u0004\b8\u0010\u0010R \u00109\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b:\u0010\u000e\"\u0004\b;\u0010\u0010R \u0010<\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b=\u0010\u000e\"\u0004\b>\u0010\u0010R\"\u0010?\u001a\u0004\u0018\u00010@8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u0010\n\u0002\u0010E\u001a\u0004\bA\u0010B\"\u0004\bC\u0010DR(\u0010F\u001a\n\u0012\u0004\u0012\u00020@\u0018\u00010G8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u0010\n\u0002\u0010L\u001a\u0004\bH\u0010I\"\u0004\bJ\u0010KR\u001c\u0010\u0004\u001a\u0004\u0018\u00010\u0003X\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\bM\u0010\u000e\"\u0004\bN\u0010\u0010R\u001c\u0010O\u001a\u0004\u0018\u00010PX\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\bQ\u0010R\"\u0004\bS\u0010T\u00a8\u0006U"}, d2 = {"Lexpo/modules/updates/db/entity/AssetEntity;", "", "key", "", "type", "(Ljava/lang/String;Ljava/lang/String;)V", "downloadTime", "Ljava/util/Date;", "getDownloadTime", "()Ljava/util/Date;", "setDownloadTime", "(Ljava/util/Date;)V", "embeddedAssetFilename", "getEmbeddedAssetFilename", "()Ljava/lang/String;", "setEmbeddedAssetFilename", "(Ljava/lang/String;)V", "hash", "", "getHash", "()[B", "setHash", "([B)V", "hashType", "Lexpo/modules/updates/db/enums/HashType;", "getHashType", "()Lexpo/modules/updates/db/enums/HashType;", "setHashType", "(Lexpo/modules/updates/db/enums/HashType;)V", "headers", "Lorg/json/JSONObject;", "getHeaders", "()Lorg/json/JSONObject;", "setHeaders", "(Lorg/json/JSONObject;)V", "id", "", "getId", "()J", "setId", "(J)V", "isLaunchAsset", "", "()Z", "setLaunchAsset", "(Z)V", "getKey", "setKey", "markedForDeletion", "getMarkedForDeletion", "setMarkedForDeletion", "metadata", "getMetadata", "setMetadata", "relativePath", "getRelativePath", "setRelativePath", "resourcesFilename", "getResourcesFilename", "setResourcesFilename", "resourcesFolder", "getResourcesFolder", "setResourcesFolder", "scale", "", "getScale", "()Ljava/lang/Float;", "setScale", "(Ljava/lang/Float;)V", "Ljava/lang/Float;", "scales", "", "getScales", "()[Ljava/lang/Float;", "setScales", "([Ljava/lang/Float;)V", "[Ljava/lang/Float;", "getType", "setType", "url", "Landroid/net/Uri;", "getUrl", "()Landroid/net/Uri;", "setUrl", "(Landroid/net/Uri;)V", "expo-updates_debug"}) ++@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000Z\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\n\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\u0012\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\b\n\u0002\u0010\t\n\u0002\b\u0005\n\u0002\u0010\u000b\n\u0002\b\u0015\n\u0002\u0010\u0007\n\u0002\b\u0006\n\u0002\u0010\u0011\n\u0002\b\b\n\u0002\u0018\u0002\n\u0002\b\u0005\b\u0007\u0018\u00002\u00020\u0001B\u0019\u0012\b\u0010\u0002\u001a\u0004\u0018\u00010\u0003\u0012\b\u0010\u0004\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\u0002\u0010\u0005R \u0010\u0006\u001a\u0004\u0018\u00010\u00078\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\b\u0010\t\"\u0004\b\n\u0010\u000bR \u0010\f\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\r\u0010\u000e\"\u0004\b\u000f\u0010\u0010R \u0010\u0011\u001a\u0004\u0018\u00010\u00128\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\u0013\u0010\u0014\"\u0004\b\u0015\u0010\u0016R\u001c\u0010\u0017\u001a\u0004\u0018\u00010\u0018X\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\u0019\u0010\u001a\"\u0004\b\u001b\u0010\u001cR\u001e\u0010\u001d\u001a\u00020\u001e8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b\u001f\u0010 \"\u0004\b!\u0010\"R\u001c\u0010#\u001a\u0004\u0018\u00010\u0012X\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b$\u0010\u0014\"\u0004\b%\u0010\u0016R\u001e\u0010&\u001a\u00020\'8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b(\u0010)\"\u0004\b*\u0010+R\u001e\u0010,\u001a\u00020-8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b,\u0010.\"\u0004\b/\u00100R \u0010\u0002\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b1\u0010\u000e\"\u0004\b2\u0010\u0010R\u001e\u00103\u001a\u00020-8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b4\u0010.\"\u0004\b5\u00100R\u001c\u00106\u001a\u0004\u0018\u00010\u0012X\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b7\u0010\u0014\"\u0004\b8\u0010\u0016R \u00109\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b:\u0010\u000e\"\u0004\b;\u0010\u0010R \u0010<\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b=\u0010\u000e\"\u0004\b>\u0010\u0010R \u0010?\u001a\u0004\u0018\u00010\u00038\u0006@\u0006X\u0087\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\b@\u0010\u000e\"\u0004\bA\u0010\u0010R\"\u0010B\u001a\u0004\u0018\u00010C8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u0010\n\u0002\u0010H\u001a\u0004\bD\u0010E\"\u0004\bF\u0010GR(\u0010I\u001a\n\u0012\u0004\u0012\u00020C\u0018\u00010J8\u0006@\u0006X\u0087\u000e\u00a2\u0006\u0010\n\u0002\u0010O\u001a\u0004\bK\u0010L\"\u0004\bM\u0010NR\u001c\u0010\u0004\u001a\u0004\u0018\u00010\u0003X\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\bP\u0010\u000e\"\u0004\bQ\u0010\u0010R\u001c\u0010R\u001a\u0004\u0018\u00010SX\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\bT\u0010U\"\u0004\bV\u0010W\u00a8\u0006X"}, d2 = {"Lexpo/modules/updates/db/entity/AssetEntity;", "", "key", "", "type", "(Ljava/lang/String;Ljava/lang/String;)V", "downloadTime", "Ljava/util/Date;", "getDownloadTime", "()Ljava/util/Date;", "setDownloadTime", "(Ljava/util/Date;)V", "embeddedAssetFilename", "getEmbeddedAssetFilename", "()Ljava/lang/String;", "setEmbeddedAssetFilename", "(Ljava/lang/String;)V", "extraRequestHeaders", "Lorg/json/JSONObject;", "getExtraRequestHeaders", "()Lorg/json/JSONObject;", "setExtraRequestHeaders", "(Lorg/json/JSONObject;)V", "hash", "", "getHash", "()[B", "setHash", "([B)V", "hashType", "Lexpo/modules/updates/db/enums/HashType;", "getHashType", "()Lexpo/modules/updates/db/enums/HashType;", "setHashType", "(Lexpo/modules/updates/db/enums/HashType;)V", "headers", "getHeaders", "setHeaders", "id", "", "getId", "()J", "setId", "(J)V", "isLaunchAsset", "", "()Z", "setLaunchAsset", "(Z)V", "getKey", "setKey", "markedForDeletion", "getMarkedForDeletion", "setMarkedForDeletion", "metadata", "getMetadata", "setMetadata", "relativePath", "getRelativePath", "setRelativePath", "resourcesFilename", "getResourcesFilename", "setResourcesFilename", "resourcesFolder", "getResourcesFolder", "setResourcesFolder", "scale", "", "getScale", "()Ljava/lang/Float;", "setScale", "(Ljava/lang/Float;)V", "Ljava/lang/Float;", "scales", "", "getScales", "()[Ljava/lang/Float;", "setScales", "([Ljava/lang/Float;)V", "[Ljava/lang/Float;", "getType", "setType", "url", "Landroid/net/Uri;", "getUrl", "()Landroid/net/Uri;", "setUrl", "(Landroid/net/Uri;)V", "expo-updates_debug"}) +public final class AssetEntity { + @org.jetbrains.annotations.Nullable() + @androidx.room.ColumnInfo(name = "key") @@ -8887,6 +8990,9 @@ index 0000000..9690c32 + @org.jetbrains.annotations.Nullable() + private org.json.JSONObject headers; + @org.jetbrains.annotations.Nullable() ++ @androidx.room.ColumnInfo(name = "extra_request_headers") ++ private org.json.JSONObject extraRequestHeaders; ++ @org.jetbrains.annotations.Nullable() + private org.json.JSONObject metadata; + @org.jetbrains.annotations.Nullable() + @androidx.room.ColumnInfo(name = "download_time") @@ -8969,6 +9075,15 @@ index 0000000..9690c32 + } + + @org.jetbrains.annotations.Nullable() ++ public final org.json.JSONObject getExtraRequestHeaders() { ++ return null; ++ } ++ ++ public final void setExtraRequestHeaders(@org.jetbrains.annotations.Nullable() ++ org.json.JSONObject p0) { ++ } ++ ++ @org.jetbrains.annotations.Nullable() + public final org.json.JSONObject getMetadata() { + return null; + } @@ -9075,7 +9190,7 @@ index 0000000..9690c32 \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/AssetEntity.kapt_metadata b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/AssetEntity.kapt_metadata new file mode 100644 -index 0000000..a15192e +index 0000000..2c93e33 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/AssetEntity.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/JSONDataEntity.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/db/entity/JSONDataEntity.java new file mode 100644 @@ -10010,20 +10125,21 @@ index 0000000..36ee0c0 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/EmbeddedLoader.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/FileDownloader.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/FileDownloader.java new file mode 100644 -index 0000000..90bd5e9 +index 0000000..d9fe68c --- /dev/null +++ b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/FileDownloader.java -@@ -0,0 +1,111 @@ +@@ -0,0 +1,131 @@ +package expo.modules.updates.loader; + +import java.lang.System; + -+@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000d\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\b\u0016\u0018\u0000 \"2\u00020\u0001:\u0004!\"#$B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\u0002\u0010\u0004J(\u0010\u0007\u001a\u00020\b2\u0006\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\f2\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u0010J\u0016\u0010\u0011\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u00132\u0006\u0010\u000f\u001a\u00020\u0014J \u0010\u0011\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u00132\u0006\u0010\u000f\u001a\u00020\u00142\u0006\u0010\u0015\u001a\u00020\u0016H\u0002J \u0010\u0017\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u00132\u0006\u0010\u0018\u001a\u00020\f2\u0006\u0010\u000f\u001a\u00020\u0019H\u0002J(\u0010\u001a\u001a\u00020\b2\u0006\u0010\r\u001a\u00020\u000e2\b\u0010\u001b\u001a\u0004\u0018\u00010\u001c2\u0006\u0010\u0002\u001a\u00020\u00032\u0006\u0010\u000f\u001a\u00020\u001dJ\u0010\u0010\u001e\u001a\u00020\u001f2\u0006\u0010\u0002\u001a\u00020\u0003H\u0002J\u0010\u0010 \u001a\u00020\f2\u0006\u0010\u0002\u001a\u00020\u0003H\u0002R\u000e\u0010\u0005\u001a\u00020\u0006X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006%"}, d2 = {"Lexpo/modules/updates/loader/FileDownloader;", "", "context", "Landroid/content/Context;", "(Landroid/content/Context;)V", "client", "Lokhttp3/OkHttpClient;", "downloadAsset", "", "asset", "Lexpo/modules/updates/db/entity/AssetEntity;", "destinationDirectory", "Ljava/io/File;", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "callback", "Lexpo/modules/updates/loader/FileDownloader$AssetDownloadCallback;", "downloadData", "request", "Lokhttp3/Request;", "Lokhttp3/Callback;", "isRetry", "", "downloadFileToPath", "destination", "Lexpo/modules/updates/loader/FileDownloader$FileDownloadCallback;", "downloadManifest", "extraHeaders", "Lorg/json/JSONObject;", "Lexpo/modules/updates/loader/FileDownloader$ManifestDownloadCallback;", "getCache", "Lokhttp3/Cache;", "getCacheDirectory", "AssetDownloadCallback", "Companion", "FileDownloadCallback", "ManifestDownloadCallback", "expo-updates_debug"}) ++@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000\u0082\u0001\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\b\b\u0016\u0018\u0000 12\u00020\u0001:\u00040123B\r\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u00a2\u0006\u0002\u0010\u0004J(\u0010\u0007\u001a\u00020\b2\u0006\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\f2\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u0010J\u0016\u0010\u0011\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u00132\u0006\u0010\u000f\u001a\u00020\u0014J \u0010\u0011\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u00132\u0006\u0010\u000f\u001a\u00020\u00142\u0006\u0010\u0015\u001a\u00020\u0016H\u0002J \u0010\u0017\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u00132\u0006\u0010\u0018\u001a\u00020\f2\u0006\u0010\u000f\u001a\u00020\u0019H\u0002J(\u0010\u001a\u001a\u00020\b2\u0006\u0010\r\u001a\u00020\u000e2\b\u0010\u001b\u001a\u0004\u0018\u00010\u001c2\u0006\u0010\u0002\u001a\u00020\u00032\u0006\u0010\u000f\u001a\u00020\u001dJ\u0010\u0010\u001e\u001a\u00020\u001f2\u0006\u0010\u0002\u001a\u00020\u0003H\u0002J\u0010\u0010 \u001a\u00020\f2\u0006\u0010\u0002\u001a\u00020\u0003H\u0002J\u0010\u0010!\u001a\u00020\"2\u0006\u0010#\u001a\u00020$H\u0002J2\u0010%\u001a\u00020\b2\u0006\u0010&\u001a\u00020$2\u0006\u0010\'\u001a\u00020(2\b\u0010)\u001a\u0004\u0018\u00010\u001c2\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u001dH\u0002J%\u0010*\u001a\u00020\b2\u0006\u0010+\u001a\u00020,2\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u001dH\u0000\u00a2\u0006\u0002\b-J(\u0010.\u001a\u00020\b2\u0006\u0010+\u001a\u00020,2\u0006\u0010/\u001a\u00020$2\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u001dH\u0002R\u000e\u0010\u0005\u001a\u00020\u0006X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u00064"}, d2 = {"Lexpo/modules/updates/loader/FileDownloader;", "", "context", "Landroid/content/Context;", "(Landroid/content/Context;)V", "client", "Lokhttp3/OkHttpClient;", "downloadAsset", "", "asset", "Lexpo/modules/updates/db/entity/AssetEntity;", "destinationDirectory", "Ljava/io/File;", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "callback", "Lexpo/modules/updates/loader/FileDownloader$AssetDownloadCallback;", "downloadData", "request", "Lokhttp3/Request;", "Lokhttp3/Callback;", "isRetry", "", "downloadFileToPath", "destination", "Lexpo/modules/updates/loader/FileDownloader$FileDownloadCallback;", "downloadManifest", "extraHeaders", "Lorg/json/JSONObject;", "Lexpo/modules/updates/loader/FileDownloader$ManifestDownloadCallback;", "getCache", "Lokhttp3/Cache;", "getCacheDirectory", "parseHeaders", "Lokhttp3/Headers;", "text", "", "parseManifest", "manifestBody", "manifestHeaderData", "Lexpo/modules/updates/manifest/ManifestHeaderData;", "extensions", "parseManifestResponse", "response", "Lokhttp3/Response;", "parseManifestResponse$expo_updates_debug", "parseMultipartManifestResponse", "boundary", "AssetDownloadCallback", "Companion", "FileDownloadCallback", "ManifestDownloadCallback", "expo-updates_debug"}) +public class FileDownloader { + private final okhttp3.OkHttpClient client = null; + @org.jetbrains.annotations.NotNull() + public static final expo.modules.updates.loader.FileDownloader.Companion Companion = null; + private static final java.lang.String TAG = null; ++ private static final java.lang.String CRLF = "\r\n"; + + public FileDownloader(@org.jetbrains.annotations.NotNull() + android.content.Context context) { @@ -10041,6 +10157,22 @@ index 0000000..90bd5e9 + private final void downloadFileToPath(okhttp3.Request request, java.io.File destination, expo.modules.updates.loader.FileDownloader.FileDownloadCallback callback) { + } + ++ public final void parseManifestResponse$expo_updates_debug(@org.jetbrains.annotations.NotNull() ++ okhttp3.Response response, @org.jetbrains.annotations.NotNull() ++ expo.modules.updates.UpdatesConfiguration configuration, @org.jetbrains.annotations.NotNull() ++ expo.modules.updates.loader.FileDownloader.ManifestDownloadCallback callback) { ++ } ++ ++ private final okhttp3.Headers parseHeaders(java.lang.String text) { ++ return null; ++ } ++ ++ private final void parseMultipartManifestResponse(okhttp3.Response response, java.lang.String boundary, expo.modules.updates.UpdatesConfiguration configuration, expo.modules.updates.loader.FileDownloader.ManifestDownloadCallback callback) { ++ } ++ ++ private final void parseManifest(java.lang.String manifestBody, expo.modules.updates.manifest.ManifestHeaderData manifestHeaderData, org.json.JSONObject extensions, expo.modules.updates.UpdatesConfiguration configuration, expo.modules.updates.loader.FileDownloader.ManifestDownloadCallback callback) { ++ } ++ + public final void downloadManifest(@org.jetbrains.annotations.NotNull() + expo.modules.updates.UpdatesConfiguration configuration, @org.jetbrains.annotations.Nullable() + org.json.JSONObject extraHeaders, @org.jetbrains.annotations.NotNull() @@ -10096,7 +10228,7 @@ index 0000000..90bd5e9 + expo.modules.updates.db.entity.AssetEntity assetEntity, boolean isNew); + } + -+ @kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000P\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002\u00a2\u0006\u0002\u0010\u0002J0\u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\u0006\u0010\n\u001a\u00020\u000b2\u0006\u0010\f\u001a\u00020\r2\u0006\u0010\u000e\u001a\u00020\u000f2\u0006\u0010\u0010\u001a\u00020\u0011H\u0002J\u0018\u0010\u0012\u001a\u00020\t2\u0006\u0010\u0013\u001a\u00020\u00042\u0006\u0010\u000e\u001a\u00020\u000fH\u0002J\'\u0010\u0014\u001a\u00020\u00152\u0006\u0010\u000e\u001a\u00020\u000f2\b\u0010\u0016\u001a\u0004\u0018\u00010\t2\u0006\u0010\u0017\u001a\u00020\u0018H\u0000\u00a2\u0006\u0002\b\u0019J\u0018\u0010\u001a\u001a\u00020\u00152\u0006\u0010\u001b\u001a\u00020\u001c2\u0006\u0010\u000e\u001a\u00020\u000fH\u0002R\u0016\u0010\u0003\u001a\n \u0005*\u0004\u0018\u00010\u00040\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u001d"}, d2 = {"Lexpo/modules/updates/loader/FileDownloader$Companion;", "", "()V", "TAG", "", "kotlin.jvm.PlatformType", "createManifest", "", "preManifest", "Lorg/json/JSONObject;", "response", "Lokhttp3/Response;", "isVerified", "", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "callback", "Lexpo/modules/updates/loader/FileDownloader$ManifestDownloadCallback;", "extractUpdateResponseJson", "manifestString", "setHeadersForManifestUrl", "Lokhttp3/Request;", "extraHeaders", "context", "Landroid/content/Context;", "setHeadersForManifestUrl$expo_updates_debug", "setHeadersForUrl", "url", "Landroid/net/Uri;", "expo-updates_debug"}) ++ @kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000P\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0004\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002\u00a2\u0006\u0002\u0010\u0002J:\u0010\u0007\u001a\u00020\b2\u0006\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\f2\b\u0010\r\u001a\u0004\u0018\u00010\n2\u0006\u0010\u000e\u001a\u00020\u000f2\u0006\u0010\u0010\u001a\u00020\u00112\u0006\u0010\u0012\u001a\u00020\u0013H\u0002J\u001d\u0010\u0014\u001a\u00020\u00152\u0006\u0010\u0016\u001a\u00020\u00172\u0006\u0010\u0010\u001a\u00020\u0011H\u0000\u00a2\u0006\u0002\b\u0018J\'\u0010\u0019\u001a\u00020\u00152\u0006\u0010\u0010\u001a\u00020\u00112\b\u0010\u001a\u001a\u0004\u0018\u00010\n2\u0006\u0010\u001b\u001a\u00020\u001cH\u0000\u00a2\u0006\u0002\b\u001dJ\u0018\u0010\u001e\u001a\u00020\n2\u0006\u0010\u001f\u001a\u00020\u00042\u0006\u0010\u0010\u001a\u00020\u0011H\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082T\u00a2\u0006\u0002\n\u0000R\u0016\u0010\u0005\u001a\n \u0006*\u0004\u0018\u00010\u00040\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006 "}, d2 = {"Lexpo/modules/updates/loader/FileDownloader$Companion;", "", "()V", "CRLF", "", "TAG", "kotlin.jvm.PlatformType", "createManifest", "", "preManifest", "Lorg/json/JSONObject;", "manifestHeaderData", "Lexpo/modules/updates/manifest/ManifestHeaderData;", "extensions", "isVerified", "", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "callback", "Lexpo/modules/updates/loader/FileDownloader$ManifestDownloadCallback;", "createRequestForAsset", "Lokhttp3/Request;", "assetEntity", "Lexpo/modules/updates/db/entity/AssetEntity;", "createRequestForAsset$expo_updates_debug", "createRequestForManifest", "extraHeaders", "context", "Landroid/content/Context;", "createRequestForManifest$expo_updates_debug", "extractUpdateResponseJson", "manifestString", "expo-updates_debug"}) + public static final class Companion { + + private Companion() { @@ -10104,7 +10236,7 @@ index 0000000..90bd5e9 + } + + @kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception.class}) -+ private final void createManifest(org.json.JSONObject preManifest, okhttp3.Response response, boolean isVerified, expo.modules.updates.UpdatesConfiguration configuration, expo.modules.updates.loader.FileDownloader.ManifestDownloadCallback callback) throws java.lang.Exception { ++ private final void createManifest(org.json.JSONObject preManifest, expo.modules.updates.manifest.ManifestHeaderData manifestHeaderData, org.json.JSONObject extensions, boolean isVerified, expo.modules.updates.UpdatesConfiguration configuration, expo.modules.updates.loader.FileDownloader.ManifestDownloadCallback callback) throws java.lang.Exception { + } + + @kotlin.jvm.Throws(exceptionClasses = {java.io.IOException.class}) @@ -10112,12 +10244,15 @@ index 0000000..90bd5e9 + return null; + } + -+ private final okhttp3.Request setHeadersForUrl(android.net.Uri url, expo.modules.updates.UpdatesConfiguration configuration) { ++ @org.jetbrains.annotations.NotNull() ++ public final okhttp3.Request createRequestForAsset$expo_updates_debug(@org.jetbrains.annotations.NotNull() ++ expo.modules.updates.db.entity.AssetEntity assetEntity, @org.jetbrains.annotations.NotNull() ++ expo.modules.updates.UpdatesConfiguration configuration) { + return null; + } + + @org.jetbrains.annotations.NotNull() -+ public final okhttp3.Request setHeadersForManifestUrl$expo_updates_debug(@org.jetbrains.annotations.NotNull() ++ public final okhttp3.Request createRequestForManifest$expo_updates_debug(@org.jetbrains.annotations.NotNull() + expo.modules.updates.UpdatesConfiguration configuration, @org.jetbrains.annotations.Nullable() + org.json.JSONObject extraHeaders, @org.jetbrains.annotations.NotNull() + android.content.Context context) { @@ -10128,7 +10263,7 @@ index 0000000..90bd5e9 \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/FileDownloader.kapt_metadata b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/FileDownloader.kapt_metadata new file mode 100644 -index 0000000..c19a32a +index 0000000..e0bdfc4 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/FileDownloader.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/Loader.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/loader/Loader.java new file mode 100644 @@ -10797,15 +10932,15 @@ index 0000000..990b6ff Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/LegacyUpdateManifest.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestFactory.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestFactory.java new file mode 100644 -index 0000000..d383f10 +index 0000000..a3f71b7 --- /dev/null +++ b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestFactory.java -@@ -0,0 +1,31 @@ +@@ -0,0 +1,32 @@ +package expo.modules.updates.manifest; + +import java.lang.System; + -+@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000.\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\b\u00c6\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002\u00a2\u0006\u0002\u0010\u0002J\u0018\u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\b\u0010\n\u001a\u0004\u0018\u00010\u000bJ \u0010\f\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\u0006\u0010\r\u001a\u00020\u000e2\b\u0010\n\u001a\u0004\u0018\u00010\u000bR\u0016\u0010\u0003\u001a\n \u0005*\u0004\u0018\u00010\u00040\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u000f"}, d2 = {"Lexpo/modules/updates/manifest/ManifestFactory;", "", "()V", "TAG", "", "kotlin.jvm.PlatformType", "getEmbeddedManifest", "Lexpo/modules/updates/manifest/UpdateManifest;", "manifestJson", "Lorg/json/JSONObject;", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "getManifest", "httpResponse", "Lexpo/modules/updates/manifest/ManifestResponse;", "expo-updates_debug"}) ++@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u00000\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u00c6\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002\u00a2\u0006\u0002\u0010\u0002J\u0018\u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\b\u0010\n\u001a\u0004\u0018\u00010\u000bJ*\u0010\f\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\u0006\u0010\r\u001a\u00020\u000e2\b\u0010\u000f\u001a\u0004\u0018\u00010\t2\b\u0010\n\u001a\u0004\u0018\u00010\u000bR\u0016\u0010\u0003\u001a\n \u0005*\u0004\u0018\u00010\u00040\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0010"}, d2 = {"Lexpo/modules/updates/manifest/ManifestFactory;", "", "()V", "TAG", "", "kotlin.jvm.PlatformType", "getEmbeddedManifest", "Lexpo/modules/updates/manifest/UpdateManifest;", "manifestJson", "Lorg/json/JSONObject;", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "getManifest", "manifestHeaderData", "Lexpo/modules/updates/manifest/ManifestHeaderData;", "extensions", "expo-updates_debug"}) +public final class ManifestFactory { + @org.jetbrains.annotations.NotNull() + public static final expo.modules.updates.manifest.ManifestFactory INSTANCE = null; @@ -10819,7 +10954,8 @@ index 0000000..d383f10 + @kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception.class}) + public final expo.modules.updates.manifest.UpdateManifest getManifest(@org.jetbrains.annotations.NotNull() + org.json.JSONObject manifestJson, @org.jetbrains.annotations.NotNull() -+ expo.modules.updates.manifest.ManifestResponse httpResponse, @org.jetbrains.annotations.Nullable() ++ expo.modules.updates.manifest.ManifestHeaderData manifestHeaderData, @org.jetbrains.annotations.Nullable() ++ org.json.JSONObject extensions, @org.jetbrains.annotations.Nullable() + expo.modules.updates.UpdatesConfiguration configuration) throws java.lang.Exception { + return null; + } @@ -10835,8 +10971,112 @@ index 0000000..d383f10 \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestFactory.kapt_metadata b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestFactory.kapt_metadata new file mode 100644 -index 0000000..5cf428e +index 0000000..8184c5a Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestFactory.kapt_metadata differ +diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestHeaderData.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestHeaderData.java +new file mode 100644 +index 0000000..0661acc +--- /dev/null ++++ b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestHeaderData.java +@@ -0,0 +1,93 @@ ++package expo.modules.updates.manifest; ++ ++import java.lang.System; ++ ++@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u000f\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\b\u0018\u00002\u00020\u0001B5\u0012\n\b\u0002\u0010\u0002\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u0003\u0012\n\b\u0002\u0010\u0006\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\u0002\u0010\u0007J\u000b\u0010\r\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J\u000b\u0010\u000e\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J\u000b\u0010\u000f\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J\u000b\u0010\u0010\u001a\u0004\u0018\u00010\u0003H\u00c6\u0003J9\u0010\u0011\u001a\u00020\u00002\n\b\u0002\u0010\u0002\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u00032\n\b\u0002\u0010\u0006\u001a\u0004\u0018\u00010\u0003H\u00c6\u0001J\u0013\u0010\u0012\u001a\u00020\u00132\b\u0010\u0014\u001a\u0004\u0018\u00010\u0001H\u00d6\u0003J\t\u0010\u0015\u001a\u00020\u0016H\u00d6\u0001J\t\u0010\u0017\u001a\u00020\u0003H\u00d6\u0001R\u0013\u0010\u0005\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\b\u0010\tR\u0013\u0010\u0006\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\n\u0010\tR\u0013\u0010\u0002\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\u000b\u0010\tR\u0013\u0010\u0004\u001a\u0004\u0018\u00010\u0003\u00a2\u0006\b\n\u0000\u001a\u0004\b\f\u0010\t\u00a8\u0006\u0018"}, d2 = {"Lexpo/modules/updates/manifest/ManifestHeaderData;", "", "protocolVersion", "", "serverDefinedHeaders", "manifestFilters", "manifestSignature", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", "getManifestFilters", "()Ljava/lang/String;", "getManifestSignature", "getProtocolVersion", "getServerDefinedHeaders", "component1", "component2", "component3", "component4", "copy", "equals", "", "other", "hashCode", "", "toString", "expo-updates_debug"}) ++public final class ManifestHeaderData { ++ @org.jetbrains.annotations.Nullable() ++ private final java.lang.String protocolVersion = null; ++ @org.jetbrains.annotations.Nullable() ++ private final java.lang.String serverDefinedHeaders = null; ++ @org.jetbrains.annotations.Nullable() ++ private final java.lang.String manifestFilters = null; ++ @org.jetbrains.annotations.Nullable() ++ private final java.lang.String manifestSignature = null; ++ ++ @org.jetbrains.annotations.NotNull() ++ public final expo.modules.updates.manifest.ManifestHeaderData copy(@org.jetbrains.annotations.Nullable() ++ java.lang.String protocolVersion, @org.jetbrains.annotations.Nullable() ++ java.lang.String serverDefinedHeaders, @org.jetbrains.annotations.Nullable() ++ java.lang.String manifestFilters, @org.jetbrains.annotations.Nullable() ++ java.lang.String manifestSignature) { ++ return null; ++ } ++ ++ @java.lang.Override() ++ public boolean equals(@org.jetbrains.annotations.Nullable() ++ java.lang.Object other) { ++ return false; ++ } ++ ++ @java.lang.Override() ++ public int hashCode() { ++ return 0; ++ } ++ ++ @org.jetbrains.annotations.NotNull() ++ @java.lang.Override() ++ public java.lang.String toString() { ++ return null; ++ } ++ ++ public ManifestHeaderData() { ++ super(); ++ } ++ ++ public ManifestHeaderData(@org.jetbrains.annotations.Nullable() ++ java.lang.String protocolVersion, @org.jetbrains.annotations.Nullable() ++ java.lang.String serverDefinedHeaders, @org.jetbrains.annotations.Nullable() ++ java.lang.String manifestFilters, @org.jetbrains.annotations.Nullable() ++ java.lang.String manifestSignature) { ++ super(); ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String component1() { ++ return null; ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String getProtocolVersion() { ++ return null; ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String component2() { ++ return null; ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String getServerDefinedHeaders() { ++ return null; ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String component3() { ++ return null; ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String getManifestFilters() { ++ return null; ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String component4() { ++ return null; ++ } ++ ++ @org.jetbrains.annotations.Nullable() ++ public final java.lang.String getManifestSignature() { ++ return null; ++ } ++} +\ No newline at end of file +diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestHeaderData.kapt_metadata b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestHeaderData.kapt_metadata +new file mode 100644 +index 0000000..dceb3a9 +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestHeaderData.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestMetadata.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestMetadata.java new file mode 100644 index 0000000..5c8c66a @@ -10933,15 +11173,15 @@ index 0000000..dfc1659 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/ManifestResponse.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/NewUpdateManifest.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/NewUpdateManifest.java new file mode 100644 -index 0000000..6de1873 +index 0000000..a3de9cc --- /dev/null +++ b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/NewUpdateManifest.java -@@ -0,0 +1,91 @@ +@@ -0,0 +1,98 @@ +package expo.modules.updates.manifest; + +import java.lang.System; + -+@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000N\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\u000b\n\u0002\b\u000b\n\u0002\u0018\u0002\n\u0002\b\u0005\u0018\u0000 *2\u00020\u0001:\u0001*BU\b\u0002\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\u0006\u0010\u0006\u001a\u00020\u0007\u0012\u0006\u0010\b\u001a\u00020\t\u0012\u0006\u0010\n\u001a\u00020\u0007\u0012\u0006\u0010\u000b\u001a\u00020\f\u0012\b\u0010\r\u001a\u0004\u0018\u00010\u000e\u0012\b\u0010\u000f\u001a\u0004\u0018\u00010\u0007\u0012\b\u0010\u0010\u001a\u0004\u0018\u00010\u0007\u00a2\u0006\u0002\u0010\u0011R!\u0010\u0012\u001a\b\u0012\u0004\u0012\u00020\u00140\u00138VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b\u0017\u0010\u0018\u001a\u0004\b\u0015\u0010\u0016R\u0014\u0010\u0019\u001a\u00020\u001aX\u0096D\u00a2\u0006\b\n\u0000\u001a\u0004\b\u0019\u0010\u001bR\u0010\u0010\r\u001a\u0004\u0018\u00010\u000eX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\b\u001a\u00020\tX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u000b\u001a\u00020\fX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0010\u0010\u0010\u001a\u0004\u0018\u00010\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\n\u001a\u00020\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0010\u0010\u000f\u001a\u0004\u0018\u00010\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0014\u0010\u0002\u001a\u00020\u0003X\u0096\u0004\u00a2\u0006\b\n\u0000\u001a\u0004\b\u001c\u0010\u001dR\u001d\u0010\u001e\u001a\u0004\u0018\u00010\f8VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b!\u0010\u0018\u001a\u0004\b\u001f\u0010 R\u001d\u0010\"\u001a\u0004\u0018\u00010\f8VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b$\u0010\u0018\u001a\u0004\b#\u0010 R\u001b\u0010%\u001a\u00020&8VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b)\u0010\u0018\u001a\u0004\b\'\u0010(\u00a8\u0006+"}, d2 = {"Lexpo/modules/updates/manifest/NewUpdateManifest;", "Lexpo/modules/updates/manifest/UpdateManifest;", "manifest", "Lexpo/modules/manifests/core/NewManifest;", "mId", "Ljava/util/UUID;", "mScopeKey", "", "mCommitTime", "Ljava/util/Date;", "mRuntimeVersion", "mLaunchAsset", "Lorg/json/JSONObject;", "mAssets", "Lorg/json/JSONArray;", "mServerDefinedHeaders", "mManifestFilters", "(Lexpo/modules/manifests/core/NewManifest;Ljava/util/UUID;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lorg/json/JSONObject;Lorg/json/JSONArray;Ljava/lang/String;Ljava/lang/String;)V", "assetEntityList", "", "Lexpo/modules/updates/db/entity/AssetEntity;", "getAssetEntityList", "()Ljava/util/List;", "assetEntityList$delegate", "Lkotlin/Lazy;", "isDevelopmentMode", "", "()Z", "getManifest", "()Lexpo/modules/manifests/core/NewManifest;", "manifestFilters", "getManifestFilters", "()Lorg/json/JSONObject;", "manifestFilters$delegate", "serverDefinedHeaders", "getServerDefinedHeaders", "serverDefinedHeaders$delegate", "updateEntity", "Lexpo/modules/updates/db/entity/UpdateEntity;", "getUpdateEntity", "()Lexpo/modules/updates/db/entity/UpdateEntity;", "updateEntity$delegate", "Companion", "expo-updates_debug"}) ++@kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u0000V\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010$\n\u0002\b\u0004\n\u0002\u0010\u000b\n\u0002\b\u000b\n\u0002\u0018\u0002\n\u0002\b\u0005\u0018\u0000 02\u00020\u0001:\u00010B_\b\u0002\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\u0006\u0010\u0006\u001a\u00020\u0007\u0012\u0006\u0010\b\u001a\u00020\t\u0012\u0006\u0010\n\u001a\u00020\u0007\u0012\u0006\u0010\u000b\u001a\u00020\f\u0012\b\u0010\r\u001a\u0004\u0018\u00010\u000e\u0012\b\u0010\u000f\u001a\u0004\u0018\u00010\f\u0012\b\u0010\u0010\u001a\u0004\u0018\u00010\u0007\u0012\b\u0010\u0011\u001a\u0004\u0018\u00010\u0007\u00a2\u0006\u0002\u0010\u0012R!\u0010\u0013\u001a\b\u0012\u0004\u0012\u00020\u00150\u00148VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b\u0018\u0010\u0019\u001a\u0004\b\u0016\u0010\u0017R\'\u0010\u001a\u001a\u000e\u0012\u0004\u0012\u00020\u0007\u0012\u0004\u0012\u00020\f0\u001b8BX\u0082\u0084\u0002\u00a2\u0006\f\n\u0004\b\u001e\u0010\u0019\u001a\u0004\b\u001c\u0010\u001dR\u0014\u0010\u001f\u001a\u00020 X\u0096D\u00a2\u0006\b\n\u0000\u001a\u0004\b\u001f\u0010!R\u0010\u0010\r\u001a\u0004\u0018\u00010\u000eX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\b\u001a\u00020\tX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0010\u0010\u000f\u001a\u0004\u0018\u00010\fX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u000b\u001a\u00020\fX\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0010\u0010\u0011\u001a\u0004\u0018\u00010\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\n\u001a\u00020\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0010\u0010\u0010\u001a\u0004\u0018\u00010\u0007X\u0082\u0004\u00a2\u0006\u0002\n\u0000R\u0014\u0010\u0002\u001a\u00020\u0003X\u0096\u0004\u00a2\u0006\b\n\u0000\u001a\u0004\b\"\u0010#R\u001d\u0010$\u001a\u0004\u0018\u00010\f8VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b\'\u0010\u0019\u001a\u0004\b%\u0010&R\u001d\u0010(\u001a\u0004\u0018\u00010\f8VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b*\u0010\u0019\u001a\u0004\b)\u0010&R\u001b\u0010+\u001a\u00020,8VX\u0096\u0084\u0002\u00a2\u0006\f\n\u0004\b/\u0010\u0019\u001a\u0004\b-\u0010.\u00a8\u00061"}, d2 = {"Lexpo/modules/updates/manifest/NewUpdateManifest;", "Lexpo/modules/updates/manifest/UpdateManifest;", "manifest", "Lexpo/modules/manifests/core/NewManifest;", "mId", "Ljava/util/UUID;", "mScopeKey", "", "mCommitTime", "Ljava/util/Date;", "mRuntimeVersion", "mLaunchAsset", "Lorg/json/JSONObject;", "mAssets", "Lorg/json/JSONArray;", "mExtensions", "mServerDefinedHeaders", "mManifestFilters", "(Lexpo/modules/manifests/core/NewManifest;Ljava/util/UUID;Ljava/lang/String;Ljava/util/Date;Ljava/lang/String;Lorg/json/JSONObject;Lorg/json/JSONArray;Lorg/json/JSONObject;Ljava/lang/String;Ljava/lang/String;)V", "assetEntityList", "", "Lexpo/modules/updates/db/entity/AssetEntity;", "getAssetEntityList", "()Ljava/util/List;", "assetEntityList$delegate", "Lkotlin/Lazy;", "assetHeaders", "", "getAssetHeaders", "()Ljava/util/Map;", "assetHeaders$delegate", "isDevelopmentMode", "", "()Z", "getManifest", "()Lexpo/modules/manifests/core/NewManifest;", "manifestFilters", "getManifestFilters", "()Lorg/json/JSONObject;", "manifestFilters$delegate", "serverDefinedHeaders", "getServerDefinedHeaders", "serverDefinedHeaders$delegate", "updateEntity", "Lexpo/modules/updates/db/entity/UpdateEntity;", "getUpdateEntity", "()Lexpo/modules/updates/db/entity/UpdateEntity;", "updateEntity$delegate", "Companion", "expo-updates_debug"}) +public final class NewUpdateManifest implements expo.modules.updates.manifest.UpdateManifest { + @org.jetbrains.annotations.NotNull() + private final expo.modules.manifests.core.NewManifest manifest = null; @@ -10951,6 +11191,7 @@ index 0000000..6de1873 + private final java.lang.String mRuntimeVersion = null; + private final org.json.JSONObject mLaunchAsset = null; + private final org.json.JSONArray mAssets = null; ++ private final org.json.JSONObject mExtensions = null; + private final java.lang.String mServerDefinedHeaders = null; + private final java.lang.String mManifestFilters = null; + @org.jetbrains.annotations.Nullable() @@ -10959,6 +11200,7 @@ index 0000000..6de1873 + private final kotlin.Lazy manifestFilters$delegate = null; + @org.jetbrains.annotations.NotNull() + private final kotlin.Lazy updateEntity$delegate = null; ++ private final kotlin.Lazy assetHeaders$delegate = null; + @org.jetbrains.annotations.NotNull() + private final kotlin.Lazy assetEntityList$delegate = null; + private final boolean isDevelopmentMode = false; @@ -10966,7 +11208,7 @@ index 0000000..6de1873 + public static final expo.modules.updates.manifest.NewUpdateManifest.Companion Companion = null; + private static final java.lang.String TAG = null; + -+ private NewUpdateManifest(expo.modules.manifests.core.NewManifest manifest, java.util.UUID mId, java.lang.String mScopeKey, java.util.Date mCommitTime, java.lang.String mRuntimeVersion, org.json.JSONObject mLaunchAsset, org.json.JSONArray mAssets, java.lang.String mServerDefinedHeaders, java.lang.String mManifestFilters) { ++ private NewUpdateManifest(expo.modules.manifests.core.NewManifest manifest, java.util.UUID mId, java.lang.String mScopeKey, java.util.Date mCommitTime, java.lang.String mRuntimeVersion, org.json.JSONObject mLaunchAsset, org.json.JSONArray mAssets, org.json.JSONObject mExtensions, java.lang.String mServerDefinedHeaders, java.lang.String mManifestFilters) { + super(); + } + @@ -10994,6 +11236,10 @@ index 0000000..6de1873 + return null; + } + ++ private final java.util.Map getAssetHeaders() { ++ return null; ++ } ++ + @org.jetbrains.annotations.NotNull() + @java.lang.Override() + public java.util.List getAssetEntityList() { @@ -11005,7 +11251,7 @@ index 0000000..6de1873 + return false; + } + -+ @kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u00004\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002\u00a2\u0006\u0002\u0010\u0002J \u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\b\u0010\n\u001a\u0004\u0018\u00010\u000b2\u0006\u0010\f\u001a\u00020\rJ\u0019\u0010\u000e\u001a\u0004\u0018\u00010\u000f2\b\u0010\u0010\u001a\u0004\u0018\u00010\u0004H\u0000\u00a2\u0006\u0002\b\u0011R\u0016\u0010\u0003\u001a\n \u0005*\u0004\u0018\u00010\u00040\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0012"}, d2 = {"Lexpo/modules/updates/manifest/NewUpdateManifest$Companion;", "", "()V", "TAG", "", "kotlin.jvm.PlatformType", "fromNewManifest", "Lexpo/modules/updates/manifest/NewUpdateManifest;", "manifest", "Lexpo/modules/manifests/core/NewManifest;", "httpResponse", "Lexpo/modules/updates/manifest/ManifestResponse;", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "headerDictionaryToJSONObject", "Lorg/json/JSONObject;", "headerDictionary", "headerDictionaryToJSONObject$expo_updates_debug", "expo-updates_debug"}) ++ @kotlin.Metadata(mv = {1, 5, 1}, k = 1, d1 = {"\u00004\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002\u00a2\u0006\u0002\u0010\u0002J(\u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\u0006\u0010\n\u001a\u00020\u000b2\b\u0010\f\u001a\u0004\u0018\u00010\r2\u0006\u0010\u000e\u001a\u00020\u000fJ\u0019\u0010\u0010\u001a\u0004\u0018\u00010\r2\b\u0010\u0011\u001a\u0004\u0018\u00010\u0004H\u0000\u00a2\u0006\u0002\b\u0012R\u0016\u0010\u0003\u001a\n \u0005*\u0004\u0018\u00010\u00040\u0004X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0013"}, d2 = {"Lexpo/modules/updates/manifest/NewUpdateManifest$Companion;", "", "()V", "TAG", "", "kotlin.jvm.PlatformType", "fromNewManifest", "Lexpo/modules/updates/manifest/NewUpdateManifest;", "manifest", "Lexpo/modules/manifests/core/NewManifest;", "manifestHeaderData", "Lexpo/modules/updates/manifest/ManifestHeaderData;", "extensions", "Lorg/json/JSONObject;", "configuration", "Lexpo/modules/updates/UpdatesConfiguration;", "headerDictionaryToJSONObject", "headerDictionary", "headerDictionaryToJSONObject$expo_updates_debug", "expo-updates_debug"}) + public static final class Companion { + + private Companion() { @@ -11015,8 +11261,9 @@ index 0000000..6de1873 + @org.jetbrains.annotations.NotNull() + @kotlin.jvm.Throws(exceptionClasses = {org.json.JSONException.class}) + public final expo.modules.updates.manifest.NewUpdateManifest fromNewManifest(@org.jetbrains.annotations.NotNull() -+ expo.modules.manifests.core.NewManifest manifest, @org.jetbrains.annotations.Nullable() -+ expo.modules.updates.manifest.ManifestResponse httpResponse, @org.jetbrains.annotations.NotNull() ++ expo.modules.manifests.core.NewManifest manifest, @org.jetbrains.annotations.NotNull() ++ expo.modules.updates.manifest.ManifestHeaderData manifestHeaderData, @org.jetbrains.annotations.Nullable() ++ org.json.JSONObject extensions, @org.jetbrains.annotations.NotNull() + expo.modules.updates.UpdatesConfiguration configuration) throws org.json.JSONException { + return null; + } @@ -11031,7 +11278,7 @@ index 0000000..6de1873 \ No newline at end of file diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/NewUpdateManifest.kapt_metadata b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/NewUpdateManifest.kapt_metadata new file mode 100644 -index 0000000..9dd84af +index 0000000..ffc3cf8 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/NewUpdateManifest.kapt_metadata differ diff --git a/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/UpdateManifest.java b/node_modules/expo-updates/android/build/tmp/kapt3/stubs/debug/expo/modules/updates/manifest/UpdateManifest.java new file mode 100644 @@ -11549,7 +11796,7 @@ index 0000000..29a1c99 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesController.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController$Companion.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController$Companion.class new file mode 100644 -index 0000000..a865911 +index 0000000..5609b59 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController$Companion.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController$fetchUpdateWithConfiguration$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController$fetchUpdateWithConfiguration$1.class new file mode 100644 @@ -11565,7 +11812,7 @@ index 0000000..2a89a1c Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController$launchNewestUpdate$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController.class new file mode 100644 -index 0000000..fd9107e +index 0000000..f556843 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesDevLauncherController.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesInterface.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesInterface.class new file mode 100644 @@ -11573,15 +11820,15 @@ index 0000000..3683886 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesInterface.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$Companion.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$Companion.class new file mode 100644 -index 0000000..c3335bb +index 0000000..7d70969 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$Companion.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$checkForUpdateAsync$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$checkForUpdateAsync$1.class new file mode 100644 -index 0000000..fbd7152 +index 0000000..958c834 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$checkForUpdateAsync$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$fetchUpdateAsync$1$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$fetchUpdateAsync$1$1.class new file mode 100644 -index 0000000..90fe7c3 +index 0000000..684705f Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$fetchUpdateAsync$1$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$moduleRegistry$$inlined$getFromModuleRegistry$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$moduleRegistry$$inlined$getFromModuleRegistry$1.class new file mode 100644 @@ -11589,7 +11836,7 @@ index 0000000..8184a22 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$moduleRegistry$$inlined$getFromModuleRegistry$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$reload$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$reload$1.class new file mode 100644 -index 0000000..97740eb +index 0000000..09419aa Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$reload$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$special$$inlined$moduleRegistry$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$special$$inlined$moduleRegistry$1.class new file mode 100644 @@ -11597,7 +11844,7 @@ index 0000000..36f5e6f Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule$special$$inlined$moduleRegistry$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule.class new file mode 100644 -index 0000000..c146a80 +index 0000000..4ddae47 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesModule.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesPackage$Companion.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/UpdatesPackage$Companion.class new file mode 100644 @@ -11655,33 +11902,57 @@ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/ex new file mode 100644 index 0000000..0196ad5 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/Reaper.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1$migrate$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1$migrate$1.class +new file mode 100644 +index 0000000..d82e17b +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1$migrate$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1.class new file mode 100644 -index 0000000..ab1408f +index 0000000..1aa3658 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_4_5$1.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1$migrate$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1$migrate$1.class +new file mode 100644 +index 0000000..7b5dd87 +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1$migrate$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1.class new file mode 100644 -index 0000000..06b15f0 +index 0000000..19ea85f Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_5_6$1.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1$migrate$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1$migrate$1.class +new file mode 100644 +index 0000000..968655a +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1$migrate$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1.class new file mode 100644 -index 0000000..5e84451 +index 0000000..edb1204 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_6_7$1.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1$migrate$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1$migrate$1.class +new file mode 100644 +index 0000000..6753068 +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1$migrate$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1.class new file mode 100644 -index 0000000..e34be7f +index 0000000..c2a7800 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_7_8$1.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1$migrate$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1$migrate$1.class +new file mode 100644 +index 0000000..c9a5518 +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1$migrate$1.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1.class +new file mode 100644 +index 0000000..26627f4 +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion$MIGRATION_8_9$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion.class new file mode 100644 -index 0000000..c06fce7 +index 0000000..81c1b1a Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase$Companion.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase.class new file mode 100644 -index 0000000..340f511 +index 0000000..af4776f Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/UpdatesDatabase.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/dao/AssetDao.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/dao/AssetDao.class new file mode 100644 -index 0000000..87b1aad +index 0000000..ffc8ec4 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/dao/AssetDao.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/dao/JSONDataDao.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/dao/JSONDataDao.class new file mode 100644 @@ -11693,7 +11964,7 @@ index 0000000..d16b2fd Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/dao/UpdateDao.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/entity/AssetEntity.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/entity/AssetEntity.class new file mode 100644 -index 0000000..18e8c15 +index 0000000..0580f3a Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/entity/AssetEntity.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/entity/JSONDataEntity.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/db/entity/JSONDataEntity.class new file mode 100644 @@ -11813,7 +12084,7 @@ index 0000000..90da2bb Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$AssetDownloadCallback.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$Companion.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$Companion.class new file mode 100644 -index 0000000..acc3f2a +index 0000000..10efaab Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$Companion.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$FileDownloadCallback.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$FileDownloadCallback.class new file mode 100644 @@ -11825,27 +12096,27 @@ index 0000000..6b1d05f Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$ManifestDownloadCallback.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadAsset$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadAsset$1.class new file mode 100644 -index 0000000..744ccde +index 0000000..b801b4e Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadAsset$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadData$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadData$1.class new file mode 100644 -index 0000000..ba54bc7 +index 0000000..de60b33 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadData$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadFileToPath$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadFileToPath$1.class new file mode 100644 -index 0000000..ff8432b +index 0000000..33a5166 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadFileToPath$1.class differ -diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadManifest$1$onResponse$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadManifest$1$onResponse$1.class -new file mode 100644 -index 0000000..e248581 -Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadManifest$1$onResponse$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadManifest$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadManifest$1.class new file mode 100644 -index 0000000..63f9950 +index 0000000..6bbed2a Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$downloadManifest$1.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$parseManifest$1.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$parseManifest$1.class +new file mode 100644 +index 0000000..b0057cc +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader$parseManifest$1.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader.class new file mode 100644 -index 0000000..e33c1eb +index 0000000..8996023 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/FileDownloader.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/Loader$AssetLoadResult.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/loader/Loader$AssetLoadResult.class new file mode 100644 @@ -11981,8 +12252,12 @@ index 0000000..7ec194c Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/LegacyUpdateManifest.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestFactory.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestFactory.class new file mode 100644 -index 0000000..9baee3f +index 0000000..c1b72e1 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestFactory.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestHeaderData.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestHeaderData.class +new file mode 100644 +index 0000000..a79da1c +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestHeaderData.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestMetadata.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestMetadata.class new file mode 100644 index 0000000..aff21ee @@ -11993,27 +12268,31 @@ index 0000000..9b2ff60 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/ManifestResponse.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$Companion.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$Companion.class new file mode 100644 -index 0000000..9b9aa7a +index 0000000..8b31191 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$Companion.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$assetEntityList$2.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$assetEntityList$2.class new file mode 100644 -index 0000000..e063752 +index 0000000..6838aa2 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$assetEntityList$2.class differ +diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$assetHeaders$2.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$assetHeaders$2.class +new file mode 100644 +index 0000000..7487618 +Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$assetHeaders$2.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$manifestFilters$2.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$manifestFilters$2.class new file mode 100644 -index 0000000..22fb966 +index 0000000..871d84e Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$manifestFilters$2.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$serverDefinedHeaders$2.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$serverDefinedHeaders$2.class new file mode 100644 -index 0000000..8ddee2b +index 0000000..261f91c Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$serverDefinedHeaders$2.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$updateEntity$2.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$updateEntity$2.class new file mode 100644 -index 0000000..dcc4d41 +index 0000000..afe2423 Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest$updateEntity$2.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest.class new file mode 100644 -index 0000000..368664a +index 0000000..be10fff Binary files /dev/null and b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/NewUpdateManifest.class differ diff --git a/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/UpdateManifest.class b/node_modules/expo-updates/android/build/tmp/kotlin-classes/debug/expo/modules/updates/manifest/UpdateManifest.class new file mode 100644 @@ -12081,10 +12360,18 @@ index 69d5957..ec9858c 100644 listener.onCompleted(isValid) return diff --git a/node_modules/expo-updates/android/src/main/java/expo/modules/updates/loader/FileDownloader.kt b/node_modules/expo-updates/android/src/main/java/expo/modules/updates/loader/FileDownloader.kt -index bb05dc3..cac6b89 100644 +index 530a259..3c70674 100644 --- a/node_modules/expo-updates/android/src/main/java/expo/modules/updates/loader/FileDownloader.kt +++ b/node_modules/expo-updates/android/src/main/java/expo/modules/updates/loader/FileDownloader.kt -@@ -62,14 +62,14 @@ open class FileDownloader(context: Context) { +@@ -14,6 +14,7 @@ import expo.modules.updates.manifest.ManifestHeaderData + import expo.modules.updates.manifest.UpdateManifest + import expo.modules.updates.selectionpolicy.SelectionPolicies + import okhttp3.* ++import okhttp3.Headers.Companion.toHeaders + import org.json.JSONArray + import org.json.JSONException + import org.json.JSONObject +@@ -65,14 +66,14 @@ open class FileDownloader(context: Context) { if (!response.isSuccessful) { callback.onFailure( Exception( @@ -12101,7 +12388,51 @@ index bb05dc3..cac6b89 100644 val hash = UpdatesUtils.sha256AndWriteToFile(inputStream, destination) callback.onSuccess(destination, hash) } -@@ -105,13 +105,13 @@ open class FileDownloader(context: Context) { +@@ -100,7 +101,7 @@ open class FileDownloader(context: Context) { + + parseMultipartManifestResponse(response, boundaryParameter, configuration, callback) + } else { +- val responseHeaders = response.headers() ++ val responseHeaders = response.headers + val manifestHeaderData = ManifestHeaderData( + protocolVersion = responseHeaders["expo-protocol-version"], + manifestFilters = responseHeaders["expo-manifest-filters"], +@@ -108,7 +109,7 @@ open class FileDownloader(context: Context) { + manifestSignature = responseHeaders["expo-manifest-signature"], + ) + +- parseManifest(response.body()!!.string(), manifestHeaderData, null, configuration, callback) ++ parseManifest(response.body!!.string(), manifestHeaderData, null, configuration, callback) + } + } + +@@ -124,14 +125,14 @@ open class FileDownloader(context: Context) { + val value = line.substring(indexOfSeparator + 1).trim() + headers[key] = value + } +- return Headers.of(headers) ++ return headers.toHeaders() + } + + private fun parseMultipartManifestResponse(response: Response, boundary: String, configuration: UpdatesConfiguration, callback: ManifestDownloadCallback) { + var manifestPartBodyAndHeaders: Pair? = null + var extensionsBody: String? = null + +- val multipartStream = MultipartStream(response.body()!!.byteStream(), boundary.toByteArray()) ++ val multipartStream = MultipartStream(response.body!!.byteStream(), boundary.toByteArray()) + + try { + var nextPart = multipartStream.skipPreamble() +@@ -178,7 +179,7 @@ open class FileDownloader(context: Context) { + return + } + +- val responseHeaders = response.headers() ++ val responseHeaders = response.headers + val manifestHeaderData = ManifestHeaderData( + protocolVersion = responseHeaders["expo-protocol-version"], + manifestFilters = responseHeaders["expo-manifest-filters"], +@@ -275,7 +276,7 @@ open class FileDownloader(context: Context) { callback.onFailure( "Failed to download manifest from URL: " + configuration.updateUrl, Exception( @@ -12110,19 +12441,14 @@ index bb05dc3..cac6b89 100644 ) ) return - } - try { -- val updateResponseBody = response.body()!!.string() -+ val updateResponseBody = response.body!!.string() - val updateResponseJson = extractUpdateResponseJson(updateResponseBody, configuration) - val isSignatureInBody = updateResponseJson.has("manifestString") && updateResponseJson.has("signature") - val signature = if (isSignatureInBody) { -@@ -338,7 +338,7 @@ open class FileDownloader(context: Context) { +@@ -464,7 +465,9 @@ open class FileDownloader(context: Context) { if (runtimeVersion != null && runtimeVersion.isNotEmpty()) { header("Expo-Runtime-Version", runtimeVersion) } else { - header("Expo-SDK-Version", sdkVersion) -+ header("Expo-SDK-Version", sdkVersion!!) ++ if (sdkVersion != null) { ++ header("Expo-SDK-Version", sdkVersion) ++ } } } .header("Expo-Release-Channel", configuration.releaseChannel) diff --git a/yarn.lock b/yarn.lock index bdd207d8..7585fc5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.16.0" +"@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + "@babel/code-frame@~7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -21,7 +28,28 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== -"@babel/core@7.16.5", "@babel/core@^7.0.0", "@babel/core@^7.1.6", "@babel/core@^7.14.0": +"@babel/core@7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" + integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.7" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/core@^7.0.0", "@babel/core@^7.1.6", "@babel/core@^7.14.0": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== @@ -51,6 +79,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.7.tgz#b42bf46a3079fa65e1544135f32e7958f048adbb" + integrity sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg== + dependencies: + "@babel/types" "^7.16.7" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" @@ -58,6 +95,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz#a8429d064dce8207194b8bf05a70a9ea828746af" @@ -76,6 +120,16 @@ browserslist "^4.17.5" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.16.0", "@babel/helper-create-class-features-plugin@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz#5d1bcd096792c1ebec6249eebc6358eec55d0cad" @@ -89,6 +143,19 @@ "@babel/helper-replace-supers" "^7.16.5" "@babel/helper-split-export-declaration" "^7.16.0" +"@babel/helper-create-class-features-plugin@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz#9c5b34b53a01f2097daf10678d65135c1b9f84ba" + integrity sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-create-regexp-features-plugin@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" @@ -118,6 +185,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-explode-assignable-expression@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" @@ -134,6 +208,15 @@ "@babel/template" "^7.16.0" "@babel/types" "^7.16.0" +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + dependencies: + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/helper-get-function-arity@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" @@ -141,6 +224,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-hoist-variables@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" @@ -148,6 +238,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-member-expression-to-functions@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz#1bc9f7e87354e86f8879c67b316cb03d3dc2caab" @@ -155,6 +252,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-member-expression-to-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" + integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" @@ -162,6 +266,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-module-transforms@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" @@ -176,6 +287,20 @@ "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" +"@babel/helper-module-transforms@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/helper-optimise-call-expression@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" @@ -183,11 +308,23 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== +"@babel/helper-plugin-utils@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + "@babel/helper-remap-async-to-generator@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz#e706646dc4018942acb4b29f7e185bc246d65ac3" @@ -208,6 +345,17 @@ "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/helper-simple-access@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" @@ -215,6 +363,13 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-simple-access@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" @@ -229,16 +384,33 @@ dependencies: "@babel/types" "^7.16.0" +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-validator-identifier@^7.15.7": version "7.15.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + "@babel/helper-wrap-function@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz#0158fca6f6d0889c3fee8a6ed6e5e07b9b54e41f" @@ -258,6 +430,15 @@ "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" +"@babel/helpers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" + integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" @@ -267,11 +448,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" + integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.1.6", "@babel/parser@^7.14.0", "@babel/parser@^7.16.0", "@babel/parser@^7.16.5": version "7.16.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== +"@babel/parser@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.7.tgz#d372dda9c89fcec340a82630a9f533f2fe15877e" + integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": version "7.16.2" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" @@ -398,7 +593,16 @@ "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@7.16.5", "@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.1.0", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.5": +"@babel/plugin-proposal-optional-chaining@7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.1.0", "@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz#a5fa61056194d5059366c0009cb9a9e66ed75c1f" integrity sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A== @@ -566,6 +770,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.5" +"@babel/plugin-syntax-typescript@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz#04c18944dd55397b521d9d7511e791acea7acf2d" @@ -868,6 +1079,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript" "^7.16.0" +"@babel/plugin-transform-typescript@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.7.tgz#33f8c2c890fbfdc4ef82446e9abb8de8211a3ff3" + integrity sha512-Hzx1lvBtOCWuCEwMmYOfpQpO7joFeXLgoPuzZZBtTxXqSqUGUubvFGZv2ygo1tB5Bp9q6PXV3H0E/kf7KM0RLA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-typescript" "^7.16.7" + "@babel/plugin-transform-unicode-escapes@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz#80507c225af49b4f4ee647e2a0ce53d2eeff9e85" @@ -983,7 +1203,16 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-typescript@7.16.5", "@babel/preset-typescript@^7.1.0": +"@babel/preset-typescript@7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" + integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.16.7" + +"@babel/preset-typescript@^7.1.0": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz#b86a5b0ae739ba741347d2f58c52f52e63cf1ba1" integrity sha512-lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q== @@ -1019,6 +1248,15 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.5": version "7.16.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" @@ -1035,6 +1273,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.7.tgz#dac01236a72c2560073658dd1a285fe4e0865d76" + integrity sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.4.4": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" @@ -1043,6 +1297,14 @@ "@babel/helper-validator-identifier" "^7.15.7" to-fast-properties "^2.0.0" +"@babel/types@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.7.tgz#4ed19d51f840ed4bd5645be6ce40775fecf03159" + integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -1080,6 +1342,28 @@ xcode "^3.0.1" xml2js "0.4.23" +"@expo/config-plugins@4.0.15": + version "4.0.15" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.0.15.tgz#cc170a0cf890973b6491cf357540e9955296019c" + integrity sha512-QqxVEt2bFu3ZuI1soULRJv7i0Zrg/FMZ0IxNV7Y3AjH7fhtUJH3pPo9f6MURvqNr+PLxhBlkofkWfunrVejSkw== + dependencies: + "@expo/config-types" "^43.0.1" + "@expo/json-file" "8.2.34" + "@expo/plist" "0.0.16" + "@expo/sdk-runtime-versions" "^1.0.0" + "@react-native/normalize-color" "^2.0.0" + chalk "^4.1.2" + debug "^4.3.1" + find-up "~5.0.0" + fs-extra "9.0.0" + getenv "^1.0.0" + glob "7.1.6" + resolve-from "^5.0.0" + semver "^7.3.5" + slash "^3.0.0" + xcode "^3.0.1" + xml2js "0.4.23" + "@expo/config-plugins@4.0.6": version "4.0.6" resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.0.6.tgz#ef52f0e4d96ddd52b4cd4cc8c6efbe3d9576c72d" @@ -1129,13 +1413,13 @@ resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-43.0.1.tgz#3e047dccb371741a540980eaff26fb0c95039c30" integrity sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ== -"@expo/config@6.0.14", "@expo/config@^6.0.6": - version "6.0.14" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.14.tgz#00d084893dd661e8351d8359e0f0f8d875d82e12" - integrity sha512-CVnAGmXvAEYRYhXa7p1fZW9MzJtxE8cO0AGWdJIym4kyvxi6qkgeowmENEQUYKRk2s8Kq1+iY5krm2VXDqQV9w== +"@expo/config@6.0.15": + version "6.0.15" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.15.tgz#aa610f8b714e0b1103e13c8210059519479d11d6" + integrity sha512-nrG+OUe/2n3ulNSgHRs9V70zXu3lpkuzJ6F0VmCuhjyHqT7UYimkgSCJGqaE3N+AayBTK+YffOT6bTWH17wxjQ== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "4.0.14" + "@expo/config-plugins" "4.0.15" "@expo/config-types" "^43.0.1" "@expo/json-file" "8.2.34" getenv "^1.0.0" @@ -1163,6 +1447,23 @@ slugify "^1.3.4" sucrase "^3.20.0" +"@expo/config@^6.0.6": + version "6.0.14" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.14.tgz#00d084893dd661e8351d8359e0f0f8d875d82e12" + integrity sha512-CVnAGmXvAEYRYhXa7p1fZW9MzJtxE8cO0AGWdJIym4kyvxi6qkgeowmENEQUYKRk2s8Kq1+iY5krm2VXDqQV9w== + dependencies: + "@babel/code-frame" "~7.10.4" + "@expo/config-plugins" "4.0.14" + "@expo/config-types" "^43.0.1" + "@expo/json-file" "8.2.34" + getenv "^1.0.0" + glob "7.1.6" + require-from-string "^2.0.2" + resolve-from "^5.0.0" + semver "7.3.2" + slugify "^1.3.4" + sucrase "^3.20.0" + "@expo/configure-splash-screen@^0.6.0": version "0.6.0" resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39" @@ -1260,18 +1561,18 @@ base64-js "^1.2.3" xmlbuilder "^14.0.0" -"@expo/prebuild-config@^3.0.6": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-3.0.14.tgz#0c58c3887830b6ebdafbd49d1bfe8c16fc552741" - integrity sha512-YpPcjgHsILWlXVl3txPJ6lQNCc8JWbMp3EkXdyi6/glXYAHbOI8snTFeV2GOJH5X2y88C24u0sAParcaNuapiQ== +"@expo/prebuild-config@^3.0.15": + version "3.0.15" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-3.0.15.tgz#bfc920bdbd01ab4d785cbf64c3a9deb74a6bb6a4" + integrity sha512-fP35AajhPIyUoqexTCxjcfSLZwK4OeedLZbxgUb32+k5kl1b7uSbmdAMtGHfLgnI18Mhk2QprerXOMK4zxo9mQ== dependencies: - "@expo/config" "6.0.14" - "@expo/config-plugins" "4.0.14" + "@expo/config" "6.0.15" + "@expo/config-plugins" "4.0.15" "@expo/config-types" "^43.0.1" "@expo/image-utils" "0.3.18" "@expo/json-file" "8.2.34" debug "^4.3.1" - expo-modules-autolinking "~0.4.0" + expo-modules-autolinking "~0.5.1" fs-extra "^9.0.0" resolve-from "^5.0.0" semver "7.3.2" @@ -1539,10 +1840,10 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" -"@react-native-community/netinfo@7.1.6": - version "7.1.6" - resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-7.1.6.tgz#b1c5c7e93559eb2d3d493c9aac14cd45554a9261" - integrity sha512-FsBpEpMaFRwWz+Z2HWcYP2wBN7wooTIuvnOvY5EBJwrJIu15UnTaSGT4ABhdMSP8I0loI75mJxuXVQ+BwR5UTg== +"@react-native-community/netinfo@7.1.7": + version "7.1.7" + resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-7.1.7.tgz#10e96922c90a0ff9755dcfbfc92a9d83ec45cd87" + integrity sha512-QCEuvbTAD7vyCsSsgbWedhTfXlClp4TVHVWYYMjnN7nz6xgZbSp+MI3oo7X5C4JlDHpRm/Q+63hsCgAqKt3WVA== "@react-native-community/segmented-control@2.2.2": version "2.2.2" @@ -1919,14 +2220,24 @@ resolved "https://registry.yarnpkg.com/@types/react-native-base64/-/react-native-base64-0.2.0.tgz#c934e7c3cd549d4613bbfa7929a6845ab07a20af" integrity sha512-5kUtS7Kf8Xl4zEwbqLITEuQReQTby4UOGfnsEeBFJEVmUfT+ygOv/Qmv0v6El0iV1eDhXS+/0i7CGR9d3/nRSA== -"@types/react-native@0.66.9": - version "0.66.9" - resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.66.9.tgz#a051d1f1f3cd03df4b4870e91e416b71377a8b7a" - integrity sha512-lve1rgQadbOM82ZRiw6CvvManUeidDhlFtiXA+dErI7a7/NNxLM7kZVYDNKd/QQc5FgLlQ0Uof2QInup7OwsBg== +"@types/react-native@0.66.11": + version "0.66.11" + resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.66.11.tgz#3d138275fe9cca3b8efad990b1bee08078c3ff4d" + integrity sha512-DFuNMhRuyKMbJrI/s3rIuM5io+tIOK4Iq9oMzatWX5bIgfjZM86X1aA/epE0ipw1aFaoHKermK3fLG1bqFzzDQ== dependencies: "@types/react" "*" -"@types/react-redux@7.1.20", "@types/react-redux@^7.1.20": +"@types/react-redux@7.1.21": + version "7.1.21" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.21.tgz#f32bbaf7cbc4b93f51e10d340aa54035c084b186" + integrity sha512-bLdglUiBSQNzWVVbmNPKGYYjrzp3/YDPwfOH3nLEz99I4awLlaRAPWjo6bZ2POpxztFWtDDXIPxBLVykXqBt+w== + dependencies: + "@types/hoist-non-react-statics" "^3.3.0" + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + redux "^4.0.0" + +"@types/react-redux@^7.1.20": version "7.1.20" resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.20.tgz#42f0e61ababb621e12c66c96dda94c58423bd7df" integrity sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw== @@ -1943,7 +2254,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@17.0.37": +"@types/react@*": version "17.0.37" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.37.tgz#6884d0aa402605935c397ae689deed115caad959" integrity sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg== @@ -1952,6 +2263,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@17.0.38": + version "17.0.38" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.38.tgz#f24249fefd89357d5fa71f739a686b8d7c7202bd" + integrity sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/scheduler@*": version "0.16.2" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" @@ -3170,10 +3490,10 @@ expo-application@~4.0.0, expo-application@~4.0.1: resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-4.0.1.tgz#d38a1315c06c253b843c951ddc6fbb9a026f05cc" integrity sha512-yZM/SrpWdi84m5+5F3VDfhrMZOz/uKwXcgBhOP1wzfXt0otGSRW1V5tM+a0sgaKZsDRCGojTU7Jm73BVwwVrwg== -expo-asset@~8.4.4: - version "8.4.4" - resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.4.4.tgz#6214270a41af378ac734a28fbff7b542ca84a3cf" - integrity sha512-0yxAOJo8bnYvnRNOWikQ1xFP+YQViJ/px3MofZFUPGw02iaSSUzArcKDfMtpJNmH/EC7HE7GJSZpkoxx+zsHWA== +expo-asset@~8.4.5: + version "8.4.5" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.4.5.tgz#730579b48408222c210beface7508224683f1740" + integrity sha512-4E+VzFdgSjeCC+x80VuL+moY04U19SRV6vrL8DekQSyPbwkNR1QdvSx/7O7XTOspB9duwebQ1ue7JHFWOwyaMQ== dependencies: blueimp-md5 "^2.10.0" invariant "^2.2.4" @@ -3193,13 +3513,12 @@ expo-auth-session@3.5.0: invariant "^2.2.4" qs "6.9.1" -expo-av@10.1.3: - version "10.1.3" - resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-10.1.3.tgz#a010443d7f82398d789a89824f1d512d8b407e3c" - integrity sha512-zYhpYthdQ5UPuhNn3XWaMJu94XyXUNw6WEifRnKH5xUHo0Oy0XrV5JAk8iO+7WDgfGo9oHlgvnSWrMNQsbF80A== +expo-av@10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-10.2.0.tgz#4bc4b1f409f3ad2e247586f22e4fb9e1aa666b0a" + integrity sha512-jo7Nv3IgJPAiOerKRwlL4guKkULZfvE5KIRZmgLurgPvJFHHAye4pFe2IlqQftKd66NHo1vq2zIGF3B3fsTPmw== dependencies: "@expo/config-plugins" "^4.0.2" - expo-modules-core "~0.4.7" expo-constants@^13.0.0, expo-constants@~13.0.0: version "13.0.0" @@ -3321,21 +3640,10 @@ expo-media-library@^14.0.0: dependencies: "@expo/config-plugins" "^4.0.2" -expo-modules-autolinking@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.1.tgz#44f56288d55f6a71576ddd94c18ec9ec8141207b" - integrity sha512-UaqISyuWDTFWBeQv6BniPzAWOJ0R6MCL/uNt6BSMkZW+b8PUq4wYFpSNXSWUJTqY/raYWs5hcSR4HPGkqnVQlg== - dependencies: - chalk "^4.1.0" - commander "^7.2.0" - fast-glob "^3.2.5" - find-up "^5.0.0" - fs-extra "^9.1.0" - -expo-modules-autolinking@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.4.0.tgz#ad6e52ee42dd0e40a494693d763fa4bf2248c012" - integrity sha512-GRGHbQ4b/aOtEup/oA6YVS7OOBKqU4sNLhoiTkEJWXmYDRERZiRvp8N2krQtn54y5PqucftqlBrMbdCinTouqg== +expo-modules-autolinking@0.5.4, expo-modules-autolinking@~0.5.1: + version "0.5.4" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.4.tgz#d105d46cb6faab71c72c3181b9c2ab8cc8b09dba" + integrity sha512-Q2wQp7tE7nlkmIQslQxa02uswOAJZXuJHWmb5oCG8BkzL6QBmDURJ/1j5hlIKuyN+j1M0rZbzyVI+ufyziGsSQ== dependencies: chalk "^4.1.0" commander "^7.2.0" @@ -3351,14 +3659,6 @@ expo-modules-core@0.6.3: compare-versions "^3.4.0" invariant "^2.2.4" -expo-modules-core@~0.4.7: - version "0.4.9" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.4.9.tgz#e808ca8a70c4ac0da2cfc7040e48a4c67aeee5b3" - integrity sha512-yuwYoEQMZNSysufsYgJVmncpeGopNi8Q3y5Q7MM05PT90Sc5CGqbYwJMYomF7MprTZAxCvayoRBCKgOlzutWog== - dependencies: - compare-versions "^3.4.0" - invariant "^2.2.4" - expo-notifications@0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.14.0.tgz#e58c13e2d47e26a1b8c6b4a64cf181771f5d69f4" @@ -3398,13 +3698,13 @@ expo-secure-store@11.1.0: resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-11.1.0.tgz#2eb6e793a459e178feeb72bbeb40afc97e412bf6" integrity sha512-LyCLqsoibP90Td4mSWc+un+xGNYnIuGOrfbp2aG2KAn1ZGcDL6muxIaFj7a/4Kh+EiCIoU5EPb1YjOATbmaBnQ== -expo-splash-screen@0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.14.0.tgz#6ed61cba73c246de329e9bf903bb5964f50bb7a9" - integrity sha512-4ruZGrVFcOPVYsq5uH/tiu/2JZU2xyKV6sip12ZSOjCz9V109iPWde2amKV3Uctdb2g8Iqi8nIRIeOOCO3LbHQ== +expo-splash-screen@0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.14.1.tgz#7647c8b98c679b8313d24a7c14729402c3c16631" + integrity sha512-Y08wMIVjRuPbBnH2N6KwUfQYYnAiBrZMFAfXjjPPObyMDZ7v5VXTcbAWHqGdnYDcIbXRpat+fiWpTeU2HanBBg== dependencies: "@expo/configure-splash-screen" "^0.6.0" - "@expo/prebuild-config" "^3.0.6" + "@expo/prebuild-config" "^3.0.15" expo-status-bar@1.2.0: version "1.2.0" @@ -3426,10 +3726,10 @@ expo-updates-interface@~0.5.0: resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.5.0.tgz#30b05b9e190b3e2662d7cc26cd84d305d7ab4217" integrity sha512-3Yhip5LQ6x1nQ/2Xm/uP3Oeann7YkaBwsdUpxbcMtn2Ayucuu9U7r9ltwzBFxC4RWebfhXGJZ5+gx85y0leGXQ== -expo-updates@0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.11.1.tgz#911469fe395361f40735551de0a470675a691046" - integrity sha512-koojsMlI6GSjw+xlNILy3qFnu7thEkhXlogImm/YmIbbvafXVAPqkVREv+IRnJ5Ej2W700mNlOT4XP+XsZOW+Q== +expo-updates@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.11.3.tgz#5dcd27ea7de47b6b222c525541a2e0dc91d6191e" + integrity sha512-W8oXaH0MKaH5ZLszupnm904A4epBjgvjPEfuIjy3JybTU+JC8319gqsOZ7nWBxZZck67utxHAlyJ9Ks/CcqFmA== dependencies: "@expo/config" "^6.0.6" "@expo/config-plugins" "^4.0.2" @@ -3453,10 +3753,10 @@ expo-web-browser@10.1.0, expo-web-browser@~10.1.0: dependencies: compare-urls "^2.0.0" -expo@44.0.0: - version "44.0.0" - resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.0.tgz#794d1f062e232018d26ef01ad570673c78a5f54d" - integrity sha512-N8bykKCT1EIk9L0UBsWXRtnbUtlmWkmVYXNacAEpHixVLBA8HBhs7BnSG5zd+O7beHWUA9FZmCK4CgduNFzBVQ== +expo@44.0.3: + version "44.0.3" + resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.3.tgz#6f30ff51fbb2608a408c7ac10aeb703fc04d304e" + integrity sha512-uk6t89gV5Gs5MdHXZkjKlBdXSo4j+oKj/BrK/FTFlKvEqEL34SbEXy9IcS0o7IDPFuqVIzclXcnAI+sOU4J5Lg== dependencies: "@babel/runtime" "^7.14.0" "@expo/metro-config" "~0.2.6" @@ -3464,12 +3764,12 @@ expo@44.0.0: babel-preset-expo "~9.0.2" cross-spawn "^6.0.5" expo-application "~4.0.1" - expo-asset "~8.4.4" + expo-asset "~8.4.5" expo-constants "~13.0.0" expo-file-system "~13.1.0" expo-font "~10.0.4" expo-keep-awake "~10.0.1" - expo-modules-autolinking "0.5.1" + expo-modules-autolinking "0.5.4" expo-modules-core "0.6.3" fbemitter "^2.1.1" invariant "^2.2.4" @@ -5836,10 +6136,10 @@ react-freeze@^1.0.0: resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.0.tgz#b21c65fe1783743007c8c9a2952b1c8879a77354" integrity sha512-yQaiOqDmoKqks56LN9MTgY06O0qQHgV4FUrikH357DydArSZHQhl0BJFqGKIZoTqi8JizF9Dxhuk1FIZD6qCaw== -react-i18next@11.15.1: - version "11.15.1" - resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.15.1.tgz#1dec5f2bf2cf7bc5043e9fcb391c9d6e24bb9bfe" - integrity sha512-lnje1uKu5XeM5MLvfbt1oygF+nEIZnpOM4Iu8bkx5ECD4XRYgi3SJDmolrp0EDxDHeK2GgFb+vEEK0hsZ9sjeA== +react-i18next@11.15.3: + version "11.15.3" + resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.15.3.tgz#7608fb3cacc02ac75a62fc2d68b579f140b198dd" + integrity sha512-RSUEM4So3Tu2JHV0JsZ5Yje+4nz66YViMfPZoywxOy0xyn3L7tE2CHvJ7Y9LUsrTU7vGmZ5bwb8PpjnkatdIxg== dependencies: "@babel/runtime" "^7.14.5" html-escaper "^2.0.2" @@ -5865,10 +6165,10 @@ react-native-base64@^0.2.1: resolved "https://registry.yarnpkg.com/react-native-base64/-/react-native-base64-0.2.1.tgz#3d0e73a649c4c0129f7b7695d3912456aebae847" integrity sha512-eHgt/MA8y5ZF0aHfZ1aTPcIkDWxza9AaEk4GcpIX+ZYfZ04RcaNahO+527KR7J44/mD3efYfM23O2C1N44ByWA== -react-native-blurhash@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/react-native-blurhash/-/react-native-blurhash-1.1.7.tgz#6e94a5663d77615e4bcc3994f4b76e061247d05e" - integrity sha512-o9J6Vo59TtAQnXAtai7a7sAlT39DZn9H2OHkuuSzToa8HKjOJfuB1r/PDBd042hipeTHoAh5Z40bLrq6Aj70mQ== +react-native-blurhash@1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/react-native-blurhash/-/react-native-blurhash-1.1.8.tgz#5f1e5fa25c58f8e084ddca02cb1a3e8ff713748f" + integrity sha512-BzkTeI1DQekA6QdEBSyD5iFZyT3y+WI6ljRiFPj8nhf3c5qAUJ2+8zaMP385D1oKleIDHk4nyfsUUECTq9nyLw== react-native-clean-project@3.6.7: version "3.6.7" @@ -6012,10 +6312,10 @@ react-native@0.66.4: whatwg-fetch "^3.0.0" ws "^6.1.4" -react-query@3.34.5: - version "3.34.5" - resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.34.5.tgz#a145c02f58088c5c83c91697cece50e89b4dbfd8" - integrity sha512-qk1hYo+y90LGY5W4kNEYT5yCk8gyL1fVTMoRZfzBTaSdaZWOcdvij36MmkhIqiPdXoEt5pBvX2ejokazwq8haw== +react-query@3.34.7: + version "3.34.7" + resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.34.7.tgz#e3d71318f510ea354794cd188b351bb57f577cb9" + integrity sha512-Q8+H2DgpoZdGUpwW2Z9WAbSrIE+yOdZiCUokHjlniOOmlcsfqNLgvHF5i7rtuCmlw3hv5OAhtpS7e97/DvgpWw== dependencies: "@babel/runtime" "^7.5.5" broadcast-channel "^3.4.1" From 22af0bf8284ef4517634c15884163092d7776540 Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Sun, 2 Jan 2022 22:28:06 +0100 Subject: [PATCH 04/14] Fix dark mode flashing --- ios/tooot/AppDelegate.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/tooot/AppDelegate.m b/ios/tooot/AppDelegate.m index 60b18be4..8a102a58 100644 --- a/ios/tooot/AppDelegate.m +++ b/ios/tooot/AppDelegate.m @@ -53,7 +53,7 @@ static void InitializeFlipper(UIApplication *application) { RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions]; RCTRootView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@"main" initialProperties:nil]; - rootView.backgroundColor = [UIColor whiteColor]; + rootView.backgroundColor = [UIColor colorNamed:@"SplashScreenBackgroundColor"]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [self.reactDelegate createRootViewController]; rootViewController.view = rootView; From 013d55aee2baa6b85acaacd5fb4d4c2cd2a47d5e Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Sun, 2 Jan 2022 22:28:33 +0100 Subject: [PATCH 05/14] Use proper environment mapping --- src/App.tsx | 4 +- src/api/tooot.ts | 7 ++- src/screens/Tabs/Me/Push.tsx | 18 ++++--- src/screens/Tabs/Me/Settings.tsx | 9 +--- src/screens/Tabs/Me/Settings/Tooot.tsx | 7 +-- src/startup/sentry.ts | 6 +-- src/utils/checkEnvironment.ts | 49 +++++++++++++++++++ src/utils/push/useConnect.ts | 13 +++-- src/utils/slices/instances/updatePush.ts | 13 +++-- .../slices/instances/updatePushDecode.ts | 13 +++-- 10 files changed, 99 insertions(+), 40 deletions(-) create mode 100644 src/utils/checkEnvironment.ts diff --git a/src/App.tsx b/src/App.tsx index fda43418..bfaad105 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -41,10 +41,10 @@ const App: React.FC = () => { Notifications.dismissAllNotificationsAsync() }, []) useEffect(() => { - AppState.addEventListener('change', appStateEffect) + const appStateListener = AppState.addEventListener('change', appStateEffect) return () => { - AppState.removeEventListener('change', appStateEffect) + appStateListener.remove() } }, []) diff --git a/src/api/tooot.ts b/src/api/tooot.ts index 845b70cb..713d2a6c 100644 --- a/src/api/tooot.ts +++ b/src/api/tooot.ts @@ -1,3 +1,4 @@ +import { mapEnvironment } from '@utils/checkEnvironment' import axios from 'axios' import chalk from 'chalk' import Constants from 'expo-constants' @@ -16,7 +17,11 @@ export type Params = { sentry?: boolean } -export const TOOOT_API_DOMAIN = __DEV__ ? 'testapi.tooot.app' : 'api.tooot.app' +export const TOOOT_API_DOMAIN = mapEnvironment({ + release: 'api.tooot.app', + candidate: 'api-candidate.tooot.app', + development: 'api-development.tooot.app' +}) const apiTooot = async ({ method, diff --git a/src/screens/Tabs/Me/Push.tsx b/src/screens/Tabs/Me/Push.tsx index 810c3366..dcfcbb29 100644 --- a/src/screens/Tabs/Me/Push.tsx +++ b/src/screens/Tabs/Me/Push.tsx @@ -2,6 +2,7 @@ import analytics from '@components/analytics' import Button from '@components/Button' import Icon from '@components/Icon' import { MenuContainer, MenuRow } from '@components/Menu' +import { isDevelopment } from '@utils/checkEnvironment' import { updateInstancePush } from '@utils/slices/instances/updatePush' import { updateInstancePushAlert } from '@utils/slices/instances/updatePushAlert' import { updateInstancePushDecode } from '@utils/slices/instances/updatePushDecode' @@ -45,11 +46,16 @@ const TabMePush: React.FC = () => { setPushCanAskAgain(settings.canAskAgain) } useEffect(() => { - Notifications.getExpoPushTokenAsync({ - experienceId: '@xmflsct/tooot' - }) - .then(data => setPushAvailable(!!data)) - .catch(() => setPushAvailable(false)) + if (isDevelopment) { + setPushAvailable(true) + } else { + Notifications.getExpoPushTokenAsync({ + experienceId: '@xmflsct/tooot' + }) + .then(data => setPushAvailable(!!data)) + .catch(() => setPushAvailable(false)) + } + checkPush() const subscription = AppState.addEventListener('change', checkPush) return () => { @@ -106,7 +112,7 @@ const TabMePush: React.FC = () => { return ( - {pushAvailable !== false ? ( + {pushAvailable === true ? ( <> {pushEnabled === false ? ( diff --git a/src/screens/Tabs/Me/Settings.tsx b/src/screens/Tabs/Me/Settings.tsx index 87e01c1d..b2d28954 100644 --- a/src/screens/Tabs/Me/Settings.tsx +++ b/src/screens/Tabs/Me/Settings.tsx @@ -1,4 +1,4 @@ -import * as Updates from 'expo-updates' +import { isDevelopment } from '@utils/checkEnvironment' import React from 'react' import { ScrollView } from 'react-native-gesture-handler' import SettingsAnalytics from './Settings/Analytics' @@ -13,12 +13,7 @@ const TabMeSettings: React.FC = () => { - {__DEV__ || - ['development'].some(channel => - Updates.releaseChannel.includes(channel) - ) ? ( - - ) : null} + {isDevelopment ? : null} ) } diff --git a/src/screens/Tabs/Me/Settings/Tooot.tsx b/src/screens/Tabs/Me/Settings/Tooot.tsx index c488039e..08456970 100644 --- a/src/screens/Tabs/Me/Settings/Tooot.tsx +++ b/src/screens/Tabs/Me/Settings/Tooot.tsx @@ -4,7 +4,6 @@ import { MenuContainer, MenuRow } from '@components/Menu' import { useNavigation } from '@react-navigation/native' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' -import * as Updates from 'expo-updates' import * as Linking from 'expo-linking' import * as StoreReview from 'expo-store-review' import * as WebBrowser from 'expo-web-browser' @@ -12,6 +11,7 @@ import React from 'react' import { useTranslation } from 'react-i18next' import { useSelector } from 'react-redux' import { getInstanceActive } from '@utils/slices/instancesSlice' +import { isCandidate, isDevelopment } from '@utils/checkEnvironment' const SettingsTooot: React.FC = () => { const instanceActive = useSelector(getInstanceActive) @@ -36,10 +36,7 @@ const SettingsTooot: React.FC = () => { Linking.openURL('https://www.buymeacoffee.com/xmflsct') }} /> - {__DEV__ || - ['release', 'development'].some(channel => - Updates.releaseChannel?.includes(channel) - ) ? ( + {isDevelopment || isCandidate ? ( { Sentry.init({ dsn: Constants.manifest?.extra?.sentryDSN, enableInExpoDevelopment: false, - debug: - __DEV__ || - ['development'].some(channel => Updates.releaseChannel.includes(channel)) + debug: isDevelopment }) } diff --git a/src/utils/checkEnvironment.ts b/src/utils/checkEnvironment.ts new file mode 100644 index 00000000..a4824d3f --- /dev/null +++ b/src/utils/checkEnvironment.ts @@ -0,0 +1,49 @@ +import * as Updates from 'expo-updates' + +const mapEnvironment = ({ + release, + candidate, + development +}: { + release: T + candidate?: T + development?: T +}): T => { + if (isDevelopment) { + if (development) { + return development + } else { + throw new Error('Development environment but no development handler') + } + } + + if (isCandidate) { + if (candidate) { + return candidate + } else { + throw new Error('Candidate environment but no candidate handler') + } + } + + if (isRelease) { + return release + } + + throw new Error( + `Environment not set. Please set the environment in the Expo project settings.` + ) +} + +const isDevelopment = + __DEV__ || + ['development'].some(channel => Updates.releaseChannel.includes(channel)) + +const isCandidate = ['candidate'].some(channel => + Updates.releaseChannel.includes(channel) +) + +const isRelease = ['release'].some(channel => + Updates.releaseChannel.includes(channel) +) + +export { mapEnvironment, isDevelopment, isCandidate, isRelease } diff --git a/src/utils/push/useConnect.ts b/src/utils/push/useConnect.ts index 08c30f00..801e6885 100644 --- a/src/utils/push/useConnect.ts +++ b/src/utils/push/useConnect.ts @@ -3,6 +3,7 @@ import apiTooot from '@api/tooot' import { displayMessage } from '@components/Message' import navigationRef from '@helpers/navigationRef' import { Dispatch } from '@reduxjs/toolkit' +import { isDevelopment } from '@utils/checkEnvironment' import { disableAllPushes, Instance } from '@utils/slices/instancesSlice' import * as Notifications from 'expo-notifications' import { useEffect } from 'react' @@ -18,11 +19,13 @@ export interface Params { const pushUseConnect = ({ mode, t, instances, dispatch }: Params) => { return useEffect(() => { const connect = async () => { - const expoToken = ( - await Notifications.getExpoPushTokenAsync({ - experienceId: '@xmflsct/tooot' - }) - ).data + const expoToken = isDevelopment + ? 'DEVELOPMENT_TOKEN_1' + : ( + await Notifications.getExpoPushTokenAsync({ + experienceId: '@xmflsct/tooot' + }) + ).data apiTooot({ method: 'get', diff --git a/src/utils/slices/instances/updatePush.ts b/src/utils/slices/instances/updatePush.ts index 8a5354d8..75b4e54e 100644 --- a/src/utils/slices/instances/updatePush.ts +++ b/src/utils/slices/instances/updatePush.ts @@ -1,5 +1,6 @@ import { createAsyncThunk } from '@reduxjs/toolkit' import { RootState } from '@root/store' +import { isDevelopment } from '@utils/checkEnvironment' import * as Notifications from 'expo-notifications' import { Instance } from '../instancesSlice' import pushRegister from './push/register' @@ -12,11 +13,13 @@ export const updateInstancePush = createAsyncThunk( { getState } ): Promise => { const state = getState() as RootState - const expoToken = ( - await Notifications.getExpoPushTokenAsync({ - experienceId: '@xmflsct/tooot' - }) - ).data + const expoToken = isDevelopment + ? 'DEVELOPMENT_TOKEN_1' + : ( + await Notifications.getExpoPushTokenAsync({ + experienceId: '@xmflsct/tooot' + }) + ).data if (disable) { return await pushRegister(state, expoToken) diff --git a/src/utils/slices/instances/updatePushDecode.ts b/src/utils/slices/instances/updatePushDecode.ts index 5ef848ed..928a4157 100644 --- a/src/utils/slices/instances/updatePushDecode.ts +++ b/src/utils/slices/instances/updatePushDecode.ts @@ -2,6 +2,7 @@ import apiTooot from '@api/tooot' import { createAsyncThunk } from '@reduxjs/toolkit' import i18n from '@root/i18n/i18n' import { RootState } from '@root/store' +import { isDevelopment } from '@utils/checkEnvironment' import * as Notifications from 'expo-notifications' import { Platform } from 'react-native' import { getInstance, Instance } from '../instancesSlice' @@ -19,11 +20,13 @@ export const updateInstancePushDecode = createAsyncThunk( return Promise.reject() } - const expoToken = ( - await Notifications.getExpoPushTokenAsync({ - experienceId: '@xmflsct/tooot' - }) - ).data + const expoToken = isDevelopment + ? 'DEVELOPMENT_TOKEN_1' + : ( + await Notifications.getExpoPushTokenAsync({ + experienceId: '@xmflsct/tooot' + }) + ).data await apiTooot({ method: 'put', From 255307b748aaa73ff12ce5c91cc93b59aafce49c Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Mon, 3 Jan 2022 18:33:30 +0100 Subject: [PATCH 06/14] Fix Android crash on using @react-native-community/blur --- src/screens/Announcements.tsx | 46 +++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/src/screens/Announcements.tsx b/src/screens/Announcements.tsx index a00f0a72..82f25b3d 100644 --- a/src/screens/Announcements.tsx +++ b/src/screens/Announcements.tsx @@ -14,7 +14,14 @@ import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { useCallback, useEffect, useState } from 'react' import { Trans, useTranslation } from 'react-i18next' -import { Dimensions, Pressable, StyleSheet, Text, View } from 'react-native' +import { + Dimensions, + Platform, + Pressable, + StyleSheet, + Text, + View +} from 'react-native' import { Circle } from 'react-native-animated-spinkit' import FastImage from 'react-native-fast-image' import { FlatList, ScrollView } from 'react-native-gesture-handler' @@ -199,7 +206,7 @@ const ScreenAnnouncements: React.FC< ) }, []) - return ( + return Platform.OS === 'ios' ? ( + ) : ( + + + + {query.data && query.data.length > 1 ? ( + <> + {query.data.map((d, i) => ( + + ))} + + ) : null} + + ) } From 271ae63dacb6b5fc183dbec7be180b1be78203b8 Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Mon, 3 Jan 2022 20:20:54 +0100 Subject: [PATCH 07/14] Enable uploading dsym with bitcode --- fastlane/Fastfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 89799d8f..919c0f52 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,4 +1,4 @@ -fastlane_version "2.180.1" +fastlane_version "2.199.0" skip_docs ensure_env_vars( @@ -108,6 +108,11 @@ private_lane :build_ios do silent: true ) upload_to_app_store( ipa: IPA_FILE, app_version: VERSION ) + download_dsyms + sentry_upload_dsym( + org_slug: ENV["SENTRY_ORGANIZATION"], + project_slug: ENV["SENTRY_PROJECT"], + ) else if !is_ci match( type: "adhoc", readonly: true ) From 3a4733316adead4f6cb42e851d23c02efdc9ff3b Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Mon, 3 Jan 2022 21:25:53 +0100 Subject: [PATCH 08/14] Try to fix scrollToIndex out of range --- src/screens/Tabs/Shared/Toot.tsx | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/screens/Tabs/Shared/Toot.tsx b/src/screens/Tabs/Shared/Toot.tsx index 94a77a99..3a4c7ab2 100644 --- a/src/screens/Tabs/Shared/Toot.tsx +++ b/src/screens/Tabs/Shared/Toot.tsx @@ -4,7 +4,7 @@ import { useNavigation } from '@react-navigation/native' import { TabSharedStackScreenProps } from '@utils/navigation/navigators' import { QueryKeyTimeline } from '@utils/queryHooks/timeline' import { findIndex } from 'lodash' -import React, { useCallback, useEffect, useRef } from 'react' +import React, { useCallback, useEffect, useRef, useState } from 'react' import { FlatList } from 'react-native' import { InfiniteQueryObserver, useQueryClient } from 'react-query' @@ -20,6 +20,7 @@ const TabSharedToot: React.FC> = ({ const flRef = useRef(null) + const [itemsLength, setItemsLength] = useState(0) const scrolled = useRef(false) const navigation = useNavigation() const queryClient = useQueryClient() @@ -31,6 +32,7 @@ const TabSharedToot: React.FC> = ({ ? // @ts-ignore result.data.pages.flatMap(d => [...d.body]) : [] + setItemsLength(flattenData.length) // Auto go back when toot page is empty if (flattenData.length === 0) { navigation.goBack() @@ -38,13 +40,13 @@ const TabSharedToot: React.FC> = ({ if (!scrolled.current) { scrolled.current = true const pointer = findIndex(flattenData, ['id', toot.id]) - pointer > 0 && + pointer < flattenData.length && setTimeout(() => { flRef.current?.scrollToIndex({ index: pointer, viewOffset: 100 }) - }, 1000) + }, 500) } } }) @@ -52,15 +54,19 @@ const TabSharedToot: React.FC> = ({ }, []) // Toot page auto scroll to selected toot - const onScrollToIndexFailed = useCallback(error => { - const offset = error.averageItemLength * error.index - flRef.current?.scrollToOffset({ offset }) - setTimeout( - () => - flRef.current?.scrollToIndex({ index: error.index, viewOffset: 100 }), - 350 - ) - }, []) + const onScrollToIndexFailed = useCallback( + error => { + const offset = error.averageItemLength * error.index + flRef.current?.scrollToOffset({ offset }) + setTimeout( + () => + error.index < itemsLength && + flRef.current?.scrollToIndex({ index: error.index, viewOffset: 100 }), + 500 + ) + }, + [itemsLength] + ) const renderItem = useCallback( ({ item }) => ( From 65d54f73ec376389a23c57423db5b66127581260 Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Mon, 3 Jan 2022 22:26:36 +0100 Subject: [PATCH 09/14] Update release notes --- fastlane/metadata/en-US/release_notes.txt | 4 +--- fastlane/metadata/zh-Hans/release_notes.txt | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt index e2db6daf..0b2382d8 100644 --- a/fastlane/metadata/en-US/release_notes.txt +++ b/fastlane/metadata/en-US/release_notes.txt @@ -1,3 +1 @@ -Support iOS version starting from 12 -Optimize performance (hopefully) -Using new push and translation service +Optimize performance and fix bugs diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt index 00c2b56d..77ecbe00 100644 --- a/fastlane/metadata/zh-Hans/release_notes.txt +++ b/fastlane/metadata/zh-Hans/release_notes.txt @@ -1,3 +1 @@ -iOS支持最低版本12 -(但愿)性能有改进 -使用新的推送和翻译服务 \ No newline at end of file +性能有改进及修复错误 From e3c84f6146e3ae89219df5f8378a7aa278852a46 Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Tue, 4 Jan 2022 09:09:45 +0100 Subject: [PATCH 10/14] Sampling API error report rate --- .github/workflows/build.yml | 2 +- src/api/general.ts | 10 +++++++--- src/api/instance.ts | 10 ++++++++++ src/api/tooot.ts | 10 +++++++--- src/utils/slices/instances/push/register.ts | 3 +-- src/utils/slices/instances/push/unregister.ts | 3 +-- src/utils/slices/instances/updatePushDecode.ts | 15 +++++++-------- 7 files changed, 34 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a76119ff..fd94bf46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: - name: -- Step 3 -- Use Expo action uses: expo/expo-github-action@v6 with: - expo-version: 4.x + expo-version: 5.x username: ${{ secrets.EXPO_USERNAME }} token: ${{ secrets.EXPO_TOKEN }} - name: -- Step 4 -- Install node dependencies diff --git a/src/api/general.ts b/src/api/general.ts index 19ef755a..57298d47 100644 --- a/src/api/general.ts +++ b/src/api/general.ts @@ -24,7 +24,7 @@ const apiGeneral = async ({ params, headers, body, - sentry = false + sentry = true }: Params): Promise<{ body: T }> => { console.log( ctx.bgGreen.bold(' API general ') + @@ -58,8 +58,12 @@ const apiGeneral = async ({ }) }) .catch(error => { - if (sentry) { - Sentry.Native.setExtras(error.response || error.request) + if (sentry && Math.random() < 0.001) { + Sentry.Native.setExtras({ + API: 'instance', + ...(error.response && { response: error.response }), + ...(error.request && { request: error.request }) + }) Sentry.Native.captureException(error) } diff --git a/src/api/instance.ts b/src/api/instance.ts index 6805e160..81236aeb 100644 --- a/src/api/instance.ts +++ b/src/api/instance.ts @@ -3,6 +3,7 @@ import axios, { AxiosRequestConfig } from 'axios' import chalk from 'chalk' import Constants from 'expo-constants' import li from 'li' +import * as Sentry from 'sentry-expo' const ctx = new chalk.Instance({ level: 3 }) @@ -97,6 +98,15 @@ const apiInstance = async ({ }) }) .catch(error => { + if (Math.random() < 0.001) { + Sentry.Native.setExtras({ + API: 'instance', + ...(error.response && { response: error.response }), + ...(error.request && { request: error.request }) + }) + Sentry.Native.captureException(error) + } + if (error.response) { // The request was made and the server responded with a status code // that falls out of the range of 2xx diff --git a/src/api/tooot.ts b/src/api/tooot.ts index 713d2a6c..a199915f 100644 --- a/src/api/tooot.ts +++ b/src/api/tooot.ts @@ -29,7 +29,7 @@ const apiTooot = async ({ params, headers, body, - sentry = false + sentry = true }: Params): Promise<{ body: T }> => { console.log( ctx.bgGreen.bold(' API tooot ') + @@ -61,8 +61,12 @@ const apiTooot = async ({ }) }) .catch(error => { - if (sentry) { - Sentry.Native.setExtras(error.response || error.request) + if (sentry && Math.random() < 0.005) { + Sentry.Native.setExtras({ + API: 'tooot', + ...(error.response && { response: error.response }), + ...(error.request && { request: error.request }) + }) Sentry.Native.captureException(error) } diff --git a/src/utils/slices/instances/push/register.ts b/src/utils/slices/instances/push/register.ts index c34a5ba0..67e184fd 100644 --- a/src/utils/slices/instances/push/register.ts +++ b/src/utils/slices/instances/push/register.ts @@ -28,8 +28,7 @@ const subscribe = async ({ return apiTooot({ method: 'post', url: `/push/subscribe/${expoToken}/${instanceUrl}/${accountId}`, - body: { accountFull, serverKey, auth }, - sentry: true + body: { accountFull, serverKey, auth } }) } diff --git a/src/utils/slices/instances/push/unregister.ts b/src/utils/slices/instances/push/unregister.ts index 18d95e9a..30dc5ac1 100644 --- a/src/utils/slices/instances/push/unregister.ts +++ b/src/utils/slices/instances/push/unregister.ts @@ -21,8 +21,7 @@ const pushUnregister = async (state: RootState, expoToken: string) => { await apiTooot<{ endpoint: string; publicKey: string; auth: string }>({ method: 'delete', - url: `/push/unsubscribe/${expoToken}/${instance.url}/${instance.account.id}`, - sentry: true + url: `/push/unsubscribe/${expoToken}/${instance.url}/${instance.account.id}` }) if (Platform.OS === 'android') { diff --git a/src/utils/slices/instances/updatePushDecode.ts b/src/utils/slices/instances/updatePushDecode.ts index 928a4157..d8f18804 100644 --- a/src/utils/slices/instances/updatePushDecode.ts +++ b/src/utils/slices/instances/updatePushDecode.ts @@ -21,20 +21,19 @@ export const updateInstancePushDecode = createAsyncThunk( } const expoToken = isDevelopment - ? 'DEVELOPMENT_TOKEN_1' - : ( - await Notifications.getExpoPushTokenAsync({ - experienceId: '@xmflsct/tooot' - }) - ).data + ? 'DEVELOPMENT_TOKEN_1' + : ( + await Notifications.getExpoPushTokenAsync({ + experienceId: '@xmflsct/tooot' + }) + ).data await apiTooot({ method: 'put', url: `/push/update-decode/${expoToken}/${instance.url}/${instance.account.id}`, body: { auth: !disable ? null : instance.push.keys.auth - }, - sentry: true + } }) if (Platform.OS === 'android') { From e92a7907e6a3fb3e54dcc939d847747004eb1c9c Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Sat, 8 Jan 2022 11:19:24 +0100 Subject: [PATCH 11/14] Update sentry reporting --- src/api/general.ts | 4 +-- src/api/tooot.ts | 2 +- src/screens/Tabs/Shared/Toot.tsx | 51 ++++++++++++++++++++++++-------- 3 files changed, 42 insertions(+), 15 deletions(-) diff --git a/src/api/general.ts b/src/api/general.ts index 57298d47..20849953 100644 --- a/src/api/general.ts +++ b/src/api/general.ts @@ -58,9 +58,9 @@ const apiGeneral = async ({ }) }) .catch(error => { - if (sentry && Math.random() < 0.001) { + if (sentry && Math.random() < 0.01) { Sentry.Native.setExtras({ - API: 'instance', + API: 'general', ...(error.response && { response: error.response }), ...(error.request && { request: error.request }) }) diff --git a/src/api/tooot.ts b/src/api/tooot.ts index a199915f..8017944a 100644 --- a/src/api/tooot.ts +++ b/src/api/tooot.ts @@ -61,7 +61,7 @@ const apiTooot = async ({ }) }) .catch(error => { - if (sentry && Math.random() < 0.005) { + if (sentry && Math.random() < 0.01) { Sentry.Native.setExtras({ API: 'tooot', ...(error.response && { response: error.response }), diff --git a/src/screens/Tabs/Shared/Toot.tsx b/src/screens/Tabs/Shared/Toot.tsx index 3a4c7ab2..904582aa 100644 --- a/src/screens/Tabs/Shared/Toot.tsx +++ b/src/screens/Tabs/Shared/Toot.tsx @@ -7,6 +7,7 @@ import { findIndex } from 'lodash' import React, { useCallback, useEffect, useRef, useState } from 'react' import { FlatList } from 'react-native' import { InfiniteQueryObserver, useQueryClient } from 'react-query' +import * as Sentry from 'sentry-expo' const TabSharedToot: React.FC> = ({ route: { @@ -40,30 +41,56 @@ const TabSharedToot: React.FC> = ({ if (!scrolled.current) { scrolled.current = true const pointer = findIndex(flattenData, ['id', toot.id]) - pointer < flattenData.length && - setTimeout(() => { - flRef.current?.scrollToIndex({ + try { + pointer < flattenData.length && + setTimeout(() => { + flRef.current?.scrollToIndex({ + index: pointer, + viewOffset: 100 + }) + }, 500) + } catch (err) { + if (Math.random() < 0.1) { + Sentry.Native.setExtras({ + type: 'original', index: pointer, - viewOffset: 100 + itemsLength: flattenData.length, + flattenData }) - }, 500) + Sentry.Native.captureException(err) + } + } } } }) return () => unsubscribe() - }, []) + }, [scrolled.current]) // Toot page auto scroll to selected toot const onScrollToIndexFailed = useCallback( error => { const offset = error.averageItemLength * error.index flRef.current?.scrollToOffset({ offset }) - setTimeout( - () => - error.index < itemsLength && - flRef.current?.scrollToIndex({ index: error.index, viewOffset: 100 }), - 500 - ) + try { + error.index < itemsLength && + setTimeout( + () => + flRef.current?.scrollToIndex({ + index: error.index, + viewOffset: 100 + }), + 500 + ) + } catch (err) { + if (Math.random() < 0.1) { + Sentry.Native.setExtras({ + type: 'onScrollToIndexFailed', + index: error.index, + itemsLength + }) + Sentry.Native.captureException(err) + } + } }, [itemsLength] ) From 387a574b0d240dac7a30e8d7433f20e66865901a Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Sat, 8 Jan 2022 11:22:07 +0100 Subject: [PATCH 12/14] Make duration fully optional --- src/components/Timeline/Shared/Attachment/Audio.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Timeline/Shared/Attachment/Audio.tsx b/src/components/Timeline/Shared/Attachment/Audio.tsx index c0da956f..04d8d64e 100644 --- a/src/components/Timeline/Shared/Attachment/Audio.tsx +++ b/src/components/Timeline/Shared/Attachment/Audio.tsx @@ -96,7 +96,7 @@ const AttachmentAudio: React.FC = ({ )} - {audio.meta.original.duration ? ( + {audio.meta?.original?.duration ? ( Date: Sat, 8 Jan 2022 12:39:45 +0100 Subject: [PATCH 13/14] Fix Android saving image issue --- src/screens/ImageViewer/save.ts | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/src/screens/ImageViewer/save.ts b/src/screens/ImageViewer/save.ts index 0dfef8ac..55c250fd 100644 --- a/src/screens/ImageViewer/save.ts +++ b/src/screens/ImageViewer/save.ts @@ -3,10 +3,9 @@ import { displayMessage } from '@components/Message' import CameraRoll from '@react-native-community/cameraroll' import { RootStackParamList } from '@utils/navigation/navigators' import * as FileSystem from 'expo-file-system' -import * as MediaLibrary from 'expo-media-library' import i18next from 'i18next' import { RefObject } from 'react' -import { Platform } from 'react-native' +import { PermissionsAndroid, Platform } from 'react-native' import FlashMessage from 'react-native-flash-message' type CommonProps = { @@ -65,12 +64,31 @@ const saveAndroid = async ({ messageRef, mode, image }: CommonProps) => { await FileSystem.downloadAsync(image.url, fileUri) if (downloadedFile.status != 200) { - console.warn('error!') + haptics('Error') + displayMessage({ + ref: messageRef, + mode, + type: 'error', + message: i18next.t('screenImageViewer:content.save.failed') + }) + return } - const perm = await MediaLibrary.requestPermissionsAsync() - if (!perm.granted) { - return + const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE + + const hasPermission = await PermissionsAndroid.check(permission) + if (!hasPermission) { + const status = await PermissionsAndroid.request(permission) + if (status !== 'granted') { + haptics('Error') + displayMessage({ + ref: messageRef, + mode, + type: 'error', + message: i18next.t('screenImageViewer:content.save.failed') + }) + return + } } CameraRoll.save(downloadedFile.uri) From 68282e3aac7926f761ee155455b236852e562dd5 Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Sat, 8 Jan 2022 16:46:01 +0100 Subject: [PATCH 14/14] Clean up packages --- .../xmflsct/app/tooot/MainApplication.java | 2 - ios/Podfile.lock | 29 +++----- package.json | 9 +-- ....0.patch => expo-file-system+13.2.0.patch} | 0 yarn.lock | 66 ++++++++++--------- 5 files changed, 45 insertions(+), 61 deletions(-) rename patches/{expo-file-system+13.1.0.patch => expo-file-system+13.2.0.patch} (100%) diff --git a/android/app/src/main/java/com/xmflsct/app/tooot/MainApplication.java b/android/app/src/main/java/com/xmflsct/app/tooot/MainApplication.java index 192c86e3..0669a1bf 100644 --- a/android/app/src/main/java/com/xmflsct/app/tooot/MainApplication.java +++ b/android/app/src/main/java/com/xmflsct/app/tooot/MainApplication.java @@ -15,8 +15,6 @@ import com.facebook.soloader.SoLoader; import expo.modules.ApplicationLifecycleDispatcher; import expo.modules.ReactNativeHostWrapper; -import expo.modules.permissions.PermissionsPackage; -import expo.modules.filesystem.FileSystemPackage; import expo.modules.updates.UpdatesController; import java.lang.reflect.InvocationTargetException; diff --git a/ios/Podfile.lock b/ios/Podfile.lock index da85b0f8..b81a2968 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -14,7 +14,7 @@ PODS: - ExpoModulesCore - EXErrorRecovery (3.0.4): - ExpoModulesCore - - EXFileSystem (13.1.0): + - EXFileSystem (13.2.0): - ExpoModulesCore - EXFirebaseAnalytics (6.0.0): - EXFirebaseCore @@ -38,20 +38,15 @@ PODS: - ExpoModulesCore - EXManifests (0.2.2): - EXJSONUtils - - EXMediaLibrary (14.0.0): - - ExpoModulesCore - - React-Core - EXNotifications (0.14.0): - ExpoModulesCore - - EXPermissions (13.1.0): - - ExpoModulesCore - - Expo (44.0.3): + - Expo (44.0.4): - ExpoModulesCore - ExpoHaptics (11.1.0): - ExpoModulesCore - ExpoLocalization (12.0.0): - ExpoModulesCore - - ExpoModulesCore (0.6.3): + - ExpoModulesCore (0.6.4): - React-Core - ReactCommon/turbomodule/core - EXRandom (12.1.1): @@ -73,7 +68,7 @@ PODS: - EXUpdatesInterface - React-Core - EXUpdatesInterface (0.5.0) - - EXVideoThumbnails (6.1.0): + - EXVideoThumbnails (6.2.0): - ExpoModulesCore - EXWebBrowser (10.1.0): - ExpoModulesCore @@ -531,9 +526,7 @@ DEPENDENCIES: - EXJSONUtils (from `../node_modules/expo-json-utils/ios`) - EXKeepAwake (from `../node_modules/expo-keep-awake/ios`) - EXManifests (from `../node_modules/expo-manifests/ios`) - - EXMediaLibrary (from `../node_modules/expo-media-library/ios`) - EXNotifications (from `../node_modules/expo-notifications/ios`) - - EXPermissions (from `../node_modules/expo-permissions/ios`) - Expo (from `../node_modules/expo/ios`) - ExpoHaptics (from `../node_modules/expo-haptics/ios`) - ExpoLocalization (from `../node_modules/expo-localization/ios`) @@ -654,12 +647,8 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-keep-awake/ios" EXManifests: :path: "../node_modules/expo-manifests/ios" - EXMediaLibrary: - :path: "../node_modules/expo-media-library/ios" EXNotifications: :path: "../node_modules/expo-notifications/ios" - EXPermissions: - :path: "../node_modules/expo-permissions/ios" Expo: :path: "../node_modules/expo/ios" ExpoHaptics: @@ -786,7 +775,7 @@ SPEC CHECKSUMS: EXCrypto: e3c0853c2a9ef885928f6227b967b9598132f727 EXDevice: 7de98d8f97088fad9c01e9a68abad07e501208b2 EXErrorRecovery: deea88a01d38f8b1c1181b4e1d179b0ba0e4bb5b - EXFileSystem: 7d1309ba6b38b82ef7fc9e80174de3f9184ac8b4 + EXFileSystem: 7bcd3c1428698150d5c8ca140c8183f2ee204048 EXFirebaseAnalytics: 27dbc5cb83c244d8404b2927676299f3e172470e EXFirebaseCore: 16f39b0ea94ce985a8f2e16cc796bf79bdcfa297 EXFont: 1fb13af43dc517c01c0ff21a6e32f9f9bf2ea602 @@ -796,13 +785,11 @@ SPEC CHECKSUMS: EXJSONUtils: f515cf71710855d7ba5bfc6752af3b9a6f6aad01 EXKeepAwake: b571c2ad8323b2fced6e907766e2549f75119471 EXManifests: 50e42e01335df4e54109dee7be5a91bfd37347db - EXMediaLibrary: 6acf919299bccc64a59e6e89a3b792276e309302 EXNotifications: d5b454a2363c8743aa9b2888cc0df70a1d9ee816 - EXPermissions: f4c65fa770489cbf16ea17c3013a670671525014 - Expo: 5f9812539b12998a813315ea8036971c9b56a9e7 + Expo: d9b8b5e49c200471fc473a652a84fe30dee73027 ExpoHaptics: c62a5fc7bba0184d0165d559fc2b0fc46168ef40 ExpoLocalization: 83582a967db52987a8479490b056d5eb9fd70552 - ExpoModulesCore: d04e519b3e8e21523b195bb21a40144e30f1e163 + ExpoModulesCore: 64abda7af7cf659d2fa092934e29c6f4ea7e849f EXRandom: 06978dcf45075f3c9e17ae5e726b887316ee9877 EXScreenCapture: 0146fdf6ca4c3402a1cf62b2ddb739a840e08c94 EXSecureStore: fa0fdde1c81ceee2a3cb0519e649feae42767969 @@ -811,7 +798,7 @@ SPEC CHECKSUMS: EXStructuredHeaders: 2ce79a3770bd3795bade1aab215ada70deae8bbc EXUpdates: 98b9e647ce7a0e9d5ab67135bf42188c750a99eb EXUpdatesInterface: f459b515151bd73fff7a35366eace34a6c6a0d3f - EXVideoThumbnails: 6c08e978ed7a5542c5dca04a1757363fd29cb2a1 + EXVideoThumbnails: 847d648d6f4bc0c1afad05caa56a487dc543445e EXWebBrowser: 37388663fa51cbfc883de2244931a5182d948e5f FBLazyVector: e5569e42a1c79ca00521846c223173a57aca1fe1 FBReactNativeSpec: fe08c1cd7e2e205718d77ad14b34957cce949b58 diff --git a/package.json b/package.json index 62d14d55..8008888b 100644 --- a/package.json +++ b/package.json @@ -39,30 +39,27 @@ "@sentry/react-native": "3.2.3", "@sharcoux/slider": "5.6.1", "axios": "0.24.0", - "expo": "44.0.3", + "expo": "44.0.4", "expo-auth-session": "3.5.0", "expo-av": "10.2.0", "expo-constants": "^13.0.0", "expo-crypto": "10.1.1", "expo-device": "4.1.0", - "expo-file-system": "13.1.0", + "expo-file-system": "13.2.0", "expo-firebase-analytics": "6.0.0", "expo-haptics": "11.1.0", "expo-image-manipulator": "10.2.0", "expo-image-picker": "12.0.1", "expo-linking": "3.0.0", "expo-localization": "12.0.0", - "expo-media-library": "^14.0.0", "expo-notifications": "0.14.0", - "expo-permissions": "13.1.0", "expo-random": "12.1.1", "expo-screen-capture": "4.1.0", "expo-secure-store": "11.1.0", "expo-splash-screen": "0.14.1", - "expo-status-bar": "1.2.0", "expo-store-review": "5.1.0", "expo-updates": "0.11.3", - "expo-video-thumbnails": "6.1.0", + "expo-video-thumbnails": "6.2.0", "expo-web-browser": "10.1.0", "i18next": "20.6.1", "li": "1.3.0", diff --git a/patches/expo-file-system+13.1.0.patch b/patches/expo-file-system+13.2.0.patch similarity index 100% rename from patches/expo-file-system+13.1.0.patch rename to patches/expo-file-system+13.2.0.patch diff --git a/yarn.lock b/yarn.lock index 7585fc5d..a17b2b66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1342,7 +1342,7 @@ xcode "^3.0.1" xml2js "0.4.23" -"@expo/config-plugins@4.0.15": +"@expo/config-plugins@4.0.15", "@expo/config-plugins@^4.0.14": version "4.0.15" resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.0.15.tgz#cc170a0cf890973b6491cf357540e9955296019c" integrity sha512-QqxVEt2bFu3ZuI1soULRJv7i0Zrg/FMZ0IxNV7Y3AjH7fhtUJH3pPo9f6MURvqNr+PLxhBlkofkWfunrVejSkw== @@ -3545,7 +3545,15 @@ expo-error-recovery@~3.0.4: resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-3.0.4.tgz#de85c8c6b387d9b1e532256600882f2c2704383a" integrity sha512-7z2V7n9Yvm9/ogm4I1KgcsQZfgyDMSOBVHk8pA3IY0jL8+tXTyTrStxHsPXRjE8HHeYikfTRBIeFsh/1wWY7oA== -expo-file-system@13.1.0, expo-file-system@~13.1.0: +expo-file-system@13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-13.2.0.tgz#155fecd095d0aa01b9b78423077033e6ab852f0c" + integrity sha512-YboLdTuPVhYYcAIwYkJXsh0Ud6d3hwxU2DQ167lVktQ+SUIAyGN/VQQm1pkQBcpj/FFd2IM3NTD0ofx9qxyVGg== + dependencies: + "@expo/config-plugins" "^4.0.14" + uuid "^3.4.0" + +expo-file-system@~13.1.0: version "13.1.0" resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-13.1.0.tgz#7758617ad5bd60dac82c642bf8c85d0cdb00c117" integrity sha512-Hd+aBfcZfiD9p2qOEMvcUJuEnQk5NEostZjT5gVkQmRoITUxf9wGgrX1tSAzF8JQAtOJVjfWYOwTMHq2H9M8AA== @@ -3633,14 +3641,18 @@ expo-manifests@~0.2.2: dependencies: expo-json-utils "~0.2.0" -expo-media-library@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-14.0.0.tgz#aed008f7b750c02ec4a298c7aaa2fc4454171eea" - integrity sha512-rbrFSLxpmhKqvWivjpMXhAOu0D0sRhu2UNc+SJntXJwsLYx7Mzh9N8pk2kU7iLTPR2YYfxOGW7HyFj18+OB6QQ== +expo-modules-autolinking@0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.5.tgz#6bcc42072dcbdfca79d207b7f549f1fdb54a2b74" + integrity sha512-bILEG0Fg+ZhIhdEaShHzsEN1WC0hUmXJ5Kcd4cd+8rVk1Ead9vRZxA/yLx1cNBDCOwMe0GAMrhF7TKT+A1P+YA== dependencies: - "@expo/config-plugins" "^4.0.2" + chalk "^4.1.0" + commander "^7.2.0" + fast-glob "^3.2.5" + find-up "^5.0.0" + fs-extra "^9.1.0" -expo-modules-autolinking@0.5.4, expo-modules-autolinking@~0.5.1: +expo-modules-autolinking@~0.5.1: version "0.5.4" resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.4.tgz#d105d46cb6faab71c72c3181b9c2ab8cc8b09dba" integrity sha512-Q2wQp7tE7nlkmIQslQxa02uswOAJZXuJHWmb5oCG8BkzL6QBmDURJ/1j5hlIKuyN+j1M0rZbzyVI+ufyziGsSQ== @@ -3651,10 +3663,10 @@ expo-modules-autolinking@0.5.4, expo-modules-autolinking@~0.5.1: find-up "^5.0.0" fs-extra "^9.1.0" -expo-modules-core@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.6.3.tgz#e5326169a888144f2691ffd49b7686dfac235227" - integrity sha512-VLVQ6mK9rQHdcV+dn2keXsnDGR8OehUHkSAeZ88e5N8j1zjBo/9SI2/R7v3jBj+1Adg/wmVc5vyJzqnj2hlM2w== +expo-modules-core@0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.6.4.tgz#dd0265da98a92bd8004c83d9953136e4820f1bef" + integrity sha512-I5MvSZHjww4Jfvob/woCbI0ZLZIUBmhoiLeZsMJoWJuWa8QmtxXjI+4eRjaDB7+RxNVhrnVcmRjQPYG/5HepVg== dependencies: compare-versions "^3.4.0" invariant "^2.2.4" @@ -3676,11 +3688,6 @@ expo-notifications@0.14.0: unimodules-task-manager-interface "~7.1.0" uuid "^3.4.0" -expo-permissions@13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/expo-permissions/-/expo-permissions-13.1.0.tgz#1be8fe01476950d642ea83d383fd8912492434b9" - integrity sha512-f3ngERaoeAw8236xyvw4gS89Fxd4fU2soKXQn0JPXwiDGmIXO+lIJNH3psNvAebj4DfmyQtGW4AS1itG83GHaQ== - expo-random@12.1.1: version "12.1.1" resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.1.1.tgz#75f6eec8d4b9026a27eb90ed4b60d56dab414106" @@ -3706,11 +3713,6 @@ expo-splash-screen@0.14.1: "@expo/configure-splash-screen" "^0.6.0" "@expo/prebuild-config" "^3.0.15" -expo-status-bar@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.2.0.tgz#16e73205da563f9536f562e439081e30e318a82e" - integrity sha512-pVZZ/kDCXFK79E4dCtRecs3XLC8aiwlciutSd/fFmUPJSQZ1Txia6hlKajPt0GAYft8/YnT0V3URXzWZOBniYQ== - expo-store-review@5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/expo-store-review/-/expo-store-review-5.1.0.tgz#56e2fb7ee321d849ce27cb11fb328aa05faf8dd9" @@ -3741,10 +3743,10 @@ expo-updates@0.11.3: resolve-from "^5.0.0" uuid "^3.4.0" -expo-video-thumbnails@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/expo-video-thumbnails/-/expo-video-thumbnails-6.1.0.tgz#377c3569a5a584d95c88b7d6c475a260d063ef41" - integrity sha512-qRMsgL6JY6um3UKq//0VO6J4NurqMOLuAv+Mu01Z4pweuoR83j7HOKNr0PKszIyBv/9tNeLzzrUYQuQPzXmKHA== +expo-video-thumbnails@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/expo-video-thumbnails/-/expo-video-thumbnails-6.2.0.tgz#ebf33500b6b32a9efdaf498a08dd0d9ac2add049" + integrity sha512-iW49Atk3fijqxFY7PLfmOL2QhWsD/A7Sh+4X8YtNGG0T2Bd16fMEvl5BdvBZdAz+A67VidGkI4hxNWTDWw/bVw== expo-web-browser@10.1.0, expo-web-browser@~10.1.0: version "10.1.0" @@ -3753,10 +3755,10 @@ expo-web-browser@10.1.0, expo-web-browser@~10.1.0: dependencies: compare-urls "^2.0.0" -expo@44.0.3: - version "44.0.3" - resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.3.tgz#6f30ff51fbb2608a408c7ac10aeb703fc04d304e" - integrity sha512-uk6t89gV5Gs5MdHXZkjKlBdXSo4j+oKj/BrK/FTFlKvEqEL34SbEXy9IcS0o7IDPFuqVIzclXcnAI+sOU4J5Lg== +expo@44.0.4: + version "44.0.4" + resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.4.tgz#328e3ca41f6d195d3525b30c8a74d8c241efcf7d" + integrity sha512-XYEG0ldlKmRGTFBGSCcW6GI6SNMBrp1uM+s8yIfUmRzHmxj2D0HP+r1aUH8iU1alsIjh00IAGQ71BMPu0hRlNQ== dependencies: "@babel/runtime" "^7.14.0" "@expo/metro-config" "~0.2.6" @@ -3769,8 +3771,8 @@ expo@44.0.3: expo-file-system "~13.1.0" expo-font "~10.0.4" expo-keep-awake "~10.0.1" - expo-modules-autolinking "0.5.4" - expo-modules-core "0.6.3" + expo-modules-autolinking "0.5.5" + expo-modules-core "0.6.4" fbemitter "^2.1.1" invariant "^2.2.4" md5-file "^3.2.3"