{ "private": true, "scripts": { "start": "expo start", "test:e2e": "./bin/downloadExpoApp.sh && detox test --configuration ios.sim.expo", "build:e2e": "detox build -c ios.sim.expo", "ci:test:e2e": "detox test -c ios.sim.release -l verbose --cleanup", "ci:build:e2e": "detox build -c ios.sim.release", "compile": "tsc --noEmit -p . --pretty", "format": "npm-run-all format:*", "format:js": "prettier --write \"app/**/*.js\"", "format:json": "prettier --write \"app/**/*.json\"", "format:md": "prettier --write \"**/*.md\"", "format:ts": "prettier --write \"app/**/*.ts{,x}\"", "lint": "eslint App.js app storybook test --fix --ext .js,.ts,.tsx && yarn format", "patch": "patch-package", "storybook": "start-storybook -p 9001 -c ./storybook", "test": "jest", "adb": "adb reverse tcp:9090 tcp:9090 && adb reverse tcp:3000 tcp:3000 && adb reverse tcp:9001 tcp:9001 && adb reverse tcp:8081 tcp:8081", "postinstall": "node ./bin/postInstall", "build-ios": "react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios", "build-android": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res", "clean": "react-native-clean-project", "clean-all": "npx react-native clean-project-auto", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "eject": "expo eject" }, "dependencies": { "@expo/webpack-config": "^0.12.71", "@react-native-async-storage/async-storage": "^1.14.1", "@react-native-community/masked-view": "0.1.10", "@react-native-community/slider": "^3.0.3", "@react-navigation/native": "5.9.3", "@react-navigation/stack": "5.12.8", "@unimodules/core": "6.0.0", "apisauce": "2.0.0", "expo": "40.0.1", "expo-localization": "9.1.0", "expo-status-bar": "~1.0.4", "i18n-js": "3.8.0", "mobx": "6.1.8", "mobx-react-lite": "3.2.0", "mobx-state-tree": "5.0.1", "query-string": "7.0.0", "react": "16.13.1", "react-force-graph": "^1.41.7", "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz", "react-native-gesture-handler": "1.10.3", "react-native-keychain": "6.2.0", "react-native-safe-area-context": "3.1.9", "react-native-screens": "2.18.1", "react-native-unimodules": "0.12.0", "reactotron-mst": "3.1.3", "reactotron-react-js": "^3.3.7", "reactotron-react-native": "5.0.0", "validate.js": "0.13.1" }, "devDependencies": { "@babel/core": "^7.12.9", "@babel/plugin-proposal-decorators": "7.12.1", "@babel/plugin-proposal-optional-catch-binding": "7.12.1", "@babel/runtime": "^7.12.5", "@storybook/addon-storyshots": "6.1.10", "@storybook/react-native": "5.3.23", "@storybook/react-native-server": "5.3.23", "@types/i18n-js": "3.0.3", "@types/jest": "26.0.19", "@types/react": "16.9.35", "@types/react-dom": "16.9.8", "@types/react-native": "0.63.2", "@types/react-test-renderer": "16.9.4", "@typescript-eslint/eslint-plugin": "4.10.0", "@typescript-eslint/parser": "4.10.0", "babel-jest": "26.6.3", "babel-loader": "8.2.2", "detox": "17.14.5", "detox-expo-helpers": "0.6.0", "eslint": "7.15.0", "eslint-config-prettier": "7.0.0", "eslint-config-standard": "16.0.2", "eslint-plugin-import": "2.22.1", "eslint-plugin-node": "11.1.0", "eslint-plugin-promise": "4.2.1", "eslint-plugin-react": "7.21.5", "eslint-plugin-react-native": "3.10.0", "expo-detox-hook": "1.0.10", "fbjs-scripts": "3.0.0", "jest": "^25.5.4", "jest-circus": "25.5.4", "jest-expo": "^40.0.1", "jetifier": "1.6.6", "npm-run-all": "4.1.5", "patch-package": "6.2.2", "postinstall-prepare": "1.0.1", "prettier": "2.2.1", "react-devtools-core": "4.10.1", "react-dom": "^17.0.2", "react-native-clean-project": "^3.6.3", "react-native-web": "^0.16.3", "react-powerplug": "1.0.0", "solidarity": "2.3.1", "typescript": "4.2.3" }, "jest": { "preset": "jest-expo", "setupFiles": [ "/test/setup.ts" ], "testPathIgnorePatterns": [ "/node_modules/", "/e2e" ], "transformIgnorePatterns": [ "node_modules/(?!(jest-)?react-native|react-clone-referenced-element|@react-native-community|expo(nent)?|@expo(nent)?/.*|react-navigation|@react-navigation/.*|@unimodules/.*|native-base|@storybook)" ] }, "prettier": { "printWidth": 100, "semi": false, "singleQuote": false, "trailingComma": "all" }, "detox": { "test-runner": "jest", "configurations": { "ios.sim.debug": null, "ios.sim.release": null, "ios.sim.expo": { "binaryPath": "bin/Exponent.app", "type": "ios.simulator", "name": "iPhone 11" } } }, "eslintConfig": { "root": true, "parser": "@typescript-eslint/parser", "extends": [ "plugin:@typescript-eslint/recommended", "plugin:react/recommended", "plugin:react-native/all", "standard", "prettier", "prettier/@typescript-eslint" ], "plugins": [ "@typescript-eslint", "react", "react-native" ], "parserOptions": { "ecmaFeatures": { "jsx": true }, "project": "./tsconfig.json" }, "settings": { "react": { "pragma": "React", "version": "detect" } }, "globals": { "__DEV__": false, "jasmine": false, "beforeAll": false, "afterAll": false, "beforeEach": false, "afterEach": false, "test": false, "expect": false, "describe": false, "jest": false, "it": false }, "rules": { "@typescript-eslint/ban-ts-ignore": 0, "@typescript-eslint/explicit-function-return-type": 0, "@typescript-eslint/explicit-member-accessibility": 0, "@typescript-eslint/explicit-module-boundary-types": 0, "@typescript-eslint/indent": 0, "@typescript-eslint/member-delimiter-style": 0, "@typescript-eslint/no-empty-interface": 0, "@typescript-eslint/no-explicit-any": 0, "@typescript-eslint/no-object-literal-type-assertion": 0, "@typescript-eslint/no-var-requires": 0, "comma-dangle": 0, "multiline-ternary": 0, "no-undef": 0, "no-unused-vars": 0, "no-use-before-define": "off", "quotes": 0, "react-native/no-raw-text": 0, "react/no-unescaped-entities": 0, "react/prop-types": "off", "space-before-function-paren": 0 } }, "main": "node_modules/expo/AppEntry.js" }