diff --git a/apps/expo/src/hooks/useDownloadManager.tsx b/apps/expo/src/hooks/useDownloadManager.tsx index 70aba2d..f13f8a6 100644 --- a/apps/expo/src/hooks/useDownloadManager.tsx +++ b/apps/expo/src/hooks/useDownloadManager.tsx @@ -124,97 +124,104 @@ export const useDownloadManager = () => { [setDownloads], ); - const saveFileToMediaLibraryAndDeleteOriginal = async ( - fileUri: string, - download: Download, - ): Promise => { - console.log("Saving file to media library and deleting original", fileUri); - try { - updateDownloadItem(download.id, { status: "importing" }); + const saveFileToMediaLibraryAndDeleteOriginal = useCallback( + async (fileUri: string, download: Download): Promise => { + console.log( + "Saving file to media library and deleting original", + fileUri, + ); + try { + updateDownloadItem(download.id, { status: "importing" }); - const asset = await MediaLibrary.createAssetAsync(fileUri); - const { localUri } = await MediaLibrary.getAssetInfoAsync(asset); - await FileSystem.deleteAsync(fileUri); + const asset = await MediaLibrary.createAssetAsync(fileUri); + const { localUri } = await MediaLibrary.getAssetInfoAsync(asset); + await FileSystem.deleteAsync(fileUri); - updateDownloadItem(download.id, { - status: "finished", - localPath: localUri, - }); - console.log("File saved to media library and original deleted"); - showToast("Download finished", { - burntOptions: { preset: "done" }, - }); - return asset; - } catch (error) { - console.error("Error saving file to media library:", error); - showToast("Download failed", { - burntOptions: { preset: "error" }, - }); - } - }; - - const downloadMP4 = async ( - url: string, - downloadItem: Download, - headers: Record, - ): Promise => { - let lastBytesWritten = 0; - let lastTimestamp = Date.now(); - - const updateProgress = (downloadProgress: DownloadProgressData) => { - const currentTime = Date.now(); - const timeElapsed = (currentTime - lastTimestamp) / 1000; - - if (timeElapsed === 0) return; - - const newBytes = downloadProgress.totalBytesWritten - lastBytesWritten; - const speed = newBytes / timeElapsed / 1024 / 1024; - const progress = - downloadProgress.totalBytesWritten / - downloadProgress.totalBytesExpectedToWrite; - - updateDownloadItem(downloadItem.id, { - progress, - speed, - fileSize: downloadProgress.totalBytesExpectedToWrite, - downloaded: downloadProgress.totalBytesWritten, - }); - - lastBytesWritten = downloadProgress.totalBytesWritten; - lastTimestamp = currentTime; - }; - - const fileUri = `${FileSystem.cacheDirectory}movie-web${url.split("/").pop()}`; - if ( - !(await FileSystem.getInfoAsync(`${FileSystem.cacheDirectory}movie-web`)) - .exists - ) { - console.error("Cache directory is unavailable"); - return; - } - - const downloadResumable = FileSystem.createDownloadResumable( - url, - fileUri, - { - headers, - }, - updateProgress, - ); - - try { - const result = await downloadResumable.downloadAsync(); - if (result) { - console.log("Finished downloading to ", result.uri); - return saveFileToMediaLibraryAndDeleteOriginal( - result.uri, - downloadItem, - ); + updateDownloadItem(download.id, { + status: "finished", + localPath: localUri, + }); + console.log("File saved to media library and original deleted"); + showToast("Download finished", { + burntOptions: { preset: "done" }, + }); + return asset; + } catch (error) { + console.error("Error saving file to media library:", error); + showToast("Download failed", { + burntOptions: { preset: "error" }, + }); } - } catch (e) { - console.error(e); - } - }; + }, + [updateDownloadItem, showToast], + ); + + const downloadMP4 = useCallback( + async ( + url: string, + downloadItem: Download, + headers: Record, + ): Promise => { + let lastBytesWritten = 0; + let lastTimestamp = Date.now(); + + const updateProgress = (downloadProgress: DownloadProgressData) => { + const currentTime = Date.now(); + const timeElapsed = (currentTime - lastTimestamp) / 1000; + + if (timeElapsed === 0) return; + + const newBytes = downloadProgress.totalBytesWritten - lastBytesWritten; + const speed = newBytes / timeElapsed / 1024 / 1024; + const progress = + downloadProgress.totalBytesWritten / + downloadProgress.totalBytesExpectedToWrite; + + updateDownloadItem(downloadItem.id, { + progress, + speed, + fileSize: downloadProgress.totalBytesExpectedToWrite, + downloaded: downloadProgress.totalBytesWritten, + }); + + lastBytesWritten = downloadProgress.totalBytesWritten; + lastTimestamp = currentTime; + }; + + const fileUri = `${FileSystem.cacheDirectory}movie-web${url.split("/").pop()}`; + if ( + !( + await FileSystem.getInfoAsync(`${FileSystem.cacheDirectory}movie-web`) + ).exists + ) { + console.error("Cache directory is unavailable"); + return; + } + + const downloadResumable = FileSystem.createDownloadResumable( + url, + fileUri, + { + headers, + }, + updateProgress, + ); + + try { + const result = await downloadResumable.downloadAsync(); + if (result) { + console.log("Finished downloading to ", result.uri); + return saveFileToMediaLibraryAndDeleteOriginal( + result.uri, + downloadItem, + ); + } + } catch (e) { + console.error(e); + } + }, + [updateDownloadItem, saveFileToMediaLibraryAndDeleteOriginal], + ); const cleanupDownload = useCallback( async (segmentDir: string, download: Download) => { @@ -224,162 +231,177 @@ export const useDownloadManager = () => { [removeDownload], ); - const downloadHLS = async ( - url: string, - download: Download, - headers: Record, - ) => { - const segments = await extractSegmentsFromHLS(url, headers); + const downloadHLS = useCallback( + async ( + url: string, + download: Download, + headers: Record, + ) => { + const segments = await extractSegmentsFromHLS(url, headers); - if (!segments || segments.length === 0) { - return removeDownload(download); - } + if (!segments || segments.length === 0) { + return removeDownload(download); + } - const totalSegments = segments.length; - let segmentsDownloaded = 0; + const totalSegments = segments.length; + let segmentsDownloaded = 0; - const segmentDir = `${FileSystem.cacheDirectory}movie-web/segments/`; - await ensureDirExists(segmentDir); + const segmentDir = `${FileSystem.cacheDirectory}movie-web/segments/`; + await ensureDirExists(segmentDir); - const updateProgress = () => { - const progress = segmentsDownloaded / totalSegments; - updateDownloadItem(download.id, { - progress, - downloaded: segmentsDownloaded, - fileSize: totalSegments, - }); - }; + const updateProgress = () => { + const progress = segmentsDownloaded / totalSegments; + updateDownloadItem(download.id, { + progress, + downloaded: segmentsDownloaded, + fileSize: totalSegments, + }); + }; - const localSegmentPaths = []; + const localSegmentPaths = []; + + for (const [index, segment] of segments.entries()) { + if (getCancellationFlag(download.id)) { + await cleanupDownload(segmentDir, download); + return; + } + + const segmentFile = `${segmentDir}${index}.ts`; + localSegmentPaths.push(segmentFile); + + try { + await downloadSegment(segment, segmentFile, headers); + + if (getCancellationFlag(download.id)) { + await cleanupDownload(segmentDir, download); + return; + } + + segmentsDownloaded++; + updateProgress(); + } catch (e) { + console.error(e); + if (getCancellationFlag(download.id)) { + await cleanupDownload(segmentDir, download); + return; + } + } + } - for (const [index, segment] of segments.entries()) { if (getCancellationFlag(download.id)) { - await cleanupDownload(segmentDir, download); + return removeDownload(download); + } + + updateDownloadItem(download.id, { status: "merging" }); + const uri = await VideoManager.mergeVideos( + localSegmentPaths, + `${FileSystem.cacheDirectory}movie-web/output.mp4`, + ); + const asset = await saveFileToMediaLibraryAndDeleteOriginal( + uri, + download, + ); + return asset; + }, + [ + getCancellationFlag, + updateDownloadItem, + saveFileToMediaLibraryAndDeleteOriginal, + removeDownload, + cleanupDownload, + ], + ); + + const startDownload = useCallback( + async ( + url: string, + type: "mp4" | "hls", + media: ScrapeMedia, + headers?: Record, + ): Promise => { + const { allowMobileData } = useNetworkSettingsStore.getState(); + + const { type: networkType } = await Network.getNetworkStateAsync(); + + if (networkType === NetworkStateType.CELLULAR && !allowMobileData) { + showToast("Mobile data downloads are disabled", { + burntOptions: { preset: "error" }, + }); return; } - const segmentFile = `${segmentDir}${index}.ts`; - localSegmentPaths.push(segmentFile); - - try { - await downloadSegment(segment, segmentFile, headers); - - if (getCancellationFlag(download.id)) { - await cleanupDownload(segmentDir, download); - return; - } - - segmentsDownloaded++; - updateProgress(); - } catch (e) { - console.error(e); - if (getCancellationFlag(download.id)) { - await cleanupDownload(segmentDir, download); - return; - } + const { status } = await MediaLibrary.requestPermissionsAsync(); + if (status !== MediaLibrary.PermissionStatus.GRANTED) { + showToast("Permission denied", { + burntOptions: { preset: "error" }, + }); + return; } - } - if (getCancellationFlag(download.id)) { - return removeDownload(download); - } - - updateDownloadItem(download.id, { status: "merging" }); - const uri = await VideoManager.mergeVideos( - localSegmentPaths, - `${FileSystem.cacheDirectory}movie-web/output.mp4`, - ); - const asset = await saveFileToMediaLibraryAndDeleteOriginal(uri, download); - return asset; - }; - - const startDownload = async ( - url: string, - type: "mp4" | "hls", - media: ScrapeMedia, - headers?: Record, - ): Promise => { - const { allowMobileData } = useNetworkSettingsStore.getState(); - - const { type: networkType } = await Network.getNetworkStateAsync(); - - if (networkType === NetworkStateType.CELLULAR && !allowMobileData) { - showToast("Mobile data downloads are disabled", { - burntOptions: { preset: "error" }, - }); - return; - } - - const { status } = await MediaLibrary.requestPermissionsAsync(); - if (status !== MediaLibrary.PermissionStatus.GRANTED) { - showToast("Permission denied", { - burntOptions: { preset: "error" }, - }); - return; - } - - const existingDownload = downloads.find( - (d) => d.media.tmdbId === media.tmdbId, - ); - - if (existingDownload && media.type === "movie") { - showToast("Download already exists", { - burntOptions: { preset: "error" }, - }); - return; - } - - if (existingDownload && media.type === "show") { - const existingEpisode = existingDownload.downloads.find( - (d) => - d.media.type === "show" && - d.media.episode.tmdbId === media.episode.tmdbId, + const existingDownload = downloads.find( + (d) => d.media.tmdbId === media.tmdbId, ); - if (existingEpisode) { + if (existingDownload && media.type === "movie") { showToast("Download already exists", { burntOptions: { preset: "error" }, }); return; } - } - showToast("Download started", { - burntOptions: { preset: "none" }, - }); - const newDownload: Download = { - id: `download-${Date.now()}-${Math.random().toString(16).slice(2)}`, - progress: 0, - speed: 0, - fileSize: 0, - downloaded: 0, - type, - url, - status: "downloading", - media, - }; - - if (existingDownload) { - existingDownload.downloads.push(newDownload); - setDownloads((prev) => { - return prev.map((d) => - d.media.tmdbId === media.tmdbId ? existingDownload : d, + if (existingDownload && media.type === "show") { + const existingEpisode = existingDownload.downloads.find( + (d) => + d.media.type === "show" && + d.media.episode.tmdbId === media.episode.tmdbId, ); - }); - } else { - setDownloads((prev) => { - return [...prev, { media, downloads: [newDownload] }]; - }); - } - if (type === "mp4") { - const asset = await downloadMP4(url, newDownload, headers ?? {}); - return asset; - } else if (type === "hls") { - const asset = await downloadHLS(url, newDownload, headers ?? {}); - return asset; - } - }; + if (existingEpisode) { + showToast("Download already exists", { + burntOptions: { preset: "error" }, + }); + return; + } + } + showToast("Download started", { + burntOptions: { preset: "none" }, + }); + + const newDownload: Download = { + id: `download-${Date.now()}-${Math.random().toString(16).slice(2)}`, + progress: 0, + speed: 0, + fileSize: 0, + downloaded: 0, + type, + url, + status: "downloading", + media, + }; + + if (existingDownload) { + existingDownload.downloads.push(newDownload); + setDownloads((prev) => { + return prev.map((d) => + d.media.tmdbId === media.tmdbId ? existingDownload : d, + ); + }); + } else { + setDownloads((prev) => { + return [...prev, { media, downloads: [newDownload] }]; + }); + } + + if (type === "mp4") { + const asset = await downloadMP4(url, newDownload, headers ?? {}); + return asset; + } else if (type === "hls") { + const asset = await downloadHLS(url, newDownload, headers ?? {}); + return asset; + } + }, + [downloads, showToast, setDownloads, downloadMP4, downloadHLS], + ); const downloadSegment = async ( segmentUrl: string, diff --git a/packages/provider-utils/package.json b/packages/provider-utils/package.json index 1891f99..caa9de7 100644 --- a/packages/provider-utils/package.json +++ b/packages/provider-utils/package.json @@ -29,7 +29,7 @@ }, "prettier": "@movie-web/prettier-config", "dependencies": { - "@movie-web/providers": "^2.2.9", + "@movie-web/providers": "^2.3.0", "parse-hls": "^1.0.7", "srt-webvtt": "^2.0.0", "tmdb-ts": "^1.6.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1e91f7..d37c775 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,7 +28,7 @@ importers: dependencies: '@expo/metro-config': specifier: ^0.17.3 - version: 0.17.3(@react-native/babel-preset@0.75.0-main) + version: 0.17.3(@react-native/babel-preset@0.73.21) '@movie-web/api': specifier: '*' version: link:../../packages/api @@ -79,7 +79,7 @@ importers: version: 0.7.0 expo: specifier: ~50.0.14 - version: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + version: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) expo-alternate-app-icons: specifier: ^0.1.7 version: 0.1.7(expo@50.0.14)(react-native@0.73.6)(react@18.2.0) @@ -265,8 +265,8 @@ importers: packages/provider-utils: dependencies: '@movie-web/providers': - specifier: ^2.2.9 - version: 2.2.9 + specifier: ^2.3.0 + version: 2.3.0 parse-hls: specifier: ^1.0.7 version: 1.0.7 @@ -446,11 +446,6 @@ packages: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - /@babel/compat-data@7.24.4: - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} - engines: {node: '>=6.9.0'} - dev: false - /@babel/core@7.23.9: resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} engines: {node: '>=6.9.0'} @@ -521,24 +516,6 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.23.9): - resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.23.9) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - dev: false - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} @@ -564,21 +541,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.23.9): - resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.0 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} @@ -608,13 +570,6 @@ packages: dependencies: '@babel/types': 7.23.9 - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.0 - dev: false - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} @@ -664,18 +619,6 @@ packages: '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - /@babel/helper-replace-supers@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: false - /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} @@ -746,14 +689,6 @@ packages: dependencies: '@babel/types': 7.24.0 - /@babel/parser@7.24.4: - resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.24.0 - dev: false - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} @@ -833,29 +768,6 @@ packages: '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.9) dev: false - /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.23.9) - dev: false - - /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.23.9): - resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) - dev: false - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.9): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} @@ -981,16 +893,6 @@ packages: '@babel/helper-plugin-utils': 7.24.0 dev: false - /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: @@ -1009,16 +911,6 @@ packages: '@babel/helper-plugin-utils': 7.24.0 dev: false - /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} @@ -1139,16 +1031,6 @@ packages: '@babel/helper-plugin-utils': 7.24.0 dev: false - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -1201,18 +1083,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) - dev: false - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} @@ -1231,16 +1101,6 @@ packages: '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.23.9): - resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} @@ -1278,23 +1138,6 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - /@babel/plugin-transform-classes@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.23.9) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: false - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} @@ -1305,17 +1148,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.23.9 - /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/template': 7.24.0 - dev: false - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} @@ -1325,16 +1157,6 @@ packages: '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} @@ -1395,17 +1217,6 @@ packages: '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.9) dev: false - /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.23.9) - dev: false - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} @@ -1427,18 +1238,6 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} @@ -1458,16 +1257,6 @@ packages: '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-literals@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} @@ -1508,18 +1297,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-simple-access': 7.22.5 - dev: false - /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} engines: {node: '>=6.9.0'} @@ -1644,16 +1421,6 @@ packages: '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} @@ -1664,17 +1431,6 @@ packages: '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} @@ -1687,19 +1443,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) - dev: false - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} @@ -1719,16 +1462,6 @@ packages: '@babel/helper-plugin-utils': 7.24.0 dev: false - /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} engines: {node: '>=6.9.0'} @@ -1749,16 +1482,6 @@ packages: '@babel/helper-plugin-utils': 7.24.0 dev: false - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} @@ -1769,16 +1492,6 @@ packages: '@babel/helper-plugin-utils': 7.24.0 dev: false - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.9): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} @@ -1840,23 +1553,6 @@ packages: - supports-color dev: false - /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.23.9): - resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.0 - babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.23.9) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.23.9) - babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.23.9) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} @@ -1886,17 +1582,6 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-spread@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: false - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} @@ -1906,16 +1591,6 @@ packages: '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} @@ -1957,19 +1632,6 @@ packages: '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) dev: false - /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.23.9): - resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.23.9) - dev: false - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} @@ -1999,17 +1661,6 @@ packages: '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.23.9): - resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) - '@babel/helper-plugin-utils': 7.24.0 - dev: false - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} @@ -2529,7 +2180,7 @@ packages: safe-json-stringify: 1.2.0 dev: false - /@expo/cli@0.17.8(@react-native/babel-preset@0.75.0-main)(expo-modules-autolinking@1.10.3): + /@expo/cli@0.17.8(@react-native/babel-preset@0.73.21)(expo-modules-autolinking@1.10.3): resolution: {integrity: sha512-yfkoghCltbGPDbRI71Qu3puInjXx4wO82+uhW82qbWLvosfIN7ep5Gr0Lq54liJpvlUG6M0IXM1GiGqcCyP12w==} hasBin: true dependencies: @@ -2541,7 +2192,7 @@ packages: '@expo/env': 0.2.2 '@expo/image-utils': 0.4.1 '@expo/json-file': 8.3.0 - '@expo/metro-config': 0.17.6(@react-native/babel-preset@0.75.0-main) + '@expo/metro-config': 0.17.6(@react-native/babel-preset@0.73.21) '@expo/osascript': 2.1.0 '@expo/package-manager': 1.4.2 '@expo/plist': 0.1.0 @@ -2756,7 +2407,7 @@ packages: write-file-atomic: 2.4.3 dev: false - /@expo/metro-config@0.17.3(@react-native/babel-preset@0.75.0-main): + /@expo/metro-config@0.17.3(@react-native/babel-preset@0.73.21): resolution: {integrity: sha512-YW8ixbaz6yL7/Mg1rJJejiAAVQQKjGY1wXvT2Dh487r/r9/j1yE1YRS/oRY1yItYzbnHvO0p0jMnEGfiFYL3Tg==} peerDependencies: '@react-native/babel-preset': '*' @@ -2769,7 +2420,7 @@ packages: '@expo/env': 0.2.1 '@expo/json-file': 8.3.0 '@expo/spawn-async': 1.7.2 - '@react-native/babel-preset': 0.75.0-main(@babel/core@7.23.9)(@babel/preset-env@7.23.9) + '@react-native/babel-preset': 0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9) babel-preset-fbjs: 3.4.0(@babel/core@7.23.9) chalk: 4.1.2 debug: 4.3.4 @@ -2786,7 +2437,7 @@ packages: - supports-color dev: false - /@expo/metro-config@0.17.6(@react-native/babel-preset@0.75.0-main): + /@expo/metro-config@0.17.6(@react-native/babel-preset@0.73.21): resolution: {integrity: sha512-WaC1C+sLX/Wa7irwUigLhng3ckmXIEQefZczB8DfYmleV6uhfWWo2kz/HijFBpV7FKs2cW6u8J/aBQpFkxlcqg==} peerDependencies: '@react-native/babel-preset': '*' @@ -2799,7 +2450,7 @@ packages: '@expo/env': 0.2.2 '@expo/json-file': 8.3.0 '@expo/spawn-async': 1.7.2 - '@react-native/babel-preset': 0.75.0-main(@babel/core@7.23.9)(@babel/preset-env@7.23.9) + '@react-native/babel-preset': 0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9) babel-preset-fbjs: 3.4.0(@babel/core@7.23.9) chalk: 4.1.2 debug: 4.3.4 @@ -3235,8 +2886,8 @@ packages: tslib: 2.6.2 dev: false - /@movie-web/providers@2.2.9: - resolution: {integrity: sha512-NHsyplM9Oe4DK3lIkNaEk0CqoQ6IqlaWXeDh01jj+DH4I4EJjSD4ow7OTeAC+BLz3Gwj6fh/vaE2WBGevPTDkQ==} + /@movie-web/providers@2.3.0: + resolution: {integrity: sha512-jr3C9alAODEyxgWSBMZ6LlrubrZCfpraTuunf7sPpY19WcV8rHbfz1kxeLdBXC2BqPfgQmipVr+KsXvCQqKhXw==} requiresBuild: true dependencies: cheerio: 1.0.0-rc.12 @@ -3601,16 +3252,6 @@ packages: - supports-color dev: false - /@react-native/babel-plugin-codegen@0.75.0-main(@babel/preset-env@7.23.9): - resolution: {integrity: sha512-gEl+bl+orntqNA3yGETGeHLNzDnZuQfO074BreX/l80WnZbx00/BJ57IkZ372j6I+gjki+3dYeRQOp82m/sUWQ==} - engines: {node: '>=18'} - dependencies: - '@react-native/codegen': 0.75.0-main(@babel/preset-env@7.23.9) - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - dev: false - /@react-native/babel-preset@0.73.21(@babel/core@7.23.9)(@babel/preset-env@7.23.9): resolution: {integrity: sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==} engines: {node: '>=18'} @@ -3664,60 +3305,6 @@ packages: - supports-color dev: false - /@react-native/babel-preset@0.75.0-main(@babel/core@7.23.9)(@babel/preset-env@7.23.9): - resolution: {integrity: sha512-yTyft0jSbTEfTfDUUfllJqKWLl3rNMiVMFjuWzMigikKAlSwKKUC/DxTEUfMwekFU05TjDyEOtigOTrm2yuoRQ==} - engines: {node: '>=18'} - peerDependencies: - '@babel/core': '*' - dependencies: - '@babel/core': 7.23.9 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.23.9) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.23.9) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.9) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.23.9) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.9) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.23.9) - '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) - '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.23.9) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.23.9) - '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.23.9) - '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.23.9) - '@babel/template': 7.24.0 - '@react-native/babel-plugin-codegen': 0.75.0-main(@babel/preset-env@7.23.9) - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.23.9) - react-refresh: 0.14.0 - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - dev: false - /@react-native/codegen@0.73.3(@babel/preset-env@7.23.9): resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==} engines: {node: '>=18'} @@ -3736,24 +3323,6 @@ packages: - supports-color dev: false - /@react-native/codegen@0.75.0-main(@babel/preset-env@7.23.9): - resolution: {integrity: sha512-vcIu7x7o/3xn9UQdOPqA6B/jtxDHB+xTIDlVe7nym+0ua/OIOwYoVscTb0NtHuEjGKO1G5CTWNhl34BFhIs0+g==} - engines: {node: '>=18'} - peerDependencies: - '@babel/preset-env': ^7.1.6 - dependencies: - '@babel/parser': 7.24.4 - '@babel/preset-env': 7.23.9(@babel/core@7.23.9) - glob: 7.2.3 - hermes-parser: 0.20.1 - invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.23.9) - mkdirp: 0.5.6 - nullthrows: 1.1.1 - transitivePeerDependencies: - - supports-color - dev: false - /@react-native/community-cli-plugin@0.73.17(@babel/core@7.23.9)(@babel/preset-env@7.23.9): resolution: {integrity: sha512-F3PXZkcHg+1ARIr6FRQCQiB7ZAA+MQXGmq051metRscoLvgYJwj7dgC8pvgy0kexzUkHu5BNKrZeySzUft3xuQ==} engines: {node: '>=18'} @@ -4002,7 +3571,7 @@ packages: /@remix-run/web-stream@1.1.0: resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==} dependencies: - web-streams-polyfill: 3.3.2 + web-streams-polyfill: 3.3.3 dev: false /@salihgun/react-native-video-processor@0.3.1(ffmpeg-kit-react-native@6.0.2)(react-native-video@5.2.1)(react-native@0.73.6)(react@18.2.0): @@ -6320,19 +5889,6 @@ packages: resolve: 1.22.8 dev: true - /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.23.9): - resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.23.9) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} peerDependencies: @@ -6345,18 +5901,6 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.23.9): - resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.23.9) - core-js-compat: 3.36.1 - transitivePeerDependencies: - - supports-color - dev: false - /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} peerDependencies: @@ -6378,17 +5922,6 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.23.9): - resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.9 - '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.23.9) - transitivePeerDependencies: - - supports-color - dev: false - /babel-plugin-react-native-web@0.18.12: resolution: {integrity: sha512-4djr9G6fMdwQoD6LQ7hOKAm39+y12flWgovAqS1k5O8f42YQ3A1FFMyV5kKfetZuGhZO5BmNmOdRRZQ1TixtDw==} dev: false @@ -6633,17 +6166,6 @@ packages: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.3) - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001608 - electron-to-chromium: 1.4.733 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) - dev: false - /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -6696,7 +6218,7 @@ packages: react: '*' react-native: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) react: 18.2.0 react-native: 0.73.6(@babel/core@7.23.9)(@babel/preset-env@7.23.9)(react@18.2.0) sf-symbols-typescript: 1.0.0 @@ -6796,10 +6318,6 @@ packages: /caniuse-lite@1.0.30001583: resolution: {integrity: sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==} - /caniuse-lite@1.0.30001608: - resolution: {integrity: sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==} - dev: false - /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -7189,12 +6707,6 @@ packages: dependencies: browserslist: 4.22.3 - /core-js-compat@3.36.1: - resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} - dependencies: - browserslist: 4.23.0 - dev: false - /core-js-pure@3.35.1: resolution: {integrity: sha512-zcIdi/CL3MWbBJYo5YCeVAAx+Sy9yJE9I3/u9LkFABwbeaPhTMRWraM8mYFp9jW5Z50hOy7FVzCc8dCrpZqtIQ==} requiresBuild: true @@ -7684,10 +7196,6 @@ packages: /electron-to-chromium@1.4.656: resolution: {integrity: sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q==} - /electron-to-chromium@1.4.733: - resolution: {integrity: sha512-gUI9nhI2iBGF0OaYYLKOaOtliFMl+Bt1rY7VmEjwxOxqoYLub/D9xmduPEhbw2imE6gYkJKhIE5it+KE2ulVxQ==} - dev: false - /elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} dependencies: @@ -8261,7 +7769,7 @@ packages: react: '*' react-native: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) react: 18.2.0 react-native: 0.73.6(@babel/core@7.23.9)(@babel/preset-env@7.23.9)(react@18.2.0) dev: false @@ -8271,7 +7779,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-asset@9.0.2(expo@50.0.14): @@ -8293,7 +7801,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-brightness@11.8.0(expo@50.0.14): @@ -8301,7 +7809,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-build-properties@0.11.1(expo@50.0.14): @@ -8310,7 +7818,7 @@ packages: expo: '*' dependencies: ajv: 8.12.0 - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) semver: 7.5.4 dev: false @@ -8320,7 +7828,7 @@ packages: expo: '*' dependencies: '@expo/config': 8.5.4 - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) transitivePeerDependencies: - supports-color dev: false @@ -8330,7 +7838,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-font@11.10.3(expo@50.0.14): @@ -8338,7 +7846,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) fontfaceobserver: 2.3.0 dev: false @@ -8347,7 +7855,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-keep-awake@12.8.2(expo@50.0.14): @@ -8355,7 +7863,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-linear-gradient@12.7.2(expo@50.0.14): @@ -8363,7 +7871,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-linking@6.2.2(expo@50.0.14): @@ -8381,7 +7889,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-modules-autolinking@1.10.3: @@ -8411,7 +7919,7 @@ packages: dependencies: '@react-native/normalize-color': 2.1.0 debug: 4.3.4 - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) transitivePeerDependencies: - supports-color dev: false @@ -8421,7 +7929,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-router@3.4.8(expo-constants@15.4.5)(expo-linking@6.2.2)(expo-modules-autolinking@1.10.3)(expo-status-bar@1.11.1)(expo@50.0.14)(react-dom@18.2.0)(react-native-reanimated@3.6.2)(react-native-safe-area-context@4.8.2)(react-native-screens@3.29.0)(react-native@0.73.6)(react@18.2.0): @@ -8450,7 +7958,7 @@ packages: '@react-navigation/bottom-tabs': 6.5.11(@react-navigation/native@6.1.9)(react-native-safe-area-context@4.8.2)(react-native-screens@3.29.0)(react-native@0.73.6)(react@18.2.0) '@react-navigation/native': 6.1.9(react-native@0.73.6)(react@18.2.0) '@react-navigation/native-stack': 6.9.17(@react-navigation/native@6.1.9)(react-native-safe-area-context@4.8.2)(react-native-screens@3.29.0)(react-native@0.73.6)(react@18.2.0) - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) expo-constants: 15.4.5(expo@50.0.14) expo-linking: 6.2.2(expo@50.0.14) expo-splash-screen: 0.26.4(expo-modules-autolinking@1.10.3)(expo@50.0.14) @@ -8474,7 +7982,7 @@ packages: peerDependencies: expo: '*' dependencies: - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) dev: false /expo-splash-screen@0.26.4(expo-modules-autolinking@1.10.3)(expo@50.0.14): @@ -8483,7 +7991,7 @@ packages: expo: '*' dependencies: '@expo/prebuild-config': 6.7.4(expo-modules-autolinking@1.10.3) - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) transitivePeerDependencies: - encoding - expo-modules-autolinking @@ -8501,7 +8009,7 @@ packages: dependencies: '@react-native/normalize-color': 2.1.0 debug: 4.3.4 - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) transitivePeerDependencies: - supports-color dev: false @@ -8512,19 +8020,19 @@ packages: expo: '*' dependencies: compare-urls: 2.0.0 - expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main) + expo: 50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21) url: 0.11.3 dev: false - /expo@50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.75.0-main): + /expo@50.0.14(@babel/core@7.23.9)(@react-native/babel-preset@0.73.21): resolution: {integrity: sha512-yLPdxCMVAbmeEIpzzyAuJ79wvr6ToDDtQmuLDMAgWtjqP8x3CGddXxUe07PpKEQgzwJabdHvCLP5Bv94wMFIjQ==} hasBin: true dependencies: '@babel/runtime': 7.23.9 - '@expo/cli': 0.17.8(@react-native/babel-preset@0.75.0-main)(expo-modules-autolinking@1.10.3) + '@expo/cli': 0.17.8(@react-native/babel-preset@0.73.21)(expo-modules-autolinking@1.10.3) '@expo/config': 8.5.4 '@expo/config-plugins': 7.8.4 - '@expo/metro-config': 0.17.6(@react-native/babel-preset@0.75.0-main) + '@expo/metro-config': 0.17.6(@react-native/babel-preset@0.73.21) '@expo/vector-icons': 14.0.0 babel-preset-expo: 10.0.1(@babel/core@7.23.9) expo-asset: 9.0.2(expo@50.0.14) @@ -9234,10 +8742,6 @@ packages: resolution: {integrity: sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ==} dev: false - /hermes-estree@0.20.1: - resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} - dev: false - /hermes-parser@0.15.0: resolution: {integrity: sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==} dependencies: @@ -9250,12 +8754,6 @@ packages: hermes-estree: 0.18.2 dev: false - /hermes-parser@0.20.1: - resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} - dependencies: - hermes-estree: 0.20.1 - dev: false - /hermes-profile-transformer@0.0.6: resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} engines: {node: '>=8'} @@ -13931,17 +13429,6 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: false - /update-check@1.5.4: resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} dependencies: @@ -14107,11 +13594,6 @@ packages: '@zxing/text-encoding': 0.9.0 dev: false - /web-streams-polyfill@3.3.2: - resolution: {integrity: sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==} - engines: {node: '>= 8'} - dev: false - /web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'}