Files
iNaturalistReactNative/package.json
Johannes Klein 0e0a6560ac Vision camera v3 (#1121)
* Bump vision-camera

* Refactor patch

* Move patched orientation into patch functions file

* Update react-native-vision-camera+3.4.1.patch

* Switch to MacOS 13 runner

Vision camera requires XCode 15 to compile.

* Add step to specify XCode 15

* Higher level of logging

* Increase test timeout

* Add comment

* Remove navigation to obs without evidence for signed out user

* Patch for location permission not working on iOS

* Increase setup timeout

* Increase some more timeouts

* Revert back to less logging in CI

* Does it have to do with timeouts?

* Trace log level

* Update README.md

* Disable Homebrew’s auto update and install cleanup

* Setup ruby step

* Install pods only if not cached

* Revert "Install pods only if not cached"

This reverts commit 42a2ea02f9.

* Run simulator in headless mode, record all logs

* Increase timeouts again

* Revert "Remove navigation to obs without evidence for signed out user"

This reverts commit 2b4718f5ce.

* Add boolean to run use effect only once

* Did merge wrong code

* There is one more permission gate when entering obs edit now

* Add permission gate dismissal to signed out user test

* Add comment, rename state

* Lower action timeout

* Update react-native-vision-camera to 3.6, update Reanimated to v3 (#838)

* Bump camera and plugin

* Upgrade Reanimated and libs using it

* Update vision-camera mock

* Remove superfluous patch

* Fix type

* Add mocks for e2e tests because bottom sheet does not work on AOSP

* Update package-lock.json

* Update vision camera

* Bump vision camera

* Update vision camera patch version

* Remove superfluous patch

* Update vision camera

* Update vision-camera and plugin

* Use latest vision plugin = rebased v3

* Run npm clean-start

* No longer needed

* Duplicate prop

* Switch back to v3 code

* Upgrading Detox fixes issue with iOS tests failing

Because of previous lack of permissions.

* Update to latest detox version

* Npm i force

* Vision 3 e2e testing, (#1126)

* Remove jest detox config

* Revert e2e timeout increase

* Revert jest config timeout

* Use macos 14 runner which has XCode 15 per default

* Use latest bottom sheet

* Revert "Use latest bottom sheet"

This reverts commit c66cd09838.

* Adding comma back in

* Remove spaces

* Use latest vision-camera and plugin

* Use release version of vision-camera

* Remove force flag

* Update react-native-worklets-core

* Upgrade reanimated

* Update babel.config to allow nested worklets

* Run frame processor async

* Remove enableGpuBuffers flag

* Remove no longer needed comment

* Update comments about version

* Update vision-camera and plugin

* Code format

* Rename param

* Use latest-plugin

* Remove fps param from camera view

* Change confidenceThreshold to number

* API change for results structure

* Refactor fps to be checked inside hook

As of vision-camera 3.9.1 our camera feed is stuttering when calling the runAtTargetFps function inside the useFrameProcessor hook.
So, what I did here is to track the time and skip the frames that are received before the target fps is reached.

* Remove updates of non-camera related

* Update comment

* Code format

* Snapshot updates

* Revert changes to ios e2e

* Add a log for the average time it takes a frame to be processed

* Use release version of plugin

* Add a patch for runAsync to work in release builds

* Update react-native-worklets-core to 0.4.0

* Use latest plugin version

* Add a shift method to worklet arrays

* Use latest vision-plugin

This makes use of .shift() in worklet array and depends on the previous patch.

* Set result timestamp and show age of result in debug mode

* Fix an error with timestamp being undefined

* Remove log

* Use latest vision plugin

* Change result timestamp to pink

* Comment

---------

Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
2024-03-27 00:47:43 +01:00

220 lines
8.7 KiB
JSON

{
"name": "inaturalistreactnative",
"version": "0.28.0",
"private": true,
"scripts": {
"android": "react-native run-android",
"android:release": "react-native run-android --mode=release",
"ios": "react-native run-ios",
"ios:release": "npx react-native run-ios --device --mode Release",
"start": "react-native start",
"clean-start": "npx react-native clean-project-auto && npx pod-install && npm start -- --reset-cache",
"test": "jest",
"lint": "npm run lint:eslint && npm run lint:flow",
"lint:eslint": "eslint . --fix --quiet",
"lint:flow": "flow check",
"postinstall": "husky install && patch-package && react-native setup-ios-permissions",
"translate": "node src/i18n/i18ncli.js build",
"e2e:android": "npm run e2e:build:android && npm run e2e:test:android",
"e2e:build:android": "MOCK_MODE=e2e npx detox build --configuration android.release",
"e2e:build:ios": "MOCK_MODE=e2e npx detox build --configuration ios.release",
"e2e:build": "npm run e2e:build:ios && npm run e2e:build:android",
"e2e:ios": "npm run e2e:build:ios && npm run e2e:test:ios",
"e2e:test:android": "MOCK_MODE=e2e npx detox test --configuration android.release",
"e2e:test:ios": "MOCK_MODE=e2e npx detox test --configuration ios.release",
"e2e:ios:test": "npm run e2e:test:ios",
"e2e:ios:build": "npm run e2e:build:ios",
"e2e:android:test": "npm run e2e:test:android",
"e2e:android:build": "npm run e2e:build:android",
"e2e:test": "npm run e2e:test:ios && npm run e2e:test:android",
"e2e": "npm run e2e:build && npm run e2e:test",
"icons": "./scripts/update-icon-font.sh",
"add-example-model": "node scripts/add-example-model.js",
"add-github-actions-test-model": "node scripts/add-github-actions-test-model.js",
"reassure": "reassure"
},
"dependencies": {
"@bam.tech/react-native-image-resizer": "^3.0.7",
"@formidable-webview/webshell": "^2.6.0",
"@gorhom/bottom-sheet": "^4.4.7",
"@react-native-async-storage/async-storage": "^1.19.5",
"@react-native-camera-roll/camera-roll": "^5.9.0",
"@react-native-clipboard/clipboard": "^1.11.2",
"@react-native-community/datetimepicker": "^7.6.0",
"@react-native-community/geolocation": "^3.1.0",
"@react-native-community/netinfo": "^9.4.1",
"@react-native-community/slider": "^4.5.0",
"@react-native-picker/picker": "^2.5.0",
"@react-navigation/bottom-tabs": "^6.5.8",
"@react-navigation/drawer": "^6.6.3",
"@react-navigation/elements": "^1.3.17",
"@react-navigation/native": "^6.1.7",
"@react-navigation/native-stack": "^6.9.13",
"@realm/react": "^0.6.2",
"@sayem314/react-native-keep-awake": "1.1.0",
"@shopify/flash-list": "^1.6.3",
"@tanstack/react-query": "^4.35.3",
"apisauce": "3.0.0",
"axios": "0.27.2",
"classnames": "^2.3.2",
"date-fns": "^2.30.0",
"date-fns-tz": "^2.0.0",
"i18next": "^23.5.1",
"i18next-fluent": "^2.0.0",
"i18next-resources-to-backend": "^1.1.4",
"inaturalistjs": "github:inaturalist/inaturalistjs",
"intl-pluralrules": "^2.0.1",
"linkify-html": "^4.1.1",
"linkifyjs": "^4.1.1",
"lodash": "^4.17.21",
"markdown-it": "^13.0.1",
"nativewind": "^2.0.11",
"npm": "^9.6.4",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-i18next": "^13.2.2",
"react-native": "0.71.16",
"react-native-animated-dots-carousel": "^1.0.2",
"react-native-audio-recorder-player": "^3.6.0",
"react-native-bouncy-checkbox": "^3.0.7",
"react-native-circular-progress-indicator": "^4.4.2",
"react-native-config": "1.5.0",
"react-native-device-info": "^10.12.0",
"react-native-draggable-flatlist": "^4.0.1",
"react-native-email-link": "^1.14.7",
"react-native-event-listeners": "^1.0.7",
"react-native-exception-handler": "^2.10.10",
"react-native-exif-reader": "github:inaturalist/react-native-exif-reader",
"react-native-fast-image": "^8.6.3",
"react-native-fs": "^2.20.0",
"react-native-geocoder-reborn": "^0.9.0",
"react-native-gesture-handler": "^2.13.0",
"react-native-image-pan-zoom": "^2.1.12",
"react-native-image-picker": "github:inaturalist/react-native-image-picker",
"react-native-jwt-io": "^1.0.3",
"react-native-keyboard-aware-scroll-view": "^0.9.5",
"react-native-linear-gradient": "^2.8.3",
"react-native-localize": "^2.2.6",
"react-native-logs": "^5.0.1",
"react-native-mail": "github:chirag04/react-native-mail",
"react-native-maps": "^1.7.1",
"react-native-modal": "^13.0.1",
"react-native-modal-datetime-picker": "^17.1.0",
"react-native-network-logger": "^1.15.0",
"react-native-open-maps": "^0.4.3",
"react-native-orientation-locker": "github:wonday/react-native-orientation-locker",
"react-native-paper": "^5.10.5",
"react-native-permissions": "^3.10.0",
"react-native-picker-select": "8.0.4",
"react-native-reanimated": "^3.7.0",
"react-native-reanimated-carousel": "^3.4.0",
"react-native-render-html": "^6.3.4",
"react-native-safe-area-context": "^4.7.4",
"react-native-screens": "^3.21.1",
"react-native-sensitive-info": "^6.0.0-alpha.9",
"react-native-share-menu": "github:visoft/react-native-share-menu",
"react-native-store-review": "^0.4.3",
"react-native-svg": "^13.14.0",
"react-native-svg-transformer": "^1.1.0",
"react-native-url-polyfill": "^2.0.0",
"react-native-uuid": "^2.0.1",
"react-native-vector-icons": "^9.1.0",
"react-native-vision-camera": "3.9.1",
"react-native-webview": "11.23.1",
"react-native-worklets-core": "0.4.0",
"realm": "^12.6.0",
"reassure": "^0.10.1",
"sanitize-html": "^2.11.0",
"use-debounce": "^9.0.4",
"vision-camera-plugin-inatvision": "github:inaturalist/vision-camera-plugin-inatvision#version-3",
"zustand": "^4.4.7"
},
"devDependencies": {
"@babel/core": "^7.21.4",
"@babel/eslint-parser": "^7.22.15",
"@babel/preset-react": "^7.22.15",
"@babel/runtime": "^7.21.0",
"@faker-js/faker": "^8.3.1",
"@tanstack/eslint-plugin-query": "^4.34.1",
"@testing-library/jest-native": "^5.4.3",
"@testing-library/react-native": "^12.3.0",
"@tsconfig/react-native": "^2.0.2",
"@types/jest": "^29.5.0",
"@types/react": "^18.0.24",
"@types/react-test-renderer": "^18.0.0",
"babel-plugin-module-resolver": "^5.0.0",
"babel-plugin-transform-inline-environment-variables": "^0.4.4",
"babel-plugin-transform-remove-console": "^6.9.4",
"detox": "20.17.1",
"dotenv": "^16.3.1",
"download": "^8.0.0",
"eslint": "^8.49.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-import-resolver-babel-module": "^5.3.2",
"eslint-plugin-i18next": "^6.0.3",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-module-resolver": "^1.5.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-native": "^4.1.0",
"eslint-plugin-react-native-a11y": "^3.3.0",
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-testing-library": "^6.0.1",
"factoria": "^4.0.1",
"flow-bin": "^0.182.0",
"fluent_conv": "^3.2.0",
"glob": "^7.2.3",
"husky": "^8.0.3",
"jest": "^29.5.0",
"jest-fetch-mock": "github:jefflau/jest-fetch-mock",
"metro-config": "0.73.9",
"metro-react-native-babel-preset": "0.73.10",
"nock": "^13.3.3",
"patch-package": "^8.0.0",
"react-native-accessibility-engine": "^3.2.0",
"react-native-clean-project": "^4.0.1",
"react-native-config-node": "^0.0.3",
"react-test-renderer": "18.2.0",
"tailwindcss": "^3.3.2",
"typescript": "4.8.4",
"yargs": "^17.7.2"
},
"jest": {
"automock": false,
"moduleNameMapper": {
"\\.svg": "<rootDir>/tests/mocks/svgMock.js"
},
"preset": "react-native",
"resetMocks": false,
"setupFiles": [
"./node_modules/react-native-gesture-handler/jestSetup.js",
"<rootDir>/tests/jest.setup.js"
],
"globalSetup": "<rootDir>/tests/jest.globalSetup.js",
"setupFilesAfterEnv": [
"react-native-accessibility-engine",
"<rootDir>/tests/jest.post-setup.js",
"<rootDir>/tests/realm.setup.js",
"<rootDir>/tests/initI18next.setup.js"
],
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?@react-native|react-native|react-clone-referenced-element|@react-native-community|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base||(?!react-native-redash))|jest-runner"
],
"verbose": true
},
"husky": {
"hooks": {
"pre-commit": "npm run lint"
}
},
"reactNativePermissionsIOS": [
"Camera",
"LocationAccuracy",
"LocationWhenInUse",
"MediaLibrary",
"Microphone",
"PhotoLibrary"
]
}