packages = new PackageList(this).getPackages();
31 | // Packages that cannot be autolinked yet can be added manually here, for example:
32 | // packages.add(new MyReactNativePackage());
33 | return packages;
34 | }
35 |
36 | @Override
37 | protected String getJSMainModuleName() {
38 | return "index";
39 | }
40 |
41 | @Override
42 | protected JSIModulePackage getJSIModulePackage() {
43 | return new ReanimatedJSIModulePackage();
44 | }
45 | };
46 |
47 | @Override
48 | public ReactNativeHost getReactNativeHost() {
49 | return mReactNativeHost;
50 | }
51 |
52 | @Override
53 | public void onCreate() {
54 | super.onCreate();
55 | SoLoader.init(this, /* native exopackage */ false);
56 | initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
57 | }
58 |
59 | /**
60 | * Loads Flipper in React Native templates. Call this in the onCreate method with something like
61 | * initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
62 | *
63 | * @param context
64 | * @param reactInstanceManager
65 | */
66 | private static void initializeFlipper(
67 | Context context, ReactInstanceManager reactInstanceManager) {
68 | if (BuildConfig.DEBUG) {
69 | try {
70 | /*
71 | We use reflection here to pick up the class that initializes Flipper,
72 | since Flipper library is not available in release mode
73 | */
74 | Class> aClass = Class.forName("com.rnstarter.ReactNativeFlipper");
75 | aClass
76 | .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
77 | .invoke(null, context, reactInstanceManager);
78 | } catch (ClassNotFoundException e) {
79 | e.printStackTrace();
80 | } catch (NoSuchMethodException e) {
81 | e.printStackTrace();
82 | } catch (IllegalAccessException e) {
83 | e.printStackTrace();
84 | } catch (InvocationTargetException e) {
85 | e.printStackTrace();
86 | }
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/ios/rnStarter/BootSplash.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/i18next-parser.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | locales: ['en', 'vi'],
3 | // An array of the locales in your applications
4 |
5 | contextSeparator: '_',
6 | // Key separator used in your translation keys
7 |
8 | createOldCatalogs: true,
9 | // Save the \_old files
10 |
11 | defaultNamespace: 'translation',
12 | // Default namespace used in your i18next config
13 |
14 | defaultValue: '',
15 | // Default value to give to empty keys
16 |
17 | indentation: 2,
18 | // Indentation of the catalog files
19 |
20 | keepRemoved: false,
21 | // Keep keys from the catalog that are no longer in code
22 |
23 | keySeparator: false,
24 | // Key separator used in your translation keys
25 | // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
26 |
27 | // see below for more details
28 | lexers: {
29 | hbs: ['HandlebarsLexer'],
30 | handlebars: ['HandlebarsLexer'],
31 |
32 | htm: ['HTMLLexer'],
33 | html: ['HTMLLexer'],
34 |
35 | mjs: ['JavascriptLexer'],
36 | js: ['JavascriptLexer'], // if you're writing jsx inside .js files, change this to JsxLexer
37 | ts: ['JavascriptLexer'],
38 | jsx: ['JsxLexer'],
39 | tsx: ['JsxLexer'],
40 |
41 | default: ['JavascriptLexer']
42 | },
43 |
44 | lineEnding: 'auto',
45 | // Control the line ending. See options at https://github.com/ryanve/eol
46 |
47 | namespaceSeparator: ':',
48 | // Namespace separator used in your translation keys
49 | // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance.
50 |
51 | output: 'src/i18n/$LOCALE/$NAMESPACE.json',
52 | // Supports $LOCALE and $NAMESPACE injection
53 | // Supports JSON (.json) and YAML (.yml) file formats
54 | // Where to write the locale files relative to process.cwd()
55 |
56 | input: undefined,
57 | // An array of globs that describe where to look for source files
58 | // relative to the location of the configuration file
59 |
60 | sort: true,
61 | // Whether or not to sort the catalog
62 |
63 | skipDefaultValues: false,
64 | // Whether to ignore default values.
65 |
66 | useKeysAsDefaultValue: false,
67 | // Whether to use the keys as the default value; ex. "Hello": "Hello", "World": "World"
68 | // This option takes precedence over the `defaultValue` and `skipDefaultValues` options
69 |
70 | verbose: false,
71 | // Display info about the parsing including some stats
72 |
73 | failOnWarnings: false,
74 | // Exit with an exit code of 1 on warnings
75 |
76 | customValueTemplate: null
77 | // If you wish to customize the value output the value as an object, you can set your own format.
78 | // ${defaultValue} is the default value you set in your translation function.
79 | // Any other custom property will be automatically extracted.
80 | //
81 | // Example:
82 | // {
83 | // message: "${defaultValue}",
84 | // description: "${maxLength}", // t('my-key', {maxLength: 150})
85 | // }
86 | };
87 |
--------------------------------------------------------------------------------
/android/app/src/debug/java/com/typescriptreactnativestarter/ReactNativeFlipper.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Facebook, Inc. and its affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the LICENSE file in the root
5 | * directory of this source tree.
6 | */
7 | package rnStarter;
8 |
9 | import android.content.Context;
10 | import com.facebook.flipper.android.AndroidFlipperClient;
11 | import com.facebook.flipper.android.utils.FlipperUtils;
12 | import com.facebook.flipper.core.FlipperClient;
13 | import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
14 | import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
15 | import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
16 | import com.facebook.flipper.plugins.inspector.DescriptorMapping;
17 | import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
18 | import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
19 | import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
20 | import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
21 | import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
22 | import com.facebook.react.ReactInstanceManager;
23 | import com.facebook.react.bridge.ReactContext;
24 | import com.facebook.react.modules.network.NetworkingModule;
25 | import okhttp3.OkHttpClient;
26 |
27 | public class ReactNativeFlipper {
28 | public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
29 | if (FlipperUtils.shouldEnableFlipper(context)) {
30 | final FlipperClient client = AndroidFlipperClient.getInstance(context);
31 |
32 | client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
33 | client.addPlugin(new ReactFlipperPlugin());
34 | client.addPlugin(new DatabasesFlipperPlugin(context));
35 | client.addPlugin(new SharedPreferencesFlipperPlugin(context));
36 | client.addPlugin(CrashReporterPlugin.getInstance());
37 |
38 | NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
39 | NetworkingModule.setCustomClientBuilder(
40 | new NetworkingModule.CustomClientBuilder() {
41 | @Override
42 | public void apply(OkHttpClient.Builder builder) {
43 | builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
44 | }
45 | });
46 | client.addPlugin(networkFlipperPlugin);
47 | client.start();
48 |
49 | // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
50 | // Hence we run if after all native modules have been initialized
51 | ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
52 | if (reactContext == null) {
53 | reactInstanceManager.addReactInstanceEventListener(
54 | new ReactInstanceManager.ReactInstanceEventListener() {
55 | @Override
56 | public void onReactContextInitialized(ReactContext reactContext) {
57 | reactInstanceManager.removeReactInstanceEventListener(this);
58 | reactContext.runOnNativeModulesQueueThread(
59 | new Runnable() {
60 | @Override
61 | public void run() {
62 | client.addPlugin(new FrescoFlipperPlugin());
63 | }
64 | });
65 | }
66 | });
67 | } else {
68 | client.addPlugin(new FrescoFlipperPlugin());
69 | }
70 | }
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/ios/rnStarter.xcodeproj/xcshareddata/xcschemes/rnStarter.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/ios/rnStarter.xcodeproj/xcshareddata/xcschemes/rnStarter-tvOS.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/ios/rnStarter/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "size": "1024x1024",
5 | "idiom": "ios-marketing",
6 | "scale": "1x",
7 | "filename": "ios-marketing-1024x1024-1x.png"
8 | },
9 | {
10 | "size": "20x20",
11 | "idiom": "ipad",
12 | "scale": "1x",
13 | "filename": "ipad-20x20-1x.png"
14 | },
15 | {
16 | "size": "20x20",
17 | "idiom": "ipad",
18 | "scale": "2x",
19 | "filename": "ipad-20x20-2x.png"
20 | },
21 | {
22 | "size": "29x29",
23 | "idiom": "ipad",
24 | "scale": "1x",
25 | "filename": "ipad-29x29-1x.png"
26 | },
27 | {
28 | "size": "29x29",
29 | "idiom": "ipad",
30 | "scale": "2x",
31 | "filename": "ipad-29x29-2x.png"
32 | },
33 | {
34 | "size": "40x40",
35 | "idiom": "ipad",
36 | "scale": "1x",
37 | "filename": "ipad-40x40-1x.png"
38 | },
39 | {
40 | "size": "40x40",
41 | "idiom": "ipad",
42 | "scale": "2x",
43 | "filename": "ipad-40x40-2x.png"
44 | },
45 | {
46 | "size": "50x50",
47 | "idiom": "ipad",
48 | "scale": "1x",
49 | "filename": "ipad-50x50-1x.png"
50 | },
51 | {
52 | "size": "50x50",
53 | "idiom": "ipad",
54 | "scale": "2x",
55 | "filename": "ipad-50x50-2x.png"
56 | },
57 | {
58 | "size": "72x72",
59 | "idiom": "ipad",
60 | "scale": "1x",
61 | "filename": "ipad-72x72-1x.png"
62 | },
63 | {
64 | "size": "72x72",
65 | "idiom": "ipad",
66 | "scale": "2x",
67 | "filename": "ipad-72x72-2x.png"
68 | },
69 | {
70 | "size": "76x76",
71 | "idiom": "ipad",
72 | "scale": "1x",
73 | "filename": "ipad-76x76-1x.png"
74 | },
75 | {
76 | "size": "76x76",
77 | "idiom": "ipad",
78 | "scale": "2x",
79 | "filename": "ipad-76x76-2x.png"
80 | },
81 | {
82 | "size": "83.5x83.5",
83 | "idiom": "ipad",
84 | "scale": "2x",
85 | "filename": "ipad-83.5x83.5-2x.png"
86 | },
87 | {
88 | "size": "20x20",
89 | "idiom": "iphone",
90 | "scale": "2x",
91 | "filename": "iphone-20x20-2x.png"
92 | },
93 | {
94 | "size": "20x20",
95 | "idiom": "iphone",
96 | "scale": "3x",
97 | "filename": "iphone-20x20-3x.png"
98 | },
99 | {
100 | "size": "29x29",
101 | "idiom": "iphone",
102 | "scale": "1x",
103 | "filename": "iphone-29x29-1x.png"
104 | },
105 | {
106 | "size": "29x29",
107 | "idiom": "iphone",
108 | "scale": "2x",
109 | "filename": "iphone-29x29-2x.png"
110 | },
111 | {
112 | "size": "29x29",
113 | "idiom": "iphone",
114 | "scale": "3x",
115 | "filename": "iphone-29x29-3x.png"
116 | },
117 | {
118 | "size": "40x40",
119 | "idiom": "iphone",
120 | "scale": "2x",
121 | "filename": "iphone-40x40-2x.png"
122 | },
123 | {
124 | "size": "40x40",
125 | "idiom": "iphone",
126 | "scale": "3x",
127 | "filename": "iphone-40x40-3x.png"
128 | },
129 | {
130 | "size": "57x57",
131 | "idiom": "iphone",
132 | "scale": "1x",
133 | "filename": "iphone-57x57-1x.png"
134 | },
135 | {
136 | "size": "57x57",
137 | "idiom": "iphone",
138 | "scale": "2x",
139 | "filename": "iphone-57x57-2x.png"
140 | },
141 | {
142 | "size": "60x60",
143 | "idiom": "iphone",
144 | "scale": "2x",
145 | "filename": "iphone-60x60-2x.png"
146 | },
147 | {
148 | "size": "60x60",
149 | "idiom": "iphone",
150 | "scale": "3x",
151 | "filename": "iphone-60x60-3x.png"
152 | }
153 | ],
154 | "info": {
155 | "version": 1,
156 | "author": "xcode"
157 | }
158 | }
--------------------------------------------------------------------------------
/web/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const webpack = require('webpack');
3 | const { CleanWebpackPlugin } = require('clean-webpack-plugin');
4 | const CopyPlugin = require('copy-webpack-plugin');
5 | const HtmlWebpackPlugin = require('html-webpack-plugin');
6 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
7 | const {
8 | appDirectory,
9 | babelLoader,
10 | imageFilesLoader,
11 | fontsLoader,
12 | imageBase64Loader,
13 | } = require('./webpack.loaders.js');
14 |
15 | const __DEV__ = process.env.STAGE !== 'production';
16 |
17 | module.exports = {
18 | mode: __DEV__ ? 'development' : 'production',
19 |
20 | // Include generating source map
21 | devtool: __DEV__ ? 'source-map' : false,
22 |
23 | // Config build entry
24 | entry: [
25 | path.resolve(appDirectory, 'web', 'index.web.tsx') // Entry file for web
26 | ],
27 |
28 | // Configures where the build ends up
29 | output: {
30 | filename: 'bundle.web.[contenthash].js',
31 | chunkFilename: '[id].[chunkhash].js',
32 | path: path.resolve(appDirectory, '.dist'),
33 | },
34 |
35 | // Config for dev server
36 | devServer: {
37 | static: path.join(__dirname, '.dist'),
38 | hot: true,
39 | open: true,
40 | compress: true,
41 | host: '0.0.0.0', // 0.0.0.0 allow server to be accessible externally within LAN
42 | historyApiFallback: true, // enable to use index.html as 404 fallback - necessary when developing to avoid 404 on paths that exist
43 | },
44 |
45 | // Module rules
46 | module: {
47 | rules: [
48 | babelLoader,
49 | imageFilesLoader,
50 | fontsLoader,
51 | imageBase64Loader,
52 | ]
53 | },
54 |
55 | // Resolve RN packages to packages that supports browser
56 | resolve: {
57 | alias: {
58 | 'react-native$': 'react-native-web',
59 | 'i18next-react-native-async-storage$': 'i18next-browser-languagedetector',
60 | 'react-native-feather': 'react-feather'
61 | },
62 |
63 | /**
64 | * If you're working on a multi-platform React Native app, web-specific
65 | * module implementations should be written in files using the extension
66 | * `.web.js`.
67 | * If multiple files share the same name but have different extensions,
68 | * webpack will resolve the one with the extension listed first in the array and skip the rest.
69 | */
70 | extensions: [
71 | '.web.js',
72 | '.web.jsx',
73 | '.web.ts',
74 | '.web.tsx',
75 | '.ts',
76 | '.tsx',
77 | '.js',
78 | '.jsx',
79 | '.json',
80 | '.native.js'
81 | ]
82 | },
83 |
84 | /**
85 | * Plugins
86 | */
87 | plugins: [
88 | // Clean your build folder, keep this first
89 | new CleanWebpackPlugin(),
90 |
91 | // Copy static files
92 | new CopyPlugin({
93 | patterns: [
94 | { from: 'web/robot.txt', to: 'robot.txt' },
95 | ]
96 | }),
97 |
98 | // Create HTML file to serve bundle
99 | new HtmlWebpackPlugin({
100 | template: path.resolve(appDirectory, './web/index.html'),
101 | filename: 'index.html',
102 | }),
103 |
104 | // Use this to define global variable (for process.env, use EnvironmentPlugin)
105 | new webpack.DefinePlugin({
106 | __DEV__: JSON.stringify(__DEV__),
107 | }),
108 |
109 | // Show bundle Analyzer
110 | new BundleAnalyzerPlugin({
111 | analyzerMode: process.env.ANALYZE ? 'static' : 'disabled',
112 | openAnalyzer: !!process.env.ANALYZE,
113 | generateStatsFile: !!process.env.ANALYZE,
114 | })
115 | ],
116 |
117 | /**
118 | * Extract common dependencies into an existing entry chunk or an entirely new chunk.
119 | */
120 | optimization: {
121 | splitChunks: {
122 | chunks: 'all', // Optimize all dynamically imported module or non-dynamically imported module.
123 | maxSize: 250000, // try to split chunks bigger than maxSize bytes into smaller parts
124 | automaticNameDelimiter: '~', // specify the delimiter to use for the generated names
125 | // Cache groups can inherit and/or override any options from splitChunks
126 | cacheGroups: {
127 | defaultVendors: {
128 | test: /[\\/]node_modules[\\/]/,
129 | priority: -10 // optimization will prefer the cache group with a higher priority
130 | },
131 | default: {
132 | minChunks: 2,
133 | priority: -20,
134 | reuseExistingChunk: true, // If the current chunk contains modules already split out from the main bundle, it will be reused instead of a new one being generated
135 | }
136 | }
137 | }
138 | },
139 |
140 | performance: {
141 | hints: false,
142 | },
143 | };
144 |
--------------------------------------------------------------------------------
/ios/rnStarter/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
25 |
31 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rnStarter",
3 | "version": "0.0.1",
4 | "private": false,
5 | "scripts": {
6 | "app:start": "node node_modules/react-native/local-cli/cli.js start",
7 | "app:dep": "jetify && yarn ios:pod:install",
8 | "ios": "react-native run-ios",
9 | "ios:device": "react-native run-ios --device $DEVICE",
10 | "ios:xcode": "open ./ios/*.xcworkspace",
11 | "ios:pod:install": "cd ios && pod install",
12 | "ios:build:archive": "xcodebuild clean archive -workspace ios/rnStarter.xcworkspace -scheme rnStarter -archivePath ios/build/archive/rnStarter.xcarchive | xcpretty",
13 | "ios:build:ipa": "xcodebuild -exportArchive -archivePath ios/build/archive/rnStarter.xcarchive -exportPath ios/build/export -exportOptionsPlist ios/rnStarter/ExportOptions.plist | xcpretty",
14 | "ios:build:ipa:list": "ls -la ios/build/export",
15 | "android": "react-native run-android",
16 | "android:device": "adb -s $DEVICE reverse tcp:8081 tcp:8081 && react-native run-android --deviceId $DEVICE",
17 | "android:studio": "studio android",
18 | "android:build:apk": "cd android && ./gradlew clean assembleRelease",
19 | "android:build:apk:list": "ls -la android/app/build/outputs/apk/release",
20 | "web:dev": "webpack serve --config ./web/webpack.config.js",
21 | "web:build": "webpack --config ./web/webpack.config.js",
22 | "web:serve": "serve .dist",
23 | "preelectron": "scripts/preelectron.sh",
24 | "preelectron:release": "npm run preelectron",
25 | "electron": "electron .dist",
26 | "electron:release": "scripts/electron_release.sh",
27 | "typecheck": "yarn tsc",
28 | "lint": "eslint . --ext .js,.ts,.tsx --cache",
29 | "format": "prettier --write '**/*.(ts|tsx|js|jsx)'",
30 | "i18n:extract": "yarn i18next 'src/**/*.{ts,tsx}'",
31 | "i18n:extract:watch": "watch 'yarn i18n:extract' ./src --ignoreDirectoryPattern=/src/i18n/",
32 | "test": "jest",
33 | "test:update": "jest --verbose --coverage --updateSnapshot",
34 | "test:watch": "jest --verbose --watch",
35 | "test:coverage": "jest --verbose --coverage && open ./.coverage/lcov-report/index.html",
36 | "generate:icon": "npx app-icon generate -i public/assets/icon.png",
37 | "generate:bootsplash": "yarn react-native generate-bootsplash public/assets/icon.png --background-color=FFFFFF --logo-width=100 --assets-path=public/assets",
38 | "util:icons": "chrome https://akveo.github.io/eva-icons/#/"
39 | },
40 | "husky": {
41 | "hooks": {
42 | "pre-commit": "yarn typecheck && yarn lint && yarn i18n:extract",
43 | "pre-push": "yarn jest --coverage --changedSince=origin/main"
44 | }
45 | },
46 | "dependencies": {
47 | "@react-native-community/async-storage": "^1.12.0",
48 | "@react-navigation/bottom-tabs": "^6.0.9",
49 | "@react-navigation/native": "^6.0.6",
50 | "@react-navigation/stack": "^6.0.11",
51 | "@reduxjs/toolkit": "^1.7.1",
52 | "i18next": "^21.6.6",
53 | "i18next-react-native-async-storage": "^1.0.4",
54 | "react": "17.0.2",
55 | "react-i18next": "^11.15.3",
56 | "react-native": "0.66.4",
57 | "react-native-bootsplash": "^4.1.0",
58 | "react-native-eva-icons": "^1.3.1",
59 | "react-native-flipper": "^0.128.4",
60 | "react-native-gesture-handler": "^2.1.1",
61 | "react-native-reanimated": "^2.3.1",
62 | "react-native-safe-area-context": "^3.3.2",
63 | "react-native-screens": "^3.10.1",
64 | "react-native-svg": "^12.1.1",
65 | "react-native-vector-icons": "^9.0.0",
66 | "react-native-web": "^0.17.5",
67 | "react-redux": "^7.2.6",
68 | "reactotron-react-native": "^5.0.1",
69 | "redux-flipper": "^2.0.1",
70 | "redux-persist": "^6.0.0"
71 | },
72 | "devDependencies": {
73 | "@babel/core": "^7.16.7",
74 | "@babel/plugin-proposal-class-properties": "^7.16.7",
75 | "@babel/plugin-proposal-decorators": "^7.16.7",
76 | "@babel/plugin-proposal-optional-chaining": "^7.16.7",
77 | "@react-native-community/eslint-config": "^3.0.1",
78 | "@testing-library/react-native": "^9.0.0",
79 | "@types/jest": "^27.4.0",
80 | "@types/react": "^17.0.38",
81 | "@types/react-native": "^0.66.12",
82 | "@types/react-redux": "^7.1.22",
83 | "@types/webpack-env": "^1.16.3",
84 | "@typescript-eslint/eslint-plugin": "^5.9.1",
85 | "@typescript-eslint/parser": "^5.9.1",
86 | "babel-loader": "^8.2.3",
87 | "babel-plugin-module-resolver": "^4.1.0",
88 | "babel-plugin-react-native-web": "^0.17.5",
89 | "babel-plugin-transform-remove-console": "^6.9.4",
90 | "clean-webpack-plugin": "^4.0.0",
91 | "copy-webpack-plugin": "^10.2.0",
92 | "electron": "^16.0.7",
93 | "electron-packager": "^15.4.0",
94 | "eslint": "^7.16.0",
95 | "eslint-config-prettier": "^7.1.0",
96 | "eslint-plugin-import": "^2.22.1",
97 | "eslint-plugin-jest": "^24.1.3",
98 | "eslint-plugin-prettier": "^3.3.0",
99 | "eslint-plugin-promise": "^4.2.1",
100 | "eslint-plugin-react": "^7.22.0",
101 | "eslint-plugin-react-hooks": "^4.1.2",
102 | "eslint-plugin-react-native": "^3.10.0",
103 | "eslint-plugin-react-native-a11y": "^2.0.3",
104 | "eslint-plugin-testing-library": "^3.10.1",
105 | "file-loader": "^6.2.0",
106 | "html-webpack-plugin": "^5.5.0",
107 | "husky": "^4.3.6",
108 | "i18next-browser-languagedetector": "^6.1.2",
109 | "i18next-parser": "^5.4.0",
110 | "isomorphic-fetch": "^3.0.0",
111 | "jest": "^27.4.7",
112 | "jetifier": "^2.0.0",
113 | "metro-react-native-babel-preset": "^0.66.2",
114 | "prettier": "^2.5.1",
115 | "react-dom": "^17.0.2",
116 | "react-native-codegen": "^0.0.12",
117 | "react-test-renderer": "^17.0.2",
118 | "reactotron-react-js": "^3.3.7",
119 | "rn-async-storage-flipper": "^0.0.10",
120 | "ts-jest": "^27.1.3",
121 | "typescript": "^4.5.4",
122 | "url-loader": "^4.1.1",
123 | "watch": "^1.0.2",
124 | "webpack": "^5.66.0",
125 | "webpack-bundle-analyzer": "^4.5.0",
126 | "webpack-cli": "^4.9.1",
127 | "webpack-dev-server": "^4.7.3"
128 | },
129 | "engines": {
130 | "node": ">=14",
131 | "yarn": ">= 1.22",
132 | "npm": "Please use Yarn"
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 |
86 | # Determine the Java command to use to start the JVM.
87 | if [ -n "$JAVA_HOME" ] ; then
88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89 | # IBM's JDK on AIX uses strange locations for the executables
90 | JAVACMD="$JAVA_HOME/jre/sh/java"
91 | else
92 | JAVACMD="$JAVA_HOME/bin/java"
93 | fi
94 | if [ ! -x "$JAVACMD" ] ; then
95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96 |
97 | Please set the JAVA_HOME variable in your environment to match the
98 | location of your Java installation."
99 | fi
100 | else
101 | JAVACMD="java"
102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103 |
104 | Please set the JAVA_HOME variable in your environment to match the
105 | location of your Java installation."
106 | fi
107 |
108 | # Increase the maximum file descriptors if we can.
109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110 | MAX_FD_LIMIT=`ulimit -H -n`
111 | if [ $? -eq 0 ] ; then
112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113 | MAX_FD="$MAX_FD_LIMIT"
114 | fi
115 | ulimit -n $MAX_FD
116 | if [ $? -ne 0 ] ; then
117 | warn "Could not set maximum file descriptor limit: $MAX_FD"
118 | fi
119 | else
120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121 | fi
122 | fi
123 |
124 | # For Darwin, add options to specify how the application appears in the dock
125 | if $darwin; then
126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127 | fi
128 |
129 | # For Cygwin or MSYS, switch paths to Windows format before running java
130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133 |
134 | JAVACMD=`cygpath --unix "$JAVACMD"`
135 |
136 | # We build the pattern for arguments to be converted via cygpath
137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138 | SEP=""
139 | for dir in $ROOTDIRSRAW ; do
140 | ROOTDIRS="$ROOTDIRS$SEP$dir"
141 | SEP="|"
142 | done
143 | OURCYGPATTERN="(^($ROOTDIRS))"
144 | # Add a user-defined pattern to the cygpath arguments
145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147 | fi
148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
149 | i=0
150 | for arg in "$@" ; do
151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
153 |
154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156 | else
157 | eval `echo args$i`="\"$arg\""
158 | fi
159 | i=`expr $i + 1`
160 | done
161 | case $i in
162 | 0) set -- ;;
163 | 1) set -- "$args0" ;;
164 | 2) set -- "$args0" "$args1" ;;
165 | 3) set -- "$args0" "$args1" "$args2" ;;
166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172 | esac
173 | fi
174 |
175 | # Escape application args
176 | save () {
177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178 | echo " "
179 | }
180 | APP_ARGS=`save "$@"`
181 |
182 | # Collect all arguments for the java command, following the shell quoting and substitution rules
183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184 |
185 | exec "$JAVACMD" "$@"
186 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 |
3 | import com.android.build.OutputFile
4 |
5 | /**
6 | * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
7 | * and bundleReleaseJsAndAssets).
8 | * These basically call `react-native bundle` with the correct arguments during the Android build
9 | * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
10 | * bundle directly from the development server. Below you can see all the possible configurations
11 | * and their defaults. If you decide to add a configuration block, make sure to add it before the
12 | * `apply from: "../../node_modules/react-native/react.gradle"` line.
13 | *
14 | * project.ext.react = [
15 | * // the name of the generated asset file containing your JS bundle
16 | * bundleAssetName: "index.android.bundle",
17 | *
18 | * // the entry file for bundle generation. If none specified and
19 | * // "index.android.js" exists, it will be used. Otherwise "index.js" is
20 | * // default. Can be overridden with ENTRY_FILE environment variable.
21 | * entryFile: "index.android.js",
22 | *
23 | * // https://reactnative.dev/docs/performance#enable-the-ram-format
24 | * bundleCommand: "ram-bundle",
25 | *
26 | * // whether to bundle JS and assets in debug mode
27 | * bundleInDebug: false,
28 | *
29 | * // whether to bundle JS and assets in release mode
30 | * bundleInRelease: true,
31 | *
32 | * // whether to bundle JS and assets in another build variant (if configured).
33 | * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
34 | * // The configuration property can be in the following formats
35 | * // 'bundleIn${productFlavor}${buildType}'
36 | * // 'bundleIn${buildType}'
37 | * // bundleInFreeDebug: true,
38 | * // bundleInPaidRelease: true,
39 | * // bundleInBeta: true,
40 | *
41 | * // whether to disable dev mode in custom build variants (by default only disabled in release)
42 | * // for example: to disable dev mode in the staging build type (if configured)
43 | * devDisabledInStaging: true,
44 | * // The configuration property can be in the following formats
45 | * // 'devDisabledIn${productFlavor}${buildType}'
46 | * // 'devDisabledIn${buildType}'
47 | *
48 | * // the root of your project, i.e. where "package.json" lives
49 | * root: "../../",
50 | *
51 | * // where to put the JS bundle asset in debug mode
52 | * jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
53 | *
54 | * // where to put the JS bundle asset in release mode
55 | * jsBundleDirRelease: "$buildDir/intermediates/assets/release",
56 | *
57 | * // where to put drawable resources / React Native assets, e.g. the ones you use via
58 | * // require('./image.png')), in debug mode
59 | * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
60 | *
61 | * // where to put drawable resources / React Native assets, e.g. the ones you use via
62 | * // require('./image.png')), in release mode
63 | * resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
64 | *
65 | * // by default the gradle tasks are skipped if none of the JS files or assets change; this means
66 | * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
67 | * // date; if you have any other folders that you want to ignore for performance reasons (gradle
68 | * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
69 | * // for example, you might want to remove it from here.
70 | * inputExcludes: ["android/**", "ios/**"],
71 | *
72 | * // override which node gets called and with what additional arguments
73 | * nodeExecutableAndArgs: ["node"],
74 | *
75 | * // supply additional arguments to the packager
76 | * extraPackagerArgs: []
77 | * ]
78 | */
79 |
80 | project.ext.react = [
81 | enableHermes: true, // clean and rebuild if changing
82 | ]
83 |
84 | apply from: "../../node_modules/react-native/react.gradle"
85 | apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
86 |
87 | /**
88 | * Set this to true to create two separate APKs instead of one:
89 | * - An APK that only works on ARM devices
90 | * - An APK that only works on x86 devices
91 | * The advantage is the size of the APK is reduced by about 4MB.
92 | * Upload all the APKs to the Play Store and people will download
93 | * the correct one based on the CPU architecture of their device.
94 | */
95 | def enableSeparateBuildPerCPUArchitecture = false
96 |
97 | /**
98 | * Run Proguard to shrink the Java bytecode in release builds.
99 | */
100 | def enableProguardInReleaseBuilds = false
101 |
102 | /**
103 | * The preferred build flavor of JavaScriptCore.
104 | *
105 | * For example, to use the international variant, you can use:
106 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
107 | *
108 | * The international variant includes ICU i18n library and necessary data
109 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
110 | * give correct results when using with locales other than en-US. Note that
111 | * this variant is about 6MiB larger per architecture than default.
112 | */
113 | def jscFlavor = 'org.webkit:android-jsc:+'
114 |
115 | /**
116 | * Whether to enable the Hermes VM.
117 | *
118 | * This should be set on project.ext.react and mirrored here. If it is not set
119 | * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
120 | * and the benefits of using Hermes will therefore be sharply reduced.
121 | */
122 | def enableHermes = project.ext.react.get("enableHermes", false);
123 |
124 | /**
125 | * Architectures to build native code for in debug.
126 | */
127 | def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures")
128 |
129 | android {
130 | ndkVersion rootProject.ext.ndkVersion
131 |
132 | compileSdkVersion rootProject.ext.compileSdkVersion
133 |
134 | defaultConfig {
135 | applicationId "com.rnstarter"
136 | minSdkVersion rootProject.ext.minSdkVersion
137 | targetSdkVersion rootProject.ext.targetSdkVersion
138 | versionCode 1
139 | versionName "1.0"
140 | }
141 | splits {
142 | abi {
143 | reset()
144 | enable enableSeparateBuildPerCPUArchitecture
145 | universalApk false // If true, also generate a universal APK
146 | include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
147 | }
148 | }
149 | signingConfigs {
150 | debug {
151 | storeFile file('debug.keystore')
152 | storePassword 'android'
153 | keyAlias 'androiddebugkey'
154 | keyPassword 'android'
155 | }
156 | }
157 | buildTypes {
158 | debug {
159 | signingConfig signingConfigs.debug
160 | if (nativeArchitectures) {
161 | ndk {
162 | abiFilters nativeArchitectures.split(',')
163 | }
164 | }
165 | }
166 | release {
167 | // Caution! In production, you need to generate your own keystore file.
168 | // see https://reactnative.dev/docs/signed-apk-android.
169 | signingConfig signingConfigs.debug
170 | minifyEnabled enableProguardInReleaseBuilds
171 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
172 | }
173 | }
174 |
175 | // applicationVariants are e.g. debug, release
176 | applicationVariants.all { variant ->
177 | variant.outputs.each { output ->
178 | // For each separate APK per architecture, set a unique version code as described here:
179 | // https://developer.android.com/studio/build/configure-apk-splits.html
180 | // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
181 | def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
182 | def abi = output.getFilter(OutputFile.ABI)
183 | if (abi != null) { // null for the universal-debug, universal-release variants
184 | output.versionCodeOverride =
185 | defaultConfig.versionCode * 1000 + versionCodes.get(abi)
186 | }
187 |
188 | }
189 | }
190 | }
191 |
192 | dependencies {
193 | implementation fileTree(dir: "libs", include: ["*.jar"])
194 | //noinspection GradleDynamicVersion
195 | implementation "com.facebook.react:react-native:+" // From node_modules
196 |
197 | implementation "androidx.core:core-splashscreen:1.0.0-beta01"
198 |
199 | implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
200 |
201 | debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
202 | exclude group:'com.facebook.fbjni'
203 | }
204 |
205 | debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
206 | exclude group:'com.facebook.flipper'
207 | exclude group:'com.squareup.okhttp3', module:'okhttp'
208 | }
209 |
210 | debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
211 | exclude group:'com.facebook.flipper'
212 | }
213 |
214 | if (enableHermes) {
215 | def hermesPath = "../../node_modules/hermes-engine/android/";
216 | debugImplementation files(hermesPath + "hermes-debug.aar")
217 | releaseImplementation files(hermesPath + "hermes-release.aar")
218 | } else {
219 | implementation jscFlavor
220 | }
221 | }
222 |
223 | // Run this once to be able to run the application with BUCK
224 | // puts all compile dependencies into folder libs for BUCK to use
225 | task copyDownloadableDepsToLibs(type: Copy) {
226 | from configurations.implementation
227 | into 'libs'
228 | }
229 |
230 | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
231 |
--------------------------------------------------------------------------------
/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - boost (1.76.0)
3 | - boost-for-react-native (1.63.0)
4 | - CocoaAsyncSocket (7.6.5)
5 | - DoubleConversion (1.1.6)
6 | - FBLazyVector (0.66.4)
7 | - FBReactNativeSpec (0.66.4):
8 | - RCT-Folly (= 2021.06.28.00-v2)
9 | - RCTRequired (= 0.66.4)
10 | - RCTTypeSafety (= 0.66.4)
11 | - React-Core (= 0.66.4)
12 | - React-jsi (= 0.66.4)
13 | - ReactCommon/turbomodule/core (= 0.66.4)
14 | - Flipper (0.87.0):
15 | - Flipper-Folly (~> 2.5)
16 | - Flipper-RSocket (~> 1.3)
17 | - Flipper-Boost-iOSX (1.76.0.1.11)
18 | - Flipper-DoubleConversion (3.1.7)
19 | - Flipper-Fmt (7.1.7)
20 | - Flipper-Folly (2.5.3):
21 | - boost-for-react-native
22 | - Flipper-DoubleConversion
23 | - Flipper-Glog
24 | - libevent (~> 2.1.12)
25 | - OpenSSL-Universal (= 1.1.180)
26 | - Flipper-Glog (0.3.6)
27 | - Flipper-PeerTalk (0.0.4)
28 | - Flipper-RSocket (1.3.1):
29 | - Flipper-Folly (~> 2.5)
30 | - FlipperKit (0.87.0):
31 | - FlipperKit/Core (= 0.87.0)
32 | - FlipperKit/Core (0.87.0):
33 | - Flipper (~> 0.87.0)
34 | - FlipperKit/CppBridge
35 | - FlipperKit/FBCxxFollyDynamicConvert
36 | - FlipperKit/FBDefines
37 | - FlipperKit/FKPortForwarding
38 | - FlipperKit/CppBridge (0.87.0):
39 | - Flipper (~> 0.87.0)
40 | - FlipperKit/FBCxxFollyDynamicConvert (0.87.0):
41 | - Flipper-Folly (~> 2.5)
42 | - FlipperKit/FBDefines (0.87.0)
43 | - FlipperKit/FKPortForwarding (0.87.0):
44 | - CocoaAsyncSocket (~> 7.6)
45 | - Flipper-PeerTalk (~> 0.0.4)
46 | - FlipperKit/FlipperKitHighlightOverlay (0.87.0)
47 | - FlipperKit/FlipperKitLayoutHelpers (0.87.0):
48 | - FlipperKit/Core
49 | - FlipperKit/FlipperKitHighlightOverlay
50 | - FlipperKit/FlipperKitLayoutTextSearchable
51 | - FlipperKit/FlipperKitLayoutIOSDescriptors (0.87.0):
52 | - FlipperKit/Core
53 | - FlipperKit/FlipperKitHighlightOverlay
54 | - FlipperKit/FlipperKitLayoutHelpers
55 | - YogaKit (~> 1.18)
56 | - FlipperKit/FlipperKitLayoutPlugin (0.87.0):
57 | - FlipperKit/Core
58 | - FlipperKit/FlipperKitHighlightOverlay
59 | - FlipperKit/FlipperKitLayoutHelpers
60 | - FlipperKit/FlipperKitLayoutIOSDescriptors
61 | - FlipperKit/FlipperKitLayoutTextSearchable
62 | - YogaKit (~> 1.18)
63 | - FlipperKit/FlipperKitLayoutTextSearchable (0.87.0)
64 | - FlipperKit/FlipperKitNetworkPlugin (0.87.0):
65 | - FlipperKit/Core
66 | - FlipperKit/FlipperKitReactPlugin (0.87.0):
67 | - FlipperKit/Core
68 | - FlipperKit/FlipperKitUserDefaultsPlugin (0.87.0):
69 | - FlipperKit/Core
70 | - FlipperKit/SKIOSNetworkPlugin (0.87.0):
71 | - FlipperKit/Core
72 | - FlipperKit/FlipperKitNetworkPlugin
73 | - fmt (6.2.1)
74 | - glog (0.3.5)
75 | - libevent (2.1.12)
76 | - OpenSSL-Universal (1.1.180)
77 | - RCT-Folly (2021.06.28.00-v2):
78 | - boost
79 | - DoubleConversion
80 | - fmt (~> 6.2.1)
81 | - glog
82 | - RCT-Folly/Default (= 2021.06.28.00-v2)
83 | - RCT-Folly/Default (2021.06.28.00-v2):
84 | - boost
85 | - DoubleConversion
86 | - fmt (~> 6.2.1)
87 | - glog
88 | - RCTRequired (0.66.4)
89 | - RCTTypeSafety (0.66.4):
90 | - FBLazyVector (= 0.66.4)
91 | - RCT-Folly (= 2021.06.28.00-v2)
92 | - RCTRequired (= 0.66.4)
93 | - React-Core (= 0.66.4)
94 | - React (0.66.4):
95 | - React-Core (= 0.66.4)
96 | - React-Core/DevSupport (= 0.66.4)
97 | - React-Core/RCTWebSocket (= 0.66.4)
98 | - React-RCTActionSheet (= 0.66.4)
99 | - React-RCTAnimation (= 0.66.4)
100 | - React-RCTBlob (= 0.66.4)
101 | - React-RCTImage (= 0.66.4)
102 | - React-RCTLinking (= 0.66.4)
103 | - React-RCTNetwork (= 0.66.4)
104 | - React-RCTSettings (= 0.66.4)
105 | - React-RCTText (= 0.66.4)
106 | - React-RCTVibration (= 0.66.4)
107 | - React-callinvoker (0.66.4)
108 | - React-Core (0.66.4):
109 | - glog
110 | - RCT-Folly (= 2021.06.28.00-v2)
111 | - React-Core/Default (= 0.66.4)
112 | - React-cxxreact (= 0.66.4)
113 | - React-jsi (= 0.66.4)
114 | - React-jsiexecutor (= 0.66.4)
115 | - React-perflogger (= 0.66.4)
116 | - Yoga
117 | - React-Core/CoreModulesHeaders (0.66.4):
118 | - glog
119 | - RCT-Folly (= 2021.06.28.00-v2)
120 | - React-Core/Default
121 | - React-cxxreact (= 0.66.4)
122 | - React-jsi (= 0.66.4)
123 | - React-jsiexecutor (= 0.66.4)
124 | - React-perflogger (= 0.66.4)
125 | - Yoga
126 | - React-Core/Default (0.66.4):
127 | - glog
128 | - RCT-Folly (= 2021.06.28.00-v2)
129 | - React-cxxreact (= 0.66.4)
130 | - React-jsi (= 0.66.4)
131 | - React-jsiexecutor (= 0.66.4)
132 | - React-perflogger (= 0.66.4)
133 | - Yoga
134 | - React-Core/DevSupport (0.66.4):
135 | - glog
136 | - RCT-Folly (= 2021.06.28.00-v2)
137 | - React-Core/Default (= 0.66.4)
138 | - React-Core/RCTWebSocket (= 0.66.4)
139 | - React-cxxreact (= 0.66.4)
140 | - React-jsi (= 0.66.4)
141 | - React-jsiexecutor (= 0.66.4)
142 | - React-jsinspector (= 0.66.4)
143 | - React-perflogger (= 0.66.4)
144 | - Yoga
145 | - React-Core/RCTActionSheetHeaders (0.66.4):
146 | - glog
147 | - RCT-Folly (= 2021.06.28.00-v2)
148 | - React-Core/Default
149 | - React-cxxreact (= 0.66.4)
150 | - React-jsi (= 0.66.4)
151 | - React-jsiexecutor (= 0.66.4)
152 | - React-perflogger (= 0.66.4)
153 | - Yoga
154 | - React-Core/RCTAnimationHeaders (0.66.4):
155 | - glog
156 | - RCT-Folly (= 2021.06.28.00-v2)
157 | - React-Core/Default
158 | - React-cxxreact (= 0.66.4)
159 | - React-jsi (= 0.66.4)
160 | - React-jsiexecutor (= 0.66.4)
161 | - React-perflogger (= 0.66.4)
162 | - Yoga
163 | - React-Core/RCTBlobHeaders (0.66.4):
164 | - glog
165 | - RCT-Folly (= 2021.06.28.00-v2)
166 | - React-Core/Default
167 | - React-cxxreact (= 0.66.4)
168 | - React-jsi (= 0.66.4)
169 | - React-jsiexecutor (= 0.66.4)
170 | - React-perflogger (= 0.66.4)
171 | - Yoga
172 | - React-Core/RCTImageHeaders (0.66.4):
173 | - glog
174 | - RCT-Folly (= 2021.06.28.00-v2)
175 | - React-Core/Default
176 | - React-cxxreact (= 0.66.4)
177 | - React-jsi (= 0.66.4)
178 | - React-jsiexecutor (= 0.66.4)
179 | - React-perflogger (= 0.66.4)
180 | - Yoga
181 | - React-Core/RCTLinkingHeaders (0.66.4):
182 | - glog
183 | - RCT-Folly (= 2021.06.28.00-v2)
184 | - React-Core/Default
185 | - React-cxxreact (= 0.66.4)
186 | - React-jsi (= 0.66.4)
187 | - React-jsiexecutor (= 0.66.4)
188 | - React-perflogger (= 0.66.4)
189 | - Yoga
190 | - React-Core/RCTNetworkHeaders (0.66.4):
191 | - glog
192 | - RCT-Folly (= 2021.06.28.00-v2)
193 | - React-Core/Default
194 | - React-cxxreact (= 0.66.4)
195 | - React-jsi (= 0.66.4)
196 | - React-jsiexecutor (= 0.66.4)
197 | - React-perflogger (= 0.66.4)
198 | - Yoga
199 | - React-Core/RCTSettingsHeaders (0.66.4):
200 | - glog
201 | - RCT-Folly (= 2021.06.28.00-v2)
202 | - React-Core/Default
203 | - React-cxxreact (= 0.66.4)
204 | - React-jsi (= 0.66.4)
205 | - React-jsiexecutor (= 0.66.4)
206 | - React-perflogger (= 0.66.4)
207 | - Yoga
208 | - React-Core/RCTTextHeaders (0.66.4):
209 | - glog
210 | - RCT-Folly (= 2021.06.28.00-v2)
211 | - React-Core/Default
212 | - React-cxxreact (= 0.66.4)
213 | - React-jsi (= 0.66.4)
214 | - React-jsiexecutor (= 0.66.4)
215 | - React-perflogger (= 0.66.4)
216 | - Yoga
217 | - React-Core/RCTVibrationHeaders (0.66.4):
218 | - glog
219 | - RCT-Folly (= 2021.06.28.00-v2)
220 | - React-Core/Default
221 | - React-cxxreact (= 0.66.4)
222 | - React-jsi (= 0.66.4)
223 | - React-jsiexecutor (= 0.66.4)
224 | - React-perflogger (= 0.66.4)
225 | - Yoga
226 | - React-Core/RCTWebSocket (0.66.4):
227 | - glog
228 | - RCT-Folly (= 2021.06.28.00-v2)
229 | - React-Core/Default (= 0.66.4)
230 | - React-cxxreact (= 0.66.4)
231 | - React-jsi (= 0.66.4)
232 | - React-jsiexecutor (= 0.66.4)
233 | - React-perflogger (= 0.66.4)
234 | - Yoga
235 | - React-CoreModules (0.66.4):
236 | - FBReactNativeSpec (= 0.66.4)
237 | - RCT-Folly (= 2021.06.28.00-v2)
238 | - RCTTypeSafety (= 0.66.4)
239 | - React-Core/CoreModulesHeaders (= 0.66.4)
240 | - React-jsi (= 0.66.4)
241 | - React-RCTImage (= 0.66.4)
242 | - ReactCommon/turbomodule/core (= 0.66.4)
243 | - React-cxxreact (0.66.4):
244 | - boost (= 1.76.0)
245 | - DoubleConversion
246 | - glog
247 | - RCT-Folly (= 2021.06.28.00-v2)
248 | - React-callinvoker (= 0.66.4)
249 | - React-jsi (= 0.66.4)
250 | - React-jsinspector (= 0.66.4)
251 | - React-logger (= 0.66.4)
252 | - React-perflogger (= 0.66.4)
253 | - React-runtimeexecutor (= 0.66.4)
254 | - React-jsi (0.66.4):
255 | - boost (= 1.76.0)
256 | - DoubleConversion
257 | - glog
258 | - RCT-Folly (= 2021.06.28.00-v2)
259 | - React-jsi/Default (= 0.66.4)
260 | - React-jsi/Default (0.66.4):
261 | - boost (= 1.76.0)
262 | - DoubleConversion
263 | - glog
264 | - RCT-Folly (= 2021.06.28.00-v2)
265 | - React-jsiexecutor (0.66.4):
266 | - DoubleConversion
267 | - glog
268 | - RCT-Folly (= 2021.06.28.00-v2)
269 | - React-cxxreact (= 0.66.4)
270 | - React-jsi (= 0.66.4)
271 | - React-perflogger (= 0.66.4)
272 | - React-jsinspector (0.66.4)
273 | - React-logger (0.66.4):
274 | - glog
275 | - react-native-flipper (0.128.4):
276 | - React-Core
277 | - react-native-safe-area-context (3.3.2):
278 | - React-Core
279 | - React-perflogger (0.66.4)
280 | - React-RCTActionSheet (0.66.4):
281 | - React-Core/RCTActionSheetHeaders (= 0.66.4)
282 | - React-RCTAnimation (0.66.4):
283 | - FBReactNativeSpec (= 0.66.4)
284 | - RCT-Folly (= 2021.06.28.00-v2)
285 | - RCTTypeSafety (= 0.66.4)
286 | - React-Core/RCTAnimationHeaders (= 0.66.4)
287 | - React-jsi (= 0.66.4)
288 | - ReactCommon/turbomodule/core (= 0.66.4)
289 | - React-RCTBlob (0.66.4):
290 | - FBReactNativeSpec (= 0.66.4)
291 | - RCT-Folly (= 2021.06.28.00-v2)
292 | - React-Core/RCTBlobHeaders (= 0.66.4)
293 | - React-Core/RCTWebSocket (= 0.66.4)
294 | - React-jsi (= 0.66.4)
295 | - React-RCTNetwork (= 0.66.4)
296 | - ReactCommon/turbomodule/core (= 0.66.4)
297 | - React-RCTImage (0.66.4):
298 | - FBReactNativeSpec (= 0.66.4)
299 | - RCT-Folly (= 2021.06.28.00-v2)
300 | - RCTTypeSafety (= 0.66.4)
301 | - React-Core/RCTImageHeaders (= 0.66.4)
302 | - React-jsi (= 0.66.4)
303 | - React-RCTNetwork (= 0.66.4)
304 | - ReactCommon/turbomodule/core (= 0.66.4)
305 | - React-RCTLinking (0.66.4):
306 | - FBReactNativeSpec (= 0.66.4)
307 | - React-Core/RCTLinkingHeaders (= 0.66.4)
308 | - React-jsi (= 0.66.4)
309 | - ReactCommon/turbomodule/core (= 0.66.4)
310 | - React-RCTNetwork (0.66.4):
311 | - FBReactNativeSpec (= 0.66.4)
312 | - RCT-Folly (= 2021.06.28.00-v2)
313 | - RCTTypeSafety (= 0.66.4)
314 | - React-Core/RCTNetworkHeaders (= 0.66.4)
315 | - React-jsi (= 0.66.4)
316 | - ReactCommon/turbomodule/core (= 0.66.4)
317 | - React-RCTSettings (0.66.4):
318 | - FBReactNativeSpec (= 0.66.4)
319 | - RCT-Folly (= 2021.06.28.00-v2)
320 | - RCTTypeSafety (= 0.66.4)
321 | - React-Core/RCTSettingsHeaders (= 0.66.4)
322 | - React-jsi (= 0.66.4)
323 | - ReactCommon/turbomodule/core (= 0.66.4)
324 | - React-RCTText (0.66.4):
325 | - React-Core/RCTTextHeaders (= 0.66.4)
326 | - React-RCTVibration (0.66.4):
327 | - FBReactNativeSpec (= 0.66.4)
328 | - RCT-Folly (= 2021.06.28.00-v2)
329 | - React-Core/RCTVibrationHeaders (= 0.66.4)
330 | - React-jsi (= 0.66.4)
331 | - ReactCommon/turbomodule/core (= 0.66.4)
332 | - React-runtimeexecutor (0.66.4):
333 | - React-jsi (= 0.66.4)
334 | - ReactCommon/turbomodule/core (0.66.4):
335 | - DoubleConversion
336 | - glog
337 | - RCT-Folly (= 2021.06.28.00-v2)
338 | - React-callinvoker (= 0.66.4)
339 | - React-Core (= 0.66.4)
340 | - React-cxxreact (= 0.66.4)
341 | - React-jsi (= 0.66.4)
342 | - React-logger (= 0.66.4)
343 | - React-perflogger (= 0.66.4)
344 | - RNBootSplash (4.1.0):
345 | - React-Core
346 | - RNCAsyncStorage (1.12.1):
347 | - React-Core
348 | - RNGestureHandler (2.1.1):
349 | - React-Core
350 | - RNReanimated (2.3.1):
351 | - DoubleConversion
352 | - FBLazyVector
353 | - FBReactNativeSpec
354 | - glog
355 | - RCT-Folly
356 | - RCTRequired
357 | - RCTTypeSafety
358 | - React
359 | - React-callinvoker
360 | - React-Core
361 | - React-Core/DevSupport
362 | - React-Core/RCTWebSocket
363 | - React-CoreModules
364 | - React-cxxreact
365 | - React-jsi
366 | - React-jsiexecutor
367 | - React-jsinspector
368 | - React-RCTActionSheet
369 | - React-RCTAnimation
370 | - React-RCTBlob
371 | - React-RCTImage
372 | - React-RCTLinking
373 | - React-RCTNetwork
374 | - React-RCTSettings
375 | - React-RCTText
376 | - ReactCommon/turbomodule/core
377 | - Yoga
378 | - RNScreens (3.10.1):
379 | - React-Core
380 | - React-RCTImage
381 | - RNSVG (12.1.1):
382 | - React
383 | - RNVectorIcons (9.0.0):
384 | - React-Core
385 | - Yoga (1.14.0)
386 | - YogaKit (1.18.1):
387 | - Yoga (~> 1.14)
388 |
389 | DEPENDENCIES:
390 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
391 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
392 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
393 | - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
394 | - Flipper (= 0.87.0)
395 | - Flipper-Boost-iOSX (= 1.76.0.1.11)
396 | - Flipper-DoubleConversion (= 3.1.7)
397 | - Flipper-Fmt (= 7.1.7)
398 | - Flipper-Folly (= 2.5.3)
399 | - Flipper-Glog (= 0.3.6)
400 | - Flipper-PeerTalk (= 0.0.4)
401 | - Flipper-RSocket (= 1.3.1)
402 | - FlipperKit (= 0.87.0)
403 | - FlipperKit/Core (= 0.87.0)
404 | - FlipperKit/CppBridge (= 0.87.0)
405 | - FlipperKit/FBCxxFollyDynamicConvert (= 0.87.0)
406 | - FlipperKit/FBDefines (= 0.87.0)
407 | - FlipperKit/FKPortForwarding (= 0.87.0)
408 | - FlipperKit/FlipperKitHighlightOverlay (= 0.87.0)
409 | - FlipperKit/FlipperKitLayoutPlugin (= 0.87.0)
410 | - FlipperKit/FlipperKitLayoutTextSearchable (= 0.87.0)
411 | - FlipperKit/FlipperKitNetworkPlugin (= 0.87.0)
412 | - FlipperKit/FlipperKitReactPlugin (= 0.87.0)
413 | - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.87.0)
414 | - FlipperKit/SKIOSNetworkPlugin (= 0.87.0)
415 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
416 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
417 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
418 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
419 | - React (from `../node_modules/react-native/`)
420 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
421 | - React-Core (from `../node_modules/react-native/`)
422 | - React-Core/DevSupport (from `../node_modules/react-native/`)
423 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
424 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
425 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
426 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
427 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
428 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
429 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
430 | - react-native-flipper (from `../node_modules/react-native-flipper`)
431 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
432 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
433 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
434 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
435 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
436 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
437 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
438 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
439 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
440 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
441 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
442 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
443 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
444 | - RNBootSplash (from `../node_modules/react-native-bootsplash`)
445 | - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)"
446 | - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
447 | - RNReanimated (from `../node_modules/react-native-reanimated`)
448 | - RNScreens (from `../node_modules/react-native-screens`)
449 | - RNSVG (from `../node_modules/react-native-svg`)
450 | - RNVectorIcons (from `../node_modules/react-native-vector-icons`)
451 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
452 |
453 | SPEC REPOS:
454 | trunk:
455 | - boost-for-react-native
456 | - CocoaAsyncSocket
457 | - Flipper
458 | - Flipper-Boost-iOSX
459 | - Flipper-DoubleConversion
460 | - Flipper-Fmt
461 | - Flipper-Folly
462 | - Flipper-Glog
463 | - Flipper-PeerTalk
464 | - Flipper-RSocket
465 | - FlipperKit
466 | - fmt
467 | - libevent
468 | - OpenSSL-Universal
469 | - YogaKit
470 |
471 | EXTERNAL SOURCES:
472 | boost:
473 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
474 | DoubleConversion:
475 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
476 | FBLazyVector:
477 | :path: "../node_modules/react-native/Libraries/FBLazyVector"
478 | FBReactNativeSpec:
479 | :path: "../node_modules/react-native/React/FBReactNativeSpec"
480 | glog:
481 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
482 | RCT-Folly:
483 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
484 | RCTRequired:
485 | :path: "../node_modules/react-native/Libraries/RCTRequired"
486 | RCTTypeSafety:
487 | :path: "../node_modules/react-native/Libraries/TypeSafety"
488 | React:
489 | :path: "../node_modules/react-native/"
490 | React-callinvoker:
491 | :path: "../node_modules/react-native/ReactCommon/callinvoker"
492 | React-Core:
493 | :path: "../node_modules/react-native/"
494 | React-CoreModules:
495 | :path: "../node_modules/react-native/React/CoreModules"
496 | React-cxxreact:
497 | :path: "../node_modules/react-native/ReactCommon/cxxreact"
498 | React-jsi:
499 | :path: "../node_modules/react-native/ReactCommon/jsi"
500 | React-jsiexecutor:
501 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
502 | React-jsinspector:
503 | :path: "../node_modules/react-native/ReactCommon/jsinspector"
504 | React-logger:
505 | :path: "../node_modules/react-native/ReactCommon/logger"
506 | react-native-flipper:
507 | :path: "../node_modules/react-native-flipper"
508 | react-native-safe-area-context:
509 | :path: "../node_modules/react-native-safe-area-context"
510 | React-perflogger:
511 | :path: "../node_modules/react-native/ReactCommon/reactperflogger"
512 | React-RCTActionSheet:
513 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
514 | React-RCTAnimation:
515 | :path: "../node_modules/react-native/Libraries/NativeAnimation"
516 | React-RCTBlob:
517 | :path: "../node_modules/react-native/Libraries/Blob"
518 | React-RCTImage:
519 | :path: "../node_modules/react-native/Libraries/Image"
520 | React-RCTLinking:
521 | :path: "../node_modules/react-native/Libraries/LinkingIOS"
522 | React-RCTNetwork:
523 | :path: "../node_modules/react-native/Libraries/Network"
524 | React-RCTSettings:
525 | :path: "../node_modules/react-native/Libraries/Settings"
526 | React-RCTText:
527 | :path: "../node_modules/react-native/Libraries/Text"
528 | React-RCTVibration:
529 | :path: "../node_modules/react-native/Libraries/Vibration"
530 | React-runtimeexecutor:
531 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
532 | ReactCommon:
533 | :path: "../node_modules/react-native/ReactCommon"
534 | RNBootSplash:
535 | :path: "../node_modules/react-native-bootsplash"
536 | RNCAsyncStorage:
537 | :path: "../node_modules/@react-native-community/async-storage"
538 | RNGestureHandler:
539 | :path: "../node_modules/react-native-gesture-handler"
540 | RNReanimated:
541 | :path: "../node_modules/react-native-reanimated"
542 | RNScreens:
543 | :path: "../node_modules/react-native-screens"
544 | RNSVG:
545 | :path: "../node_modules/react-native-svg"
546 | RNVectorIcons:
547 | :path: "../node_modules/react-native-vector-icons"
548 | Yoga:
549 | :path: "../node_modules/react-native/ReactCommon/yoga"
550 |
551 | SPEC CHECKSUMS:
552 | boost: a7c83b31436843459a1961bfd74b96033dc77234
553 | boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
554 | CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
555 | DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
556 | FBLazyVector: e5569e42a1c79ca00521846c223173a57aca1fe1
557 | FBReactNativeSpec: fe08c1cd7e2e205718d77ad14b34957cce949b58
558 | Flipper: 1bd2db48dcc31e4b167b9a33ec1df01c2ded4893
559 | Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
560 | Flipper-DoubleConversion: 57ffbe81ef95306cc9e69c4aa3aeeeeb58a6a28c
561 | Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b
562 | Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c
563 | Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
564 | Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
565 | Flipper-RSocket: 127954abe8b162fcaf68d2134d34dc2bd7076154
566 | FlipperKit: 651f50a42eb95c01b3e89a60996dd6aded529eeb
567 | fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
568 | glog: 5337263514dd6f09803962437687240c5dc39aa4
569 | libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
570 | OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
571 | RCT-Folly: a21c126816d8025b547704b777a2ba552f3d9fa9
572 | RCTRequired: 4bf86c70714490bca4bf2696148638284622644b
573 | RCTTypeSafety: c475a7059eb77935fa53d2c17db299893f057d5d
574 | React: f64af14e3f2c50f6f2c91a5fd250e4ff1b3c3459
575 | React-callinvoker: b74e4ae80287780dcdf0cab262bcb581eeef56e7
576 | React-Core: 3eb7432bad96ff1d25aebc1defbae013fee2fd0e
577 | React-CoreModules: ad9e1fd5650e16666c57a08328df86fd7e480cb9
578 | React-cxxreact: 02633ff398cf7e91a2c1e12590d323c4a4b8668a
579 | React-jsi: 805c41a927d6499fb811772acb971467d9204633
580 | React-jsiexecutor: 94ce921e1d8ce7023366873ec371f3441383b396
581 | React-jsinspector: d0374f7509d407d2264168b6d0fad0b54e300b85
582 | React-logger: 933f80c97c633ee8965d609876848148e3fef438
583 | react-native-flipper: bb8caa2e42294b4f145365138cf4941a125fe953
584 | react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
585 | React-perflogger: 93075d8931c32cd1fce8a98c15d2d5ccc4d891bd
586 | React-RCTActionSheet: 7d3041e6761b4f3044a37079ddcb156575fb6d89
587 | React-RCTAnimation: 743e88b55ac62511ae5c2e22803d4f503f2a3a13
588 | React-RCTBlob: bee3a2f98fa7fc25c957c8643494244f74bea0a0
589 | React-RCTImage: 19fc9e29b06cc38611c553494f8d3040bf78c24e
590 | React-RCTLinking: dc799503979c8c711126d66328e7ce8f25c2848f
591 | React-RCTNetwork: 417e4e34cf3c19eaa5fd4e9eb20180d662a799ce
592 | React-RCTSettings: 4df89417265af26501a7e0e9192a34d3d9848dff
593 | React-RCTText: f8a21c3499ab322326290fa9b701ae29aa093aa5
594 | React-RCTVibration: e3ffca672dd3772536cb844274094b0e2c31b187
595 | React-runtimeexecutor: dec32ee6f2e2a26e13e58152271535fadff5455a
596 | ReactCommon: 57b69f6383eafcbd7da625bfa6003810332313c4
597 | RNBootSplash: 605c94f76180e3f8e5832bcafbe52ff5194a51d0
598 | RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398
599 | RNGestureHandler: e1ad51d31a580755079d5124d3ab66f0fcaa8311
600 | RNReanimated: da3860204e5660c0dd66739936732197d359d753
601 | RNScreens: 522705f2e5c9d27efb17f24aceb2bf8335bc7b8e
602 | RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f
603 | RNVectorIcons: 4143ba35feebab8fdbe6bc43d1e776b393d47ac8
604 | Yoga: e7dc4e71caba6472ff48ad7d234389b91dadc280
605 | YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
606 |
607 | PODFILE CHECKSUM: be663953d0ce04aab6a5e15c4d508cc4397c1e1a
608 |
609 | COCOAPODS: 1.11.2
610 |
--------------------------------------------------------------------------------