From 970dfdf46e5c5944a7fc4785aad937522d073f37 Mon Sep 17 00:00:00 2001 From: zhxycn Date: Wed, 6 May 2026 10:52:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:sparkles:=20feat:=20=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=90=8C=E6=AD=A5=E5=88=B0=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=97=A5=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(pages)/settings/calendar.tsx | 65 ++++++++++- app/_layout.tsx | 5 + package.json | 1 + services/calendar-sync.ts | 174 ++++++++++++++++++++++++++++++ store/settings.ts | 4 + yarn.lock | 5 + 6 files changed, 251 insertions(+), 3 deletions(-) create mode 100644 services/calendar-sync.ts diff --git a/app/(pages)/settings/calendar.tsx b/app/(pages)/settings/calendar.tsx index 8e35371..a5c1e76 100644 --- a/app/(pages)/settings/calendar.tsx +++ b/app/(pages)/settings/calendar.tsx @@ -1,6 +1,7 @@ import { Stack } from "expo-router"; import { useMemo, useState } from "react"; import { + ActivityIndicator, Pressable, ScrollView, Switch, @@ -14,8 +15,13 @@ import { IconSymbol } from "@/components/ui/icon-symbol"; import { MenuGroup, MenuItem } from "@/components/ui/menu-item"; import { Colors } from "@/constants/theme"; import { useColorScheme } from "@/hooks/use-color-scheme"; +import { + deleteAppCalendar, + syncCoursesToCalendar, +} from "@/services/calendar-sync"; import { useCourseStore } from "@/store/course"; import { useScheduleStore } from "@/store/schedule"; +import { useSettingsStore } from "@/store/settings"; function isCropCancelled(error: unknown) { const re = /cancell?ed/i; @@ -44,14 +50,49 @@ export default function CalendarSettingsScreen() { ); const courses = useCourseStore((s) => s.courses); + const calendarSync = useSettingsStore((s) => s.calendarSync); + const setCalendarSync = useSettingsStore((s) => s.setCalendarSync); const [showBgPicker, setShowBgPicker] = useState(false); + const [syncing, setSyncing] = useState(false); const courseCount = useMemo(() => { const names = new Set(courses.map((c) => c.name)); return names.size; }, [courses]); + const handleCalendarSyncToggle = async (value: boolean) => { + if (value) { + setSyncing(true); + const result = await syncCoursesToCalendar(); + setSyncing(false); + if (result.success) { + setCalendarSync(true); + Toast.show({ + type: "success", + text1: "已同步到系统日历", + text2: `共写入 ${result.count} 条课程数据`, + position: "bottom", + }); + } else { + Toast.show({ + type: "error", + text1: "同步失败", + text2: result.error, + position: "bottom", + }); + } + } else { + await deleteAppCalendar(); + setCalendarSync(false); + Toast.show({ + type: "success", + text1: "已从系统日历移除", + position: "bottom", + }); + } + }; + const deleteOldBg = async (uri: string | null) => { if (!uri) return; try { @@ -69,9 +110,8 @@ export default function CalendarSettingsScreen() { try { const ImagePicker = await import("expo-image-picker"); const { File, Paths } = await import("expo-file-system"); - const ExpoImageCropTool = ( - await import("@bsky.app/expo-image-crop-tool") - ).default; + const ExpoImageCropTool = (await import("@bsky.app/expo-image-crop-tool")) + .default; const result = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ["images"], @@ -168,6 +208,25 @@ export default function CalendarSettingsScreen() { /> + + + ) : ( + + ) + } + /> + + {}); scheduleWeeklyReminders().catch(() => {}); + if (useSettingsStore.getState().calendarSync) { + syncCoursesToCalendar().catch(() => {}); + } } }); return unsub; diff --git a/package.json b/package.json index b502009..bb67960 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "expo": "~55.0.19", "expo-background-task": "~55.0.17", "expo-build-properties": "~55.0.13", + "expo-calendar": "~55.0.14", "expo-clipboard": "~55.0.13", "expo-constants": "~55.0.15", "expo-dev-client": "~55.0.30", diff --git a/services/calendar-sync.ts b/services/calendar-sync.ts new file mode 100644 index 0000000..1cd5044 --- /dev/null +++ b/services/calendar-sync.ts @@ -0,0 +1,174 @@ +import * as Calendar from "expo-calendar"; +import { Platform } from "react-native"; + +import { getTermWeekMonday } from "@/lib/date"; +import { reportError } from "@/lib/report"; +import { SECTION_TIMES } from "@/services/course-time"; +import { type Course, useCourseStore } from "@/store/course"; + +const CALENDAR_TITLE = "掌上吾理-我的课表"; +const CALENDAR_COLOR = "#007AFF"; + +export async function requestCalendarPermission(): Promise { + const { status } = await Calendar.requestCalendarPermissionsAsync(); + return status === "granted"; +} + +async function findAppCalendar(): Promise { + const calendars = await Calendar.getCalendarsAsync( + Calendar.EntityTypes.EVENT, + ); + const found = calendars.find((c) => c.title === CALENDAR_TITLE); + return found?.id ?? null; +} + +async function createAppCalendar(): Promise { + if (Platform.OS === "ios") { + const defaultCalendar = await Calendar.getDefaultCalendarAsync(); + const id = await Calendar.createCalendarAsync({ + title: CALENDAR_TITLE, + color: CALENDAR_COLOR, + entityType: Calendar.EntityTypes.EVENT, + sourceId: defaultCalendar.source.id, + source: defaultCalendar.source, + name: CALENDAR_TITLE, + ownerAccount: "personal", + accessLevel: Calendar.CalendarAccessLevel.OWNER, + }); + return id; + } + + // Android 需要找到一个可用的 local source + const calendars = await Calendar.getCalendarsAsync( + Calendar.EntityTypes.EVENT, + ); + const localSource = calendars.find( + (c) => c.source && c.source.isLocalAccount, + )?.source; + + const id = await Calendar.createCalendarAsync({ + title: CALENDAR_TITLE, + color: CALENDAR_COLOR, + entityType: Calendar.EntityTypes.EVENT, + sourceId: localSource?.id, + source: + localSource ?? + ({ + isLocalAccount: true, + name: CALENDAR_TITLE, + type: Calendar.SourceType?.LOCAL ?? ("LOCAL" as Calendar.SourceType), + } as Calendar.Source), + name: CALENDAR_TITLE, + ownerAccount: "personal", + accessLevel: Calendar.CalendarAccessLevel.OWNER, + }); + return id; +} + +function formatLocation(room: string | undefined): string | undefined { + if (!room) return undefined; + if ( + room.startsWith("马区") || + room.startsWith("南湖") || + room.startsWith("余区") + ) { + return `武理-${room}`; + } + return room; +} + +function buildEventDate( + monday: Date, + dayOfWeek: number, + timeStr: string, +): Date { + const date = new Date(monday); + date.setDate(date.getDate() + (dayOfWeek - 1)); + const [h, m] = timeStr.split(":").map(Number); + date.setHours(h, m, 0, 0); + return date; +} + +export async function syncCoursesToCalendar(): Promise<{ + success: boolean; + count: number; + error?: string; +}> { + const hasPermission = await requestCalendarPermission(); + if (!hasPermission) { + return { success: false, count: 0, error: "没有日历访问权限" }; + } + + const { courses, termStart } = useCourseStore.getState(); + if (!termStart || courses.length === 0) { + return { success: false, count: 0, error: "没有课程数据或学期开始时间" }; + } + + try { + // 每次同步先删除旧日历再重建 + const existingId = await findAppCalendar(); + if (existingId) { + await Calendar.deleteCalendarAsync(existingId); + } + + const calendarId = await createAppCalendar(); + + let count = 0; + for (const course of courses) { + const events = createEventsForCourse(course, termStart); + for (const eventData of events) { + await Calendar.createEventAsync(calendarId, eventData); + count++; + } + } + + return { success: true, count }; + } catch (e) { + reportError(e, { module: "calendar-sync" }); + const msg = e instanceof Error ? e.message : "未知错误"; + return { success: false, count: 0, error: msg }; + } +} + +type EventInput = Omit, "id" | "organizer">; + +function createEventsForCourse( + course: Course, + termStart: string, +): EventInput[] { + const events: EventInput[] = []; + + for (let week = course.weekStart; week <= course.weekEnd; week++) { + const monday = getTermWeekMonday(termStart, week); + if (!monday) continue; + + const startTime = SECTION_TIMES[course.sectionStart]; + const endTime = SECTION_TIMES[course.sectionEnd]; + if (!startTime || !endTime) continue; + + const startDate = buildEventDate(monday, course.day, startTime[0]); + const endDate = buildEventDate(monday, course.day, endTime[1]); + + events.push({ + title: course.name, + location: formatLocation(course.room), + startDate, + endDate, + alarms: [{ relativeOffset: -15 }], + notes: course.teacher ? `教师: ${course.teacher}` : undefined, + timeZone: "Asia/Shanghai", + }); + } + + return events; +} + +export async function deleteAppCalendar(): Promise { + const hasPermission = await requestCalendarPermission(); + if (!hasPermission) return; + + const calendarId = await findAppCalendar(); + if (calendarId) { + await Calendar.deleteCalendarAsync(calendarId); + } +} diff --git a/store/settings.ts b/store/settings.ts index 9b772b4..19b55fb 100644 --- a/store/settings.ts +++ b/store/settings.ts @@ -8,10 +8,12 @@ interface SettingsStore { openCourseOnLaunch: boolean; courseReminder: boolean; reminderMinutes: number; + calendarSync: boolean; setHapticFeedback: (value: boolean) => void; setOpenCourseOnLaunch: (value: boolean) => void; setCourseReminder: (value: boolean) => void; setReminderMinutes: (value: number) => void; + setCalendarSync: (value: boolean) => void; } export const useSettingsStore = create()( @@ -21,11 +23,13 @@ export const useSettingsStore = create()( openCourseOnLaunch: false, courseReminder: false, reminderMinutes: 30, + calendarSync: false, setHapticFeedback: (value: boolean) => set({ hapticFeedback: value }), setOpenCourseOnLaunch: (value: boolean) => set({ openCourseOnLaunch: value }), setCourseReminder: (value: boolean) => set({ courseReminder: value }), setReminderMinutes: (value: number) => set({ reminderMinutes: value }), + setCalendarSync: (value: boolean) => set({ calendarSync: value }), }), { name: "settings", diff --git a/yarn.lock b/yarn.lock index 4e46769..a66929f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3873,6 +3873,11 @@ expo-build-properties@~55.0.13: resolve-from "^5.0.0" semver "^7.6.0" +expo-calendar@~55.0.14: + version "55.0.14" + resolved "https://mirrors.cloud.tencent.com/npm/expo-calendar/-/expo-calendar-55.0.14.tgz#a5dfd435384e7085190ace7b9621676b6bc6e94b" + integrity sha512-DndwzRNrjyjaMRY9ob/X8TdptLcpckVMGnv8rMjABH2jMWToeLElgq7lttytCTAoablZfVLowcizdD+GwSqNzw== + expo-clipboard@~55.0.13: version "55.0.13" resolved "https://mirrors.cloud.tencent.com/npm/expo-clipboard/-/expo-clipboard-55.0.13.tgz#29e9920bf3b22fe80378f438aa9929e7cbcd289c" From 0fb5285c038f46dddf800a27128b0d24c38d2a77 Mon Sep 17 00:00:00 2001 From: zhxycn Date: Wed, 6 May 2026 12:03:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?:arrow=5Fup:=20chore:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 28 +-- yarn.lock | 626 +++++++++++++++++++++++++-------------------------- 2 files changed, 327 insertions(+), 327 deletions(-) diff --git a/package.json b/package.json index bb67960..ba494f6 100644 --- a/package.json +++ b/package.json @@ -20,31 +20,31 @@ "@react-navigation/native": "^7.1.33", "@sentry/react-native": "~7.11.0", "@tailwindcss/postcss": "^4.2.4", - "expo": "~55.0.19", + "expo": "~55.0.23", "expo-background-task": "~55.0.17", "expo-build-properties": "~55.0.13", "expo-calendar": "~55.0.14", "expo-clipboard": "~55.0.13", - "expo-constants": "~55.0.15", - "expo-dev-client": "~55.0.30", - "expo-device": "~55.0.15", - "expo-file-system": "~55.0.17", - "expo-font": "~55.0.6", + "expo-constants": "~55.0.16", + "expo-dev-client": "~55.0.32", + "expo-device": "~55.0.16", + "expo-file-system": "~55.0.19", + "expo-font": "~55.0.7", "expo-haptics": "~55.0.14", - "expo-image": "~55.0.9", - "expo-image-picker": "~55.0.19", + "expo-image": "~55.0.10", + "expo-image-picker": "~55.0.20", "expo-insights": "^55.0.16", "expo-linear-gradient": "~55.0.13", - "expo-linking": "~55.0.14", - "expo-router": "~55.0.13", + "expo-linking": "~55.0.15", + "expo-router": "~55.0.14", "expo-secure-store": "~55.0.13", "expo-sharing": "~55.0.18", - "expo-splash-screen": "~55.0.19", - "expo-status-bar": "~55.0.5", - "expo-system-ui": "~55.0.16", + "expo-splash-screen": "~55.0.20", + "expo-status-bar": "~55.0.6", + "expo-system-ui": "~55.0.17", "expo-task-manager": "~55.0.15", "expo-updates": "~55.0.21", - "expo-web-browser": "~55.0.14", + "expo-web-browser": "~55.0.15", "jszip": "^3.10.1", "nativewind": "^5.0.0-preview.3", "react": "19.2.0", diff --git a/yarn.lock b/yarn.lock index a66929f..d05f27d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -815,7 +815,7 @@ "@bsky.app/expo-image-crop-tool@^0.5.1": version "0.5.1" - resolved "https://registry.npmmirror.com/@bsky.app/expo-image-crop-tool/-/expo-image-crop-tool-0.5.1.tgz#c3b0ab56917af541ee849765b9336b057f9d885c" + resolved "https://mirrors.cloud.tencent.com/npm/@bsky.app/expo-image-crop-tool/-/expo-image-crop-tool-0.5.1.tgz#c3b0ab56917af541ee849765b9336b057f9d885c" integrity sha512-3O5r0fgS7qQIjcF5tKIweUZkE1knRjA/0jh9TducjBg+eZyBRPHxCEKH+cma0MY5eGilo2P4iCxeNuaEv8wg1g== "@egjs/hammerjs@^2.0.17": @@ -920,28 +920,28 @@ resolved "https://mirrors.cloud.tencent.com/npm/@expo-google-fonts/material-symbols/-/material-symbols-0.4.34.tgz#46c011b54ad361ce45ddfb9ae205f97d489d4142" integrity sha512-PdwETUhvu1gHF1e8eIyEHnBJLq/dRNoTrT5yhsGUfGyRxH5pbm54dF3+QPknxwMKj0M1trN7PSelYz+yzlt3lA== -"@expo/cli@55.0.27": - version "55.0.27" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/cli/-/cli-55.0.27.tgz#742a2bf5aa5f079fb298b6e4f4fecce3a625cc18" - integrity sha512-FF/qWyHikqvVd5GBDiLII2PRgToNGz5MjxHw76a7aufbe5kCRpAqAy7HRoio1PlF5g9UIYnFjs333a3fWTlgMw== +"@expo/cli@55.0.29": + version "55.0.29" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/cli/-/cli-55.0.29.tgz#393727e54af44a5047196059ea94e89dd32c307e" + integrity sha512-r2dXQ82e/3nwxS7faLRL6HBD8UWDo/IyptQ0Vg6Z5Bgyp2Kd24h8xPn3RHfY3LLJ3wfEXglf4E79/Dqkm1Z6WA== dependencies: "@expo/code-signing-certificates" "^0.0.6" - "@expo/config" "~55.0.15" + "@expo/config" "~55.0.16" "@expo/config-plugins" "~55.0.8" "@expo/devcert" "^1.2.1" - "@expo/env" "~2.1.1" - "@expo/image-utils" "^0.8.13" - "@expo/json-file" "^10.0.13" - "@expo/log-box" "55.0.11" + "@expo/env" "~2.1.2" + "@expo/image-utils" "^0.8.14" + "@expo/json-file" "^10.0.14" + "@expo/log-box" "55.0.12" "@expo/metro" "~55.1.1" - "@expo/metro-config" "~55.0.18" - "@expo/osascript" "^2.4.2" - "@expo/package-manager" "^1.10.4" - "@expo/plist" "^0.5.2" - "@expo/prebuild-config" "^55.0.16" - "@expo/require-utils" "^55.0.4" - "@expo/router-server" "^55.0.15" - "@expo/schema-utils" "^55.0.3" + "@expo/metro-config" "~55.0.20" + "@expo/osascript" "^2.4.3" + "@expo/package-manager" "^1.10.5" + "@expo/plist" "^0.5.3" + "@expo/prebuild-config" "^55.0.17" + "@expo/require-utils" "^55.0.5" + "@expo/router-server" "^55.0.16" + "@expo/schema-utils" "^55.0.4" "@expo/spawn-async" "^1.7.2" "@expo/ws-tunnel" "^1.0.1" "@expo/xcpretty" "^4.4.0" @@ -957,7 +957,7 @@ connect "^3.7.0" debug "^4.3.4" dnssd-advertise "^1.1.4" - expo-server "^55.0.8" + expo-server "^55.0.9" fetch-nodeshim "^0.4.10" getenv "^2.0.0" glob "^13.0.0" @@ -1014,15 +1014,15 @@ resolved "https://mirrors.cloud.tencent.com/npm/@expo/config-types/-/config-types-55.0.5.tgz#731ce3e95866254e18977c0026ebab8a00dd6e10" integrity sha512-sCmSUZG4mZ/ySXvfyyBdhjivz8Q539X1NondwDdYG7s3SBsk+wsgPJzYsqgAG/P9+l0xWjUD2F+kQ1cAJ6NNLg== -"@expo/config@~55.0.15": - version "55.0.15" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/config/-/config-55.0.15.tgz#6e6aa54f8f0f1883117d43d0e407a2e504c90618" - integrity sha512-lHc0ELIQ8126jYOMZpLv3WIuvordW98jFg5aT/J1/12n2ycuXu01XLZkJsdw0avO34cusUYb1It+MvY8JiMduA== +"@expo/config@~55.0.16": + version "55.0.16" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/config/-/config-55.0.16.tgz#3aac506efa859ffaf42ce300f77292703227a12d" + integrity sha512-H5dpQv5TfyZDNheZAWO3SmP10diGWZwN5QOUsArkDJih0QKNtahQBOmrV2xbhgln/nrUGoy41U/ZIY/MEx63Ug== dependencies: "@expo/config-plugins" "~55.0.8" "@expo/config-types" "^55.0.5" - "@expo/json-file" "^10.0.13" - "@expo/require-utils" "^55.0.4" + "@expo/json-file" "^10.0.14" + "@expo/require-utils" "^55.0.5" deepmerge "^4.3.1" getenv "^2.0.0" glob "^13.0.0" @@ -1038,33 +1038,33 @@ "@expo/sudo-prompt" "^9.3.1" debug "^3.1.0" -"@expo/devtools@55.0.2": - version "55.0.2" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/devtools/-/devtools-55.0.2.tgz#ef3a6d4beda23d7a503a43155f14f2d2fb95bee6" - integrity sha512-4VsFn9MUriocyuhyA+ycJP3TJhUsOFHDc270l9h3LhNpXMf6wvIdGcA0QzXkZtORXmlDybWXRP2KT1k36HcQkA== +"@expo/devtools@55.0.3": + version "55.0.3" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/devtools/-/devtools-55.0.3.tgz#78f43a56bdffc503d94ab42322269e1320cdc889" + integrity sha512-KoIDgo0NoXeWLsIcOdZqtAG/1LlsM+JL0DA3bo0vCYaOYTBLXi/ZvRBqa20Ub8D2vKLNa+FgRQW0gRg04Ps1Pg== dependencies: chalk "^4.1.2" -"@expo/dom-webview@^55.0.5": - version "55.0.5" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/dom-webview/-/dom-webview-55.0.5.tgz#00628e9e5e5116b8f5c92840bed0a5a06e3ccc77" - integrity sha512-lt3uxYOCk3wmWvtOOvsC35CKGbDAOx5C2EaY8SH1JVSfBzqmF8Cs0Xp1MPxncDPMyxpMiWx5SvvV/iLF1rJU4A== +"@expo/dom-webview@^55.0.6": + version "55.0.6" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/dom-webview/-/dom-webview-55.0.6.tgz#216908464ddf0196a2828210042712a651109f20" + integrity sha512-ZNm8tiNEZysxrr36J0x4mOCGyJDcaIvL/3tMxBz0VJIJDcV19xjuJAhJQxHovu+jKx6s9tRyEAINa1mdrzV39g== -"@expo/env@^2.0.11", "@expo/env@~2.1.1": - version "2.1.1" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/env/-/env-2.1.1.tgz#95c047b69dee14a6ebaaa0415c4896ac69f1bf0d" - integrity sha512-rVvHC4I6xlPcg+mAO09ydUi2Wjv1ZytpLmHOSzvXzBAz9mMrJggqCe4s4dubjJvi/Ino/xQCLhbaLCnTtLpikg== +"@expo/env@^2.1.2", "@expo/env@~2.1.2": + version "2.1.2" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/env/-/env-2.1.2.tgz#c25ecadc60555873761a02c4b85bdd1663fa568c" + integrity sha512-RJtGFfj/ygO/6zcVbV3cckHf4THcEkv5IZft1GjCB3dfT6axvzvIwXE9EiQqQYmGHcQ+ZrvC8xZcIhiHba0pYg== dependencies: chalk "^4.0.0" debug "^4.3.4" getenv "^2.0.0" -"@expo/fingerprint@0.16.6": - version "0.16.6" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/fingerprint/-/fingerprint-0.16.6.tgz#98294fa92614a031f61bb2772a3b143b225fd63b" - integrity sha512-nRITNbnu3RKSHPvKVehrSU4KG2VY9V8nvULOHBw98ukHCAU4bGrU5APvcblOkX3JAap+xEHsg/mZvqlvkLInmQ== +"@expo/fingerprint@0.16.7": + version "0.16.7" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/fingerprint/-/fingerprint-0.16.7.tgz#288719e85e4da2f624ad9b42128f4e86384dd198" + integrity sha512-BH8sicYOqZ1iBMwCVEGIz6uTTfylosjc49FoMmCYIzKOiYdiVehsfoYBwyfxwWIiya1VMhm1gv0cgOP8fxHpDw== dependencies: - "@expo/env" "^2.0.11" + "@expo/env" "^2.1.2" "@expo/spawn-async" "^1.7.2" arg "^5.0.2" chalk "^4.1.2" @@ -1076,12 +1076,12 @@ resolve-from "^5.0.0" semver "^7.6.0" -"@expo/image-utils@^0.8.13": - version "0.8.13" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/image-utils/-/image-utils-0.8.13.tgz#c7476352af9f576440e5ec8201c2f75f090a4804" - integrity sha512-1I//yBQeTY6p0u1ihqGNDAr35EbSG8uFEupFrIF0jd++h9EWH33521yZJU1yE+mwGlzCb61g3ehu78siMhXBlA== +"@expo/image-utils@^0.8.14": + version "0.8.14" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/image-utils/-/image-utils-0.8.14.tgz#1c4bf2e6787436ae14beb834b7c36133329de842" + integrity sha512-5Sn+jG4Cw+shC2wDMXoqSAJnvERbiwzHn05FpWtD5IBflfTIs5gUmjzwiGVyjOdlMSQhgRrw/AymPbmO9h9mpQ== dependencies: - "@expo/require-utils" "^55.0.4" + "@expo/require-utils" "^55.0.5" "@expo/spawn-async" "^1.7.2" chalk "^4.0.0" getenv "^2.0.0" @@ -1089,42 +1089,42 @@ parse-png "^2.1.0" semver "^7.6.0" -"@expo/json-file@^10.0.13", "@expo/json-file@~10.0.13": - version "10.0.13" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/json-file/-/json-file-10.0.13.tgz#1a9ac56333786e8672181b0b95aab08f8255a548" - integrity sha512-pX/XjQn7tgNw6zuuV2ikmegmwe/S7uiwhrs2wXrANMkq7ozrA+JcZwgW9Q/8WZgciBzfAhNp5hnackHcrmapQA== +"@expo/json-file@^10.0.14", "@expo/json-file@~10.0.13", "@expo/json-file@~10.0.14": + version "10.0.14" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/json-file/-/json-file-10.0.14.tgz#6a1e1506f17144aab5e34f7f5a1f468080f7157b" + integrity sha512-yWwBFywFv+SxkJp/pIzzA416JVYflNUh7pqQzgaA6nXDqRyK7KfrqVzk8PdUfDnqbBcaZZxpzNssfQZzp5KHrA== dependencies: "@babel/code-frame" "^7.20.0" json5 "^2.2.3" -"@expo/local-build-cache-provider@55.0.11": - version "55.0.11" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/local-build-cache-provider/-/local-build-cache-provider-55.0.11.tgz#26178937e6df1b310ecf1d5b156c6b87bb8a2fae" - integrity sha512-rJ4RTCrkeKaXaido/bVyhl90ZRtVTOEbj59F1PWVjIEIVgjdlfc1J3VD9v7hEsbf/+8Tbr/PgvWhT6Visi5sLQ== +"@expo/local-build-cache-provider@55.0.12": + version "55.0.12" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/local-build-cache-provider/-/local-build-cache-provider-55.0.12.tgz#0e226eb9f23010165c89d5c9bbf275fa7b1ac316" + integrity sha512-Wqhe7ajt6lyIEQvqDC1zm0MQ1RqQLlM9awCepY9pz+tm9rvhuxGPZTSddWeD8k4kolinBlDbLDFnNi06XgaDWQ== dependencies: - "@expo/config" "~55.0.15" + "@expo/config" "~55.0.16" chalk "^4.1.2" -"@expo/log-box@55.0.11": - version "55.0.11" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/log-box/-/log-box-55.0.11.tgz#8e1efa826217405e154f3cdde2fba9a6d8a10ede" - integrity sha512-JQHFLWkskIbJi6cxYMjErx8lQqfFJilDQLKmdTO3m3YkdmN9GE/CrzjOfVlCG0DGEGZJ90br0pGKvGPdXNsHKw== +"@expo/log-box@55.0.12": + version "55.0.12" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/log-box/-/log-box-55.0.12.tgz#da3bb055eb094916f88d5fee8b918d7a0a628467" + integrity sha512-f9ARS8J60cq3LLNdIqmUjYwyerBzVS5Ecp7KjIf3GOIPjW0571rkcwLz4/U18l/1DeSkSzIkYsNl2TC9oTdWaQ== dependencies: - "@expo/dom-webview" "^55.0.5" + "@expo/dom-webview" "^55.0.6" anser "^1.4.9" stacktrace-parser "^0.1.10" -"@expo/metro-config@55.0.18", "@expo/metro-config@~55.0.18": - version "55.0.18" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/metro-config/-/metro-config-55.0.18.tgz#905a96e06406c785f9940101cd07a6f3a47cf145" - integrity sha512-XT7YHdQsUjdun0n4cyE5iXIyncDERIG4WesMBRUClr1RAurPwyg95BrbOBpq3E3uvwSBrAGfhu1w8VADqP4ZTQ== +"@expo/metro-config@55.0.20", "@expo/metro-config@~55.0.20": + version "55.0.20" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/metro-config/-/metro-config-55.0.20.tgz#a6532a2cd7566d0dcba94d82eb612ae639e1c91d" + integrity sha512-dUv0simEyPbN2wbOjI+BdEZyXdghgCZD0+3rrA1WxXZN1lRofUx6g2+Nik2Qg61v/BXFrCTh8reYEzQPzHOhdQ== dependencies: "@babel/code-frame" "^7.20.0" "@babel/core" "^7.20.0" "@babel/generator" "^7.20.5" - "@expo/config" "~55.0.15" - "@expo/env" "~2.1.1" - "@expo/json-file" "~10.0.13" + "@expo/config" "~55.0.16" + "@expo/env" "~2.1.2" + "@expo/json-file" "~10.0.14" "@expo/metro" "~55.1.1" "@expo/spawn-async" "^1.7.2" browserslist "^4.25.0" @@ -1139,12 +1139,12 @@ postcss "~8.4.32" resolve-from "^5.0.0" -"@expo/metro-runtime@^55.0.10": - version "55.0.10" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/metro-runtime/-/metro-runtime-55.0.10.tgz#8bbb827d0936100e21a67dfc288da57ffa150845" - integrity sha512-7v+ldTvMWRa1ml83Jel9W2f8qT/NZZWrlHaEjf29nb72JTEO50+Xac9PWLo+X3LCDAAuyYuBGKYXOJwfqxV0fQ== +"@expo/metro-runtime@^55.0.11": + version "55.0.11" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/metro-runtime/-/metro-runtime-55.0.11.tgz#86abebda2ba21c697f9672202b8f3de54b618d18" + integrity sha512-4KKi/jGrIEXi2YGu0hYTVr0CEeRJy5SXbCrz9+KDZkuD3ROwKNpM1DBawni5rhPVovFnR323HBck9GaxhnfrRw== dependencies: - "@expo/log-box" "55.0.11" + "@expo/log-box" "55.0.12" anser "^1.4.9" pretty-format "^29.7.0" stacktrace-parser "^0.1.10" @@ -1170,19 +1170,19 @@ metro-transform-plugins "0.83.7" metro-transform-worker "0.83.7" -"@expo/osascript@^2.4.2": - version "2.4.2" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/osascript/-/osascript-2.4.2.tgz#fe341cff1eb2c939da43cf58ade5504c8a5d77ca" - integrity sha512-/XP7PSYF2hzOZzqfjgkoWtllyeTN8dW3aM4P6YgKcmmPikKL5FdoyQhti4eh6RK5a5VrUXJTOlTNIpIHsfB5Iw== +"@expo/osascript@^2.4.3": + version "2.4.3" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/osascript/-/osascript-2.4.3.tgz#d589096c3e85dac47a74014bec6b84b37d3964bc" + integrity sha512-wbuj3EebM7W9hN/Wp4xTzKd6rQ2zKJzAxkFxkOOwyysLp0HOAgQ4/5RINyoS241pZUX2rUHq7mAJ7pcCQ8U0Ow== dependencies: "@expo/spawn-async" "^1.7.2" -"@expo/package-manager@^1.10.4": - version "1.10.4" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/package-manager/-/package-manager-1.10.4.tgz#1a16bd2ccf85a23865dd98392c11b9f75f9bbf7a" - integrity sha512-y9Mr4Kmpk4abAVZrNNPCdzOZr8nLLyi18p1SXr0RCVA8IfzqZX/eY4H+50a0HTmXqIsPZrQdcdb4I3ekMS9GvQ== +"@expo/package-manager@^1.10.5": + version "1.10.5" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/package-manager/-/package-manager-1.10.5.tgz#112ca55f3538168520c293dcb2cc3a87cb4f1b2a" + integrity sha512-nCP9Mebfl3jvOr0/P6VAuyah6PAtun+aihIL2zAtuE8uSe94JWkVZ7051i0MUVO+y3gFpBqnr8IIH5ch+VJjHA== dependencies: - "@expo/json-file" "^10.0.13" + "@expo/json-file" "^10.0.14" "@expo/spawn-async" "^1.7.2" chalk "^4.0.0" npm-package-arg "^11.0.0" @@ -1198,51 +1198,51 @@ base64-js "^1.2.3" xmlbuilder "^14.0.0" -"@expo/plist@^0.5.2": - version "0.5.2" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/plist/-/plist-0.5.2.tgz#5bfc81cf09c1c0513a31d7e5cabf85b2ac4d1d71" - integrity sha512-o4xdVdBpe4aTl3sPMZ2u3fJH4iG1I768EIRk1xRZP+GaFI93MaR3JvoFibYqxeTmLQ1p1kNEVqylfUjezxx45g== +"@expo/plist@^0.5.2", "@expo/plist@^0.5.3": + version "0.5.3" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/plist/-/plist-0.5.3.tgz#11c6855bcd5dea952e227cbc16d0765bbddf13b9" + integrity sha512-jz5oPcPDd3fygwVxwSwmO6wodTwm0Qa14NUyPy0ka7H8sFmCtNZUI2+DzVe/EXjOhq1FbEjrwl89gdlWYOnVjQ== dependencies: "@xmldom/xmldom" "^0.8.8" base64-js "^1.5.1" xmlbuilder "^15.1.1" -"@expo/prebuild-config@^55.0.16": - version "55.0.16" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/prebuild-config/-/prebuild-config-55.0.16.tgz#f4bf681308e18d0c24c7afe793820cee868b7753" - integrity sha512-o4EAVgDGk1lISirtMD8hciO2vyMp7cWlPdfTtjjd5AXSfODVYDIDhygXrfvVQHmJXAztVqPUTKJT+BYOsVkYGQ== +"@expo/prebuild-config@^55.0.17": + version "55.0.17" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/prebuild-config/-/prebuild-config-55.0.17.tgz#60733edd52ad7f2f0ea7da022869e6304521a2ab" + integrity sha512-Mcs+dg4Ripu0yCtzf66KZr18PehI1O8HxzJw+G5SUF8VWX+ic99aci1PltvmydWepLwTQL6ykmpXicAUA31IqA== dependencies: - "@expo/config" "~55.0.15" + "@expo/config" "~55.0.16" "@expo/config-plugins" "~55.0.8" "@expo/config-types" "^55.0.5" - "@expo/image-utils" "^0.8.13" - "@expo/json-file" "^10.0.13" + "@expo/image-utils" "^0.8.14" + "@expo/json-file" "^10.0.14" "@react-native/normalize-colors" "0.83.6" debug "^4.3.1" resolve-from "^5.0.0" semver "^7.6.0" xml2js "0.6.0" -"@expo/require-utils@^55.0.4": - version "55.0.4" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/require-utils/-/require-utils-55.0.4.tgz#cd474a8997ba6ecfa43d084a7f17bde0cb854179" - integrity sha512-JAANvXqV7MOysWeVWgaiDzikoyDjJWOV/ulOW60Zb3kXJfrx2oZOtGtDXDFKD1mXuahQgoM5QOjuZhF7gFRNjA== +"@expo/require-utils@^55.0.5": + version "55.0.5" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/require-utils/-/require-utils-55.0.5.tgz#50ac2bd7fa74d8c55749c88c2bef19d4d23e0b84" + integrity sha512-U4K/CQ2VpXuwfNGsN+daKmYOt15hCP8v/pXaYH6eut7kdYZo6SfJ1yr67BIcJ+1Gzzs+QzTxswAZChKpXmceyw== dependencies: "@babel/code-frame" "^7.20.0" "@babel/core" "^7.25.2" "@babel/plugin-transform-modules-commonjs" "^7.24.8" -"@expo/router-server@^55.0.15": - version "55.0.15" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/router-server/-/router-server-55.0.15.tgz#50e5424606be1c2803fbfd712e84c4cc50a4c7bf" - integrity sha512-6LksYO4Pg13qroL138KfUebt/x/EO07zVhdyT/nTgcxnpn6CS4ecTl3DciSKhxbaH+0BVLdANkxYeGdp43TMwQ== +"@expo/router-server@^55.0.16": + version "55.0.16" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/router-server/-/router-server-55.0.16.tgz#43227f1a35ea63fa16838c292cb079e2e1475d84" + integrity sha512-LvAdrm039nQBG+95+ff5Rc4CsBuoc/giDhjQrgxB9lKJqC/ZTq1xbwfEZFNq6yokX6fOCs/vlxdhmSkOjMIrvg== dependencies: debug "^4.3.4" -"@expo/schema-utils@^55.0.3": - version "55.0.3" - resolved "https://mirrors.cloud.tencent.com/npm/@expo/schema-utils/-/schema-utils-55.0.3.tgz#4d976417bb659b6185a28e6174192f5b006a1056" - integrity sha512-l9KHVjTo6MvoeyvwNr6AjckGJm8NIcqZ3QSAh51cWozXW9v2AUjyCyqYtFtyntLWRZ0x/ByYJishpQo4ZQq45Q== +"@expo/schema-utils@^55.0.3", "@expo/schema-utils@^55.0.4": + version "55.0.4" + resolved "https://mirrors.cloud.tencent.com/npm/@expo/schema-utils/-/schema-utils-55.0.4.tgz#2039daa04933da8f27957fd61b2b6d8d22d34bba" + integrity sha512-65IdeeE8dAZR3n3J5Eq7LYiQ8BFGeEYCWPBCzycvafL7PkskbCyIclTQarRwf/HXFoRvezKCjaLwy/8v9Prk6g== "@expo/sdk-runtime-versions@^1.0.0": version "1.0.0" @@ -2281,99 +2281,99 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^8.18.2": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.1.tgz#781bc6f9002982cfaf75a185240e24ad7276628a" - integrity sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag== + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.2.tgz#f37b2c189a0177141fe3de3b08f2a83991bfdbfa" + integrity sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ== dependencies: "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.59.1" - "@typescript-eslint/type-utils" "8.59.1" - "@typescript-eslint/utils" "8.59.1" - "@typescript-eslint/visitor-keys" "8.59.1" + "@typescript-eslint/scope-manager" "8.59.2" + "@typescript-eslint/type-utils" "8.59.2" + "@typescript-eslint/utils" "8.59.2" + "@typescript-eslint/visitor-keys" "8.59.2" ignore "^7.0.5" natural-compare "^1.4.0" ts-api-utils "^2.5.0" "@typescript-eslint/parser@^8.18.2": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/parser/-/parser-8.59.1.tgz#835d20a62350659a082a1ae2a60b822c40488905" - integrity sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA== - dependencies: - "@typescript-eslint/scope-manager" "8.59.1" - "@typescript-eslint/types" "8.59.1" - "@typescript-eslint/typescript-estree" "8.59.1" - "@typescript-eslint/visitor-keys" "8.59.1" + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/parser/-/parser-8.59.2.tgz#e2fd0084baa5dd0c24cd789af1c72cbc3a7a1c62" + integrity sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ== + dependencies: + "@typescript-eslint/scope-manager" "8.59.2" + "@typescript-eslint/types" "8.59.2" + "@typescript-eslint/typescript-estree" "8.59.2" + "@typescript-eslint/visitor-keys" "8.59.2" debug "^4.4.3" -"@typescript-eslint/project-service@8.59.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/project-service/-/project-service-8.59.1.tgz#49efe87c37ef84262f23df8bf62fdc56698ca6fe" - integrity sha512-+MuHQlHiEr00Of/IQbE/MmEoi44znZHbR/Pz7Opq4HryUOlRi+/44dro9Ycy8Fyo+/024IWtw8m4JUMCGTYxDg== +"@typescript-eslint/project-service@8.59.2": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/project-service/-/project-service-8.59.2.tgz#f8b8cbf8692e3a51c2c394acf8cf6900f7e755af" + integrity sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.59.1" - "@typescript-eslint/types" "^8.59.1" + "@typescript-eslint/tsconfig-utils" "^8.59.2" + "@typescript-eslint/types" "^8.59.2" debug "^4.4.3" -"@typescript-eslint/scope-manager@8.59.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/scope-manager/-/scope-manager-8.59.1.tgz#ed90d054fc3db2d0c81464db3a953a94fb85bb58" - integrity sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg== +"@typescript-eslint/scope-manager@8.59.2": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/scope-manager/-/scope-manager-8.59.2.tgz#63cbd0af2e3180949d6be81122cc555bc71e736d" + integrity sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg== dependencies: - "@typescript-eslint/types" "8.59.1" - "@typescript-eslint/visitor-keys" "8.59.1" + "@typescript-eslint/types" "8.59.2" + "@typescript-eslint/visitor-keys" "8.59.2" -"@typescript-eslint/tsconfig-utils@8.59.1", "@typescript-eslint/tsconfig-utils@^8.59.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.1.tgz#ba2a779a444f1d5cb92a606f9b209d239fd4cab1" - integrity sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA== +"@typescript-eslint/tsconfig-utils@8.59.2", "@typescript-eslint/tsconfig-utils@^8.59.2": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.2.tgz#6e92bc412083753185a79c9f1431e78169d9232f" + integrity sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw== -"@typescript-eslint/type-utils@8.59.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/type-utils/-/type-utils-8.59.1.tgz#9c83d3f2ed9187a815e8120f72c08317e513e409" - integrity sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w== +"@typescript-eslint/type-utils@8.59.2": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/type-utils/-/type-utils-8.59.2.tgz#a60a1192a804fa472a92c41656853ac6a9ba7176" + integrity sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ== dependencies: - "@typescript-eslint/types" "8.59.1" - "@typescript-eslint/typescript-estree" "8.59.1" - "@typescript-eslint/utils" "8.59.1" + "@typescript-eslint/types" "8.59.2" + "@typescript-eslint/typescript-estree" "8.59.2" + "@typescript-eslint/utils" "8.59.2" debug "^4.4.3" ts-api-utils "^2.5.0" -"@typescript-eslint/types@8.59.1", "@typescript-eslint/types@^8.29.1", "@typescript-eslint/types@^8.59.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/types/-/types-8.59.1.tgz#c1d014d3f03a97e0113a8899fc9d4e45a7fb0ca9" - integrity sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A== +"@typescript-eslint/types@8.59.2", "@typescript-eslint/types@^8.29.1", "@typescript-eslint/types@^8.59.2": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/types/-/types-8.59.2.tgz#01caabcd7e4715c33ad5e11cab260829714d6b9c" + integrity sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q== -"@typescript-eslint/typescript-estree@8.59.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.1.tgz#4391fadf98a22c869c5b6522dbf4e491e53e351a" - integrity sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g== +"@typescript-eslint/typescript-estree@8.59.2": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.2.tgz#6a217ef65b18dbd12c718fc86a675d1d7a1414cc" + integrity sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg== dependencies: - "@typescript-eslint/project-service" "8.59.1" - "@typescript-eslint/tsconfig-utils" "8.59.1" - "@typescript-eslint/types" "8.59.1" - "@typescript-eslint/visitor-keys" "8.59.1" + "@typescript-eslint/project-service" "8.59.2" + "@typescript-eslint/tsconfig-utils" "8.59.2" + "@typescript-eslint/types" "8.59.2" + "@typescript-eslint/visitor-keys" "8.59.2" debug "^4.4.3" minimatch "^10.2.2" semver "^7.7.3" tinyglobby "^0.2.15" ts-api-utils "^2.5.0" -"@typescript-eslint/utils@8.59.1", "@typescript-eslint/utils@^8.29.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/utils/-/utils-8.59.1.tgz#cf6204d69701bbbc5b150f98c18aeef0a42c10bd" - integrity sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA== +"@typescript-eslint/utils@8.59.2", "@typescript-eslint/utils@^8.29.1": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/utils/-/utils-8.59.2.tgz#ff619a6a3075f4017fa91b8610b752a8ca3366aa" + integrity sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q== dependencies: "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.59.1" - "@typescript-eslint/types" "8.59.1" - "@typescript-eslint/typescript-estree" "8.59.1" + "@typescript-eslint/scope-manager" "8.59.2" + "@typescript-eslint/types" "8.59.2" + "@typescript-eslint/typescript-estree" "8.59.2" -"@typescript-eslint/visitor-keys@8.59.1": - version "8.59.1" - resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.1.tgz#b5cba576287a3eeb0b400b62813189abcc3f976a" - integrity sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg== +"@typescript-eslint/visitor-keys@8.59.2": + version "8.59.2" + resolved "https://mirrors.cloud.tencent.com/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.2.tgz#5ccc486913cd347883d69158836b1189a660bfe6" + integrity sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA== dependencies: - "@typescript-eslint/types" "8.59.1" + "@typescript-eslint/types" "8.59.2" eslint-visitor-keys "^5.0.0" "@ungap/structured-clone@^1.3.0": @@ -2873,10 +2873,10 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-expo@~55.0.19: - version "55.0.19" - resolved "https://mirrors.cloud.tencent.com/npm/babel-preset-expo/-/babel-preset-expo-55.0.19.tgz#758f9307bb647ea4aebf6ef19f2544d8a295b06b" - integrity sha512-IaxT7xremfrW2HqtG7gWI7TUSJke/V+zDW1whLpmO06ZdKOfB5Qup7oICqBWqfbcBW3h57llWOMAn1cycvbsgQ== +babel-preset-expo@~55.0.21: + version "55.0.21" + resolved "https://mirrors.cloud.tencent.com/npm/babel-preset-expo/-/babel-preset-expo-55.0.21.tgz#718b72d035a3e2f30d55c1d372c415f0083ee1d1" + integrity sha512-anXoUZBcxydLdVs2L+r3bWKGUvZv2FtgOl8xRJ12i/YfKICBpwTGZWSTiEYTqBByZ6GkA3mE9+3TW97X2ocFTQ== dependencies: "@babel/generator" "^7.20.5" "@babel/helper-module-imports" "^7.25.9" @@ -3433,9 +3433,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.5.328: - version "1.5.349" - resolved "https://mirrors.cloud.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.5.349.tgz#9b9c6a6d84d1107557c18a9336099ce0ee890e5b" - integrity sha512-QsWVGyRuY07Aqb234QytTfwd5d9AJlfNIQ5wIOl1L+PZDzI9d9+Fn0FRale/QYlFxt/bUnB0/nLd1jFPGxGK1A== + version "1.5.351" + resolved "https://mirrors.cloud.tencent.com/npm/electron-to-chromium/-/electron-to-chromium-1.5.351.tgz#7314fbb5b4835a1869feaec09665541b6a84cd37" + integrity sha512-9D7Iqx8RImSvCnOsj86rCH6eQjZFQoM04Jn6HnZVM0Nu/G58/gmKYQ1d12MZTbjQbQSTGI8nwEy07ErsA2slLA== emoji-regex@^8.0.0: version "8.0.0" @@ -3849,13 +3849,13 @@ eventemitter3@^4.0.7: resolved "https://mirrors.cloud.tencent.com/npm/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -expo-asset@~55.0.16: - version "55.0.16" - resolved "https://mirrors.cloud.tencent.com/npm/expo-asset/-/expo-asset-55.0.16.tgz#e7c8d7140e4d8958d3b8fa3d9ea6642cb49369b2" - integrity sha512-5IJyfJtYqvKGg04NKGQWiCIoK/fULDL9m15mXPPyfabD1jsToVj2hnWmo1r2SWNNmMwtQxi6jTpcGwVo2nLDxg== +expo-asset@~55.0.17: + version "55.0.17" + resolved "https://mirrors.cloud.tencent.com/npm/expo-asset/-/expo-asset-55.0.17.tgz#750a27685ea118417473f4f293c5a35116b572d4" + integrity sha512-pK9HHJuFqjE8kDUcbMFsZj3Cz8WdXpvZHZmYl7ouFQp59P83BvHln6VnqPDGlO+/4929G0Lm8ZUzbONuNRhi9w== dependencies: - "@expo/image-utils" "^0.8.13" - expo-constants "~55.0.15" + "@expo/image-utils" "^0.8.14" + expo-constants "~55.0.16" expo-background-task@~55.0.17: version "55.0.17" @@ -3883,31 +3883,31 @@ expo-clipboard@~55.0.13: resolved "https://mirrors.cloud.tencent.com/npm/expo-clipboard/-/expo-clipboard-55.0.13.tgz#29e9920bf3b22fe80378f438aa9929e7cbcd289c" integrity sha512-PrOmmuVsGW4bAkNQmGKtxMXj3invsfN+jfIKmQxHwE/dn7ODqwFWviUTa+PMUjP3XZmYCDLyu/i0GLeu7HF9Ew== -expo-constants@~55.0.15: - version "55.0.15" - resolved "https://mirrors.cloud.tencent.com/npm/expo-constants/-/expo-constants-55.0.15.tgz#62d1d828ff3384dda4bccdf45e990d700675fc70" - integrity sha512-w394fcZLJjeKN+9ZnJzL/HiarE1nwZFDa+3S9frevh6Ur+MAAs9QDrcXhDrV8T3xqRzzYaqsP6Z8TFZ4efWN1A== +expo-constants@~55.0.16: + version "55.0.16" + resolved "https://mirrors.cloud.tencent.com/npm/expo-constants/-/expo-constants-55.0.16.tgz#b2ffdc354716488aa38684c8cbf097150089b9b7" + integrity sha512-Z15/No94UHoogD+pulxjudGAeOHTEIWZgb/vnX48Wx5D+apWTeCbnKxQZZtGQlosvduYL5kaic2/W8U+NHfBQQ== dependencies: - "@expo/env" "~2.1.1" + "@expo/env" "~2.1.2" -expo-dev-client@~55.0.30: - version "55.0.30" - resolved "https://mirrors.cloud.tencent.com/npm/expo-dev-client/-/expo-dev-client-55.0.30.tgz#e338ada92e9728aba95748633829a7f93d66a0a9" - integrity sha512-guDTu5MsI7C5TWi4d6PwG6CsfPeEDVu9V0eljwOLUC96MAwzc0Kw9/IgqGywrom5zBk8JCXv1dAZbUO+Ik83MQ== +expo-dev-client@~55.0.32: + version "55.0.32" + resolved "https://mirrors.cloud.tencent.com/npm/expo-dev-client/-/expo-dev-client-55.0.32.tgz#0f000e78da0339c5bb2f982784d6544452f0ac97" + integrity sha512-rfZ0Xpgbw3RPymkivvLSQ2Koqefj+oVOReqNLN3JXDlqdC2jOr3MCqfTaJs5VFNzFKk7pOPyE60jh03UdvsHCQ== dependencies: - expo-dev-launcher "55.0.31" - expo-dev-menu "55.0.26" + expo-dev-launcher "55.0.33" + expo-dev-menu "55.0.27" expo-dev-menu-interface "55.0.2" expo-manifests "~55.0.16" expo-updates-interface "~55.1.6" -expo-dev-launcher@55.0.31: - version "55.0.31" - resolved "https://mirrors.cloud.tencent.com/npm/expo-dev-launcher/-/expo-dev-launcher-55.0.31.tgz#c79bc69b815a9ebc87f2ed54efa5c8ab420361c4" - integrity sha512-jCWpW8+hzyv7xI4fIx+bGg84PQGzohNnBXdyazrU0J0BZCseguNCaxuU9LTcNTP/PGMJxZFEUFmU/Siojtdl/w== +expo-dev-launcher@55.0.33: + version "55.0.33" + resolved "https://mirrors.cloud.tencent.com/npm/expo-dev-launcher/-/expo-dev-launcher-55.0.33.tgz#962cb5e087b8d0d22e23871ce3d0fbe41da12df6" + integrity sha512-WZsTtyEVgCBMj3vlgbDSKbYbUbAwijNhJY9jBqqlmbPLHtLE+Wc6nCTafb0dWY6+Si+afF98lvPyz6WSAu59uA== dependencies: "@expo/schema-utils" "^55.0.3" - expo-dev-menu "55.0.26" + expo-dev-menu "55.0.27" expo-manifests "~55.0.16" expo-dev-menu-interface@55.0.2: @@ -3915,17 +3915,17 @@ expo-dev-menu-interface@55.0.2: resolved "https://mirrors.cloud.tencent.com/npm/expo-dev-menu-interface/-/expo-dev-menu-interface-55.0.2.tgz#aead1b9980c904d61c59e9182e13b2b37bcb2161" integrity sha512-DomUNvGzY/xliwnMdbAYY780sCv19N7zIbifc0ClcoCzJZpNSCkvJ2qGIFRPyM/7DmqmlHGCKi8di7kYYLKNEg== -expo-dev-menu@55.0.26: - version "55.0.26" - resolved "https://mirrors.cloud.tencent.com/npm/expo-dev-menu/-/expo-dev-menu-55.0.26.tgz#d9a10861b57d3db30e31238d813eb7abcbcc7432" - integrity sha512-NXZumkYIycz77IY/o7qI9Ow+qb/qkq6aQ4eqO7tUJMCyBNVIfwfrb3Qm9ANhZlDT0yrk8FcH7zYmtoJbfwRr1Q== +expo-dev-menu@55.0.27: + version "55.0.27" + resolved "https://mirrors.cloud.tencent.com/npm/expo-dev-menu/-/expo-dev-menu-55.0.27.tgz#0f91fda93da3b3d85d4f29e2c8c1786458cb5a9a" + integrity sha512-Il+kkIXlPDfZ/Z3ZquV1r5niECEByJObUMkB24c0B4N4693f0SDoKyyaRqcGRsRCVXW9r0eAoTeEnXl1revQdA== dependencies: expo-dev-menu-interface "55.0.2" -expo-device@~55.0.15: - version "55.0.15" - resolved "https://mirrors.cloud.tencent.com/npm/expo-device/-/expo-device-55.0.15.tgz#a95008840c183b9bd6d74b40c3d10d8706baa8ca" - integrity sha512-vXy4U/IeYI+zHGG45Ap6J7EuyQmkstyo8I+/5YGr5q2zmqLBo6SWE62wii8i9hLHheHn6AtF9UPrSWAREJrE8A== +expo-device@~55.0.16: + version "55.0.16" + resolved "https://mirrors.cloud.tencent.com/npm/expo-device/-/expo-device-55.0.16.tgz#56ecc44152036f1ce3c95a65e723fbc941f12d63" + integrity sha512-o6eQjO2reoniXpos0FnPcrAVMYUfFPcIUdMRUUpKwQys7cmTJBjJLbOo+SuctVXUrsHUm6zyoKI7nX3C3lpqJw== dependencies: ua-parser-js "^0.7.33" @@ -3934,22 +3934,22 @@ expo-eas-client@~55.0.5: resolved "https://mirrors.cloud.tencent.com/npm/expo-eas-client/-/expo-eas-client-55.0.5.tgz#36e09e6c9e161eb72c17ce1657af210f6a9e4389" integrity sha512-wRagCeSbSnSGVXgP7V+qiGfXzZ9hTVKWvKIOP7lwrX3MIEenNmNlO4D3RVC3aNU2GhmO3ZCZIIEre80KZoUUHA== -expo-file-system@~55.0.17: - version "55.0.17" - resolved "https://mirrors.cloud.tencent.com/npm/expo-file-system/-/expo-file-system-55.0.17.tgz#81e4bc15773ed0c0098edd26a8c2d31f3844219d" - integrity sha512-d27K1cagUOt2BwxwPka9KW8Znu5kN1tnairozCzzCRZviZFtWnBxwFuJ3KU6MAbav/9UhSMkp5Ve/oZ+SR0UgQ== +expo-file-system@~55.0.19: + version "55.0.19" + resolved "https://mirrors.cloud.tencent.com/npm/expo-file-system/-/expo-file-system-55.0.19.tgz#7a714ad1b3bbcc41bdc0c0942dbd131f15a6c472" + integrity sha512-c4smCbMqELLI3YQrGpw21MwZIREXM2e53vQD/+KWQcae1q+hgw8J2TroEqcQ/jVOtFpZYVvyVfgu4HDKNEKmNw== -expo-font@~55.0.6: - version "55.0.6" - resolved "https://mirrors.cloud.tencent.com/npm/expo-font/-/expo-font-55.0.6.tgz#f6ef6c7a9d2ff70bd7c22fc2b01f7db0bdbbeefc" - integrity sha512-x9czUA3UQWjIwa0ZUEs/eWJNqB4mAue/m4ltESlNPLZhHL0nWWqIfsyHmklTLFH7mVfcHSJvew6k+pR2FE1zVw== +expo-font@~55.0.7: + version "55.0.7" + resolved "https://mirrors.cloud.tencent.com/npm/expo-font/-/expo-font-55.0.7.tgz#f89a5d9a71618d88abd4aa0d76f74070f803ff79" + integrity sha512-oH39Xb+3i6Y69b7YRP+P+5WLx7621t+ep/RAgLwJJYpTjs7CnSohUG+873rEtqsTAuQGi63ms7x9ZeHj1E9LYw== dependencies: fontfaceobserver "^2.1.0" -expo-glass-effect@^55.0.10: - version "55.0.10" - resolved "https://mirrors.cloud.tencent.com/npm/expo-glass-effect/-/expo-glass-effect-55.0.10.tgz#5db7a154e8c7dd89a7fc91f87a1d5387364f0f20" - integrity sha512-5kL/jATvgJWdrqPdxixrECJqD2l8cfQ4ALr1DK7qi9XkyI97ejXvUjB2VsfEePNy3Fg+/VwzA3n3L7Nv3tAPkw== +expo-glass-effect@^55.0.11: + version "55.0.11" + resolved "https://mirrors.cloud.tencent.com/npm/expo-glass-effect/-/expo-glass-effect-55.0.11.tgz#23a3ba71e5f740d6ae557f4298f6abdb030da2f8" + integrity sha512-wqq7GUOqSkfoFJzreZvBG0jzjsq5c582m3glhWSjcmIuByxXXWp6j6GY6hyFuYKzpOXhbuvusVxGCQi0yWnp3g== expo-haptics@~55.0.14: version "55.0.14" @@ -3961,17 +3961,17 @@ expo-image-loader@~55.0.0: resolved "https://mirrors.cloud.tencent.com/npm/expo-image-loader/-/expo-image-loader-55.0.0.tgz#56ae6631a0f43191432296a1f7f1e9737e653cfe" integrity sha512-NOjp56wDrfuA5aiNAybBIjqIn1IxKeGJ8CECWZncQ/GzjZfyTYAHTCyeApYkdKkMBLHINzI4BbTGSlbCa0fXXQ== -expo-image-picker@~55.0.19: - version "55.0.19" - resolved "https://mirrors.cloud.tencent.com/npm/expo-image-picker/-/expo-image-picker-55.0.19.tgz#213eff371b26eae8218f24075468a5970c6def46" - integrity sha512-PqOOfRz7+hbB9IFN0LfNxpJJwuPlUG0Abr0qM3Wc61OJ7FFyuKJ50QJ/fFItzSuoXifET1YIFBiXx5nA8Gkinw== +expo-image-picker@~55.0.20: + version "55.0.20" + resolved "https://mirrors.cloud.tencent.com/npm/expo-image-picker/-/expo-image-picker-55.0.20.tgz#42660178a00371df03f5633856dbaad36fec96ee" + integrity sha512-lfWt/0rPWdKz8AdDEGmGHZIJSNlVc720Dlx5bfou10FU16ZV5wAbTU63nm2jkXd8hbXke4a/2Ha1dzxCVA+LQQ== dependencies: expo-image-loader "~55.0.0" -expo-image@^55.0.9, expo-image@~55.0.9: - version "55.0.9" - resolved "https://mirrors.cloud.tencent.com/npm/expo-image/-/expo-image-55.0.9.tgz#ac693f6760faa25132828c8935f74471c8145db0" - integrity sha512-+NVgWv+tr7a6EpBEaIIVVp+XfruRA2JL5xOxvd6ajvFGdH0rOhagwX1m1piAII6w7sh6uAnBr8X+fDZsav7B2w== +expo-image@^55.0.10, expo-image@~55.0.10: + version "55.0.10" + resolved "https://mirrors.cloud.tencent.com/npm/expo-image/-/expo-image-55.0.10.tgz#88f0c584c53e9f43ae40359937f4ce091f32c66a" + integrity sha512-We+vq/Z8jy8zmGxcOP8vrhiWkkwyXFdSks8cSlPi0bpu6D0Ei6l9Nj2xHWCD+yoENh92aCEe1+QRujAwXbogGA== dependencies: sf-symbols-typescript "^2.2.0" @@ -3987,22 +3987,22 @@ expo-json-utils@~55.0.2: resolved "https://mirrors.cloud.tencent.com/npm/expo-json-utils/-/expo-json-utils-55.0.2.tgz#ef79888b881ef5b92d27245d3a758bc5debcbccf" integrity sha512-QJMOZOPOG7CTnKcrdVaiummn2va1MCO56z++eyWkDv3GBRODldM6MFMDf/jTREWthFc2Nxo6TuyWRrEV9S6n/Q== -expo-keep-awake@~55.0.7: - version "55.0.7" - resolved "https://mirrors.cloud.tencent.com/npm/expo-keep-awake/-/expo-keep-awake-55.0.7.tgz#7bdddec590a6f15937abba4b17bb25e1b618aba3" - integrity sha512-QBWOEu8FkPBGYc0h0rsCkSTMJNBEKgzVsmLuQpO7V79V9sPR052k3Iiu/G8Kzmny2enyHYYed8RY+CUsip/SeQ== +expo-keep-awake@~55.0.8: + version "55.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/expo-keep-awake/-/expo-keep-awake-55.0.8.tgz#007e9ab9508c6e9dc606be6ceb7bbd2036c7ac58" + integrity sha512-PfIpMfM+STOBwkR5XOE+yVtER86c44MD+W8QD8JxuO0sT9pF7Y1SJYakWlpvX8xsGA+bjKLxftm9403s9kQhKA== expo-linear-gradient@~55.0.13: version "55.0.13" resolved "https://mirrors.cloud.tencent.com/npm/expo-linear-gradient/-/expo-linear-gradient-55.0.13.tgz#1a61751c1623dec6dd885bf7fe152b4c5f35fbb5" integrity sha512-Qz2T4jpkA15RIk29DBqI1TwW+8O9AN8MyC4TJPbh/5UnihH0yNNz3waplUO8Szh5OZ3czTGvtPQU4ysF3RDxwQ== -expo-linking@~55.0.14: - version "55.0.14" - resolved "https://mirrors.cloud.tencent.com/npm/expo-linking/-/expo-linking-55.0.14.tgz#82e4de82c7204f2437835cbf71870c605f898abd" - integrity sha512-ZSqOvJyEquf04M5/ZpQo2diK9QRnNrzgqZo7p8gzxaPPHxP6IyUJnmcd12qT+dTxnRTVmUpxFQVHHWbvwPNIwQ== +expo-linking@~55.0.15: + version "55.0.15" + resolved "https://mirrors.cloud.tencent.com/npm/expo-linking/-/expo-linking-55.0.15.tgz#5b947210172b9f76cb0323d189c37da5691dfc99" + integrity sha512-/RQh2vkNqV8Bim9Owm/evVqn2fqTvCDYHkpYPoSKbLAdydSGdHC2xZNw7Odl4wu1i1/3L4Xz//LKd3NsPWYWBQ== dependencies: - expo-constants "~55.0.15" + expo-constants "~55.0.16" invariant "^2.2.4" expo-manifests@~55.0.16: @@ -4012,30 +4012,30 @@ expo-manifests@~55.0.16: dependencies: expo-json-utils "~55.0.2" -expo-modules-autolinking@55.0.19: - version "55.0.19" - resolved "https://mirrors.cloud.tencent.com/npm/expo-modules-autolinking/-/expo-modules-autolinking-55.0.19.tgz#5dd1e06c5f584d285dc7503990f960ec5135a782" - integrity sha512-rHO1NZC/bxcKTLzkn6WYm9ErzS6qp7Kgb1NM2YxXJAYRWHwW/M7NZXyj6swWiKxyhRpcdoppRpjrz1sBuYGAjg== +expo-modules-autolinking@55.0.21: + version "55.0.21" + resolved "https://mirrors.cloud.tencent.com/npm/expo-modules-autolinking/-/expo-modules-autolinking-55.0.21.tgz#e33faea944c68f7e4dedebef5531c754bdd888fa" + integrity sha512-P9KsJgOwI7JVwxmGfRvcXkXO4LNRvHRdWmb4ukLmX15G/vZ7b6SM17yiYkPceWq1F5KeeZ11KFjEcl0y17xy7w== dependencies: - "@expo/require-utils" "^55.0.4" + "@expo/require-utils" "^55.0.5" "@expo/spawn-async" "^1.7.2" chalk "^4.1.0" commander "^7.2.0" -expo-modules-core@55.0.24: - version "55.0.24" - resolved "https://mirrors.cloud.tencent.com/npm/expo-modules-core/-/expo-modules-core-55.0.24.tgz#096e6c54b8c7b4fe479526855d29fe4b10236177" - integrity sha512-1FztZjelwf3xQZpD6+LFo6IKjnGF/PMVXYkv9aC3EybMl/ZbXji35cfhy9W5uR/bwQ7L+SVqvd5A00XOoIiO8Q== +expo-modules-core@55.0.25: + version "55.0.25" + resolved "https://mirrors.cloud.tencent.com/npm/expo-modules-core/-/expo-modules-core-55.0.25.tgz#56a8e5456fbf3b900fe92e1aa269a9f42cf4d6c0" + integrity sha512-yXpfg7aHLbuqoXocK34Vua6Aey5SCyqLygAsXAMbul9P8vfBjLpaOPiTJ5cLVF7Drfq8ownqVJO6qpGEtZ6GOw== dependencies: invariant "^2.2.4" -expo-router@~55.0.13: - version "55.0.13" - resolved "https://mirrors.cloud.tencent.com/npm/expo-router/-/expo-router-55.0.13.tgz#9ae8ff7b4f2e1a39380252e3056a5b93cd51f828" - integrity sha512-cIBR5RmQtbr+b535mlbMhmm7lweVZXFtjzJOgJTutoxIApRztl816kFRFNesnVyqQ0LZrEU0a6vqa3i0wdlRQw== +expo-router@~55.0.14: + version "55.0.14" + resolved "https://mirrors.cloud.tencent.com/npm/expo-router/-/expo-router-55.0.14.tgz#7e4995c2241efb308a923e54555e8ed7840ac167" + integrity sha512-rOn/wosp2hAPM+O2o41hnarbP5Zqv9UkHWa31KoSoiOme1tpmZd2yc93XtRAtzP0P5E5xzqq7a2rbEAarpP5XA== dependencies: - "@expo/metro-runtime" "^55.0.10" - "@expo/schema-utils" "^55.0.3" + "@expo/metro-runtime" "^55.0.11" + "@expo/schema-utils" "^55.0.4" "@radix-ui/react-slot" "^1.2.0" "@radix-ui/react-tabs" "^1.1.12" "@react-navigation/bottom-tabs" "^7.15.5" @@ -4044,10 +4044,10 @@ expo-router@~55.0.13: client-only "^0.0.1" debug "^4.3.4" escape-string-regexp "^4.0.0" - expo-glass-effect "^55.0.10" - expo-image "^55.0.9" - expo-server "^55.0.8" - expo-symbols "^55.0.7" + expo-glass-effect "^55.0.11" + expo-image "^55.0.10" + expo-server "^55.0.9" + expo-symbols "^55.0.8" fast-deep-equal "^3.1.3" invariant "^2.2.4" nanoid "^3.3.8" @@ -4066,10 +4066,10 @@ expo-secure-store@~55.0.13: resolved "https://mirrors.cloud.tencent.com/npm/expo-secure-store/-/expo-secure-store-55.0.13.tgz#b5506154748885fab0a0c0ab1a26f0acbcff119a" integrity sha512-I6r0JNO1Fd4o0Gu7Ixiic7s89lqgdUHq17uBH9y1f/AntoyKn71TdtYJH82RgfsBbu5qNVzrwImmvlANyOlITQ== -expo-server@^55.0.8: - version "55.0.8" - resolved "https://mirrors.cloud.tencent.com/npm/expo-server/-/expo-server-55.0.8.tgz#a1fbaa70a094bb4a1132f944b30ccd6e1a8cedd3" - integrity sha512-AoV5TKuO4biSzrhe/OVLyInfTT0pV9/OOc/g/oVq5vmCjL8SaSYTkES8PLt+67Tm7VqX+Dn0+kSx1nQcjEKaPw== +expo-server@^55.0.9: + version "55.0.9" + resolved "https://mirrors.cloud.tencent.com/npm/expo-server/-/expo-server-55.0.9.tgz#ae2b6d8b1f242d4f842d7bc304234a941578f97d" + integrity sha512-N5Ipn1NwqaJzEm+G97o0Jbe4g/th3R/16N1DabnYryXKCiZwDkK13/w3VfGkQN9LOOaBP+JIRxGf4M8lQKPzyA== expo-sharing@~55.0.18: version "55.0.18" @@ -4080,17 +4080,17 @@ expo-sharing@~55.0.18: "@expo/config-types" "^55.0.5" "@expo/plist" "^0.5.2" -expo-splash-screen@~55.0.19: - version "55.0.19" - resolved "https://mirrors.cloud.tencent.com/npm/expo-splash-screen/-/expo-splash-screen-55.0.19.tgz#5b916a443eb6f7b506c1b354d12d426ced919ed5" - integrity sha512-l8BWI/inLJW46Ojz5NgwvaM8LftrdXeFfZBUXhAoZxg44Qo2xKY76s0S1h3WIxWXT4sRKwK8YQzGr4k+zHubxQ== +expo-splash-screen@~55.0.20: + version "55.0.20" + resolved "https://mirrors.cloud.tencent.com/npm/expo-splash-screen/-/expo-splash-screen-55.0.20.tgz#e7b369132d4fd17df6a6234d7548f69791216ad3" + integrity sha512-WI5T0dutiZhxsqlF+jhEP4JRpQNILLlP8IpmKehsnV53Cncv6AQrKE7y1sOWwDyC2m2GBufZ/Vwam1RMt2EfmA== dependencies: - "@expo/prebuild-config" "^55.0.16" + "@expo/prebuild-config" "^55.0.17" -expo-status-bar@~55.0.5: - version "55.0.5" - resolved "https://mirrors.cloud.tencent.com/npm/expo-status-bar/-/expo-status-bar-55.0.5.tgz#85c244bee0325db84fbd02d66c752f8cd3e61d3f" - integrity sha512-qb0c3rJO2b7CC0gUVGi1JYp92oLenWdYGyk8l4YQs6U+uaXUTPv6aaFa3KkT2HON10re3AxxPNJci8rsz6kPxg== +expo-status-bar@~55.0.6: + version "55.0.6" + resolved "https://mirrors.cloud.tencent.com/npm/expo-status-bar/-/expo-status-bar-55.0.6.tgz#ae54f85e9aff081480f87e902c29ffc26343aa3f" + integrity sha512-ijOUptfdiqYt7rObZ6jrPQ8sE5YN/8MxKCIJx0b7TY4nGkSJxhPIxeoW4GXcXCA8mTQ9PiOHH/ThLZgRVZvUlQ== dependencies: react-native-is-edge-to-edge "^1.2.1" @@ -4099,18 +4099,18 @@ expo-structured-headers@~55.0.2: resolved "https://mirrors.cloud.tencent.com/npm/expo-structured-headers/-/expo-structured-headers-55.0.2.tgz#02705fae72add7bb91859d4c91ef38b07eefa676" integrity sha512-KITovrWigTOtsII5hRQ9/3ydaNcxCux5g6O+eTPLyjnye9dpkDKl5GmCLVPVKIL/d7253OtbGtWMD4m0gha5pw== -expo-symbols@^55.0.7: - version "55.0.7" - resolved "https://mirrors.cloud.tencent.com/npm/expo-symbols/-/expo-symbols-55.0.7.tgz#fafbd0dcf781272254e2c4abf7343d91d61889e7" - integrity sha512-y4ALLbncSGQzhFLw1PaIBbO39xzaw3ie249HmK6zK/WLJYfw4Z/9UU4iPKO3KCE4FyCKIzd+yRsvzvlri23YrQ== +expo-symbols@^55.0.8: + version "55.0.8" + resolved "https://mirrors.cloud.tencent.com/npm/expo-symbols/-/expo-symbols-55.0.8.tgz#4ed29c4aaa80eecb02c6109322f508bebe077ebd" + integrity sha512-Dg6BTu+fCWukdlh+3XYIr6NbqJWmK4aAQ6i6BInKnWU0ALuzVUJcMDq8Lk9bHok2hOh3OhzJqlCqEoBXPInIVQ== dependencies: "@expo-google-fonts/material-symbols" "^0.4.1" sf-symbols-typescript "^2.0.0" -expo-system-ui@~55.0.16: - version "55.0.16" - resolved "https://mirrors.cloud.tencent.com/npm/expo-system-ui/-/expo-system-ui-55.0.16.tgz#f92ce61b4c13b959fc91508f6afb30cdae76ccf2" - integrity sha512-LwFBpFzy7L4j0ZqHZaxNU4tewQXkH37N4afXu6ZrkyKsH9q5V3jOT1way/N+Hylgyx5+jGpzvae9OcphS/+iDQ== +expo-system-ui@~55.0.17: + version "55.0.17" + resolved "https://mirrors.cloud.tencent.com/npm/expo-system-ui/-/expo-system-ui-55.0.17.tgz#033635388d4bde79ec9a5ec1422722aead27a2a2" + integrity sha512-sCrQbp1VyMe63c7y7/luz88P9Ro3/jeUBXby2uYk0wHtkawUzBK9V69J3HTC4rI5eXiJMJPF2oCKO71c/7wtTg== dependencies: "@react-native/normalize-colors" "0.83.6" debug "^4.3.2" @@ -4147,36 +4147,36 @@ expo-updates@~55.0.21: ignore "^5.3.1" resolve-from "^5.0.0" -expo-web-browser@~55.0.14: - version "55.0.14" - resolved "https://mirrors.cloud.tencent.com/npm/expo-web-browser/-/expo-web-browser-55.0.14.tgz#ce58dcf8103123fd4e812d6909e390255ee6373b" - integrity sha512-bTDkBSQBnrlnYcM7Aak72AOvJuvdgA3M8p//Lazrm0Nfa77T9cRXzQ6KhLrB08V39n1+00d1dvuTWznJslkmdg== +expo-web-browser@~55.0.15: + version "55.0.15" + resolved "https://mirrors.cloud.tencent.com/npm/expo-web-browser/-/expo-web-browser-55.0.15.tgz#384f18d538d3cc6d68324b8acbbc7e48e91b586c" + integrity sha512-6hwZQob3EF+RWwZ+IvWLZjj2wI1frqx21+m/uzBqdUEHUhp2cVJi7kmxDolDmrve+ZldryZi1qfN78ALdvjHSA== -expo@~55.0.19: - version "55.0.19" - resolved "https://mirrors.cloud.tencent.com/npm/expo/-/expo-55.0.19.tgz#0ea45ce1630f65efcbce227e909cfe43a6817c8e" - integrity sha512-8nTbChg2vy7aNsX5F7KiSb552YP7dc4eD89+UjCKlFPQg4Dw7RyjYuXgFBU7ADw2JjTHl848jFLyT6nvqNROgg== +expo@~55.0.23: + version "55.0.23" + resolved "https://mirrors.cloud.tencent.com/npm/expo/-/expo-55.0.23.tgz#8b4b1fb1ca89d691081622aa4fb4c0c638aa3a4b" + integrity sha512-b+lKwfzJzFiSm9G0wVGWw3c2YoZyubbl9gHOF1ZFuK8FqtxSge8pDDJMuEFmTi14dbKwh/tirB7MiORq54r7CQ== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "55.0.27" - "@expo/config" "~55.0.15" + "@expo/cli" "55.0.29" + "@expo/config" "~55.0.16" "@expo/config-plugins" "~55.0.8" - "@expo/devtools" "55.0.2" - "@expo/fingerprint" "0.16.6" - "@expo/local-build-cache-provider" "55.0.11" - "@expo/log-box" "55.0.11" + "@expo/devtools" "55.0.3" + "@expo/fingerprint" "0.16.7" + "@expo/local-build-cache-provider" "55.0.12" + "@expo/log-box" "55.0.12" "@expo/metro" "~55.1.1" - "@expo/metro-config" "55.0.18" + "@expo/metro-config" "55.0.20" "@expo/vector-icons" "^15.0.2" "@ungap/structured-clone" "^1.3.0" - babel-preset-expo "~55.0.19" - expo-asset "~55.0.16" - expo-constants "~55.0.15" - expo-file-system "~55.0.17" - expo-font "~55.0.6" - expo-keep-awake "~55.0.7" - expo-modules-autolinking "55.0.19" - expo-modules-core "55.0.24" + babel-preset-expo "~55.0.21" + expo-asset "~55.0.17" + expo-constants "~55.0.16" + expo-file-system "~55.0.19" + expo-font "~55.0.7" + expo-keep-awake "~55.0.8" + expo-modules-autolinking "55.0.21" + expo-modules-core "55.0.25" pretty-format "^29.7.0" react-refresh "^0.14.2" whatwg-url-minimum "^0.1.1" @@ -4541,7 +4541,7 @@ has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -hasown@^2.0.2: +hasown@^2.0.2, hasown@^2.0.3: version "2.0.3" resolved "https://mirrors.cloud.tencent.com/npm/hasown/-/hasown-2.0.3.tgz#5e5c2b15b60370a4c7930c383dfb76bf17bc403c" integrity sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg== @@ -4760,11 +4760,11 @@ is-callable@^1.2.7: integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.16.1: - version "2.16.1" - resolved "https://mirrors.cloud.tencent.com/npm/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + version "2.16.2" + resolved "https://mirrors.cloud.tencent.com/npm/is-core-module/-/is-core-module-2.16.2.tgz#3e07450a8080ebce3fbf0cac494f4d2ab324e082" + integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== dependencies: - hasown "^2.0.2" + hasown "^2.0.3" is-data-view@^1.0.1, is-data-view@^1.0.2: version "1.0.2" @@ -5076,9 +5076,9 @@ jimp-compact@0.16.1: integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== jiti@^2.6.1: - version "2.6.1" - resolved "https://mirrors.cloud.tencent.com/npm/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" - integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== + version "2.7.0" + resolved "https://mirrors.cloud.tencent.com/npm/jiti/-/jiti-2.7.0.tgz#974228f2f4ca2bc21885a1797b45fea68e950c64" + integrity sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -5351,9 +5351,9 @@ lru-cache@^10.0.1, lru-cache@^10.2.0: integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== lru-cache@^11.0.0: - version "11.3.5" - resolved "https://mirrors.cloud.tencent.com/npm/lru-cache/-/lru-cache-11.3.5.tgz#29047d348c0b2793e3112a01c739bb7c6d855637" - integrity sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw== + version "11.3.6" + resolved "https://mirrors.cloud.tencent.com/npm/lru-cache/-/lru-cache-11.3.6.tgz#f0306ad6e9f0a5dc25b16aeba4e8f57b7ec2df55" + integrity sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A== lru-cache@^5.1.1: version "5.1.1" @@ -6084,9 +6084,9 @@ possible-typed-array-names@^1.0.0: integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== postcss@^8.5.6: - version "8.5.13" - resolved "https://mirrors.cloud.tencent.com/npm/postcss/-/postcss-8.5.13.tgz#6cfaf647f2e7ef69850208eccd849e0d3f65d420" - integrity sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag== + version "8.5.14" + resolved "https://mirrors.cloud.tencent.com/npm/postcss/-/postcss-8.5.14.tgz#a66c2d7808fadf69ebb5b84a03f8bafd76c4919c" + integrity sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg== dependencies: nanoid "^3.3.11" picocolors "^1.1.1" @@ -7667,6 +7667,6 @@ zod@^3.25.76: integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ== zustand@^5.0.12: - version "5.0.12" - resolved "https://mirrors.cloud.tencent.com/npm/zustand/-/zustand-5.0.12.tgz#ed36f647aa89965c4019b671dfc23ef6c6e3af8c" - integrity sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g== + version "5.0.13" + resolved "https://mirrors.cloud.tencent.com/npm/zustand/-/zustand-5.0.13.tgz#06995c126e8903cd27100af04da91c36ae3051ed" + integrity sha512-efI2tVaVQPqtOh114loML/Z80Y4NP3yc+Ff0fYiZJPauNeWZeIp/bRFD7I9bfmCOYBh/PHxlglQ9+wvlwnPikQ==