Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Bump more Expo libs (#4251)

* Bump more Expo libs

* Use legacy camera API

* fix `expo-notifications` patch

* bump `menu`

* change patch name

* patch reanimated

* Revert "patch reanimated"

This reverts commit dad822d8ea04c71a609784114d60f2e67b78290b.

* Use nightly reanimated

* Revert "Use nightly reanimated"

This reverts commit 6687c7182883feb889cbf2c67dd14890e06bc501.

* Revert "Revert "patch reanimated""

This reverts commit c30abd6732f559ca04dc59698411e1058800d63e.

---------

Co-authored-by: Hailey <me@haileyok.com>

authored by

dan
Hailey
and committed by
GitHub
ff6a044f efdfb7f5

+290 -92
+11 -11
package.json
··· 70 70 "@radix-ui/react-dropdown-menu": "^2.0.6", 71 71 "@react-native-async-storage/async-storage": "1.23.1", 72 72 "@react-native-masked-view/masked-view": "0.3.0", 73 - "@react-native-menu/menu": "^0.8.0", 73 + "@react-native-menu/menu": "^1.1.0", 74 74 "@react-native-picker/picker": "2.6.1", 75 75 "@react-navigation/bottom-tabs": "^6.5.20", 76 76 "@react-navigation/drawer": "^6.6.15", ··· 114 114 "expo": "^51.0.8", 115 115 "expo-application": "^5.9.1", 116 116 "expo-build-properties": "^0.12.1", 117 - "expo-camera": "~14.1.3", 118 - "expo-clipboard": "^5.0.1", 119 - "expo-constants": "~15.4.6", 117 + "expo-camera": "~15.0.9", 118 + "expo-clipboard": "^6.0.3", 119 + "expo-constants": "~16.0.1", 120 120 "expo-dev-client": "^4.0.14", 121 - "expo-device": "~5.9.3", 122 - "expo-file-system": "^16.0.9", 123 - "expo-haptics": "^12.8.1", 121 + "expo-device": "~6.0.2", 122 + "expo-file-system": "^17.0.1", 123 + "expo-haptics": "^13.0.1", 124 124 "expo-image": "~1.12.9", 125 - "expo-image-manipulator": "^12.0.3", 126 - "expo-image-picker": "~15.0.4", 125 + "expo-image-manipulator": "^12.0.5", 126 + "expo-image-picker": "~15.0.5", 127 127 "expo-linear-gradient": "^13.0.2", 128 128 "expo-linking": "^6.3.1", 129 129 "expo-localization": "~15.0.3", 130 130 "expo-media-library": "~16.0.3", 131 131 "expo-navigation-bar": "~3.0.4", 132 - "expo-notifications": "~0.28.1", 132 + "expo-notifications": "~0.28.3", 133 133 "expo-sharing": "^12.0.1", 134 134 "expo-splash-screen": "~0.27.4", 135 135 "expo-status-bar": "~1.12.1", 136 136 "expo-system-ui": "~3.0.4", 137 137 "expo-task-manager": "~11.8.1", 138 - "expo-updates": "~0.25.11", 138 + "expo-updates": "~0.25.14", 139 139 "expo-web-browser": "~13.0.3", 140 140 "fast-text-encoding": "^1.0.6", 141 141 "history": "^5.3.0",
+22 -22
patches/expo-notifications+0.28.1.patch patches/expo-notifications+0.28.3.patch
··· 4 4 +++ b/node_modules/expo-notifications/android/build.gradle 5 5 @@ -32,6 +32,7 @@ dependencies { 6 6 api 'com.google.firebase:firebase-messaging:22.0.0' 7 - 7 + 8 8 api 'me.leolin:ShortcutBadger:1.1.22@aar' 9 9 + implementation project(':expo-background-notification-handler') 10 - 10 + 11 11 if (project.findProject(':expo-modules-test-core')) { 12 12 testImplementation project(':expo-modules-test-core') 13 13 diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java ··· 16 16 +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java 17 17 @@ -14,6 +14,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; 18 18 import expo.modules.notifications.notifications.model.NotificationContent; 19 - 19 + 20 20 public class JSONNotificationContentBuilder extends NotificationContent.Builder { 21 21 + private static final String CHANNEL_ID_KEY = "channelId"; 22 22 private static final String TITLE_KEY = "title"; 23 23 private static final String TEXT_KEY = "message"; 24 24 private static final String SUBTITLE_KEY = "subtitle"; 25 25 @@ -36,6 +37,7 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder 26 - 26 + 27 27 public NotificationContent.Builder setPayload(JSONObject payload) { 28 28 this.setTitle(getTitle(payload)) 29 29 + .setChannelId(getChannelId(payload)) ··· 33 33 @@ -60,6 +62,14 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder 34 34 return this; 35 35 } 36 - 36 + 37 37 + protected String getChannelId(JSONObject payload) { 38 38 + try { 39 39 + return payload.getString(CHANNEL_ID_KEY); ··· 46 46 try { 47 47 return payload.getString(TITLE_KEY); 48 48 diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java 49 - index f1fed19..166b34f 100644 49 + index f1fed19..80afe9e 100644 50 50 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java 51 51 +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java 52 52 @@ -20,6 +20,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; 53 53 * should be created using {@link NotificationContent.Builder}. 54 54 */ 55 55 public class NotificationContent implements Parcelable, Serializable { 56 - + private string mChannelId; 56 + + private String mChannelId; 57 57 private String mTitle; 58 58 private String mText; 59 59 private String mSubtitle; 60 60 @@ -50,6 +51,11 @@ public class NotificationContent implements Parcelable, Serializable { 61 61 } 62 62 }; 63 - 63 + 64 64 + @Nullable 65 65 + public String getChannelId() { 66 66 + return mTitle; ··· 71 71 return mTitle; 72 72 @@ -121,6 +127,7 @@ public class NotificationContent implements Parcelable, Serializable { 73 73 } 74 - 74 + 75 75 protected NotificationContent(Parcel in) { 76 76 + mChannelId = in.readString(); 77 77 mTitle = in.readString(); 78 78 mText = in.readString(); 79 79 mSubtitle = in.readString(); 80 80 @@ -146,6 +153,7 @@ public class NotificationContent implements Parcelable, Serializable { 81 - 81 + 82 82 @Override 83 83 public void writeToParcel(Parcel dest, int flags) { 84 84 + dest.writeString(mChannelId); ··· 87 87 dest.writeString(mSubtitle); 88 88 @@ -166,6 +174,7 @@ public class NotificationContent implements Parcelable, Serializable { 89 89 private static final long serialVersionUID = 397666843266836802L; 90 - 90 + 91 91 private void writeObject(java.io.ObjectOutputStream out) throws IOException { 92 92 + out.writeObject(mChannelId); 93 93 out.writeObject(mTitle); ··· 95 95 out.writeObject(mSubtitle); 96 96 @@ -190,6 +199,7 @@ public class NotificationContent implements Parcelable, Serializable { 97 97 } 98 - 98 + 99 99 private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { 100 100 + mChannelId = (String) in.readObject(); 101 101 mTitle = (String) in.readObject(); ··· 103 103 mSubtitle = (String) in.readObject(); 104 104 @@ -240,6 +250,7 @@ public class NotificationContent implements Parcelable, Serializable { 105 105 } 106 - 106 + 107 107 public static class Builder { 108 - + private string mChannelId; 108 + + private String mChannelId; 109 109 private String mTitle; 110 110 private String mText; 111 111 private String mSubtitle; 112 112 @@ -260,6 +271,11 @@ public class NotificationContent implements Parcelable, Serializable { 113 113 useDefaultVibrationPattern(); 114 114 } 115 - 115 + 116 116 + public Builder setChannelId(String channelId) { 117 117 + mChannelId = channelId; 118 118 + return this; ··· 122 122 mTitle = title; 123 123 return this; 124 124 @@ -336,6 +352,7 @@ public class NotificationContent implements Parcelable, Serializable { 125 - 125 + 126 126 public NotificationContent build() { 127 127 NotificationContent content = new NotificationContent(); 128 128 + content.mChannelId = mChannelId; ··· 134 134 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java 135 135 +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java 136 136 @@ -48,6 +48,10 @@ public class ExpoNotificationBuilder extends ChannelAwareNotificationBuilder { 137 - 137 + 138 138 NotificationContent content = getNotificationContent(); 139 - 139 + 140 140 + if (content.getChannelId() != null) { 141 141 + builder.setChannelId(content.getChannelId()); 142 142 + } 143 143 + 144 144 builder.setAutoCancel(content.isAutoDismiss()); 145 145 builder.setOngoing(content.isSticky()); 146 - 146 + 147 147 diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt 148 148 index 55b3a8d..1b99d5b 100644 149 149 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt ··· 158 158 import org.json.JSONObject 159 159 import java.lang.ref.WeakReference 160 160 import java.util.* 161 - 161 + 162 162 -open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate { 163 163 +open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate, BackgroundNotificationHandlerInterface { 164 164 companion object { ··· 166 166 // than by static properties. Fortunately, using weak references we can 167 167 @@ -89,12 +92,21 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM 168 168 fun getBackgroundTasks() = sBackgroundTaskConsumerReferences.values.mapNotNull { it.get() } 169 - 169 + 170 170 override fun onMessageReceived(remoteMessage: RemoteMessage) { 171 171 - NotificationsService.receive(context, createNotification(remoteMessage)) 172 172 - getBackgroundTasks().forEach { ··· 181 181 + } 182 182 } 183 183 } 184 - 184 + 185 185 + override fun showMessage(remoteMessage: RemoteMessage) { 186 186 + NotificationsService.receive(context, createNotification(remoteMessage)) 187 187 + }
patches/expo-notifications-0.27.6.patch.md patches/expo-notifications-0.28.3.patch.md
+209
patches/react-native-reanimated+3.11.0.patch
··· 1 + diff --git a/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts b/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts 2 + index 92ebe62..5f8207e 100644 3 + --- a/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts 4 + +++ b/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts 5 + @@ -96,7 +96,8 @@ export interface AnimatedComponentRef extends Component { 6 + export interface IAnimatedComponentInternal { 7 + _styles: StyleProps[] | null; 8 + _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>; 9 + - _viewTag: number; 10 + + _componentViewTag: number; 11 + + _eventViewTag: number; 12 + _isFirstRender: boolean; 13 + jestAnimatedStyle: { value: StyleProps }; 14 + _component: AnimatedComponentRef | HTMLElement | null; 15 + diff --git a/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx b/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx 16 + index 88b3fdf..2488ebc 100644 17 + --- a/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx 18 + +++ b/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx 19 + @@ -122,7 +122,8 @@ export function createAnimatedComponent( 20 + { 21 + _styles: StyleProps[] | null = null; 22 + _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>; 23 + - _viewTag = -1; 24 + + _componentViewTag = -1; 25 + + _eventViewTag = -1; 26 + _isFirstRender = true; 27 + jestAnimatedStyle: { value: StyleProps } = { value: {} }; 28 + _component: AnimatedComponentRef | HTMLElement | null = null; 29 + @@ -143,7 +144,8 @@ export function createAnimatedComponent( 30 + } 31 + 32 + componentDidMount() { 33 + - this._viewTag = this._getViewInfo().viewTag as number; 34 + + this._setComponentViewTag(); 35 + + this._setEventViewTag(); 36 + this._attachNativeEvents(); 37 + this._jsPropsUpdater.addOnJSPropsChangeListener(this); 38 + this._attachAnimatedStyles(); 39 + @@ -185,7 +187,10 @@ export function createAnimatedComponent( 40 + if (this.props.sharedTransitionTag) { 41 + this._configureSharedTransition(true); 42 + } 43 + - this._sharedElementTransition?.unregisterTransition(this._viewTag, true); 44 + + this._sharedElementTransition?.unregisterTransition( 45 + + this._componentViewTag, 46 + + true 47 + + ); 48 + 49 + const exiting = this.props.exiting; 50 + if ( 51 + @@ -209,7 +214,7 @@ export function createAnimatedComponent( 52 + : getReduceMotionFromConfig(); 53 + if (!reduceMotionInExiting) { 54 + updateLayoutAnimations( 55 + - this._viewTag, 56 + + this._componentViewTag, 57 + LayoutAnimationType.EXITING, 58 + maybeBuild( 59 + exiting, 60 + @@ -221,12 +226,22 @@ export function createAnimatedComponent( 61 + } 62 + } 63 + 64 + - _getEventViewRef() { 65 + - // Make sure to get the scrollable node for components that implement 66 + - // `ScrollResponder.Mixin`. 67 + - return (this._component as AnimatedComponentRef)?.getScrollableNode 68 + - ? (this._component as AnimatedComponentRef).getScrollableNode?.() 69 + - : this._component; 70 + + _setComponentViewTag() { 71 + + this._componentViewTag = this._getViewInfo().viewTag as number; 72 + + } 73 + + 74 + + _setEventViewTag() { 75 + + // Setting the tag for registering events - since the event emitting view can be nested inside the main component 76 + + const componentAnimatedRef = this._component as AnimatedComponentRef; 77 + + if (componentAnimatedRef.getScrollableNode) { 78 + + const scrollableNode = componentAnimatedRef.getScrollableNode(); 79 + + this._eventViewTag = findNodeHandle(scrollableNode) ?? -1; 80 + + } else { 81 + + this._eventViewTag = 82 + + findNodeHandle( 83 + + options?.setNativeProps ? this : componentAnimatedRef 84 + + ) ?? -1; 85 + + } 86 + } 87 + 88 + _attachNativeEvents() { 89 + @@ -236,7 +251,7 @@ export function createAnimatedComponent( 90 + has('workletEventHandler', prop) && 91 + prop.workletEventHandler instanceof WorkletEventHandler 92 + ) { 93 + - prop.workletEventHandler.registerForEvents(this._viewTag, key); 94 + + prop.workletEventHandler.registerForEvents(this._eventViewTag, key); 95 + } 96 + } 97 + } 98 + @@ -248,7 +263,7 @@ export function createAnimatedComponent( 99 + has('workletEventHandler', prop) && 100 + prop.workletEventHandler instanceof WorkletEventHandler 101 + ) { 102 + - prop.workletEventHandler.unregisterFromEvents(this._viewTag); 103 + + prop.workletEventHandler.unregisterFromEvents(this._eventViewTag); 104 + } 105 + } 106 + } 107 + @@ -258,15 +273,17 @@ export function createAnimatedComponent( 108 + for (const style of this._styles) { 109 + style.viewsRef.remove(this); 110 + } 111 + - } else if (this._viewTag !== -1 && this._styles !== null) { 112 + + } else if (this._componentViewTag !== -1 && this._styles !== null) { 113 + for (const style of this._styles) { 114 + - style.viewDescriptors.remove(this._viewTag); 115 + + style.viewDescriptors.remove(this._componentViewTag); 116 + } 117 + if (this.props.animatedProps?.viewDescriptors) { 118 + - this.props.animatedProps.viewDescriptors.remove(this._viewTag); 119 + + this.props.animatedProps.viewDescriptors.remove( 120 + + this._componentViewTag 121 + + ); 122 + } 123 + if (isFabric()) { 124 + - removeFromPropsRegistry(this._viewTag); 125 + + removeFromPropsRegistry(this._componentViewTag); 126 + } 127 + } 128 + } 129 + @@ -283,15 +300,19 @@ export function createAnimatedComponent( 130 + const newProp = this.props[key]; 131 + if (!newProp) { 132 + // Prop got deleted 133 + - prevProp.workletEventHandler.unregisterFromEvents(this._viewTag); 134 + + prevProp.workletEventHandler.unregisterFromEvents( 135 + + this._eventViewTag 136 + + ); 137 + } else if ( 138 + has('workletEventHandler', newProp) && 139 + newProp.workletEventHandler instanceof WorkletEventHandler && 140 + newProp.workletEventHandler !== prevProp.workletEventHandler 141 + ) { 142 + // Prop got changed 143 + - prevProp.workletEventHandler.unregisterFromEvents(this._viewTag); 144 + - newProp.workletEventHandler.registerForEvents(this._viewTag); 145 + + prevProp.workletEventHandler.unregisterFromEvents( 146 + + this._eventViewTag 147 + + ); 148 + + newProp.workletEventHandler.registerForEvents(this._eventViewTag); 149 + } 150 + } 151 + } 152 + @@ -304,7 +325,7 @@ export function createAnimatedComponent( 153 + !prevProps[key] 154 + ) { 155 + // Prop got added 156 + - newProp.workletEventHandler.registerForEvents(this._viewTag); 157 + + newProp.workletEventHandler.registerForEvents(this._eventViewTag); 158 + } 159 + } 160 + } 161 + @@ -381,7 +402,7 @@ export function createAnimatedComponent( 162 + adaptViewConfig(viewConfig); 163 + } 164 + 165 + - this._viewTag = viewTag as number; 166 + + this._componentViewTag = viewTag as number; 167 + 168 + // remove old styles 169 + if (prevStyles) { 170 + @@ -487,7 +508,11 @@ export function createAnimatedComponent( 171 + AnimatedComponent.displayName 172 + ) 173 + : undefined; 174 + - updateLayoutAnimations(this._viewTag, LayoutAnimationType.LAYOUT, layout); 175 + + updateLayoutAnimations( 176 + + this._componentViewTag, 177 + + LayoutAnimationType.LAYOUT, 178 + + layout 179 + + ); 180 + } 181 + 182 + _configureSharedTransition(isUnmounting = false) { 183 + @@ -497,7 +522,7 @@ export function createAnimatedComponent( 184 + const { sharedTransitionTag } = this.props; 185 + if (!sharedTransitionTag) { 186 + this._sharedElementTransition?.unregisterTransition( 187 + - this._viewTag, 188 + + this._componentViewTag, 189 + isUnmounting 190 + ); 191 + this._sharedElementTransition = null; 192 + @@ -508,7 +533,7 @@ export function createAnimatedComponent( 193 + this._sharedElementTransition ?? 194 + new SharedTransition(); 195 + sharedElementTransition.registerTransition( 196 + - this._viewTag, 197 + + this._componentViewTag, 198 + sharedTransitionTag, 199 + isUnmounting 200 + ); 201 + @@ -527,7 +552,7 @@ export function createAnimatedComponent( 202 + ? (ref as HTMLElement) 203 + : findNodeHandle(ref as Component); 204 + 205 + - this._viewTag = tag as number; 206 + + this._componentViewTag = tag as number; 207 + 208 + const { layout, entering, exiting, sharedTransitionTag } = this.props; 209 + if ( 1 210 diff --git a/node_modules/react-native-reanimated/lib/module/reanimated2/index.js b/node_modules/react-native-reanimated/lib/module/reanimated2/index.js 2 211 index ac9be5d..86d4605 100644 3 212 --- a/node_modules/react-native-reanimated/lib/module/reanimated2/index.js
+3 -2
src/lib/hooks/usePermissions.ts
··· 1 - import {Camera} from 'expo-camera' 1 + import {Linking} from 'react-native' 2 + import {Camera} from 'expo-camera/legacy' // TODO: Migrate to the new one. 2 3 import * as MediaLibrary from 'expo-media-library' 3 - import {Linking} from 'react-native' 4 + 4 5 import {isWeb} from 'platform/detection' 5 6 import {Alert} from 'view/com/util/Alert' 6 7
+45 -57
yarn.lock
··· 3572 3572 p-limit "^3.1.0" 3573 3573 resolve-from "^5.0.0" 3574 3574 3575 - "@expo/fingerprint@^0.7.0": 3576 - version "0.7.1" 3577 - resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.7.1.tgz#5778c79f6be2471b4c703381e26e9ee0691fa8c6" 3578 - integrity sha512-lbTwFiIk0lOm9zzPRvnC45GfPqXqPB3w4hDDKVma+8FDAbPCWhNN42ltLhx/ekwcHFQxURmg0fHm59k0Vy+jtw== 3575 + "@expo/fingerprint@^0.8.0": 3576 + version "0.8.0" 3577 + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.8.0.tgz#631a64c5db23e121228546502ae6a0eeab19aaf7" 3578 + integrity sha512-LBNweJnpG16p7SbvFGINF5Q44bDErIcm1li9SuvYQgrrSey3ErIPmZsiMsNBxlvVie6eTp4wmFO6IFmeaqEhbg== 3579 3579 dependencies: 3580 3580 "@expo/spawn-async" "^1.7.2" 3581 3581 chalk "^4.1.2" ··· 5482 5482 resolved "https://registry.yarnpkg.com/@react-native-masked-view/masked-view/-/masked-view-0.3.0.tgz#bd29fae18d148a685331910a3c7b766ce87eafcc" 5483 5483 integrity sha512-qLyoObcjzrkpNcoJjXquUePXfL1dXjHtuv+yX0zZ0Q4kG5yvVqd620+tSh7WbRoHkjpXhFBfLwvGhcWB2I0Lpw== 5484 5484 5485 - "@react-native-menu/menu@^0.8.0": 5486 - version "0.8.0" 5487 - resolved "https://registry.yarnpkg.com/@react-native-menu/menu/-/menu-0.8.0.tgz#dbf227c2081e5ffd3d2073ee68ecc84cf8639727" 5488 - integrity sha512-kxiT6ySZsDbBvNWovrKVAfs4AQvAytKIf0f8KQLkVO6eNYMUmONBQPzi6onTTbVujXtZHambo7qr/PcedaR8Tg== 5485 + "@react-native-menu/menu@^1.1.0": 5486 + version "1.1.0" 5487 + resolved "https://registry.yarnpkg.com/@react-native-menu/menu/-/menu-1.1.0.tgz#e89c0850f7e5aa4c671c44a9c10edafadb23c35a" 5488 + integrity sha512-vf9zp0M4nbAFnSKz5NJYKUPM5UzXWmLyGcjtuPaKWYxxloz9C0Pp6XdZRJnoOSlfRShE8NksX3bVY8W4wGnlCQ== 5489 5489 5490 5490 "@react-native-picker/picker@2.6.1": 5491 5491 version "2.6.1" ··· 12063 12063 ajv "^8.11.0" 12064 12064 semver "^7.6.0" 12065 12065 12066 - expo-camera@~14.1.3: 12067 - version "14.1.3" 12068 - resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.1.3.tgz#c3b36c7ed28613e7423b6c4df192549f4f9ee0dd" 12069 - integrity sha512-JodpVjOY8JDuSp/RkphS8Bxqaj/gwg0h0UbQB9MLr1LoxbL9brvJt7IZnmTf7+ON8jRKUx9E5o/F02pRNbmSbQ== 12066 + expo-camera@~15.0.9: 12067 + version "15.0.9" 12068 + resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-15.0.9.tgz#a6a175638bdd9914aca061c6090001452329fcea" 12069 + integrity sha512-xH+y8gA/3rNLostIw+z4kDGA+AYzsI9+QYb7G1uCFyxr3SxUGhapz+oMBFDU++vmyo9G7Ax0n52nghqIrNBJxQ== 12070 12070 dependencies: 12071 12071 invariant "^2.2.4" 12072 12072 12073 - expo-clipboard@^5.0.1: 12074 - version "5.0.1" 12075 - resolved "https://registry.yarnpkg.com/expo-clipboard/-/expo-clipboard-5.0.1.tgz#a62a021a9444740d180d60f915cca8242a323716" 12076 - integrity sha512-JH853QJPr5W3h87If3aDTnMK+ESSIrwzU2TdfZrqZttVDY2pMIf/w37mVHHNYodXM4ATHXadtOkjKbAa0DWwUg== 12073 + expo-clipboard@^6.0.3: 12074 + version "6.0.3" 12075 + resolved "https://registry.yarnpkg.com/expo-clipboard/-/expo-clipboard-6.0.3.tgz#dfea74d4a004dce59ecefd063d6fb9f1c356a03f" 12076 + integrity sha512-RIKDsuHkYfaspifbFpVC8sBVFKR05L7Pj7mU2/XkbrW9m01OBNvdpGraXEMsTFCx97xMGsZpEw9pPquL4j4xVg== 12077 12077 12078 12078 expo-constants@^13.0.2: 12079 12079 version "13.2.4" ··· 12083 12083 "@expo/config" "~7.0.0" 12084 12084 uuid "^3.3.2" 12085 12085 12086 - expo-constants@~15.4.6: 12087 - version "15.4.6" 12088 - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.6.tgz#d4e9b21b70c5602457962700f2e90a75356b487b" 12089 - integrity sha512-vizE69dww2Vl0PTWWvDmK0Jo2/J+WzdcMZlA05YEnEYofQuhKxTVsiuipf79mSOmFavt4UQYC1UnzptzKyfmiQ== 12090 - dependencies: 12091 - "@expo/config" "~8.5.0" 12092 - 12093 - expo-constants@~16.0.0: 12086 + expo-constants@~16.0.0, expo-constants@~16.0.1: 12094 12087 version "16.0.1" 12095 12088 resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-16.0.1.tgz#1285e29c85513c6e88e118289e2baab72596d3f7" 12096 12089 integrity sha512-s6aTHtglp926EsugWtxN7KnpSsE9FCEjb7CgEjQQ78Gpu4btj4wB+IXot2tlqNwqv+x7xFe5veoPGfJDGF/kVg== ··· 12139 12132 dependencies: 12140 12133 ua-parser-js "^0.7.19" 12141 12134 12142 - expo-device@~5.9.3: 12143 - version "5.9.4" 12144 - resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.4.tgz#7dc8ba3695e1c0891bbc840a255faac479310c08" 12145 - integrity sha512-nleq3GghLWWJrj4YH8HiCumnTF/gy4zRd3jedCkO8lMKQg6R1yn3v0ch8NtgPDci749FkNzOtXx/vmFImQalwg== 12135 + expo-device@~6.0.2: 12136 + version "6.0.2" 12137 + resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-6.0.2.tgz#9bc3eccd16509c2819c225cc2ca8f7c3e3bdd11e" 12138 + integrity sha512-sCt91CuTmAuMXX4SlFOn4lIos2UIr8vb0jDstDDZXys6kErcj0uynC7bQAMreU5uRUTKMAl4MAMpKt9ufCXPBw== 12146 12139 dependencies: 12147 12140 ua-parser-js "^0.7.33" 12148 12141 ··· 12151 12144 resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.12.0.tgz#e8b6f7d33873e6f630f37f7bfc41646ae7b0b2a9" 12152 12145 integrity sha512-Jkww9Cwpv0z7DdLYiRX0r4fqBEcI9cKqTn7cHx63S09JaZ2rcwEE4zYHgrXwjahO+tU2VW8zqH+AJl6RhhW4zA== 12153 12146 12154 - expo-file-system@^16.0.9: 12155 - version "16.0.9" 12156 - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.9.tgz#cbd6c4b228b60a6b6c71fd1b91fe57299fb24da7" 12157 - integrity sha512-3gRPvKVv7/Y7AdD9eHMIdfg5YbUn2zbwKofjsloTI5sEC57SLUFJtbLvUCz9Pk63DaSQ7WIE1JM0EASyvuPbuw== 12158 - 12159 - expo-file-system@~17.0.1: 12147 + expo-file-system@^17.0.1, expo-file-system@~17.0.1: 12160 12148 version "17.0.1" 12161 12149 resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-17.0.1.tgz#b9f8af8c1c06ec71d96fd7a0d2567fa9e1c88f15" 12162 12150 integrity sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw== ··· 12168 12156 dependencies: 12169 12157 fontfaceobserver "^2.1.0" 12170 12158 12171 - expo-haptics@^12.8.1: 12172 - version "12.8.1" 12173 - resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-12.8.1.tgz#42b996763be33d661bd33bbc3b3958c3f2734b9d" 12174 - integrity sha512-ntLsHkfle8K8w9MW8pZEw92ZN3sguaGUSSIxv30fPKNeQFu7Cq/h47Qv3tONv2MO3wU48N9FbKnant6XlfptpA== 12159 + expo-haptics@^13.0.1: 12160 + version "13.0.1" 12161 + resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-13.0.1.tgz#35679c7fde4ae1c21ae3bc2d2cb34c266049dc2c" 12162 + integrity sha512-qG0EOLDE4bROVT3DtUSyV9g3iB3YFu9j3711X7SNNEnBDXc+2/p3wGDPTnJvPW0ao6HG3/McAOrBQA5hVSdWng== 12175 12163 12176 12164 expo-image-loader@~4.7.0: 12177 12165 version "4.7.0" 12178 12166 resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.7.0.tgz#d403106822de80bda12d644c82b7a3b7983c0f0b" 12179 12167 integrity sha512-cx+MxxsAMGl9AiWnQUzrkJMJH4eNOGlu7XkLGnAXSJrRoIiciGaKqzeaD326IyCTV+Z1fXvIliSgNW+DscvD8g== 12180 12168 12181 - expo-image-manipulator@^12.0.3: 12182 - version "12.0.3" 12183 - resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-12.0.3.tgz#797fda98f606a65c6be9d2c0f53256f3fb3f798c" 12184 - integrity sha512-gosW32roHbXRKPiBVbQDFpxaZf8sjOJ9aaqbe085Qfcenvvr1lNFMx9M9BFYhAoKd23oEWlyvNHDnAayV4gAFA== 12169 + expo-image-manipulator@^12.0.5: 12170 + version "12.0.5" 12171 + resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-12.0.5.tgz#e3dd2810d27025705f73523cd4ba47b0d091a662" 12172 + integrity sha512-zJ8yINjckYw/yfoSuICt4yJ9xr112+W9e5QVXwK3nCAHr7sv45RQ5sxte0qppf594TPl+UoV6Tjim7WpoKipRQ== 12185 12173 dependencies: 12186 12174 expo-image-loader "~4.7.0" 12187 12175 12188 - expo-image-picker@~15.0.4: 12189 - version "15.0.4" 12190 - resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-15.0.4.tgz#b01121b26c88ee14bf49133160e408c1e7972b4d" 12191 - integrity sha512-Jo78o3DQfqpYC4fsnayxTEVGDFSbaNMwx5gQ2PPlEYMK5AmD5qexQjxhlxM1mZ0e1xkJKJfN7XEdcf53jW9vIg== 12176 + expo-image-picker@~15.0.5: 12177 + version "15.0.5" 12178 + resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-15.0.5.tgz#8a3d4c3ecdb5bcf58f09e024597dd69edf7baa9c" 12179 + integrity sha512-Qqp16udsadx/YpNcNaWzfbmO0tbMxyX9bS1aFiDVC+Zffh8LY8S4HJJcnWqSC2TeuAl+9SxUwTloJagvPeMBBw== 12192 12180 dependencies: 12193 12181 expo-image-loader "~4.7.0" 12194 12182 ··· 12268 12256 "@react-native/normalize-colors" "~0.74.83" 12269 12257 debug "^4.3.2" 12270 12258 12271 - expo-notifications@~0.28.1: 12272 - version "0.28.1" 12273 - resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.28.1.tgz#9152cb17100ce72b66f2bf642fb097c3ae2d2019" 12274 - integrity sha512-qBVcq3lc+FIvcYt/8M+JB1c60g0hVuyGY4MVGTY56ciU6nMOCiBiz4XPc3DeiZA16jVtfriooWA26wqBkQfkHg== 12259 + expo-notifications@~0.28.3: 12260 + version "0.28.3" 12261 + resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.28.3.tgz#9076c2bd69c3de3338a2e2161c8bd5f18cb440cb" 12262 + integrity sha512-Xaj82eQUJzJXa8+giZr708ih86GGtkGS8N01epoiDkTKC8Z9783UJ8Pf8+PSFSfHsY3Sd8TJpQrD9n7QnGHwGQ== 12275 12263 dependencies: 12276 12264 "@expo/image-utils" "^0.5.0" 12277 12265 "@ide/backoff" "^1.0.0" ··· 12334 12322 resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz#ad1ac2ca8ee5a8cc84052ea3c18a11da64da569b" 12335 12323 integrity sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A== 12336 12324 12337 - expo-updates@~0.25.11: 12338 - version "0.25.11" 12339 - resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.25.11.tgz#a477139cfd5f67c7b5fdf41eba3f6dad471eeb14" 12340 - integrity sha512-ZO+e6bLsEBMz+JdEOlJXGf+3w606si7zKKEEzkwDQWJWP20W0WQAG+MDYgTEgxQboc+jTC+T0MvvOvkVb8cFIQ== 12325 + expo-updates@~0.25.14: 12326 + version "0.25.14" 12327 + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.25.14.tgz#d0838780d0fa91558df72ca0f8b25b02466da11c" 12328 + integrity sha512-taYa6Q/882MxPaMZEoU0Tr4Ivtq0B0XUmCgj7GcKv0pDDhB7vuQ4uxXhWYn5udX+nJM0KH+dtEVFNVyeucVArg== 12341 12329 dependencies: 12342 12330 "@expo/code-signing-certificates" "0.0.5" 12343 - "@expo/config" "~9.0.0-beta.0" 12344 - "@expo/config-plugins" "~8.0.0-beta.0" 12345 - "@expo/fingerprint" "^0.7.0" 12331 + "@expo/config" "~9.0.0" 12332 + "@expo/config-plugins" "~8.0.0" 12333 + "@expo/fingerprint" "^0.8.0" 12346 12334 "@expo/spawn-async" "^1.7.2" 12347 12335 arg "4.1.0" 12348 12336 chalk "^4.1.2"