[ignore]
; We fork some components by platform
.*/*[.]android.js

; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/

; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*

; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js

; This is an intentionally malflormed package
.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$

; Ignore these files
.*/node_modules/react-native/sdks/hermes/external/flowtest/test/flow/comment_interning/program_comment_directive.js
.*/node_modules/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts
.*/node_modules/react-native/Libraries/Network/RCTNetworking.js.flow
.*/node_modules/react-native/Libraries/NativeComponent/BaseViewConfig.js.flow
.*/node_modules/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.js.flow
.*/node_modules/metro/node_modules/hermes-estree/dist/generated/predicates.js.flow
.*/node_modules/metro-babel-transformer/node_modules/hermes-estree/dist/generated/predicates.js.flow
.*/node_modules/@react-native/dev-middleware/dist/utils/DefaultBrowserLauncher.js.flow
.*/node_modules/@react-native/community-cli-plugin/dist/commands/start/index.js.flow
.*/node_modules/@react-native/community-cli-plugin/dist/commands/ram-bundle/index.js.flow
.*/node_modules/@react-native/community-cli-plugin/dist/commands/bundle/index.js.flow
.*/node_modules/@react-native/community-cli-plugin/dist/commands/bundle/buildBundle.js.flow
.*/node_modules/metro/src/lib/JsonReporter.js.flow
.*/node_modules/hermes-estree/dist/generated/predicates.js.flow
.*/node_modules/react-native/Libraries/StyleSheet/StyleSheetTypes.js
.*/node_modules/react-native/Libraries/Types/ReactDevToolsTypes.js
.*/node_modules/react-native/Libraries/Components/View/ViewNativeComponent.js
.*/node_modules/hermes-estree/dist/predicates.js.flow
.*/node_modules/react-native/Libraries/Renderer/shims/ReactNativeTypes.js
.*/node_modules/react-native/Libraries/Text/TextNativeComponent.js
.*/node_modules/react-native/flow/jest.js
.*/node_modules/@react-native/community-cli-plugin/dist/commands/start/middleware.js.flow
.*/node_modules/@react-native/community-cli-plugin/dist/utils/errors.js.flow
.*/node_modules/@react-native/community-cli-plugin/dist/utils/logger.js.flow
.*/node_modules/@react-native/dev-middleware/dist/inspector-proxy/types.js.flow
.*/node_modules/babel-plugin-syntax-hermes-parser/node_modules/hermes-parser/dist/traverse/getVisitorKeys.js.flow
.*/node_modules/metro-babel-transformer/node_modules/hermes-parser/dist/traverse/getVisitorKeys.js.flow
.*/node_modules/metro-file-map/src/lib/TreeFS.js.flow
.*/node_modules/metro-resolver/src/PackageExportsResolve.js.flow
.*/node_modules/metro-source-map/src/generateFunctionMap.js.flow
.*/node_modules/metro-transform-worker/src/index.js.flow
.*/node_modules/metro/node_modules/hermes-parser/dist/traverse/getVisitorKeys.js.flow
.*/node_modules/metro/src/ModuleGraph/worker/collectDependencies.js.flow
.*/node_modules/metro/src/Server.js.flow
.*/node_modules/react-native/Libraries/Animated/components/AnimatedView.js
.*/node_modules/react-native/Libraries/Animated/createAnimatedComponent.js
.*/node_modules/react-native/Libraries/Animated/nodes/AnimatedObject.js
.*/node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js
.*/node_modules/react-native/src/private/animated/NativeAnimatedHelper.js
.*/node_modules/hermes-parser/dist/traverse/getVisitorKeys.js.flow
.*/node_modules/react-native/Libraries/Animated/NativeAnimatedAllowlist.js
.*/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.js
.*/node_modules/react-native/Libraries/Components/Button.js
.*/node_modules/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js
.*/node_modules/react-native/Libraries/Components/Pressable/Pressable.js
.*/node_modules/react-native/Libraries/Components/SafeAreaView/SafeAreaView.js
.*/node_modules/react-native/Libraries/Components/ScrollView/ScrollView.js
.*/node_modules/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js
.*/node_modules/react-native/Libraries/Components/Switch/Switch.js
.*/node_modules/react-native/Libraries/Components/TextInput/TextInput.flow.js
.*/node_modules/react-native/Libraries/Components/TextInput/TextInput.js
.*/node_modules/react-native/Libraries/Components/Touchable/BoundingDimensions.js
.*/node_modules/react-native/Libraries/Components/Touchable/Position.js
.*/node_modules/react-native/Libraries/Components/Touchable/TouchableBounce.js
.*/node_modules/react-native/Libraries/Components/Touchable/TouchableHighlight.js
.*/node_modules/react-native/Libraries/Components/Touchable/TouchableOpacity.js
.*/node_modules/react-native/Libraries/Components/View/View.js
.*/node_modules/react-native/Libraries/Debugging/DebuggingOverlay.js
.*/node_modules/react-native/Libraries/Image/ImageTypes.flow.js
.*/node_modules/react-native/Libraries/Interaction/InteractionManager.js
.*/node_modules/react-native/Libraries/Lists/SectionList.js
.*/node_modules/react-native/Libraries/Lists/SectionListModern.js
.*/node_modules/react-native/Libraries/ReactNative/AppContainer.js
.*/node_modules/react-native/Libraries/ReactNative/getCachedComponentWithDebugName.js
.*/node_modules/react-native/Libraries/ReactNative/renderApplication.js
.*/node_modules/react-native/Libraries/Text/Text.js
.*/node_modules/react-native/node_modules/@react-native/virtualized-lists/Lists/VirtualizedSectionList.js
.*/node_modules/react-native/src/private/animated/useAnimatedPropsMemo.js
.*/node_modules/react-native/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js
.*/node_modules/react-native/src/private/debugging/ReactDevToolsSettingsManager.js.flow
.*/node_modules/react-native/src/private/featureflags/ReactNativeFeatureFlagsBase.js
.*/node_modules/react-native/src/private/webapis/intersectionobserver/IntersectionObserver.js
.*/node_modules/react-native/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js
.*/node_modules/react-native/Libraries/Components/LayoutConformance/LayoutConformance.js
.*/node_modules/react-native/src/private/specs/modules/NativeFantom.js
.*/node_modules/react-native/src/private/webapis/dom/nodes/ReactNativeElement.js
.*/node_modules/metro-symbolicate/src/Symbolication.js.flow
.*/node_modules/metro/src/lib/isResolvedDependency.js.flow
.*/node_modules/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js
.*/node_modules/react-native/Libraries/Animated/Animated.js
.*/node_modules/react-native/Libraries/Animated/AnimatedMock.js
.*/node_modules/react-native/Libraries/Animated/useAnimatedProps.js
.*/node_modules/react-native/Libraries/Blob/FileReader.js
.*/node_modules/react-native/Libraries/Blob/FileReader_old.js
.*/node_modules/react-native/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js
.*/node_modules/react-native/Libraries/Components/TextInput/RCTTextInputViewConfig.js
.*/node_modules/react-native/Libraries/Components/TextInput/TextInputNativeCommands.js
.*/node_modules/react-native/Libraries/Image/AssetRegistry.js
.*/node_modules/react-native/Libraries/Interaction/TouchHistoryMath.js
.*/node_modules/react-native/Libraries/LayoutAnimation/LayoutAnimation.js
.*/node_modules/react-native/Libraries/Network/XMLHttpRequest.js
.*/node_modules/react-native/Libraries/PermissionsAndroid/PermissionsAndroid.js
.*/node_modules/react-native/Libraries/ReactNative/AppRegistry.js
.*/node_modules/react-native/Libraries/ReactNative/I18nManager.js
.*/node_modules/react-native/Libraries/Utilities/BackHandler.js.flow
.*/node_modules/react-native/Libraries/WebSocket/WebSocket.js
.*/node_modules/react-native/node_modules/@react-native/virtualized-lists/Lists/VirtualizedList.js
.*/node_modules/react-native/src/private/animated/createAnimatedPropsMemoHook.js
.*/node_modules/react-native/src/private/types/HostComponent.js
.*/node_modules/react-native/src/private/webapis/dom/nodes/internals/NodeInternals.js
.*/node_modules/react-native/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js
.*/node_modules/react-native/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js
.*/node_modules/@react-native/community-cli-plugin/dist/commands/bundle/assetPathUtils.js.flow
.*/node_modules/@react-native/dev-middleware/dist/inspector-proxy/Device.js.flow
.*/node_modules/react-native/Libraries/Animated/components/AnimatedFlatList.js
.*/node_modules/react-native/Libraries/Animated/components/AnimatedSectionList.js
.*/node_modules/react-native/Libraries/Components/ToastAndroid/ToastAndroid.js.flow
.*/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js
.*/node_modules/react-native/Libraries/StyleSheet/StyleSheet.js.flow
.*/node_modules/react-native/Libraries/StyleSheet/StyleSheetExports.js.flow
.*/node_modules/react-native/Libraries/StyleSheet/flattenStyle.js
.*/node_modules/react-native/Libraries/StyleSheet/private/_TransformStyle.js
.*/node_modules/react-native/Libraries/StyleSheet/processBackgroundRepeat.js
.*/node_modules/react-native/Libraries/Utilities/PlatformTypes.js
.*/node_modules/react-native/Libraries/vendor/core/ErrorUtils.js
.*/node_modules/react-native/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js
.*/node_modules/react-native/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.js.flow
.*/node_modules/@react-native/debugger-frontend/index.js
.*/node_modules/metro-babel-transformer/src/index.js.flow
.*/node_modules/metro-cache/src/index.js.flow
.*/node_modules/metro-cache/src/stores/FileStore.js.flow
.*/node_modules/metro-cache/src/stores/HttpStore.js.flow
.*/node_modules/metro-core/src/Logger.js.flow
.*/node_modules/metro-file-map/src/constants.js.flow
.*/node_modules/metro-file-map/src/crawlers/watchman/planQuery.js.flow
.*/node_modules/metro-file-map/src/flow-types.js.flow
.*/node_modules/metro-file-map/src/lib/FileProcessor.js.flow
.*/node_modules/metro-file-map/src/lib/checkWatchmanCapabilities.js.flow
.*/node_modules/metro-file-map/src/lib/normalizePathSeparatorsToPosix.js.flow
.*/node_modules/metro-file-map/src/lib/normalizePathSeparatorsToSystem.js.flow
.*/node_modules/metro-file-map/src/lib/rootRelativeCacheKeys.js.flow
.*/node_modules/metro-file-map/src/plugins/HastePlugin.js.flow
.*/node_modules/metro-file-map/src/watchers/WatchmanWatcher.js.flow
.*/node_modules/metro-runtime/src/modules/HMRClient.js.flow
.*/node_modules/metro-runtime/src/polyfills/require.js.flow
.*/node_modules/metro-source-map/src/BundleBuilder.js.flow
.*/node_modules/metro-source-map/src/Consumer/createConsumer.js.flow
.*/node_modules/metro-source-map/src/Consumer/positionMath.js.flow
.*/node_modules/metro-source-map/src/Generator.js.flow
.*/node_modules/metro-symbolicate/src/symbolicate.js.flow
.*/node_modules/metro-transform-plugins/src/import-export-plugin.js.flow
.*/node_modules/metro-transform-plugins/src/index.js.flow
.*/node_modules/metro/src/Bundler/util.js.flow
.*/node_modules/metro/src/DeltaBundler/Serializers/helpers/js.js.flow
.*/node_modules/metro/src/DeltaBundler/WorkerFarm.js.flow
.*/node_modules/metro/src/HmrServer.js.flow
.*/node_modules/metro/src/commands/build.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/ErrorBundle.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/cannot-resolve-import.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/cannot-resolve-multi-line-import-with-escapes.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/cannot-resolve-multi-line-import.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/cannot-resolve-require-with-embedded-comment.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/cannot-resolve-require.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/cannot-resolve-specifier-with-escapes.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-import.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/build-errors/inline-requires-cannot-resolve-require.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/import-export/index.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-context/conflict.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-context/empty.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-context/matching.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-context/mode-eager.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-context/mode-lazy-once.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-context/mode-lazy.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-context/mode-sync.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-resolveWeak/import-and-resolveWeak.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-resolveWeak/multiple.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-resolveWeak/never-required.js.flow
.*/node_modules/metro/src/integration_tests/basic_bundle/require-resolveWeak/require-and-resolveWeak.js.flow
.*/node_modules/metro/src/lib/getAppendScripts.js.flow
.*/node_modules/metro/src/shared/types.js.flow
.*/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js.flow
.*/node_modules/ob1/src/__flowtests__/ob1-flowtest.js.flow
.*/node_modules/metro-config/src/__fixtures__/cachestores.config.js.flow
.*/node_modules/metro-config/src/__fixtures__/cjs-promise.metro.config.js.flow
.*/node_modules/metro-config/src/__flowtests__/types-flowtest.js.flow
.*/node_modules/metro-config/src/defaults/index.js.flow
.*/node_modules/metro-config/src/loadConfig.js.flow
.*/node_modules/react-native/Libraries/Animated/nodes/AnimatedProps.js
.*/node_modules/react-native/Libraries/Animated/nodes/AnimatedStyle.js
.*/node_modules/react-native/Libraries/Components/Touchable/TouchableWithoutFeedback.js
.*/node_modules/react-native/Libraries/Core/setUpDeveloperTools.js
.*/node_modules/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js
.*/node_modules/react-native/Libraries/NativeComponent/ViewConfigIgnore.js
.*/node_modules/react-native/Libraries/Pressability/Pressability.js
.*/node_modules/react-native/jest/MockNativeMethods.js
.*/node_modules/react-native/jest/mock.js
.*/node_modules/react-native/jest/mockComponent.js
.*/node_modules/react-native/jest/mockNativeComponent.js
.*/node_modules/react-native/jest/mocks/AccessibilityInfo.js
.*/node_modules/react-native/jest/mocks/ActivityIndicator.js
.*/node_modules/react-native/jest/mocks/AppState.js
.*/node_modules/react-native/jest/mocks/Clipboard.js
.*/node_modules/react-native/jest/mocks/Image.js
.*/node_modules/react-native/jest/mocks/Linking.js
.*/node_modules/react-native/jest/mocks/Modal.js
.*/node_modules/react-native/jest/mocks/NativeComponentRegistry.js
.*/node_modules/react-native/jest/mocks/NativeModules.js
.*/node_modules/react-native/jest/mocks/RendererProxy.js
.*/node_modules/react-native/jest/mocks/ScrollView.js
.*/node_modules/react-native/jest/mocks/Text.js
.*/node_modules/react-native/jest/mocks/TextInput.js
.*/node_modules/react-native/jest/mocks/UIManager.js
.*/node_modules/react-native/jest/mocks/Vibration.js
.*/node_modules/react-native/jest/mocks/View.js
.*/node_modules/react-native/jest/mocks/useColorScheme.js
.*/node_modules/react-native/react-native.config.js
.*/node_modules/react-native/scripts/codegen/generate-artifacts-executor/constants.js
.*/node_modules/react-native/scripts/codegen/generate-artifacts-executor/generateRCTModuleProviders.js
.*/node_modules/react-native/scripts/codegen/generate-artifacts-executor/generateRCTThirdPartyComponents.js
.*/node_modules/react-native/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js
.*/node_modules/react-native/scripts/codegen/generate-artifacts-executor/utils.js
.*/node_modules/react-native/scripts/codegen/generate-specs-cli-executor.js
.*/node_modules/react-native/scripts/generate-provider-cli.js
.*/node_modules/react-native/src/private/components/virtualview/VirtualView.js
.*/node_modules/react-native/src/private/components/virtualview/VirtualViewNativeComponent.js
.*/node_modules/react-native/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js
.*/node_modules/@react-native/codegen/lib/cli/combine/combine-js-to-schema.js.flow

[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
.*/node_modules/react-native/index.js

[include]

[libs]
node_modules/react-native/interface.js

[options]
emoji=true

exact_by_default=true

format.bracket_spacing=false

module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
module.file_ext=.ts
module.file_ext=.tsx

munge_underscores=true

module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'

; https://github.com/facebook/flow/issues/4103#issuecomment-565613909
; this is used to remove flow errors related to babel-plugin-module-resolver
module.system.node.allow_root_relative=true
module.system.node.root_relative_dirname=./src

suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState

[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
unnecessary-invariant=warn

[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import

[version]
^0.182.0
