From 4da580da888705a2ebc888e378fb7bc2286bf192 Mon Sep 17 00:00:00 2001 From: Johannes Klein Date: Fri, 9 Feb 2024 22:35:46 +0100 Subject: [PATCH] v2.15.7 (#665) * Bump version * Add TODOs * Upgrade inaturalistjs * Use global inatjs config instead of request specific user-agent * Computer vision from file replacement for Android (#663) * Use different plugin branch * Replace prediction call with new plugin, add iOS * Bump version * Bundle update * Use lates vision plugin On Android this uses bilinear filter rescaling instead of nearest-neighbour. * Upgrade RN 0.71.16 * Bump build * Update Gemfile.lock --- Gemfile | 4 +- Gemfile.lock | 55 ++- android/app/build.gradle | 4 +- components/Camera/Gallery/GalleryImageList.js | 31 +- .../Home/Announcements/Announcements.js | 17 +- components/PostToiNat/hooks/postingHooks.js | 7 +- components/Providers/ObservationProvider.js | 11 +- components/Species/OnlineOnlyCards/INatObs.js | 7 +- .../Species/OnlineOnlyCards/SimilarSpecies.js | 7 +- .../Species/OnlineOnlyCards/SpeciesStats.js | 7 +- components/iNaturalist/hooks/inatHooks.js | 7 +- index.js | 6 + ios/Podfile.lock | 450 +++++++++--------- ios/Seek.xcodeproj/project.pbxproj | 12 +- ios/Seek/Info.plist | 4 +- package-lock.json | 30 +- package.json | 6 +- utility/customHooks.js | 6 +- utility/loginHelpers.js | 5 +- utility/speciesDetailHelpers.js | 8 +- utility/uploadHelpers.js | 12 +- 21 files changed, 323 insertions(+), 373 deletions(-) diff --git a/Gemfile b/Gemfile index 2104c88096..ec4249345c 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,9 @@ source "https://rubygems.org" # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version ruby '>= 2.6.10' -gem 'cocoapods', '>= 1.11.3' +# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper +# bound in the template on Cocoapods with next React Native release. +gem 'cocoapods', '>= 1.13', '< 1.15' gem 'activesupport', '>= 6.1.7.3', '< 7.1.0' gem "fastlane" diff --git a/Gemfile.lock b/Gemfile.lock index 4b82b239e5..d9ae9138f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,17 +16,17 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.3.0) - aws-partitions (1.881.0) - aws-sdk-core (3.190.3) + aws-partitions (1.887.0) + aws-sdk-core (3.191.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.76.0) - aws-sdk-core (~> 3, >= 3.188.0) + aws-sdk-kms (1.77.0) + aws-sdk-core (~> 3, >= 3.191.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.142.0) - aws-sdk-core (~> 3, >= 3.189.0) + aws-sdk-s3 (1.143.0) + aws-sdk-core (~> 3, >= 3.191.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.8) aws-sigv4 (1.8.0) @@ -74,7 +74,7 @@ GEM colored2 (3.1.2) commander (4.6.0) highline (~> 2.0.0) - concurrent-ruby (1.2.2) + concurrent-ruby (1.2.3) declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) @@ -159,38 +159,38 @@ GEM fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.54.0) - google-apis-core (>= 0.11.0, < 2.a) - google-apis-core (0.11.2) + google-apis-androidpublisher_v3 (0.56.0) + google-apis-core (>= 0.12.0, < 2.a) + google-apis-core (0.13.0) addressable (~> 2.5, >= 2.5.1) - googleauth (>= 0.16.2, < 2.a) + googleauth (~> 1.9) httpclient (>= 2.8.1, < 3.a) mini_mime (~> 1.0) representable (~> 3.0) retriable (>= 2.0, < 4.a) rexml - webrick - google-apis-iamcredentials_v1 (0.17.0) - google-apis-core (>= 0.11.0, < 2.a) - google-apis-playcustomapp_v1 (0.13.0) - google-apis-core (>= 0.11.0, < 2.a) - google-apis-storage_v1 (0.31.0) - google-apis-core (>= 0.11.0, < 2.a) + google-apis-iamcredentials_v1 (0.18.0) + google-apis-core (>= 0.12.0, < 2.a) + google-apis-playcustomapp_v1 (0.14.0) + google-apis-core (>= 0.12.0, < 2.a) + google-apis-storage_v1 (0.33.0) + google-apis-core (>= 0.12.0, < 2.a) google-cloud-core (1.6.1) google-cloud-env (>= 1.0, < 3.a) google-cloud-errors (~> 1.0) - google-cloud-env (2.1.0) + google-cloud-env (2.1.1) faraday (>= 1.0, < 3.a) google-cloud-errors (1.3.1) - google-cloud-storage (1.47.0) + google-cloud-storage (1.48.1) addressable (~> 2.8) digest-crc (~> 0.4) - google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.31.0) + google-apis-core (~> 0.13) + google-apis-iamcredentials_v1 (~> 0.18) + google-apis-storage_v1 (~> 0.33) google-cloud-core (~> 1.6) - googleauth (>= 0.16.2, < 2.a) + googleauth (~> 1.9) mini_mime (~> 1.0) - googleauth (1.9.1) + googleauth (1.9.2) faraday (>= 1.0, < 3.a) google-cloud-env (~> 2.1) jwt (>= 1.4, < 3.0) @@ -208,7 +208,7 @@ GEM jwt (2.7.1) mini_magick (4.12.0) mini_mime (1.1.5) - minitest (5.21.1) + minitest (5.22.0) molinillo (0.8.0) multi_json (1.15.0) multipart-post (2.3.0) @@ -254,9 +254,8 @@ GEM concurrent-ruby (~> 1.0) uber (0.1.0) unicode-display_width (2.5.0) - webrick (1.8.1) word_wrap (1.0.0) - xcodeproj (1.23.0) + xcodeproj (1.24.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -273,7 +272,7 @@ PLATFORMS DEPENDENCIES activesupport (>= 6.1.7.3, < 7.1.0) - cocoapods (>= 1.11.3) + cocoapods (>= 1.13, < 1.15) fastlane fastlane-plugin-versioning_android diff --git a/android/app/build.gradle b/android/app/build.gradle index 9f3802b1c6..a08be21ddb 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -114,8 +114,8 @@ android { applicationId "org.inaturalist.seek" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 332 - versionName "2.15.6" + versionCode 335 + versionName "2.15.7" // for creating ic_seek_adaptiveappicon.xml vectorDrawables.useSupportLibrary = true } diff --git a/components/Camera/Gallery/GalleryImageList.js b/components/Camera/Gallery/GalleryImageList.js index 37f9303c94..66d3c08bf2 100644 --- a/components/Camera/Gallery/GalleryImageList.js +++ b/components/Camera/Gallery/GalleryImageList.js @@ -3,7 +3,7 @@ import React, { useCallback, useContext, useEffect, useState } from "react"; import { Platform, FlatList } from "react-native"; import type { Node } from "react"; -import { getPredictionsForImage } from "react-native-inat-camera"; +import { getPredictionsForImage } from "vision-camera-plugin-inatvision"; import { useNavigation } from "@react-navigation/native"; import { checkForPhotoMetaData } from "../../../utility/photoHelpers"; @@ -85,30 +85,29 @@ const GalleryImageList = ( { onEndReached, photos, setLoading }: Props ): Node = const getPredictions = useCallback( ( uri, timestamp, location ) => { const path = uri.split( "file://" ); - const reactUri = path[1]; + const reactUri = Platform.OS === "android" ? path[1] : uri; getPredictionsForImage( { uri: reactUri, - modelFilename: dirModel, - taxonomyFilename: dirTaxonomy - } ).then( ( { predictions } ) => { - navigateToResults( uri, timestamp, location, predictions ); - } ).catch( ( err ) => { - console.log( "Error", err ); - } ); + modelPath: dirModel, + taxonomyPath: dirTaxonomy, + version: "1.0" + } ) + .then( ( result ) => { + const { predictions } = result; + navigateToResults( uri, timestamp, location, Platform.OS === "android" ? predictions : result ); + } ) + .catch( ( err ) => { + console.log( "Error", err ); + } ); }, [navigateToResults] ); const selectImage = useCallback( ( item ) => { setImageSelected( true ); setLoading( ); const { timestamp, location, image } = item.node; - - if ( Platform.OS === "android" ) { - getPredictions( image.uri, timestamp, location ); - } else { - navigateToResults( image.uri, timestamp, location ); - } - }, [getPredictions, navigateToResults, setLoading] ); + getPredictions( image.uri, timestamp, location ); + }, [getPredictions, setLoading] ); const renderImage = useCallback( ( { item } ) => , [selectImage] ); diff --git a/components/Home/Announcements/Announcements.js b/components/Home/Announcements/Announcements.js index 9dc9050672..0c23a54065 100644 --- a/components/Home/Announcements/Announcements.js +++ b/components/Home/Announcements/Announcements.js @@ -13,7 +13,6 @@ import makeWebshell, { useAutoheight } from "@formidable-webview/webshell"; -import createUserAgent from "../../../utility/userAgent"; import { UserContext } from "../../UserContext"; import { viewStyles, textStyles } from "../../../styles/home/announcements"; import GreenButton from "../../UIComponents/Buttons/GreenButton"; @@ -65,9 +64,7 @@ const Announcements = ( ): React.Node => { }; const accessToken = await fetchAccessToken(); const apiToken = await fetchJSONWebToken( accessToken ); - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { api_token: apiToken, headers }; + const options = { api_token: apiToken }; inatjs.announcements .search( params, options ) .then( ( { total_results, results } ) => { @@ -80,7 +77,10 @@ const Announcements = ( ): React.Node => { .sort( ( a, b ) => new Date( a.start ) - new Date( b.start ) ); setAnnouncements( homeAnnouncements ); } ) - .catch( ( err ) => console.log( err, "err fetching announcements" ) ); + .catch( ( err ) => { + // TODO: handle error + console.log( err, "err fetching announcements" ); + } ); }, [locale] ); const { userProfile } = useContext( UserContext ); @@ -109,7 +109,7 @@ const Announcements = ( ): React.Node => { const dismiss = async ( ) => { const accessToken = await fetchAccessToken(); const apiToken = await fetchJSONWebToken( accessToken ); - const options = { api_token: apiToken, user_agent: createUserAgent() }; + const options = { api_token: apiToken }; inatjs.announcements .dismiss( { id }, options ) .then( ( ) => { @@ -120,7 +120,10 @@ const Announcements = ( ): React.Node => { // Refetch announcements fetchAnnouncements(); } ) - .catch( ( err ) => console.log( err, "err dismissing announcement" ) ); + .catch( ( err ) => { + // TODO: handle error + console.log( err, "err dismissing announcement" ); + } ); }; return ( diff --git a/components/PostToiNat/hooks/postingHooks.js b/components/PostToiNat/hooks/postingHooks.js index 72fdd78cd6..d5a5484891 100644 --- a/components/PostToiNat/hooks/postingHooks.js +++ b/components/PostToiNat/hooks/postingHooks.js @@ -5,7 +5,6 @@ import inatjs from "inaturalistjs"; import i18n from "../../../i18n"; import { capitalizeNames } from "../../../utility/helpers"; -import createUserAgent from "../../../utility/userAgent"; import { fetchUserLocation } from "../../../utility/locationHelpers"; const useSearchSpecies = ( speciesName: ?string ): any => { @@ -20,11 +19,7 @@ const useSearchSpecies = ( speciesName: ?string ): any => { locale: i18n.locale }; - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - - inatjs.taxa.autocomplete( params, options ).then( ( { results } ) => { + inatjs.taxa.autocomplete( params ).then( ( { results } ) => { if ( results.length === 0 ) { return; } const newSuggestions = results.map( ( s ) => { diff --git a/components/Providers/ObservationProvider.js b/components/Providers/ObservationProvider.js index d3757839c3..cb92064515 100644 --- a/components/Providers/ObservationProvider.js +++ b/components/Providers/ObservationProvider.js @@ -6,7 +6,6 @@ import { Platform } from "react-native"; import inatjs from "inaturalistjs"; import iconicTaxaIds from "../../utility/dictionaries/iconicTaxonDictById"; -import createUserAgent from "../../utility/userAgent"; import { fetchSpeciesSeenDate, serverBackOnlineTime } from "../../utility/dateHelpers"; import { addToCollection } from "../../utility/observationHelpers"; import { createLocationAlert } from "../../utility/locationHelpers"; @@ -57,14 +56,10 @@ const ObservationProvider = ( { children }: Props ): Node => { }; const fetchPhoto = useCallback( async ( id ) => { - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - // probably should break this into a helper function to use in other places // like species nearby fetches for better offline experience const fetchWithTimeout = ( timeout ) => Promise.race( [ - inatjs.taxa.fetch( id, options ), + inatjs.taxa.fetch( id ), new Promise( ( _, reject ) => setTimeout( ( ) => reject( new Error( "timeout" ) ), timeout ) ) @@ -285,9 +280,7 @@ const ObservationProvider = ( { children }: Props ): Node => { const fetchOnlineVisionResults = async ( ) => { const uploadParams = await flattenUploadParameters( image ); const token = createJwtToken( ); - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { api_token: token, headers }; + const options = { api_token: token }; try { const r = await inatjs.computervision.score_image( uploadParams, options ); diff --git a/components/Species/OnlineOnlyCards/INatObs.js b/components/Species/OnlineOnlyCards/INatObs.js index f6eebe4a62..9ccb61c8b5 100644 --- a/components/Species/OnlineOnlyCards/INatObs.js +++ b/components/Species/OnlineOnlyCards/INatObs.js @@ -13,7 +13,6 @@ import i18n from "../../../i18n"; import { viewStyles, textStyles, imageStyles } from "../../../styles/species/iNatObs"; import logos from "../../../assets/logos"; import SpeciesDetailCard from "../../UIComponents/SpeciesDetailCard"; -import createUserAgent from "../../../utility/userAgent"; import { localizeNumber } from "../../../utility/helpers"; import StyledText from "../../UIComponents/StyledText"; @@ -38,11 +37,7 @@ const INatObs = ( { id, timesSeen, region }: Props ): Node => { taxon_id: id }; - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - - inatjs.observations.speciesCounts( params, options ).then( ( { results } ) => { + inatjs.observations.speciesCounts( params ).then( ( { results } ) => { if ( isFocused ) { setNearbySpeciesCount( results.length > 0 ? results[0].count : 0 ); } diff --git a/components/Species/OnlineOnlyCards/SimilarSpecies.js b/components/Species/OnlineOnlyCards/SimilarSpecies.js index f63ae15c9f..fad5042cbe 100644 --- a/components/Species/OnlineOnlyCards/SimilarSpecies.js +++ b/components/Species/OnlineOnlyCards/SimilarSpecies.js @@ -11,7 +11,6 @@ import { colors } from "../../../styles/global"; import styles from "../../../styles/species/similarSpecies"; import SpeciesNearbyList from "../../UIComponents/SpeciesNearby/SpeciesNearbyList"; import GreenText from "../../UIComponents/GreenText"; -import createUserAgent from "../../../utility/userAgent"; type Props = { +id: ?number @@ -59,11 +58,7 @@ const SimilarSpecies = ( { id }: Props ): Node => { locale: i18n.locale }; - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - - inatjs.identifications.similar_species( params, options ).then( ( { results } ) => { + inatjs.identifications.similar_species( params ).then( ( { results } ) => { const species = results.map( r => r.taxon ); if ( isActive ) { diff --git a/components/Species/OnlineOnlyCards/SpeciesStats.js b/components/Species/OnlineOnlyCards/SpeciesStats.js index 39b95eecc9..85d1edfc5a 100644 --- a/components/Species/OnlineOnlyCards/SpeciesStats.js +++ b/components/Species/OnlineOnlyCards/SpeciesStats.js @@ -10,7 +10,6 @@ import type { Node } from "react"; import i18n from "../../../i18n"; import { viewStyles, textStyles } from "../../../styles/species/speciesStats"; -import createUserAgent from "../../../utility/userAgent"; import StyledText from "../../UIComponents/StyledText"; type Props = { @@ -44,11 +43,7 @@ const SpeciesStats = ( { loading, stats, region, id, seenDate }: Props ): Node = taxon_id: id }; - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - - inatjs.observations.search( params, options ).then( ( { results } ) => { + inatjs.observations.search( params ).then( ( { results } ) => { if ( results.length > 0 ) { const taxonStats = results[0].taxon; if ( taxonStats ) { diff --git a/components/iNaturalist/hooks/inatHooks.js b/components/iNaturalist/hooks/inatHooks.js index 243155ad22..21f4c7136e 100644 --- a/components/iNaturalist/hooks/inatHooks.js +++ b/components/iNaturalist/hooks/inatHooks.js @@ -7,7 +7,6 @@ import { useNetInfo } from "@react-native-community/netinfo"; import i18n from "../../../i18n"; import { capitalizeNames, shuffleList } from "../../../utility/helpers"; import { localizeAttributions } from "../../../utility/photoHelpers"; -import createUserAgent from "../../../utility/userAgent"; const useFetchPhotos = ( ): any => { const netInfo = useNetInfo(); @@ -29,11 +28,7 @@ const useFetchPhotos = ( ): any => { locale: i18n.locale }; - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - - inatjs.observations.search( params, options ).then( ( { results } ) => { + inatjs.observations.search( params ).then( ( { results } ) => { const taxa = results.map( ( r ) => r.taxon ); const projectPhotos = []; diff --git a/index.js b/index.js index e68a493ba8..070d4d827d 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,16 @@ // import "./wdyr"; import "react-native-gesture-handler"; +import inatjs from "inaturalistjs"; import * as React from "react"; import { AppRegistry } from "react-native"; import SeekApp from "./components/App"; import { name as appName } from "./app.json"; +import createUserAgent from "./utility/userAgent"; + +inatjs.setConfig( { + userAgent: createUserAgent( ) +} ); const App = ( ) => ( diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 030d94fe57..6e6a5f200e 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -4,14 +4,14 @@ PODS: - React-Core - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.71.15) - - FBReactNativeSpec (0.71.15): + - FBLazyVector (0.71.16) + - FBReactNativeSpec (0.71.16): - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.71.15) - - RCTTypeSafety (= 0.71.15) - - React-Core (= 0.71.15) - - React-jsi (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) + - RCTRequired (= 0.71.16) + - RCTTypeSafety (= 0.71.16) + - React-Core (= 0.71.16) + - React-jsi (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) - Flipper (0.125.0): - Flipper-Folly (~> 2.6) - Flipper-RSocket (~> 1.4) @@ -75,9 +75,9 @@ PODS: - FlipperKit/FlipperKitNetworkPlugin - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (0.71.15): - - hermes-engine/Pre-built (= 0.71.15) - - hermes-engine/Pre-built (0.71.15) + - hermes-engine (0.71.16): + - hermes-engine/Pre-built (= 0.71.16) + - hermes-engine/Pre-built (0.71.16) - libevent (2.1.12) - libwebp (1.2.3): - libwebp/demux (= 1.2.3) @@ -106,26 +106,26 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.71.15) - - RCTTypeSafety (0.71.15): - - FBLazyVector (= 0.71.15) - - RCTRequired (= 0.71.15) - - React-Core (= 0.71.15) - - React (0.71.15): - - React-Core (= 0.71.15) - - React-Core/DevSupport (= 0.71.15) - - React-Core/RCTWebSocket (= 0.71.15) - - React-RCTActionSheet (= 0.71.15) - - React-RCTAnimation (= 0.71.15) - - React-RCTBlob (= 0.71.15) - - React-RCTImage (= 0.71.15) - - React-RCTLinking (= 0.71.15) - - React-RCTNetwork (= 0.71.15) - - React-RCTSettings (= 0.71.15) - - React-RCTText (= 0.71.15) - - React-RCTVibration (= 0.71.15) - - React-callinvoker (0.71.15) - - React-Codegen (0.71.15): + - RCTRequired (0.71.16) + - RCTTypeSafety (0.71.16): + - FBLazyVector (= 0.71.16) + - RCTRequired (= 0.71.16) + - React-Core (= 0.71.16) + - React (0.71.16): + - React-Core (= 0.71.16) + - React-Core/DevSupport (= 0.71.16) + - React-Core/RCTWebSocket (= 0.71.16) + - React-RCTActionSheet (= 0.71.16) + - React-RCTAnimation (= 0.71.16) + - React-RCTBlob (= 0.71.16) + - React-RCTImage (= 0.71.16) + - React-RCTLinking (= 0.71.16) + - React-RCTNetwork (= 0.71.16) + - React-RCTSettings (= 0.71.16) + - React-RCTText (= 0.71.16) + - React-RCTVibration (= 0.71.16) + - React-callinvoker (0.71.16) + - React-Codegen (0.71.16): - FBReactNativeSpec - hermes-engine - RCT-Folly @@ -136,209 +136,209 @@ PODS: - React-jsiexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.71.15): + - React-Core (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.15) - - React-cxxreact (= 0.71.15) + - React-Core/Default (= 0.71.16) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/CoreModulesHeaders (0.71.15): + - React-Core/CoreModulesHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/Default (0.71.15): + - React-Core/Default (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/DevSupport (0.71.15): + - React-Core/DevSupport (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.15) - - React-Core/RCTWebSocket (= 0.71.15) - - React-cxxreact (= 0.71.15) + - React-Core/Default (= 0.71.16) + - React-Core/RCTWebSocket (= 0.71.16) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-jsinspector (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-jsinspector (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTActionSheetHeaders (0.71.15): + - React-Core/RCTActionSheetHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTAnimationHeaders (0.71.15): + - React-Core/RCTAnimationHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTBlobHeaders (0.71.15): + - React-Core/RCTBlobHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTImageHeaders (0.71.15): + - React-Core/RCTImageHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTLinkingHeaders (0.71.15): + - React-Core/RCTLinkingHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTNetworkHeaders (0.71.15): + - React-Core/RCTNetworkHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTSettingsHeaders (0.71.15): + - React-Core/RCTSettingsHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTTextHeaders (0.71.15): + - React-Core/RCTTextHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTVibrationHeaders (0.71.15): + - React-Core/RCTVibrationHeaders (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - React-Core/Default - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-Core/RCTWebSocket (0.71.15): + - React-Core/RCTWebSocket (0.71.16): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.15) - - React-cxxreact (= 0.71.15) + - React-Core/Default (= 0.71.16) + - React-cxxreact (= 0.71.16) - React-hermes - - React-jsi (= 0.71.15) - - React-jsiexecutor (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-jsi (= 0.71.16) + - React-jsiexecutor (= 0.71.16) + - React-perflogger (= 0.71.16) - Yoga - - React-CoreModules (0.71.15): + - React-CoreModules (0.71.16): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.15) - - React-Codegen (= 0.71.15) - - React-Core/CoreModulesHeaders (= 0.71.15) - - React-jsi (= 0.71.15) + - RCTTypeSafety (= 0.71.16) + - React-Codegen (= 0.71.16) + - React-Core/CoreModulesHeaders (= 0.71.16) + - React-jsi (= 0.71.16) - React-RCTBlob - - React-RCTImage (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-cxxreact (0.71.15): + - React-RCTImage (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-cxxreact (0.71.16): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.15) - - React-jsi (= 0.71.15) - - React-jsinspector (= 0.71.15) - - React-logger (= 0.71.15) - - React-perflogger (= 0.71.15) - - React-runtimeexecutor (= 0.71.15) - - React-hermes (0.71.15): + - React-callinvoker (= 0.71.16) + - React-jsi (= 0.71.16) + - React-jsinspector (= 0.71.16) + - React-logger (= 0.71.16) + - React-perflogger (= 0.71.16) + - React-runtimeexecutor (= 0.71.16) + - React-hermes (0.71.16): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 0.71.15) + - React-cxxreact (= 0.71.16) - React-jsi - - React-jsiexecutor (= 0.71.15) - - React-jsinspector (= 0.71.15) - - React-perflogger (= 0.71.15) - - React-jsi (0.71.15): + - React-jsiexecutor (= 0.71.16) + - React-jsinspector (= 0.71.16) + - React-perflogger (= 0.71.16) + - React-jsi (0.71.16): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-jsiexecutor (0.71.15): + - React-jsiexecutor (0.71.16): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.71.15) - - React-jsi (= 0.71.15) - - React-perflogger (= 0.71.15) - - React-jsinspector (0.71.15) - - React-logger (0.71.15): + - React-cxxreact (= 0.71.16) + - React-jsi (= 0.71.16) + - React-perflogger (= 0.71.16) + - React-jsinspector (0.71.16) + - React-logger (0.71.16): - glog - react-native-cameraroll (5.9.0): - React-Core @@ -372,90 +372,90 @@ PODS: - React - react-native-webview (11.26.1): - React-Core - - React-perflogger (0.71.15) - - React-RCTActionSheet (0.71.15): - - React-Core/RCTActionSheetHeaders (= 0.71.15) - - React-RCTAnimation (0.71.15): + - React-perflogger (0.71.16) + - React-RCTActionSheet (0.71.16): + - React-Core/RCTActionSheetHeaders (= 0.71.16) + - React-RCTAnimation (0.71.16): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.15) - - React-Codegen (= 0.71.15) - - React-Core/RCTAnimationHeaders (= 0.71.15) - - React-jsi (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-RCTAppDelegate (0.71.15): + - RCTTypeSafety (= 0.71.16) + - React-Codegen (= 0.71.16) + - React-Core/RCTAnimationHeaders (= 0.71.16) + - React-jsi (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-RCTAppDelegate (0.71.16): - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core - ReactCommon/turbomodule/core - - React-RCTBlob (0.71.15): + - React-RCTBlob (0.71.16): - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.71.15) - - React-Core/RCTBlobHeaders (= 0.71.15) - - React-Core/RCTWebSocket (= 0.71.15) - - React-jsi (= 0.71.15) - - React-RCTNetwork (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-RCTImage (0.71.15): + - React-Codegen (= 0.71.16) + - React-Core/RCTBlobHeaders (= 0.71.16) + - React-Core/RCTWebSocket (= 0.71.16) + - React-jsi (= 0.71.16) + - React-RCTNetwork (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-RCTImage (0.71.16): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.15) - - React-Codegen (= 0.71.15) - - React-Core/RCTImageHeaders (= 0.71.15) - - React-jsi (= 0.71.15) - - React-RCTNetwork (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-RCTLinking (0.71.15): - - React-Codegen (= 0.71.15) - - React-Core/RCTLinkingHeaders (= 0.71.15) - - React-jsi (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-RCTNetwork (0.71.15): + - RCTTypeSafety (= 0.71.16) + - React-Codegen (= 0.71.16) + - React-Core/RCTImageHeaders (= 0.71.16) + - React-jsi (= 0.71.16) + - React-RCTNetwork (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-RCTLinking (0.71.16): + - React-Codegen (= 0.71.16) + - React-Core/RCTLinkingHeaders (= 0.71.16) + - React-jsi (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-RCTNetwork (0.71.16): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.15) - - React-Codegen (= 0.71.15) - - React-Core/RCTNetworkHeaders (= 0.71.15) - - React-jsi (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-RCTSettings (0.71.15): + - RCTTypeSafety (= 0.71.16) + - React-Codegen (= 0.71.16) + - React-Core/RCTNetworkHeaders (= 0.71.16) + - React-jsi (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-RCTSettings (0.71.16): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.15) - - React-Codegen (= 0.71.15) - - React-Core/RCTSettingsHeaders (= 0.71.15) - - React-jsi (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-RCTText (0.71.15): - - React-Core/RCTTextHeaders (= 0.71.15) - - React-RCTVibration (0.71.15): + - RCTTypeSafety (= 0.71.16) + - React-Codegen (= 0.71.16) + - React-Core/RCTSettingsHeaders (= 0.71.16) + - React-jsi (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-RCTText (0.71.16): + - React-Core/RCTTextHeaders (= 0.71.16) + - React-RCTVibration (0.71.16): - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.71.15) - - React-Core/RCTVibrationHeaders (= 0.71.15) - - React-jsi (= 0.71.15) - - ReactCommon/turbomodule/core (= 0.71.15) - - React-runtimeexecutor (0.71.15): - - React-jsi (= 0.71.15) - - ReactCommon/turbomodule/bridging (0.71.15): + - React-Codegen (= 0.71.16) + - React-Core/RCTVibrationHeaders (= 0.71.16) + - React-jsi (= 0.71.16) + - ReactCommon/turbomodule/core (= 0.71.16) + - React-runtimeexecutor (0.71.16): + - React-jsi (= 0.71.16) + - ReactCommon/turbomodule/bridging (0.71.16): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.15) - - React-Core (= 0.71.15) - - React-cxxreact (= 0.71.15) - - React-jsi (= 0.71.15) - - React-logger (= 0.71.15) - - React-perflogger (= 0.71.15) - - ReactCommon/turbomodule/core (0.71.15): + - React-callinvoker (= 0.71.16) + - React-Core (= 0.71.16) + - React-cxxreact (= 0.71.16) + - React-jsi (= 0.71.16) + - React-logger (= 0.71.16) + - React-perflogger (= 0.71.16) + - ReactCommon/turbomodule/core (0.71.16): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.15) - - React-Core (= 0.71.15) - - React-cxxreact (= 0.71.15) - - React-jsi (= 0.71.15) - - React-logger (= 0.71.15) - - React-perflogger (= 0.71.15) + - React-callinvoker (= 0.71.16) + - React-Core (= 0.71.16) + - React-cxxreact (= 0.71.16) + - React-jsi (= 0.71.16) + - React-logger (= 0.71.16) + - React-perflogger (= 0.71.16) - ReactNativeExceptionHandler (2.10.10): - React-Core - ReactNativeWebPFormat (1.2.0): @@ -807,8 +807,8 @@ SPEC CHECKSUMS: BVLinearGradient: 880f91a7854faff2df62518f0281afb1c60d49a3 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - FBLazyVector: d06bbe89e3a89ee90c4deab1c84bf306ffa5ed37 - FBReactNativeSpec: d5d9871fe5c4b61787a3aed4f9e5529908e22069 + FBLazyVector: 9840513ec2766e31fb9e34c2dabb2c4671400fcd + FBReactNativeSpec: 76141e46f67b395d7d4e94925dfeba0dbd680ba1 Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 @@ -820,24 +820,24 @@ SPEC CHECKSUMS: FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b - hermes-engine: 04437e4291ede4af0c76c25e7efd0eacb8fd25e5 + hermes-engine: 2382506846564caf4152c45390dc24f08fce7057 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 - RCTRequired: 4ce9da4fa2f8a134f62c70e4ab9d971b9d640f41 - RCTTypeSafety: decfec2884f0c523f799600d2b6105cdc15e13db - React: ca22a0b3f199b6acac95416ef7eb96cc84a55103 - React-callinvoker: 366d4449bc2901e89da3f30c6d203c491d060350 - React-Codegen: f85e26699043bc9015552c21bbf0da24d9e8c6ad - React-Core: 169395096d2c22872e22cd74e3694a4b041cce76 - React-CoreModules: 8c2a970d9fd778e6016b9297f2c2dddbe78b04ec - React-cxxreact: e61b3e92887bb8fc241326b83d667953ff732923 - React-hermes: 476b93736605b457d1bc390336656c94460205b7 - React-jsi: 9fe8766963aa3aea90bbd477ea63255eb847d404 - React-jsiexecutor: e0cde8d57cee18097b3d2b1bf6404ad25dd8d33b - React-jsinspector: 4ade58a6a355d97a53f847543b14f4cb5033cb70 - React-logger: 56699550750c013096a11dce3bc996e7dd583835 + RCTRequired: 44a3cda52ccac0be738fbf43fef90f3546a48c52 + RCTTypeSafety: da7fbf9826fc898ca8b10dc840f2685562039a64 + React: defd955b6d6ffb9791bb66dee08d90b87a8e2c0c + React-callinvoker: 39ea57213d56ec9c527d51bd0dfb45cbb12ef447 + React-Codegen: 71cbc1bc384f9d19a41e4d00dfd0e7762ec5ef4a + React-Core: 898cb2f7785640e21d381b23fc64a2904628b368 + React-CoreModules: 7f71e7054395d61585048061a66d67b58d3d27b7 + React-cxxreact: 57fca29dd6995de0ee360980709c4be82d40cda1 + React-hermes: 33229fc1867df496665b36b222a82a0f850bcae1 + React-jsi: 3a55652789df6ddd777cce9601bf000e18d6b9df + React-jsiexecutor: 9b2a87f674f30da4706af52520e4860974cec149 + React-jsinspector: b3b341764ccda14f3659c00a9bc5b098b334db2b + React-logger: dc96fadd2f7f6bc38efc3cfb5fef876d4e6290a2 react-native-cameraroll: fad943a324a4d893c249cabe6d0608c807e0e58f react-native-geocoder: b9e3513006fbbfda0bf0ef9793317a8d4c861406 react-native-geolocation-service: 608e1da71a1ac31b4de64d9ef2815f697978c55b @@ -854,19 +854,19 @@ SPEC CHECKSUMS: react-native-safe-area-context: 7aa8e6d9d0f3100a820efb1a98af68aa747f9284 react-native-uuid-generator: 82ffa2a1cac94242ebed52c4dedc5044d3412717 react-native-webview: 9f111dfbcfc826084d6c507f569e5e03342ee1c1 - React-perflogger: 0cc42978a483a47f3696171dac2e7033936fc82d - React-RCTActionSheet: ea922b476d24f6d40b8e02ac3228412bd3637468 - React-RCTAnimation: 7be2c148398eaa5beac950b2b5ec7102389ec3ad - React-RCTAppDelegate: c7bf369749348d9358035c2dcebd9aa4f3f55031 - React-RCTBlob: c1e1e53b334f36b3311c3206036c99f4e5406cdf - React-RCTImage: 4a2cd71dd8c1954cfab50e244b269d47bdcc76da - React-RCTLinking: c8ff9fe7f5741afc05894c7da4a0d2bd1458f247 - React-RCTNetwork: 93c329744baa8c04057a5a29b790618e0c2a6a68 - React-RCTSettings: bcd09cd3ee26967bdfbc8af174404b8ffabfbc3c - React-RCTText: c525eb78cfe9489f130fa69004ff081a5ae33e06 - React-RCTVibration: a97783e3645ddf852e34da2e015656e309f3a083 - React-runtimeexecutor: 8f2ddd9db7874ec7de84f5c55d73aeaaf82908e2 - ReactCommon: 309d965cb51f058d07dea65bc04dcf462911f0a4 + React-perflogger: c944b06edad34f5ecded0f29a6e66290a005d365 + React-RCTActionSheet: fa467f37777dacba2c72da4be7ae065da4482d7d + React-RCTAnimation: 0591ee5f9e3d8c864a0937edea2165fe968e7099 + React-RCTAppDelegate: 8b7f60103a83ad1670bda690571e73efddba29a0 + React-RCTBlob: 082e8612f48b0ec12ca6dc949fb7c310593eff83 + React-RCTImage: 6300660ef04d0e8a710ad9ea5d2fb4d9521c200d + React-RCTLinking: 7703ee1b10d3568c143a489ae74adc419c3f3ef3 + React-RCTNetwork: 5748c647e09c66b918f81ae15ed7474327f653be + React-RCTSettings: 8c8a84ee363db9cbc287c8b8f2fb782acf7ba414 + React-RCTText: d5e53c0741e3e2df91317781e993b5e42bd70448 + React-RCTVibration: 052dd488ba95f461a37c992b9e01bd4bcc59a7b6 + React-runtimeexecutor: b5abe02558421897cd9f73d4f4b6adb4bc297083 + ReactCommon: a1a263d94f02a0dc8442f341d5a11b3d7a9cd44d ReactNativeExceptionHandler: b11ff67c78802b2f62eed0e10e75cb1ef7947c60 ReactNativeWebPFormat: f5f043cc9ded052e535c3869ec341f91ba5a67c5 RealmJS: 5af7e3b3c1b6de6a1f9bd62bfbf4caca749fa708 @@ -891,7 +891,7 @@ SPEC CHECKSUMS: SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 VisionCamera: 523b49054bee9dace64189ab6631cb41e8b83fe0 VisionCameraPluginInatVision: 79bb258db75218889c74d0897ecba676492c4def - Yoga: 68c9c592c3e80ec37ff28db20eedb13d84aae5df + Yoga: e29645ec5a66fb00934fad85338742d1c247d4cb YogaKit: f782866e155069a2cca2517aafea43200b01fd5a PODFILE CHECKSUM: 58e8d3aa699d6b32fb4c1e764273a8b0beb6c57e diff --git a/ios/Seek.xcodeproj/project.pbxproj b/ios/Seek.xcodeproj/project.pbxproj index 68d1c409fa..69ff19fb75 100644 --- a/ios/Seek.xcodeproj/project.pbxproj +++ b/ios/Seek.xcodeproj/project.pbxproj @@ -650,11 +650,7 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-Wl", - "-ld_classic", - ); + OTHER_LDFLAGS = "$(inherited)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; }; @@ -718,11 +714,7 @@ "-DFOLLY_MOBILE=1", "-DFOLLY_USE_LIBCPP=1", ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-Wl", - "-ld_classic", - ); + OTHER_LDFLAGS = "$(inherited)"; REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; diff --git a/ios/Seek/Info.plist b/ios/Seek/Info.plist index c2a09ee3d2..879d7e085d 100644 --- a/ios/Seek/Info.plist +++ b/ios/Seek/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.15.6 + 2.15.7 CFBundleSignature ???? CFBundleVersion - 332 + 335 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/package-lock.json b/package-lock.json index 80382a8e63..87e9c816ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "seek", - "version": "2.15.6", + "version": "2.15.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "seek", - "version": "2.15.6", + "version": "2.15.7", "hasInstallScript": true, "dependencies": { "@formidable-webview/webshell": "^2.6.0", @@ -30,7 +30,7 @@ "i18n-js": "^4.3.2", "inaturalistjs": "github:inaturalist/inaturalistjs", "react": "18.2.0", - "react-native": "0.71.15", + "react-native": "0.71.16", "react-native-check-app-install": "github:redpandatronicsuk/react-native-check-app-install", "react-native-check-box": "^2.1.7", "react-native-device-info": "^10.12.0", @@ -73,7 +73,7 @@ "react-native-webp-format": "^1.2.0", "react-native-webview": "^11.26.1", "realm": "^12.5.1", - "vision-camera-plugin-inatvision": "github:inaturalist/vision-camera-plugin-inatvision" + "vision-camera-plugin-inatvision": "github:inaturalist/vision-camera-plugin-inatvision#image-prediction-from-file" }, "devDependencies": { "@babel/core": "^7.20.0", @@ -9874,7 +9874,7 @@ }, "node_modules/inaturalistjs": { "version": "2.9.0", - "resolved": "git+ssh://git@github.com/inaturalist/inaturalistjs.git#879aaa2182cef4e5104874076f07f77fcbbdc060", + "resolved": "git+ssh://git@github.com/inaturalist/inaturalistjs.git#9cbfcb1a004c90b26e812b7bf70da7fc8044a578", "license": "MIT", "dependencies": { "cross-fetch": "^3.1.5", @@ -15734,9 +15734,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-native": { - "version": "0.71.15", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.15.tgz", - "integrity": "sha512-CFEoqc0hkINRWvBe86B3EK2fyVjK0//SoqI2jkRAz4NZm9R05+rHIFyT6wGQCLM3ea++KDkC0pqRVasMbqJc0Q==", + "version": "0.71.16", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.16.tgz", + "integrity": "sha512-fyeudppU0xATgGweyPVcOgYrhLAgBvvIEqUfG5wD+U0ZpVe3f7YQpDsqVOrD0ScomWmraFw634D4zFyenHMSAw==", "dependencies": { "@jest/create-cache-key-function": "^29.2.1", "@react-native-community/cli": "10.2.6", @@ -18095,7 +18095,7 @@ }, "node_modules/vision-camera-plugin-inatvision": { "version": "0.1.0", - "resolved": "git+ssh://git@github.com/inaturalist/vision-camera-plugin-inatvision.git#f0649e719f0045acb6b0a02e4bed71119a26c599", + "resolved": "git+ssh://git@github.com/inaturalist/vision-camera-plugin-inatvision.git#b7a6d6aabb78630b72aa709455c24af40a1f6b08", "license": "MIT", "engines": { "node": ">= 16.0.0" @@ -25557,7 +25557,7 @@ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "inaturalistjs": { - "version": "git+ssh://git@github.com/inaturalist/inaturalistjs.git#879aaa2182cef4e5104874076f07f77fcbbdc060", + "version": "git+ssh://git@github.com/inaturalist/inaturalistjs.git#9cbfcb1a004c90b26e812b7bf70da7fc8044a578", "from": "inaturalistjs@github:inaturalist/inaturalistjs", "requires": { "cross-fetch": "^3.1.5", @@ -29905,9 +29905,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-native": { - "version": "0.71.15", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.15.tgz", - "integrity": "sha512-CFEoqc0hkINRWvBe86B3EK2fyVjK0//SoqI2jkRAz4NZm9R05+rHIFyT6wGQCLM3ea++KDkC0pqRVasMbqJc0Q==", + "version": "0.71.16", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.71.16.tgz", + "integrity": "sha512-fyeudppU0xATgGweyPVcOgYrhLAgBvvIEqUfG5wD+U0ZpVe3f7YQpDsqVOrD0ScomWmraFw634D4zFyenHMSAw==", "requires": { "@jest/create-cache-key-function": "^29.2.1", "@react-native-community/cli": "10.2.6", @@ -31671,8 +31671,8 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" }, "vision-camera-plugin-inatvision": { - "version": "git+ssh://git@github.com/inaturalist/vision-camera-plugin-inatvision.git#f0649e719f0045acb6b0a02e4bed71119a26c599", - "from": "vision-camera-plugin-inatvision@github:inaturalist/vision-camera-plugin-inatvision", + "version": "git+ssh://git@github.com/inaturalist/vision-camera-plugin-inatvision.git#b7a6d6aabb78630b72aa709455c24af40a1f6b08", + "from": "vision-camera-plugin-inatvision@github:inaturalist/vision-camera-plugin-inatvision#image-prediction-from-file", "requires": {} }, "vlq": { diff --git a/package.json b/package.json index b42d772ee0..5dab96ddf3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "seek", - "version": "2.15.6", + "version": "2.15.7", "description": "Seek by iNaturalist repo", "private": true, "scripts": { @@ -44,7 +44,7 @@ "i18n-js": "^4.3.2", "inaturalistjs": "github:inaturalist/inaturalistjs", "react": "18.2.0", - "react-native": "0.71.15", + "react-native": "0.71.16", "react-native-check-app-install": "github:redpandatronicsuk/react-native-check-app-install", "react-native-check-box": "^2.1.7", "react-native-device-info": "^10.12.0", @@ -87,7 +87,7 @@ "react-native-webp-format": "^1.2.0", "react-native-webview": "^11.26.1", "realm": "^12.5.1", - "vision-camera-plugin-inatvision": "github:inaturalist/vision-camera-plugin-inatvision" + "vision-camera-plugin-inatvision": "github:inaturalist/vision-camera-plugin-inatvision#image-prediction-from-file" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/utility/customHooks.js b/utility/customHooks.js index 1d1354f9c4..125b0229f5 100644 --- a/utility/customHooks.js +++ b/utility/customHooks.js @@ -16,7 +16,6 @@ import { checkLocationPermissions } from "./androidHelpers.android"; import { getTaxonCommonName } from "./commonNamesHelpers"; import realmConfig from "../models"; import { createRegion } from "./locationHelpers"; -import createUserAgent from "./userAgent"; const useScrollToTop = ( scrollView: { @@ -416,10 +415,7 @@ const useUploadedObservationCount = ( { if ( year ) { params = {...params, year}; } - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - const response = await inatjs.observations.search( params, options ); + const response = await inatjs.observations.search( params ); let count = response.total_results; if ( !year ) { diff --git a/utility/loginHelpers.js b/utility/loginHelpers.js index 8e2298b87f..516bf79af6 100644 --- a/utility/loginHelpers.js +++ b/utility/loginHelpers.js @@ -3,7 +3,6 @@ import AsyncStorage from "@react-native-async-storage/async-storage"; import inatjs from "inaturalistjs"; import { fetchJSONWebToken } from "./tokenHelpers"; -import createUserAgent from "./userAgent"; const checkIsEmailValid = ( email: string ): boolean => { if ( email && email.length > 5 ) { @@ -59,9 +58,7 @@ const formatError = ( error: string ): string => { const fetchUserProfile = async ( login: string ): Promise => { try { const apiToken = await fetchJSONWebToken( login ); - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { api_token: apiToken, headers }; + const options = { api_token: apiToken }; const { results } = await inatjs.users.me( options ); return results[0]; } catch ( e ) { diff --git a/utility/speciesDetailHelpers.js b/utility/speciesDetailHelpers.js index 646b6a39b8..ab3905bb5f 100644 --- a/utility/speciesDetailHelpers.js +++ b/utility/speciesDetailHelpers.js @@ -1,8 +1,6 @@ // @flow import inatjs from "inaturalistjs"; -import createUserAgent from "./userAgent"; - const createHistogramChartData = ( results ): Array<{ month: number, count: number }> => { const countsByMonth = results.month_of_year; const months = Array.from( { length: 12 }, ( v, i ) => i + 1 ); @@ -31,12 +29,8 @@ const fetchHistogram = async ( id: number, region?: ?{ params.radius = 50; } - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { headers }; - try { - const { results } = await inatjs.observations.histogram( params, options ); + const { results } = await inatjs.observations.histogram( params ); return createHistogramChartData( results ); } catch ( e ) { return []; diff --git a/utility/uploadHelpers.js b/utility/uploadHelpers.js index bebff56ae6..9d7e6ee2f8 100644 --- a/utility/uploadHelpers.js +++ b/utility/uploadHelpers.js @@ -3,7 +3,6 @@ import Realm from "realm"; import inatjs, { FileUpload } from "inaturalistjs"; import realmConfig from "../models/index"; -import createUserAgent from "../utility/userAgent"; import { resizeImage } from "./photoHelpers"; import { createUUID } from "./observationHelpers"; import { fetchAccessToken } from "./loginHelpers"; @@ -67,9 +66,7 @@ const appendPhotoToObservation = async ( photo: { } ) }; - const headers = {}; - headers["user-agent"] = createUserAgent(); - const options = { api_token: token, headers }; + const options = { api_token: token }; try { await inatjs.observation_photos.create( photoParams, options ); @@ -138,10 +135,8 @@ const saveObservationId = async ( id: number, photo: Object ) => { }; const checkInactiveTaxonIds = async ( id ) => { - const options = { user_agent: createUserAgent( ) }; - try { - const { results } = await inatjs.taxa.fetch( id, options ); + const { results } = await inatjs.taxa.fetch( id ); const isActive = results[0].is_active; const synonymousTaxonIds = results[0].current_synonymous_taxon_ids; const ancestorIds = results[0].ancestor_ids; @@ -205,9 +200,8 @@ const uploadObservation = async ( observation: { logger.debug( "token is an object that indicates a server downtime or login token error" ); return token; } - const options = { api_token: token, user_agent: createUserAgent( ) }; + const options = { api_token: token }; logger.debug( `options.api_token: ${options.api_token}` ); - logger.debug( `options.user_agent: ${options.user_agent}` ); try { if ( !observation.photo.id ) {