mirror of
				https://github.com/tooot-app/app
				synced 2025-06-05 22:19:13 +02:00 
			
		
		
		
	
							
								
								
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -22,7 +22,7 @@ jobs: | |||||||
|       - name: -- Step 3 -- Use Expo action |       - name: -- Step 3 -- Use Expo action | ||||||
|         uses: expo/expo-github-action@v6 |         uses: expo/expo-github-action@v6 | ||||||
|         with: |         with: | ||||||
|           expo-version: 4.x |           expo-version: 5.x | ||||||
|           username: ${{ secrets.EXPO_USERNAME }} |           username: ${{ secrets.EXPO_USERNAME }} | ||||||
|           token: ${{ secrets.EXPO_TOKEN }} |           token: ${{ secrets.EXPO_TOKEN }} | ||||||
|       - name: -- Step 4 -- Install node dependencies |       - name: -- Step 4 -- Install node dependencies | ||||||
| @@ -33,7 +33,7 @@ jobs: | |||||||
|         run: bundle install |         run: bundle install | ||||||
|       - name: -- Step 7 -- Run fastlane |       - name: -- Step 7 -- Run fastlane | ||||||
|         env: |         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 }} |           ENVIRONMENT: ${{ steps.branch.outputs.branch }} | ||||||
|           LC_ALL: en_US.UTF-8 |           LC_ALL: en_US.UTF-8 | ||||||
|           LANG: en_US.UTF-8 |           LANG: en_US.UTF-8 | ||||||
|   | |||||||
| @@ -15,8 +15,6 @@ import com.facebook.soloader.SoLoader; | |||||||
|  |  | ||||||
| import expo.modules.ApplicationLifecycleDispatcher; | import expo.modules.ApplicationLifecycleDispatcher; | ||||||
| import expo.modules.ReactNativeHostWrapper; | import expo.modules.ReactNativeHostWrapper; | ||||||
| import expo.modules.permissions.PermissionsPackage; |  | ||||||
| import expo.modules.filesystem.FileSystemPackage; |  | ||||||
| import expo.modules.updates.UpdatesController; | import expo.modules.updates.UpdatesController; | ||||||
|  |  | ||||||
| import java.lang.reflect.InvocationTargetException; | import java.lang.reflect.InvocationTargetException; | ||||||
|   | |||||||
| @@ -1,4 +1,6 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||||||
| <resources> | <resources> | ||||||
|   <string name="app_name">tooot</string> |   <string name="app_name">tooot</string> | ||||||
|  |   <string name="expo_splash_screen_resize_mode">contain</string> | ||||||
|  |   <string name="expo_splash_screen_status_bar_translucent">false</string> | ||||||
| </resources> | </resources> | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| fastlane_version "2.180.1" | fastlane_version "2.199.0" | ||||||
| skip_docs | skip_docs | ||||||
|  |  | ||||||
| ensure_env_vars( | ensure_env_vars( | ||||||
| @@ -108,6 +108,11 @@ private_lane :build_ios do | |||||||
|       silent: true |       silent: true | ||||||
|     ) |     ) | ||||||
|     upload_to_app_store( ipa: IPA_FILE, app_version: VERSION ) |     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 |   else | ||||||
|     if !is_ci |     if !is_ci | ||||||
|       match( type: "adhoc", readonly: true ) |       match( type: "adhoc", readonly: true ) | ||||||
|   | |||||||
| @@ -1,3 +1 @@ | |||||||
| Support iOS version starting from 12 | Optimize performance and fix bugs | ||||||
| Optimize performance (hopefully) |  | ||||||
| Using new push and translation service |  | ||||||
|   | |||||||
| @@ -1,3 +1 @@ | |||||||
| iOS支持最低版本12 | 性能有改进及修复错误 | ||||||
| (但愿)性能有改进 |  | ||||||
| 使用新的推送和翻译服务 |  | ||||||
|   | |||||||
| @@ -1,10 +1,11 @@ | |||||||
| PODS: | PODS: | ||||||
|   - boost (1.76.0) |   - boost (1.76.0) | ||||||
|   - DoubleConversion (1.1.6) |   - DoubleConversion (1.1.6) | ||||||
|   - EXApplication (4.0.0): |   - EXApplication (4.0.1): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXAV (10.1.3): |   - EXAV (10.2.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|  |     - ReactCommon/turbomodule/core | ||||||
|   - EXConstants (13.0.0): |   - EXConstants (13.0.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXCrypto (10.1.1): |   - EXCrypto (10.1.1): | ||||||
| @@ -13,7 +14,7 @@ PODS: | |||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXErrorRecovery (3.0.4): |   - EXErrorRecovery (3.0.4): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXFileSystem (13.1.0): |   - EXFileSystem (13.2.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXFirebaseAnalytics (6.0.0): |   - EXFirebaseAnalytics (6.0.0): | ||||||
|     - EXFirebaseCore |     - EXFirebaseCore | ||||||
| @@ -37,20 +38,15 @@ PODS: | |||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXManifests (0.2.2): |   - EXManifests (0.2.2): | ||||||
|     - EXJSONUtils |     - EXJSONUtils | ||||||
|   - EXMediaLibrary (14.0.0): |  | ||||||
|     - ExpoModulesCore |  | ||||||
|     - React-Core |  | ||||||
|   - EXNotifications (0.14.0): |   - EXNotifications (0.14.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXPermissions (13.1.0): |   - Expo (44.0.4): | ||||||
|     - ExpoModulesCore |  | ||||||
|   - Expo (44.0.0): |  | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - ExpoHaptics (11.1.0): |   - ExpoHaptics (11.1.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - ExpoLocalization (12.0.0): |   - ExpoLocalization (12.0.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - ExpoModulesCore (0.6.3): |   - ExpoModulesCore (0.6.4): | ||||||
|     - React-Core |     - React-Core | ||||||
|     - ReactCommon/turbomodule/core |     - ReactCommon/turbomodule/core | ||||||
|   - EXRandom (12.1.1): |   - EXRandom (12.1.1): | ||||||
| @@ -59,20 +55,20 @@ PODS: | |||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXSecureStore (11.1.0): |   - EXSecureStore (11.1.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXSplashScreen (0.14.0): |   - EXSplashScreen (0.14.1): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|     - React-Core |     - React-Core | ||||||
|   - EXStoreReview (5.1.0): |   - EXStoreReview (5.1.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXStructuredHeaders (2.1.0) |   - EXStructuredHeaders (2.1.0) | ||||||
|   - EXUpdates (0.11.1): |   - EXUpdates (0.11.3): | ||||||
|     - EXManifests |     - EXManifests | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|     - EXStructuredHeaders |     - EXStructuredHeaders | ||||||
|     - EXUpdatesInterface |     - EXUpdatesInterface | ||||||
|     - React-Core |     - React-Core | ||||||
|   - EXUpdatesInterface (0.5.0) |   - EXUpdatesInterface (0.5.0) | ||||||
|   - EXVideoThumbnails (6.1.0): |   - EXVideoThumbnails (6.2.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
|   - EXWebBrowser (10.1.0): |   - EXWebBrowser (10.1.0): | ||||||
|     - ExpoModulesCore |     - ExpoModulesCore | ||||||
| @@ -377,11 +373,11 @@ PODS: | |||||||
|     - glog |     - glog | ||||||
|   - react-native-blur (0.8.0): |   - react-native-blur (0.8.0): | ||||||
|     - React |     - React | ||||||
|   - react-native-blurhash (1.1.7): |   - react-native-blurhash (1.1.8): | ||||||
|     - React-Core |     - React-Core | ||||||
|   - react-native-cameraroll (4.1.2): |   - react-native-cameraroll (4.1.2): | ||||||
|     - React-Core |     - React-Core | ||||||
|   - react-native-netinfo (7.1.6): |   - react-native-netinfo (7.1.7): | ||||||
|     - React-Core |     - React-Core | ||||||
|   - react-native-pager-view (5.4.9): |   - react-native-pager-view (5.4.9): | ||||||
|     - React-Core |     - React-Core | ||||||
| @@ -530,9 +526,7 @@ DEPENDENCIES: | |||||||
|   - EXJSONUtils (from `../node_modules/expo-json-utils/ios`) |   - EXJSONUtils (from `../node_modules/expo-json-utils/ios`) | ||||||
|   - EXKeepAwake (from `../node_modules/expo-keep-awake/ios`) |   - EXKeepAwake (from `../node_modules/expo-keep-awake/ios`) | ||||||
|   - EXManifests (from `../node_modules/expo-manifests/ios`) |   - EXManifests (from `../node_modules/expo-manifests/ios`) | ||||||
|   - EXMediaLibrary (from `../node_modules/expo-media-library/ios`) |  | ||||||
|   - EXNotifications (from `../node_modules/expo-notifications/ios`) |   - EXNotifications (from `../node_modules/expo-notifications/ios`) | ||||||
|   - EXPermissions (from `../node_modules/expo-permissions/ios`) |  | ||||||
|   - Expo (from `../node_modules/expo/ios`) |   - Expo (from `../node_modules/expo/ios`) | ||||||
|   - ExpoHaptics (from `../node_modules/expo-haptics/ios`) |   - ExpoHaptics (from `../node_modules/expo-haptics/ios`) | ||||||
|   - ExpoLocalization (from `../node_modules/expo-localization/ios`) |   - ExpoLocalization (from `../node_modules/expo-localization/ios`) | ||||||
| @@ -653,12 +647,8 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/expo-keep-awake/ios" |     :path: "../node_modules/expo-keep-awake/ios" | ||||||
|   EXManifests: |   EXManifests: | ||||||
|     :path: "../node_modules/expo-manifests/ios" |     :path: "../node_modules/expo-manifests/ios" | ||||||
|   EXMediaLibrary: |  | ||||||
|     :path: "../node_modules/expo-media-library/ios" |  | ||||||
|   EXNotifications: |   EXNotifications: | ||||||
|     :path: "../node_modules/expo-notifications/ios" |     :path: "../node_modules/expo-notifications/ios" | ||||||
|   EXPermissions: |  | ||||||
|     :path: "../node_modules/expo-permissions/ios" |  | ||||||
|   Expo: |   Expo: | ||||||
|     :path: "../node_modules/expo/ios" |     :path: "../node_modules/expo/ios" | ||||||
|   ExpoHaptics: |   ExpoHaptics: | ||||||
| @@ -779,13 +769,13 @@ EXTERNAL SOURCES: | |||||||
| SPEC CHECKSUMS: | SPEC CHECKSUMS: | ||||||
|   boost: a7c83b31436843459a1961bfd74b96033dc77234 |   boost: a7c83b31436843459a1961bfd74b96033dc77234 | ||||||
|   DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 |   DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662 | ||||||
|   EXApplication: 0e15240e4d125b62f1cae48759ffbbd32b9286a6 |   EXApplication: bdc8dc27713235565da1029a34385229f31b8e08 | ||||||
|   EXAV: 8adf9a1c0161144d77e96149a1e5a5f9358be290 |   EXAV: e501565d5aff495b7b5e9249d489f5ef94db03b2 | ||||||
|   EXConstants: 5d18484e38e8eacef7695a82214b6ac90133dedf |   EXConstants: 5d18484e38e8eacef7695a82214b6ac90133dedf | ||||||
|   EXCrypto: e3c0853c2a9ef885928f6227b967b9598132f727 |   EXCrypto: e3c0853c2a9ef885928f6227b967b9598132f727 | ||||||
|   EXDevice: 7de98d8f97088fad9c01e9a68abad07e501208b2 |   EXDevice: 7de98d8f97088fad9c01e9a68abad07e501208b2 | ||||||
|   EXErrorRecovery: deea88a01d38f8b1c1181b4e1d179b0ba0e4bb5b |   EXErrorRecovery: deea88a01d38f8b1c1181b4e1d179b0ba0e4bb5b | ||||||
|   EXFileSystem: 7d1309ba6b38b82ef7fc9e80174de3f9184ac8b4 |   EXFileSystem: 7bcd3c1428698150d5c8ca140c8183f2ee204048 | ||||||
|   EXFirebaseAnalytics: 27dbc5cb83c244d8404b2927676299f3e172470e |   EXFirebaseAnalytics: 27dbc5cb83c244d8404b2927676299f3e172470e | ||||||
|   EXFirebaseCore: 16f39b0ea94ce985a8f2e16cc796bf79bdcfa297 |   EXFirebaseCore: 16f39b0ea94ce985a8f2e16cc796bf79bdcfa297 | ||||||
|   EXFont: 1fb13af43dc517c01c0ff21a6e32f9f9bf2ea602 |   EXFont: 1fb13af43dc517c01c0ff21a6e32f9f9bf2ea602 | ||||||
| @@ -795,22 +785,20 @@ SPEC CHECKSUMS: | |||||||
|   EXJSONUtils: f515cf71710855d7ba5bfc6752af3b9a6f6aad01 |   EXJSONUtils: f515cf71710855d7ba5bfc6752af3b9a6f6aad01 | ||||||
|   EXKeepAwake: b571c2ad8323b2fced6e907766e2549f75119471 |   EXKeepAwake: b571c2ad8323b2fced6e907766e2549f75119471 | ||||||
|   EXManifests: 50e42e01335df4e54109dee7be5a91bfd37347db |   EXManifests: 50e42e01335df4e54109dee7be5a91bfd37347db | ||||||
|   EXMediaLibrary: 6acf919299bccc64a59e6e89a3b792276e309302 |  | ||||||
|   EXNotifications: d5b454a2363c8743aa9b2888cc0df70a1d9ee816 |   EXNotifications: d5b454a2363c8743aa9b2888cc0df70a1d9ee816 | ||||||
|   EXPermissions: f4c65fa770489cbf16ea17c3013a670671525014 |   Expo: d9b8b5e49c200471fc473a652a84fe30dee73027 | ||||||
|   Expo: 6ca1d5ca8c8264a7131a608afcd01561f79f1e6e |  | ||||||
|   ExpoHaptics: c62a5fc7bba0184d0165d559fc2b0fc46168ef40 |   ExpoHaptics: c62a5fc7bba0184d0165d559fc2b0fc46168ef40 | ||||||
|   ExpoLocalization: 83582a967db52987a8479490b056d5eb9fd70552 |   ExpoLocalization: 83582a967db52987a8479490b056d5eb9fd70552 | ||||||
|   ExpoModulesCore: d04e519b3e8e21523b195bb21a40144e30f1e163 |   ExpoModulesCore: 64abda7af7cf659d2fa092934e29c6f4ea7e849f | ||||||
|   EXRandom: 06978dcf45075f3c9e17ae5e726b887316ee9877 |   EXRandom: 06978dcf45075f3c9e17ae5e726b887316ee9877 | ||||||
|   EXScreenCapture: 0146fdf6ca4c3402a1cf62b2ddb739a840e08c94 |   EXScreenCapture: 0146fdf6ca4c3402a1cf62b2ddb739a840e08c94 | ||||||
|   EXSecureStore: fa0fdde1c81ceee2a3cb0519e649feae42767969 |   EXSecureStore: fa0fdde1c81ceee2a3cb0519e649feae42767969 | ||||||
|   EXSplashScreen: 845290df0d2730fdedc59ee6ce3b959d8079a350 |   EXSplashScreen: 7872675b95bb07c25f922b3d3dfae70c76fb5a00 | ||||||
|   EXStoreReview: 6143555fc912a4a194300992cd297c3e5b521a8a |   EXStoreReview: 6143555fc912a4a194300992cd297c3e5b521a8a | ||||||
|   EXStructuredHeaders: 2ce79a3770bd3795bade1aab215ada70deae8bbc |   EXStructuredHeaders: 2ce79a3770bd3795bade1aab215ada70deae8bbc | ||||||
|   EXUpdates: a0ef6520618deee31b45d9a09406682c9e724789 |   EXUpdates: 98b9e647ce7a0e9d5ab67135bf42188c750a99eb | ||||||
|   EXUpdatesInterface: f459b515151bd73fff7a35366eace34a6c6a0d3f |   EXUpdatesInterface: f459b515151bd73fff7a35366eace34a6c6a0d3f | ||||||
|   EXVideoThumbnails: 6c08e978ed7a5542c5dca04a1757363fd29cb2a1 |   EXVideoThumbnails: 847d648d6f4bc0c1afad05caa56a487dc543445e | ||||||
|   EXWebBrowser: 37388663fa51cbfc883de2244931a5182d948e5f |   EXWebBrowser: 37388663fa51cbfc883de2244931a5182d948e5f | ||||||
|   FBLazyVector: e5569e42a1c79ca00521846c223173a57aca1fe1 |   FBLazyVector: e5569e42a1c79ca00521846c223173a57aca1fe1 | ||||||
|   FBReactNativeSpec: fe08c1cd7e2e205718d77ad14b34957cce949b58 |   FBReactNativeSpec: fe08c1cd7e2e205718d77ad14b34957cce949b58 | ||||||
| @@ -843,9 +831,9 @@ SPEC CHECKSUMS: | |||||||
|   React-jsinspector: d0374f7509d407d2264168b6d0fad0b54e300b85 |   React-jsinspector: d0374f7509d407d2264168b6d0fad0b54e300b85 | ||||||
|   React-logger: 933f80c97c633ee8965d609876848148e3fef438 |   React-logger: 933f80c97c633ee8965d609876848148e3fef438 | ||||||
|   react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c |   react-native-blur: cad4d93b364f91e7b7931b3fa935455487e5c33c | ||||||
|   react-native-blurhash: e19ea985921732379d17951fd46c99ebe71e9cf3 |   react-native-blurhash: b7ed7b7de81ae1f9ce52d694f43c5b5cddddcae1 | ||||||
|   react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866 |   react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866 | ||||||
|   react-native-netinfo: 6f98a7fb549351a8f7f9a6d1ca80afc23e320045 |   react-native-netinfo: 27f287f2d191693f3b9d01a4273137fcf91c3b5d | ||||||
|   react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540 |   react-native-pager-view: 3ee7d4c7697fb3ef788346e834a60cca97ed8540 | ||||||
|   react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 |   react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 | ||||||
|   react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097 |   react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097 | ||||||
|   | |||||||
| @@ -53,7 +53,7 @@ static void InitializeFlipper(UIApplication *application) { | |||||||
|    |    | ||||||
|   RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions]; |   RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions]; | ||||||
|   RCTRootView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@"main" initialProperties:nil]; |   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]; |   self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | ||||||
|   UIViewController *rootViewController = [self.reactDelegate createRootViewController]; |   UIViewController *rootViewController = [self.reactDelegate createRootViewController]; | ||||||
|   rootViewController.view = rootView; |   rootViewController.view = rootView; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "info" : { |   "info" : { | ||||||
|     "version" : 1, |     "author" : "xcode", | ||||||
|     "author" : "xcode" |     "version" : 1 | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 82 B | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 82 B | 
| @@ -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 | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -1,21 +1,10 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <document | <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="EXPO-VIEWCONTROLLER-1"> | ||||||
|   type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" |     <device id="retina5_9" orientation="portrait" appearance="light"/> | ||||||
|   version="3.0" |  | ||||||
|   toolsVersion="16096" |  | ||||||
|   targetRuntime="iOS.CocoaTouch" |  | ||||||
|   propertyAccessControl="none" |  | ||||||
|   useAutolayout="YES" |  | ||||||
|   launchScreen="YES" |  | ||||||
|   useTraitCollections="YES" |  | ||||||
|   useSafeAreas="YES" |  | ||||||
|   colorMatched="YES" |  | ||||||
|   initialViewController="EXPO-VIEWCONTROLLER-1" |  | ||||||
| > |  | ||||||
|   <device id="retina5_5" orientation="portrait" appearance="light"/> |  | ||||||
|     <dependencies> |     <dependencies> | ||||||
|         <deployment identifier="iOS"/> |         <deployment identifier="iOS"/> | ||||||
|     <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/> |         <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19519"/> | ||||||
|  |         <capability name="Named colors" minToolsVersion="9.0"/> | ||||||
|         <capability name="Safe area layout guides" minToolsVersion="9.0"/> |         <capability name="Safe area layout guides" minToolsVersion="9.0"/> | ||||||
|         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||||||
|     </dependencies> |     </dependencies> | ||||||
| @@ -23,69 +12,30 @@ | |||||||
|         <!--View Controller--> |         <!--View Controller--> | ||||||
|         <scene sceneID="EXPO-SCENE-1"> |         <scene sceneID="EXPO-SCENE-1"> | ||||||
|             <objects> |             <objects> | ||||||
|         <viewController |                 <viewController storyboardIdentifier="SplashScreenViewController" id="EXPO-VIEWCONTROLLER-1" sceneMemberID="viewController"> | ||||||
|           storyboardIdentifier="SplashScreenViewController" |                     <view key="view" userInteractionEnabled="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="EXPO-ContainerView" userLabel="ContainerView"> | ||||||
|           id="EXPO-VIEWCONTROLLER-1" |                         <rect key="frame" x="0.0" y="0.0" width="375" height="812"/> | ||||||
|           sceneMemberID="viewController" |  | ||||||
|         > |  | ||||||
|           <view |  | ||||||
|             key="view" |  | ||||||
|             userInteractionEnabled="NO" |  | ||||||
|             contentMode="scaleToFill" |  | ||||||
|             insetsLayoutMarginsFromSafeArea="NO" |  | ||||||
|             id="EXPO-ContainerView" |  | ||||||
|             userLabel="ContainerView" |  | ||||||
|           > |  | ||||||
|             <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> |  | ||||||
|                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> |                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> | ||||||
|                         <subviews> |                         <subviews> | ||||||
|               <imageView |                             <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="SplashScreen" translatesAutoresizingMaskIntoConstraints="NO" id="EXPO-SplashScreen" userLabel="SplashScreen"> | ||||||
|                 userInteractionEnabled="NO" |                                 <rect key="frame" x="-55" y="-217" width="485" height="1246"/> | ||||||
|                 contentMode="scaleAspectFill" |                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/> | ||||||
|                 horizontalHuggingPriority="251" |                                 <rect key="contentStretch" x="0.0" y="0.0" width="0.0" height="0.0"/> | ||||||
|                 verticalHuggingPriority="251" |  | ||||||
|                 insetsLayoutMarginsFromSafeArea="NO" |  | ||||||
|                 image="SplashScreenBackground" |  | ||||||
|                 translatesAutoresizingMaskIntoConstraints="NO" |  | ||||||
|                 id="EXPO-SplashScreenBackground" |  | ||||||
|                 userLabel="SplashScreenBackground" |  | ||||||
|               > |  | ||||||
|                 <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> |  | ||||||
|               </imageView> |  | ||||||
|               <imageView |  | ||||||
|                 clipsSubviews="YES" |  | ||||||
|                 userInteractionEnabled="NO" |  | ||||||
|                 contentMode="scaleAspectFit" |  | ||||||
|                 horizontalHuggingPriority="251" |  | ||||||
|                 verticalHuggingPriority="251" |  | ||||||
|                 translatesAutoresizingMaskIntoConstraints="NO" |  | ||||||
|                 image="SplashScreen" |  | ||||||
|                 id="EXPO-SplashScreen" |  | ||||||
|                 userLabel="SplashScreen" |  | ||||||
|               > |  | ||||||
|                 <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> |  | ||||||
|                             </imageView> |                             </imageView> | ||||||
|                         </subviews> |                         </subviews> | ||||||
|             <constraints> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="1gX-mQ-vu6"/> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="6tX-OG-Sck"/> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="ABX-8g-7v4"/> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="jkI-2V-eW5"/> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreen" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="2VS-Uz-0LU"/> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreen" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="LhH-Ei-DKo"/> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreen" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="I6l-TP-6fn"/> |  | ||||||
|               <constraint firstItem="EXPO-SplashScreen" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="nbp-HC-eaG"/> |  | ||||||
|             </constraints> |  | ||||||
|                         <viewLayoutGuide key="safeArea" id="Rmq-lb-GrQ"/> |                         <viewLayoutGuide key="safeArea" id="Rmq-lb-GrQ"/> | ||||||
|  |                         <color key="backgroundColor" name="SplashScreenBackgroundColor"/> | ||||||
|                     </view> |                     </view> | ||||||
|                 </viewController> |                 </viewController> | ||||||
|                 <placeholder placeholderIdentifier="IBFirstResponder" id="EXPO-PLACEHOLDER-1" userLabel="First Responder" sceneMemberID="firstResponder"/> |                 <placeholder placeholderIdentifier="IBFirstResponder" id="EXPO-PLACEHOLDER-1" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||||||
|             </objects> |             </objects> | ||||||
|       <point key="canvasLocation" x="140.625" y="129.4921875"/> |             <point key="canvasLocation" x="140" y="129.38388625592415"/> | ||||||
|         </scene> |         </scene> | ||||||
|     </scenes> |     </scenes> | ||||||
|     <resources> |     <resources> | ||||||
|     <image name="SplashScreen" width="414" height="736"/> |         <image name="SplashScreen" width="1242" height="2436"/> | ||||||
|     <image name="SplashScreenBackground" width="1" height="1"/> |         <namedColor name="SplashScreenBackgroundColor"> | ||||||
|  |             <color red="0.98039215686274506" green="0.98039215686274506" blue="0.98039215686274506" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||||||
|  |         </namedColor> | ||||||
|     </resources> |     </resources> | ||||||
| </document> | </document> | ||||||
|   | |||||||
							
								
								
									
										43
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,10 +1,10 @@ | |||||||
| { | { | ||||||
|   "name": "tooot", |   "name": "tooot", | ||||||
|   "versions": { |   "versions": { | ||||||
|     "native": "211218", |     "native": "220102", | ||||||
|     "major": 3, |     "major": 3, | ||||||
|     "minor": 0, |     "minor": 1, | ||||||
|     "patch": 1, |     "patch": 0, | ||||||
|     "expo": "44.0.0" |     "expo": "44.0.0" | ||||||
|   }, |   }, | ||||||
|   "description": "tooot app for Mastodon", |   "description": "tooot app for Mastodon", | ||||||
| @@ -29,7 +29,7 @@ | |||||||
|     "@react-native-async-storage/async-storage": "1.15.14", |     "@react-native-async-storage/async-storage": "1.15.14", | ||||||
|     "@react-native-community/blur": "3.6.0", |     "@react-native-community/blur": "3.6.0", | ||||||
|     "@react-native-community/cameraroll": "4.1.2", |     "@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-native-community/segmented-control": "2.2.2", | ||||||
|     "@react-navigation/bottom-tabs": "6.0.9", |     "@react-navigation/bottom-tabs": "6.0.9", | ||||||
|     "@react-navigation/native": "6.0.6", |     "@react-navigation/native": "6.0.6", | ||||||
| @@ -39,41 +39,38 @@ | |||||||
|     "@sentry/react-native": "3.2.3", |     "@sentry/react-native": "3.2.3", | ||||||
|     "@sharcoux/slider": "5.6.1", |     "@sharcoux/slider": "5.6.1", | ||||||
|     "axios": "0.24.0", |     "axios": "0.24.0", | ||||||
|     "expo": "44.0.0", |     "expo": "44.0.4", | ||||||
|     "expo-auth-session": "3.5.0", |     "expo-auth-session": "3.5.0", | ||||||
|     "expo-av": "10.1.3", |     "expo-av": "10.2.0", | ||||||
|     "expo-constants": "^13.0.0", |     "expo-constants": "^13.0.0", | ||||||
|     "expo-crypto": "10.1.1", |     "expo-crypto": "10.1.1", | ||||||
|     "expo-device": "4.1.0", |     "expo-device": "4.1.0", | ||||||
|     "expo-file-system": "13.1.0", |     "expo-file-system": "13.2.0", | ||||||
|     "expo-firebase-analytics": "6.0.0", |     "expo-firebase-analytics": "6.0.0", | ||||||
|     "expo-haptics": "11.1.0", |     "expo-haptics": "11.1.0", | ||||||
|     "expo-image-manipulator": "10.2.0", |     "expo-image-manipulator": "10.2.0", | ||||||
|     "expo-image-picker": "12.0.1", |     "expo-image-picker": "12.0.1", | ||||||
|     "expo-linking": "3.0.0", |     "expo-linking": "3.0.0", | ||||||
|     "expo-localization": "12.0.0", |     "expo-localization": "12.0.0", | ||||||
|     "expo-media-library": "^14.0.0", |  | ||||||
|     "expo-notifications": "0.14.0", |     "expo-notifications": "0.14.0", | ||||||
|     "expo-permissions": "13.1.0", |  | ||||||
|     "expo-random": "12.1.1", |     "expo-random": "12.1.1", | ||||||
|     "expo-screen-capture": "4.1.0", |     "expo-screen-capture": "4.1.0", | ||||||
|     "expo-secure-store": "11.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-store-review": "5.1.0", | ||||||
|     "expo-updates": "0.11.1", |     "expo-updates": "0.11.3", | ||||||
|     "expo-video-thumbnails": "6.1.0", |     "expo-video-thumbnails": "6.2.0", | ||||||
|     "expo-web-browser": "10.1.0", |     "expo-web-browser": "10.1.0", | ||||||
|     "i18next": "20.6.1", |     "i18next": "20.6.1", | ||||||
|     "li": "1.3.0", |     "li": "1.3.0", | ||||||
|     "lodash": "4.17.21", |     "lodash": "4.17.21", | ||||||
|     "react": "17.0.2", |     "react": "17.0.2", | ||||||
|     "react-dom": "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": "0.66.4", | ||||||
|     "react-native-animated-spinkit": "1.5.2", |     "react-native-animated-spinkit": "1.5.2", | ||||||
|     "react-native-base64": "^0.2.1", |     "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-fast-image": "8.5.11", | ||||||
|     "react-native-feather": "1.1.2", |     "react-native-feather": "1.1.2", | ||||||
|     "react-native-flash-message": "0.2.0", |     "react-native-flash-message": "0.2.0", | ||||||
| @@ -86,7 +83,7 @@ | |||||||
|     "react-native-svg": "12.1.1", |     "react-native-svg": "12.1.1", | ||||||
|     "react-native-swipe-list-view": "3.2.9", |     "react-native-swipe-list-view": "3.2.9", | ||||||
|     "react-native-tab-view": "3.1.1", |     "react-native-tab-view": "3.1.1", | ||||||
|     "react-query": "3.34.5", |     "react-query": "3.34.7", | ||||||
|     "react-redux": "7.2.6", |     "react-redux": "7.2.6", | ||||||
|     "react-timeago": "6.2.1", |     "react-timeago": "6.2.1", | ||||||
|     "redux-persist": "6.0.0", |     "redux-persist": "6.0.0", | ||||||
| @@ -96,16 +93,16 @@ | |||||||
|     "valid-url": "1.0.9" |     "valid-url": "1.0.9" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@babel/core": "7.16.5", |     "@babel/core": "7.16.7", | ||||||
|     "@babel/plugin-proposal-optional-chaining": "7.16.5", |     "@babel/plugin-proposal-optional-chaining": "7.16.7", | ||||||
|     "@babel/preset-typescript": "7.16.5", |     "@babel/preset-typescript": "7.16.7", | ||||||
|     "@expo/config": "6.0.14", |     "@expo/config": "6.0.15", | ||||||
|     "@types/lodash": "4.14.178", |     "@types/lodash": "4.14.178", | ||||||
|     "@types/react": "17.0.37", |     "@types/react": "17.0.38", | ||||||
|     "@types/react-dom": "17.0.11", |     "@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-native-base64": "^0.2.0", | ||||||
|     "@types/react-redux": "7.1.20", |     "@types/react-redux": "7.1.21", | ||||||
|     "@types/react-timeago": "4.1.3", |     "@types/react-timeago": "4.1.3", | ||||||
|     "@types/valid-url": "1.0.3", |     "@types/valid-url": "1.0.3", | ||||||
|     "@welldone-software/why-did-you-render": "6.2.3", |     "@welldone-software/why-did-you-render": "6.2.3", | ||||||
|   | |||||||
							
								
								
									
										81
									
								
								patches/expo-av+10.2.0.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								patches/expo-av+10.2.0.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -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<EXPermissionsInterface> permissionsManager; | ||||||
|  |   | ||||||
|  |  @end | ||||||
|  | @@ -106,7 +106,7 @@ EX_EXPORT_MODULE(ExponentAV); | ||||||
|  |   | ||||||
|  |  - (void)installJsiBindings | ||||||
|  |  { | ||||||
|  | -  id<EXJavaScriptContextProvider> jsContextProvider = [_moduleRegistry getModuleImplementingProtocol:@protocol(EXJavaScriptContextProvider)]; | ||||||
|  | +  id<EXJavaScriptContextProvider> 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<EXFileSystemInterface> fileSystem = [_moduleRegistry getModuleImplementingProtocol:@protocol(EXFileSystemInterface)]; | ||||||
|  | +  id<EXFileSystemInterface> 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: | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -41,10 +41,10 @@ const App: React.FC = () => { | |||||||
|     Notifications.dismissAllNotificationsAsync() |     Notifications.dismissAllNotificationsAsync() | ||||||
|   }, []) |   }, []) | ||||||
|   useEffect(() => { |   useEffect(() => { | ||||||
|     AppState.addEventListener('change', appStateEffect) |     const appStateListener = AppState.addEventListener('change', appStateEffect) | ||||||
|  |  | ||||||
|     return () => { |     return () => { | ||||||
|       AppState.removeEventListener('change', appStateEffect) |       appStateListener.remove() | ||||||
|     } |     } | ||||||
|   }, []) |   }, []) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ const apiGeneral = async <T = unknown>({ | |||||||
|   params, |   params, | ||||||
|   headers, |   headers, | ||||||
|   body, |   body, | ||||||
|   sentry = false |   sentry = true | ||||||
| }: Params): Promise<{ body: T }> => { | }: Params): Promise<{ body: T }> => { | ||||||
|   console.log( |   console.log( | ||||||
|     ctx.bgGreen.bold(' API general ') + |     ctx.bgGreen.bold(' API general ') + | ||||||
| @@ -58,8 +58,12 @@ const apiGeneral = async <T = unknown>({ | |||||||
|       }) |       }) | ||||||
|     }) |     }) | ||||||
|     .catch(error => { |     .catch(error => { | ||||||
|       if (sentry) { |       if (sentry && Math.random() < 0.01) { | ||||||
|         Sentry.Native.setExtras(error.response || error.request) |         Sentry.Native.setExtras({ | ||||||
|  |           API: 'general', | ||||||
|  |           ...(error.response && { response: error.response }), | ||||||
|  |           ...(error.request && { request: error.request }) | ||||||
|  |         }) | ||||||
|         Sentry.Native.captureException(error) |         Sentry.Native.captureException(error) | ||||||
|       } |       } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ import axios, { AxiosRequestConfig } from 'axios' | |||||||
| import chalk from 'chalk' | import chalk from 'chalk' | ||||||
| import Constants from 'expo-constants' | import Constants from 'expo-constants' | ||||||
| import li from 'li' | import li from 'li' | ||||||
|  | import * as Sentry from 'sentry-expo' | ||||||
|  |  | ||||||
| const ctx = new chalk.Instance({ level: 3 }) | const ctx = new chalk.Instance({ level: 3 }) | ||||||
|  |  | ||||||
| @@ -97,6 +98,15 @@ const apiInstance = async <T = unknown>({ | |||||||
|       }) |       }) | ||||||
|     }) |     }) | ||||||
|     .catch(error => { |     .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) { |       if (error.response) { | ||||||
|         // The request was made and the server responded with a status code |         // The request was made and the server responded with a status code | ||||||
|         // that falls out of the range of 2xx |         // that falls out of the range of 2xx | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | import { mapEnvironment } from '@utils/checkEnvironment' | ||||||
| import axios from 'axios' | import axios from 'axios' | ||||||
| import chalk from 'chalk' | import chalk from 'chalk' | ||||||
| import Constants from 'expo-constants' | import Constants from 'expo-constants' | ||||||
| @@ -16,7 +17,11 @@ export type Params = { | |||||||
|   sentry?: boolean |   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 <T = unknown>({ | const apiTooot = async <T = unknown>({ | ||||||
|   method, |   method, | ||||||
| @@ -24,7 +29,7 @@ const apiTooot = async <T = unknown>({ | |||||||
|   params, |   params, | ||||||
|   headers, |   headers, | ||||||
|   body, |   body, | ||||||
|   sentry = false |   sentry = true | ||||||
| }: Params): Promise<{ body: T }> => { | }: Params): Promise<{ body: T }> => { | ||||||
|   console.log( |   console.log( | ||||||
|     ctx.bgGreen.bold(' API tooot ') + |     ctx.bgGreen.bold(' API tooot ') + | ||||||
| @@ -56,8 +61,12 @@ const apiTooot = async <T = unknown>({ | |||||||
|       }) |       }) | ||||||
|     }) |     }) | ||||||
|     .catch(error => { |     .catch(error => { | ||||||
|       if (sentry) { |       if (sentry && Math.random() < 0.01) { | ||||||
|         Sentry.Native.setExtras(error.response || error.request) |         Sentry.Native.setExtras({ | ||||||
|  |           API: 'tooot', | ||||||
|  |           ...(error.response && { response: error.response }), | ||||||
|  |           ...(error.request && { request: error.request }) | ||||||
|  |         }) | ||||||
|         Sentry.Native.captureException(error) |         Sentry.Native.captureException(error) | ||||||
|       } |       } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -96,7 +96,7 @@ const AttachmentAudio: React.FC<Props> = ({ | |||||||
|           </> |           </> | ||||||
|         )} |         )} | ||||||
|       </View> |       </View> | ||||||
|       {audio.meta.original.duration ? ( |       {audio.meta?.original?.duration ? ( | ||||||
|         <View |         <View | ||||||
|           style={{ |           style={{ | ||||||
|             alignSelf: 'flex-end', |             alignSelf: 'flex-end', | ||||||
|   | |||||||
| @@ -4,6 +4,9 @@ import { Platform } from 'react-native' | |||||||
| const haptics = ( | const haptics = ( | ||||||
|   type: 'Success' | 'Warning' | 'Error' | 'Light' | 'Medium' | 'Heavy' |   type: 'Success' | 'Warning' | 'Error' | 'Light' | 'Medium' | 'Heavy' | ||||||
| ) => { | ) => { | ||||||
|  |   if (Platform.OS === 'ios' && parseInt(Platform.Version, 10) <= 12) { | ||||||
|  |     return | ||||||
|  |   } | ||||||
|   if (Platform.OS === 'android') { |   if (Platform.OS === 'android') { | ||||||
|     if (type === 'Error') { |     if (type === 'Error') { | ||||||
|       Haptics.impactAsync(Haptics.ImpactFeedbackStyle['Light']).catch(() => {}) |       Haptics.impactAsync(Haptics.ImpactFeedbackStyle['Light']).catch(() => {}) | ||||||
|   | |||||||
| @@ -14,7 +14,14 @@ import { StyleConstants } from '@utils/styles/constants' | |||||||
| import { useTheme } from '@utils/styles/ThemeManager' | import { useTheme } from '@utils/styles/ThemeManager' | ||||||
| import React, { useCallback, useEffect, useState } from 'react' | import React, { useCallback, useEffect, useState } from 'react' | ||||||
| import { Trans, useTranslation } from 'react-i18next' | 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 { Circle } from 'react-native-animated-spinkit' | ||||||
| import FastImage from 'react-native-fast-image' | import FastImage from 'react-native-fast-image' | ||||||
| import { FlatList, ScrollView } from 'react-native-gesture-handler' | import { FlatList, ScrollView } from 'react-native-gesture-handler' | ||||||
| @@ -199,7 +206,7 @@ const ScreenAnnouncements: React.FC< | |||||||
|     ) |     ) | ||||||
|   }, []) |   }, []) | ||||||
|  |  | ||||||
|   return ( |   return Platform.OS === 'ios' ? ( | ||||||
|     <BlurView |     <BlurView | ||||||
|       blurType={mode} |       blurType={mode} | ||||||
|       blurAmount={20} |       blurAmount={20} | ||||||
| @@ -239,6 +246,41 @@ const ScreenAnnouncements: React.FC< | |||||||
|         </View> |         </View> | ||||||
|       </SafeAreaView> |       </SafeAreaView> | ||||||
|     </BlurView> |     </BlurView> | ||||||
|  |   ) : ( | ||||||
|  |     <SafeAreaView | ||||||
|  |       style={[styles.base, { backgroundColor: theme.backgroundDefault }]} | ||||||
|  |     > | ||||||
|  |       <FlatList | ||||||
|  |         horizontal | ||||||
|  |         data={query.data} | ||||||
|  |         pagingEnabled | ||||||
|  |         renderItem={renderItem} | ||||||
|  |         showsHorizontalScrollIndicator={false} | ||||||
|  |         onMomentumScrollEnd={onMomentumScrollEnd} | ||||||
|  |         ListEmptyComponent={ListEmptyComponent} | ||||||
|  |       /> | ||||||
|  |       <View style={styles.indicators}> | ||||||
|  |         {query.data && query.data.length > 1 ? ( | ||||||
|  |           <> | ||||||
|  |             {query.data.map((d, i) => ( | ||||||
|  |               <View | ||||||
|  |                 key={i} | ||||||
|  |                 style={[ | ||||||
|  |                   styles.indicator, | ||||||
|  |                   { | ||||||
|  |                     borderColor: theme.primaryDefault, | ||||||
|  |                     backgroundColor: | ||||||
|  |                       i === index ? theme.primaryDefault : undefined, | ||||||
|  |                     marginLeft: | ||||||
|  |                       i === query.data.length ? 0 : StyleConstants.Spacing.S | ||||||
|  |                   } | ||||||
|  |                 ]} | ||||||
|  |               /> | ||||||
|  |             ))} | ||||||
|  |           </> | ||||||
|  |         ) : null} | ||||||
|  |       </View> | ||||||
|  |     </SafeAreaView> | ||||||
|   ) |   ) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,10 +3,9 @@ import { displayMessage } from '@components/Message' | |||||||
| import CameraRoll from '@react-native-community/cameraroll' | import CameraRoll from '@react-native-community/cameraroll' | ||||||
| import { RootStackParamList } from '@utils/navigation/navigators' | import { RootStackParamList } from '@utils/navigation/navigators' | ||||||
| import * as FileSystem from 'expo-file-system' | import * as FileSystem from 'expo-file-system' | ||||||
| import * as MediaLibrary from 'expo-media-library' |  | ||||||
| import i18next from 'i18next' | import i18next from 'i18next' | ||||||
| import { RefObject } from 'react' | import { RefObject } from 'react' | ||||||
| import { Platform } from 'react-native' | import { PermissionsAndroid, Platform } from 'react-native' | ||||||
| import FlashMessage from 'react-native-flash-message' | import FlashMessage from 'react-native-flash-message' | ||||||
|  |  | ||||||
| type CommonProps = { | type CommonProps = { | ||||||
| @@ -65,13 +64,32 @@ const saveAndroid = async ({ messageRef, mode, image }: CommonProps) => { | |||||||
|     await FileSystem.downloadAsync(image.url, fileUri) |     await FileSystem.downloadAsync(image.url, fileUri) | ||||||
|  |  | ||||||
|   if (downloadedFile.status != 200) { |   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() |   const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE | ||||||
|   if (!perm.granted) { |  | ||||||
|  |   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 |       return | ||||||
|     } |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|   CameraRoll.save(downloadedFile.uri) |   CameraRoll.save(downloadedFile.uri) | ||||||
|     .then(() => { |     .then(() => { | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ import analytics from '@components/analytics' | |||||||
| import Button from '@components/Button' | import Button from '@components/Button' | ||||||
| import Icon from '@components/Icon' | import Icon from '@components/Icon' | ||||||
| import { MenuContainer, MenuRow } from '@components/Menu' | import { MenuContainer, MenuRow } from '@components/Menu' | ||||||
|  | import { isDevelopment } from '@utils/checkEnvironment' | ||||||
| import { updateInstancePush } from '@utils/slices/instances/updatePush' | import { updateInstancePush } from '@utils/slices/instances/updatePush' | ||||||
| import { updateInstancePushAlert } from '@utils/slices/instances/updatePushAlert' | import { updateInstancePushAlert } from '@utils/slices/instances/updatePushAlert' | ||||||
| import { updateInstancePushDecode } from '@utils/slices/instances/updatePushDecode' | import { updateInstancePushDecode } from '@utils/slices/instances/updatePushDecode' | ||||||
| @@ -45,11 +46,16 @@ const TabMePush: React.FC = () => { | |||||||
|     setPushCanAskAgain(settings.canAskAgain) |     setPushCanAskAgain(settings.canAskAgain) | ||||||
|   } |   } | ||||||
|   useEffect(() => { |   useEffect(() => { | ||||||
|  |     if (isDevelopment) { | ||||||
|  |       setPushAvailable(true) | ||||||
|  |     } else { | ||||||
|       Notifications.getExpoPushTokenAsync({ |       Notifications.getExpoPushTokenAsync({ | ||||||
|         experienceId: '@xmflsct/tooot' |         experienceId: '@xmflsct/tooot' | ||||||
|       }) |       }) | ||||||
|         .then(data => setPushAvailable(!!data)) |         .then(data => setPushAvailable(!!data)) | ||||||
|         .catch(() => setPushAvailable(false)) |         .catch(() => setPushAvailable(false)) | ||||||
|  |     } | ||||||
|  |  | ||||||
|     checkPush() |     checkPush() | ||||||
|     const subscription = AppState.addEventListener('change', checkPush) |     const subscription = AppState.addEventListener('change', checkPush) | ||||||
|     return () => { |     return () => { | ||||||
| @@ -106,7 +112,7 @@ const TabMePush: React.FC = () => { | |||||||
|  |  | ||||||
|   return ( |   return ( | ||||||
|     <ScrollView> |     <ScrollView> | ||||||
|       {pushAvailable !== false ? ( |       {pushAvailable === true ? ( | ||||||
|         <> |         <> | ||||||
|           {pushEnabled === false ? ( |           {pushEnabled === false ? ( | ||||||
|             <MenuContainer> |             <MenuContainer> | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| import * as Updates from 'expo-updates' | import { isDevelopment } from '@utils/checkEnvironment' | ||||||
| import React from 'react' | import React from 'react' | ||||||
| import { ScrollView } from 'react-native-gesture-handler' | import { ScrollView } from 'react-native-gesture-handler' | ||||||
| import SettingsAnalytics from './Settings/Analytics' | import SettingsAnalytics from './Settings/Analytics' | ||||||
| @@ -13,12 +13,7 @@ const TabMeSettings: React.FC = () => { | |||||||
|       <SettingsTooot /> |       <SettingsTooot /> | ||||||
|       <SettingsAnalytics /> |       <SettingsAnalytics /> | ||||||
|  |  | ||||||
|       {__DEV__ || |       {isDevelopment ? <SettingsDev /> : null} | ||||||
|       ['development'].some(channel => |  | ||||||
|         Updates.releaseChannel.includes(channel) |  | ||||||
|       ) ? ( |  | ||||||
|         <SettingsDev /> |  | ||||||
|       ) : null} |  | ||||||
|     </ScrollView> |     </ScrollView> | ||||||
|   ) |   ) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,7 +4,6 @@ import { MenuContainer, MenuRow } from '@components/Menu' | |||||||
| import { useNavigation } from '@react-navigation/native' | import { useNavigation } from '@react-navigation/native' | ||||||
| import { StyleConstants } from '@utils/styles/constants' | import { StyleConstants } from '@utils/styles/constants' | ||||||
| import { useTheme } from '@utils/styles/ThemeManager' | import { useTheme } from '@utils/styles/ThemeManager' | ||||||
| import * as Updates from 'expo-updates' |  | ||||||
| import * as Linking from 'expo-linking' | import * as Linking from 'expo-linking' | ||||||
| import * as StoreReview from 'expo-store-review' | import * as StoreReview from 'expo-store-review' | ||||||
| import * as WebBrowser from 'expo-web-browser' | import * as WebBrowser from 'expo-web-browser' | ||||||
| @@ -12,6 +11,7 @@ import React from 'react' | |||||||
| import { useTranslation } from 'react-i18next' | import { useTranslation } from 'react-i18next' | ||||||
| import { useSelector } from 'react-redux' | import { useSelector } from 'react-redux' | ||||||
| import { getInstanceActive } from '@utils/slices/instancesSlice' | import { getInstanceActive } from '@utils/slices/instancesSlice' | ||||||
|  | import { isCandidate, isDevelopment } from '@utils/checkEnvironment' | ||||||
|  |  | ||||||
| const SettingsTooot: React.FC = () => { | const SettingsTooot: React.FC = () => { | ||||||
|   const instanceActive = useSelector(getInstanceActive) |   const instanceActive = useSelector(getInstanceActive) | ||||||
| @@ -36,10 +36,7 @@ const SettingsTooot: React.FC = () => { | |||||||
|           Linking.openURL('https://www.buymeacoffee.com/xmflsct') |           Linking.openURL('https://www.buymeacoffee.com/xmflsct') | ||||||
|         }} |         }} | ||||||
|       /> |       /> | ||||||
|       {__DEV__ || |       {isDevelopment || isCandidate ? ( | ||||||
|       ['release', 'development'].some(channel => |  | ||||||
|         Updates.releaseChannel?.includes(channel) |  | ||||||
|       ) ? ( |  | ||||||
|         <MenuRow |         <MenuRow | ||||||
|           title={t('me.settings.review.heading')} |           title={t('me.settings.review.heading')} | ||||||
|           content={ |           content={ | ||||||
|   | |||||||
| @@ -4,9 +4,10 @@ import { useNavigation } from '@react-navigation/native' | |||||||
| import { TabSharedStackScreenProps } from '@utils/navigation/navigators' | import { TabSharedStackScreenProps } from '@utils/navigation/navigators' | ||||||
| import { QueryKeyTimeline } from '@utils/queryHooks/timeline' | import { QueryKeyTimeline } from '@utils/queryHooks/timeline' | ||||||
| import { findIndex } from 'lodash' | 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 { FlatList } from 'react-native' | ||||||
| import { InfiniteQueryObserver, useQueryClient } from 'react-query' | import { InfiniteQueryObserver, useQueryClient } from 'react-query' | ||||||
|  | import * as Sentry from 'sentry-expo' | ||||||
|  |  | ||||||
| const TabSharedToot: React.FC<TabSharedStackScreenProps<'Tab-Shared-Toot'>> = ({ | const TabSharedToot: React.FC<TabSharedStackScreenProps<'Tab-Shared-Toot'>> = ({ | ||||||
|   route: { |   route: { | ||||||
| @@ -20,6 +21,7 @@ const TabSharedToot: React.FC<TabSharedStackScreenProps<'Tab-Shared-Toot'>> = ({ | |||||||
|  |  | ||||||
|   const flRef = useRef<FlatList>(null) |   const flRef = useRef<FlatList>(null) | ||||||
|  |  | ||||||
|  |   const [itemsLength, setItemsLength] = useState(0) | ||||||
|   const scrolled = useRef(false) |   const scrolled = useRef(false) | ||||||
|   const navigation = useNavigation() |   const navigation = useNavigation() | ||||||
|   const queryClient = useQueryClient() |   const queryClient = useQueryClient() | ||||||
| @@ -31,6 +33,7 @@ const TabSharedToot: React.FC<TabSharedStackScreenProps<'Tab-Shared-Toot'>> = ({ | |||||||
|           ? // @ts-ignore |           ? // @ts-ignore | ||||||
|             result.data.pages.flatMap(d => [...d.body]) |             result.data.pages.flatMap(d => [...d.body]) | ||||||
|           : [] |           : [] | ||||||
|  |         setItemsLength(flattenData.length) | ||||||
|         // Auto go back when toot page is empty |         // Auto go back when toot page is empty | ||||||
|         if (flattenData.length === 0) { |         if (flattenData.length === 0) { | ||||||
|           navigation.goBack() |           navigation.goBack() | ||||||
| @@ -38,29 +41,59 @@ const TabSharedToot: React.FC<TabSharedStackScreenProps<'Tab-Shared-Toot'>> = ({ | |||||||
|         if (!scrolled.current) { |         if (!scrolled.current) { | ||||||
|           scrolled.current = true |           scrolled.current = true | ||||||
|           const pointer = findIndex(flattenData, ['id', toot.id]) |           const pointer = findIndex(flattenData, ['id', toot.id]) | ||||||
|           pointer > 0 && |           try { | ||||||
|  |             pointer < flattenData.length && | ||||||
|               setTimeout(() => { |               setTimeout(() => { | ||||||
|                 flRef.current?.scrollToIndex({ |                 flRef.current?.scrollToIndex({ | ||||||
|                   index: pointer, |                   index: pointer, | ||||||
|                   viewOffset: 100 |                   viewOffset: 100 | ||||||
|                 }) |                 }) | ||||||
|             }, 1000) |               }, 500) | ||||||
|  |           } catch (err) { | ||||||
|  |             if (Math.random() < 0.1) { | ||||||
|  |               Sentry.Native.setExtras({ | ||||||
|  |                 type: 'original', | ||||||
|  |                 index: pointer, | ||||||
|  |                 itemsLength: flattenData.length, | ||||||
|  |                 flattenData | ||||||
|  |               }) | ||||||
|  |               Sentry.Native.captureException(err) | ||||||
|  |             } | ||||||
|  |           } | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     return () => unsubscribe() |     return () => unsubscribe() | ||||||
|   }, []) |   }, [scrolled.current]) | ||||||
|  |  | ||||||
|   // Toot page auto scroll to selected toot |   // Toot page auto scroll to selected toot | ||||||
|   const onScrollToIndexFailed = useCallback(error => { |   const onScrollToIndexFailed = useCallback( | ||||||
|  |     error => { | ||||||
|       const offset = error.averageItemLength * error.index |       const offset = error.averageItemLength * error.index | ||||||
|       flRef.current?.scrollToOffset({ offset }) |       flRef.current?.scrollToOffset({ offset }) | ||||||
|  |       try { | ||||||
|  |         error.index < itemsLength && | ||||||
|           setTimeout( |           setTimeout( | ||||||
|             () => |             () => | ||||||
|         flRef.current?.scrollToIndex({ index: error.index, viewOffset: 100 }), |               flRef.current?.scrollToIndex({ | ||||||
|       350 |                 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] | ||||||
|   ) |   ) | ||||||
|   }, []) |  | ||||||
|  |  | ||||||
|   const renderItem = useCallback( |   const renderItem = useCallback( | ||||||
|     ({ item }) => ( |     ({ item }) => ( | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
|  | import { isDevelopment } from '@utils/checkEnvironment' | ||||||
| import Constants from 'expo-constants' | import Constants from 'expo-constants' | ||||||
| import * as Updates from 'expo-updates' |  | ||||||
| import * as Sentry from 'sentry-expo' | import * as Sentry from 'sentry-expo' | ||||||
| import log from './log' | import log from './log' | ||||||
|  |  | ||||||
| @@ -8,9 +8,7 @@ const sentry = () => { | |||||||
|   Sentry.init({ |   Sentry.init({ | ||||||
|     dsn: Constants.manifest?.extra?.sentryDSN, |     dsn: Constants.manifest?.extra?.sentryDSN, | ||||||
|     enableInExpoDevelopment: false, |     enableInExpoDevelopment: false, | ||||||
|     debug: |     debug: isDevelopment | ||||||
|       __DEV__ || |  | ||||||
|       ['development'].some(channel => Updates.releaseChannel.includes(channel)) |  | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										49
									
								
								src/utils/checkEnvironment.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								src/utils/checkEnvironment.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | import * as Updates from 'expo-updates' | ||||||
|  |  | ||||||
|  | const mapEnvironment = <T = unknown>({ | ||||||
|  |   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 } | ||||||
| @@ -3,6 +3,7 @@ import apiTooot from '@api/tooot' | |||||||
| import { displayMessage } from '@components/Message' | import { displayMessage } from '@components/Message' | ||||||
| import navigationRef from '@helpers/navigationRef' | import navigationRef from '@helpers/navigationRef' | ||||||
| import { Dispatch } from '@reduxjs/toolkit' | import { Dispatch } from '@reduxjs/toolkit' | ||||||
|  | import { isDevelopment } from '@utils/checkEnvironment' | ||||||
| import { disableAllPushes, Instance } from '@utils/slices/instancesSlice' | import { disableAllPushes, Instance } from '@utils/slices/instancesSlice' | ||||||
| import * as Notifications from 'expo-notifications' | import * as Notifications from 'expo-notifications' | ||||||
| import { useEffect } from 'react' | import { useEffect } from 'react' | ||||||
| @@ -18,7 +19,9 @@ export interface Params { | |||||||
| const pushUseConnect = ({ mode, t, instances, dispatch }: Params) => { | const pushUseConnect = ({ mode, t, instances, dispatch }: Params) => { | ||||||
|   return useEffect(() => { |   return useEffect(() => { | ||||||
|     const connect = async () => { |     const connect = async () => { | ||||||
|       const expoToken = ( |       const expoToken = isDevelopment | ||||||
|  |       ? 'DEVELOPMENT_TOKEN_1' | ||||||
|  |       : ( | ||||||
|           await Notifications.getExpoPushTokenAsync({ |           await Notifications.getExpoPushTokenAsync({ | ||||||
|             experienceId: '@xmflsct/tooot' |             experienceId: '@xmflsct/tooot' | ||||||
|           }) |           }) | ||||||
|   | |||||||
| @@ -28,8 +28,7 @@ const subscribe = async ({ | |||||||
|   return apiTooot({ |   return apiTooot({ | ||||||
|     method: 'post', |     method: 'post', | ||||||
|     url: `/push/subscribe/${expoToken}/${instanceUrl}/${accountId}`, |     url: `/push/subscribe/${expoToken}/${instanceUrl}/${accountId}`, | ||||||
|     body: { accountFull, serverKey, auth }, |     body: { accountFull, serverKey, auth } | ||||||
|     sentry: true |  | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,8 +21,7 @@ const pushUnregister = async (state: RootState, expoToken: string) => { | |||||||
|  |  | ||||||
|   await apiTooot<{ endpoint: string; publicKey: string; auth: string }>({ |   await apiTooot<{ endpoint: string; publicKey: string; auth: string }>({ | ||||||
|     method: 'delete', |     method: 'delete', | ||||||
|     url: `/push/unsubscribe/${expoToken}/${instance.url}/${instance.account.id}`, |     url: `/push/unsubscribe/${expoToken}/${instance.url}/${instance.account.id}` | ||||||
|     sentry: true |  | ||||||
|   }) |   }) | ||||||
|  |  | ||||||
|   if (Platform.OS === 'android') { |   if (Platform.OS === 'android') { | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| import { createAsyncThunk } from '@reduxjs/toolkit' | import { createAsyncThunk } from '@reduxjs/toolkit' | ||||||
| import { RootState } from '@root/store' | import { RootState } from '@root/store' | ||||||
|  | import { isDevelopment } from '@utils/checkEnvironment' | ||||||
| import * as Notifications from 'expo-notifications' | import * as Notifications from 'expo-notifications' | ||||||
| import { Instance } from '../instancesSlice' | import { Instance } from '../instancesSlice' | ||||||
| import pushRegister from './push/register' | import pushRegister from './push/register' | ||||||
| @@ -12,7 +13,9 @@ export const updateInstancePush = createAsyncThunk( | |||||||
|     { getState } |     { getState } | ||||||
|   ): Promise<Instance['push']['keys']['auth'] | undefined> => { |   ): Promise<Instance['push']['keys']['auth'] | undefined> => { | ||||||
|     const state = getState() as RootState |     const state = getState() as RootState | ||||||
|     const expoToken = ( |     const expoToken = isDevelopment | ||||||
|  |       ? 'DEVELOPMENT_TOKEN_1' | ||||||
|  |       : ( | ||||||
|           await Notifications.getExpoPushTokenAsync({ |           await Notifications.getExpoPushTokenAsync({ | ||||||
|             experienceId: '@xmflsct/tooot' |             experienceId: '@xmflsct/tooot' | ||||||
|           }) |           }) | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ import apiTooot from '@api/tooot' | |||||||
| import { createAsyncThunk } from '@reduxjs/toolkit' | import { createAsyncThunk } from '@reduxjs/toolkit' | ||||||
| import i18n from '@root/i18n/i18n' | import i18n from '@root/i18n/i18n' | ||||||
| import { RootState } from '@root/store' | import { RootState } from '@root/store' | ||||||
|  | import { isDevelopment } from '@utils/checkEnvironment' | ||||||
| import * as Notifications from 'expo-notifications' | import * as Notifications from 'expo-notifications' | ||||||
| import { Platform } from 'react-native' | import { Platform } from 'react-native' | ||||||
| import { getInstance, Instance } from '../instancesSlice' | import { getInstance, Instance } from '../instancesSlice' | ||||||
| @@ -19,7 +20,9 @@ export const updateInstancePushDecode = createAsyncThunk( | |||||||
|       return Promise.reject() |       return Promise.reject() | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     const expoToken = ( |     const expoToken = isDevelopment | ||||||
|  |       ? 'DEVELOPMENT_TOKEN_1' | ||||||
|  |       : ( | ||||||
|           await Notifications.getExpoPushTokenAsync({ |           await Notifications.getExpoPushTokenAsync({ | ||||||
|             experienceId: '@xmflsct/tooot' |             experienceId: '@xmflsct/tooot' | ||||||
|           }) |           }) | ||||||
| @@ -30,8 +33,7 @@ export const updateInstancePushDecode = createAsyncThunk( | |||||||
|       url: `/push/update-decode/${expoToken}/${instance.url}/${instance.account.id}`, |       url: `/push/update-decode/${expoToken}/${instance.url}/${instance.account.id}`, | ||||||
|       body: { |       body: { | ||||||
|         auth: !disable ? null : instance.push.keys.auth |         auth: !disable ? null : instance.push.keys.auth | ||||||
|       }, |       } | ||||||
|       sentry: true |  | ||||||
|     }) |     }) | ||||||
|  |  | ||||||
|     if (Platform.OS === 'android') { |     if (Platform.OS === 'android') { | ||||||
|   | |||||||
							
								
								
									
										510
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										510
									
								
								yarn.lock
									
									
									
									
									
								
							| @@ -9,6 +9,13 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/highlight" "^7.16.0" |     "@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": | "@babel/code-frame@~7.10.4": | ||||||
|   version "7.10.4" |   version "7.10.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" |   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" |   resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" | ||||||
|   integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== |   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" |   version "7.16.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" |   resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" | ||||||
|   integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== |   integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== | ||||||
| @@ -51,6 +79,15 @@ | |||||||
|     jsesc "^2.5.1" |     jsesc "^2.5.1" | ||||||
|     source-map "^0.5.0" |     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": | "@babel/helper-annotate-as-pure@^7.16.0": | ||||||
|   version "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" |   resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" | ||||||
| @@ -58,6 +95,13 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-builder-binary-assignment-operator-visitor@^7.16.5": | ||||||
|   version "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" |   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" |     browserslist "^4.17.5" | ||||||
|     semver "^6.3.0" |     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": | "@babel/helper-create-class-features-plugin@^7.16.0", "@babel/helper-create-class-features-plugin@^7.16.5": | ||||||
|   version "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" |   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-replace-supers" "^7.16.5" | ||||||
|     "@babel/helper-split-export-declaration" "^7.16.0" |     "@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": | "@babel/helper-create-regexp-features-plugin@^7.16.0": | ||||||
|   version "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" |   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: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-explode-assignable-expression@^7.16.0": | ||||||
|   version "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" |   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/template" "^7.16.0" | ||||||
|     "@babel/types" "^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": | "@babel/helper-get-function-arity@^7.16.0": | ||||||
|   version "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" |   resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" | ||||||
| @@ -141,6 +224,13 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-hoist-variables@^7.16.0": | ||||||
|   version "7.16.0" |   version "7.16.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" |   resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" | ||||||
| @@ -148,6 +238,13 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-member-expression-to-functions@^7.16.5": | ||||||
|   version "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" |   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: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": | ||||||
|   version "7.16.0" |   version "7.16.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" |   resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" | ||||||
| @@ -162,6 +266,13 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-module-transforms@^7.16.5": | ||||||
|   version "7.16.5" |   version "7.16.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" |   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/traverse" "^7.16.5" | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-optimise-call-expression@^7.16.0": | ||||||
|   version "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" |   resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" | ||||||
| @@ -183,11 +308,23 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@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" |   version "7.16.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" |   resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" | ||||||
|   integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== |   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": | "@babel/helper-remap-async-to-generator@^7.16.5": | ||||||
|   version "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" |   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/traverse" "^7.16.5" | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-simple-access@^7.16.0": | ||||||
|   version "7.16.0" |   version "7.16.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" |   resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" | ||||||
| @@ -215,6 +363,13 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": | ||||||
|   version "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" |   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: |   dependencies: | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/helper-validator-identifier@^7.15.7": | ||||||
|   version "7.15.7" |   version "7.15.7" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" |   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== |   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": | "@babel/helper-validator-option@^7.14.5": | ||||||
|   version "7.14.5" |   version "7.14.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" |   resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" | ||||||
|   integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== |   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": | "@babel/helper-wrap-function@^7.16.5": | ||||||
|   version "7.16.5" |   version "7.16.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz#0158fca6f6d0889c3fee8a6ed6e5e07b9b54e41f" |   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/traverse" "^7.16.5" | ||||||
|     "@babel/types" "^7.16.0" |     "@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": | "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.0": | ||||||
|   version "7.16.0" |   version "7.16.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" |   resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" | ||||||
| @@ -267,11 +448,25 @@ | |||||||
|     chalk "^2.0.0" |     chalk "^2.0.0" | ||||||
|     js-tokens "^4.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": | "@babel/parser@^7.1.6", "@babel/parser@^7.14.0", "@babel/parser@^7.16.0", "@babel/parser@^7.16.5": | ||||||
|   version "7.16.6" |   version "7.16.6" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" |   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" | ||||||
|   integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== |   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": | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": | ||||||
|   version "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" |   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/helper-plugin-utils" "^7.16.5" | ||||||
|     "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" |     "@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" |   version "7.16.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz#a5fa61056194d5059366c0009cb9a9e66ed75c1f" |   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== |   integrity sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A== | ||||||
| @@ -566,6 +770,13 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/helper-plugin-utils" "^7.16.5" |     "@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": | "@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.16.5": | ||||||
|   version "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" |   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/helper-plugin-utils" "^7.14.5" | ||||||
|     "@babel/plugin-syntax-typescript" "^7.16.0" |     "@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": | "@babel/plugin-transform-unicode-escapes@^7.16.5": | ||||||
|   version "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" |   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" |     "@babel/types" "^7.4.4" | ||||||
|     esutils "^2.0.2" |     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" |   version "7.16.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz#b86a5b0ae739ba741347d2f58c52f52e63cf1ba1" |   resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz#b86a5b0ae739ba741347d2f58c52f52e63cf1ba1" | ||||||
|   integrity sha512-lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q== |   integrity sha512-lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q== | ||||||
| @@ -1019,6 +1248,15 @@ | |||||||
|     "@babel/parser" "^7.16.0" |     "@babel/parser" "^7.16.0" | ||||||
|     "@babel/types" "^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": | "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.5": | ||||||
|   version "7.16.5" |   version "7.16.5" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" |   resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" | ||||||
| @@ -1035,6 +1273,22 @@ | |||||||
|     debug "^4.1.0" |     debug "^4.1.0" | ||||||
|     globals "^11.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": | "@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.4.4": | ||||||
|   version "7.16.0" |   version "7.16.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" |   resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" | ||||||
| @@ -1043,6 +1297,14 @@ | |||||||
|     "@babel/helper-validator-identifier" "^7.15.7" |     "@babel/helper-validator-identifier" "^7.15.7" | ||||||
|     to-fast-properties "^2.0.0" |     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": | "@cnakazawa/watch@^1.0.3": | ||||||
|   version "1.0.4" |   version "1.0.4" | ||||||
|   resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" |   resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" | ||||||
| @@ -1080,6 +1342,28 @@ | |||||||
|     xcode "^3.0.1" |     xcode "^3.0.1" | ||||||
|     xml2js "0.4.23" |     xml2js "0.4.23" | ||||||
|  |  | ||||||
|  | "@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== | ||||||
|  |   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": | "@expo/config-plugins@4.0.6": | ||||||
|   version "4.0.6" |   version "4.0.6" | ||||||
|   resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-4.0.6.tgz#ef52f0e4d96ddd52b4cd4cc8c6efbe3d9576c72d" |   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" |   resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-43.0.1.tgz#3e047dccb371741a540980eaff26fb0c95039c30" | ||||||
|   integrity sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ== |   integrity sha512-EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ== | ||||||
|  |  | ||||||
| "@expo/config@6.0.14", "@expo/config@^6.0.6": | "@expo/config@6.0.15": | ||||||
|   version "6.0.14" |   version "6.0.15" | ||||||
|   resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.14.tgz#00d084893dd661e8351d8359e0f0f8d875d82e12" |   resolved "https://registry.yarnpkg.com/@expo/config/-/config-6.0.15.tgz#aa610f8b714e0b1103e13c8210059519479d11d6" | ||||||
|   integrity sha512-CVnAGmXvAEYRYhXa7p1fZW9MzJtxE8cO0AGWdJIym4kyvxi6qkgeowmENEQUYKRk2s8Kq1+iY5krm2VXDqQV9w== |   integrity sha512-nrG+OUe/2n3ulNSgHRs9V70zXu3lpkuzJ6F0VmCuhjyHqT7UYimkgSCJGqaE3N+AayBTK+YffOT6bTWH17wxjQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/code-frame" "~7.10.4" |     "@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/config-types" "^43.0.1" | ||||||
|     "@expo/json-file" "8.2.34" |     "@expo/json-file" "8.2.34" | ||||||
|     getenv "^1.0.0" |     getenv "^1.0.0" | ||||||
| @@ -1163,6 +1447,23 @@ | |||||||
|     slugify "^1.3.4" |     slugify "^1.3.4" | ||||||
|     sucrase "^3.20.0" |     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": | "@expo/configure-splash-screen@^0.6.0": | ||||||
|   version "0.6.0" |   version "0.6.0" | ||||||
|   resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39" |   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" |     base64-js "^1.2.3" | ||||||
|     xmlbuilder "^14.0.0" |     xmlbuilder "^14.0.0" | ||||||
|  |  | ||||||
| "@expo/prebuild-config@^3.0.6": | "@expo/prebuild-config@^3.0.15": | ||||||
|   version "3.0.14" |   version "3.0.15" | ||||||
|   resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-3.0.14.tgz#0c58c3887830b6ebdafbd49d1bfe8c16fc552741" |   resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-3.0.15.tgz#bfc920bdbd01ab4d785cbf64c3a9deb74a6bb6a4" | ||||||
|   integrity sha512-YpPcjgHsILWlXVl3txPJ6lQNCc8JWbMp3EkXdyi6/glXYAHbOI8snTFeV2GOJH5X2y88C24u0sAParcaNuapiQ== |   integrity sha512-fP35AajhPIyUoqexTCxjcfSLZwK4OeedLZbxgUb32+k5kl1b7uSbmdAMtGHfLgnI18Mhk2QprerXOMK4zxo9mQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@expo/config" "6.0.14" |     "@expo/config" "6.0.15" | ||||||
|     "@expo/config-plugins" "4.0.14" |     "@expo/config-plugins" "4.0.15" | ||||||
|     "@expo/config-types" "^43.0.1" |     "@expo/config-types" "^43.0.1" | ||||||
|     "@expo/image-utils" "0.3.18" |     "@expo/image-utils" "0.3.18" | ||||||
|     "@expo/json-file" "8.2.34" |     "@expo/json-file" "8.2.34" | ||||||
|     debug "^4.3.1" |     debug "^4.3.1" | ||||||
|     expo-modules-autolinking "~0.4.0" |     expo-modules-autolinking "~0.5.1" | ||||||
|     fs-extra "^9.0.0" |     fs-extra "^9.0.0" | ||||||
|     resolve-from "^5.0.0" |     resolve-from "^5.0.0" | ||||||
|     semver "7.3.2" |     semver "7.3.2" | ||||||
| @@ -1539,10 +1840,10 @@ | |||||||
|     sudo-prompt "^9.0.0" |     sudo-prompt "^9.0.0" | ||||||
|     wcwidth "^1.0.1" |     wcwidth "^1.0.1" | ||||||
|  |  | ||||||
| "@react-native-community/netinfo@7.1.6": | "@react-native-community/netinfo@7.1.7": | ||||||
|   version "7.1.6" |   version "7.1.7" | ||||||
|   resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-7.1.6.tgz#b1c5c7e93559eb2d3d493c9aac14cd45554a9261" |   resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-7.1.7.tgz#10e96922c90a0ff9755dcfbfc92a9d83ec45cd87" | ||||||
|   integrity sha512-FsBpEpMaFRwWz+Z2HWcYP2wBN7wooTIuvnOvY5EBJwrJIu15UnTaSGT4ABhdMSP8I0loI75mJxuXVQ+BwR5UTg== |   integrity sha512-QCEuvbTAD7vyCsSsgbWedhTfXlClp4TVHVWYYMjnN7nz6xgZbSp+MI3oo7X5C4JlDHpRm/Q+63hsCgAqKt3WVA== | ||||||
|  |  | ||||||
| "@react-native-community/segmented-control@2.2.2": | "@react-native-community/segmented-control@2.2.2": | ||||||
|   version "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" |   resolved "https://registry.yarnpkg.com/@types/react-native-base64/-/react-native-base64-0.2.0.tgz#c934e7c3cd549d4613bbfa7929a6845ab07a20af" | ||||||
|   integrity sha512-5kUtS7Kf8Xl4zEwbqLITEuQReQTby4UOGfnsEeBFJEVmUfT+ygOv/Qmv0v6El0iV1eDhXS+/0i7CGR9d3/nRSA== |   integrity sha512-5kUtS7Kf8Xl4zEwbqLITEuQReQTby4UOGfnsEeBFJEVmUfT+ygOv/Qmv0v6El0iV1eDhXS+/0i7CGR9d3/nRSA== | ||||||
|  |  | ||||||
| "@types/react-native@0.66.9": | "@types/react-native@0.66.11": | ||||||
|   version "0.66.9" |   version "0.66.11" | ||||||
|   resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.66.9.tgz#a051d1f1f3cd03df4b4870e91e416b71377a8b7a" |   resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.66.11.tgz#3d138275fe9cca3b8efad990b1bee08078c3ff4d" | ||||||
|   integrity sha512-lve1rgQadbOM82ZRiw6CvvManUeidDhlFtiXA+dErI7a7/NNxLM7kZVYDNKd/QQc5FgLlQ0Uof2QInup7OwsBg== |   integrity sha512-DFuNMhRuyKMbJrI/s3rIuM5io+tIOK4Iq9oMzatWX5bIgfjZM86X1aA/epE0ipw1aFaoHKermK3fLG1bqFzzDQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@types/react" "*" |     "@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" |   version "7.1.20" | ||||||
|   resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.20.tgz#42f0e61ababb621e12c66c96dda94c58423bd7df" |   resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.20.tgz#42f0e61ababb621e12c66c96dda94c58423bd7df" | ||||||
|   integrity sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw== |   integrity sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw== | ||||||
| @@ -1943,7 +2254,7 @@ | |||||||
|   dependencies: |   dependencies: | ||||||
|     "@types/react" "*" |     "@types/react" "*" | ||||||
|  |  | ||||||
| "@types/react@*", "@types/react@17.0.37": | "@types/react@*": | ||||||
|   version "17.0.37" |   version "17.0.37" | ||||||
|   resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.37.tgz#6884d0aa402605935c397ae689deed115caad959" |   resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.37.tgz#6884d0aa402605935c397ae689deed115caad959" | ||||||
|   integrity sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg== |   integrity sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg== | ||||||
| @@ -1952,6 +2263,15 @@ | |||||||
|     "@types/scheduler" "*" |     "@types/scheduler" "*" | ||||||
|     csstype "^3.0.2" |     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@*": | "@types/scheduler@*": | ||||||
|   version "0.16.2" |   version "0.16.2" | ||||||
|   resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" |   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" |   resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-4.0.1.tgz#d38a1315c06c253b843c951ddc6fbb9a026f05cc" | ||||||
|   integrity sha512-yZM/SrpWdi84m5+5F3VDfhrMZOz/uKwXcgBhOP1wzfXt0otGSRW1V5tM+a0sgaKZsDRCGojTU7Jm73BVwwVrwg== |   integrity sha512-yZM/SrpWdi84m5+5F3VDfhrMZOz/uKwXcgBhOP1wzfXt0otGSRW1V5tM+a0sgaKZsDRCGojTU7Jm73BVwwVrwg== | ||||||
|  |  | ||||||
| expo-asset@~8.4.4: | expo-asset@~8.4.5: | ||||||
|   version "8.4.4" |   version "8.4.5" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.4.4.tgz#6214270a41af378ac734a28fbff7b542ca84a3cf" |   resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.4.5.tgz#730579b48408222c210beface7508224683f1740" | ||||||
|   integrity sha512-0yxAOJo8bnYvnRNOWikQ1xFP+YQViJ/px3MofZFUPGw02iaSSUzArcKDfMtpJNmH/EC7HE7GJSZpkoxx+zsHWA== |   integrity sha512-4E+VzFdgSjeCC+x80VuL+moY04U19SRV6vrL8DekQSyPbwkNR1QdvSx/7O7XTOspB9duwebQ1ue7JHFWOwyaMQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     blueimp-md5 "^2.10.0" |     blueimp-md5 "^2.10.0" | ||||||
|     invariant "^2.2.4" |     invariant "^2.2.4" | ||||||
| @@ -3193,13 +3513,12 @@ expo-auth-session@3.5.0: | |||||||
|     invariant "^2.2.4" |     invariant "^2.2.4" | ||||||
|     qs "6.9.1" |     qs "6.9.1" | ||||||
|  |  | ||||||
| expo-av@10.1.3: | expo-av@10.2.0: | ||||||
|   version "10.1.3" |   version "10.2.0" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-10.1.3.tgz#a010443d7f82398d789a89824f1d512d8b407e3c" |   resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-10.2.0.tgz#4bc4b1f409f3ad2e247586f22e4fb9e1aa666b0a" | ||||||
|   integrity sha512-zYhpYthdQ5UPuhNn3XWaMJu94XyXUNw6WEifRnKH5xUHo0Oy0XrV5JAk8iO+7WDgfGo9oHlgvnSWrMNQsbF80A== |   integrity sha512-jo7Nv3IgJPAiOerKRwlL4guKkULZfvE5KIRZmgLurgPvJFHHAye4pFe2IlqQftKd66NHo1vq2zIGF3B3fsTPmw== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@expo/config-plugins" "^4.0.2" |     "@expo/config-plugins" "^4.0.2" | ||||||
|     expo-modules-core "~0.4.7" |  | ||||||
|  |  | ||||||
| expo-constants@^13.0.0, expo-constants@~13.0.0: | expo-constants@^13.0.0, expo-constants@~13.0.0: | ||||||
|   version "13.0.0" |   version "13.0.0" | ||||||
| @@ -3226,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" |   resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-3.0.4.tgz#de85c8c6b387d9b1e532256600882f2c2704383a" | ||||||
|   integrity sha512-7z2V7n9Yvm9/ogm4I1KgcsQZfgyDMSOBVHk8pA3IY0jL8+tXTyTrStxHsPXRjE8HHeYikfTRBIeFsh/1wWY7oA== |   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" |   version "13.1.0" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-13.1.0.tgz#7758617ad5bd60dac82c642bf8c85d0cdb00c117" |   resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-13.1.0.tgz#7758617ad5bd60dac82c642bf8c85d0cdb00c117" | ||||||
|   integrity sha512-Hd+aBfcZfiD9p2qOEMvcUJuEnQk5NEostZjT5gVkQmRoITUxf9wGgrX1tSAzF8JQAtOJVjfWYOwTMHq2H9M8AA== |   integrity sha512-Hd+aBfcZfiD9p2qOEMvcUJuEnQk5NEostZjT5gVkQmRoITUxf9wGgrX1tSAzF8JQAtOJVjfWYOwTMHq2H9M8AA== | ||||||
| @@ -3314,17 +3641,10 @@ expo-manifests@~0.2.2: | |||||||
|   dependencies: |   dependencies: | ||||||
|     expo-json-utils "~0.2.0" |     expo-json-utils "~0.2.0" | ||||||
|  |  | ||||||
| expo-media-library@^14.0.0: | expo-modules-autolinking@0.5.5: | ||||||
|   version "14.0.0" |   version "0.5.5" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-14.0.0.tgz#aed008f7b750c02ec4a298c7aaa2fc4454171eea" |   resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.5.tgz#6bcc42072dcbdfca79d207b7f549f1fdb54a2b74" | ||||||
|   integrity sha512-rbrFSLxpmhKqvWivjpMXhAOu0D0sRhu2UNc+SJntXJwsLYx7Mzh9N8pk2kU7iLTPR2YYfxOGW7HyFj18+OB6QQ== |   integrity sha512-bILEG0Fg+ZhIhdEaShHzsEN1WC0hUmXJ5Kcd4cd+8rVk1Ead9vRZxA/yLx1cNBDCOwMe0GAMrhF7TKT+A1P+YA== | ||||||
|   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: |   dependencies: | ||||||
|     chalk "^4.1.0" |     chalk "^4.1.0" | ||||||
|     commander "^7.2.0" |     commander "^7.2.0" | ||||||
| @@ -3332,10 +3652,10 @@ expo-modules-autolinking@0.5.1: | |||||||
|     find-up "^5.0.0" |     find-up "^5.0.0" | ||||||
|     fs-extra "^9.1.0" |     fs-extra "^9.1.0" | ||||||
|  |  | ||||||
| expo-modules-autolinking@~0.4.0: | expo-modules-autolinking@~0.5.1: | ||||||
|   version "0.4.0" |   version "0.5.4" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.4.0.tgz#ad6e52ee42dd0e40a494693d763fa4bf2248c012" |   resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-0.5.4.tgz#d105d46cb6faab71c72c3181b9c2ab8cc8b09dba" | ||||||
|   integrity sha512-GRGHbQ4b/aOtEup/oA6YVS7OOBKqU4sNLhoiTkEJWXmYDRERZiRvp8N2krQtn54y5PqucftqlBrMbdCinTouqg== |   integrity sha512-Q2wQp7tE7nlkmIQslQxa02uswOAJZXuJHWmb5oCG8BkzL6QBmDURJ/1j5hlIKuyN+j1M0rZbzyVI+ufyziGsSQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     chalk "^4.1.0" |     chalk "^4.1.0" | ||||||
|     commander "^7.2.0" |     commander "^7.2.0" | ||||||
| @@ -3343,18 +3663,10 @@ expo-modules-autolinking@~0.4.0: | |||||||
|     find-up "^5.0.0" |     find-up "^5.0.0" | ||||||
|     fs-extra "^9.1.0" |     fs-extra "^9.1.0" | ||||||
|  |  | ||||||
| expo-modules-core@0.6.3: | expo-modules-core@0.6.4: | ||||||
|   version "0.6.3" |   version "0.6.4" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.6.3.tgz#e5326169a888144f2691ffd49b7686dfac235227" |   resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.6.4.tgz#dd0265da98a92bd8004c83d9953136e4820f1bef" | ||||||
|   integrity sha512-VLVQ6mK9rQHdcV+dn2keXsnDGR8OehUHkSAeZ88e5N8j1zjBo/9SI2/R7v3jBj+1Adg/wmVc5vyJzqnj2hlM2w== |   integrity sha512-I5MvSZHjww4Jfvob/woCbI0ZLZIUBmhoiLeZsMJoWJuWa8QmtxXjI+4eRjaDB7+RxNVhrnVcmRjQPYG/5HepVg== | ||||||
|   dependencies: |  | ||||||
|     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: |   dependencies: | ||||||
|     compare-versions "^3.4.0" |     compare-versions "^3.4.0" | ||||||
|     invariant "^2.2.4" |     invariant "^2.2.4" | ||||||
| @@ -3376,11 +3688,6 @@ expo-notifications@0.14.0: | |||||||
|     unimodules-task-manager-interface "~7.1.0" |     unimodules-task-manager-interface "~7.1.0" | ||||||
|     uuid "^3.4.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: | expo-random@12.1.1: | ||||||
|   version "12.1.1" |   version "12.1.1" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.1.1.tgz#75f6eec8d4b9026a27eb90ed4b60d56dab414106" |   resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.1.1.tgz#75f6eec8d4b9026a27eb90ed4b60d56dab414106" | ||||||
| @@ -3398,18 +3705,13 @@ expo-secure-store@11.1.0: | |||||||
|   resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-11.1.0.tgz#2eb6e793a459e178feeb72bbeb40afc97e412bf6" |   resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-11.1.0.tgz#2eb6e793a459e178feeb72bbeb40afc97e412bf6" | ||||||
|   integrity sha512-LyCLqsoibP90Td4mSWc+un+xGNYnIuGOrfbp2aG2KAn1ZGcDL6muxIaFj7a/4Kh+EiCIoU5EPb1YjOATbmaBnQ== |   integrity sha512-LyCLqsoibP90Td4mSWc+un+xGNYnIuGOrfbp2aG2KAn1ZGcDL6muxIaFj7a/4Kh+EiCIoU5EPb1YjOATbmaBnQ== | ||||||
|  |  | ||||||
| expo-splash-screen@0.14.0: | expo-splash-screen@0.14.1: | ||||||
|   version "0.14.0" |   version "0.14.1" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.14.0.tgz#6ed61cba73c246de329e9bf903bb5964f50bb7a9" |   resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.14.1.tgz#7647c8b98c679b8313d24a7c14729402c3c16631" | ||||||
|   integrity sha512-4ruZGrVFcOPVYsq5uH/tiu/2JZU2xyKV6sip12ZSOjCz9V109iPWde2amKV3Uctdb2g8Iqi8nIRIeOOCO3LbHQ== |   integrity sha512-Y08wMIVjRuPbBnH2N6KwUfQYYnAiBrZMFAfXjjPPObyMDZ7v5VXTcbAWHqGdnYDcIbXRpat+fiWpTeU2HanBBg== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@expo/configure-splash-screen" "^0.6.0" |     "@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" |  | ||||||
|   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: | expo-store-review@5.1.0: | ||||||
|   version "5.1.0" |   version "5.1.0" | ||||||
| @@ -3426,10 +3728,10 @@ expo-updates-interface@~0.5.0: | |||||||
|   resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.5.0.tgz#30b05b9e190b3e2662d7cc26cd84d305d7ab4217" |   resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.5.0.tgz#30b05b9e190b3e2662d7cc26cd84d305d7ab4217" | ||||||
|   integrity sha512-3Yhip5LQ6x1nQ/2Xm/uP3Oeann7YkaBwsdUpxbcMtn2Ayucuu9U7r9ltwzBFxC4RWebfhXGJZ5+gx85y0leGXQ== |   integrity sha512-3Yhip5LQ6x1nQ/2Xm/uP3Oeann7YkaBwsdUpxbcMtn2Ayucuu9U7r9ltwzBFxC4RWebfhXGJZ5+gx85y0leGXQ== | ||||||
|  |  | ||||||
| expo-updates@0.11.1: | expo-updates@0.11.3: | ||||||
|   version "0.11.1" |   version "0.11.3" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.11.1.tgz#911469fe395361f40735551de0a470675a691046" |   resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.11.3.tgz#5dcd27ea7de47b6b222c525541a2e0dc91d6191e" | ||||||
|   integrity sha512-koojsMlI6GSjw+xlNILy3qFnu7thEkhXlogImm/YmIbbvafXVAPqkVREv+IRnJ5Ej2W700mNlOT4XP+XsZOW+Q== |   integrity sha512-W8oXaH0MKaH5ZLszupnm904A4epBjgvjPEfuIjy3JybTU+JC8319gqsOZ7nWBxZZck67utxHAlyJ9Ks/CcqFmA== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@expo/config" "^6.0.6" |     "@expo/config" "^6.0.6" | ||||||
|     "@expo/config-plugins" "^4.0.2" |     "@expo/config-plugins" "^4.0.2" | ||||||
| @@ -3441,10 +3743,10 @@ expo-updates@0.11.1: | |||||||
|     resolve-from "^5.0.0" |     resolve-from "^5.0.0" | ||||||
|     uuid "^3.4.0" |     uuid "^3.4.0" | ||||||
|  |  | ||||||
| expo-video-thumbnails@6.1.0: | expo-video-thumbnails@6.2.0: | ||||||
|   version "6.1.0" |   version "6.2.0" | ||||||
|   resolved "https://registry.yarnpkg.com/expo-video-thumbnails/-/expo-video-thumbnails-6.1.0.tgz#377c3569a5a584d95c88b7d6c475a260d063ef41" |   resolved "https://registry.yarnpkg.com/expo-video-thumbnails/-/expo-video-thumbnails-6.2.0.tgz#ebf33500b6b32a9efdaf498a08dd0d9ac2add049" | ||||||
|   integrity sha512-qRMsgL6JY6um3UKq//0VO6J4NurqMOLuAv+Mu01Z4pweuoR83j7HOKNr0PKszIyBv/9tNeLzzrUYQuQPzXmKHA== |   integrity sha512-iW49Atk3fijqxFY7PLfmOL2QhWsD/A7Sh+4X8YtNGG0T2Bd16fMEvl5BdvBZdAz+A67VidGkI4hxNWTDWw/bVw== | ||||||
|  |  | ||||||
| expo-web-browser@10.1.0, expo-web-browser@~10.1.0: | expo-web-browser@10.1.0, expo-web-browser@~10.1.0: | ||||||
|   version "10.1.0" |   version "10.1.0" | ||||||
| @@ -3453,10 +3755,10 @@ expo-web-browser@10.1.0, expo-web-browser@~10.1.0: | |||||||
|   dependencies: |   dependencies: | ||||||
|     compare-urls "^2.0.0" |     compare-urls "^2.0.0" | ||||||
|  |  | ||||||
| expo@44.0.0: | expo@44.0.4: | ||||||
|   version "44.0.0" |   version "44.0.4" | ||||||
|   resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.0.tgz#794d1f062e232018d26ef01ad570673c78a5f54d" |   resolved "https://registry.yarnpkg.com/expo/-/expo-44.0.4.tgz#328e3ca41f6d195d3525b30c8a74d8c241efcf7d" | ||||||
|   integrity sha512-N8bykKCT1EIk9L0UBsWXRtnbUtlmWkmVYXNacAEpHixVLBA8HBhs7BnSG5zd+O7beHWUA9FZmCK4CgduNFzBVQ== |   integrity sha512-XYEG0ldlKmRGTFBGSCcW6GI6SNMBrp1uM+s8yIfUmRzHmxj2D0HP+r1aUH8iU1alsIjh00IAGQ71BMPu0hRlNQ== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/runtime" "^7.14.0" |     "@babel/runtime" "^7.14.0" | ||||||
|     "@expo/metro-config" "~0.2.6" |     "@expo/metro-config" "~0.2.6" | ||||||
| @@ -3464,13 +3766,13 @@ expo@44.0.0: | |||||||
|     babel-preset-expo "~9.0.2" |     babel-preset-expo "~9.0.2" | ||||||
|     cross-spawn "^6.0.5" |     cross-spawn "^6.0.5" | ||||||
|     expo-application "~4.0.1" |     expo-application "~4.0.1" | ||||||
|     expo-asset "~8.4.4" |     expo-asset "~8.4.5" | ||||||
|     expo-constants "~13.0.0" |     expo-constants "~13.0.0" | ||||||
|     expo-file-system "~13.1.0" |     expo-file-system "~13.1.0" | ||||||
|     expo-font "~10.0.4" |     expo-font "~10.0.4" | ||||||
|     expo-keep-awake "~10.0.1" |     expo-keep-awake "~10.0.1" | ||||||
|     expo-modules-autolinking "0.5.1" |     expo-modules-autolinking "0.5.5" | ||||||
|     expo-modules-core "0.6.3" |     expo-modules-core "0.6.4" | ||||||
|     fbemitter "^2.1.1" |     fbemitter "^2.1.1" | ||||||
|     invariant "^2.2.4" |     invariant "^2.2.4" | ||||||
|     md5-file "^3.2.3" |     md5-file "^3.2.3" | ||||||
| @@ -5836,10 +6138,10 @@ react-freeze@^1.0.0: | |||||||
|   resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.0.tgz#b21c65fe1783743007c8c9a2952b1c8879a77354" |   resolved "https://registry.yarnpkg.com/react-freeze/-/react-freeze-1.0.0.tgz#b21c65fe1783743007c8c9a2952b1c8879a77354" | ||||||
|   integrity sha512-yQaiOqDmoKqks56LN9MTgY06O0qQHgV4FUrikH357DydArSZHQhl0BJFqGKIZoTqi8JizF9Dxhuk1FIZD6qCaw== |   integrity sha512-yQaiOqDmoKqks56LN9MTgY06O0qQHgV4FUrikH357DydArSZHQhl0BJFqGKIZoTqi8JizF9Dxhuk1FIZD6qCaw== | ||||||
|  |  | ||||||
| react-i18next@11.15.1: | react-i18next@11.15.3: | ||||||
|   version "11.15.1" |   version "11.15.3" | ||||||
|   resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.15.1.tgz#1dec5f2bf2cf7bc5043e9fcb391c9d6e24bb9bfe" |   resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.15.3.tgz#7608fb3cacc02ac75a62fc2d68b579f140b198dd" | ||||||
|   integrity sha512-lnje1uKu5XeM5MLvfbt1oygF+nEIZnpOM4Iu8bkx5ECD4XRYgi3SJDmolrp0EDxDHeK2GgFb+vEEK0hsZ9sjeA== |   integrity sha512-RSUEM4So3Tu2JHV0JsZ5Yje+4nz66YViMfPZoywxOy0xyn3L7tE2CHvJ7Y9LUsrTU7vGmZ5bwb8PpjnkatdIxg== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/runtime" "^7.14.5" |     "@babel/runtime" "^7.14.5" | ||||||
|     html-escaper "^2.0.2" |     html-escaper "^2.0.2" | ||||||
| @@ -5865,10 +6167,10 @@ react-native-base64@^0.2.1: | |||||||
|   resolved "https://registry.yarnpkg.com/react-native-base64/-/react-native-base64-0.2.1.tgz#3d0e73a649c4c0129f7b7695d3912456aebae847" |   resolved "https://registry.yarnpkg.com/react-native-base64/-/react-native-base64-0.2.1.tgz#3d0e73a649c4c0129f7b7695d3912456aebae847" | ||||||
|   integrity sha512-eHgt/MA8y5ZF0aHfZ1aTPcIkDWxza9AaEk4GcpIX+ZYfZ04RcaNahO+527KR7J44/mD3efYfM23O2C1N44ByWA== |   integrity sha512-eHgt/MA8y5ZF0aHfZ1aTPcIkDWxza9AaEk4GcpIX+ZYfZ04RcaNahO+527KR7J44/mD3efYfM23O2C1N44ByWA== | ||||||
|  |  | ||||||
| react-native-blurhash@1.1.7: | react-native-blurhash@1.1.8: | ||||||
|   version "1.1.7" |   version "1.1.8" | ||||||
|   resolved "https://registry.yarnpkg.com/react-native-blurhash/-/react-native-blurhash-1.1.7.tgz#6e94a5663d77615e4bcc3994f4b76e061247d05e" |   resolved "https://registry.yarnpkg.com/react-native-blurhash/-/react-native-blurhash-1.1.8.tgz#5f1e5fa25c58f8e084ddca02cb1a3e8ff713748f" | ||||||
|   integrity sha512-o9J6Vo59TtAQnXAtai7a7sAlT39DZn9H2OHkuuSzToa8HKjOJfuB1r/PDBd042hipeTHoAh5Z40bLrq6Aj70mQ== |   integrity sha512-BzkTeI1DQekA6QdEBSyD5iFZyT3y+WI6ljRiFPj8nhf3c5qAUJ2+8zaMP385D1oKleIDHk4nyfsUUECTq9nyLw== | ||||||
|  |  | ||||||
| react-native-clean-project@3.6.7: | react-native-clean-project@3.6.7: | ||||||
|   version "3.6.7" |   version "3.6.7" | ||||||
| @@ -6012,10 +6314,10 @@ react-native@0.66.4: | |||||||
|     whatwg-fetch "^3.0.0" |     whatwg-fetch "^3.0.0" | ||||||
|     ws "^6.1.4" |     ws "^6.1.4" | ||||||
|  |  | ||||||
| react-query@3.34.5: | react-query@3.34.7: | ||||||
|   version "3.34.5" |   version "3.34.7" | ||||||
|   resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.34.5.tgz#a145c02f58088c5c83c91697cece50e89b4dbfd8" |   resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.34.7.tgz#e3d71318f510ea354794cd188b351bb57f577cb9" | ||||||
|   integrity sha512-qk1hYo+y90LGY5W4kNEYT5yCk8gyL1fVTMoRZfzBTaSdaZWOcdvij36MmkhIqiPdXoEt5pBvX2ejokazwq8haw== |   integrity sha512-Q8+H2DgpoZdGUpwW2Z9WAbSrIE+yOdZiCUokHjlniOOmlcsfqNLgvHF5i7rtuCmlw3hv5OAhtpS7e97/DvgpWw== | ||||||
|   dependencies: |   dependencies: | ||||||
|     "@babel/runtime" "^7.5.5" |     "@babel/runtime" "^7.5.5" | ||||||
|     broadcast-channel "^3.4.1" |     broadcast-channel "^3.4.1" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user