mirror of
https://github.com/urosran/cally.git
synced 2025-11-26 08:24:55 +00:00
NOtification update
This commit is contained in:
@ -17,9 +17,11 @@
|
|||||||
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="default"/>
|
<meta-data android:name="com.google.firebase.messaging.default_notification_channel_id" android:value="default"/>
|
||||||
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/notification_icon_color"/>
|
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/notification_icon_color"/>
|
||||||
<meta-data android:name="expo.modules.notifications.default_notification_color" android:resource="@color/notification_icon_color"/>
|
<meta-data android:name="expo.modules.notifications.default_notification_color" android:resource="@color/notification_icon_color"/>
|
||||||
<meta-data android:name="expo.modules.updates.ENABLED" android:value="false"/>
|
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
|
||||||
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
|
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
|
||||||
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
|
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
|
||||||
|
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://u.expo.dev/bdb8c57b-25bb-4d36-b3b8-5b09c5092f52"/>
|
||||||
|
<meta-data android:name="expo.modules.updates.EXPO_RUNTIME_VERSION" android:value="@string/expo_runtime_version"/>
|
||||||
<activity android:name=".MainActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait">
|
<activity android:name=".MainActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<action android:name="android.intent.action.MAIN"/>
|
||||||
|
|||||||
@ -3,4 +3,5 @@
|
|||||||
<string name="expo_splash_screen_resize_mode" translatable="false">contain</string>
|
<string name="expo_splash_screen_resize_mode" translatable="false">contain</string>
|
||||||
<string name="expo_splash_screen_status_bar_translucent" translatable="false">false</string>
|
<string name="expo_splash_screen_status_bar_translucent" translatable="false">false</string>
|
||||||
<string name="expo_system_ui_user_interface_style" translatable="false">light</string>
|
<string name="expo_system_ui_user_interface_style" translatable="false">light</string>
|
||||||
|
<string name="expo_runtime_version">1.0.0</string>
|
||||||
</resources>
|
</resources>
|
||||||
10
app.json
10
app.json
@ -24,7 +24,11 @@
|
|||||||
"backgroundColor": "#ffffff"
|
"backgroundColor": "#ffffff"
|
||||||
},
|
},
|
||||||
"package": "com.cally.app",
|
"package": "com.cally.app",
|
||||||
"googleServicesFile": "./android/app/google-services.json"
|
"googleServicesFile": "./android/app/google-services.json",
|
||||||
|
"permissions": [
|
||||||
|
"android.permission.CAMERA",
|
||||||
|
"android.permission.RECORD_AUDIO"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"web": {
|
"web": {
|
||||||
"bundler": "metro",
|
"bundler": "metro",
|
||||||
@ -70,6 +74,10 @@
|
|||||||
"eas": {
|
"eas": {
|
||||||
"projectId": "bdb8c57b-25bb-4d36-b3b8-5b09c5092f52"
|
"projectId": "bdb8c57b-25bb-4d36-b3b8-5b09c5092f52"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"runtimeVersion": "1.0.0",
|
||||||
|
"updates": {
|
||||||
|
"url": "https://u.expo.dev/bdb8c57b-25bb-4d36-b3b8-5b09c5092f52"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
eas.json
10
eas.json
@ -5,12 +5,16 @@
|
|||||||
"build": {
|
"build": {
|
||||||
"development": {
|
"development": {
|
||||||
"developmentClient": true,
|
"developmentClient": true,
|
||||||
"distribution": "internal"
|
"distribution": "internal",
|
||||||
|
"channel": "development"
|
||||||
},
|
},
|
||||||
"preview": {
|
"preview": {
|
||||||
"distribution": "internal"
|
"distribution": "internal",
|
||||||
|
"channel": "preview"
|
||||||
},
|
},
|
||||||
"production": {}
|
"production": {
|
||||||
|
"channel": "production"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"submit": {
|
"submit": {
|
||||||
"production": {
|
"production": {
|
||||||
|
|||||||
@ -16,8 +16,14 @@ exports.sendNotificationOnEventCreation = functions.firestore
|
|||||||
.document('Events/{eventId}')
|
.document('Events/{eventId}')
|
||||||
.onCreate(async (snapshot, context) => {
|
.onCreate(async (snapshot, context) => {
|
||||||
const eventData = snapshot.data();
|
const eventData = snapshot.data();
|
||||||
|
const { familyId, creatorId } = eventData;
|
||||||
|
|
||||||
const pushTokens = await getPushTokensForEvent(eventData);
|
if (!familyId || !creatorId) {
|
||||||
|
console.error('Missing familyId or creatorId in event data');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const pushTokens = await getPushTokensForFamilyExcludingCreator(familyId, creatorId);
|
||||||
|
|
||||||
if (!pushTokens.length) {
|
if (!pushTokens.length) {
|
||||||
console.log('No push tokens available for the event.');
|
console.log('No push tokens available for the event.');
|
||||||
@ -36,7 +42,7 @@ exports.sendNotificationOnEventCreation = functions.firestore
|
|||||||
sound: 'default',
|
sound: 'default',
|
||||||
title: 'New Event Added!',
|
title: 'New Event Added!',
|
||||||
body: `An event "${eventData.title}" has been added. Check it out!`,
|
body: `An event "${eventData.title}" has been added. Check it out!`,
|
||||||
data: {eventId: context.params.eventId},
|
data: { eventId: context.params.eventId },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,7 +51,6 @@ exports.sendNotificationOnEventCreation = functions.firestore
|
|||||||
for (let chunk of chunks) {
|
for (let chunk of chunks) {
|
||||||
try {
|
try {
|
||||||
let ticketChunk = await expo.sendPushNotificationsAsync(chunk);
|
let ticketChunk = await expo.sendPushNotificationsAsync(chunk);
|
||||||
|
|
||||||
tickets.push(...ticketChunk);
|
tickets.push(...ticketChunk);
|
||||||
|
|
||||||
for (let ticket of ticketChunk) {
|
for (let ticket of ticketChunk) {
|
||||||
@ -53,7 +58,6 @@ exports.sendNotificationOnEventCreation = functions.firestore
|
|||||||
console.log('Notification successfully sent:', ticket.id);
|
console.log('Notification successfully sent:', ticket.id);
|
||||||
} else if (ticket.status === 'error') {
|
} else if (ticket.status === 'error') {
|
||||||
console.error(`Notification error: ${ticket.message}`);
|
console.error(`Notification error: ${ticket.message}`);
|
||||||
|
|
||||||
if (ticket.details && ticket.details.error) {
|
if (ticket.details && ticket.details.error) {
|
||||||
console.error('Error details:', ticket.details.error);
|
console.error('Error details:', ticket.details.error);
|
||||||
if (ticket.details.error === 'DeviceNotRegistered') {
|
if (ticket.details.error === 'DeviceNotRegistered') {
|
||||||
@ -63,12 +67,12 @@ exports.sendNotificationOnEventCreation = functions.firestore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error sending notification:', error);
|
console.error('Error sending notification:', error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Retrieve and handle notification receipts
|
||||||
let receiptIds = [];
|
let receiptIds = [];
|
||||||
for (let ticket of tickets) {
|
for (let ticket of tickets) {
|
||||||
if (ticket.id) {
|
if (ticket.id) {
|
||||||
@ -84,7 +88,6 @@ exports.sendNotificationOnEventCreation = functions.firestore
|
|||||||
|
|
||||||
for (let receiptId in receipts) {
|
for (let receiptId in receipts) {
|
||||||
let { status, message, details } = receipts[receiptId];
|
let { status, message, details } = receipts[receiptId];
|
||||||
|
|
||||||
if (status === 'ok') {
|
if (status === 'ok') {
|
||||||
console.log(`Notification with receipt ID ${receiptId} was delivered successfully`);
|
console.log(`Notification with receipt ID ${receiptId} was delivered successfully`);
|
||||||
} else if (status === 'error') {
|
} else if (status === 'error') {
|
||||||
@ -99,7 +102,6 @@ exports.sendNotificationOnEventCreation = functions.firestore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -207,3 +209,18 @@ async function getPushTokensForEvent() {
|
|||||||
return pushTokens;
|
return pushTokens;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getPushTokensForFamilyExcludingCreator(familyId, creatorId) {
|
||||||
|
const usersRef = db.collection('Profiles');
|
||||||
|
const snapshot = await usersRef.where('familyId', '==', familyId).get();
|
||||||
|
let pushTokens = [];
|
||||||
|
|
||||||
|
snapshot.forEach(doc => {
|
||||||
|
const data = doc.data();
|
||||||
|
// Exclude the creator
|
||||||
|
if (data.uid !== creatorId && data.pushToken) {
|
||||||
|
pushTokens.push(data.pushToken);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return pushTokens;
|
||||||
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import firestore from "@react-native-firebase/firestore";
|
|||||||
import { EventData } from "@/hooks/firebase/types/eventData";
|
import { EventData } from "@/hooks/firebase/types/eventData";
|
||||||
|
|
||||||
export const useCreateEvent = () => {
|
export const useCreateEvent = () => {
|
||||||
const {user: currentUser} = useAuthContext()
|
const {user: currentUser, profileData} = useAuthContext()
|
||||||
const queryClients = useQueryClient()
|
const queryClients = useQueryClient()
|
||||||
|
|
||||||
return useMutation({
|
return useMutation({
|
||||||
@ -14,7 +14,7 @@ export const useCreateEvent = () => {
|
|||||||
console.log("CALLLLL")
|
console.log("CALLLLL")
|
||||||
await firestore()
|
await firestore()
|
||||||
.collection("Events")
|
.collection("Events")
|
||||||
.add({...eventData, creatorId: currentUser?.uid})
|
.add({...eventData, creatorId: currentUser?.uid, familyId: profileData?.familyId})
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -86,6 +86,9 @@
|
|||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER).expo.index_route</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UILaunchStoryboardName</key>
|
<key>UILaunchStoryboardName</key>
|
||||||
<string>SplashScreen</string>
|
<string>SplashScreen</string>
|
||||||
|
|||||||
@ -5,8 +5,12 @@
|
|||||||
<key>EXUpdatesCheckOnLaunch</key>
|
<key>EXUpdatesCheckOnLaunch</key>
|
||||||
<string>ALWAYS</string>
|
<string>ALWAYS</string>
|
||||||
<key>EXUpdatesEnabled</key>
|
<key>EXUpdatesEnabled</key>
|
||||||
<false/>
|
<true/>
|
||||||
<key>EXUpdatesLaunchWaitMs</key>
|
<key>EXUpdatesLaunchWaitMs</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
|
<key>EXUpdatesRuntimeVersion</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>EXUpdatesURL</key>
|
||||||
|
<string>https://u.expo.dev/bdb8c57b-25bb-4d36-b3b8-5b09c5092f52</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
@ -19,7 +19,7 @@
|
|||||||
"lint": "expo lint",
|
"lint": "expo lint",
|
||||||
"submit": "npx eas-cli submit -p ios",
|
"submit": "npx eas-cli submit -p ios",
|
||||||
"prebuild": "npx expo prebuild -p ios",
|
"prebuild": "npx expo prebuild -p ios",
|
||||||
"prebuild-build-submit-ios": "npm run prebuild && npm run build-ios && npm run submit",
|
"prebuild-build-submit-ios": "yarn run prebuild && yarn run build-ios && yarn run submit",
|
||||||
"prebuild-build-submit-ios-cicd": "yarn build-ios-cicd",
|
"prebuild-build-submit-ios-cicd": "yarn build-ios-cicd",
|
||||||
"prebuild-build-submit-cicd": "yarn build-cicd"
|
"prebuild-build-submit-cicd": "yarn build-cicd"
|
||||||
},
|
},
|
||||||
@ -55,6 +55,7 @@
|
|||||||
"expo-splash-screen": "~0.27.5",
|
"expo-splash-screen": "~0.27.5",
|
||||||
"expo-status-bar": "~1.12.1",
|
"expo-status-bar": "~1.12.1",
|
||||||
"expo-system-ui": "~3.0.7",
|
"expo-system-ui": "~3.0.7",
|
||||||
|
"expo-updates": "~0.25.27",
|
||||||
"expo-web-browser": "~13.0.3",
|
"expo-web-browser": "~13.0.3",
|
||||||
"firebase-admin": "^12.3.1",
|
"firebase-admin": "^12.3.1",
|
||||||
"firebase-functions": "^5.1.0",
|
"firebase-functions": "^5.1.0",
|
||||||
|
|||||||
52
yarn.lock
52
yarn.lock
@ -1018,6 +1018,20 @@
|
|||||||
dotenv-expand "~11.0.6"
|
dotenv-expand "~11.0.6"
|
||||||
getenv "^1.0.0"
|
getenv "^1.0.0"
|
||||||
|
|
||||||
|
"@expo/fingerprint@^0.10.2":
|
||||||
|
version "0.10.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.10.3.tgz#87c2811fe7773ec7d00cae86ab041d578f9041b5"
|
||||||
|
integrity sha512-h/BnnyloJyMSrzeXonKLE6HfiMpRg3e9m8CAv+eUaAozG9heKMG9ftHW4cfm2StDYj/rWjFc5YK6MSIX6qd+xg==
|
||||||
|
dependencies:
|
||||||
|
"@expo/spawn-async" "^1.7.2"
|
||||||
|
chalk "^4.1.2"
|
||||||
|
debug "^4.3.4"
|
||||||
|
find-up "^5.0.0"
|
||||||
|
minimatch "^3.0.4"
|
||||||
|
p-limit "^3.1.0"
|
||||||
|
resolve-from "^5.0.0"
|
||||||
|
semver "^7.6.0"
|
||||||
|
|
||||||
"@expo/image-utils@^0.5.0":
|
"@expo/image-utils@^0.5.0":
|
||||||
version "0.5.1"
|
version "0.5.1"
|
||||||
resolved "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz"
|
resolved "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.5.1.tgz"
|
||||||
@ -3228,6 +3242,11 @@ application-config-path@^0.1.0:
|
|||||||
resolved "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz"
|
resolved "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz"
|
||||||
integrity sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==
|
integrity sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==
|
||||||
|
|
||||||
|
arg@4.1.0:
|
||||||
|
version "4.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0"
|
||||||
|
integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==
|
||||||
|
|
||||||
arg@5.0.2:
|
arg@5.0.2:
|
||||||
version "5.0.2"
|
version "5.0.2"
|
||||||
resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
|
resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
|
||||||
@ -4945,6 +4964,11 @@ expo-device@~6.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ua-parser-js "^0.7.33"
|
ua-parser-js "^0.7.33"
|
||||||
|
|
||||||
|
expo-eas-client@~0.12.0:
|
||||||
|
version "0.12.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.12.0.tgz#e8b6f7d33873e6f630f37f7bfc41646ae7b0b2a9"
|
||||||
|
integrity sha512-Jkww9Cwpv0z7DdLYiRX0r4fqBEcI9cKqTn7cHx63S09JaZ2rcwEE4zYHgrXwjahO+tU2VW8zqH+AJl6RhhW4zA==
|
||||||
|
|
||||||
expo-file-system@~17.0.1:
|
expo-file-system@~17.0.1:
|
||||||
version "17.0.1"
|
version "17.0.1"
|
||||||
resolved "https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz"
|
resolved "https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz"
|
||||||
@ -5056,6 +5080,11 @@ expo-status-bar@~1.12.1:
|
|||||||
resolved "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz"
|
resolved "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz"
|
||||||
integrity sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==
|
integrity sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==
|
||||||
|
|
||||||
|
expo-structured-headers@~3.8.0:
|
||||||
|
version "3.8.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.8.0.tgz#11797a4c3a7a6770b21126cecffcda148030e361"
|
||||||
|
integrity sha512-R+gFGn0x5CWl4OVlk2j1bJTJIz4KO8mPoCHpRHmfqMjmrMvrOM0qQSY3V5NHXwp1yT/L2v8aUmFQsBRIdvi1XA==
|
||||||
|
|
||||||
expo-system-ui@~3.0.7:
|
expo-system-ui@~3.0.7:
|
||||||
version "3.0.7"
|
version "3.0.7"
|
||||||
resolved "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.7.tgz"
|
resolved "https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.7.tgz"
|
||||||
@ -5069,6 +5098,27 @@ expo-updates-interface@~0.16.2:
|
|||||||
resolved "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz"
|
resolved "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz"
|
||||||
integrity sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A==
|
integrity sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A==
|
||||||
|
|
||||||
|
expo-updates@~0.25.27:
|
||||||
|
version "0.25.27"
|
||||||
|
resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.25.27.tgz#4aff889fea2aa221d8341a902646288f84c48b9e"
|
||||||
|
integrity sha512-1hyYZqBEXcAiEuSRPJ6dINTndGlWi6/bwlyYGjSnyoYfu/vzZQrJ+XA8JUP4EvJ3b0g8a0UOIjlDJ9ke9kMcfg==
|
||||||
|
dependencies:
|
||||||
|
"@expo/code-signing-certificates" "0.0.5"
|
||||||
|
"@expo/config" "~9.0.0-beta.0"
|
||||||
|
"@expo/config-plugins" "~8.0.8"
|
||||||
|
"@expo/fingerprint" "^0.10.2"
|
||||||
|
"@expo/spawn-async" "^1.7.2"
|
||||||
|
arg "4.1.0"
|
||||||
|
chalk "^4.1.2"
|
||||||
|
expo-eas-client "~0.12.0"
|
||||||
|
expo-manifests "~0.14.0"
|
||||||
|
expo-structured-headers "~3.8.0"
|
||||||
|
expo-updates-interface "~0.16.2"
|
||||||
|
fast-glob "^3.3.2"
|
||||||
|
fbemitter "^3.0.0"
|
||||||
|
ignore "^5.3.1"
|
||||||
|
resolve-from "^5.0.0"
|
||||||
|
|
||||||
expo-web-browser@~13.0.0, expo-web-browser@~13.0.3:
|
expo-web-browser@~13.0.0, expo-web-browser@~13.0.3:
|
||||||
version "13.0.3"
|
version "13.0.3"
|
||||||
resolved "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-13.0.3.tgz"
|
resolved "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-13.0.3.tgz"
|
||||||
@ -5963,7 +6013,7 @@ ieee754@^1.1.13:
|
|||||||
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
|
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
|
||||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||||
|
|
||||||
ignore@^5.2.0:
|
ignore@^5.2.0, ignore@^5.3.1:
|
||||||
version "5.3.2"
|
version "5.3.2"
|
||||||
resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
|
resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
|
||||||
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
|
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
|
||||||
|
|||||||
Reference in New Issue
Block a user