From 80f9b3545c598f629dbd2452f5d2594a029f3c2f Mon Sep 17 00:00:00 2001 From: Gregory Moskaliuk Date: Wed, 23 Jul 2025 17:55:18 +0200 Subject: [PATCH 1/9] [screen-capture] [iOS] Replace-deprecated-keyWindow-usage (#38207) --- packages/expo-screen-capture/CHANGELOG.md | 2 ++ .../ios/ScreenCaptureModule.swift | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/expo-screen-capture/CHANGELOG.md b/packages/expo-screen-capture/CHANGELOG.md index 573d6bb0cdde8e..b08013f6e5d1fb 100644 --- a/packages/expo-screen-capture/CHANGELOG.md +++ b/packages/expo-screen-capture/CHANGELOG.md @@ -16,6 +16,8 @@ ### 💡 Others +- [iOS] Replaced deprecated keyWindow usage. ([#38207](https://github.com/expo/expo/pull/38207) by [@hryhoriiK97](https://github.com/hryhoriiK97)) + ## 7.1.5 - 2025-07-01 ### 💡 Others diff --git a/packages/expo-screen-capture/ios/ScreenCaptureModule.swift b/packages/expo-screen-capture/ios/ScreenCaptureModule.swift index f9c99c22a81326..a3903deb8cb6e2 100644 --- a/packages/expo-screen-capture/ios/ScreenCaptureModule.swift +++ b/packages/expo-screen-capture/ios/ScreenCaptureModule.swift @@ -10,6 +10,11 @@ public final class ScreenCaptureModule: Module { private var originalParent: CALayer? private var blurEffectView: AnimatedBlurEffectView? private var blurIntensity: CGFloat = 0.5 + private var keyWindow: UIWindow? { + return UIApplication.shared.connectedScenes + .flatMap { ($0 as? UIWindowScene)?.windows ?? [] } + .last { $0.isKeyWindow } + } public func definition() -> ModuleDefinition { Name("ExpoScreenCapture") @@ -91,10 +96,12 @@ public final class ScreenCaptureModule: Module { @objc func preventScreenRecording() { + guard let keyWindow = keyWindow, + let visibleView = keyWindow.subviews.first else { return } let isCaptured = UIScreen.main.isCaptured if isCaptured { - UIApplication.shared.keyWindow?.subviews.first?.addSubview(blockView) + visibleView.addSubview(blockView) } else { blockView.removeFromSuperview() } @@ -108,7 +115,7 @@ public final class ScreenCaptureModule: Module { } private func preventScreenshots() { - guard let keyWindow = UIApplication.shared.keyWindow, + guard let keyWindow = keyWindow, let visibleView = keyWindow.subviews.first else { return } let textField = UITextField() @@ -192,7 +199,7 @@ public final class ScreenCaptureModule: Module { } private func showPrivacyOverlay() { - if let keyWindow = UIApplication.shared.keyWindow, + if let keyWindow = keyWindow, let rootView = keyWindow.subviews.first { let blurEffectView = AnimatedBlurEffectView(style: .light, intensity: self.blurIntensity) blurEffectView.frame = rootView.bounds From db86f82b9b24cdb9eb2849371bdc6ae8dd7d2c44 Mon Sep 17 00:00:00 2001 From: Evan Bacon Date: Wed, 23 Jul 2025 10:58:03 -0500 Subject: [PATCH 2/9] Support `--output-dir` being a directory outside of the project root. (#38260) # Why - fix https://github.com/expo/expo/issues/37357 - Support the output-dir being outside of the project root and add protection against clearing the parent dir. --------- Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com> --- packages/@expo/cli/CHANGELOG.md | 1 + packages/@expo/cli/src/export/exportAsync.ts | 7 ++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/@expo/cli/CHANGELOG.md b/packages/@expo/cli/CHANGELOG.md index 888238dd1f25c8..ba1c0e9e9cea42 100644 --- a/packages/@expo/cli/CHANGELOG.md +++ b/packages/@expo/cli/CHANGELOG.md @@ -16,6 +16,7 @@ ### 🐛 Bug fixes +- Support `--output-dir` being a directory outside of the project root. ([#38260](https://github.com/expo/expo/pull/38260) by [@EvanBacon](https://github.com/EvanBacon)) - Update error message for ngrok ([#22469](https://github.com/expo/expo/pull/22469) by [@russorat](https://github.com/russorat)) - Support SSR imports of internal node builtins such as `_http_agent`. ([#37494](https://github.com/expo/expo/pull/37494) by [@EvanBacon](https://github.com/EvanBacon)) - Allow anonymous sessions even when `projectId` is set ([#36874](https://github.com/expo/expo/pull/36874) by [@kadikraman](https://github.com/kadikraman)) diff --git a/packages/@expo/cli/src/export/exportAsync.ts b/packages/@expo/cli/src/export/exportAsync.ts index 767166971c7f2f..6d4c60a47ff113 100644 --- a/packages/@expo/cli/src/export/exportAsync.ts +++ b/packages/@expo/cli/src/export/exportAsync.ts @@ -16,12 +16,9 @@ export async function exportAsync(projectRoot: string, options: Options) { if (outputPath === projectRoot) { throw new CommandError('--output-dir cannot be the same as the project directory.'); - } else if (path.relative(projectRoot, outputPath).startsWith('..')) { - throw new CommandError( - '--output-dir must be a subdirectory of the project directory. Generating outside of the project directory is not supported.' - ); + } else if (projectRoot.startsWith(outputPath)) { + throw new CommandError(`--output-dir cannot be a parent directory of the project directory.`); } - // Delete the output directory if it exists await removeAsync(outputPath); // Create the output directory From defdf49033798492bf4cea68c7802ce642ccf11d Mon Sep 17 00:00:00 2001 From: Alan Hughes <30924086+alanjhughes@users.noreply.github.com> Date: Wed, 23 Jul 2025 18:39:03 +0100 Subject: [PATCH 3/9] [ios][dev-launcher] Remove tests (#38277) --- .../ios/EXDevLauncherUtils.swift | 9 ----- packages/expo-dev-menu/ios/DevMenuUtils.swift | 16 --------- .../ios/Tests/DevMenuUtilsTests.swift | 17 --------- .../ios/Tests/EXDevMenuAppInfoTest.swift | 36 ------------------- 4 files changed, 78 deletions(-) delete mode 100644 packages/expo-dev-menu/ios/Tests/DevMenuUtilsTests.swift delete mode 100644 packages/expo-dev-menu/ios/Tests/EXDevMenuAppInfoTest.swift diff --git a/packages/expo-dev-launcher/ios/EXDevLauncherUtils.swift b/packages/expo-dev-launcher/ios/EXDevLauncherUtils.swift index 034352eafd9593..6ae04e8c3d3738 100644 --- a/packages/expo-dev-launcher/ios/EXDevLauncherUtils.swift +++ b/packages/expo-dev-launcher/ios/EXDevLauncherUtils.swift @@ -63,13 +63,4 @@ class EXDevLauncherUtils { } return method_getImplementation(method) } - - static func resourcesBundle() -> Bundle? { - let frameworkBundle = Bundle(for: EXDevLauncherUtils.self) - - guard let resourcesBundleUrl = frameworkBundle.url(forResource: "EXDevLauncher", withExtension: "bundle") else { - return nil - } - return Bundle(url: resourcesBundleUrl) - } } diff --git a/packages/expo-dev-menu/ios/DevMenuUtils.swift b/packages/expo-dev-menu/ios/DevMenuUtils.swift index 08c4685ace43c1..6d4f39b14896b3 100644 --- a/packages/expo-dev-menu/ios/DevMenuUtils.swift +++ b/packages/expo-dev-menu/ios/DevMenuUtils.swift @@ -22,20 +22,4 @@ class DevMenuUtils { } } } - - /** - Strips `RCT` prefix from given string. - */ - static func stripRCT(_ str: String) -> String { - return str.starts(with: "RCT") ? String(str.dropFirst(3)) : str - } - - static func resourcesBundle() -> Bundle? { - let frameworkBundle = Bundle(for: DevMenuUtils.self) - - guard let resourcesBundleUrl = frameworkBundle.url(forResource: "EXDevMenu", withExtension: "bundle") else { - return nil - } - return Bundle(url: resourcesBundleUrl) - } } diff --git a/packages/expo-dev-menu/ios/Tests/DevMenuUtilsTests.swift b/packages/expo-dev-menu/ios/Tests/DevMenuUtilsTests.swift deleted file mode 100644 index f85c1b013b2fe7..00000000000000 --- a/packages/expo-dev-menu/ios/Tests/DevMenuUtilsTests.swift +++ /dev/null @@ -1,17 +0,0 @@ -import XCTest - -@testable import EXDevMenu - -class DevMenuUtilsTest: XCTestCase { - func test_stripRCT() { - XCTAssertEqual(DevMenuUtils.stripRCT("RCTTest"), "Test") - XCTAssertEqual(DevMenuUtils.stripRCT("Test"), "Test") - } - - func test_if_bundle_is_present() { - let bundle = DevMenuUtils.resourcesBundle() - - XCTAssertNotNil(bundle) - XCTAssertNotNil(bundle!.url(forResource: "EXDevMenuApp.ios", withExtension: "js")) - } -} diff --git a/packages/expo-dev-menu/ios/Tests/EXDevMenuAppInfoTest.swift b/packages/expo-dev-menu/ios/Tests/EXDevMenuAppInfoTest.swift deleted file mode 100644 index 7e4fe7d61b6363..00000000000000 --- a/packages/expo-dev-menu/ios/Tests/EXDevMenuAppInfoTest.swift +++ /dev/null @@ -1,36 +0,0 @@ -import XCTest -import React - - @testable import EXDevMenu - - class MockedNOOPBridge: RCTBridge { - override func invalidate() { - // NOOP - } - - override func setUp() { - bundleURL = URL(string: "http://localhost:1234") - } - } - -// class EXDevMenuAppInfoTest: XCTestCase { -// func test_if_app_info_uses_provided_data() { -// let manifest = [ -// "name": "Test App", -// "version": "123" -// ] - -// let appInfo = EXDevMenuAppInfo.getAppInfo() - -// XCTAssertEqual(appInfo["appName"] as! String, "Test App") -// XCTAssertEqual(appInfo["appVersion"] as! String, "13") -// XCTAssertEqual(appInfo["hostUrl"] as! String, "localhost") -// } - -// func test_if_app_info_gets_host_from_bridge() { -// let appInfo = EXDevMenuAppInfo.getAppInfo() - -// let host = appInfo["hostUrl"] as! String -// XCTAssertEqual(host, "localhost") -// } -// } From 2902271e5417191833194a5076eba6043d0ab49e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kosmaty?= Date: Wed, 23 Jul 2025 19:53:16 +0200 Subject: [PATCH 4/9] [launcher][Android] Fix black screen when loading the app (#38281) --- .../modules/devlauncher/DevLauncherController.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/expo-dev-launcher/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt b/packages/expo-dev-launcher/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt index 98a71a3085d518..d3448096b94102 100644 --- a/packages/expo-dev-launcher/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt +++ b/packages/expo-dev-launcher/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt @@ -5,6 +5,7 @@ import android.content.Context import android.content.Intent import android.net.Uri import android.os.Bundle +import android.util.Log import androidx.annotation.UiThread import androidx.core.net.toUri import com.facebook.react.ReactActivity @@ -414,6 +415,17 @@ class DevLauncherController private constructor() : @JvmStatic internal fun initialize(context: Context, reactHost: ReactHostWrapper) { + try { + val splashScreenManagerClass = Class.forName("expo.modules.splashscreen.SplashScreenManager") + val splashScreenManager = splashScreenManagerClass + .kotlin + .objectInstance + splashScreenManagerClass.getMethod("hide") + .invoke(splashScreenManager) + } catch (e: Throwable) { + Log.e("DevLauncherController", "Failed to hide splash screen", e) + } + val testInterceptor = DevLauncherKoinContext.app.koin.get() if (!testInterceptor.allowReinitialization()) { check(!wasInitialized()) { "DevelopmentClientController was initialized." } From 691276e93ef4041b9f0888ffbda6f2dbc47446ca Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Thu, 24 Jul 2025 00:24:15 +0530 Subject: [PATCH 5/9] [docs] Add feature flag overview page (#38196) --- docs/constants/navigation.js | 1 + docs/pages/guides/using-feature-flags.mdx | 66 +++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 docs/pages/guides/using-feature-flags.mdx diff --git a/docs/constants/navigation.js b/docs/constants/navigation.js index e4a366fe18cb37..1429fa5e61e62c 100644 --- a/docs/constants/navigation.js +++ b/docs/constants/navigation.js @@ -364,6 +364,7 @@ export const general = [ makePage('guides/typescript.mdx'), makePage('guides/in-app-purchases.mdx'), makePage('guides/using-push-notifications-services.mdx'), + makePage('guides/using-feature-flags.mdx'), ]), makeSection('Troubleshooting', [ makePage('troubleshooting/overview.mdx'), diff --git a/docs/pages/guides/using-feature-flags.mdx b/docs/pages/guides/using-feature-flags.mdx new file mode 100644 index 00000000000000..9236f5418dd68e --- /dev/null +++ b/docs/pages/guides/using-feature-flags.mdx @@ -0,0 +1,66 @@ +--- +title: React Native feature flag services +sidebar_title: Using feature flags +description: An overview of feature flag services available in the Expo and React Native ecosystem. +--- + +import { BookOpen02Icon } from '@expo/styleguide-icons/outline/BookOpen02Icon'; + +import { BoxLink } from '~/ui/components/BoxLink'; + +A feature flag (also known as a _feature gate_) is a mechanism that enables and disables features remotely. They are a safe way to rollout new features to your app users without deploying additional code. You can use them for testing in production, A/B testing, or to ship new app features such as UI elements. + +## Feature flag services + +The following libraries provide robust support for feature flag functionality and out-of-the-box compatibility with Expo apps using [Continuous Native Generation (CNG)](/workflow/continuous-native-generation/) and [config plugins](/config-plugins/introduction/) for seamless integration in your app. + +### Posthog + +[PostHog](https://posthog.com/) is an open-source product analytics platform that provides comprehensive feature flagging capabilities alongside analytics, session recordings, and A/B testing. It supports real-time feature toggles with user segmentation and the ability to roll back features instantly, making it an excellent choice for teams that want analytics and feature management in a single platform. It includes built-in A/B testing and multivariate testing functionality, allowing you to run experiments directly through feature flags while collecting detailed analytics on feature adoption and performance metrics. The service also supports bootstrap flags to eliminate loading states and improve user experience. + + + + + +### Statsig + +[Statsig](https://statsig.com/) is a feature management platform designed for data-driven product development that provides advanced statistical analysis, gradual rollouts, and sophisticated targeting capabilities with built-in metrics and performance monitoring for feature releases. The platform offers a robust SDK for React Native and Expo, with automatic event logging and dynamic configurations, making it particularly well-suited for teams focused on rigorous experimentation and data-driven decision-making. + + + +### LaunchDarkly + +[LaunchDarkly](https://launchdarkly.com/) is an enterprise-grade feature management platform that enables instant feature toggles and targeted rollouts with comprehensive dashboard controls, advanced user targeting, and robust experimentation tools that provide real-time flag updates. The SDK includes advanced features such as hooks for React integration, context identification and modification, comprehensive logging, support for multiple environments in development workflows, private attributes for handling sensitive data, and relay proxy configuration for enhanced security and performance. + + + +### Firebase Remote Config + +[Firebase Remote Config](https://firebase.google.com/docs/remote-config) is a cloud service allows you to change the appearance and functionality of your app without requiring an app update. Remote Config values are managed through the Firebase console and accessed via a JavaScript API, which gives you full control over when and how these values affect your app. The service supports conditional targeting based on user properties, app versions, custom attributes and real-time updates. + + From d330af475128b5a084033e4e5a3116bf1cd326ed Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Thu, 24 Jul 2025 00:24:25 +0530 Subject: [PATCH 6/9] [docs] Update React Native Maps usage instruction to include Expo config plugin steps (#38278) --- .../versions/unversioned/sdk/map-view.mdx | 52 ++++++++++++------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/docs/pages/versions/unversioned/sdk/map-view.mdx b/docs/pages/versions/unversioned/sdk/map-view.mdx index 40f26ee19993b6..58486f41a7e4ec 100644 --- a/docs/pages/versions/unversioned/sdk/map-view.mdx +++ b/docs/pages/versions/unversioned/sdk/map-view.mdx @@ -106,20 +106,25 @@ const styles = StyleSheet.create({ #### Add the API key to your project -- Copy your **API Key** into your your to either a **.env** file and then add it to your **app.json** under the `android.config.googleMaps.apiKey` field like or copy it: - -```json - "android": { - "config": { - "googleMaps": { - "apiKey": "process.env.GOOGLE_MAPS_API_KEY", - }, - }, - } +Since you are using Google as the map provider, you need to add the API key to the `react-native-maps` [config plugin](/config-plugins/introduction/). Copy your **API Key** into your project to either a **.env** file or copy it directly and then add it to your app config under the `plugins.react-native-maps.androidGoogleMapsApiKey` field like: + +```json app.json +{ + "expo": { + "plugins": [ + [ + "react-native-maps", + { + "androidGoogleMapsApiKey": "process.env.YOUR_GOOGLE_MAPS_API_KEY" + } + ] + ] + } +} ``` - In your code, import `{ PROVIDER_GOOGLE }` from `react-native-maps` and add the property `provider={PROVIDER_GOOGLE}` to your ``. This property works on both Android and iOS. -- Rebuild the app binary (or re-submit to the Google Play Store in case your app is already uploaded). An easy way to test if the configuration was successful is to do an [emulator build](/develop/development-builds/create-a-build/#create-a-development-build-for-emulatorsimulator). +- Rebuild the app binary (or re-submit to the Google Play Store in case your app is already uploaded). An easy way to test if the configuration was successful is to do an [emulator build](//develop/development-builds/create-a-build/#build-the-native-app-ios-simulator). @@ -150,17 +155,24 @@ const styles = StyleSheet.create({ #### Add the API key to your project -- Copy your **API Key** into your your to either a **.env** file and then add it to your **app.json** under the `ios.config.googleMapsApiKey` field like or copy it: - -```json - "ios": { - "config": { - "googleMapsApiKey": "process.env.GOOGLE_MAPS_API_KEY", - }, - } +Since you are using Google as the map provider, you need to add the API key to the `react-native-maps` [config plugin](/config-plugins/introduction/). Copy your **API Key** into your project to either a **.env** file or copy it directly and then add it to your app config under the `plugins.react-native-maps.iosGoogleMapsApiKey` field like: + +```json app.json +{ + "expo": { + "plugins": [ + [ + "react-native-maps", + { + "iosGoogleMapsApiKey": "process.env.YOUR_GOOGLE_MAPS_API_KEY" + } + ] + ] + } +} ``` - In your code, import `{ PROVIDER_GOOGLE }` from `react-native-maps` and add the property `provider={PROVIDER_GOOGLE}` to your ``. This property works on both Android and iOS. -- Rebuild the app binary. An easy way to test if the configuration was successful is to do a [simulator build](/develop/development-builds/create-a-build/#create-a-development-build-for-emulatorsimulator). +- Rebuild the app binary. An easy way to test if the configuration was successful is to do a [simulator build](/develop/development-builds/create-a-build/#build-the-native-app-ios-simulator). From a4987fde35faf7a4ed6eb242a2b62a65e8173247 Mon Sep 17 00:00:00 2001 From: Aman Mittal Date: Thu, 24 Jul 2025 00:24:34 +0530 Subject: [PATCH 7/9] [docs] Add documentation for prebuilt Expo Modules on Android (#38280) --- docs/constants/navigation.js | 1 + docs/pages/guides/prebuilt-expo-modules.mdx | 81 ++++++++++++++++++ .../prebuilt-expo-modules-on-android.png | Bin 0 -> 35238 bytes 3 files changed, 82 insertions(+) create mode 100644 docs/pages/guides/prebuilt-expo-modules.mdx create mode 100644 docs/public/static/images/guides/prebuilt-expo-modules-on-android.png diff --git a/docs/constants/navigation.js b/docs/constants/navigation.js index 1429fa5e61e62c..34943b5f21c2d9 100644 --- a/docs/constants/navigation.js +++ b/docs/constants/navigation.js @@ -188,6 +188,7 @@ export const general = [ makePage('guides/local-app-development.mdx'), makePage('guides/local-app-production.mdx'), makePage('guides/cache-builds-remotely.mdx'), + makePage('guides/prebuilt-expo-modules.mdx'), ], { expanded: false, diff --git a/docs/pages/guides/prebuilt-expo-modules.mdx b/docs/pages/guides/prebuilt-expo-modules.mdx new file mode 100644 index 00000000000000..40cc97adaefe60 --- /dev/null +++ b/docs/pages/guides/prebuilt-expo-modules.mdx @@ -0,0 +1,81 @@ +--- +title: Prebuilt Expo Modules for Android +sidebar_title: Prebuilt Expo Modules +description: Learn how prebuilt Expo Modules reduce Android built times by up to 25% on your machine. +--- + +import { ContentSpotlight } from '~/ui/components/ContentSpotlight'; + +When building React Native apps, longer build times can slow down your development workflow and reduce productivity. Each time you make changes to your code, you might need to wait for the build process to complete, which can add up to significant delays. + +**Starting from SDK 53**, Expo introduces prebuilt Expo Modules for Android to address this pain point. Instead of compiling Expo Modules source code from scratch during each build, your project can now use pre-compiled versions of these modules. Ultimately, this results in faster build times. + +## Benefits + +- **Faster local development**: Up to 25% reduction in Android build times on local machines +- **Improved developer experience**: Less waiting time during development iterations +- **Automatic optimization**: Works out of the box with new projects for SDK 53 and above + +## How prebuilt Expo Modules for Android work + +During your project's Android build process, look for the `[📦]` emoji prefix next to package names in the build output. This indicates that those packages are using prebuilt versions rather than being compiled from source. + +For example, after creating a project with SDK 53's default template, and running the `npx expo run:android` command, you will notice the `[📦 package-name` prefix next to packages that are precompiled: + + + +## Configuration + +**For SDK 53 and above, no configuration steps are required for projects** that are created with one of the available [Expo templates](/more/create-expo/#--template). + +### Opting out of prebuilt Expo Modules + +You can opt out of prebuilt modules. This might be required when you are modifying the module source code yourself. In this scenario, you can configure the Expo Autolinking configuration by adding `buildFromSource` to the **package.json** file: + +{/* prettier-ignore */} +```json package.json +{ + "name": "your-app-name", + "expo": { + "autolinking": { + "android": { + "buildFromSource": [ + ".*" + ] + } + } + } +} +``` + +### Selectively opt out + +You can also opt out of specific modules while keeping others prebuilt by specifying individual package names instead of the wildcard `".*"`: + +{/* prettier-ignore */} +```json package.json +{ + "name": "your-app-name", + "expo": { + "autolinking": { + "android": { + "buildFromSource": [ + "expo-camera", + "expo-web-browser", + "expo-linking", + ] + } + } + } +} +``` + +## Considerations + +- Existing projects can benefit from this feature when upgrading to SDK 53 and above +- Performance improvements may vary based on your hardware configuration +- Current improvements on EAS Builds are more modest but provide groundwork for future caching mechanisms diff --git a/docs/public/static/images/guides/prebuilt-expo-modules-on-android.png b/docs/public/static/images/guides/prebuilt-expo-modules-on-android.png new file mode 100644 index 0000000000000000000000000000000000000000..5e55d4271145e9db8346eb006517f2d6d13ad9a6 GIT binary patch literal 35238 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 literal 0 HcmV?d00001 From c4e882e86949cfe606e104552fd10b92205237cd Mon Sep 17 00:00:00 2001 From: Evan Bacon Date: Wed, 23 Jul 2025 15:15:08 -0500 Subject: [PATCH 8/9] feat(config-plugins): Support building activities with aliases. (#38263) # Why - fix https://github.com/expo/expo/issues/37921 # How - Add some basic support for resolving activity aliases in AndroidManifest.xml files. # Test Plan - Added a unit test for parsing the manifest. --------- Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com> --- packages/@expo/config-plugins/CHANGELOG.md | 2 + .../build/android/Manifest.d.ts | 14 ++++ .../config-plugins/build/android/Manifest.js | 33 ++++++++- .../build/android/Manifest.js.map | 2 +- .../config-plugins/src/android/Manifest.ts | 69 ++++++++++++++++--- .../src/android/__tests__/Manifest-test.ts | 8 +++ .../fixtures/icon-aliases-AndroidManifest.xml | 31 +++++++++ .../__tests__/__snapshots__/Maps-test.ts.snap | 11 --- 8 files changed, 147 insertions(+), 23 deletions(-) create mode 100644 packages/@expo/config-plugins/src/android/__tests__/fixtures/icon-aliases-AndroidManifest.xml diff --git a/packages/@expo/config-plugins/CHANGELOG.md b/packages/@expo/config-plugins/CHANGELOG.md index a6a12fa3d0ebaa..dfe1f7f8005434 100644 --- a/packages/@expo/config-plugins/CHANGELOG.md +++ b/packages/@expo/config-plugins/CHANGELOG.md @@ -6,6 +6,8 @@ ### 🎉 New features +- Support building activities with aliases. ([#38263](https://github.com/expo/expo/pull/38263) by [@EvanBacon](https://github.com/EvanBacon)) + ### 🐛 Bug fixes ### 💡 Others diff --git a/packages/@expo/config-plugins/build/android/Manifest.d.ts b/packages/@expo/config-plugins/build/android/Manifest.d.ts index def88661262294..b407040d0b5ab2 100644 --- a/packages/@expo/config-plugins/build/android/Manifest.d.ts +++ b/packages/@expo/config-plugins/build/android/Manifest.d.ts @@ -37,6 +37,19 @@ export type ManifestIntentFilter = { data?: ManifestData[]; category?: ManifestCategory[]; }; +export type ManifestActivityAlias = { + $?: { + 'android:name': string; + 'android:enabled'?: StringBoolean; + 'android:exported'?: StringBoolean; + 'android:label'?: string; + 'android:permission'?: string; + 'android:icon'?: string; + 'android:targetActivity': string; + }; + 'intent-filter'?: ManifestIntentFilter[]; + 'meta-data'?: ManifestMetaData[]; +}; export type ManifestMetaData = { $: ManifestMetaDataAttributes; }; @@ -84,6 +97,7 @@ export type ManifestApplication = { receiver?: ManifestReceiver[]; 'meta-data'?: ManifestMetaData[]; 'uses-library'?: ManifestUsesLibrary[]; + 'activity-alias'?: ManifestActivityAlias[]; }; type ManifestPermission = { $: AndroidManifestAttributes & { diff --git a/packages/@expo/config-plugins/build/android/Manifest.js b/packages/@expo/config-plugins/build/android/Manifest.js index 10805f2d5099b6..cb1fb83f7ad33d 100644 --- a/packages/@expo/config-plugins/build/android/Manifest.js +++ b/packages/@expo/config-plugins/build/android/Manifest.js @@ -50,6 +50,8 @@ function XML() { function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } +// https://developer.android.com/guide/topics/manifest/activity-alias-element + async function writeAndroidManifestAsync(manifestPath, androidManifest) { const manifestXml = XML().format(androidManifest); await _fs().default.promises.mkdir(_path().default.dirname(manifestPath), { @@ -86,22 +88,49 @@ function getMainActivityOrThrow(androidManifest) { return mainActivity; } function getRunnableActivity(androidManifest) { + const firstApplication = androidManifest?.manifest?.application?.[0] ?? getMainApplication(androidManifest); + if (!firstApplication) { + return null; + } + // Get enabled activities - const enabledActivities = androidManifest?.manifest?.application?.[0]?.activity?.filter?.(e => e.$['android:enabled'] !== 'false' && e.$['android:enabled'] !== false); + const enabledActivities = firstApplication.activity?.filter?.(e => e.$['android:enabled'] !== 'false' && e.$['android:enabled'] !== false); if (!enabledActivities) { return null; } + const isIntentFilterRunnable = intentFilter => { + return !!intentFilter.action?.some(action => action.$['android:name'] === 'android.intent.action.MAIN') && !!intentFilter.category?.some(category => category.$['android:name'] === 'android.intent.category.LAUNCHER'); + }; // Get the activity that has a runnable intent-filter for (const activity of enabledActivities) { if (Array.isArray(activity['intent-filter'])) { for (const intentFilter of activity['intent-filter']) { - if (intentFilter.action?.find(action => action.$['android:name'] === 'android.intent.action.MAIN') && intentFilter.category?.find(category => category.$['android:name'] === 'android.intent.category.LAUNCHER')) { + if (isIntentFilterRunnable(intentFilter)) { return activity; } } } } + const enabledActivityNames = enabledActivities.map(e => e.$['android:name']); + // If no runnable activity is found, check for matching activity-alias that may be runnable + const aliases = (firstApplication['activity-alias'] ?? []).filter( + // https://developer.android.com/guide/topics/manifest/activity-alias-element + e => e.$['android:enabled'] !== 'false' && enabledActivityNames.includes(e.$['android:targetActivity'])); + if (aliases.length) { + for (const alias of aliases) { + if (Array.isArray(alias['intent-filter'])) { + for (const intentFilter of alias['intent-filter']) { + if (isIntentFilterRunnable(intentFilter)) { + const matchingActivity = enabledActivities.find(e => e.$['android:name'] === alias.$['android:targetActivity']); + if (matchingActivity) { + return matchingActivity; + } + } + } + } + } + } return null; } function getMainActivity(androidManifest) { diff --git a/packages/@expo/config-plugins/build/android/Manifest.js.map b/packages/@expo/config-plugins/build/android/Manifest.js.map index 11640e57dda8b1..8b36d405aafbcc 100644 --- a/packages/@expo/config-plugins/build/android/Manifest.js.map +++ b/packages/@expo/config-plugins/build/android/Manifest.js.map @@ -1 +1 @@ -{"version":3,"file":"Manifest.js","names":["_assert","data","_interopRequireDefault","require","_fs","_path","XML","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeAndroidManifestAsync","manifestPath","androidManifest","manifestXml","format","fs","promises","mkdir","path","dirname","recursive","writeFile","readAndroidManifestAsync","xml","readXMLAsync","isManifest","Error","manifest","getMainApplication","application","filter","$","endsWith","getMainApplicationOrThrow","mainApplication","assert","getMainActivityOrThrow","mainActivity","getMainActivity","getRunnableActivity","enabledActivities","activity","Array","isArray","intentFilter","action","find","category","addMetaDataItemToMainApplication","itemName","itemValue","itemType","existingMetaDataItem","newItem","prefixAndroidKeys","name","length","push","removeMetaDataItemFromMainApplication","index","findMetaDataItem","splice","findApplicationSubItem","parent","findIndex","findUsesLibraryItem","getMainApplicationMetaDataValue","item","addUsesLibraryItemToMainApplication","removeUsesLibraryItemFromMainApplication","head","entries","reduce","prev","key","curr","ensureToolsAvailable","ensureManifestHasNamespace","namespace","url"],"sources":["../../src/android/Manifest.ts"],"sourcesContent":["import assert from 'assert';\nimport fs from 'fs';\nimport path from 'path';\n\nimport * as XML from '../utils/XML';\n\nexport type StringBoolean = 'true' | 'false';\n\ntype ManifestMetaDataAttributes = AndroidManifestAttributes & {\n 'android:value'?: string;\n 'android:resource'?: string;\n};\n\ntype AndroidManifestAttributes = {\n 'android:name': string | 'android.intent.action.VIEW';\n 'tools:node'?: string | 'remove';\n};\n\ntype ManifestAction = {\n $: AndroidManifestAttributes;\n};\n\ntype ManifestCategory = {\n $: AndroidManifestAttributes;\n};\n\ntype ManifestData = {\n $: {\n [key: string]: string | undefined;\n 'android:host'?: string;\n 'android:pathPrefix'?: string;\n 'android:scheme'?: string;\n };\n};\n\ntype ManifestReceiver = {\n $: AndroidManifestAttributes & {\n 'android:exported'?: StringBoolean;\n 'android:enabled'?: StringBoolean;\n };\n 'intent-filter'?: ManifestIntentFilter[];\n};\n\nexport type ManifestIntentFilter = {\n $?: {\n 'android:autoVerify'?: StringBoolean;\n 'data-generated'?: StringBoolean;\n };\n action?: ManifestAction[];\n data?: ManifestData[];\n category?: ManifestCategory[];\n};\n\nexport type ManifestMetaData = {\n $: ManifestMetaDataAttributes;\n};\n\ntype ManifestServiceAttributes = AndroidManifestAttributes & {\n 'android:enabled'?: StringBoolean;\n 'android:exported'?: StringBoolean;\n 'android:permission'?: string;\n 'android:foregroundServiceType'?: string;\n // ...\n};\n\ntype ManifestService = {\n $: ManifestServiceAttributes;\n 'intent-filter'?: ManifestIntentFilter[];\n};\n\ntype ManifestApplicationAttributes = {\n 'android:name': string | '.MainApplication';\n 'android:icon'?: string;\n 'android:roundIcon'?: string;\n 'android:label'?: string;\n 'android:allowBackup'?: StringBoolean;\n 'android:largeHeap'?: StringBoolean;\n 'android:requestLegacyExternalStorage'?: StringBoolean;\n 'android:supportsPictureInPicture'?: StringBoolean;\n 'android:usesCleartextTraffic'?: StringBoolean;\n [key: string]: string | undefined;\n};\n\nexport type ManifestActivity = {\n $: ManifestApplicationAttributes & {\n 'android:exported'?: StringBoolean;\n 'android:launchMode'?: string;\n 'android:theme'?: string;\n 'android:windowSoftInputMode'?:\n | string\n | 'stateUnspecified'\n | 'stateUnchanged'\n | 'stateHidden'\n | 'stateAlwaysHidden'\n | 'stateVisible'\n | 'stateAlwaysVisible'\n | 'adjustUnspecified'\n | 'adjustResize'\n | 'adjustPan';\n [key: string]: string | undefined;\n };\n 'intent-filter'?: ManifestIntentFilter[];\n // ...\n};\n\nexport type ManifestUsesLibrary = {\n $: AndroidManifestAttributes & {\n 'android:required'?: StringBoolean;\n };\n};\n\nexport type ManifestApplication = {\n $: ManifestApplicationAttributes;\n activity?: ManifestActivity[];\n service?: ManifestService[];\n receiver?: ManifestReceiver[];\n 'meta-data'?: ManifestMetaData[];\n 'uses-library'?: ManifestUsesLibrary[];\n // ...\n};\n\ntype ManifestPermission = {\n $: AndroidManifestAttributes & {\n 'android:protectionLevel'?: string | 'signature';\n };\n};\n\nexport type ManifestUsesPermission = {\n $: AndroidManifestAttributes;\n};\n\ntype ManifestUsesFeature = {\n $: AndroidManifestAttributes & {\n 'android:glEsVersion'?: string;\n 'android:required': StringBoolean;\n };\n};\n\nexport type AndroidManifest = {\n manifest: {\n // Probably more, but this is currently all we'd need for most cases in Expo.\n $: {\n 'xmlns:android': string;\n 'xmlns:tools'?: string;\n package?: string;\n [key: string]: string | undefined;\n };\n permission?: ManifestPermission[];\n 'uses-permission'?: ManifestUsesPermission[];\n 'uses-permission-sdk-23'?: ManifestUsesPermission[];\n 'uses-feature'?: ManifestUsesFeature[];\n queries: ManifestQuery[];\n application?: ManifestApplication[];\n };\n};\n\ntype ManifestQueryIntent = Omit;\n\nexport type ManifestQuery = {\n package?: {\n $: {\n 'android:name': string;\n };\n }[];\n intent?: ManifestQueryIntent[];\n provider?: {\n $: {\n 'android:authorities': string;\n };\n }[];\n};\n\nexport async function writeAndroidManifestAsync(\n manifestPath: string,\n androidManifest: AndroidManifest\n): Promise {\n const manifestXml = XML.format(androidManifest);\n await fs.promises.mkdir(path.dirname(manifestPath), { recursive: true });\n await fs.promises.writeFile(manifestPath, manifestXml);\n}\n\nexport async function readAndroidManifestAsync(manifestPath: string): Promise {\n const xml = await XML.readXMLAsync({ path: manifestPath });\n if (!isManifest(xml)) {\n throw new Error('Invalid manifest found at: ' + manifestPath);\n }\n return xml;\n}\n\nfunction isManifest(xml: XML.XMLObject): xml is AndroidManifest {\n // TODO: Maybe more validation\n return !!xml.manifest;\n}\n\n/** Returns the `manifest.application` tag ending in `.MainApplication` */\nexport function getMainApplication(androidManifest: AndroidManifest): ManifestApplication | null {\n return (\n androidManifest?.manifest?.application?.filter((e) =>\n e?.$?.['android:name'].endsWith('.MainApplication')\n )[0] ?? null\n );\n}\n\nexport function getMainApplicationOrThrow(androidManifest: AndroidManifest): ManifestApplication {\n const mainApplication = getMainApplication(androidManifest);\n assert(mainApplication, 'AndroidManifest.xml is missing the required MainApplication element');\n return mainApplication;\n}\n\nexport function getMainActivityOrThrow(androidManifest: AndroidManifest): ManifestActivity {\n const mainActivity = getMainActivity(androidManifest);\n assert(mainActivity, 'AndroidManifest.xml is missing the required MainActivity element');\n return mainActivity;\n}\n\nexport function getRunnableActivity(androidManifest: AndroidManifest): ManifestActivity | null {\n // Get enabled activities\n const enabledActivities = androidManifest?.manifest?.application?.[0]?.activity?.filter?.(\n (e: any) => e.$['android:enabled'] !== 'false' && e.$['android:enabled'] !== false\n );\n\n if (!enabledActivities) {\n return null;\n }\n\n // Get the activity that has a runnable intent-filter\n for (const activity of enabledActivities) {\n if (Array.isArray(activity['intent-filter'])) {\n for (const intentFilter of activity['intent-filter']) {\n if (\n intentFilter.action?.find(\n (action) => action.$['android:name'] === 'android.intent.action.MAIN'\n ) &&\n intentFilter.category?.find(\n (category) => category.$['android:name'] === 'android.intent.category.LAUNCHER'\n )\n ) {\n return activity;\n }\n }\n }\n }\n\n return null;\n}\n\nexport function getMainActivity(androidManifest: AndroidManifest): ManifestActivity | null {\n const mainActivity = androidManifest?.manifest?.application?.[0]?.activity?.filter?.(\n (e: any) => e.$['android:name'] === '.MainActivity'\n );\n return mainActivity?.[0] ?? null;\n}\n\nexport function addMetaDataItemToMainApplication(\n mainApplication: ManifestApplication,\n itemName: string,\n itemValue: string,\n itemType: 'resource' | 'value' = 'value'\n): ManifestApplication {\n let existingMetaDataItem;\n const newItem = {\n $: prefixAndroidKeys({ name: itemName, [itemType]: itemValue }),\n } as ManifestMetaData;\n if (mainApplication['meta-data']) {\n existingMetaDataItem = mainApplication['meta-data'].filter(\n (e: any) => e.$['android:name'] === itemName\n );\n if (existingMetaDataItem.length) {\n existingMetaDataItem[0].$[`android:${itemType}` as keyof ManifestMetaDataAttributes] =\n itemValue;\n } else {\n mainApplication['meta-data'].push(newItem);\n }\n } else {\n mainApplication['meta-data'] = [newItem];\n }\n return mainApplication;\n}\n\nexport function removeMetaDataItemFromMainApplication(mainApplication: any, itemName: string) {\n const index = findMetaDataItem(mainApplication, itemName);\n if (mainApplication?.['meta-data'] && index > -1) {\n mainApplication['meta-data'].splice(index, 1);\n }\n return mainApplication;\n}\n\nfunction findApplicationSubItem(\n mainApplication: ManifestApplication,\n category: keyof ManifestApplication,\n itemName: string\n): number {\n const parent = mainApplication[category];\n if (Array.isArray(parent)) {\n const index = parent.findIndex((e: any) => e.$['android:name'] === itemName);\n\n return index;\n }\n return -1;\n}\n\nexport function findMetaDataItem(mainApplication: any, itemName: string): number {\n return findApplicationSubItem(mainApplication, 'meta-data', itemName);\n}\n\nexport function findUsesLibraryItem(mainApplication: any, itemName: string): number {\n return findApplicationSubItem(mainApplication, 'uses-library', itemName);\n}\n\nexport function getMainApplicationMetaDataValue(\n androidManifest: AndroidManifest,\n name: string\n): string | null {\n const mainApplication = getMainApplication(androidManifest);\n\n if (mainApplication?.hasOwnProperty('meta-data')) {\n const item = mainApplication?.['meta-data']?.find((e: any) => e.$['android:name'] === name);\n return item?.$['android:value'] ?? null;\n }\n\n return null;\n}\n\nexport function addUsesLibraryItemToMainApplication(\n mainApplication: ManifestApplication,\n item: { name: string; required?: boolean }\n): ManifestApplication {\n let existingMetaDataItem;\n const newItem = {\n $: prefixAndroidKeys(item),\n } as ManifestUsesLibrary;\n\n if (mainApplication['uses-library']) {\n existingMetaDataItem = mainApplication['uses-library'].filter(\n (e) => e.$['android:name'] === item.name\n );\n if (existingMetaDataItem.length) {\n existingMetaDataItem[0].$ = newItem.$;\n } else {\n mainApplication['uses-library'].push(newItem);\n }\n } else {\n mainApplication['uses-library'] = [newItem];\n }\n return mainApplication;\n}\n\nexport function removeUsesLibraryItemFromMainApplication(\n mainApplication: ManifestApplication,\n itemName: string\n) {\n const index = findUsesLibraryItem(mainApplication, itemName);\n if (mainApplication?.['uses-library'] && index > -1) {\n mainApplication['uses-library'].splice(index, 1);\n }\n return mainApplication;\n}\n\nexport function prefixAndroidKeys = Record>(\n head: T\n): Record {\n // prefix all keys with `android:`\n return Object.entries(head).reduce(\n (prev, [key, curr]) => ({ ...prev, [`android:${key}`]: curr }),\n {} as T\n );\n}\n\n/**\n * Ensure the `tools:*` namespace is available in the manifest.\n *\n * @param manifest AndroidManifest.xml\n * @returns manifest with the `tools:*` namespace available\n */\nexport function ensureToolsAvailable(manifest: AndroidManifest) {\n return ensureManifestHasNamespace(manifest, {\n namespace: 'xmlns:tools',\n url: 'http://schemas.android.com/tools',\n });\n}\n\n/**\n * Ensure a particular namespace is available in the manifest.\n *\n * @param manifest `AndroidManifest.xml`\n * @returns manifest with the provided namespace available\n */\nfunction ensureManifestHasNamespace(\n manifest: AndroidManifest,\n { namespace, url }: { namespace: string; url: string }\n) {\n if (manifest?.manifest?.$?.[namespace]) {\n return manifest;\n }\n manifest.manifest.$[namespace] = url;\n return manifest;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"file":"Manifest.js","names":["_assert","data","_interopRequireDefault","require","_fs","_path","XML","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","writeAndroidManifestAsync","manifestPath","androidManifest","manifestXml","format","fs","promises","mkdir","path","dirname","recursive","writeFile","readAndroidManifestAsync","xml","readXMLAsync","isManifest","Error","manifest","getMainApplication","application","filter","$","endsWith","getMainApplicationOrThrow","mainApplication","assert","getMainActivityOrThrow","mainActivity","getMainActivity","getRunnableActivity","firstApplication","enabledActivities","activity","isIntentFilterRunnable","intentFilter","action","some","category","Array","isArray","enabledActivityNames","map","aliases","includes","length","alias","matchingActivity","find","addMetaDataItemToMainApplication","itemName","itemValue","itemType","existingMetaDataItem","newItem","prefixAndroidKeys","name","push","removeMetaDataItemFromMainApplication","index","findMetaDataItem","splice","findApplicationSubItem","parent","findIndex","findUsesLibraryItem","getMainApplicationMetaDataValue","item","addUsesLibraryItemToMainApplication","removeUsesLibraryItemFromMainApplication","head","entries","reduce","prev","key","curr","ensureToolsAvailable","ensureManifestHasNamespace","namespace","url"],"sources":["../../src/android/Manifest.ts"],"sourcesContent":["import assert from 'assert';\nimport fs from 'fs';\nimport path from 'path';\n\nimport * as XML from '../utils/XML';\n\nexport type StringBoolean = 'true' | 'false';\n\ntype ManifestMetaDataAttributes = AndroidManifestAttributes & {\n 'android:value'?: string;\n 'android:resource'?: string;\n};\n\ntype AndroidManifestAttributes = {\n 'android:name': string | 'android.intent.action.VIEW';\n 'tools:node'?: string | 'remove';\n};\n\ntype ManifestAction = {\n $: AndroidManifestAttributes;\n};\n\ntype ManifestCategory = {\n $: AndroidManifestAttributes;\n};\n\ntype ManifestData = {\n $: {\n [key: string]: string | undefined;\n 'android:host'?: string;\n 'android:pathPrefix'?: string;\n 'android:scheme'?: string;\n };\n};\n\ntype ManifestReceiver = {\n $: AndroidManifestAttributes & {\n 'android:exported'?: StringBoolean;\n 'android:enabled'?: StringBoolean;\n };\n 'intent-filter'?: ManifestIntentFilter[];\n};\n\nexport type ManifestIntentFilter = {\n $?: {\n 'android:autoVerify'?: StringBoolean;\n 'data-generated'?: StringBoolean;\n };\n action?: ManifestAction[];\n data?: ManifestData[];\n category?: ManifestCategory[];\n};\n\n// https://developer.android.com/guide/topics/manifest/activity-alias-element\nexport type ManifestActivityAlias = {\n $?: {\n 'android:name': string;\n 'android:enabled'?: StringBoolean;\n 'android:exported'?: StringBoolean;\n 'android:label'?: string;\n 'android:permission'?: string;\n 'android:icon'?: string;\n 'android:targetActivity': string;\n };\n 'intent-filter'?: ManifestIntentFilter[];\n 'meta-data'?: ManifestMetaData[];\n};\n\nexport type ManifestMetaData = {\n $: ManifestMetaDataAttributes;\n};\n\ntype ManifestServiceAttributes = AndroidManifestAttributes & {\n 'android:enabled'?: StringBoolean;\n 'android:exported'?: StringBoolean;\n 'android:permission'?: string;\n 'android:foregroundServiceType'?: string;\n // ...\n};\n\ntype ManifestService = {\n $: ManifestServiceAttributes;\n 'intent-filter'?: ManifestIntentFilter[];\n};\n\ntype ManifestApplicationAttributes = {\n 'android:name': string | '.MainApplication';\n 'android:icon'?: string;\n 'android:roundIcon'?: string;\n 'android:label'?: string;\n 'android:allowBackup'?: StringBoolean;\n 'android:largeHeap'?: StringBoolean;\n 'android:requestLegacyExternalStorage'?: StringBoolean;\n 'android:supportsPictureInPicture'?: StringBoolean;\n 'android:usesCleartextTraffic'?: StringBoolean;\n [key: string]: string | undefined;\n};\n\nexport type ManifestActivity = {\n $: ManifestApplicationAttributes & {\n 'android:exported'?: StringBoolean;\n 'android:launchMode'?: string;\n 'android:theme'?: string;\n 'android:windowSoftInputMode'?:\n | string\n | 'stateUnspecified'\n | 'stateUnchanged'\n | 'stateHidden'\n | 'stateAlwaysHidden'\n | 'stateVisible'\n | 'stateAlwaysVisible'\n | 'adjustUnspecified'\n | 'adjustResize'\n | 'adjustPan';\n [key: string]: string | undefined;\n };\n 'intent-filter'?: ManifestIntentFilter[];\n // ...\n};\n\nexport type ManifestUsesLibrary = {\n $: AndroidManifestAttributes & {\n 'android:required'?: StringBoolean;\n };\n};\n\nexport type ManifestApplication = {\n $: ManifestApplicationAttributes;\n activity?: ManifestActivity[];\n service?: ManifestService[];\n receiver?: ManifestReceiver[];\n 'meta-data'?: ManifestMetaData[];\n 'uses-library'?: ManifestUsesLibrary[];\n 'activity-alias'?: ManifestActivityAlias[];\n // ...\n};\n\ntype ManifestPermission = {\n $: AndroidManifestAttributes & {\n 'android:protectionLevel'?: string | 'signature';\n };\n};\n\nexport type ManifestUsesPermission = {\n $: AndroidManifestAttributes;\n};\n\ntype ManifestUsesFeature = {\n $: AndroidManifestAttributes & {\n 'android:glEsVersion'?: string;\n 'android:required': StringBoolean;\n };\n};\n\nexport type AndroidManifest = {\n manifest: {\n // Probably more, but this is currently all we'd need for most cases in Expo.\n $: {\n 'xmlns:android': string;\n 'xmlns:tools'?: string;\n package?: string;\n [key: string]: string | undefined;\n };\n permission?: ManifestPermission[];\n 'uses-permission'?: ManifestUsesPermission[];\n 'uses-permission-sdk-23'?: ManifestUsesPermission[];\n 'uses-feature'?: ManifestUsesFeature[];\n queries: ManifestQuery[];\n application?: ManifestApplication[];\n };\n};\n\ntype ManifestQueryIntent = Omit;\n\nexport type ManifestQuery = {\n package?: {\n $: {\n 'android:name': string;\n };\n }[];\n intent?: ManifestQueryIntent[];\n provider?: {\n $: {\n 'android:authorities': string;\n };\n }[];\n};\n\nexport async function writeAndroidManifestAsync(\n manifestPath: string,\n androidManifest: AndroidManifest\n): Promise {\n const manifestXml = XML.format(androidManifest);\n await fs.promises.mkdir(path.dirname(manifestPath), { recursive: true });\n await fs.promises.writeFile(manifestPath, manifestXml);\n}\n\nexport async function readAndroidManifestAsync(manifestPath: string): Promise {\n const xml = await XML.readXMLAsync({ path: manifestPath });\n if (!isManifest(xml)) {\n throw new Error('Invalid manifest found at: ' + manifestPath);\n }\n return xml;\n}\n\nfunction isManifest(xml: XML.XMLObject): xml is AndroidManifest {\n // TODO: Maybe more validation\n return !!xml.manifest;\n}\n\n/** Returns the `manifest.application` tag ending in `.MainApplication` */\nexport function getMainApplication(androidManifest: AndroidManifest): ManifestApplication | null {\n return (\n androidManifest?.manifest?.application?.filter((e) =>\n e?.$?.['android:name'].endsWith('.MainApplication')\n )[0] ?? null\n );\n}\n\nexport function getMainApplicationOrThrow(androidManifest: AndroidManifest): ManifestApplication {\n const mainApplication = getMainApplication(androidManifest);\n assert(mainApplication, 'AndroidManifest.xml is missing the required MainApplication element');\n return mainApplication;\n}\n\nexport function getMainActivityOrThrow(androidManifest: AndroidManifest): ManifestActivity {\n const mainActivity = getMainActivity(androidManifest);\n assert(mainActivity, 'AndroidManifest.xml is missing the required MainActivity element');\n return mainActivity;\n}\n\nexport function getRunnableActivity(androidManifest: AndroidManifest): ManifestActivity | null {\n const firstApplication =\n androidManifest?.manifest?.application?.[0] ?? getMainApplication(androidManifest);\n if (!firstApplication) {\n return null;\n }\n\n // Get enabled activities\n const enabledActivities = firstApplication.activity?.filter?.(\n (e: any) => e.$['android:enabled'] !== 'false' && e.$['android:enabled'] !== false\n );\n\n if (!enabledActivities) {\n return null;\n }\n\n const isIntentFilterRunnable = (intentFilter: ManifestIntentFilter): boolean => {\n return (\n !!intentFilter.action?.some(\n (action) => action.$['android:name'] === 'android.intent.action.MAIN'\n ) &&\n !!intentFilter.category?.some(\n (category) => category.$['android:name'] === 'android.intent.category.LAUNCHER'\n )\n );\n };\n\n // Get the activity that has a runnable intent-filter\n for (const activity of enabledActivities) {\n if (Array.isArray(activity['intent-filter'])) {\n for (const intentFilter of activity['intent-filter']) {\n if (isIntentFilterRunnable(intentFilter)) {\n return activity;\n }\n }\n }\n }\n\n const enabledActivityNames = enabledActivities.map((e) => e.$['android:name']);\n // If no runnable activity is found, check for matching activity-alias that may be runnable\n const aliases = (firstApplication['activity-alias'] ?? []).filter(\n // https://developer.android.com/guide/topics/manifest/activity-alias-element\n (e: any) =>\n e.$['android:enabled'] !== 'false' &&\n enabledActivityNames.includes(e.$['android:targetActivity'])\n );\n if (aliases.length) {\n for (const alias of aliases) {\n if (Array.isArray(alias['intent-filter'])) {\n for (const intentFilter of alias['intent-filter']) {\n if (isIntentFilterRunnable(intentFilter)) {\n const matchingActivity = enabledActivities.find(\n (e) => e.$['android:name'] === alias.$!['android:targetActivity']\n );\n if (matchingActivity) {\n return matchingActivity;\n }\n }\n }\n }\n }\n }\n\n return null;\n}\n\nexport function getMainActivity(androidManifest: AndroidManifest): ManifestActivity | null {\n const mainActivity = androidManifest?.manifest?.application?.[0]?.activity?.filter?.(\n (e: any) => e.$['android:name'] === '.MainActivity'\n );\n return mainActivity?.[0] ?? null;\n}\n\nexport function addMetaDataItemToMainApplication(\n mainApplication: ManifestApplication,\n itemName: string,\n itemValue: string,\n itemType: 'resource' | 'value' = 'value'\n): ManifestApplication {\n let existingMetaDataItem;\n const newItem = {\n $: prefixAndroidKeys({ name: itemName, [itemType]: itemValue }),\n } as ManifestMetaData;\n if (mainApplication['meta-data']) {\n existingMetaDataItem = mainApplication['meta-data'].filter(\n (e: any) => e.$['android:name'] === itemName\n );\n if (existingMetaDataItem.length) {\n existingMetaDataItem[0].$[`android:${itemType}` as keyof ManifestMetaDataAttributes] =\n itemValue;\n } else {\n mainApplication['meta-data'].push(newItem);\n }\n } else {\n mainApplication['meta-data'] = [newItem];\n }\n return mainApplication;\n}\n\nexport function removeMetaDataItemFromMainApplication(mainApplication: any, itemName: string) {\n const index = findMetaDataItem(mainApplication, itemName);\n if (mainApplication?.['meta-data'] && index > -1) {\n mainApplication['meta-data'].splice(index, 1);\n }\n return mainApplication;\n}\n\nfunction findApplicationSubItem(\n mainApplication: ManifestApplication,\n category: keyof ManifestApplication,\n itemName: string\n): number {\n const parent = mainApplication[category];\n if (Array.isArray(parent)) {\n const index = parent.findIndex((e: any) => e.$['android:name'] === itemName);\n\n return index;\n }\n return -1;\n}\n\nexport function findMetaDataItem(mainApplication: any, itemName: string): number {\n return findApplicationSubItem(mainApplication, 'meta-data', itemName);\n}\n\nexport function findUsesLibraryItem(mainApplication: any, itemName: string): number {\n return findApplicationSubItem(mainApplication, 'uses-library', itemName);\n}\n\nexport function getMainApplicationMetaDataValue(\n androidManifest: AndroidManifest,\n name: string\n): string | null {\n const mainApplication = getMainApplication(androidManifest);\n\n if (mainApplication?.hasOwnProperty('meta-data')) {\n const item = mainApplication?.['meta-data']?.find((e: any) => e.$['android:name'] === name);\n return item?.$['android:value'] ?? null;\n }\n\n return null;\n}\n\nexport function addUsesLibraryItemToMainApplication(\n mainApplication: ManifestApplication,\n item: { name: string; required?: boolean }\n): ManifestApplication {\n let existingMetaDataItem;\n const newItem = {\n $: prefixAndroidKeys(item),\n } as ManifestUsesLibrary;\n\n if (mainApplication['uses-library']) {\n existingMetaDataItem = mainApplication['uses-library'].filter(\n (e) => e.$['android:name'] === item.name\n );\n if (existingMetaDataItem.length) {\n existingMetaDataItem[0].$ = newItem.$;\n } else {\n mainApplication['uses-library'].push(newItem);\n }\n } else {\n mainApplication['uses-library'] = [newItem];\n }\n return mainApplication;\n}\n\nexport function removeUsesLibraryItemFromMainApplication(\n mainApplication: ManifestApplication,\n itemName: string\n) {\n const index = findUsesLibraryItem(mainApplication, itemName);\n if (mainApplication?.['uses-library'] && index > -1) {\n mainApplication['uses-library'].splice(index, 1);\n }\n return mainApplication;\n}\n\nexport function prefixAndroidKeys = Record>(\n head: T\n): Record {\n // prefix all keys with `android:`\n return Object.entries(head).reduce(\n (prev, [key, curr]) => ({ ...prev, [`android:${key}`]: curr }),\n {} as T\n );\n}\n\n/**\n * Ensure the `tools:*` namespace is available in the manifest.\n *\n * @param manifest AndroidManifest.xml\n * @returns manifest with the `tools:*` namespace available\n */\nexport function ensureToolsAvailable(manifest: AndroidManifest) {\n return ensureManifestHasNamespace(manifest, {\n namespace: 'xmlns:tools',\n url: 'http://schemas.android.com/tools',\n });\n}\n\n/**\n * Ensure a particular namespace is available in the manifest.\n *\n * @param manifest `AndroidManifest.xml`\n * @returns manifest with the provided namespace available\n */\nfunction ensureManifestHasNamespace(\n manifest: AndroidManifest,\n { namespace, url }: { namespace: string; url: string }\n) {\n if (manifest?.manifest?.$?.[namespace]) {\n return manifest;\n }\n manifest.manifest.$[namespace] = url;\n return manifest;\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/packages/@expo/config-plugins/src/android/Manifest.ts b/packages/@expo/config-plugins/src/android/Manifest.ts index 9e65c26b5e0951..f785ff25048b1f 100644 --- a/packages/@expo/config-plugins/src/android/Manifest.ts +++ b/packages/@expo/config-plugins/src/android/Manifest.ts @@ -51,6 +51,21 @@ export type ManifestIntentFilter = { category?: ManifestCategory[]; }; +// https://developer.android.com/guide/topics/manifest/activity-alias-element +export type ManifestActivityAlias = { + $?: { + 'android:name': string; + 'android:enabled'?: StringBoolean; + 'android:exported'?: StringBoolean; + 'android:label'?: string; + 'android:permission'?: string; + 'android:icon'?: string; + 'android:targetActivity': string; + }; + 'intent-filter'?: ManifestIntentFilter[]; + 'meta-data'?: ManifestMetaData[]; +}; + export type ManifestMetaData = { $: ManifestMetaDataAttributes; }; @@ -116,6 +131,7 @@ export type ManifestApplication = { receiver?: ManifestReceiver[]; 'meta-data'?: ManifestMetaData[]; 'uses-library'?: ManifestUsesLibrary[]; + 'activity-alias'?: ManifestActivityAlias[]; // ... }; @@ -214,8 +230,14 @@ export function getMainActivityOrThrow(androidManifest: AndroidManifest): Manife } export function getRunnableActivity(androidManifest: AndroidManifest): ManifestActivity | null { + const firstApplication = + androidManifest?.manifest?.application?.[0] ?? getMainApplication(androidManifest); + if (!firstApplication) { + return null; + } + // Get enabled activities - const enabledActivities = androidManifest?.manifest?.application?.[0]?.activity?.filter?.( + const enabledActivities = firstApplication.activity?.filter?.( (e: any) => e.$['android:enabled'] !== 'false' && e.$['android:enabled'] !== false ); @@ -223,24 +245,53 @@ export function getRunnableActivity(androidManifest: AndroidManifest): ManifestA return null; } + const isIntentFilterRunnable = (intentFilter: ManifestIntentFilter): boolean => { + return ( + !!intentFilter.action?.some( + (action) => action.$['android:name'] === 'android.intent.action.MAIN' + ) && + !!intentFilter.category?.some( + (category) => category.$['android:name'] === 'android.intent.category.LAUNCHER' + ) + ); + }; + // Get the activity that has a runnable intent-filter for (const activity of enabledActivities) { if (Array.isArray(activity['intent-filter'])) { for (const intentFilter of activity['intent-filter']) { - if ( - intentFilter.action?.find( - (action) => action.$['android:name'] === 'android.intent.action.MAIN' - ) && - intentFilter.category?.find( - (category) => category.$['android:name'] === 'android.intent.category.LAUNCHER' - ) - ) { + if (isIntentFilterRunnable(intentFilter)) { return activity; } } } } + const enabledActivityNames = enabledActivities.map((e) => e.$['android:name']); + // If no runnable activity is found, check for matching activity-alias that may be runnable + const aliases = (firstApplication['activity-alias'] ?? []).filter( + // https://developer.android.com/guide/topics/manifest/activity-alias-element + (e: any) => + e.$['android:enabled'] !== 'false' && + enabledActivityNames.includes(e.$['android:targetActivity']) + ); + if (aliases.length) { + for (const alias of aliases) { + if (Array.isArray(alias['intent-filter'])) { + for (const intentFilter of alias['intent-filter']) { + if (isIntentFilterRunnable(intentFilter)) { + const matchingActivity = enabledActivities.find( + (e) => e.$['android:name'] === alias.$!['android:targetActivity'] + ); + if (matchingActivity) { + return matchingActivity; + } + } + } + } + } + } + return null; } diff --git a/packages/@expo/config-plugins/src/android/__tests__/Manifest-test.ts b/packages/@expo/config-plugins/src/android/__tests__/Manifest-test.ts index e01703d72abeda..3ac8425c9a668f 100644 --- a/packages/@expo/config-plugins/src/android/__tests__/Manifest-test.ts +++ b/packages/@expo/config-plugins/src/android/__tests__/Manifest-test.ts @@ -48,6 +48,14 @@ describe(getRunnableActivity, () => { expect(activity.$['android:name']).toBe('.CustomNamed'); expect(Array.isArray(activity['intent-filter'])).toBe(true); }); + it(`supports aliases`, async () => { + const sampleManifestPath = resolve(__dirname, 'fixtures/icon-aliases-AndroidManifest.xml'); + const manifest = await readAndroidManifestAsync(sampleManifestPath); + const activity = getRunnableActivity(manifest)!; + expect(activity.$).toBeDefined(); + expect(activity.$['android:name']).toBe('.MainActivity'); + expect(Array.isArray(activity['intent-filter'])).toBe(true); + }); }); describe(getMainApplication, () => { it(`works`, async () => { diff --git a/packages/@expo/config-plugins/src/android/__tests__/fixtures/icon-aliases-AndroidManifest.xml b/packages/@expo/config-plugins/src/android/__tests__/fixtures/icon-aliases-AndroidManifest.xml new file mode 100644 index 00000000000000..301f051c9d5bed --- /dev/null +++ b/packages/@expo/config-plugins/src/android/__tests__/fixtures/icon-aliases-AndroidManifest.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap b/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap index 6999b407dc5189..16517d45db1d60 100644 --- a/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap +++ b/packages/@expo/config-plugins/src/ios/__tests__/__snapshots__/Maps-test.ts.snap @@ -293,17 +293,6 @@ target 'HelloWorld' do :mac_catalyst_enabled => false, :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true', ) - - # This is necessary for Xcode 14, because it signs resource bundles by default - # when building for devices. - installer.target_installation_results.pod_target_installation_results - .each do |pod_name, target_installation_result| - target_installation_result.resource_bundle_targets.each do |resource_bundle_target| - resource_bundle_target.build_configurations.each do |config| - config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' - end - end - end end end " From 2b5b77d75de3a09d2418d6f001d4bb414a791794 Mon Sep 17 00:00:00 2001 From: Phil Pluckthun Date: Wed, 23 Jul 2025 21:55:39 +0100 Subject: [PATCH 9/9] refactor(expo,doctor,cli,metro-config): switch to `@expo/metro` wrapper pinned to `metro@0.83.0` (#38166) - Add `@expo/metro` (we'll for now add a root resolution to `~0.1.0`) - Switch `@expo/metro-config` to `@expo/metro` imports - Switch `@expo/cli` to `@expo/metro` imports - Delete `ts-declarations` for Metro packages - Delete `@expo/metro-runtime/src/ts-declarations/metro-runtime.d.ts` - Update `babel-preset-expo` tests to `@expo/metro` - Switch `expo/src/async-require/hmr.ts` (runtime file) to `@expo/metro` - Leave TODO in `expo-doctor` for `metro-config` resolution to be removed later on - Improve type safety of `patchMetroGraphToSupportUncachedModules` in `@expo/metro-config` - Migrate Metro type augmentations to `expo-module-scripts/types/expo-metro-augmentations.d.ts` - Adapt for ResolvedDependency checks (**Metro 0.83.0 breaking change**) - **Atlas TODO:** Update `attachAtlas` with forced type-cast - **Pick:** Temporarily ignore `engine` restriction for CI - Re-add `@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js` extension (Jest resolution bug) - Delete obsolete `MetroPrivateServer` casting/extension (types are now exposed already) - Remove `typeRoots` in `babel-preset-expo` which interefers with `@types/node` --- .github/workflows/cli.yml | 12 +- .github/workflows/client-android-eas.yml | 3 +- .github/workflows/client-ios-eas.yml | 3 +- .github/workflows/create-expo-app.yml | 3 +- .github/workflows/development-client.yml | 6 +- .github/workflows/ios-unit-tests.yml | 3 +- .github/workflows/pr-labeler.yml | 3 +- .github/workflows/router-e2e.yml | 5 +- .github/workflows/sdk.yml | 3 +- .../workflows/test-react-native-nightly.yml | 6 +- .github/workflows/test-suite-macos.yml | 3 +- .github/workflows/test-suite-nightly.yml | 6 +- .github/workflows/test-suite.yml | 9 +- apps/eas-expo-go/eas.json | 1 + package.json | 1 + packages/@expo/cli/CHANGELOG.md | 1 + .../cli/e2e/__tests__/export-dom-test.ts | 5 - .../@expo/cli/e2e/__tests__/export.test.ts | 6 - .../@expo/cli/e2e/__tests__/install-test.ts | 4 + packages/@expo/cli/e2e/__tests__/utils.ts | 11 +- packages/@expo/cli/package.json | 1 + .../__tests__/createKeepFileAsync.test.ts | 2 +- .../__tests__/persistMetroAssets.test.ts | 2 +- .../cli/src/export/embed/exportEmbedAsync.ts | 12 +- .../cli/src/export/embed/resolveOptions.ts | 4 +- .../cli/src/export/metroAssetLocalPath.ts | 2 +- .../cli/src/export/persistMetroAssets.ts | 2 +- packages/@expo/cli/src/export/saveAssets.ts | 4 +- .../server/metro/MetroBundlerDevServer.ts | 47 +- .../server/metro/MetroTerminalReporter.ts | 2 +- .../start/server/metro/TerminalReporter.ts | 6 +- .../server/metro/TerminalReporter.types.ts | 8 +- .../__tests__/createExpoMetroResolver.test.ts | 2 +- .../metro/__tests__/metroErrors.test.ts | 4 +- .../metroWatchTypeScriptFiles.test.ts | 4 +- .../__tests__/withMetroMultiPlatform.test.ts | 16 +- .../__tests__/withMetroResolvers.test.ts | 8 +- .../metro/createExpoFallbackResolver.ts | 10 +- .../server/metro/createExpoMetroResolver.ts | 2 +- .../server/metro/createExpoStickyResolver.ts | 2 +- .../src/start/server/metro/createJResolver.ts | 4 +- .../server/metro/debugging/attachAtlas.ts | 8 +- .../metro/dev-server/createMetroMiddleware.ts | 2 +- .../server/metro/formatFileCandidates.ts | 2 +- .../server/metro/getCssModulesFromBundler.ts | 12 +- .../start/server/metro/instantiateMetro.ts | 47 +- .../start/server/metro/metroPrivateServer.ts | 43 - .../start/server/metro/metroVirtualModules.ts | 6 +- .../server/metro/metroWatchTypeScriptFiles.ts | 3 +- .../src/start/server/metro/runServer-fork.ts | 16 +- .../waitForMetroToObserveTypeScriptFile.ts | 7 +- .../server/metro/withMetroMultiPlatform.ts | 24 +- .../start/server/metro/withMetroResolvers.ts | 23 +- .../start/server/middleware/metroOptions.ts | 3 +- .../start/server/type-generation/routes.ts | 2 +- .../startTypescriptTypeGeneration.ts | 2 +- packages/@expo/cli/src/types.d.ts | 2 + .../tsconfig/resolveWithTsConfigPaths.ts | 2 +- .../metro-babel-transformer/index.d.ts | 73 - .../metro-cache-key/index.d.ts | 10 - .../ts-declarations/metro-config/index.d.ts | 376 -- .../cli/ts-declarations/metro-core/index.d.ts | 142 - .../ts-declarations/metro-file-map/index.d.ts | 1398 -------- .../ts-declarations/metro-resolver/index.d.ts | 536 --- .../ts-declarations/metro-runtime/index.d.ts | 271 -- .../metro-source-map/index.d.ts | 518 --- .../metro-transform-plugins/index.d.ts | 162 - .../metro-transform-worker/index.d.ts | 142 - .../cli/ts-declarations/metro/index.d.ts | 3022 ----------------- packages/@expo/metro-config/CHANGELOG.md | 1 + .../metro-config/build/ExpoMetroConfig.d.ts | 5 +- .../metro-config/build/ExpoMetroConfig.js | 18 +- .../metro-config/build/ExpoMetroConfig.js.map | 2 +- .../metro-config/build/customizeFrame.d.ts | 2 +- .../@expo/metro-config/build/file-store.d.ts | 2 +- .../@expo/metro-config/build/file-store.js | 2 +- .../metro-config/build/file-store.js.map | 2 +- .../environmentVariableSerializerPlugin.d.ts | 2 +- .../environmentVariableSerializerPlugin.js | 4 +- ...environmentVariableSerializerPlugin.js.map | 2 +- .../build/serializer/exportHermes.js | 2 +- .../build/serializer/exportHermes.js.map | 2 +- .../build/serializer/fork/baseJSBundle.d.ts | 2 +- .../build/serializer/fork/baseJSBundle.js | 6 +- .../build/serializer/fork/baseJSBundle.js.map | 2 +- .../build/serializer/fork/hmrJSBundle.d.ts | 4 +- .../build/serializer/fork/hmrJSBundle.js | 2 +- .../build/serializer/fork/hmrJSBundle.js.map | 2 +- .../build/serializer/fork/js.d.ts | 4 +- .../metro-config/build/serializer/fork/js.js | 6 +- .../build/serializer/fork/js.js.map | 2 +- .../build/serializer/fork/processModules.d.ts | 2 +- .../build/serializer/getCssDeps.d.ts | 3 +- .../build/serializer/getCssDeps.js | 8 +- .../build/serializer/getCssDeps.js.map | 2 +- .../build/serializer/jsOutput.d.ts | 4 +- .../reconcileTransformSerializerPlugin.d.ts | 4 +- .../reconcileTransformSerializerPlugin.js | 15 +- .../reconcileTransformSerializerPlugin.js.map | 2 +- .../build/serializer/serializeChunks.d.ts | 11 +- .../build/serializer/serializeChunks.js | 18 +- .../build/serializer/serializeChunks.js.map | 2 +- .../build/serializer/sideEffects.d.ts | 8 +- .../build/serializer/sideEffects.js | 9 +- .../build/serializer/sideEffects.js.map | 2 +- .../serializer/treeShakeSerializerPlugin.d.ts | 4 +- .../serializer/treeShakeSerializerPlugin.js | 16 +- .../treeShakeSerializerPlugin.js.map | 2 +- .../build/serializer/withExpoSerializers.d.ts | 11 +- .../build/serializer/withExpoSerializers.js | 10 +- .../serializer/withExpoSerializers.js.map | 2 +- .../transform-worker/asset-transformer.d.ts | 2 +- .../transform-worker/asset-transformer.js | 2 +- .../transform-worker/asset-transformer.js.map | 2 +- .../build/transform-worker/count-lines.d.ts | 2 +- .../build/transform-worker/getAssets.d.ts | 4 +- .../build/transform-worker/getAssets.js | 12 +- .../build/transform-worker/getAssets.js.map | 2 +- .../metro-transform-worker.d.ts | 4 +- .../metro-transform-worker.js | 33 +- .../metro-transform-worker.js.map | 2 +- .../build/transform-worker/postcss.js | 2 +- .../build/transform-worker/postcss.js.map | 2 +- .../transform-worker/resolveOptions.d.ts | 2 +- .../transform-worker/transform-worker.d.ts | 8 +- .../transform-worker/transform-worker.js | 2 +- .../transform-worker/transform-worker.js.map | 2 +- .../build/traveling/metro-config.d.ts | 4 +- .../build/traveling/metro-config.js | 3 +- .../build/traveling/metro-config.js.map | 2 +- .../build/utils/setOnReadonly.d.ts | 4 + .../metro-config/build/utils/setOnReadonly.js | 8 + .../build/utils/setOnReadonly.js.map | 1 + packages/@expo/metro-config/package.json | 1 + .../@expo/metro-config/src/ExpoMetroConfig.ts | 46 +- .../src/__tests__/babel-transformer.test.ts | 6 +- .../metro-config/src/babel-transformer.ts | 2 +- .../@expo/metro-config/src/customizeFrame.ts | 2 +- packages/@expo/metro-config/src/file-store.ts | 2 +- .../serializer/__tests__/getCssDeps.test.ts | 7 +- .../__tests__/withExpoSerializers.test.ts | 2 +- .../environmentVariableSerializerPlugin.ts | 11 +- .../src/serializer/exportHermes.ts | 2 +- .../serializer/fork/__tests__/mini-metro.ts | 19 +- .../fork/__tests__/serializer-test-utils.ts | 6 +- .../src/serializer/fork/baseJSBundle.ts | 13 +- .../src/serializer/fork/hmrJSBundle.ts | 6 +- .../metro-config/src/serializer/fork/js.ts | 10 +- .../src/serializer/fork/processModules.ts | 2 +- .../metro-config/src/serializer/getCssDeps.ts | 12 +- .../metro-config/src/serializer/jsOutput.ts | 4 +- .../reconcileTransformSerializerPlugin.ts | 24 +- .../src/serializer/serializeChunks.ts | 23 +- .../src/serializer/sideEffects.ts | 10 +- .../serializer/treeShakeSerializerPlugin.ts | 31 +- .../src/serializer/withExpoSerializers.ts | 10 +- .../src/transform-plugins/__tests__/utils.ts | 19 +- .../__tests__/asset-transformer.test.ts | 4 +- .../collect-dependencies-upstream.test.ts | 9 +- .../__tests__/metro-transform-worker.test.ts | 39 +- .../src/transform-worker/asset-transformer.ts | 4 +- .../src/transform-worker/count-lines.ts | 2 +- .../src/transform-worker/getAssets.ts | 9 +- .../metro-transform-worker.ts | 33 +- .../src/transform-worker/postcss.ts | 4 +- .../src/transform-worker/resolveOptions.ts | 2 +- .../src/transform-worker/transform-worker.ts | 12 +- .../src/traveling/metro-config.ts | 8 +- packages/@expo/metro-config/src/types.d.ts | 2 + .../metro-config/src/utils/setOnReadonly.ts | 8 + .../src/ts-declarations/metro-runtime.d.ts | 22 - packages/babel-preset-expo/package.json | 1 + .../src/__tests__/minify-sanity.test.ts | 3 +- .../src/__tests__/minify-util.ts | 3 +- .../src/__tests__/platform-shaking.test.ts | 3 +- packages/babel-preset-expo/tsconfig.json | 3 +- packages/expo-doctor/CHANGELOG.md | 2 + packages/expo-doctor/package.json | 1 + .../src/utils/metroConfigLoader.ts | 4 +- .../ts-declarations/metro-config/index.d.ts | 230 -- .../ts-declarations/metro/index.d.ts | 486 --- .../types/expo-metro-augmentations.d.ts | 49 + packages/expo/CHANGELOG.md | 1 + .../expo/build/async-require/hmr.d.ts.map | 2 +- packages/expo/package.json | 1 + packages/expo/src/async-require/hmr.ts | 3 +- yarn.lock | 230 ++ 187 files changed, 971 insertions(+), 7887 deletions(-) delete mode 100644 packages/@expo/cli/src/start/server/metro/metroPrivateServer.ts create mode 100644 packages/@expo/cli/src/types.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-babel-transformer/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-cache-key/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-config/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-core/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-file-map/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-resolver/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-runtime/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-source-map/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-transform-plugins/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro-transform-worker/index.d.ts delete mode 100644 packages/@expo/cli/ts-declarations/metro/index.d.ts create mode 100644 packages/@expo/metro-config/build/utils/setOnReadonly.d.ts create mode 100644 packages/@expo/metro-config/build/utils/setOnReadonly.js create mode 100644 packages/@expo/metro-config/build/utils/setOnReadonly.js.map create mode 100644 packages/@expo/metro-config/src/types.d.ts create mode 100644 packages/@expo/metro-config/src/utils/setOnReadonly.ts delete mode 100644 packages/@expo/metro-runtime/src/ts-declarations/metro-runtime.d.ts delete mode 100644 packages/expo-doctor/ts-declarations/metro-config/index.d.ts delete mode 100644 packages/expo-doctor/ts-declarations/metro/index.d.ts create mode 100644 packages/expo-module-scripts/types/expo-metro-augmentations.d.ts diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index 0eee818b64e02d..557bf633ed9d3f 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -88,7 +88,8 @@ jobs: ${{ runner.os }}-yarn- - name: 🧶 Install node modules in root dir - run: yarn install --prefer-offline --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --prefer-offline --frozen-lockfile --ignore-engines env: YARN_IGNORE_SCRIPTS: 'true' @@ -162,7 +163,8 @@ jobs: - name: 🧶 Install node modules in root dir # NOTE(cedric): yarn v1 on Windows has networking issues, we need to set `--network-timeout` to a higher value - run: yarn install --prefer-offline --frozen-lockfile --network-timeout 1000000 + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --prefer-offline --frozen-lockfile --network-timeout 1000000 --ignore-engines env: YARN_IGNORE_SCRIPTS: 'true' @@ -213,7 +215,8 @@ jobs: ${{ runner.os }}-yarn- - name: 🧶 Install node modules in root dir - run: yarn install --prefer-offline --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --prefer-offline --frozen-lockfile --ignore-engines env: YARN_IGNORE_SCRIPTS: 'true' @@ -309,7 +312,8 @@ jobs: - name: 🧶 Install node modules in root dir # NOTE(cedric): yarn v1 on Windows has networking issues, we need to set `--network-timeout` to a higher value - run: yarn install --prefer-offline --frozen-lockfile --network-timeout 1000000 + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --prefer-offline --frozen-lockfile --network-timeout 1000000 --ignore-engines env: YARN_IGNORE_SCRIPTS: 'true' diff --git a/.github/workflows/client-android-eas.yml b/.github/workflows/client-android-eas.yml index a7e8109dda2acd..d501a2698c0608 100644 --- a/.github/workflows/client-android-eas.yml +++ b/.github/workflows/client-android-eas.yml @@ -43,7 +43,8 @@ jobs: yarn-tools: 'true' - name: 🧶 Yarn install if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: Install eas-cli run: npm install -g eas-cli - name: Generate local credentials.json diff --git a/.github/workflows/client-ios-eas.yml b/.github/workflows/client-ios-eas.yml index 5fd7f1e59a2b3b..49f8f92b112fcc 100644 --- a/.github/workflows/client-ios-eas.yml +++ b/.github/workflows/client-ios-eas.yml @@ -53,7 +53,8 @@ jobs: yarn-tools: 'true' - name: 🧶 Yarn install if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: Install eas-cli run: npm install -g eas-cli - name: Build diff --git a/.github/workflows/create-expo-app.yml b/.github/workflows/create-expo-app.yml index 452348674692f3..b05c934a88735a 100644 --- a/.github/workflows/create-expo-app.yml +++ b/.github/workflows/create-expo-app.yml @@ -54,7 +54,8 @@ jobs: yarn-workspace: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🛠 Build create-expo run: yarn prepare working-directory: packages/create-expo diff --git a/.github/workflows/development-client.yml b/.github/workflows/development-client.yml index 81b9845513c940..57050afda60d79 100644 --- a/.github/workflows/development-client.yml +++ b/.github/workflows/development-client.yml @@ -38,7 +38,8 @@ jobs: ndk-version: ${{ matrix.ndk-version }} - name: 🧶 Yarn install if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: Init new expo app working-directory: ../ run: yarn create expo-app ./development-client-android-test --yes @@ -93,7 +94,8 @@ jobs: yarn-workspace: 'true' - name: 🧶 Yarn install if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: Init new expo app working-directory: ../ run: yarn create expo-app ./development-client-ios-test --yes diff --git a/.github/workflows/ios-unit-tests.yml b/.github/workflows/ios-unit-tests.yml index f5f914b9d8729a..7ed6368596edb1 100644 --- a/.github/workflows/ios-unit-tests.yml +++ b/.github/workflows/ios-unit-tests.yml @@ -65,7 +65,8 @@ jobs: native-tests-pods: 'true' - name: 🧶 Yarn install if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🥥 Install CocoaPods in `apps/native-tests/ios` if: steps.expo-caches.outputs.bare-expo-pods-hit != 'true' run: pod install diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 0d6c1c0dede8b5..4021a2c5392c12 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -54,7 +54,8 @@ jobs: yarn-workspace: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: Get the base commit id: base-commit run: | diff --git a/.github/workflows/router-e2e.yml b/.github/workflows/router-e2e.yml index a073e78a3487df..5f04b77e6972d3 100644 --- a/.github/workflows/router-e2e.yml +++ b/.github/workflows/router-e2e.yml @@ -36,7 +36,10 @@ jobs: ${{ runner.os }}-yarn-cache- - name: Install dependencies - run: YARN_IGNORE_SCRIPTS=true yarn --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines + env: + YARN_IGNORE_SCRIPTS: 'true' - uses: actions/setup-java@v4 with: diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index 948b9c9e294713..d5f6dddf869580 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -56,7 +56,8 @@ jobs: yarn-tools: 'true' - name: 🧶 Install workspace node modules if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🧐 Check packages run: | echo "Checking packages according to the event name: ${{ github.event_name }}" diff --git a/.github/workflows/test-react-native-nightly.yml b/.github/workflows/test-react-native-nightly.yml index 840108559c24f6..ee76af1e723b66 100644 --- a/.github/workflows/test-react-native-nightly.yml +++ b/.github/workflows/test-react-native-nightly.yml @@ -53,7 +53,8 @@ jobs: key: ${{ runner.os }}-workspace-modules-${{ hashFiles('yarn.lock') }} - name: 🧶 Install node modules in root dir if: steps.workspace-modules-cache.outputs.cache-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: ⭐️ Create test-nightlies Project (New Architecture) run: yarn prepare && bun build/index.js --expo-repo ${{ github.workspace }} --no-install ${{ runner.temp }} --enable-new-architecture true working-directory: packages/create-expo-nightly @@ -145,7 +146,8 @@ jobs: key: ${{ runner.os }}-workspace-modules-${{ hashFiles('yarn.lock') }} - name: 🧶 Install node modules in root dir if: steps.workspace-modules-cache.outputs.cache-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: ⭐️ Create test-nightlies Project (New Architecture) run: yarn prepare && bun build/index.js --expo-repo ${{ github.workspace }} --no-install ${{ runner.temp }} --enable-new-architecture true working-directory: packages/create-expo-nightly diff --git a/.github/workflows/test-suite-macos.yml b/.github/workflows/test-suite-macos.yml index 2abd706017e927..1473a29ceed046 100644 --- a/.github/workflows/test-suite-macos.yml +++ b/.github/workflows/test-suite-macos.yml @@ -59,7 +59,8 @@ jobs: bare-expo-macos-pods: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🕵️ Debug CocoaPods lockfiles run: git diff Podfile.lock Pods/Manifest.lock working-directory: apps/bare-expo/macos diff --git a/.github/workflows/test-suite-nightly.yml b/.github/workflows/test-suite-nightly.yml index 7d17fd04de14d4..2367e850096075 100644 --- a/.github/workflows/test-suite-nightly.yml +++ b/.github/workflows/test-suite-nightly.yml @@ -105,7 +105,8 @@ jobs: yarn-workspace: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🍏 Run iOS tests run: ./scripts/start-ios-e2e-test.js --test working-directory: apps/bare-expo @@ -213,7 +214,8 @@ jobs: yarn-workspace: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🤖 Run Android tests uses: ./.github/actions/use-android-emulator with: diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index 508e389e360920..16114a8cdeebce 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -53,7 +53,8 @@ jobs: bare-expo-pods: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🕵️ Debug CocoaPods lockfiles run: git diff Podfile.lock Pods/Manifest.lock working-directory: apps/bare-expo/ios @@ -120,7 +121,8 @@ jobs: yarn-workspace: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🧪 Run tests run: ./scripts/start-ios-e2e-test.js --test working-directory: apps/bare-expo @@ -236,7 +238,8 @@ jobs: yarn-workspace: 'true' - name: 🧶 Install node modules in root dir if: steps.expo-caches.outputs.yarn-workspace-hit != 'true' - run: yarn install --frozen-lockfile + # TODO(@kitten): Remove `--ignore-engines` when Node 22+ requirement is dropped again in React Native / Metro + run: yarn install --frozen-lockfile --ignore-engines - name: 🧪 Run tests uses: ./.github/actions/use-android-emulator with: diff --git a/apps/eas-expo-go/eas.json b/apps/eas-expo-go/eas.json index 326f904d7f137f..a0c15c39316647 100644 --- a/apps/eas-expo-go/eas.json +++ b/apps/eas-expo-go/eas.json @@ -7,6 +7,7 @@ }, "build": { "base": { + "node": "22.17.1", "credentialsSource": "local", "android": { "image": "latest", diff --git a/package.json b/package.json index eddf550c476081..c7e4ceea136269 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ ] }, "resolutions": { + "@expo/metro": "~0.1.0", "react-native": "0.80.1", "react": "19.1.0", "react-dom": "19.1.0", diff --git a/packages/@expo/cli/CHANGELOG.md b/packages/@expo/cli/CHANGELOG.md index ba1c0e9e9cea42..73e91a0c9b8d4f 100644 --- a/packages/@expo/cli/CHANGELOG.md +++ b/packages/@expo/cli/CHANGELOG.md @@ -32,6 +32,7 @@ - Added tests for modal stacking ([#37856](https://github.com/expo/expo/pull/37856) by [@hirbod](https://github.com/hirbod)) - simplify/optimize web-modal tests ([#38025](https://github.com/expo/expo/pull/38025) by [@hirbod](https://github.com/hirbod)) - Fix e2e start-test for local runs ([#38066](https://github.com/expo/expo/pull/38066) by [@Ubax](https://github.com/Ubax)) +- Switch Metro imports to `@expo/metro` wrapper package ([#38166](https://github.com/expo/expo/pull/38166) by [@kitten](https://github.com/kitten)) ### ⚠️ Notices diff --git a/packages/@expo/cli/e2e/__tests__/export-dom-test.ts b/packages/@expo/cli/e2e/__tests__/export-dom-test.ts index b6fa07d4489d9f..5866c1933ec2c8 100644 --- a/packages/@expo/cli/e2e/__tests__/export-dom-test.ts +++ b/packages/@expo/cli/e2e/__tests__/export-dom-test.ts @@ -35,11 +35,6 @@ describe('Export DOM Components', () => { beforeAll(async () => { projectRoot = await setupTestProjectWithOptionsAsync('dom-export', 'with-dom'); - - // TODO(kudo,20250304): Remove this once we publish `@expo/metro-config` with DOM components fixes. - const srcMetroConfig = path.resolve(__dirname, '../../../metro-config/build'); - const destMetroConfig = path.join(projectRoot, 'node_modules/@expo/metro-config/build'); - await fs.cp(srcMetroConfig, destMetroConfig, { recursive: true, force: true }); }); it('runs `npx expo export`', async () => { diff --git a/packages/@expo/cli/e2e/__tests__/export.test.ts b/packages/@expo/cli/e2e/__tests__/export.test.ts index 2059ebd31d5c47..652ceb474ac8dc 100644 --- a/packages/@expo/cli/e2e/__tests__/export.test.ts +++ b/packages/@expo/cli/e2e/__tests__/export.test.ts @@ -76,12 +76,6 @@ describe('server', () => { beforeAll(async () => { projectRoot = await setupTestProjectWithOptionsAsync('basic-export', 'with-assets'); - - // TODO(cedric): Remove this once we publish `@expo/metro-config` with `export --dev` fixes - // Or when we can build `@expo/metro-config` on Windows - const srcMetroConfig = path.resolve(__dirname, '../../../metro-config/build'); - const destMetroConfig = path.join(projectRoot, 'node_modules/@expo/metro-config/build'); - await fs.cp(srcMetroConfig, destMetroConfig, { recursive: true, force: true }); }); it('runs `npx expo export`', async () => { diff --git a/packages/@expo/cli/e2e/__tests__/install-test.ts b/packages/@expo/cli/e2e/__tests__/install-test.ts index 685fb6c79784aa..456d30ea61f318 100644 --- a/packages/@expo/cli/e2e/__tests__/install-test.ts +++ b/packages/@expo/cli/e2e/__tests__/install-test.ts @@ -72,6 +72,10 @@ it('runs `npx expo install expo-sms`', async () => { // Added expected package const pkgDependencies = pkg.dependencies as Record; expect(pkgDependencies['expo-sms']).toBe('~13.0.1'); + + // TODO(@kitten): Temporary to unblock CI (see ./utils.ts) + delete (pkg.devDependencies as any)['@expo/metro']; + expect(pkg.devDependencies).toEqual({ '@babel/core': '^7.25.2', }); diff --git a/packages/@expo/cli/e2e/__tests__/utils.ts b/packages/@expo/cli/e2e/__tests__/utils.ts index f7a489b4475378..c21fb0bd820e6a 100644 --- a/packages/@expo/cli/e2e/__tests__/utils.ts +++ b/packages/@expo/cli/e2e/__tests__/utils.ts @@ -107,8 +107,8 @@ export async function createFromFixtureAsync( copySync(fixturePath, projectRoot); // Add additional modifications to the package.json + pkg ??= {}; if (pkg || linkExpoPackages || linkExpoPackagesDev) { - pkg ??= {}; const pkgPath = path.join(projectRoot, 'package.json'); const fixturePkg = (await JsonFile.readAsync(pkgPath)) as PackageJSONConfig; @@ -134,6 +134,9 @@ export async function createFromFixtureAsync( } } + // TODO(@kitten): Temporary addition until we have at least one publish with the `@expo/metro` dependency + devDependencies['@expo/metro'] = '~0.1.0'; + await JsonFile.writeAsync(pkgPath, { ...pkg, ...fixturePkg, @@ -165,6 +168,12 @@ export async function createFromFixtureAsync( // Install the packages for e2e experience. await executeBunAsync(projectRoot, ['install']); + + // TODO(cedric): Remove this once we publish `@expo/metro-config` with `export --dev` fixes + // Or when we can build `@expo/metro-config` on Windows + const srcMetroConfig = path.resolve(__dirname, '../../../metro-config/build'); + const destMetroConfig = path.join(projectRoot, 'node_modules/@expo/metro-config/build'); + await fs.promises.cp(srcMetroConfig, destMetroConfig, { recursive: true, force: true }); } catch (error) { log.error(error); throw error; diff --git a/packages/@expo/cli/package.json b/packages/@expo/cli/package.json index 767a2978d92828..fbfd9d19b22b3e 100644 --- a/packages/@expo/cli/package.json +++ b/packages/@expo/cli/package.json @@ -48,6 +48,7 @@ "@expo/env": "~1.0.5", "@expo/image-utils": "^0.7.4", "@expo/json-file": "^9.1.4", + "@expo/metro": "~0.1.0", "@expo/metro-config": "~0.20.14", "@expo/osascript": "^2.2.4", "@expo/package-manager": "^1.8.4", diff --git a/packages/@expo/cli/src/export/__tests__/createKeepFileAsync.test.ts b/packages/@expo/cli/src/export/__tests__/createKeepFileAsync.test.ts index 2f7c77a7b3d756..fdbd2b3f140299 100644 --- a/packages/@expo/cli/src/export/__tests__/createKeepFileAsync.test.ts +++ b/packages/@expo/cli/src/export/__tests__/createKeepFileAsync.test.ts @@ -1,5 +1,5 @@ +import type { AssetData } from '@expo/metro/metro'; import { vol } from 'memfs'; -import type { AssetData } from 'metro'; import { createKeepFileAsync } from '../persistMetroAssets'; diff --git a/packages/@expo/cli/src/export/__tests__/persistMetroAssets.test.ts b/packages/@expo/cli/src/export/__tests__/persistMetroAssets.test.ts index f8f5210dc288a6..aab0ee64307c78 100644 --- a/packages/@expo/cli/src/export/__tests__/persistMetroAssets.test.ts +++ b/packages/@expo/cli/src/export/__tests__/persistMetroAssets.test.ts @@ -5,8 +5,8 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ +import type { AssetData } from '@expo/metro/metro'; import { vol } from 'memfs'; -import type { AssetData } from 'metro'; import { filterPlatformAssetScales, persistMetroAssetsAsync } from '../persistMetroAssets'; diff --git a/packages/@expo/cli/src/export/embed/exportEmbedAsync.ts b/packages/@expo/cli/src/export/embed/exportEmbedAsync.ts index 08623eea3571be..4c9c88196b4472 100644 --- a/packages/@expo/cli/src/export/embed/exportEmbedAsync.ts +++ b/packages/@expo/cli/src/export/embed/exportEmbedAsync.ts @@ -5,14 +5,14 @@ * LICENSE file in the root directory of this source tree. */ import { getConfig } from '@expo/config'; +import Server from '@expo/metro/metro/Server'; +import splitBundleOptions from '@expo/metro/metro/lib/splitBundleOptions'; +import output from '@expo/metro/metro/shared/output/bundle'; +import type { BundleOptions } from '@expo/metro/metro/shared/types.flow'; import getMetroAssets from '@expo/metro-config/build/transform-worker/getAssets'; import assert from 'assert'; import fs from 'fs'; import { sync as globSync } from 'glob'; -import Server from 'metro/src/Server'; -import splitBundleOptions from 'metro/src/lib/splitBundleOptions'; -import output from 'metro/src/shared/output/bundle'; -import type { BundleOptions } from 'metro/src/shared/types'; import path from 'path'; import { deserializeEagerKey, getExportEmbedOptionsKey, Options } from './resolveOptions'; @@ -21,7 +21,6 @@ import { Log } from '../../log'; import { DevServerManager } from '../../start/server/DevServerManager'; import { MetroBundlerDevServer } from '../../start/server/metro/MetroBundlerDevServer'; import { loadMetroConfigAsync } from '../../start/server/metro/instantiateMetro'; -import { assertMetroPrivateServer } from '../../start/server/metro/metroPrivateServer'; import { DOM_COMPONENTS_BUNDLE_DIR } from '../../start/server/middleware/DomComponentsMiddleware'; import { getMetroDirectBundleOptionsForExpoConfig } from '../../start/server/middleware/metroOptions'; import { stripAnsi } from '../../utils/ansi'; @@ -389,11 +388,10 @@ export async function exportEmbedAssetsAsync( try { const { entryFile, onProgress, resolverOptions, transformOptions } = splitBundleOptions({ ...bundleRequest, + // @ts-ignore-error TODO(@kitten): Very unclear why this is here. Remove? bundleType: 'todo', }); - assertMetroPrivateServer(server); - const dependencies = await server._bundler.getDependencies( [entryFile], transformOptions, diff --git a/packages/@expo/cli/src/export/embed/resolveOptions.ts b/packages/@expo/cli/src/export/embed/resolveOptions.ts index 99000fe07f73d0..d40d959425977f 100644 --- a/packages/@expo/cli/src/export/embed/resolveOptions.ts +++ b/packages/@expo/cli/src/export/embed/resolveOptions.ts @@ -1,7 +1,7 @@ import { resolveEntryPoint } from '@expo/config/paths'; +import type { OutputOptions } from '@expo/metro/metro/shared/types.flow'; +import canonicalize from '@expo/metro/metro-core/canonicalize'; import arg from 'arg'; -import type { OutputOptions } from 'metro/src/shared/types'; -import canonicalize from 'metro-core/src/canonicalize'; import os from 'os'; import path from 'path'; diff --git a/packages/@expo/cli/src/export/metroAssetLocalPath.ts b/packages/@expo/cli/src/export/metroAssetLocalPath.ts index c3b8b62e55eb2b..6d421ca4c8c428 100644 --- a/packages/@expo/cli/src/export/metroAssetLocalPath.ts +++ b/packages/@expo/cli/src/export/metroAssetLocalPath.ts @@ -8,7 +8,7 @@ * Based on the community asset persisting for Metro but with base path and web support: * https://github.com/facebook/react-native/blob/d6e0bc714ad4d215ede4949d3c4f44af6dea5dd3/packages/community-cli-plugin/src/commands/bundle/saveAssets.js#L1 */ -import type { AssetData } from 'metro'; +import type { AssetData } from '@expo/metro/metro'; import path from 'path'; export function getAssetLocalPath( diff --git a/packages/@expo/cli/src/export/persistMetroAssets.ts b/packages/@expo/cli/src/export/persistMetroAssets.ts index 154e4fd25704e7..abc9e065490662 100644 --- a/packages/@expo/cli/src/export/persistMetroAssets.ts +++ b/packages/@expo/cli/src/export/persistMetroAssets.ts @@ -8,8 +8,8 @@ * Based on the community asset persisting for Metro but with base path and web support: * https://github.com/facebook/react-native/blob/d6e0bc714ad4d215ede4949d3c4f44af6dea5dd3/packages/community-cli-plugin/src/commands/bundle/saveAssets.js#L1 */ +import type { AssetData } from '@expo/metro/metro'; import fs from 'fs'; -import type { AssetData } from 'metro'; import path from 'path'; import { drawableFileTypes, getAssetLocalPath } from './metroAssetLocalPath'; diff --git a/packages/@expo/cli/src/export/saveAssets.ts b/packages/@expo/cli/src/export/saveAssets.ts index 6eb90cf4eba846..e99127abdd5ce5 100644 --- a/packages/@expo/cli/src/export/saveAssets.ts +++ b/packages/@expo/cli/src/export/saveAssets.ts @@ -4,10 +4,10 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ +import type { AssetData } from '@expo/metro/metro'; import type { SerialAsset } from '@expo/metro-config/build/serializer/serializerAssets'; import chalk from 'chalk'; import fs from 'fs'; -import Metro from 'metro'; import path from 'path'; import prettyBytes from 'pretty-bytes'; @@ -26,7 +26,7 @@ export type BundleOptions = { sourcemaps?: boolean; }; -export type BundleAssetWithFileHashes = Metro.AssetData & { +export type BundleAssetWithFileHashes = AssetData & { fileHashes: string[]; // added by the hashAssets asset plugin }; diff --git a/packages/@expo/cli/src/start/server/metro/MetroBundlerDevServer.ts b/packages/@expo/cli/src/start/server/metro/MetroBundlerDevServer.ts index 6066c77ad27290..8500bcfb3b6b65 100644 --- a/packages/@expo/cli/src/start/server/metro/MetroBundlerDevServer.ts +++ b/packages/@expo/cli/src/start/server/metro/MetroBundlerDevServer.ts @@ -7,22 +7,29 @@ import { ExpoConfig, getConfig } from '@expo/config'; import { getMetroServerRoot } from '@expo/config/paths'; import * as runtimeEnv from '@expo/env'; -import { SerialAsset } from '@expo/metro-config/build/serializer/serializerAssets'; -import assert from 'assert'; -import chalk from 'chalk'; -import { DeltaResult, TransformInputOptions } from 'metro'; -import baseJSBundle from 'metro/src/DeltaBundler/Serializers/baseJSBundle'; +import baseJSBundle from '@expo/metro/metro/DeltaBundler/Serializers/baseJSBundle'; import { sourceMapGeneratorNonBlocking, type SourceMapGeneratorOptions, -} from 'metro/src/DeltaBundler/Serializers/sourceMapGenerator'; -import type MetroHmrServer from 'metro/src/HmrServer'; -import type { Client as MetroHmrClient } from 'metro/src/HmrServer'; -import { GraphRevision } from 'metro/src/IncrementalBundler'; -import bundleToString from 'metro/src/lib/bundleToString'; -import getGraphId from 'metro/src/lib/getGraphId'; -import { TransformProfile } from 'metro-babel-transformer'; -import type { CustomResolverOptions } from 'metro-resolver/src/types'; +} from '@expo/metro/metro/DeltaBundler/Serializers/sourceMapGenerator'; +import type { + Module, + DeltaResult, + TransformInputOptions, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import type { + default as MetroHmrServer, + Client as MetroHmrClient, +} from '@expo/metro/metro/HmrServer'; +import type { GraphRevision } from '@expo/metro/metro/IncrementalBundler'; +import type MetroServer from '@expo/metro/metro/Server'; +import bundleToString from '@expo/metro/metro/lib/bundleToString'; +import getGraphId from '@expo/metro/metro/lib/getGraphId'; +import type { TransformProfile } from '@expo/metro/metro-babel-transformer'; +import type { CustomResolverOptions } from '@expo/metro/metro-resolver'; +import { SerialAsset } from '@expo/metro-config/build/serializer/serializerAssets'; +import assert from 'assert'; +import chalk from 'chalk'; import path from 'path'; import resolveFrom from 'resolve-from'; @@ -34,7 +41,6 @@ import { createRouteHandlerMiddleware } from './createServerRouteMiddleware'; import { ExpoRouterServerManifestV1, fetchManifest } from './fetchRouterManifest'; import { instantiateMetroAsync } from './instantiateMetro'; import { getErrorOverlayHtmlAsync, IS_METRO_BUNDLE_ERROR_SYMBOL } from './metroErrorInterface'; -import { assertMetroPrivateServer, MetroPrivateServer } from './metroPrivateServer'; import { metroWatchTypeScriptFiles } from './metroWatchTypeScriptFiles'; import { getRouterDirectoryModuleIdWithManifest, @@ -81,9 +87,7 @@ import { startTypescriptTypeGenerationAsync } from '../type-generation/startType export type ExpoRouterRuntimeManifest = Awaited< ReturnType >; -type MetroOnProgress = NonNullable< - import('metro/src/DeltaBundler/types').Options['onProgress'] ->; + type SSRLoadModuleFunc = >( filePath: string, specificOptions?: Partial, @@ -120,8 +124,8 @@ const EXPO_GO_METRO_PORT = 8081; const DEV_CLIENT_METRO_PORT = 8081; export class MetroBundlerDevServer extends BundlerDevServer { - private metro: MetroPrivateServer | null = null; - private hmrServer: MetroHmrServer | null = null; + private metro: MetroServer | null = null; + private hmrServer: MetroHmrServer | null = null; private ssrHmrClients: Map = new Map(); isReactServerComponentsEnabled?: boolean; isReactServerRoutesEnabled?: boolean; @@ -1147,7 +1151,6 @@ export class MetroBundlerDevServer extends BundlerDevServer { }); }; - assertMetroPrivateServer(metro); this.metro = metro; this.hmrServer = hmrServer; return { @@ -1489,7 +1492,7 @@ export class MetroBundlerDevServer extends BundlerDevServer { key: buildNumber, }); - const onProgress: MetroOnProgress = (transformedFileCount: number, totalFileCount: number) => { + const onProgress = (transformedFileCount: number, totalFileCount: number) => { this.metro?._reporter?.update?.({ buildID: getBuildID(buildNumber), type: 'bundle_transform_progressed', @@ -1797,7 +1800,7 @@ function wrapBundle(str: string) { } async function sourceMapStringAsync( - modules: readonly import('metro/src/DeltaBundler/types').Module[], + modules: readonly Module[], options: SourceMapGeneratorOptions ): Promise { return (await sourceMapGeneratorNonBlocking(modules, options)).toString(undefined, { diff --git a/packages/@expo/cli/src/start/server/metro/MetroTerminalReporter.ts b/packages/@expo/cli/src/start/server/metro/MetroTerminalReporter.ts index 7f84ecf79de977..eeb8699b91f635 100644 --- a/packages/@expo/cli/src/start/server/metro/MetroTerminalReporter.ts +++ b/packages/@expo/cli/src/start/server/metro/MetroTerminalReporter.ts @@ -1,5 +1,5 @@ +import type { Terminal } from '@expo/metro/metro-core'; import chalk from 'chalk'; -import { Terminal } from 'metro-core'; import path from 'path'; import { logWarning, TerminalReporter } from './TerminalReporter'; diff --git a/packages/@expo/cli/src/start/server/metro/TerminalReporter.ts b/packages/@expo/cli/src/start/server/metro/TerminalReporter.ts index a2b18d0de563f5..6e1e8891f84fa1 100644 --- a/packages/@expo/cli/src/start/server/metro/TerminalReporter.ts +++ b/packages/@expo/cli/src/start/server/metro/TerminalReporter.ts @@ -1,9 +1,9 @@ // This file represents an abstraction on the metro TerminalReporter. // We use this abstraction to safely extend the TerminalReporter for our own custom logging. +import UpstreamTerminalReporter from '@expo/metro/metro/lib/TerminalReporter'; +import type { Terminal } from '@expo/metro/metro-core'; +import type { WatcherStatus } from '@expo/metro/metro-file-map'; import chalk from 'chalk'; -import UpstreamTerminalReporter from 'metro/src/lib/TerminalReporter'; -import { Terminal } from 'metro-core'; -import type { WatcherStatus } from 'metro-file-map'; import util from 'util'; import { diff --git a/packages/@expo/cli/src/start/server/metro/TerminalReporter.types.ts b/packages/@expo/cli/src/start/server/metro/TerminalReporter.types.ts index 5815204c864990..0c000115a67582 100644 --- a/packages/@expo/cli/src/start/server/metro/TerminalReporter.types.ts +++ b/packages/@expo/cli/src/start/server/metro/TerminalReporter.types.ts @@ -1,7 +1,7 @@ -import type { ReportableEvent } from 'metro'; -import type { TerminalReportableEvent } from 'metro/src/lib/TerminalReporter'; -import type { Terminal } from 'metro-core'; -import type { WatcherStatus } from 'metro-file-map'; +import type { ReportableEvent } from '@expo/metro/metro'; +import type { TerminalReportableEvent } from '@expo/metro/metro/lib/TerminalReporter'; +import type { Terminal } from '@expo/metro/metro-core'; +import type { WatcherStatus } from '@expo/metro/metro-file-map'; import { MetroEnvironment } from '../middleware/metroOptions'; diff --git a/packages/@expo/cli/src/start/server/metro/__tests__/createExpoMetroResolver.test.ts b/packages/@expo/cli/src/start/server/metro/__tests__/createExpoMetroResolver.test.ts index 3861eaa730f460..ef0d74503b80d0 100644 --- a/packages/@expo/cli/src/start/server/metro/__tests__/createExpoMetroResolver.test.ts +++ b/packages/@expo/cli/src/start/server/metro/__tests__/createExpoMetroResolver.test.ts @@ -1,7 +1,7 @@ import { getBareExtensions } from '@expo/config/paths'; +import type { SourceFileResolution } from '@expo/metro/metro-resolver/types'; import assert from 'assert'; import fs from 'fs'; -import type { SourceFileResolution } from 'metro-resolver/src/types'; import path from 'path'; import { createFastResolver, FailedToResolvePathError } from '../createExpoMetroResolver'; diff --git a/packages/@expo/cli/src/start/server/metro/__tests__/metroErrors.test.ts b/packages/@expo/cli/src/start/server/metro/__tests__/metroErrors.test.ts index 11f9a81ad5b081..11ef4c36cba9e4 100644 --- a/packages/@expo/cli/src/start/server/metro/__tests__/metroErrors.test.ts +++ b/packages/@expo/cli/src/start/server/metro/__tests__/metroErrors.test.ts @@ -1,5 +1,5 @@ -import FailedToResolveNameError from 'metro-resolver/src/errors/FailedToResolveNameError'; -import FailedToResolvePathError from 'metro-resolver/src/errors/FailedToResolvePathError'; +import FailedToResolveNameError from '@expo/metro/metro-resolver/errors/FailedToResolveNameError'; +import FailedToResolvePathError from '@expo/metro/metro-resolver/errors/FailedToResolvePathError'; import { isFailedToResolveNameError, isFailedToResolvePathError } from '../metroErrors'; diff --git a/packages/@expo/cli/src/start/server/metro/__tests__/metroWatchTypeScriptFiles.test.ts b/packages/@expo/cli/src/start/server/metro/__tests__/metroWatchTypeScriptFiles.test.ts index b8e8687ab8ec8d..8778bda12b410e 100644 --- a/packages/@expo/cli/src/start/server/metro/__tests__/metroWatchTypeScriptFiles.test.ts +++ b/packages/@expo/cli/src/start/server/metro/__tests__/metroWatchTypeScriptFiles.test.ts @@ -1,3 +1,5 @@ +import type MetroServer from '@expo/metro/metro/Server'; + import { ServerLike } from '../../BundlerDevServer'; import { metroWatchTypeScriptFiles } from '../metroWatchTypeScriptFiles'; @@ -28,7 +30,7 @@ function createRunner() { addListener: jest.fn(), }, } as any as { - metro: import('metro').Server; + metro: MetroServer; server: ServerLike; }, }; diff --git a/packages/@expo/cli/src/start/server/metro/__tests__/withMetroMultiPlatform.test.ts b/packages/@expo/cli/src/start/server/metro/__tests__/withMetroMultiPlatform.test.ts index 8c8dccc2be4692..6dd55eb8870890 100644 --- a/packages/@expo/cli/src/start/server/metro/__tests__/withMetroMultiPlatform.test.ts +++ b/packages/@expo/cli/src/start/server/metro/__tests__/withMetroMultiPlatform.test.ts @@ -1,7 +1,8 @@ import { getBareExtensions } from '@expo/config/paths'; +import type Bundler from '@expo/metro/metro/Bundler'; +import type { ConfigT } from '@expo/metro/metro-config'; +import type { CustomResolutionContext, Resolution } from '@expo/metro/metro-resolver'; import { vol } from 'memfs'; -import { ConfigT } from 'metro-config'; -import { CustomResolutionContext } from 'metro-resolver/src'; import assert from 'node:assert'; import { StickyModuleResolverInput } from '../createExpoStickyResolver'; @@ -19,7 +20,7 @@ class FailedToResolveNameError extends Error { super('Failed to resolve name'); } } -jest.mock('metro-resolver', () => { +jest.mock('@expo/metro/metro-resolver', () => { const resolve = jest.fn(() => ({ type: 'empty' })); return { resolve, @@ -37,7 +38,7 @@ function getDefaultRequestContext(): CustomResolutionContext { } function getMetroBundlerGetter() { - return jest.fn(() => { + return jest.fn((): Bundler => { const transformFile = jest.fn(); // @ts-expect-error transformFile.__patched = true; @@ -45,11 +46,11 @@ function getMetroBundlerGetter() { hasVirtualModule: jest.fn((path) => false), setVirtualModule: jest.fn(), transformFile, - }; + } as any; }); } -const expectVirtual = (result: import('metro-resolver').Resolution, name: string) => { +const expectVirtual = (result: Resolution, name: string) => { expect(result.type).toBe('sourceFile'); assert(result.type === 'sourceFile'); assert(/^\0/.test(result.filePath), 'Virtual files must start with null byte: \\0'); @@ -93,7 +94,8 @@ function getNodeResolverContext({ } function getResolveFunc() { - return require('metro-resolver').resolve; + const metroResolver: typeof import('@expo/metro/metro-resolver') = require('@expo/metro/metro-resolver'); + return metroResolver.resolve; } describe(withExtendedResolver, () => { diff --git a/packages/@expo/cli/src/start/server/metro/__tests__/withMetroResolvers.test.ts b/packages/@expo/cli/src/start/server/metro/__tests__/withMetroResolvers.test.ts index 81932030151f74..26e4fdee97b78c 100644 --- a/packages/@expo/cli/src/start/server/metro/__tests__/withMetroResolvers.test.ts +++ b/packages/@expo/cli/src/start/server/metro/__tests__/withMetroResolvers.test.ts @@ -1,6 +1,6 @@ -import { ConfigT } from 'metro-config'; -import FailedToResolveNameError from 'metro-resolver/src/errors/FailedToResolveNameError'; -import FailedToResolvePathError from 'metro-resolver/src/errors/FailedToResolvePathError'; +import { ConfigT } from '@expo/metro/metro-config'; +import FailedToResolveNameError from '@expo/metro/metro-resolver/errors/FailedToResolveNameError'; +import FailedToResolvePathError from '@expo/metro/metro-resolver/errors/FailedToResolvePathError'; import { withMetroResolvers } from '../withMetroResolvers'; @@ -15,7 +15,7 @@ describe(withMetroResolvers, () => { const mockCandidate = { type: 'asset', name: 'foobar', - }; + } as const; throw new FailedToResolvePathError({ dir: mockCandidate, file: mockCandidate }); }); const customResolver3 = jest.fn(() => { diff --git a/packages/@expo/cli/src/start/server/metro/createExpoFallbackResolver.ts b/packages/@expo/cli/src/start/server/metro/createExpoFallbackResolver.ts index 756b06576f8448..5d579d67bb1fd7 100644 --- a/packages/@expo/cli/src/start/server/metro/createExpoFallbackResolver.ts +++ b/packages/@expo/cli/src/start/server/metro/createExpoFallbackResolver.ts @@ -7,7 +7,7 @@ // a user's project. // See: https://github.com/expo/expo/pull/34286 -import type { ResolutionContext } from 'metro-resolver'; +import type { ResolutionContext, PackageJson } from '@expo/metro/metro-resolver/types'; import path from 'path'; import type { StrictResolver, StrictResolverFactory } from './withMetroMultiPlatform'; @@ -35,11 +35,8 @@ interface PackageMetaPeerDependenciesMetaEntry { optional?: boolean; } -interface PackageMeta { +interface PackageMeta extends PackageJson { readonly [propName: string]: unknown; - readonly name?: string; - readonly main?: string; - readonly exports?: any; // unused readonly dependencies?: Record; readonly peerDependencies?: Record; readonly peerDependenciesMeta?: Record< @@ -74,7 +71,8 @@ const getModuleDescriptionWithResolver = ( return null; } filePath = resolution.filePath; - packageMeta = context.getPackage(filePath); + // Upcast PackageJson to PackageMeta + packageMeta = context.getPackage(filePath) as PackageMeta | null | undefined; if (!packageMeta) { return null; } diff --git a/packages/@expo/cli/src/start/server/metro/createExpoMetroResolver.ts b/packages/@expo/cli/src/start/server/metro/createExpoMetroResolver.ts index 523cb34f691f75..f19ea1c9515191 100644 --- a/packages/@expo/cli/src/start/server/metro/createExpoMetroResolver.ts +++ b/packages/@expo/cli/src/start/server/metro/createExpoMetroResolver.ts @@ -4,8 +4,8 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ +import type { Resolution, ResolutionContext } from '@expo/metro/metro-resolver'; import fs from 'fs'; -import { Resolution, ResolutionContext } from 'metro-resolver'; import path from 'path'; import jestResolver from './createJResolver'; diff --git a/packages/@expo/cli/src/start/server/metro/createExpoStickyResolver.ts b/packages/@expo/cli/src/start/server/metro/createExpoStickyResolver.ts index 3f5cf400ccca40..e96c10d06467ee 100644 --- a/packages/@expo/cli/src/start/server/metro/createExpoStickyResolver.ts +++ b/packages/@expo/cli/src/start/server/metro/createExpoStickyResolver.ts @@ -1,5 +1,5 @@ +import type { ResolutionContext } from '@expo/metro/metro-resolver'; import type { SearchOptions as AutolinkingSearchOptions } from 'expo-modules-autolinking/exports'; -import type { ResolutionContext } from 'metro-resolver'; import type { StrictResolverFactory } from './withMetroMultiPlatform'; import type { ExpoCustomMetroResolver } from './withMetroResolvers'; diff --git a/packages/@expo/cli/src/start/server/metro/createJResolver.ts b/packages/@expo/cli/src/start/server/metro/createJResolver.ts index 76cb5c3a256100..66916195cbeac9 100644 --- a/packages/@expo/cli/src/start/server/metro/createJResolver.ts +++ b/packages/@expo/cli/src/start/server/metro/createJResolver.ts @@ -9,6 +9,7 @@ * https://github.com/jestjs/jest/blob/d1a2ed7fea4bdc19836274cd810c8360e3ab62f3/packages/jest-resolve/src/defaultResolver.ts#L1 */ import type { JSONObject as PackageJSON } from '@expo/json-file'; +import type { CustomResolutionContext } from '@expo/metro/metro-resolver'; import assert from 'assert'; import { dirname, isAbsolute, resolve as pathResolve } from 'path'; import { sync as resolveSync, SyncOpts as UpstreamResolveOptions } from 'resolve'; @@ -36,6 +37,7 @@ type PackageFilter = (pkg: PackageJSON, file: string, dir: string) => PackageJSO */ type PathFilter = (pkg: PackageJSON, path: string, relativePath: string) => string; +// TODO(@kitten): This probably has overlap with an @expo/metro type type ResolverOptions = { /** Directory to begin resolving from. */ basedir: string; @@ -70,7 +72,7 @@ type ResolverOptions = { blockList: RegExp[]; - getPackageForModule: import('metro-resolver').CustomResolutionContext['getPackageForModule']; + getPackageForModule: CustomResolutionContext['getPackageForModule']; } & Pick< UpstreamResolveOptions, | 'readPackageSync' diff --git a/packages/@expo/cli/src/start/server/metro/debugging/attachAtlas.ts b/packages/@expo/cli/src/start/server/metro/debugging/attachAtlas.ts index b69f5c3ac85c45..1462d55310f2ec 100644 --- a/packages/@expo/cli/src/start/server/metro/debugging/attachAtlas.ts +++ b/packages/@expo/cli/src/start/server/metro/debugging/attachAtlas.ts @@ -1,5 +1,5 @@ +import type { ConfigT as MetroConfig } from '@expo/metro/metro-config'; import type { Server as ConnectServer } from 'connect'; -import type { ConfigT as MetroConfig } from 'metro-config'; import { AtlasPrerequisite } from './AtlasPrerequisite'; import { env } from '../../../../utils/env'; @@ -48,7 +48,8 @@ function attachAtlasToDevServer( return debug('Atlas is not installed in the project, skipping initialization'); } - const instance = atlas.createExpoAtlasMiddleware(options.metroConfig); + // TODO(@kitten): Atlas' typings don't match @expo/metro yet + const instance = atlas.createExpoAtlasMiddleware(options.metroConfig as any); options.middleware.use('/_expo/atlas', instance.middleware); debug('Attached Atlas middleware for development on: /_expo/atlas'); return instance; @@ -80,7 +81,8 @@ async function attachAtlasToExport( debug('(Re)created Atlas file at:', filePath); } - atlas.withExpoAtlas(options.metroConfig); + // TODO(@kitten): Atlas' typings don't match @expo/metro yet + atlas.withExpoAtlas(options.metroConfig as any); debug('Attached Atlas to Metro config for exporting'); } diff --git a/packages/@expo/cli/src/start/server/metro/dev-server/createMetroMiddleware.ts b/packages/@expo/cli/src/start/server/metro/dev-server/createMetroMiddleware.ts index d2e6f6da6faf97..2d672ee8c5eed2 100644 --- a/packages/@expo/cli/src/start/server/metro/dev-server/createMetroMiddleware.ts +++ b/packages/@expo/cli/src/start/server/metro/dev-server/createMetroMiddleware.ts @@ -1,5 +1,5 @@ +import type { MetroConfig } from '@expo/metro/metro'; import connect from 'connect'; -import type { MetroConfig } from 'metro'; import { createEventsSocket } from './createEventSocket'; import { createMessagesSocket } from './createMessageSocket'; diff --git a/packages/@expo/cli/src/start/server/metro/formatFileCandidates.ts b/packages/@expo/cli/src/start/server/metro/formatFileCandidates.ts index 66993fdc4864d6..14459768cc5d18 100644 --- a/packages/@expo/cli/src/start/server/metro/formatFileCandidates.ts +++ b/packages/@expo/cli/src/start/server/metro/formatFileCandidates.ts @@ -8,7 +8,7 @@ * A fork of my proposed Metro change https://github.com/facebook/metro/pull/1036/files */ -import type { FileCandidates } from 'metro-resolver'; +import type { FileCandidates } from '@expo/metro/metro-resolver'; import path from 'path'; function groupExtensions(exts: readonly string[]): string[][] { diff --git a/packages/@expo/cli/src/start/server/metro/getCssModulesFromBundler.ts b/packages/@expo/cli/src/start/server/metro/getCssModulesFromBundler.ts index 2a485ca3c11461..568f63f43db645 100644 --- a/packages/@expo/cli/src/start/server/metro/getCssModulesFromBundler.ts +++ b/packages/@expo/cli/src/start/server/metro/getCssModulesFromBundler.ts @@ -1,10 +1,10 @@ -import { MetroConfig } from '@expo/metro-config'; +// NOTE(@kitten): jest-resolver -> resolve.exports bug (https://github.com/lukeed/resolve.exports/issues/40) +import { getJsOutput, isJsModule } from '@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js'; +import type { Module, ReadOnlyDependencies } from '@expo/metro/metro/DeltaBundler/types.flow'; +import type IncrementalBundler from '@expo/metro/metro/IncrementalBundler'; +import splitBundleOptions from '@expo/metro/metro/lib/splitBundleOptions'; +import type { MetroConfig } from '@expo/metro-config'; import crypto from 'crypto'; -import type { Module } from 'metro'; -import { getJsOutput, isJsModule } from 'metro/src/DeltaBundler/Serializers/helpers/js.js'; -import type { ReadOnlyDependencies } from 'metro/src/DeltaBundler/types'; -import type IncrementalBundler from 'metro/src/IncrementalBundler'; -import splitBundleOptions from 'metro/src/lib/splitBundleOptions'; import path from 'path'; type Options = { diff --git a/packages/@expo/cli/src/start/server/metro/instantiateMetro.ts b/packages/@expo/cli/src/start/server/metro/instantiateMetro.ts index db630183b4f46a..bb39fe81795a8c 100644 --- a/packages/@expo/cli/src/start/server/metro/instantiateMetro.ts +++ b/packages/@expo/cli/src/start/server/metro/instantiateMetro.ts @@ -1,17 +1,17 @@ -import { ExpoConfig, getConfig } from '@expo/config'; +import { type ExpoConfig, getConfig } from '@expo/config'; import { getMetroServerRoot } from '@expo/config/paths'; -import { getDefaultConfig, LoadOptions } from '@expo/metro-config'; +import type Bundler from '@expo/metro/metro/Bundler'; +import type { ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler'; +import type { TransformOptions } from '@expo/metro/metro/DeltaBundler/Worker'; +import MetroHmrServer, { Client as MetroHmrClient } from '@expo/metro/metro/HmrServer'; +import RevisionNotFoundError from '@expo/metro/metro/IncrementalBundler/RevisionNotFoundError'; +import type MetroServer from '@expo/metro/metro/Server'; +import formatBundlingError from '@expo/metro/metro/lib/formatBundlingError'; +import { loadConfig, resolveConfig, type ConfigT } from '@expo/metro/metro-config'; +import { Terminal } from '@expo/metro/metro-core'; +import { getDefaultConfig, type LoadOptions } from '@expo/metro-config'; import chalk from 'chalk'; import http from 'http'; -import type Metro from 'metro'; -import { ReadOnlyGraph } from 'metro'; -import Bundler from 'metro/src/Bundler'; -import type { TransformOptions } from 'metro/src/DeltaBundler/Worker'; -import MetroHmrServer from 'metro/src/HmrServer'; -import RevisionNotFoundError from 'metro/src/IncrementalBundler/RevisionNotFoundError'; -import formatBundlingError from 'metro/src/lib/formatBundlingError'; -import { loadConfig, resolveConfig, ConfigT } from 'metro-config'; -import { Terminal } from 'metro-core'; import util from 'node:util'; import path from 'path'; @@ -39,7 +39,7 @@ type MessageSocket = { // Wrap terminal and polyfill console.log so we can log during bundling without breaking the indicator. class LogRespectingTerminal extends Terminal { constructor(stream: import('node:net').Socket | import('node:stream').Writable) { - super(stream); + super(stream, { ttyPrint: true }); const sendLog = (...args: any[]) => { this._logLines.push( @@ -186,8 +186,8 @@ export async function instantiateMetroAsync( }).exp, }: { isExporting: boolean; exp?: ExpoConfig } ): Promise<{ - metro: Metro.Server; - hmrServer: MetroHmrServer | null; + metro: MetroServer; + hmrServer: MetroHmrServer | null; server: http.Server; middleware: any; messageSocket: MessageSocket; @@ -228,7 +228,7 @@ export async function instantiateMetroAsync( // See: https://github.com/facebook/metro/commit/d0d554381f119bb80ab09dbd6a1d310b54737e52 const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware; // @ts-expect-error: can't mutate readonly config - metroConfig.server.enhanceMiddleware = (metroMiddleware: any, server: Metro.Server) => { + metroConfig.server.enhanceMiddleware = (metroMiddleware: any, server: MetroServer) => { if (customEnhanceMiddleware) { metroMiddleware = customEnhanceMiddleware(metroMiddleware, server); } @@ -294,7 +294,7 @@ export async function instantiateMetroAsync( // This function ensures that modules in source maps are sorted in the same // order as in a plain JS bundle. - metro._getSortedModules = function (this: Metro.Server, graph: ReadOnlyGraph) { + metro._getSortedModules = function (this: MetroServer, graph: ReadOnlyGraph) { const modules = [...graph.dependencies.values()]; const ctx = { @@ -314,18 +314,25 @@ export async function instantiateMetroAsync( }; if (hmrServer) { - let hmrJSBundle: typeof import('@expo/metro-config/build/serializer/fork/hmrJSBundle').default; + let hmrJSBundle: + | typeof import('@expo/metro-config/build/serializer/fork/hmrJSBundle').default + | typeof import('@expo/metro/metro/DeltaBundler/Serializers/hmrJSBundle').default; try { hmrJSBundle = require('@expo/metro-config/build/serializer/fork/hmrJSBundle').default; } catch { - // Add fallback for monorepo tests up until the fork is merged. + // TODO: Add fallback for monorepo tests up until the fork is merged. Log.warn('Failed to load HMR serializer from @expo/metro-config, using fallback version.'); - hmrJSBundle = require('metro/src/DeltaBundler/Serializers/hmrJSBundle'); + hmrJSBundle = require('@expo/metro/metro/DeltaBundler/Serializers/hmrJSBundle'); } // Patch HMR Server to send more info to the `_createModuleId` function for deterministic module IDs and add support for serializing HMR updates the same as all other bundles. - hmrServer._prepareMessage = async function (this: MetroHmrServer, group, options, changeEvent) { + hmrServer._prepareMessage = async function ( + this: MetroHmrServer, + group, + options, + changeEvent + ) { // Fork of https://github.com/facebook/metro/blob/3b3e0aaf725cfa6907bf2c8b5fbc0da352d29efe/packages/metro/src/HmrServer.js#L327-L393 // with patch for `_createModuleId`. const logger = !options.isInitialUpdate ? changeEvent?.logger : null; diff --git a/packages/@expo/cli/src/start/server/metro/metroPrivateServer.ts b/packages/@expo/cli/src/start/server/metro/metroPrivateServer.ts deleted file mode 100644 index 9e02c657cfa552..00000000000000 --- a/packages/@expo/cli/src/start/server/metro/metroPrivateServer.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { TransformInputOptions } from 'metro'; -import type Metro from 'metro'; -import { ConfigT } from 'metro-config'; -import assert from 'node:assert'; - -export type MetroPrivateServer = import('metro').Server & { - _bundler: import('metro/src/IncrementalBundler').default; - _config: ConfigT; - _createModuleId: (path: string, context?: { environment?: string; platform: string }) => number; - _isEnded: boolean; - _nextBundleBuildNumber: number; - _platforms: Set; - _reporter: import('metro/src/lib/reporting').Reporter; - _serverOptions: import('metro').ServerOptions | void; - - getNewBuildNumber(): number; - _getSortedModules( - graph: import('metro/src/IncrementalBundler').OutputGraph - ): import('metro/src/DeltaBundler/types').Module[]; - - _resolveRelativePath( - filePath: string, - { - relativeTo, - resolverOptions, - transformOptions, - }: { - relativeTo: 'project' | 'server'; - resolverOptions: import('metro/src/shared/types').ResolverInputOptions; - transformOptions: TransformInputOptions; - } - ): Promise; - - _shouldAddModuleToIgnoreList(module: import('metro/src/DeltaBundler/types').Module): boolean; -}; - -export function assertMetroPrivateServer(metro: Metro.Server): asserts metro is MetroPrivateServer { - assert(metro, 'Metro server undefined.'); - assert( - '_config' in metro && '_bundler' in metro, - 'Metro server is missing expected properties (_config, _bundler). This could be due to a version mismatch or change in the Metro API.' - ); -} diff --git a/packages/@expo/cli/src/start/server/metro/metroVirtualModules.ts b/packages/@expo/cli/src/start/server/metro/metroVirtualModules.ts index a1895bc72e67fe..985a4776a3abca 100644 --- a/packages/@expo/cli/src/start/server/metro/metroVirtualModules.ts +++ b/packages/@expo/cli/src/start/server/metro/metroVirtualModules.ts @@ -4,9 +4,9 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import Bundler from 'metro/src/Bundler'; -import DependencyGraph from 'metro/src/node-haste/DependencyGraph'; -import { FileSystem } from 'metro-file-map'; +import type Bundler from '@expo/metro/metro/Bundler'; +import type DependencyGraph from '@expo/metro/metro/node-haste/DependencyGraph'; +import type { FileSystem } from '@expo/metro/metro-file-map'; type ExpoPatchedFileSystem = Omit & { getSha1: FileSystem['getSha1'] & { __patched?: boolean }; diff --git a/packages/@expo/cli/src/start/server/metro/metroWatchTypeScriptFiles.ts b/packages/@expo/cli/src/start/server/metro/metroWatchTypeScriptFiles.ts index 483567e9d938c7..8f73b1c7ff1b3c 100644 --- a/packages/@expo/cli/src/start/server/metro/metroWatchTypeScriptFiles.ts +++ b/packages/@expo/cli/src/start/server/metro/metroWatchTypeScriptFiles.ts @@ -1,3 +1,4 @@ +import type MetroServer from '@expo/metro/metro/Server'; import path from 'path'; import type { ServerLike } from '../BundlerDevServer'; @@ -8,7 +9,7 @@ const debug = require('debug')( export interface MetroWatchTypeScriptFilesOptions { projectRoot: string; - metro: import('metro').Server; + metro: MetroServer; server: ServerLike; /* Include tsconfig.json in the watcher */ tsconfig?: boolean; diff --git a/packages/@expo/cli/src/start/server/metro/runServer-fork.ts b/packages/@expo/cli/src/start/server/metro/runServer-fork.ts index 782485d2365487..cd0e36daa11914 100644 --- a/packages/@expo/cli/src/start/server/metro/runServer-fork.ts +++ b/packages/@expo/cli/src/start/server/metro/runServer-fork.ts @@ -3,13 +3,15 @@ // // Forks https://github.com/facebook/metro/blob/b80d9a0f638ee9fb82ff69cd3c8d9f4309ca1da2/packages/metro/src/index.flow.js#L57 // and adds the ability to access the bundler instance. +import { createConnectMiddleware } from '@expo/metro/metro'; +import type { RunServerOptions } from '@expo/metro/metro'; +import MetroHmrServer, { type Client as MetroHmrClient } from '@expo/metro/metro/HmrServer'; +import Server from '@expo/metro/metro/Server'; +import createWebsocketServer from '@expo/metro/metro/lib/createWebsocketServer'; +import type { ConfigT } from '@expo/metro/metro-config'; import assert from 'assert'; import http from 'http'; import https from 'https'; -import Metro, { RunServerOptions, Server } from 'metro'; -import MetroHmrServer from 'metro/src/HmrServer'; -import createWebsocketServer from 'metro/src/lib/createWebsocketServer'; -import { ConfigT } from 'metro-config'; import { parse } from 'url'; import type { WebSocketServer } from 'ws'; @@ -39,7 +41,7 @@ export const runServer = async ( } ): Promise<{ server: http.Server | https.Server; - hmrServer: MetroHmrServer | null; + hmrServer: MetroHmrServer | null; metro: Server; }> => { // await earlyPortCheck(host, config.server.port); @@ -54,7 +56,7 @@ export const runServer = async ( // ); // } - const { middleware, end, metroServer } = await Metro.createConnectMiddleware(config, { + const { middleware, end, metroServer } = await createConnectMiddleware(config, { hasReducedPerformance, waitForBundler, watch, @@ -123,7 +125,7 @@ export const runServer = async ( return new Promise<{ server: http.Server | https.Server; - hmrServer: MetroHmrServer; + hmrServer: MetroHmrServer; metro: Server; }>((resolve, reject) => { httpServer.on('error', (error) => { diff --git a/packages/@expo/cli/src/start/server/metro/waitForMetroToObserveTypeScriptFile.ts b/packages/@expo/cli/src/start/server/metro/waitForMetroToObserveTypeScriptFile.ts index 6d5aa34fbe4766..aa61f5d4dfbc31 100644 --- a/packages/@expo/cli/src/start/server/metro/waitForMetroToObserveTypeScriptFile.ts +++ b/packages/@expo/cli/src/start/server/metro/waitForMetroToObserveTypeScriptFile.ts @@ -1,3 +1,4 @@ +import type MetroServer from '@expo/metro/metro/Server'; import path from 'path'; import type { ServerLike } from '../BundlerDevServer'; @@ -19,7 +20,7 @@ export type FileChangeEvent = { export function waitForMetroToObserveTypeScriptFile( projectRoot: string, runner: { - metro: import('metro').Server; + metro: MetroServer; server: ServerLike; }, callback: () => Promise @@ -66,7 +67,7 @@ export function waitForMetroToObserveTypeScriptFile( export function observeFileChanges( runner: { - metro: import('metro').Server; + metro: MetroServer; server: ServerLike; }, files: string[], @@ -116,7 +117,7 @@ export function observeFileChanges( export function observeAnyFileChanges( runner: { - metro: import('metro').Server; + metro: MetroServer; server: ServerLike; }, callback: (events: FileChangeEvent[]) => void | Promise diff --git a/packages/@expo/cli/src/start/server/metro/withMetroMultiPlatform.ts b/packages/@expo/cli/src/start/server/metro/withMetroMultiPlatform.ts index 9f66874f0e1c1c..fbc43100dd3454 100644 --- a/packages/@expo/cli/src/start/server/metro/withMetroMultiPlatform.ts +++ b/packages/@expo/cli/src/start/server/metro/withMetroMultiPlatform.ts @@ -4,13 +4,17 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import { ExpoConfig, Platform } from '@expo/config'; +import type { ExpoConfig, Platform } from '@expo/config'; +import type Bundler from '@expo/metro/metro/Bundler'; +import type { ConfigT } from '@expo/metro/metro-config'; +import type { + Resolution, + ResolutionContext, + CustomResolutionContext, +} from '@expo/metro/metro-resolver'; +import { resolve as metroResolver } from '@expo/metro/metro-resolver'; import chalk from 'chalk'; import fs from 'fs'; -import Bundler from 'metro/src/Bundler'; -import { ConfigT } from 'metro-config'; -import { Resolution, ResolutionContext, CustomResolutionContext } from 'metro-resolver'; -import * as metroResolver from 'metro-resolver'; import path from 'path'; import resolveFrom from 'resolve-from'; @@ -180,7 +184,7 @@ export function withExtendedResolver( Log.log(chalk.dim`Sticky resolver is enabled.`); } - const defaultResolver = metroResolver.resolve; + const defaultResolver = metroResolver; const resolver = isFastResolverEnabled ? createFastResolver({ preserveSymlinks: true, @@ -847,9 +851,10 @@ export async function withMetroMultiPlatformAsync( if (isNamedRequiresEnabled) { debug('Using Expo metro require runtime.'); // Change the default metro-runtime to a custom one that supports bundle splitting. - require('metro-config/src/defaults/defaults').moduleSystem = require.resolve( - '@expo/cli/build/metro-require/require' - ); + const metroDefaults: Mutable< + typeof import('@expo/metro/metro-config/defaults/defaults') + > = require('@expo/metro/metro-config/defaults/defaults'); + metroDefaults.moduleSystem = require.resolve('@expo/cli/build/metro-require/require'); } if (!config.projectRoot) { @@ -862,6 +867,7 @@ export async function withMetroMultiPlatformAsync( // This is used for running Expo CLI in development against projects outside the monorepo. if (!isDirectoryIn(__dirname, projectRoot)) { + // TODO(@kitten): Remove ts-export-errors here and replace with cast for type safety if (!config.watchFolders) { // @ts-expect-error: watchFolders is readonly config.watchFolders = []; diff --git a/packages/@expo/cli/src/start/server/metro/withMetroResolvers.ts b/packages/@expo/cli/src/start/server/metro/withMetroResolvers.ts index 3ab7fadd56fcc5..7f4698cd427738 100644 --- a/packages/@expo/cli/src/start/server/metro/withMetroResolvers.ts +++ b/packages/@expo/cli/src/start/server/metro/withMetroResolvers.ts @@ -4,10 +4,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ +import type { ConfigT as MetroConfig } from '@expo/metro/metro-config'; +import type { + ResolutionContext, + CustomResolutionContext, + CustomResolver, +} from '@expo/metro/metro-resolver'; +import { resolve as metroResolver } from '@expo/metro/metro-resolver'; import chalk from 'chalk'; -import { ConfigT as MetroConfig } from 'metro-config'; -import type { ResolutionContext, CustomResolutionContext } from 'metro-resolver'; -import * as metroResolver from 'metro-resolver'; import path from 'path'; import { isFailedToResolveNameError, isFailedToResolvePathError } from './metroErrors'; @@ -15,23 +19,22 @@ import { env } from '../../../utils/env'; const debug = require('debug')('expo:metro:withMetroResolvers') as typeof console.log; -export type MetroResolver = NonNullable; +export type { CustomResolver as MetroResolver }; /** Expo Metro Resolvers can return `null` to skip without throwing an error. Metro Resolvers will throw either a `FailedToResolveNameError` or `FailedToResolvePathError`. */ export type ExpoCustomMetroResolver = ( - ...args: Parameters -) => ReturnType | null; + ...args: Parameters +) => ReturnType | null; /** @returns `MetroResolver` utilizing the upstream `resolve` method. */ -export function getDefaultMetroResolver(projectRoot: string): MetroResolver { +export function getDefaultMetroResolver(projectRoot: string): CustomResolver { return (context: ResolutionContext, moduleName: string, platform: string | null) => { - return metroResolver.resolve(context, moduleName, platform); + return metroResolver(context, moduleName, platform); }; } function optionsKeyForContext(context: ResolutionContext) { - const canonicalize = require('metro-core/src/canonicalize'); - + const canonicalize: typeof import('@expo/metro/metro-core/canonicalize').default = require('@expo/metro/metro-core/canonicalize'); // Compound key for the resolver cache return JSON.stringify(context.customResolverOptions ?? {}, canonicalize) ?? ''; } diff --git a/packages/@expo/cli/src/start/server/middleware/metroOptions.ts b/packages/@expo/cli/src/start/server/middleware/metroOptions.ts index 9acc831e999988..ee77d4957539d3 100644 --- a/packages/@expo/cli/src/start/server/middleware/metroOptions.ts +++ b/packages/@expo/cli/src/start/server/middleware/metroOptions.ts @@ -1,6 +1,5 @@ import { ExpoConfig } from '@expo/config'; -import type { BundleOptions as MetroBundleOptions } from 'metro/src/shared/types'; -import resolveFrom from 'resolve-from'; +import type { BundleOptions as MetroBundleOptions } from '@expo/metro/metro/shared/types.flow'; import { env } from '../../../utils/env'; import { CommandError } from '../../../utils/errors'; diff --git a/packages/@expo/cli/src/start/server/type-generation/routes.ts b/packages/@expo/cli/src/start/server/type-generation/routes.ts index ac24a28b2a810d..bba77124963b82 100644 --- a/packages/@expo/cli/src/start/server/type-generation/routes.ts +++ b/packages/@expo/cli/src/start/server/type-generation/routes.ts @@ -1,5 +1,5 @@ +import type Server from '@expo/metro/metro/Server'; import fs from 'fs/promises'; -import { Server } from 'metro'; import path from 'path'; import resolveFrom from 'resolve-from'; diff --git a/packages/@expo/cli/src/start/server/type-generation/startTypescriptTypeGeneration.ts b/packages/@expo/cli/src/start/server/type-generation/startTypescriptTypeGeneration.ts index 72a9d2ef0e1c97..94c9fcb89559e0 100644 --- a/packages/@expo/cli/src/start/server/type-generation/startTypescriptTypeGeneration.ts +++ b/packages/@expo/cli/src/start/server/type-generation/startTypescriptTypeGeneration.ts @@ -1,6 +1,6 @@ import { getConfig } from '@expo/config'; +import type Server from '@expo/metro/metro/Server'; import fs from 'fs/promises'; -import { Server } from 'metro'; import path from 'path'; import { removeExpoEnvDTS, writeExpoEnvDTS } from './expo-env'; diff --git a/packages/@expo/cli/src/types.d.ts b/packages/@expo/cli/src/types.d.ts new file mode 100644 index 00000000000000..a6e045d75df9a2 --- /dev/null +++ b/packages/@expo/cli/src/types.d.ts @@ -0,0 +1,2 @@ +// NOTE(@kitten): Provide type augmentations for `@expo/metro` +import 'expo-module-scripts/types/expo-metro-augmentations.d.ts'; diff --git a/packages/@expo/cli/src/utils/tsconfig/resolveWithTsConfigPaths.ts b/packages/@expo/cli/src/utils/tsconfig/resolveWithTsConfigPaths.ts index 3530da3d9ce903..ee32eae9fd163e 100644 --- a/packages/@expo/cli/src/utils/tsconfig/resolveWithTsConfigPaths.ts +++ b/packages/@expo/cli/src/utils/tsconfig/resolveWithTsConfigPaths.ts @@ -1,4 +1,4 @@ -import { Resolution } from 'metro-resolver'; +import type { Resolution } from '@expo/metro/metro-resolver'; import path from 'path'; import { matchTsConfigPathAlias } from './matchTsConfigPathAlias'; diff --git a/packages/@expo/cli/ts-declarations/metro-babel-transformer/index.d.ts b/packages/@expo/cli/ts-declarations/metro-babel-transformer/index.d.ts deleted file mode 100644 index 5946b4a76c4f76..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-babel-transformer/index.d.ts +++ /dev/null @@ -1,73 +0,0 @@ -// #region metro-babel-transformer -declare module 'metro-babel-transformer' { - export * from 'metro-babel-transformer/src/index'; - export { default } from 'metro-babel-transformer/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-babel-transformer/src/index.js -declare module 'metro-babel-transformer/src/index' { - import type * as _babel_types from '@babel/types'; - import type { BabelFileMetadata, TransformOptions } from '@babel/core'; - export type CustomTransformOptions = { - [$$Key$$: string]: any; - }; - export type TransformProfile = 'default' | 'hermes-stable' | 'hermes-canary'; - type BabelTransformerOptions = Readonly<{ - type?: 'script' | 'module' | 'asset'; - customTransformOptions?: CustomTransformOptions; - dev: boolean; - enableBabelRCLookup?: boolean; - enableBabelRuntime?: boolean | string; - extendsBabelConfigPath?: string; - experimentalImportSupport?: boolean; - hermesParser?: boolean; - hot: boolean; - minify: boolean; - unstable_disableES6Transforms?: boolean; - platform?: null | string; - projectRoot: string; - publicPath: string; - unstable_transformProfile?: TransformProfile; - globalPrefix: string; - inlineRequires?: void; - }>; - export type BabelTransformerArgs = Readonly<{ - filename: string; - options: BabelTransformerOptions; - plugins?: TransformOptions['plugins']; - src: string; - }>; - export type BabelFileFunctionMapMetadata = Readonly<{ - names: readonly string[]; - mappings: string; - }>; - export type BabelFileImportLocsMetadata = ReadonlySet; - export type MetroBabelFileMetadata = { - metro?: - | null - | undefined - | { - functionMap?: null | undefined | BabelFileFunctionMapMetadata; - unstable_importDeclarationLocs?: null | undefined | BabelFileImportLocsMetadata; - }; - } & BabelFileMetadata; - export type BabelTransformer = { - transform: ($$PARAM_0$$: BabelTransformerArgs) => { - ast: _babel_types.File; - functionMap?: BabelFileFunctionMapMetadata; - metadata?: MetroBabelFileMetadata & { - // NOTE(cedric): manual change, see: babel-preset-expo/src/{client-module-proxy-plugin.ts,server-actions-plugin.ts} - reactServerReference?: string; - // NOTE(cedric): manual change, see: babel-preset-expo/src/client-module-proxy-plugin.ts - reactClientReference?: string; - // NOTE(cedric): manual change, see: babel-preset-expo/src/use-dom-directive-plugin.ts - expoDomComponentReference?: string; - // NOTE(cedric): manual change, see: babel-preset-expo/src/detect-dynamic-exports.ts - hasCjsExports?: boolean; - }; - }; - getCacheKey?: () => string; - }; - const $$EXPORT_DEFAULT_DECLARATION$$: BabelTransformer; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} diff --git a/packages/@expo/cli/ts-declarations/metro-cache-key/index.d.ts b/packages/@expo/cli/ts-declarations/metro-cache-key/index.d.ts deleted file mode 100644 index 19c91d1335c6af..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-cache-key/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -// #region metro-cache-key -declare module 'metro-cache-key' { - export { default } from 'metro-cache-key/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-cache-key/src/index.js -declare module 'metro-cache-key/src/index' { - function getCacheKey(files: string[]): string; - export default getCacheKey; -} diff --git a/packages/@expo/cli/ts-declarations/metro-config/index.d.ts b/packages/@expo/cli/ts-declarations/metro-config/index.d.ts deleted file mode 100644 index b1ca19e0508d88..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-config/index.d.ts +++ /dev/null @@ -1,376 +0,0 @@ -// #region metro-config -declare module 'metro-config' { - export * from 'metro-config/src/index'; - export { default } from 'metro-config/src/index'; -} - -// NOTE(cedric): this is a manual change, to avoid having to import `../configTypes.flow` -declare module 'metro-config/src/configTypes' { - export * from 'metro-config/src/configTypes.flow'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/configTypes.flow.js -declare module 'metro-config/src/configTypes.flow' { - import type { IntermediateStackFrame } from 'metro/src/Server/symbolicate'; - import type { HandleFunction, Server } from 'connect'; - import type { CacheStore } from 'metro-cache'; - import type $$IMPORT_TYPEOF_1$$ from 'metro-cache'; - type MetroCache = typeof $$IMPORT_TYPEOF_1$$; - import type { CacheManagerFactory } from 'metro-file-map'; - import type { CustomResolver } from 'metro-resolver'; - import type { JsTransformerConfig } from 'metro-transform-worker'; - import type { TransformResult } from 'metro/src/DeltaBundler'; - import type { - DeltaResult, - Module, - ReadOnlyGraph, - SerializerOptions, - } from 'metro/src/DeltaBundler/types.flow'; - import type { Reporter } from 'metro/src/lib/reporting'; - import type MetroServer from 'metro/src/Server'; - export type ExtraTransformOptions = Readonly<{ - preloadedModules?: - | Readonly<{ - [path: string]: true; - }> - | false; - ramGroups?: readonly string[]; - transform?: Readonly<{ - experimentalImportSupport?: boolean; - inlineRequires?: - | Readonly<{ - blockList: Readonly<{ - [$$Key$$: string]: true; - }>; - }> - | boolean; - nonInlinedRequires?: readonly string[]; - unstable_disableES6Transforms?: boolean; - unstable_inlinePlatform?: boolean; - unstable_memoizeInlineRequires?: boolean; - unstable_nonMemoizedInlineRequires?: readonly string[]; - }>; - }>; - export type GetTransformOptionsOpts = { - dev: boolean; - hot: boolean; - platform?: null | string; - }; - export type GetTransformOptions = ( - entryPoints: readonly string[], - options: GetTransformOptionsOpts, - getDependenciesOf: ($$PARAM_0$$: string) => Promise - ) => Promise>; - export type Middleware = HandleFunction; - type PerfAnnotations = Partial<{ - string: Readonly<{ - [key: string]: string; - }>; - int: Readonly<{ - [key: string]: number; - }>; - double: Readonly<{ - [key: string]: number; - }>; - bool: Readonly<{ - [key: string]: boolean; - }>; - string_array: Readonly<{ - [key: string]: readonly string[]; - }>; - int_array: Readonly<{ - [key: string]: readonly number[]; - }>; - double_array: Readonly<{ - [key: string]: readonly number[]; - }>; - bool_array: Readonly<{ - [key: string]: readonly boolean[]; - }>; - }>; - type PerfLoggerPointOptions = Readonly<{ - timestamp?: number; - }>; - export interface PerfLogger { - point(name: string, opts?: PerfLoggerPointOptions): void; - annotate(annotations: PerfAnnotations): void; - subSpan(label: string): PerfLogger; - } - export interface RootPerfLogger extends PerfLogger { - start(opts?: PerfLoggerPointOptions): void; - end(status: 'SUCCESS' | 'FAIL' | 'CANCEL', opts?: PerfLoggerPointOptions): void; - } - export type PerfLoggerFactoryOptions = Readonly<{ - key?: number; - }>; - export type PerfLoggerFactory = ( - type: 'START_UP' | 'BUNDLING_REQUEST' | 'HMR', - opts?: PerfLoggerFactoryOptions - ) => RootPerfLogger; - type ResolverConfigT = { - assetExts: readonly string[]; - assetResolutions: readonly string[]; - blacklistRE?: RegExp | RegExp[]; - blockList?: RegExp | RegExp[]; - disableHierarchicalLookup: boolean; - dependencyExtractor?: null | string; - emptyModulePath: string; - enableGlobalPackages: boolean; - extraNodeModules: { - [name: string]: string; - }; - hasteImplModulePath?: null | string; - nodeModulesPaths: readonly string[]; - platforms: readonly string[]; - resolveRequest?: null | CustomResolver; - resolverMainFields: readonly string[]; - sourceExts: readonly string[]; - unstable_conditionNames: readonly string[]; - unstable_conditionsByPlatform: Readonly<{ - [platform: string]: readonly string[]; - }>; - unstable_enablePackageExports: boolean; - useWatchman: boolean; - requireCycleIgnorePatterns: readonly RegExp[]; - }; - type SerializerConfigT = { - createModuleIdFactory: () => (path: string) => number; - customSerializer?: - | null - | (( - entryPoint: string, - preModules: readonly Module[], - graph: ReadOnlyGraph, - options: SerializerOptions - ) => Promise< - | string - | { - code: string; - map: string; - } - >); - experimentalSerializerHook: (graph: ReadOnlyGraph, delta: DeltaResult) => any; - getModulesRunBeforeMainModule: (entryFilePath: string) => string[]; - getPolyfills: ($$PARAM_0$$: { platform?: null | string }) => readonly string[]; - getRunModuleStatement: ($$PARAM_0$$: number | string) => string; - polyfillModuleNames: readonly string[]; - processModuleFilter: (modules: Module) => boolean; - isThirdPartyModule: ( - module: Readonly<{ - path: string; - }> - ) => boolean; - }; - type TransformerConfigT = { - getTransformOptions: GetTransformOptions; - transformVariants: { - readonly [name: string]: object; - }; - workerPath: string; - publicPath: string; - unstable_workerThreads: boolean; - } & JsTransformerConfig; - type MetalConfigT = { - cacheStores: readonly CacheStore[]; - cacheVersion: string; - fileMapCacheDirectory?: string; - hasteMapCacheDirectory?: string; - unstable_fileMapCacheManagerFactory?: CacheManagerFactory; - maxWorkers: number; - unstable_perfLoggerFactory?: null | undefined | PerfLoggerFactory; - projectRoot: string; - stickyWorkers: boolean; - transformerPath: string; - reporter: Reporter; - resetCache: boolean; - watchFolders: readonly string[]; - }; - type ServerConfigT = { - /** @deprecated */ - enhanceMiddleware: ($$PARAM_0$$: Middleware, $$PARAM_1$$: MetroServer) => Middleware | Server; - forwardClientLogs: boolean; - port: number; - rewriteRequestUrl: ($$PARAM_0$$: string) => string; - unstable_serverRoot?: null | string; - useGlobalHotkey: boolean; - verifyConnections: boolean; - }; - type SymbolicatorConfigT = { - customizeFrame: ($$PARAM_0$$: { - readonly file?: null | string; - readonly lineNumber?: null | number; - readonly column?: null | number; - readonly methodName?: null | string; - }) => - | ( - | null - | undefined - | { - readonly collapse?: boolean; - } - ) - | Promise< - | null - | undefined - | { - readonly collapse?: boolean; - } - >; - customizeStack: ( - $$PARAM_0$$: IntermediateStackFrame[], - $$PARAM_1$$: any - ) => IntermediateStackFrame[] | Promise; - }; - type WatcherConfigT = { - additionalExts: readonly string[]; - healthCheck: Readonly<{ - enabled: boolean; - interval: number; - timeout: number; - filePrefix: string; - }>; - unstable_autoSaveCache: Readonly<{ - enabled: boolean; - debounceMs?: number; - }>; - unstable_lazySha1: boolean; - unstable_workerThreads: boolean; - watchman: Readonly<{ - deferStates: readonly string[]; - }>; - }; - export type InputConfigT = Readonly< - Partial< - {} & MetalConfigT & - Readonly<{ - cacheStores?: - | readonly CacheStore[] - | (($$PARAM_0$$: MetroCache) => readonly CacheStore[]); - resolver: Readonly>; - server: Readonly>; - serializer: Readonly>; - symbolicator: Readonly>; - transformer: Readonly>; - watcher: Readonly< - Partial< - { - healthCheck?: Readonly>; - unstable_autoSaveCache?: Readonly< - Partial - >; - } & WatcherConfigT - > - >; - }> - > - >; - export type MetroConfig = InputConfigT; - export type IntermediateConfigT = {} & MetalConfigT & { - resolver: ResolverConfigT; - server: ServerConfigT; - serializer: SerializerConfigT; - symbolicator: SymbolicatorConfigT; - transformer: TransformerConfigT; - watcher: WatcherConfigT; - }; - export type ConfigT = Readonly< - {} & Readonly & - Readonly<{ - resolver: Readonly; - server: Readonly; - serializer: Readonly; - symbolicator: Readonly; - transformer: Readonly; - watcher: Readonly; - }> - >; - export type YargArguments = Readonly<{ - config?: string; - cwd?: string; - port?: string | number; - host?: string; - projectRoot?: string; - watchFolders?: string[]; - assetExts?: string[]; - sourceExts?: string[]; - platforms?: string[]; - 'max-workers'?: string | number; - maxWorkers?: string | number; - transformer?: string; - 'reset-cache'?: boolean; - resetCache?: boolean; - verbose?: boolean; - }>; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/defaults/defaults.js -declare module 'metro-config/src/defaults/defaults' { - import type { RootPerfLogger } from 'metro-config/src/configTypes.flow'; - export const assetExts: any; - export const assetResolutions: any; - export const sourceExts: any; - export const additionalExts: any; - export const moduleSystem: string; - export const platforms: any; - export const DEFAULT_METRO_MINIFIER_PATH: 'metro-minify-terser'; - export { default as defaultCreateModuleIdFactory } from 'metro/src/lib/createModuleIdFactory'; - export const noopPerfLoggerFactory: () => RootPerfLogger; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/defaults/index.js -declare module 'metro-config/src/defaults/index' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/defaults/index.js - - // NOTE(cedric): This file can't be typed properly due to complex CJS structures - // NOTE(cedric): This file has lots more exports, but neither of them should be used directly by Expo - - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - export default interface getDefaultConfig { - (rootPath: string | null): Promise; - getDefaultValues: (rootPath: string | null) => ConfigT; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/defaults/validConfig.js -declare module 'metro-config/src/defaults/validConfig' { - const $$EXPORT_DEFAULT_DECLARATION$$: () => any; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/index.js -declare module 'metro-config/src/index' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/index.js - - // NOTE(cedric): Metro uses this weird Flow syntax /*:: */ to override the exported types... - export type * from 'metro-config/src/configTypes.flow'; - export { default as getDefaultConfig } from 'metro-config/src/defaults'; - export { loadConfig, mergeConfig, resolveConfig } from 'metro-config/src/loadConfig'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-config/src/loadConfig.js -declare module 'metro-config/src/loadConfig' { - import type { ConfigT, InputConfigT, YargArguments } from 'metro-config/src/configTypes.flow'; - type CosmiConfigResult = { - filepath: string; - isEmpty: boolean; - config?: - | (($$PARAM_0$$: ConfigT) => Promise) - | (($$PARAM_0$$: ConfigT) => ConfigT) - | InputConfigT; - }; - /** - * Load the metro configuration from disk - * @param {object} argv Arguments coming from the CLI, can be empty - * @param {object} defaultConfigOverrides A configuration that can override the default config - * @return {object} Configuration returned - */ - export function loadConfig( - argvInput?: YargArguments, - defaultConfigOverrides?: InputConfigT - ): Promise; - export function resolveConfig(filePath?: string, cwd?: string): Promise; - export function mergeConfig>( - defaultConfig: T, - ...configs: InputConfigT[] - ): T; -} diff --git a/packages/@expo/cli/ts-declarations/metro-core/index.d.ts b/packages/@expo/cli/ts-declarations/metro-core/index.d.ts deleted file mode 100644 index fd143a8cb37d9a..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-core/index.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -// #region metro-core -declare module 'metro-core' { - export * from 'metro-core/src/index'; - export { default } from 'metro-core/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-core/src/canonicalize.js -declare module 'metro-core/src/canonicalize' { - function canonicalize(key: string, value: any): any; - export default canonicalize; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-core/src/errors.js -declare module 'metro-core/src/errors' { - export { default as AmbiguousModuleResolutionError } from 'metro-core/src/errors/AmbiguousModuleResolutionError'; - export { default as PackageResolutionError } from 'metro-core/src/errors/PackageResolutionError'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-core/src/errors/AmbiguousModuleResolutionError.js -declare module 'metro-core/src/errors/AmbiguousModuleResolutionError' { - import type { DuplicateHasteCandidatesError } from 'metro-file-map'; - class AmbiguousModuleResolutionError extends Error { - fromModulePath: string; - hasteError: DuplicateHasteCandidatesError; - constructor(fromModulePath: string, hasteError: DuplicateHasteCandidatesError); - } - export default AmbiguousModuleResolutionError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-core/src/errors/PackageResolutionError.js -declare module 'metro-core/src/errors/PackageResolutionError' { - import type { InvalidPackageError } from 'metro-resolver'; - class PackageResolutionError extends Error { - originModulePath: string; - packageError: InvalidPackageError; - targetModuleName: string; - constructor(opts: { - readonly originModulePath: string; - readonly packageError: InvalidPackageError; - readonly targetModuleName: string; - }); - } - export default PackageResolutionError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-core/src/index.js -declare module 'metro-core/src/index' { - export { default as AmbiguousModuleResolutionError } from 'metro-core/src/errors/AmbiguousModuleResolutionError'; - export { default as Logger } from 'metro-core/src/Logger'; - export { default as PackageResolutionError } from 'metro-core/src/errors/PackageResolutionError'; - export { default as Terminal } from 'metro-core/src/Terminal'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-core/src/Logger.js -declare module 'metro-core/src/Logger' { - import type { BundleOptions } from 'metro/src/shared/types.flow'; - export type ActionLogEntryData = { - action_name: string; - log_entry_label?: string; - }; - export type ActionStartLogEntry = { - action_name?: string; - action_phase?: string; - log_entry_label: string; - log_session?: string; - start_timestamp?: [number, number]; - }; - export type LogEntry = { - action_name?: string; - action_phase?: string; - action_result?: string; - duration_ms?: number; - entry_point?: string; - log_entry_label: string; - log_session?: string; - start_timestamp?: [number, number]; - outdated_modules?: number; - bundle_size?: number; - bundle_options?: BundleOptions; - bundle_hash?: string; - build_id?: string; - error_message?: string; - error_stack?: string; - }; - export function on(event: string, handler: (logEntry: LogEntry) => void): void; - export function createEntry(data: LogEntry | string): LogEntry; - export function createActionStartEntry(data: ActionLogEntryData | string): LogEntry; - export function createActionEndEntry( - logEntry: ActionStartLogEntry, - error?: null | undefined | Error - ): LogEntry; - export function log(logEntry: LogEntry): LogEntry; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-core/src/Terminal.js -declare module 'metro-core/src/Terminal' { - import type * as _nodeStream from 'node:stream'; - import type * as _nodeNet from 'node:net'; - type UnderlyingStream = _nodeNet.Socket | _nodeStream.Writable; - /** - * We don't just print things to the console, sometimes we also want to show - * and update progress. This utility just ensures the output stays neat: no - * missing newlines, no mangled log lines. - * - * const terminal = Terminal.default; - * terminal.status('Updating... 38%'); - * terminal.log('warning: Something happened.'); - * terminal.status('Updating, done.'); - * terminal.persistStatus(); - * - * The final output: - * - * warning: Something happened. - * Updating, done. - * - * Without the status feature, we may get a mangled output: - * - * Updating... 38%warning: Something happened. - * Updating, done. - * - * This is meant to be user-readable and TTY-oriented. We use stdout by default - * because it's more about status information than diagnostics/errors (stderr). - * - * Do not add any higher-level functionality in this class such as "warning" and - * "error" printers, as it is not meant for formatting/reporting. It has the - * single responsibility of handling status messages. - */ - class Terminal { - _logLines: string[]; - _nextStatusStr: string; - _scheduleUpdate: () => void; - _statusStr: string; - _stream: UnderlyingStream; - constructor(stream: UnderlyingStream); - _update(): void; - status(format: string, ...args: any[]): string; - log(format: string, ...args: any[]): void; - persistStatus(): void; - flush(): void; - } - export default Terminal; -} diff --git a/packages/@expo/cli/ts-declarations/metro-file-map/index.d.ts b/packages/@expo/cli/ts-declarations/metro-file-map/index.d.ts deleted file mode 100644 index 7fee4022b987c0..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-file-map/index.d.ts +++ /dev/null @@ -1,1398 +0,0 @@ -// #region metro-file-map -declare module 'metro-file-map' { - export * from 'metro-file-map/src/index'; - export { default } from 'metro-file-map/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/cache/DiskCacheManager.js -declare module 'metro-file-map/src/cache/DiskCacheManager' { - import type { - BuildParameters, - CacheData, - CacheManager, - CacheManagerFactoryOptions, - CacheManagerWriteOptions, - } from 'metro-file-map/src/flow-types'; - type AutoSaveOptions = Readonly<{ - debounceMs: number; - }>; - type DiskCacheConfig = { - autoSave?: Partial | boolean; - cacheFilePrefix?: null | undefined | string; - cacheDirectory?: null | undefined | string; - }; - export class DiskCacheManager implements CacheManager { - constructor($$PARAM_0$$: CacheManagerFactoryOptions, $$PARAM_1$$: DiskCacheConfig); - static getCacheFilePath( - buildParameters: BuildParameters, - cacheFilePrefix?: null | undefined | string, - cacheDirectory?: null | undefined | string - ): string; - getCacheFilePath(): string; - read(): Promise; - write(getSnapshot: () => CacheData, $$PARAM_1$$: CacheManagerWriteOptions): Promise; - end(): void; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/constants.js -declare module 'metro-file-map/src/constants' { - const constants: { - DEPENDENCY_DELIM: '\0'; - ID: 0; - MTIME: 1; - SIZE: 2; - VISITED: 3; - DEPENDENCIES: 4; - SHA1: 5; - SYMLINK: 6; - PATH: 0; - TYPE: 1; - MODULE: 0; - PACKAGE: 1; - GENERIC_PLATFORM: 'g'; - NATIVE_PLATFORM: 'native'; - }; - export default constants; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/crawlers/node/hasNativeFindSupport.js -declare module 'metro-file-map/src/crawlers/node/hasNativeFindSupport' { - function hasNativeFindSupport(): Promise; - export default hasNativeFindSupport; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/crawlers/node/index.js -declare module 'metro-file-map/src/crawlers/node/index' { - import type { CanonicalPath, CrawlerOptions, FileData } from 'metro-file-map/src/flow-types'; - const $$EXPORT_DEFAULT_DECLARATION$$: (options: CrawlerOptions) => Promise<{ - removedFiles: Set; - changedFiles: FileData; - }>; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/crawlers/watchman/index.js -declare module 'metro-file-map/src/crawlers/watchman/index' { - import type { - CanonicalPath, - CrawlerOptions, - FileData, - WatchmanClocks, - } from 'metro-file-map/src/flow-types'; - const $$EXPORT_DEFAULT_DECLARATION$$: ($$PARAM_0$$: CrawlerOptions) => Promise<{ - changedFiles: FileData; - removedFiles: Set; - clocks: WatchmanClocks; - }>; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/crawlers/watchman/planQuery.js -declare module 'metro-file-map/src/crawlers/watchman/planQuery' { - import type { WatchmanQuery, WatchmanQuerySince } from 'fb-watchman'; - export function planQuery( - $$PARAM_0$$: Readonly<{ - since?: null | WatchmanQuerySince; - directoryFilters: readonly string[]; - extensions: readonly string[]; - includeSha1: boolean; - includeSymlinks: boolean; - }> - ): { - query: WatchmanQuery; - queryGenerator: string; - }; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/flow-types.js -declare module 'metro-file-map/src/flow-types' { - import type { PerfLogger, PerfLoggerFactory, RootPerfLogger } from 'metro-config'; - export type { PerfLoggerFactory, PerfLogger }; - export type BuildParameters = Readonly<{ - computeDependencies: boolean; - computeSha1: boolean; - enableHastePackages: boolean; - enableSymlinks: boolean; - extensions: readonly string[]; - forceNodeFilesystemAPI: boolean; - ignorePattern: RegExp; - mocksPattern?: null | RegExp; - platforms: readonly string[]; - retainAllFiles: boolean; - rootDir: string; - roots: readonly string[]; - skipPackageJson: boolean; - dependencyExtractor?: null | string; - hasteImplModulePath?: null | string; - cacheBreaker: string; - }>; - export type BuildResult = { - fileSystem: FileSystem; - hasteMap: HasteMap; - mockMap?: null | MockMap; - }; - export type CacheData = Readonly<{ - clocks: WatchmanClocks; - fileSystemData: any; - plugins: ReadonlyMap; - }>; - export interface CacheManager { - /** - * Called during startup to load initial state, if available. Provided to - * a crawler, which will return the delta between the initial state and the - * current file system state. - */ - read(): Promise; - /** - * Called when metro-file-map `build()` has applied changes returned by the - * crawler - i.e. internal state reflects the current file system state. - * - * getSnapshot may be retained and called at any time before end(), such as - * in response to eventSource 'change' events. - */ - write(getSnapshot: () => CacheData, opts: CacheManagerWriteOptions): Promise; - /** - * The last call that will be made to this CacheManager. Any handles should - * be closed by the time this settles. - */ - end(): Promise; - } - export interface CacheManagerEventSource { - onChange(listener: () => void): () => void; - } - export type CacheManagerFactory = (options: CacheManagerFactoryOptions) => CacheManager; - export type CacheManagerFactoryOptions = Readonly<{ - buildParameters: BuildParameters; - }>; - export type CacheManagerWriteOptions = Readonly<{ - changedSinceCacheRead: boolean; - eventSource: CacheManagerEventSource; - onWriteError: ($$PARAM_0$$: Error) => void; - }>; - export type CanonicalPath = string; - export type ChangeEvent = { - logger?: null | RootPerfLogger; - eventsQueue: EventsQueue; - }; - export type ChangeEventMetadata = { - modifiedTime?: null | number; - size?: null | number; - type?: 'f' | 'd' | 'l'; - }; - export type Console = typeof global.console; - export type CrawlerOptions = { - abortSignal?: null | AbortSignal; - computeSha1: boolean; - console: Console; - extensions: readonly string[]; - forceNodeFilesystemAPI: boolean; - ignore: IgnoreMatcher; - includeSymlinks: boolean; - perfLogger?: null | undefined | PerfLogger; - previousState: Readonly<{ - clocks: ReadonlyMap; - fileSystem: FileSystem; - }>; - rootDir: string; - roots: readonly string[]; - onStatus: (status: WatcherStatus) => void; - }; - export type WatcherStatus = - | { - type: 'watchman_slow_command'; - timeElapsed: number; - command?: 'watch-project' | 'query'; - } - | { - type: 'watchman_slow_command_complete'; - timeElapsed: number; - command?: 'watch-project' | 'query'; - } - | { - type: 'watchman_warning'; - warning: any; - command?: 'watch-project' | 'query'; - }; - export type DuplicatesSet = Map; - export type DuplicatesIndex = Map>; - export type EventsQueue = { - filePath: Path; - metadata: ChangeEventMetadata; - type: string; - }[]; - export type FileMapDelta = Readonly<{ - removed: Iterable<[CanonicalPath, FileMetaData]>; - addedOrModified: Iterable<[CanonicalPath, FileMetaData]>; - }>; - interface FileSystemState { - metadataIterator( - opts: Readonly<{ - includeNodeModules: boolean; - includeSymlinks: boolean; - }> - ): Iterable<{ - baseName: string; - canonicalPath: string; - metadata: FileMetaData; - }>; - } - export type FileMapPluginInitOptions = Readonly<{ - files: FileSystemState; - pluginState?: null | SerializableState; - }>; - type V8Serializable = object; - export interface FileMapPlugin { - readonly name: string; - initialize(initOptions: FileMapPluginInitOptions): Promise; - assertValid(): void; - bulkUpdate(delta: FileMapDelta): Promise; - getSerializableSnapshot(): SerializableState; - onRemovedFile(relativeFilePath: string, fileMetadata: FileMetaData): void; - onNewOrModifiedFile(relativeFilePath: string, fileMetadata: FileMetaData): void; - } - export type HType = { - ID: 0; - MTIME: 1; - SIZE: 2; - VISITED: 3; - DEPENDENCIES: 4; - SHA1: 5; - SYMLINK: 6; - PATH: 0; - TYPE: 1; - MODULE: 0; - PACKAGE: 1; - GENERIC_PLATFORM: 'g'; - NATIVE_PLATFORM: 'native'; - DEPENDENCY_DELIM: '\0'; - }; - export type HTypeValue = HType[keyof HType]; - export type IgnoreMatcher = (item: string) => boolean; - export type FileData = Map; - export type FileMetaData = [ - string, - null | undefined | number, - number, - 0 | 1, - string, - null | undefined | string, - 0 | 1 | string, - ]; - export type FileStats = Readonly<{ - fileType?: 'f' | 'l'; - modifiedTime?: null | number; - size?: null | number; - }>; - export interface FileSystem { - exists(file: Path): boolean; - getAllFiles(): Path[]; - getDependencies(file: Path): null | undefined | string[]; - getDifference(files: FileData): { - changedFiles: FileData; - removedFiles: Set; - }; - getModuleName(file: Path): null | undefined | string; - getSerializableSnapshot(): CacheData['fileSystemData']; - getSha1(file: Path): null | undefined | string; - getOrComputeSha1(file: Path): Promise< - | null - | undefined - | { - sha1: string; - content?: Buffer; - } - >; - /** - * Given a start path (which need not exist), a subpath and type, and - * optionally a 'breakOnSegment', performs the following: - * - * X = mixedStartPath - * do - * if basename(X) === opts.breakOnSegment - * return null - * if X + subpath exists and has type opts.subpathType - * return { - * absolutePath: realpath(X + subpath) - * containerRelativePath: relative(mixedStartPath, X) - * } - * X = dirname(X) - * while X !== dirname(X) - * - * If opts.invalidatedBy is given, collects all absolute, real paths that if - * added or removed may invalidate this result. - * - * Useful for finding the closest package scope (subpath: package.json, - * type f, breakOnSegment: node_modules) or closest potential package root - * (subpath: node_modules/pkg, type: d) in Node.js resolution. - */ - hierarchicalLookup( - mixedStartPath: string, - subpath: string, - opts: { - breakOnSegment?: null | string; - invalidatedBy?: null | Set; - subpathType?: 'f' | 'd'; - } - ): - | null - | undefined - | { - absolutePath: string; - containerRelativePath: string; - }; - /** - * Analogous to posix lstat. If the file at `file` is a symlink, return - * information about the symlink without following it. - */ - linkStats(file: Path): null | undefined | FileStats; - /** - * Return information about the given path, whether a directory or file. - * Always follow symlinks, and return a real path if it exists. - */ - lookup(mixedPath: Path): LookupResult; - matchFiles(opts: { - filter?: RegExp | null; - filterCompareAbsolute?: boolean; - filterComparePosix?: boolean; - follow?: boolean; - recursive?: boolean; - rootDir?: Path | null; - }): Iterable; - } - export type Glob = string; - export type LookupResult = - | { - exists: false; - links: ReadonlySet; - missing: string; - } - | { - exists: true; - links: ReadonlySet; - realPath: string; - type?: 'd' | 'f'; - }; - export interface MockMap { - getMockModule(name: string): null | undefined | Path; - } - export type HasteConflict = { - id: string; - platform?: string | null; - absolutePaths: string[]; - type?: 'duplicate' | 'shadowing'; - }; - export interface HasteMap { - getModule( - name: string, - platform?: null | undefined | string, - supportsNativePlatform?: null | undefined | boolean, - type?: null | undefined | HTypeValue - ): null | undefined | Path; - getPackage( - name: string, - platform: null | undefined | string, - _supportsNativePlatform: null | undefined | boolean - ): null | undefined | Path; - computeConflicts(): HasteConflict[]; - } - export type HasteMapData = Map; - export type HasteMapItem = { - [platform: string]: HasteMapItemMetaData; - }; - export type HasteMapItemMetaData = [string, number]; - export interface MutableFileSystem extends FileSystem { - remove(filePath: Path): null | undefined | FileMetaData; - addOrModify(filePath: Path, fileMetadata: FileMetaData): void; - bulkAddOrModify(addedOrModifiedFiles: FileData): void; - } - export type Path = string; - export type ProcessFileFunction = ( - absolutePath: string, - metadata: FileMetaData, - request: Readonly<{ - computeSha1: boolean; - }> - ) => Promise; - export type RawMockMap = Readonly<{ - duplicates: Map>; - mocks: Map; - version: number; - }>; - export type ReadOnlyRawMockMap = Readonly<{ - duplicates: ReadonlyMap>; - mocks: ReadonlyMap; - version: number; - }>; - export interface WatcherBackend { - getPauseReason(): null | undefined | string; - onError($$PARAM_0$$: (error: Error) => void): () => void; - onFileEvent($$PARAM_0$$: (event: WatcherBackendChangeEvent) => void): () => void; - startWatching(): Promise; - stopWatching(): Promise; - } - export type ChangeEventClock = [string, string]; - export type WatcherBackendChangeEvent = - | Readonly<{ - event: 'touch'; - clock?: ChangeEventClock; - relativePath: string; - root: string; - metadata: ChangeEventMetadata; - }> - | Readonly<{ - event: 'delete'; - clock?: ChangeEventClock; - relativePath: string; - root: string; - metadata?: void; - }>; - export type WatchmanClockSpec = - | string - | Readonly<{ - scm: Readonly<{ - 'mergebase-with': string; - }>; - }>; - export type WatchmanClocks = Map; - export type WorkerMessage = Readonly<{ - computeDependencies: boolean; - computeSha1: boolean; - dependencyExtractor?: null | undefined | string; - enableHastePackages: boolean; - filePath: string; - hasteImplModulePath?: null | undefined | string; - maybeReturnContent: boolean; - }>; - export type WorkerMetadata = Readonly<{ - dependencies?: null | undefined | readonly string[]; - id?: null | undefined | string; - sha1?: null | undefined | string; - content?: null | undefined | Buffer; - }>; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/index.js -declare module 'metro-file-map/src/index' { - import type { - BuildParameters, - BuildResult, - CacheData, - CacheManager, - CacheManagerFactory, - CanonicalPath, - ChangeEventClock, - ChangeEventMetadata, - Console, - CrawlerOptions, - FileData, - FileMapPlugin, - FileMetaData, - FileSystem, - HasteMapData, - HasteMapItem, - HType, - MutableFileSystem, - Path, - PerfLogger, - PerfLoggerFactory, - WatchmanClocks, - } from 'metro-file-map/src/flow-types'; - import { FileProcessor } from 'metro-file-map/src/lib/FileProcessor'; - import { RootPathUtils } from 'metro-file-map/src/lib/RootPathUtils'; - import { Watcher } from 'metro-file-map/src/Watcher'; - import EventEmitter from 'events'; - export type { - BuildParameters, - BuildResult, - CacheData, - ChangeEventMetadata, - FileData, - FileMap, - FileSystem, - HasteMapData, - HasteMapItem, - }; - export type InputOptions = Readonly<{ - computeDependencies?: null | undefined | boolean; - computeSha1?: null | undefined | boolean; - enableHastePackages?: boolean; - enableSymlinks?: null | undefined | boolean; - enableWorkerThreads?: null | undefined | boolean; - extensions: readonly string[]; - forceNodeFilesystemAPI?: null | undefined | boolean; - ignorePattern?: null | undefined | RegExp; - mocksPattern?: null | undefined | string; - platforms: readonly string[]; - retainAllFiles: boolean; - rootDir: string; - roots: readonly string[]; - skipPackageJson?: null | undefined | boolean; - dependencyExtractor?: null | undefined | string; - hasteImplModulePath?: null | undefined | string; - cacheManagerFactory?: null | undefined | CacheManagerFactory; - console?: Console; - healthCheck: HealthCheckOptions; - maxFilesPerWorker?: null | undefined | number; - maxWorkers: number; - perfLoggerFactory?: null | undefined | PerfLoggerFactory; - resetCache?: null | undefined | boolean; - throwOnModuleCollision?: null | undefined | boolean; - useWatchman?: null | undefined | boolean; - watch?: null | undefined | boolean; - watchmanDeferStates?: readonly string[]; - }>; - type HealthCheckOptions = Readonly<{ - enabled: boolean; - interval: number; - timeout: number; - filePrefix: string; - }>; - type InternalOptions = Readonly< - { - healthCheck: HealthCheckOptions; - perfLoggerFactory?: null | PerfLoggerFactory; - resetCache?: null | boolean; - throwOnModuleCollision: boolean; - useWatchman: boolean; - watch: boolean; - watchmanDeferStates: readonly string[]; - } & BuildParameters - >; - export { DiskCacheManager } from 'metro-file-map/src/cache/DiskCacheManager'; - export { DuplicateHasteCandidatesError } from 'metro-file-map/src/plugins/haste/DuplicateHasteCandidatesError'; - export { HasteConflictsError } from 'metro-file-map/src/plugins/haste/HasteConflictsError'; - export { default as HastePlugin } from 'metro-file-map/src/plugins/HastePlugin'; - export type { HasteMap } from 'metro-file-map/src/flow-types'; - export type { HealthCheckResult } from 'metro-file-map/src/Watcher'; - export type { - CacheManager, - CacheManagerFactory, - CacheManagerFactoryOptions, - CacheManagerWriteOptions, - ChangeEvent, - WatcherStatus, - } from 'metro-file-map/src/flow-types'; - /** - * FileMap includes a JavaScript implementation of Facebook's haste module system. - * - * This implementation is inspired by https://github.com/facebook/node-haste - * and was built with for high-performance in large code repositories with - * hundreds of thousands of files. This implementation is scalable and provides - * predictable performance. - * - * Because the haste map creation and synchronization is critical to startup - * performance and most tasks are blocked by I/O this class makes heavy use of - * synchronous operations. It uses worker processes for parallelizing file - * access and metadata extraction. - * - * The data structures created by `metro-file-map` can be used directly from the - * cache without further processing. The metadata objects in the `files` and - * `map` objects contain cross-references: a metadata object from one can look - * up the corresponding metadata object in the other map. Note that in most - * projects, the number of files will be greater than the number of haste - * modules one module can refer to many files based on platform extensions. - * - * type CacheData = { - * clocks: WatchmanClocks, - * files: {[filepath: string]: FileMetaData}, - * map: {[id: string]: HasteMapItem}, - * mocks: {[id: string]: string}, - * } - * - * // Watchman clocks are used for query synchronization and file system deltas. - * type WatchmanClocks = {[filepath: string]: string}; - * - * type FileMetaData = { - * id: ?string, // used to look up module metadata objects in `map`. - * mtime: number, // check for outdated files. - * size: number, // size of the file in bytes. - * visited: boolean, // whether the file has been parsed or not. - * dependencies: Array, // all relative dependencies of this file. - * sha1: ?string, // SHA-1 of the file, if requested via options. - * symlink: ?(1 | 0 | string), // Truthy if symlink, string is target - * }; - * - * // Modules can be targeted to a specific platform based on the file name. - * // Example: platform.ios.js and Platform.android.js will both map to the same - * // `Platform` module. The platform should be specified during resolution. - * type HasteMapItem = {[platform: string]: ModuleMetaData}; - * - * // - * type ModuleMetaData = { - * path: string, // the path to look up the file object in `files`. - * type: string, // the module type (either `package` or `module`). - * }; - * - * Note that the data structures described above are conceptual only. The actual - * implementation uses arrays and constant keys for metadata storage. Instead of - * `{id: 'flatMap', mtime: 3421, size: 42, visited: true, dependencies: []}` the real - * representation is similar to `['flatMap', 3421, 42, 1, []]` to save storage space - * and reduce parse and write time of a big JSON blob. - * - * The HasteMap is created as follows: - * 1. read data from the cache or create an empty structure. - * - * 2. crawl the file system. - * * empty cache: crawl the entire file system. - * * cache available: - * * if watchman is available: get file system delta changes. - * * if watchman is unavailable: crawl the entire file system. - * * build metadata objects for every file. This builds the `files` part of - * the `HasteMap`. - * - * 3. parse and extract metadata from changed files. - * * this is done in parallel over worker processes to improve performance. - * * the worst case is to parse all files. - * * the best case is no file system access and retrieving all data from - * the cache. - * * the average case is a small number of changed files. - * - * 4. serialize the new `HasteMap` in a cache file. - * - */ - class FileMap extends EventEmitter { - _buildPromise: null | undefined | Promise; - _canUseWatchmanPromise: Promise; - _changeID: number; - _changeInterval: null | undefined | NodeJS.Timeout; - _fileProcessor: FileProcessor; - _console: Console; - _options: InternalOptions; - _pathUtils: RootPathUtils; - _watcher: null | undefined | Watcher; - _cacheManager: CacheManager; - _crawlerAbortController: AbortController; - _healthCheckInterval: null | undefined | NodeJS.Timeout; - _startupPerfLogger: null | undefined | PerfLogger; - static create(options: InputOptions): FileMap; - constructor(options: InputOptions); - build(): Promise; - read(): Promise; - _buildFileDelta(previousState: CrawlerOptions['previousState']): Promise<{ - removedFiles: Set; - changedFiles: FileData; - clocks?: WatchmanClocks; - }>; - _maybeReadLink(filePath: Path, fileMetadata: FileMetaData): null | undefined | Promise; - _applyFileDelta( - fileSystem: MutableFileSystem, - plugins: readonly FileMapPlugin[], - delta: Readonly<{ - changedFiles: FileData; - removedFiles: ReadonlySet; - clocks?: WatchmanClocks; - }> - ): Promise; - _takeSnapshotAndPersist( - fileSystem: FileSystem, - clocks: WatchmanClocks, - plugins: readonly FileMapPlugin[], - changed: FileData, - removed: Set - ): void; - _watch( - fileSystem: MutableFileSystem, - clocks: WatchmanClocks, - plugins: readonly FileMapPlugin[] - ): Promise; - end(): Promise; - _shouldUseWatchman(): Promise; - _getNextChangeID(): number; - _updateClock(clocks: WatchmanClocks, newClock?: null | undefined | ChangeEventClock): void; - static H: HType; - } - export default FileMap; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/checkWatchmanCapabilities.js -declare module 'metro-file-map/src/lib/checkWatchmanCapabilities' { - function checkWatchmanCapabilities(requiredCapabilities: readonly string[]): Promise<{ - version: string; - }>; - export default checkWatchmanCapabilities; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/dependencyExtractor.js -declare module 'metro-file-map/src/lib/dependencyExtractor' { - export function extract(code: any): void; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/fast_path.js -declare module 'metro-file-map/src/lib/fast_path' { - export function relative(rootDir: string, filename: string): string; - export function resolve(rootDir: string, normalPath: string): string; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/FileProcessor.js -declare module 'metro-file-map/src/lib/FileProcessor' { - import type { FileMetaData, PerfLogger } from 'metro-file-map/src/flow-types'; - type ProcessFileRequest = Readonly<{ - /** - * Populate metadata[H.SHA1] with the SHA1 of the file's contents. - */ - computeSha1: boolean; - /** - * Populate metadata[H.DEPENDENCIES] with unresolved dependency specifiers - * using the dependencyExtractor provided to the constructor. - */ - computeDependencies: boolean; - /** - * Only if processing has already required reading the file's contents, return - * the contents as a Buffer - null otherwise. Not supported for batches. - */ - maybeReturnContent: boolean; - }>; - export class FileProcessor { - constructor( - opts: Readonly<{ - dependencyExtractor?: null | string; - enableHastePackages: boolean; - enableWorkerThreads: boolean; - hasteImplModulePath?: null | string; - maxFilesPerWorker?: null | undefined | number; - maxWorkers: number; - perfLogger?: null | PerfLogger; - }> - ); - processBatch( - files: readonly [string, FileMetaData][], - req: ProcessFileRequest - ): Promise<{ - errors: { - absolutePath: string; - error: Error & { - code: string; - }; - }[]; - }>; - processRegularFile( - absolutePath: string, - fileMetadata: FileMetaData, - req: ProcessFileRequest - ): - | null - | undefined - | Promise<{ - content?: null | Buffer; - }>; - end(): Promise; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/normalizePathSeparatorsToPosix.js -declare module 'metro-file-map/src/lib/normalizePathSeparatorsToPosix' { - let normalizePathSeparatorsToPosix: (string: string) => string; - export default normalizePathSeparatorsToPosix; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/normalizePathSeparatorsToSystem.js -declare module 'metro-file-map/src/lib/normalizePathSeparatorsToSystem' { - let normalizePathSeparatorsToSystem: (string: string) => string; - export default normalizePathSeparatorsToSystem; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/RootPathUtils.js -declare module 'metro-file-map/src/lib/RootPathUtils' { - export class RootPathUtils { - constructor(rootDir: string); - getBasenameOfNthAncestor(n: number): string; - getParts(): readonly string[]; - absoluteToNormal(absolutePath: string): string; - normalToAbsolute(normalPath: string): string; - relativeToNormal(relativePath: string): string; - getAncestorOfRootIdx(normalPath: string): null | undefined | number; - joinNormalToRelative( - normalPath: string, - relativePath: string - ): { - normalPath: string; - collapsedSegments: number; - }; - relative(from: string, to: string): string; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/rootRelativeCacheKeys.js -declare module 'metro-file-map/src/lib/rootRelativeCacheKeys' { - import type { BuildParameters } from 'metro-file-map/src/flow-types'; - function rootRelativeCacheKeys(buildParameters: BuildParameters): { - rootDirHash: string; - relativeConfigHash: string; - }; - export default rootRelativeCacheKeys; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/sorting.js -declare module 'metro-file-map/src/lib/sorting' { - export function compareStrings(a: null | string, b: null | string): number; - export function chainComparators( - ...comparators: ((a: T, b: T) => number)[] - ): (a: T, b: T) => number; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/lib/TreeFS.js -declare module 'metro-file-map/src/lib/TreeFS' { - import type { - FileData, - FileMetaData, - FileStats, - LookupResult, - MutableFileSystem, - Path, - ProcessFileFunction, - } from 'metro-file-map/src/flow-types'; - type DirectoryNode = Map; - type FileNode = FileMetaData; - type MixedNode = FileNode | DirectoryNode; - type NormalizedSymlinkTarget = { - ancestorOfRootIdx?: null | number; - normalPath: string; - startOfBasenameIdx: number; - }; - class TreeFS implements MutableFileSystem { - constructor($$PARAM_0$$: { rootDir: Path; files?: FileData; processFile: ProcessFileFunction }); - getSerializableSnapshot(): any; - static fromDeserializedSnapshot($$PARAM_0$$: { - rootDir: string; - fileSystemData: DirectoryNode; - processFile: ProcessFileFunction; - }): TreeFS; - getModuleName(mixedPath: Path): null | undefined | string; - getSize(mixedPath: Path): null | undefined | number; - getDependencies(mixedPath: Path): null | undefined | string[]; - getDifference(files: FileData): { - changedFiles: FileData; - removedFiles: Set; - }; - getSha1(mixedPath: Path): null | undefined | string; - getOrComputeSha1(mixedPath: Path): Promise< - | null - | undefined - | { - sha1: string; - content?: Buffer; - } - >; - exists(mixedPath: Path): boolean; - lookup(mixedPath: Path): LookupResult; - getAllFiles(): Path[]; - linkStats(mixedPath: Path): null | undefined | FileStats; - matchFiles( - $$PARAM_0$$: Readonly<{ - filter?: null | undefined | RegExp; - filterCompareAbsolute?: boolean; - filterComparePosix?: boolean; - follow?: boolean; - recursive?: boolean; - rootDir?: null | undefined | Path; - }> - ): Iterable; - addOrModify(mixedPath: Path, metadata: FileMetaData): void; - bulkAddOrModify(addedOrModifiedFiles: FileData): void; - remove(mixedPath: Path): null | undefined | FileMetaData; - _lookupByNormalPath( - requestedNormalPath: string, - opts: { - collectAncestors?: { - ancestorOfRootIdx?: null | number; - node: DirectoryNode; - normalPath: string; - segmentName: string; - }[]; - collectLinkPaths?: null | undefined | Set; - followLeaf?: boolean; - makeDirectories?: boolean; - startPathIdx?: number; - startNode?: DirectoryNode; - start?: { - ancestorOfRootIdx?: null | number; - node: DirectoryNode; - pathIdx: number; - }; - } - ): - | { - ancestorOfRootIdx?: null | number; - canonicalPath: string; - exists: true; - node: MixedNode; - parentNode: DirectoryNode; - } - | { - ancestorOfRootIdx?: null | number; - canonicalPath: string; - exists: true; - node: DirectoryNode; - parentNode: null; - } - | { - canonicalMissingPath: string; - missingSegmentName: string; - exists: false; - }; - hierarchicalLookup( - mixedStartPath: string, - subpath: string, - opts: { - breakOnSegment?: null | string; - invalidatedBy?: null | Set; - subpathType?: 'f' | 'd'; - } - ): - | null - | undefined - | { - absolutePath: string; - containerRelativePath: string; - }; - metadataIterator( - opts: Readonly<{ - includeSymlinks: boolean; - includeNodeModules: boolean; - }> - ): Iterable<{ - baseName: string; - canonicalPath: string; - metadata: FileMetaData; - }>; - _metadataIterator( - rootNode: DirectoryNode, - opts: Readonly<{ - includeSymlinks: boolean; - includeNodeModules: boolean; - }>, - prefix: string - ): Iterable<{ - baseName: string; - canonicalPath: string; - metadata: FileMetaData; - }>; - _normalizePath(relativeOrAbsolutePath: Path): string; - _pathIterator( - iterationRootNode: DirectoryNode, - iterationRootParentNode: null | undefined | DirectoryNode, - ancestorOfRootIdx: null | undefined | number, - opts: Readonly<{ - alwaysYieldPosix: boolean; - canonicalPathOfRoot: string; - follow: boolean; - recursive: boolean; - subtreeOnly: boolean; - }>, - pathPrefix: string, - followedLinks: ReadonlySet - ): Iterable; - _resolveSymlinkTargetToNormalPath( - symlinkNode: FileMetaData, - canonicalPathOfSymlink: Path - ): NormalizedSymlinkTarget; - _getFileData( - filePath: Path, - opts: { - followLeaf: boolean; - } - ): null | undefined | FileMetaData; - _cloneTree(root: DirectoryNode): DirectoryNode; - } - export default TreeFS; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/plugins/haste/computeConflicts.js -declare module 'metro-file-map/src/plugins/haste/computeConflicts' { - import type { HasteMapItem } from 'metro-file-map/src/flow-types'; - type Conflict = { - id: string; - platform?: string | null; - absolutePaths: string[]; - type?: 'duplicate' | 'shadowing'; - }; - export function computeHasteConflicts( - $$PARAM_0$$: Readonly<{ - duplicates: ReadonlyMap>>; - map: ReadonlyMap; - rootDir: string; - }> - ): Conflict[]; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/plugins/haste/DuplicateHasteCandidatesError.js -declare module 'metro-file-map/src/plugins/haste/DuplicateHasteCandidatesError' { - import type { DuplicatesSet } from 'metro-file-map/src/flow-types'; - export class DuplicateHasteCandidatesError extends Error { - hasteName: string; - platform: string | null; - supportsNativePlatform: boolean; - duplicatesSet: DuplicatesSet; - constructor( - name: string, - platform: string, - supportsNativePlatform: boolean, - duplicatesSet: DuplicatesSet - ); - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/plugins/haste/getPlatformExtension.js -declare module 'metro-file-map/src/plugins/haste/getPlatformExtension' { - function getPlatformExtension( - file: string, - platforms: ReadonlySet - ): null | undefined | string; - export default getPlatformExtension; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/plugins/haste/HasteConflictsError.js -declare module 'metro-file-map/src/plugins/haste/HasteConflictsError' { - import type { HasteConflict } from 'metro-file-map/src/flow-types'; - export class HasteConflictsError extends Error { - constructor(conflicts: readonly HasteConflict[]); - getDetailedMessage(pathsRelativeToRoot: null | undefined | string): string; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/plugins/HastePlugin.js -declare module 'metro-file-map/src/plugins/HastePlugin' { - import type { - Console, - DuplicatesSet, - FileMapDelta, - FileMapPlugin, - FileMapPluginInitOptions, - FileMetaData, - HasteConflict, - HasteMap, - HasteMapItemMetaData, - HTypeValue, - Path, - PerfLogger, - } from 'metro-file-map/src/flow-types'; - type HasteMapOptions = Readonly<{ - console?: null | undefined | Console; - enableHastePackages: boolean; - perfLogger?: null | PerfLogger; - platforms: ReadonlySet; - rootDir: Path; - failValidationOnConflicts: boolean; - }>; - class HastePlugin implements HasteMap, FileMapPlugin { - readonly name: any; - constructor(options: HasteMapOptions); - initialize($$PARAM_0$$: FileMapPluginInitOptions): Promise; - getSerializableSnapshot(): null; - getModule( - name: string, - platform?: null | undefined | string, - supportsNativePlatform?: null | undefined | boolean, - type?: null | undefined | HTypeValue - ): null | undefined | Path; - getPackage( - name: string, - platform: null | undefined | string, - _supportsNativePlatform?: null | undefined | boolean - ): null | undefined | Path; - _getModuleMetadata( - name: string, - platform: null | undefined | string, - supportsNativePlatform: boolean - ): HasteMapItemMetaData | null; - _assertNoDuplicates( - name: string, - platform: string, - supportsNativePlatform: boolean, - relativePathSet: null | undefined | DuplicatesSet - ): void; - bulkUpdate(delta: FileMapDelta): Promise; - onNewOrModifiedFile(relativeFilePath: string, fileMetadata: FileMetaData): void; - setModule(id: string, module: HasteMapItemMetaData): void; - onRemovedFile(relativeFilePath: string, fileMetadata: FileMetaData): void; - assertValid(): void; - _recoverDuplicates(moduleName: string, relativeFilePath: string): void; - computeConflicts(): HasteConflict[]; - } - export default HastePlugin; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/plugins/MockPlugin.js -declare module 'metro-file-map/src/plugins/MockPlugin' { - import type { - FileMapDelta, - FileMapPlugin, - FileMapPluginInitOptions, - MockMap as IMockMap, - Path, - RawMockMap, - } from 'metro-file-map/src/flow-types'; - export const CACHE_VERSION: 2; - class MockPlugin implements FileMapPlugin, IMockMap { - readonly name: any; - constructor($$PARAM_0$$: { - console: typeof console; - mocksPattern: RegExp; - rawMockMap?: RawMockMap; - rootDir: Path; - throwOnModuleCollision: boolean; - }); - initialize($$PARAM_0$$: FileMapPluginInitOptions): Promise; - getMockModule(name: string): null | undefined | Path; - bulkUpdate(delta: FileMapDelta): Promise; - onNewOrModifiedFile(relativeFilePath: Path): void; - onRemovedFile(relativeFilePath: Path): void; - getSerializableSnapshot(): RawMockMap; - assertValid(): void; - } - export default MockPlugin; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/plugins/mocks/getMockName.js -declare module 'metro-file-map/src/plugins/mocks/getMockName' { - const getMockName: (filePath: string) => string; - export default getMockName; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/Watcher.js -declare module 'metro-file-map/src/Watcher' { - import type { - Console, - CrawlerOptions, - FileData, - Path, - PerfLogger, - WatcherBackend, - WatcherBackendChangeEvent, - WatchmanClocks, - } from 'metro-file-map/src/flow-types'; - import EventEmitter from 'events'; - type CrawlResult = { - changedFiles: FileData; - clocks?: WatchmanClocks; - removedFiles: Set; - }; - type WatcherOptions = { - abortSignal: AbortSignal; - computeSha1: boolean; - console: Console; - enableSymlinks: boolean; - extensions: readonly string[]; - forceNodeFilesystemAPI: boolean; - healthCheckFilePrefix: string; - ignoreForCrawl: ($$PARAM_0$$: string) => boolean; - ignorePatternForWatch: RegExp; - previousState: CrawlerOptions['previousState']; - perfLogger?: null | PerfLogger; - roots: readonly string[]; - rootDir: string; - useWatchman: boolean; - watch: boolean; - watchmanDeferStates: readonly string[]; - }; - export type HealthCheckResult = - | { - type: 'error'; - timeout: number; - error: Error; - watcher?: null | string; - } - | { - type: 'success'; - timeout: number; - timeElapsed: number; - watcher?: null | string; - } - | { - type: 'timeout'; - timeout: number; - watcher?: null | string; - pauseReason?: null | string; - }; - export class Watcher extends EventEmitter { - _options: WatcherOptions; - _backends: readonly WatcherBackend[]; - _instanceId: number; - _nextHealthCheckId: number; - _pendingHealthChecks: Map void>; - _activeWatcher: null | undefined | string; - constructor(options: WatcherOptions); - crawl(): Promise; - watch(onChange: (change: WatcherBackendChangeEvent) => void): void; - _handleHealthCheckObservation(basename: string): void; - close(): void; - checkHealth(timeout: number): Promise; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/watchers/AbstractWatcher.js -declare module 'metro-file-map/src/watchers/AbstractWatcher' { - import type { WatcherBackend, WatcherBackendChangeEvent } from 'metro-file-map/src/flow-types'; - export type Listeners = Readonly<{ - onFileEvent: (event: WatcherBackendChangeEvent) => void; - onError: (error: Error) => void; - }>; - export class AbstractWatcher implements WatcherBackend { - readonly root: string; - readonly ignored: null | undefined | RegExp; - readonly globs: readonly string[]; - readonly dot: boolean; - readonly doIgnore: (path: string) => boolean; - constructor( - dir: string, - $$PARAM_1$$: Readonly<{ - ignored?: null | RegExp; - globs: readonly string[]; - dot: boolean; - }> - ); - onFileEvent(listener: (event: WatcherBackendChangeEvent) => void): () => void; - onError(listener: (error: Error) => void): () => void; - startWatching(): Promise; - stopWatching(): void; - emitFileEvent(event: Omit): void; - emitError(error: Error): void; - getPauseReason(): null | undefined | string; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/watchers/common.js -declare module 'metro-file-map/src/watchers/common' { - import type { ChangeEventMetadata } from 'metro-file-map/src/flow-types'; - import type { Stats } from 'fs'; - /** - * Constants - */ - export const DELETE_EVENT: 'delete'; - export const TOUCH_EVENT: 'touch'; - export const ALL_EVENT: 'all'; - export type WatcherOptions = Readonly<{ - globs: readonly string[]; - dot: boolean; - ignored?: null | RegExp; - watchmanDeferStates: readonly string[]; - watchman?: any; - watchmanPath?: string; - }>; - /** - * Checks a file relative path against the globs array. - */ - export function includedByGlob( - type: null | undefined | ('f' | 'l' | 'd'), - globs: readonly string[], - dot: boolean, - relativePath: string - ): boolean; - /** - * Whether the given filePath matches the given RegExp, after converting - * (on Windows only) system separators to posix separators. - * - * Conversion to posix is for backwards compatibility with the previous - * anymatch matcher, which normlises all inputs[1]. This may not be consistent - * with other parts of metro-file-map. - * - * [1]: https://github.com/micromatch/anymatch/blob/3.1.1/index.js#L50 - */ - export const posixPathMatchesPattern: (pattern: RegExp, filePath: string) => boolean; - export function typeFromStat(stat: Stats): null | undefined | ChangeEventMetadata['type']; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/watchers/FallbackWatcher.js -declare module 'metro-file-map/src/watchers/FallbackWatcher' { - const $$EXPORT_DEFAULT_DECLARATION$$: any; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/watchers/NativeWatcher.js -declare module 'metro-file-map/src/watchers/NativeWatcher' { - import { AbstractWatcher } from 'metro-file-map/src/watchers/AbstractWatcher'; - /** - * NativeWatcher uses Node's native fs.watch API with recursive: true. - * - * Supported on macOS (and potentially Windows), because both natively have a - * concept of recurisve watching, via FSEvents and ReadDirectoryChangesW - * respectively. Notably Linux lacks this capability at the OS level. - * - * Node.js has at times supported the `recursive` option to fs.watch on Linux - * by walking the directory tree and creating a watcher on each directory, but - * this fits poorly with the synchronous `watch` API - either it must block for - * arbitrarily large IO, or it may drop changes after `watch` returns. See: - * https://github.com/nodejs/node/issues/48437 - * - * Therefore, we retain a fallback to our own application-level recursive - * FallbackWatcher for Linux, which has async `startWatching`. - * - * On Windows, this watcher could be used in principle, but needs work around - * some Windows-specific edge cases handled in FallbackWatcher, like - * deduping file change events, ignoring directory changes, and handling EPERM. - */ - class NativeWatcher extends AbstractWatcher { - static isSupported(): boolean; - constructor( - dir: string, - opts: Readonly<{ - ignored?: null | RegExp; - globs: readonly string[]; - dot: boolean; - }> - ); - startWatching(): Promise; - stopWatching(): Promise; - _handleEvent(relativePath: string): void; - } - export default NativeWatcher; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/watchers/RecrawlWarning.js -declare module 'metro-file-map/src/watchers/RecrawlWarning' { - class RecrawlWarning { - static RECRAWL_WARNINGS: RecrawlWarning[]; - static REGEXP: RegExp; - root: string; - count: number; - constructor(root: string, count: number); - static findByRoot(root: string): null | undefined | RecrawlWarning; - static isRecrawlWarningDupe(warningMessage: any): boolean; - } - export default RecrawlWarning; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/watchers/WatchmanWatcher.js -declare module 'metro-file-map/src/watchers/WatchmanWatcher' { - import type { WatcherOptions } from 'metro-file-map/src/watchers/common'; - import type { Client, WatchmanFileChange, WatchmanSubscriptionEvent } from 'fb-watchman'; - import { AbstractWatcher } from 'metro-file-map/src/watchers/AbstractWatcher'; - /** - * Watches `dir`. - */ - class WatchmanWatcher extends AbstractWatcher { - client: Client; - readonly subscriptionName: string; - watchProjectInfo: - | null - | undefined - | Readonly<{ - relativePath: string; - root: string; - }>; - readonly watchmanDeferStates: readonly string[]; - constructor(dir: string, $$PARAM_1$$: WatcherOptions); - startWatching(): void; - _init(onReady: () => void, onError: (error: Error) => void): void; - _handleChangeEvent(resp: WatchmanSubscriptionEvent): void; - _handleFileChange( - changeDescriptor: WatchmanFileChange, - rawClock: WatchmanSubscriptionEvent['clock'] - ): void; - stopWatching(): void; - getPauseReason(): null | undefined | string; - } - export default WatchmanWatcher; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/worker.js -declare module 'metro-file-map/src/worker' { - export function worker(data: any): void; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-file-map/src/workerExclusionList.js -declare module 'metro-file-map/src/workerExclusionList' { - const extensions: any; - export default extensions; -} diff --git a/packages/@expo/cli/ts-declarations/metro-resolver/index.d.ts b/packages/@expo/cli/ts-declarations/metro-resolver/index.d.ts deleted file mode 100644 index 983d4c9bcb36b3..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-resolver/index.d.ts +++ /dev/null @@ -1,536 +0,0 @@ -// #region metro-resolver -declare module 'metro-resolver' { - export * from 'metro-resolver/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/createDefaultContext.js -declare module 'metro-resolver/src/createDefaultContext' { - import type { ResolutionContext } from 'metro-resolver/src/types'; - import type { TransformResultDependency } from 'metro/src/DeltaBundler/types.flow'; - type PartialContext = Readonly< - { - redirectModulePath?: ResolutionContext['redirectModulePath']; - } & ResolutionContext - >; - /** - * Helper used by the `metro` package to create the `ResolutionContext` object. - * As context values can be overridden by callers, this occurs externally to - * `resolve.js`. - */ - function createDefaultContext( - context: PartialContext, - dependency: TransformResultDependency - ): ResolutionContext; - export default createDefaultContext; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/FailedToResolveNameError.js -declare module 'metro-resolver/src/errors/FailedToResolveNameError' { - class FailedToResolveNameError extends Error { - dirPaths: readonly string[]; - extraPaths: readonly string[]; - constructor(dirPaths: readonly string[], extraPaths: readonly string[]); - } - export default FailedToResolveNameError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/FailedToResolvePathError.js -declare module 'metro-resolver/src/errors/FailedToResolvePathError' { - import type { FileAndDirCandidates } from 'metro-resolver/src/types'; - class FailedToResolvePathError extends Error { - candidates: FileAndDirCandidates; - constructor(candidates: FileAndDirCandidates); - } - export default FailedToResolvePathError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/FailedToResolveUnsupportedError.js -declare module 'metro-resolver/src/errors/FailedToResolveUnsupportedError' { - class FailedToResolveUnsupportedError extends Error { - constructor(message: string); - } - export default FailedToResolveUnsupportedError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/formatFileCandidates.js -declare module 'metro-resolver/src/errors/formatFileCandidates' { - import type { FileCandidates } from 'metro-resolver/src/types'; - function formatFileCandidates(candidates: FileCandidates): string; - export default formatFileCandidates; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/InvalidPackageConfigurationError.js -declare module 'metro-resolver/src/errors/InvalidPackageConfigurationError' { - /** - * Raised when a package contains an invalid `package.json` configuration. - */ - class InvalidPackageConfigurationError extends Error { - reason: string; - packagePath: string; - constructor( - opts: Readonly<{ - reason: string; - packagePath: string; - }> - ); - } - export default InvalidPackageConfigurationError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/InvalidPackageError.js -declare module 'metro-resolver/src/errors/InvalidPackageError' { - import type { FileCandidates } from 'metro-resolver/src/types'; - class InvalidPackageError extends Error { - fileCandidates: FileCandidates; - indexCandidates: FileCandidates; - mainModulePath: string; - packageJsonPath: string; - constructor(opts: { - readonly fileCandidates: FileCandidates; - readonly indexCandidates: FileCandidates; - readonly mainModulePath: string; - readonly packageJsonPath: string; - }); - } - export default InvalidPackageError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/PackageImportNotResolvedError.js -declare module 'metro-resolver/src/errors/PackageImportNotResolvedError' { - /** - * Raised when package imports do not define or permit a target subpath in the - * package for the given import specifier. - */ - class PackageImportNotResolvedError extends Error { - readonly importSpecifier: string; - readonly reason: string; - constructor( - opts: Readonly<{ - importSpecifier: string; - reason: string; - }> - ); - } - export default PackageImportNotResolvedError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/errors/PackagePathNotExportedError.js -declare module 'metro-resolver/src/errors/PackagePathNotExportedError' { - /** - * Raised when package exports do not define or permit a target subpath in the - * package for the given module. - */ - class PackagePathNotExportedError extends Error {} - export default PackagePathNotExportedError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/index.js -declare module 'metro-resolver/src/index' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/index.js - - export type { - AssetFileResolution, - CustomResolutionContext, - CustomResolver, - CustomResolverOptions, - DoesFileExist, - FileAndDirCandidates, - FileCandidates, - FileResolution, - FileSystemLookup, - ResolutionContext, - Resolution, - ResolveAsset, - Result, - } from 'metro-resolver/src/types'; - - // NOTE(cedric): the flow translation API can't resolve types when using inline requires in object properties - export { default as FailedToResolveNameError } from 'metro-resolver/src/errors/FailedToResolveNameError'; - export { default as FailedToResolvePathError } from 'metro-resolver/src/errors/FailedToResolvePathError'; - export { default as FailedToResolveUnsupportedError } from 'metro-resolver/src/errors/FailedToResolveUnsupportedError'; - export { default as formatFileCandidates } from 'metro-resolver/src/errors/formatFileCandidates'; - export { default as InvalidPackageError } from 'metro-resolver/src/errors/InvalidPackageError'; - export { default as resolve } from 'metro-resolver/src/resolve'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/PackageExportsResolve.js -declare module 'metro-resolver/src/PackageExportsResolve' { - import type { ExportsField, FileResolution, ResolutionContext } from 'metro-resolver/src/types'; - export function resolvePackageTargetFromExports( - context: ResolutionContext, - packagePath: string, - modulePath: string, - packageRelativePath: string, - exportsField: ExportsField, - platform: string | null - ): FileResolution; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/PackageImportsResolve.js -declare module 'metro-resolver/src/PackageImportsResolve' { - import type { ExportsLikeMap, FileResolution, ResolutionContext } from 'metro-resolver/src/types'; - /** - * Resolve a package subpath based on the entry points defined in the package's - * "imports" field. If there is no match for the given subpath (which may be - * augmented by resolution of conditional exports for the passed `context`), - * throws a `PackagePathNotExportedError`. - * - * Implementation of PACKAGE_IMPORTS_RESOLVE described in https://nodejs.org/api/esm.html - * - * @throws {InvalidPackageConfigurationError} Raised if configuration specified - * by `importsMap` is invalid. - */ - export function resolvePackageTargetFromImports( - context: ResolutionContext, - packagePath: string, - importPath: string, - importsMap: ExportsLikeMap, - platform: string | null - ): FileResolution; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/PackageResolve.js -declare module 'metro-resolver/src/PackageResolve' { - import type { PackageInfo, ResolutionContext } from 'metro-resolver/src/types'; - /** - * Resolve the main entry point subpath for a package. - * - * Implements legacy (non-exports) package resolution behaviour based on the - * ["browser" field spec](https://github.com/defunctzombie/package-browser-field-spec). - */ - export function getPackageEntryPoint( - context: ResolutionContext, - packageInfo: PackageInfo, - platform: string | null - ): string; - /** - * Get the resolved file path for the given import specifier based on any - * `package.json` rules. Returns `false` if the module should be - * [ignored](https://github.com/defunctzombie/package-browser-field-spec#ignore-a-module), - * and returns the original path if no `package.json` mapping is matched. Does - * not test file existence. - * - * Implements legacy (non-exports) package resolution behaviour based on the - * ["browser" field spec](https://github.com/defunctzombie/package-browser-field-spec). - */ - export function redirectModulePath( - context: Readonly<{ - getPackageForModule: ResolutionContext['getPackageForModule']; - mainFields: ResolutionContext['mainFields']; - originModulePath: ResolutionContext['originModulePath']; - }>, - modulePath: string - ): string | false; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/resolve.js -declare module 'metro-resolver/src/resolve' { - import type { Resolution, ResolutionContext } from 'metro-resolver/src/types'; - function resolve( - context: ResolutionContext, - moduleName: string, - platform: string | null - ): Resolution; - export default resolve; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/resolveAsset.js -declare module 'metro-resolver/src/resolveAsset' { - import type { AssetResolution, ResolutionContext } from 'metro-resolver/src/types'; - /** - * Resolve a file path as an asset. Returns the set of files found after - * expanding asset resolutions (e.g. `icon@2x.png`). Users may override this - * behaviour via `context.resolveAsset`. - */ - function resolveAsset(context: ResolutionContext, filePath: string): AssetResolution | null; - export default resolveAsset; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/types.js -declare module 'metro-resolver/src/types' { - import type { TransformResultDependency } from 'metro/src/DeltaBundler/types.flow'; - export type Result = - | { - readonly type: 'resolved'; - readonly resolution: TResolution; - } - | { - readonly type: 'failed'; - readonly candidates: TCandidates; - }; - export type Resolution = - | FileResolution - | { - readonly type: 'empty'; - }; - export type SourceFileResolution = Readonly<{ - type: 'sourceFile'; - filePath: string; - }>; - export type AssetFileResolution = readonly string[]; - export type AssetResolution = Readonly<{ - type: 'assetFiles'; - filePaths: AssetFileResolution; - }>; - export type FileResolution = AssetResolution | SourceFileResolution; - export type FileAndDirCandidates = { - readonly dir?: null | FileCandidates; - readonly file?: null | FileCandidates; - }; - /** - * This is a way to describe what files we tried to look for when resolving - * a module name as file. This is mainly used for error reporting, so that - * we can explain why we cannot resolve a module. - */ - export type FileCandidates = - | { - readonly type: 'asset'; - readonly name: string; - } - | { - readonly type: 'sourceFile'; - filePathPrefix: string; - readonly candidateExts: readonly string[]; - }; - export type ExportsLikeMap = Readonly<{ - [subpathOrCondition: string]: string | ExportsLikeMap | null; - }>; - /** "exports" mapping where values may be legacy Node.js <13.7 array format. */ - export type ExportMapWithFallbacks = Readonly<{ - [subpath: string]: ExportsLikeMap[keyof ExportsLikeMap] | ExportValueWithFallback; - }>; - /** "exports" subpath value when in legacy Node.js <13.7 array format. */ - export type ExportValueWithFallback = - | readonly (ExportsLikeMap | string)[] - | readonly (readonly any[])[]; - export type ExportsField = - | string - | readonly string[] - | ExportValueWithFallback - | ExportsLikeMap - | ExportMapWithFallbacks; - export type FlattenedExportMap = ReadonlyMap; - export type NormalizedExportsLikeMap = Map; - export type PackageJson = Readonly<{ - name?: string; - main?: string; - exports?: ExportsField; - imports?: ExportsLikeMap; - }>; - export type PackageInfo = Readonly<{ - packageJson: PackageJson; - rootPath: string; - }>; - export type PackageForModule = Readonly< - { - packageRelativePath: string; - } & PackageInfo - >; - /** - * Check existence of a single file. - */ - export type DoesFileExist = (filePath: string) => boolean; - /** - * Performs a lookup against an absolute or project-relative path to determine - * whether it exists as a file or directory. Follows any symlinks, and returns - * a real absolute path on existence. - */ - export type FileSystemLookup = (absoluteOrProjectRelativePath: string) => - | { - exists: false; - } - | { - exists: true; - type?: 'f' | 'd'; - realPath: string; - }; - /** - * Given a directory path and the base asset name, return a list of all the - * asset file names that match the given base name in that directory. Return - * null if there's no such named asset. `platform` is used to identify - * platform-specific assets, ex. `foo.ios.js` instead of a generic `foo.js`. - */ - export type ResolveAsset = ( - dirPath: string, - assetName: string, - extension: string - ) => null | undefined | readonly string[]; - export type ResolutionContext = Readonly<{ - allowHaste: boolean; - assetExts: ReadonlySet; - customResolverOptions: CustomResolverOptions; - disableHierarchicalLookup: boolean; - /** - * Determine whether a regular file exists at the given path. - * - * @deprecated, prefer `fileSystemLookup` - */ - doesFileExist: DoesFileExist; - extraNodeModules?: null | { - [$$Key$$: string]: string; - }; - /** Is resolving for a development bundle. */ - dev: boolean; - /** - * Get the parsed contents of the specified `package.json` file. - */ - getPackage: (packageJsonPath: string) => null | undefined | PackageJson; - /** - * Get the closest package scope, parsed `package.json` and relative subpath - * for a given absolute candidate path (which need not exist), or null if - * there is no package.json closer than the nearest node_modules directory. - * - * @deprecated See https://github.com/facebook/metro/commit/29c77bff31e2475a086bc3f04073f485da8f9ff0 - */ - getPackageForModule: (absoluteModulePath: string) => null | undefined | PackageForModule; - /** - * The dependency descriptor, within the origin module, corresponding to the - * current resolution request. This is provided for diagnostic purposes ONLY - * and may not be used for resolution purposes. - */ - dependency?: TransformResultDependency; - /** - * Whether the dependency to be resolved was declared with an ESM import, - * ("import x from 'y'" or "await import('z')"), or a CommonJS "require". - * Corresponds to the criteria Node.js uses to assert an "import" - * resolution condition, vs "require". - * - * Always equal to dependency.data.isESMImport where dependency is provided, - * but may be used for resolution. - */ - isESMImport?: boolean; - /** - * Synchonously returns information about a given absolute path, including - * whether it exists, whether it is a file or directory, and its absolute - * real path. - */ - fileSystemLookup: FileSystemLookup; - /** - * The ordered list of fields to read in `package.json` to resolve a main - * entry point based on the "browser" field spec. - */ - mainFields: readonly string[]; - /** - * Full path of the module that is requiring or importing the module to be - * resolved. This may not be the only place this dependency was found, - * as resolutions can be cached. - */ - originModulePath: string; - nodeModulesPaths: readonly string[]; - preferNativePlatform: boolean; - resolveAsset: ResolveAsset; - redirectModulePath: (modulePath: string) => string | false; - /** - * Given a name, this should return the full path to the file that provides - * a Haste module of that name. Ex. for `Foo` it may return `/smth/Foo.js`. - */ - resolveHasteModule: (name: string) => null | undefined | string; - /** - * Given a name, this should return the full path to the package manifest that - * provides a Haste package of that name. Ex. for `Foo` it may return - * `/smth/Foo/package.json`. - */ - resolveHastePackage: (name: string) => null | undefined | string; - resolveRequest?: null | undefined | CustomResolver; - sourceExts: readonly string[]; - unstable_conditionNames: readonly string[]; - unstable_conditionsByPlatform: Readonly<{ - [platform: string]: readonly string[]; - }>; - unstable_enablePackageExports: boolean; - unstable_logWarning: (message: string) => void; - }>; - export type CustomResolutionContext = Readonly< - { - resolveRequest: CustomResolver; - } & ResolutionContext - >; - export type CustomResolver = ( - context: CustomResolutionContext, - moduleName: string, - platform: string | null - ) => Resolution; - export type CustomResolverOptions = { - readonly [$$Key$$: string]: any; - }; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/utils/isAssetFile.js -declare module 'metro-resolver/src/utils/isAssetFile' { - /** - * Determine if a file path should be considered an asset file based on the - * given `assetExts`. - */ - function isAssetFile(filePath: string, assetExts: ReadonlySet): boolean; - export default isAssetFile; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/utils/isSubpathDefinedInExportsLike.js -declare module 'metro-resolver/src/utils/isSubpathDefinedInExportsLike' { - /** - * Identifies whether the given subpath is defined in the given "exports"-like - * mapping. Does not reduce exports conditions (therefore does not identify - * whether the subpath is mapped to a value). - */ - import type { NormalizedExportsLikeMap } from 'metro-resolver/src/types'; - export function isSubpathDefinedInExportsLike( - exportsLikeMap: NormalizedExportsLikeMap, - subpath: string - ): boolean; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/utils/matchSubpathFromExportsLike.js -declare module 'metro-resolver/src/utils/matchSubpathFromExportsLike' { - import type { NormalizedExportsLikeMap, ResolutionContext } from 'metro-resolver/src/types'; - /** - * Get the mapped replacement for the given subpath. - * - * Implements modern package resolution behaviour based on the [Package Entry - * Points spec](https://nodejs.org/docs/latest-v19.x/api/packages.html#package-entry-points). - */ - export function matchSubpathFromExportsLike( - context: ResolutionContext, - subpath: string, - exportsLikeMap: NormalizedExportsLikeMap, - platform: string | null, - createConfigError: (reason: string) => Error - ): Readonly<{ - target?: string | null; - patternMatch?: string | null; - }>; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/utils/matchSubpathPattern.js -declare module 'metro-resolver/src/utils/matchSubpathPattern' { - /** - * If a subpath pattern expands to the passed subpath, return the subpath match - * (value to substitute for '*'). Otherwise, return `null`. - * - * See https://nodejs.org/docs/latest-v19.x/api/packages.html#subpath-patterns. - */ - export function matchSubpathPattern(subpathPattern: string, subpath: string): string | null; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/utils/reduceExportsLikeMap.js -declare module 'metro-resolver/src/utils/reduceExportsLikeMap' { - /** - * Reduce an "exports"-like mapping to a flat subpath mapping after resolving - * conditional exports. - */ - import type { FlattenedExportMap, NormalizedExportsLikeMap } from 'metro-resolver/src/types'; - export function reduceExportsLikeMap( - exportsLikeMap: NormalizedExportsLikeMap, - conditionNames: ReadonlySet, - createConfigError: (reason: string) => Error - ): FlattenedExportMap; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-resolver/src/utils/toPosixPath.js -declare module 'metro-resolver/src/utils/toPosixPath' { - /** - * Replace path separators in the passed string to coerce to a POSIX path. This - * is a no-op on POSIX systems. - */ - function toPosixPath(relativePathOrSpecifier: string): string; - export default toPosixPath; -} diff --git a/packages/@expo/cli/ts-declarations/metro-runtime/index.d.ts b/packages/@expo/cli/ts-declarations/metro-runtime/index.d.ts deleted file mode 100644 index 2a3be95350f044..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-runtime/index.d.ts +++ /dev/null @@ -1,271 +0,0 @@ -// #region metro-runtime -// metro-runtime has no entrypoint - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/modules/asyncRequire.js -declare module 'metro-runtime/src/modules/asyncRequire' { - type DependencyMapPaths = - | null - | undefined - | Readonly<{ - [moduleID: number | string]: any; - }>; - function asyncRequire( - moduleID: number, - paths: DependencyMapPaths, - moduleName?: string - ): Promise; - export default asyncRequire; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/modules/empty-module.js -declare module 'metro-runtime/src/modules/empty-module' { - // This has no exports -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/modules/HMRClient.js -declare module 'metro-runtime/src/modules/HMRClient' { - import type { HmrUpdate } from 'metro-runtime/src/modules/types.flow'; - import EventEmitter from 'metro-runtime/src/modules/vendor/eventemitter3'; - type SocketState = 'opening' | 'open' | 'closed'; - class HMRClient extends EventEmitter { - _isEnabled: boolean; - _pendingUpdate: HmrUpdate | null; - _queue: string[]; - _state: SocketState; - _ws: WebSocket; - constructor(url: string); - close(): void; - send(message: string): void; - _flushQueue(): void; - enable(): void; - disable(): void; - isEnabled(): boolean; - hasPendingUpdates(): boolean; - } - export default HMRClient; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/modules/null-module.js -declare module 'metro-runtime/src/modules/null-module' { - const $$EXPORT_DEFAULT_DECLARATION$$: null; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/modules/types.flow.js -declare module 'metro-runtime/src/modules/types.flow' { - export type ModuleMap = readonly [number, string][]; - export type Bundle = { - readonly modules: ModuleMap; - readonly post: string; - readonly pre: string; - }; - export type DeltaBundle = { - readonly added: ModuleMap; - readonly modified: ModuleMap; - readonly deleted: readonly number[]; - }; - export type BundleVariant = - | ({ - readonly base: true; - readonly revisionId: string; - } & Bundle) - | ({ - readonly base: false; - readonly revisionId: string; - } & DeltaBundle); - export type BundleMetadata = { - readonly pre: number; - readonly post: number; - readonly modules: readonly [number, number][]; - }; - export type FormattedError = { - readonly type: string; - readonly message: string; - readonly errors: { - description: string; - }[]; - }; - export type HmrModule = { - readonly module: [number, string]; - readonly sourceMappingURL: string; - readonly sourceURL: string; - }; - export type HmrUpdate = { - readonly added: readonly HmrModule[]; - readonly deleted: readonly number[]; - readonly isInitialUpdate: boolean; - readonly modified: readonly HmrModule[]; - readonly revisionId: string; - }; - export type HmrUpdateMessage = { - readonly type: 'update'; - readonly body: HmrUpdate; - }; - export type HmrErrorMessage = { - readonly type: 'error'; - readonly body: FormattedError; - }; - export type HmrClientMessage = - | { - readonly type: 'register-entrypoints'; - readonly entryPoints: string[]; - } - | { - readonly type: 'log'; - readonly level?: - | 'trace' - | 'info' - | 'warn' - | 'log' - | 'group' - | 'groupCollapsed' - | 'groupEnd' - | 'debug'; - readonly data: any[]; - readonly mode?: 'BRIDGE' | 'NOBRIDGE'; - } - | { - readonly type: 'log-opt-in'; - }; - export type HmrMessage = - | { - readonly type: 'bundle-registered'; - } - | { - readonly type: 'update-start'; - readonly body: { - readonly isInitialUpdate: boolean; - }; - } - | { - readonly type: 'update-done'; - } - | HmrUpdateMessage - | HmrErrorMessage; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/modules/vendor/eventemitter3.js -declare module 'metro-runtime/src/modules/vendor/eventemitter3' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/modules/vendor/eventemitter3.js - - /** - * `object` should be in either of the following forms: - * ``` - * interface EventTypes { - * 'event-with-parameters': any[] - * 'event-with-example-handler': (...args: any[]) => void - * } - * ``` - */ - export type ValidEventTypes = string | symbol | object; - export type EventNames = T extends string | symbol ? T : keyof T; - export type ArgumentMap = { - [K in keyof T]: T[K] extends (...args: any[]) => void - ? Parameters - : T[K] extends any[] - ? T[K] - : any[]; - }; - export type EventListener> = T extends - | string - | symbol - ? (...args: any[]) => void - : (...args: ArgumentMap>[Extract]) => void; - export type EventArgs> = Parameters< - EventListener - >; - export class EventEmitter< - EventTypes extends ValidEventTypes = string | symbol, - Context extends any = any, - > { - static prefixed: string | boolean; - - /** Return an array listing the events for which the emitter has registered listeners. */ - eventNames(): EventNames[]; - - /** Return the listeners registered for a given event. */ - listeners>(event: T): EventListener[]; - - /** Return the number of listeners listening to a given event. */ - listenerCount(event: EventNames): number; - - /** Calls each of the listeners registered for a given event. */ - emit>(event: T, ...args: EventArgs): boolean; - - /** Add a listener for a given event. */ - on>( - event: T, - fn: EventListener, - context?: Context - ): this; - addListener>( - event: T, - fn: EventListener, - context?: Context - ): this; - - /** Add a one-time listener for a given event. */ - once>( - event: T, - fn: EventListener, - context?: Context - ): this; - - /** Remove the listeners of a given event. */ - removeListener>( - event: T, - fn?: EventListener, - context?: Context, - once?: boolean - ): this; - off>( - event: T, - fn?: EventListener, - context?: Context, - once?: boolean - ): this; - - /** Remove all listeners, or those of the specified event. */ - removeAllListeners(event?: EventNames): this; - } - export default EventEmitter; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-runtime/src/polyfills/require.js -declare module 'metro-runtime/src/polyfills/require' { - type ArrayIndexable = { - readonly [indexer: number]: T; - }; - type DependencyMap = Readonly< - ArrayIndexable & { - paths?: { - [id: ModuleID]: string; - }; - } - >; - type InverseDependencyMap = { - [key: ModuleID]: ModuleID[]; - }; - type Exports = any; - type FactoryFn = ( - global: object, - require: RequireFn, - metroImportDefault: RequireFn, - metroImportAll: RequireFn, - moduleObject: { - exports: object; - }, - exports: object, - dependencyMap: null | undefined | DependencyMap - ) => void; - type ModuleID = number; - export type RequireFn = (id: ModuleID | VerboseModuleNameForDev) => Exports; - export type DefineFn = ( - factory: FactoryFn, - moduleId: number, - dependencyMap?: DependencyMap, - verboseName?: string, - inverseDependencies?: InverseDependencyMap - ) => void; - type VerboseModuleNameForDev = string; -} diff --git a/packages/@expo/cli/ts-declarations/metro-source-map/index.d.ts b/packages/@expo/cli/ts-declarations/metro-source-map/index.d.ts deleted file mode 100644 index 993f2a7cd1a1d5..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-source-map/index.d.ts +++ /dev/null @@ -1,518 +0,0 @@ -// #region metro-source-map -declare module 'metro-source-map' { - export * from 'metro-source-map/src/source-map'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/B64Builder.js -declare module 'metro-source-map/src/B64Builder' { - /** - * Efficient builder for base64 VLQ mappings strings. - * - * This class uses a buffer that is preallocated with one megabyte and is - * reallocated dynamically as needed, doubling its size. - * - * Encoding never creates any complex value types (strings, objects), and only - * writes character values to the buffer. - * - * For details about source map terminology and specification, check - * https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit - */ - class B64Builder { - buffer: Buffer; - pos: number; - hasSegment: boolean; - constructor(); - markLines(n: number): this; - startSegment(column: number): this; - append(value: number): this; - toString(): string; - _writeByte(byte: number): void; - _realloc(): void; - } - export default B64Builder; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/BundleBuilder.js -declare module 'metro-source-map/src/BundleBuilder' { - import type { IndexMap, IndexMapSection, MixedSourceMap } from 'metro-source-map/src/source-map'; - export class BundleBuilder { - _file: string; - _sections: IndexMapSection[]; - _line: number; - _column: number; - _code: string; - _afterMappedContent: boolean; - constructor(file: string); - _pushMapSection(map: MixedSourceMap): void; - _endMappedContent(): void; - append(code: string, map: null | undefined | MixedSourceMap): this; - getMap(): MixedSourceMap; - getCode(): string; - } - export function createIndexMap(file: string, sections: IndexMapSection[]): IndexMap; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/composeSourceMaps.js -declare module 'metro-source-map/src/composeSourceMaps' { - import type { MixedSourceMap } from 'metro-source-map/src/source-map'; - function composeSourceMaps(maps: readonly MixedSourceMap[]): MixedSourceMap; - export default composeSourceMaps; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/AbstractConsumer.js -declare module 'metro-source-map/src/Consumer/AbstractConsumer' { - import type { - GeneratedPositionLookup, - IConsumer, - IterationOrder, - Mapping, - SourcePosition, - } from 'metro-source-map/src/Consumer/types.flow'; - class AbstractConsumer implements IConsumer { - _sourceMap: { - readonly file?: string; - }; - constructor(sourceMap: { readonly file?: string }); - originalPositionFor(generatedPosition: GeneratedPositionLookup): SourcePosition; - generatedMappings(): Iterable; - eachMapping(callback: (mapping: Mapping) => any, context?: any, order?: IterationOrder): void; - get file(): null | undefined | string; - sourceContentFor(source: string, nullOnMissing: true): null | undefined | string; - } - export default AbstractConsumer; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/constants.js -declare module 'metro-source-map/src/Consumer/constants' { - import type { Number0, Number1 } from 'ob1'; - export type IterationOrder = unknown; - export type LookupBias = unknown; - export const FIRST_COLUMN: Number0; - export const FIRST_LINE: Number1; - export const GENERATED_ORDER: IterationOrder; - export const ORIGINAL_ORDER: IterationOrder; - export const GREATEST_LOWER_BOUND: LookupBias; - export const LEAST_UPPER_BOUND: LookupBias; - export const EMPTY_POSITION: any; - export function iterationOrderToString(x: IterationOrder): string; - export function lookupBiasToString(x: LookupBias): string; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/createConsumer.js -declare module 'metro-source-map/src/Consumer/createConsumer' { - import type { MixedSourceMap } from 'metro-source-map/src/source-map'; - import type { IConsumer } from 'metro-source-map/src/Consumer/types.flow'; - function createConsumer(sourceMap: MixedSourceMap): IConsumer; - export default createConsumer; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/DelegatingConsumer.js -declare module 'metro-source-map/src/Consumer/DelegatingConsumer' { - import type { MixedSourceMap } from 'metro-source-map/src/source-map'; - import type { LookupBias } from 'metro-source-map/src/Consumer/constants'; - import type { - GeneratedPositionLookup, - IConsumer, - IterationOrder, - Mapping, - SourcePosition, - } from 'metro-source-map/src/Consumer/types.flow'; - /** - * A source map consumer that supports both "basic" and "indexed" source maps. - * Uses `MappingsConsumer` and `SectionsConsumer` under the hood (via - * `createConsumer`). - */ - class DelegatingConsumer implements IConsumer { - static readonly GENERATED_ORDER: IterationOrder; - static readonly ORIGINAL_ORDER: IterationOrder; - static readonly GREATEST_LOWER_BOUND: LookupBias; - static readonly LEAST_UPPER_BOUND: LookupBias; - _rootConsumer: IConsumer; - constructor(sourceMap: MixedSourceMap); - originalPositionFor(generatedPosition: GeneratedPositionLookup): SourcePosition; - generatedMappings(): Iterable; - eachMapping(callback: (mapping: Mapping) => any, context?: any, order?: IterationOrder): void; - get file(): null | undefined | string; - sourceContentFor(source: string, nullOnMissing: true): null | undefined | string; - } - export default DelegatingConsumer; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/index.js -declare module 'metro-source-map/src/Consumer/index' { - export { default as DelegatingConsumer } from 'metro-source-map/src/Consumer/DelegatingConsumer'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/MappingsConsumer.js -declare module 'metro-source-map/src/Consumer/MappingsConsumer' { - import type { BasicSourceMap } from 'metro-source-map/src/source-map'; - import type { - GeneratedPositionLookup, - IConsumer, - Mapping, - SourcePosition, - } from 'metro-source-map/src/Consumer/types.flow'; - // import type { Number0 } from 'ob1'; - // NOTE(cedric): ob1 is not typed - type Number0 = number; - import AbstractConsumer from 'metro-source-map/src/Consumer/AbstractConsumer'; - /** - * A source map consumer that supports "basic" source maps (that have a - * `mappings` field and no sections). - */ - class MappingsConsumer extends AbstractConsumer implements IConsumer { - _sourceMap: BasicSourceMap; - _decodedMappings: null | undefined | readonly Mapping[]; - _normalizedSources: null | undefined | readonly string[]; - constructor(sourceMap: BasicSourceMap); - originalPositionFor(generatedPosition: GeneratedPositionLookup): SourcePosition; - _decodeMappings(): Generator; - _normalizeAndCacheSources(): readonly string[]; - _decodeAndCacheMappings(): readonly Mapping[]; - generatedMappings(): Iterable; - _indexOfSource(source: string): null | undefined | Number0; - sourceContentFor(source: string, nullOnMissing: true): null | undefined | string; - } - export default MappingsConsumer; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/normalizeSourcePath.js -declare module 'metro-source-map/src/Consumer/normalizeSourcePath' { - function normalizeSourcePath( - sourceInput: string, - map: { - readonly sourceRoot?: null | undefined | string; - } - ): string; - export default normalizeSourcePath; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/positionMath.js -declare module 'metro-source-map/src/Consumer/positionMath' { - import type { GeneratedOffset } from 'metro-source-map/src/Consumer/types.flow'; - // import type { Number0, Number1 } from 'ob1'; - // NOTE(cedric): ob1 is not typed - type Number0 = number; - type Number1 = number; - export function shiftPositionByOffset< - T extends { - readonly line?: null | Number1; - readonly column?: null | Number0; - }, - >(pos: T, offset: GeneratedOffset): T; - export function subtractOffsetFromPosition< - T extends { - readonly line?: null | Number1; - readonly column?: null | Number0; - }, - >(pos: T, offset: GeneratedOffset): T; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/search.js -declare module 'metro-source-map/src/Consumer/search' { - export function greatestLowerBound( - elements: readonly T[], - target: U, - comparator: ($$PARAM_0$$: U, $$PARAM_1$$: T) => number - ): null | undefined | number; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/SectionsConsumer.js -declare module 'metro-source-map/src/Consumer/SectionsConsumer' { - import type { IndexMap } from 'metro-source-map/src/source-map'; - import type { - GeneratedOffset, - GeneratedPositionLookup, - IConsumer, - Mapping, - SourcePosition, - } from 'metro-source-map/src/Consumer/types.flow'; - import AbstractConsumer from 'metro-source-map/src/Consumer/AbstractConsumer'; - /** - * A source map consumer that supports "indexed" source maps (that have a - * `sections` field and no top-level mappings). - */ - class SectionsConsumer extends AbstractConsumer implements IConsumer { - _consumers: readonly [GeneratedOffset, IConsumer][]; - constructor(sourceMap: IndexMap); - originalPositionFor(generatedPosition: GeneratedPositionLookup): SourcePosition; - generatedMappings(): Iterable; - _consumerForPosition( - generatedPosition: GeneratedPositionLookup - ): null | undefined | [GeneratedOffset, IConsumer]; - sourceContentFor(source: string, nullOnMissing: true): null | undefined | string; - } - export default SectionsConsumer; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Consumer/types.flow.js -declare module 'metro-source-map/src/Consumer/types.flow' { - import type { IterationOrder, LookupBias } from 'metro-source-map/src/Consumer/constants'; - // import type { Number0, Number1 } from 'ob1'; - // NOTE(cedric): ob1 is not typed - type Number0 = number; - type Number1 = number; - export type { IterationOrder, LookupBias }; - export type GeneratedOffset = { - readonly lines: Number0; - readonly columns: Number0; - }; - export type SourcePosition = { - source?: null | string; - line?: null | Number1; - column?: null | Number0; - name?: null | string; - }; - export type GeneratedPosition = { - readonly line: Number1; - readonly column: Number0; - }; - export type GeneratedPositionLookup = { - readonly line?: null | Number1; - readonly column?: null | Number0; - readonly bias?: LookupBias; - }; - export type Mapping = { - source?: null | string; - generatedLine: Number1; - generatedColumn: Number0; - originalLine?: null | Number1; - originalColumn?: null | Number0; - name?: null | string; - }; - export interface IConsumer { - originalPositionFor(generatedPosition: GeneratedPositionLookup): SourcePosition; - generatedMappings(): Iterable; - eachMapping(callback: (mapping: Mapping) => any, context?: any, order?: IterationOrder): void; - get file(): null | undefined | string; - sourceContentFor(source: string, nullOnMissing: true): null | undefined | string; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/encode.js -declare module 'metro-source-map/src/encode' { - /** - * Encodes a number to base64 VLQ format and appends it to the passed-in buffer - * - * DON'T USE COMPOUND OPERATORS (eg `>>>=`) ON `let`-DECLARED VARIABLES! - * V8 WILL DEOPTIMIZE THIS FUNCTION AND MAP CREATION WILL BE 25% SLOWER! - * - * DON'T ADD MORE COMMENTS TO THIS FUNCTION TO KEEP ITS LENGTH SHORT ENOUGH FOR - * V8 OPTIMIZATION! - */ - function encode(value: number, buffer: Buffer, position: number): number; - export default encode; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/generateFunctionMap.js -declare module 'metro-source-map/src/generateFunctionMap' { - import type * as _babel_types from '@babel/types'; - import type { FBSourceFunctionMap } from 'metro-source-map/src/source-map'; - import type { PluginObj } from '@babel/core'; - type Position = { - line: number; - column: number; - }; - type RangeMapping = { - name: string; - start: Position; - }; - export type Context = { - filename?: null | undefined | string; - }; - export function functionMapBabelPlugin(): PluginObj; - export function generateFunctionMap( - ast: _babel_types.Node, - context?: Context - ): FBSourceFunctionMap; - export function generateFunctionMappingsArray( - ast: _babel_types.Node, - context?: Context - ): readonly RangeMapping[]; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/Generator.js -declare module 'metro-source-map/src/Generator' { - import type { - BasicSourceMap, - FBSourceFunctionMap, - FBSourceMetadata, - } from 'metro-source-map/src/source-map'; - import B64Builder from 'metro-source-map/src/B64Builder'; - type FileFlags = Readonly<{ - addToIgnoreList?: boolean; - }>; - /** - * Generates a source map from raw mappings. - * - * Raw mappings are a set of 2, 4, or five elements: - * - * - line and column number in the generated source - * - line and column number in the original source - * - symbol name in the original source - * - * Mappings have to be passed in the order appearance in the generated source. - */ - class Generator { - builder: B64Builder; - last: { - generatedColumn: number; - generatedLine: number; - name: number; - source: number; - sourceColumn: number; - sourceLine: number; - }; - names: IndexedSet; - source: number; - sources: string[]; - sourcesContent: (null | undefined | string)[]; - x_facebook_sources: (null | undefined | FBSourceMetadata)[]; - x_google_ignoreList: number[]; - constructor(); - startFile( - file: string, - code: string, - functionMap: null | undefined | FBSourceFunctionMap, - flags?: FileFlags - ): void; - endFile(): void; - addSimpleMapping(generatedLine: number, generatedColumn: number): void; - addSourceMapping( - generatedLine: number, - generatedColumn: number, - sourceLine: number, - sourceColumn: number - ): void; - addNamedSourceMapping( - generatedLine: number, - generatedColumn: number, - sourceLine: number, - sourceColumn: number, - name: string - ): void; - toMap( - file?: string, - options?: { - excludeSource?: boolean; - } - ): BasicSourceMap; - toString( - file?: string, - options?: { - excludeSource?: boolean; - } - ): string; - hasSourcesMetadata(): boolean; - } - class IndexedSet { - map: Map; - nextIndex: number; - constructor(); - indexFor(x: string): number; - items(): string[]; - } - export default Generator; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-source-map/src/source-map.js -declare module 'metro-source-map/src/source-map' { - import type { IConsumer } from 'metro-source-map/src/Consumer/types.flow'; - import Generator from 'metro-source-map/src/Generator'; - export type { IConsumer }; - type GeneratedCodeMapping = [number, number]; - type SourceMapping = [number, number, number, number]; - type SourceMappingWithName = [number, number, number, number, string]; - export type MetroSourceMapSegmentTuple = - | SourceMappingWithName - | SourceMapping - | GeneratedCodeMapping; - export type HermesFunctionOffsets = { - [$$Key$$: number]: readonly number[]; - }; - export type FBSourcesArray = readonly (null | undefined | FBSourceMetadata)[]; - export type FBSourceMetadata = [null | undefined | FBSourceFunctionMap]; - export type FBSourceFunctionMap = { - readonly names: readonly string[]; - readonly mappings: string; - }; - export type FBSegmentMap = { - [id: string]: MixedSourceMap; - }; - export type BasicSourceMap = { - readonly file?: string; - readonly mappings: string; - readonly names: string[]; - readonly sourceRoot?: string; - readonly sources: string[]; - readonly sourcesContent?: (null | undefined | string)[]; - readonly version: number; - readonly x_facebook_offsets?: number[]; - readonly x_metro_module_paths?: string[]; - readonly x_facebook_sources?: FBSourcesArray; - readonly x_facebook_segments?: FBSegmentMap; - readonly x_hermes_function_offsets?: HermesFunctionOffsets; - readonly x_google_ignoreList?: number[]; - }; - export type IndexMapSection = { - map?: IndexMap | BasicSourceMap; - offset: { - line: number; - column: number; - }; - }; - export type IndexMap = { - readonly file?: string; - readonly mappings?: void; - readonly sourcesContent?: void; - readonly sections: IndexMapSection[]; - readonly version: number; - readonly x_facebook_offsets?: number[]; - readonly x_metro_module_paths?: string[]; - readonly x_facebook_sources?: void; - readonly x_facebook_segments?: FBSegmentMap; - readonly x_hermes_function_offsets?: HermesFunctionOffsets; - readonly x_google_ignoreList?: void; - }; - export type MixedSourceMap = IndexMap | BasicSourceMap; - export { BundleBuilder } from 'metro-source-map/src/BundleBuilder'; - export { default as composeSourceMaps } from 'metro-source-map/src/composeSourceMaps'; - export { default as Consumer } from 'metro-source-map/src/Consumer'; - export { createIndexMap } from 'metro-source-map/src/BundleBuilder'; - export { generateFunctionMap } from 'metro-source-map/src/generateFunctionMap'; - export function fromRawMappings( - modules: readonly { - readonly map?: null | MetroSourceMapSegmentTuple[]; - readonly functionMap?: null | FBSourceFunctionMap; - readonly path: string; - readonly source: string; - readonly code: string; - readonly isIgnored: boolean; - readonly lineCount?: number; - }[], - offsetLines?: number - ): Generator; - export function fromRawMappingsNonBlocking( - modules: readonly { - readonly map?: null | MetroSourceMapSegmentTuple[]; - readonly functionMap?: null | FBSourceFunctionMap; - readonly path: string; - readonly source: string; - readonly code: string; - readonly isIgnored: boolean; - readonly lineCount?: number; - }[], - offsetLines?: number - ): Promise; - export { functionMapBabelPlugin } from 'metro-source-map/src/generateFunctionMap'; - export { default as normalizeSourcePath } from 'metro-source-map/src/Consumer/normalizeSourcePath'; - // NOTE(cedric): see https://github.com/facebook/metro/blob/a36e992ac74c5497e58b91d99c2bab21c7fa1451/flow-typed/npm/babel_v7.x.x.js#L23 - export type BabelSourceMapSegment = { - name?: null | string; - source?: null | string; - generated: { line: number; column: number }; - original?: { line: number; column: number }; - } & Record; - export function toBabelSegments(sourceMap: BasicSourceMap): BabelSourceMapSegment[]; - export function toSegmentTuple(mapping: BabelSourceMapSegment): MetroSourceMapSegmentTuple; -} diff --git a/packages/@expo/cli/ts-declarations/metro-transform-plugins/index.d.ts b/packages/@expo/cli/ts-declarations/metro-transform-plugins/index.d.ts deleted file mode 100644 index 21fbc3957ae622..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-transform-plugins/index.d.ts +++ /dev/null @@ -1,162 +0,0 @@ -// #region metro-transform-plugins -declare module 'metro-transform-plugins' { - export * from 'metro-transform-plugins/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/addParamsToDefineCall.js -declare module 'metro-transform-plugins/src/addParamsToDefineCall' { - /** - * Simple way of adding additional parameters to the end of the define calls. - * - * This is used to add extra information to the generaic compiled modules (like - * the dependencyMap object or the list of inverse dependencies). - */ - function addParamsToDefineCall(code: string, ...paramsToAdd: any[]): string; - export default addParamsToDefineCall; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/constant-folding-plugin.js -declare module 'metro-transform-plugins/src/constant-folding-plugin' { - import type { PluginObj } from '@babel/core'; - import type $$IMPORT_TYPEOF_1$$ from '@babel/traverse'; - type Traverse = typeof $$IMPORT_TYPEOF_1$$; - import type * as $$IMPORT_TYPEOF_2$$ from '@babel/types'; - type Types = typeof $$IMPORT_TYPEOF_2$$; - type State = { - stripped: boolean; - }; - function constantFoldingPlugin(context: { types: Types; traverse: Traverse }): PluginObj; - export default constantFoldingPlugin; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/import-export-plugin.js -declare module 'metro-transform-plugins/src/import-export-plugin' { - import type * as _babel_types from '@babel/types'; - import type { PluginObj } from '@babel/core'; - type Types = typeof _babel_types; - export type Options = Readonly<{ - importDefault: string; - importAll: string; - resolve: boolean; - out?: { - isESModule: boolean; - }; - }>; - type State = { - exportAll: { - file: string; - loc?: null | _babel_types.SourceLocation; - }[]; - exportDefault: { - local: string; - loc?: null | _babel_types.SourceLocation; - }[]; - exportNamed: { - local: string; - remote: string; - loc?: null | _babel_types.SourceLocation; - }[]; - imports: { - node: _babel_types.Statement; - }[]; - importDefault: _babel_types.Node; - importAll: _babel_types.Node; - opts: Options; - }; - function importExportPlugin($$PARAM_0$$: { types: Types }): PluginObj; - export default importExportPlugin; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/index.js -declare module 'metro-transform-plugins/src/index' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/index.js - - // NOTE(cedric): this is quite a complicated CJS export, this can't be automatically typed - - export type { Options as ImportExportPluginOptions } from 'metro-transform-plugins/src/import-export-plugin'; - export type { Options as InlinePluginOptions } from 'metro-transform-plugins/src/inline-plugin'; - export type { PluginOptions as InlineRequiresPluginOptions } from 'metro-transform-plugins/src/inline-requires-plugin'; - - export { default as addParamsToDefineCall } from 'metro-transform-plugins/src/addParamsToDefineCall'; - export { default as constantFoldingPlugin } from 'metro-transform-plugins/src/constant-folding-plugin'; - export { default as importExportPlugin } from 'metro-transform-plugins/src/import-export-plugin'; - export { default as inlinePlugin } from 'metro-transform-plugins/src/inline-plugin'; - export { default as inlineRequiresPlugin } from 'metro-transform-plugins/src/inline-requires-plugin'; - export { default as normalizePseudoGlobals } from 'metro-transform-plugins/src/normalizePseudoGlobals'; - export function getTransformPluginCacheKeyFiles(): string[]; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/inline-plugin.js -declare module 'metro-transform-plugins/src/inline-plugin' { - import type { PluginObj } from '@babel/core'; - import type * as $$IMPORT_TYPEOF_1$$ from '@babel/types'; - type Types = typeof $$IMPORT_TYPEOF_1$$; - export type Options = Readonly<{ - dev: boolean; - inlinePlatform: boolean; - isWrapped: boolean; - requireName?: string; - platform: string; - }>; - type State = { - opts: Options; - }; - function inlinePlugin( - $$PARAM_0$$: { - types: Types; - }, - options: Options - ): PluginObj; - export default inlinePlugin; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/inline-requires-plugin.js -declare module 'metro-transform-plugins/src/inline-requires-plugin' { - import type * as _babel_core from '@babel/core'; - type Babel = typeof _babel_core; - export type PluginOptions = Readonly<{ - ignoredRequires?: readonly string[]; - inlineableCalls?: readonly string[]; - nonMemoizedModules?: readonly string[]; - memoizeCalls?: boolean; - }>; - export type State = { - opts?: PluginOptions; - ignoredRequires: Set; - inlineableCalls: Set; - membersAssigned: Map>; - }; - const $$EXPORT_DEFAULT_DECLARATION$$: ($$PARAM_0$$: Babel) => _babel_core.PluginObj; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/normalizePseudoGlobals.js -declare module 'metro-transform-plugins/src/normalizePseudoGlobals' { - import type * as _babel_types from '@babel/types'; - export type Options = { - reservedNames: readonly string[]; - }; - function normalizePseudoglobals(ast: _babel_types.Node, options?: Options): readonly string[]; - export default normalizePseudoglobals; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-plugins/src/utils/createInlinePlatformChecks.js -declare module 'metro-transform-plugins/src/utils/createInlinePlatformChecks' { - import type { Scope } from '@babel/traverse'; - import type * as _babel_types from '@babel/types'; - type Types = typeof _babel_types; - type PlatformChecks = { - isPlatformNode: ( - node: _babel_types.MemberExpression, - scope: Scope, - isWrappedModule: boolean - ) => boolean; - isPlatformSelectNode: ( - node: _babel_types.CallExpression, - scope: Scope, - isWrappedModule: boolean - ) => boolean; - }; - function createInlinePlatformChecks(t: Types, requireName?: string): PlatformChecks; - export default createInlinePlatformChecks; -} diff --git a/packages/@expo/cli/ts-declarations/metro-transform-worker/index.d.ts b/packages/@expo/cli/ts-declarations/metro-transform-worker/index.d.ts deleted file mode 100644 index 543916f321048c..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro-transform-worker/index.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -// #region metro-transform-worker -declare module 'metro-transform-worker' { - export * from 'metro-transform-worker/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-worker/src/index.js -declare module 'metro-transform-worker/src/index' { - // NOTE(cedric): this is a manual change exporting this existing Flow type for reuse in Expo - import type * as _babel_types from '@babel/types'; - import type { CustomTransformOptions, TransformProfile } from 'metro-babel-transformer'; - import type { - BasicSourceMap, - FBSourceFunctionMap, - MetroSourceMapSegmentTuple, - } from 'metro-source-map'; - import type { TransformResultDependency } from 'metro/src/DeltaBundler'; - import type { AllowOptionalDependencies } from 'metro/src/DeltaBundler/types.flow'; - import type { DynamicRequiresBehavior } from 'metro/src/ModuleGraph/worker/collectDependencies'; - // NOTE(cedric): this is a manual change exporting this existing Flow type for reuse in Expo - export type MinifierConfig = Readonly<{ - [$$Key$$: string]: any; - }>; - export type MinifierOptions = { - code: string; - map?: null | BasicSourceMap; - filename: string; - reserved: readonly string[]; - config: MinifierConfig; - }; - export type MinifierResult = { - code: string; - map?: BasicSourceMap; - }; - export type Minifier = ($$PARAM_0$$: MinifierOptions) => MinifierResult | Promise; - export type Type = 'script' | 'module' | 'asset'; - export type JsTransformerConfig = Readonly<{ - assetPlugins: readonly string[]; - assetRegistryPath: string; - asyncRequireModulePath: string; - babelTransformerPath: string; - dynamicDepsInPackages: DynamicRequiresBehavior; - enableBabelRCLookup: boolean; - enableBabelRuntime?: boolean | string; - globalPrefix: string; - hermesParser: boolean; - minifierConfig: MinifierConfig; - minifierPath: string; - optimizationSizeLimit: number; - publicPath: string; - allowOptionalDependencies: AllowOptionalDependencies; - unstable_dependencyMapReservedName?: null | string; - unstable_disableModuleWrapping: boolean; - unstable_disableNormalizePseudoGlobals: boolean; - unstable_compactOutput: boolean; - unstable_allowRequireContext: boolean; - unstable_memoizeInlineRequires?: boolean; - unstable_nonMemoizedInlineRequires?: readonly string[]; - unstable_renameRequire?: boolean; - }>; - export type { CustomTransformOptions } from 'metro-babel-transformer'; - export type JsTransformOptions = Readonly<{ - customTransformOptions?: CustomTransformOptions; - dev: boolean; - experimentalImportSupport?: boolean; - hot: boolean; - inlinePlatform: boolean; - inlineRequires: boolean; - minify: boolean; - nonInlinedRequires?: readonly string[]; - platform?: null | string; - type: Type; - unstable_disableES6Transforms?: boolean; - unstable_memoizeInlineRequires?: boolean; - unstable_nonMemoizedInlineRequires?: readonly string[]; - unstable_transformProfile: TransformProfile; - }>; - // NOTE(cedric): this is a manual change exporting these existing Flow types for reuse in Expo - export type Path = string; - export type BaseFile = Readonly<{ - code: string; - filename: Path; - inputFileSize: number; - }>; - export type AssetFile = Readonly< - { - type: 'asset'; - } & BaseFile - >; - export type JSFileType = 'js/script' | 'js/module' | 'js/module/asset'; - export type JSFile = Readonly< - { - ast?: null | undefined | _babel_types.File; - type: JSFileType; - functionMap?: FBSourceFunctionMap | null; - unstable_importDeclarationLocs?: ReadonlySet; - } & BaseFile - >; - export type JSONFile = { - type: Type; - } & BaseFile; - export type TransformationContext = Readonly<{ - config: JsTransformerConfig; - projectRoot: Path; - options: JsTransformOptions; - }>; - // NOTE(cedric): this is a manual change exporting these existing Flow types for reuse in Expo - export type JsOutput = Readonly<{ - data: Readonly<{ - code: string; - lineCount: number; - map: MetroSourceMapSegmentTuple[]; - functionMap?: null | FBSourceFunctionMap; - }>; - type: JSFileType; - }>; - // NOTE(cedric): this is a manual change exporting this existing Flow type for reuse in Expo - export type TransformResponse = Readonly<{ - dependencies: readonly TransformResultDependency[]; - output: readonly JsOutput[]; - }>; - export { default as getCacheKey } from 'metro-cache-key'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-worker/src/utils/assetTransformer.js -declare module 'metro-transform-worker/src/utils/assetTransformer' { - import type { File } from '@babel/types'; - import type { BabelTransformerArgs } from 'metro-babel-transformer'; - export function transform( - $$PARAM_0$$: BabelTransformerArgs, - assetRegistryPath: string, - assetDataPlugins: readonly string[] - ): Promise<{ - ast: File; - }>; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro-transform-worker/src/utils/getMinifier.js -declare module 'metro-transform-worker/src/utils/getMinifier' { - import type { Minifier } from 'metro-transform-worker/src/index'; - function getMinifier(minifierPath: string): Minifier; - export default getMinifier; -} diff --git a/packages/@expo/cli/ts-declarations/metro/index.d.ts b/packages/@expo/cli/ts-declarations/metro/index.d.ts deleted file mode 100644 index 8d8b056ca5c8b5..00000000000000 --- a/packages/@expo/cli/ts-declarations/metro/index.d.ts +++ /dev/null @@ -1,3022 +0,0 @@ -// #region metro -declare module 'metro' { - export * from 'metro/src/index'; - export { default } from 'metro/src/index'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/Assets.js -declare module 'metro/src/Assets' { - export type AssetInfo = { - readonly files: string[]; - readonly hash: string; - readonly name: string; - readonly scales: number[]; - readonly type: string; - }; - export type AssetDataWithoutFiles = { - readonly __packager_asset: boolean; - readonly fileSystemLocation: string; - readonly hash: string; - readonly height?: null | number; - readonly httpServerLocation: string; - readonly name: string; - readonly scales: number[]; - readonly type: string; - readonly width?: null | number; - }; - export type AssetDataFiltered = { - readonly __packager_asset: boolean; - readonly hash: string; - readonly height?: null | number; - readonly httpServerLocation: string; - readonly name: string; - readonly scales: number[]; - readonly type: string; - readonly width?: null | number; - }; - export type AssetData = AssetDataWithoutFiles & { - readonly files: string[]; - }; - export type AssetDataPlugin = (assetData: AssetData) => AssetData | Promise; - export function getAsset( - relativePath: string, - projectRoot: string, - watchFolders: readonly string[], - platform: null | undefined | string, - assetExts: readonly string[] - ): Promise; - export function getAssetSize( - type: string, - content: Buffer, - filePath: string - ): - | null - | undefined - | { - readonly width: number; - readonly height: number; - }; - export function getAssetData( - assetPath: string, - localPath: string, - assetDataPlugins: readonly string[], - platform: null | undefined | string, - publicPath: string - ): Promise; - export function getAssetFiles( - assetPath: string, - platform?: null | undefined | string - ): Promise; - export function isAssetTypeAnImage(type: string): boolean; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/Bundler.js -declare module 'metro/src/Bundler' { - import type { TransformResultWithSource } from 'metro/src/DeltaBundler'; - import type { TransformOptions } from 'metro/src/DeltaBundler/Worker'; - import type EventEmitter from 'events'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import Transformer from 'metro/src/DeltaBundler/Transformer'; - import DependencyGraph from 'metro/src/node-haste/DependencyGraph'; - export type BundlerOptions = Readonly<{ - hasReducedPerformance?: boolean; - watch?: boolean; - }>; - class Bundler { - _depGraph: DependencyGraph; - _initializedPromise: Promise; - _transformer: Transformer; - constructor(config: ConfigT, options?: BundlerOptions); - getWatcher(): EventEmitter; - end(): Promise; - getDependencyGraph(): Promise; - transformFile( - filePath: string, - transformOptions: TransformOptions, - fileBuffer?: Buffer - ): Promise; - ready(): Promise; - } - export default Bundler; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/Bundler/util.js -declare module 'metro/src/Bundler/util' { - import type { AssetDataWithoutFiles } from 'metro/src/Assets'; - import type { ModuleTransportLike } from 'metro/src/shared/types.flow'; - import type { File } from '@babel/types'; - type SubTree = ( - moduleTransport: T, - moduleTransportsByPath: Map - ) => Iterable; - export function createRamBundleGroups( - ramGroups: readonly string[], - groupableModules: readonly T[], - subtree: SubTree - ): Map>; - export function generateAssetCodeFileAst( - assetRegistryPath: string, - assetDescriptor: AssetDataWithoutFiles - ): File; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/cli-utils.js -declare module 'metro/src/cli-utils' { - export const watchFile: (filename: string, callback: () => any) => Promise; - export const makeAsyncCommand: (command: (argv: T) => Promise) => (argv: T) => void; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/cli.js -declare module 'metro/src/cli' { - // This has no exports -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/cli/parseKeyValueParamArray.js -declare module 'metro/src/cli/parseKeyValueParamArray' { - function coerceKeyValueArray(keyValueArray: readonly string[]): { - [key: string]: string; - }; - export default coerceKeyValueArray; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/commands/build.js -// NOTE(cedric): yargs is custom-typed in metro -// declare module 'metro/src/commands/build' { -// import type { ModuleObject } from 'yargs'; -// const $$EXPORT_DEFAULT_DECLARATION$$: () => Omit< -// ModuleObject, -// keyof { -// handler: Function; -// } -// > & { -// handler: Function; -// }; -// export default $$EXPORT_DEFAULT_DECLARATION$$; -// } - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/commands/dependencies.js -// NOTE(cedric): yargs is custom-typed in metro -// declare module 'metro/src/commands/dependencies' { -// import type { ModuleObject } from 'yargs'; -// const $$EXPORT_DEFAULT_DECLARATION$$: () => Omit< -// ModuleObject, -// keyof { -// handler: Function; -// } -// > & { -// handler: Function; -// }; -// export default $$EXPORT_DEFAULT_DECLARATION$$; -// } - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/commands/serve.js -// NOTE(cedric): yargs is custom-typed in metro -// declare module 'metro/src/commands/serve' { -// import type { ModuleObject } from 'yargs'; -// const $$EXPORT_DEFAULT_DECLARATION$$: () => Omit< -// ModuleObject, -// keyof { -// handler: Function; -// } -// > & { -// handler: Function; -// }; -// export default $$EXPORT_DEFAULT_DECLARATION$$; -// } - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler.js -declare module 'metro/src/DeltaBundler' { - import type { - DeltaResult, - Graph, - MixedOutput, - Options, - ReadOnlyGraph, - } from 'metro/src/DeltaBundler/types.flow'; - import type EventEmitter from 'events'; - import DeltaCalculator from 'metro/src/DeltaBundler/DeltaCalculator'; - export type { - DeltaResult, - Graph, - Dependencies, - MixedOutput, - Module, - ReadOnlyGraph, - TransformFn, - TransformResult, - TransformResultDependency, - TransformResultWithSource, - } from 'metro/src/DeltaBundler/types.flow'; - /** - * `DeltaBundler` uses the `DeltaTransformer` to build bundle deltas. This - * module handles all the transformer instances so it can support multiple - * concurrent clients requesting their own deltas. This is done through the - * `clientId` param (which maps a client to a specific delta transformer). - */ - class DeltaBundler { - _changeEventSource: EventEmitter; - _deltaCalculators: Map, DeltaCalculator>; - constructor(changeEventSource: EventEmitter); - end(): void; - getDependencies( - entryPoints: readonly string[], - options: Options - ): Promise['dependencies']>; - buildGraph(entryPoints: readonly string[], options: Options): Promise>; - getDelta( - graph: Graph, - $$PARAM_1$$: { - reset: boolean; - shallow: boolean; - } - ): Promise>; - listen(graph: Graph, callback: () => Promise): () => void; - endGraph(graph: Graph): void; - } - export default DeltaBundler; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/buildSubgraph.js -declare module 'metro/src/DeltaBundler/buildSubgraph' { - import type { RequireContext } from 'metro/src/lib/contextModule'; - import type { - Dependency, - ModuleData, - ResolveFn, - TransformFn, - } from 'metro/src/DeltaBundler/types.flow'; - type Parameters = Readonly<{ - resolve: ResolveFn; - transform: TransformFn; - shouldTraverse: ($$PARAM_0$$: Dependency) => boolean; - }>; - export function buildSubgraph( - entryPaths: ReadonlySet, - resolvedContexts: ReadonlyMap, - $$PARAM_2$$: Parameters - ): Promise<{ - moduleData: Map>; - errors: Map; - }>; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/DeltaCalculator.js -declare module 'metro/src/DeltaBundler/DeltaCalculator' { - import type { DeltaResult, Options } from 'metro/src/DeltaBundler/types.flow'; - import { Graph } from 'metro/src/DeltaBundler/Graph'; - import { EventEmitter } from 'events'; - /** - * This class is in charge of calculating the delta of changed modules that - * happen between calls. To do so, it subscribes to file changes, so it can - * traverse the files that have been changed between calls and avoid having to - * traverse the whole dependency tree for trivial small changes. - */ - class DeltaCalculator extends EventEmitter { - _changeEventSource: EventEmitter; - _options: Options; - _currentBuildPromise: null | undefined | Promise>; - _deletedFiles: Set; - _modifiedFiles: Set; - _addedFiles: Set; - _requiresReset: any; - _graph: Graph; - constructor( - entryPoints: ReadonlySet, - changeEventSource: EventEmitter, - options: Options - ); - end(): void; - getDelta($$PARAM_0$$: { reset: boolean; shallow: boolean }): Promise>; - getGraph(): Graph; - _handleMultipleFileChanges: any; - _handleFileChange: any; - _getChangedDependencies( - modifiedFiles: Set, - deletedFiles: Set, - addedFiles: Set - ): Promise>; - } - export default DeltaCalculator; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/getTransformCacheKey.js -declare module 'metro/src/DeltaBundler/getTransformCacheKey' { - import type { TransformerConfig } from 'metro/src/DeltaBundler/Worker'; - function getTransformCacheKey(opts: { - readonly cacheVersion: string; - readonly projectRoot: string; - readonly transformerConfig: TransformerConfig; - }): string; - export default getTransformCacheKey; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Graph.js -declare module 'metro/src/DeltaBundler/Graph' { - /** - * Portions of this code are based on the Synchronous Cycle Collection - * algorithm described in: - * - * David F. Bacon and V. T. Rajan. 2001. Concurrent Cycle Collection in - * Reference Counted Systems. In Proceedings of the 15th European Conference on - * Object-Oriented Programming (ECOOP '01). Springer-Verlag, Berlin, - * Heidelberg, 207–235. - * - * Notable differences from the algorithm in the paper: - * 1. Our implementation uses the inverseDependencies set (which we already - * have to maintain) instead of a separate refcount variable. A module's - * reference count is equal to the size of its inverseDependencies set, plus - * 1 if it's an entry point of the graph. - * 2. We keep the "root buffer" (possibleCycleRoots) free of duplicates by - * making it a Set, instead of storing a "buffered" flag on each node. - * 3. On top of tracking edges between nodes, we also count references between - * nodes and entries in the importBundleNodes set. - */ - - import type { RequireContext } from 'metro/src/lib/contextModule'; - import type { - Dependencies, - Dependency, - GraphInputOptions, - MixedOutput, - Module, - ModuleData, - Options, - TransformInputOptions, - } from 'metro/src/DeltaBundler/types.flow'; - import CountingSet from 'metro/src/lib/CountingSet'; - export type Result = { - added: Map>; - modified: Map>; - deleted: Set; - }; - /** - * Internal data structure that the traversal logic uses to know which of the - * files have been modified. This allows to return the added modules before the - * modified ones (which is useful for things like Hot Module Reloading). - **/ - type Delta = Readonly<{ - added: Set; - touched: Set; - deleted: Set; - updatedModuleData: ReadonlyMap>; - baseModuleData: Map>; - errors: ReadonlyMap; - }>; - type InternalOptions = Readonly<{ - lazy: boolean; - onDependencyAdd: () => any; - onDependencyAdded: () => any; - resolve: Options['resolve']; - transform: Options['transform']; - shallow: boolean; - }>; - export class Graph { - readonly entryPoints: ReadonlySet; - readonly transformOptions: TransformInputOptions; - readonly dependencies: Dependencies; - constructor(options: GraphInputOptions); - traverseDependencies(paths: readonly string[], options: Options): Promise>; - initialTraverseDependencies(options: Options): Promise>; - _buildDelta( - pathsToVisit: ReadonlySet, - options: InternalOptions, - moduleFilter?: (path: string) => boolean - ): Promise>; - _recursivelyCommitModule( - path: string, - delta: Delta, - options: InternalOptions, - commitOptions: Readonly<{ - onlyRemove: boolean; - }> - ): Module; - _addDependency( - parentModule: Module, - key: string, - dependency: Dependency, - requireContext: null | undefined | RequireContext, - delta: Delta, - options: InternalOptions - ): void; - _removeDependency( - parentModule: Module, - key: string, - dependency: Dependency, - delta: Delta, - options: InternalOptions - ): void; - markModifiedContextModules( - filePath: string, - modifiedPaths: Set | CountingSet - ): void; - getModifiedModulesForDeletedPath(filePath: string): Iterable; - reorderGraph(options: { shallow: boolean }): void; - _reorderDependencies( - module: Module, - orderedDependencies: Map>, - options: { - shallow: boolean; - } - ): void; - _incrementImportBundleReference(dependency: Dependency, parentModule: Module): void; - _decrementImportBundleReference(dependency: Dependency, parentModule: Module): void; - _markModuleInUse(module: Module): void; - _children(module: Module, options: InternalOptions): Iterator>; - _moduleSnapshot(module: Module): ModuleData; - _releaseModule(module: Module, delta: Delta, options: InternalOptions): void; - _freeModule(module: Module, delta: Delta): void; - _markAsPossibleCycleRoot(module: Module): void; - _collectCycles(delta: Delta, options: InternalOptions): void; - _markGray(module: Module, options: InternalOptions): void; - _scan(module: Module, options: InternalOptions): void; - _scanBlack(module: Module, options: InternalOptions): void; - _collectWhite(module: Module, delta: Delta): void; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/mergeDeltas.js -declare module 'metro/src/DeltaBundler/mergeDeltas' { - import type { DeltaBundle } from 'metro-runtime/src/modules/types.flow'; - function mergeDeltas(delta1: DeltaBundle, delta2: DeltaBundle): DeltaBundle; - export default mergeDeltas; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/baseJSBundle.js -declare module 'metro/src/DeltaBundler/Serializers/baseJSBundle' { - import type { Module, ReadOnlyGraph, SerializerOptions } from 'metro/src/DeltaBundler/types.flow'; - import type { Bundle } from 'metro-runtime/src/modules/types.flow'; - function baseJSBundle( - entryPoint: string, - preModules: readonly Module[], - graph: ReadOnlyGraph, - options: SerializerOptions - ): Bundle; - export default baseJSBundle; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/getAllFiles.js -declare module 'metro/src/DeltaBundler/Serializers/getAllFiles' { - import type { Module, ReadOnlyGraph } from 'metro/src/DeltaBundler/types.flow'; - type Options = { - platform?: null | string; - readonly processModuleFilter: (module: Module) => boolean; - }; - function getAllFiles( - pre: readonly Module[], - graph: ReadOnlyGraph, - options: Options - ): Promise; - export default getAllFiles; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/getAssets.js -declare module 'metro/src/DeltaBundler/Serializers/getAssets' { - import type { AssetData } from 'metro/src/Assets'; - import type { Module, ReadOnlyDependencies } from 'metro/src/DeltaBundler/types.flow'; - type Options = { - readonly processModuleFilter: (module: Module) => boolean; - assetPlugins: readonly string[]; - platform?: null | string; - projectRoot: string; - publicPath: string; - }; - function getAssets( - dependencies: ReadOnlyDependencies, - options: Options - ): Promise; - export default getAssets; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/getExplodedSourceMap.js -declare module 'metro/src/DeltaBundler/Serializers/getExplodedSourceMap' { - import type { Module } from 'metro/src/DeltaBundler/types.flow'; - import type { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from 'metro-source-map'; - export type ExplodedSourceMap = readonly { - readonly map: MetroSourceMapSegmentTuple[]; - readonly firstLine1Based: number; - readonly functionMap?: null | FBSourceFunctionMap; - readonly path: string; - }[]; - export function getExplodedSourceMap( - modules: readonly Module[], - options: { - readonly processModuleFilter: (module: Module) => boolean; - } - ): ExplodedSourceMap; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js -declare module 'metro/src/DeltaBundler/Serializers/getRamBundleInfo' { - import type { ModuleTransportLike } from 'metro/src/shared/types.flow'; - import type { Module, ReadOnlyGraph, SerializerOptions } from 'metro/src/DeltaBundler/types.flow'; - import type { SourceMapGeneratorOptions } from 'metro/src/DeltaBundler/Serializers/sourceMapGenerator'; - import type { GetTransformOptions } from 'metro-config/src/configTypes.flow'; - type Options = Readonly< - { - getTransformOptions?: null | GetTransformOptions; - platform?: null | string; - } & SerializerOptions & - SourceMapGeneratorOptions - >; - export type RamBundleInfo = { - getDependencies: ($$PARAM_0$$: string) => Set; - startupModules: readonly ModuleTransportLike[]; - lazyModules: readonly ModuleTransportLike[]; - groups: Map>; - }; - function getRamBundleInfo( - entryPoint: string, - pre: readonly Module[], - graph: ReadOnlyGraph, - options: Options - ): Promise; - export default getRamBundleInfo; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js -declare module 'metro/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL' { - function getInlineSourceMappingURL(sourceMap: string): string; - export default getInlineSourceMappingURL; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js -declare module 'metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo' { - import type { Module } from 'metro/src/DeltaBundler/types.flow'; - import type { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from 'metro-source-map'; - function getSourceMapInfo( - module: Module, - options: { - readonly excludeSource: boolean; - readonly shouldAddToIgnoreList: ($$PARAM_0$$: Module) => boolean; - getSourceUrl?: null | ((module: Module) => string); - } - ): { - readonly map: MetroSourceMapSegmentTuple[]; - readonly functionMap?: null | FBSourceFunctionMap; - readonly code: string; - readonly path: string; - readonly source: string; - readonly lineCount: number; - readonly isIgnored: boolean; - }; - export default getSourceMapInfo; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js -declare module 'metro/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies' { - import type { ReadOnlyGraph } from 'metro/src/DeltaBundler/types.flow'; - function getTransitiveDependencies(path: string, graph: ReadOnlyGraph): Set; - export default getTransitiveDependencies; -} - -// NOTE(cedric): this is a workaround for a jest-resolve bug to import this file with explicit extension -// See: https://github.com/lukeed/resolve.exports/issues/40 -declare module 'metro/src/DeltaBundler/Serializers/helpers/js.js' { - export * from 'metro/src/DeltaBundler/Serializers/helpers/js'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/helpers/js.js -declare module 'metro/src/DeltaBundler/Serializers/helpers/js' { - import type { MixedOutput, Module } from 'metro/src/DeltaBundler/types.flow'; - import type { JsOutput } from 'metro-transform-worker'; - export type Options = Readonly<{ - createModuleId: ($$PARAM_0$$: string) => number | string; - dev: boolean; - includeAsyncPaths: boolean; - projectRoot: string; - serverRoot: string; - sourceUrl?: null | string; - }>; - export function getJsOutput( - module: Readonly<{ - output: readonly MixedOutput[]; - path?: string; - }> - ): JsOutput; - export function getModuleParams(module: Module, options: Options): any[]; - export function isJsModule(module: Module): boolean; - export function wrapModule(module: Module, options: Options): string; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/helpers/processModules.js -declare module 'metro/src/DeltaBundler/Serializers/helpers/processModules' { - import type { Module } from 'metro/src/DeltaBundler/types.flow'; - function processModules( - modules: readonly Module[], - $$PARAM_1$$: Readonly<{ - filter?: (module: Module) => boolean; - createModuleId: ($$PARAM_0$$: string) => number; - dev: boolean; - includeAsyncPaths: boolean; - projectRoot: string; - serverRoot: string; - sourceUrl?: null | string; - }> - ): readonly [Module, string][]; - export default processModules; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/hmrJSBundle.js -declare module 'metro/src/DeltaBundler/Serializers/hmrJSBundle' { - import type { EntryPointURL } from 'metro/src/HmrServer'; - import type { DeltaResult, ReadOnlyGraph } from 'metro/src/DeltaBundler/types.flow'; - import type { HmrModule } from 'metro-runtime/src/modules/types.flow'; - type Options = Readonly<{ - clientUrl: EntryPointURL; - createModuleId: ($$PARAM_0$$: string) => number; - includeAsyncPaths: boolean; - projectRoot: string; - serverRoot: string; - }>; - function hmrJSBundle( - delta: DeltaResult, - graph: ReadOnlyGraph, - options: Options - ): { - readonly added: readonly HmrModule[]; - readonly deleted: readonly number[]; - readonly modified: readonly HmrModule[]; - }; - export default hmrJSBundle; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js -declare module 'metro/src/DeltaBundler/Serializers/sourceMapGenerator' { - import type { Module } from 'metro/src/DeltaBundler/types.flow'; - import { fromRawMappings, fromRawMappingsNonBlocking } from 'metro-source-map'; - export type SourceMapGeneratorOptions = Readonly<{ - excludeSource: boolean; - processModuleFilter: (module: Module) => boolean; - shouldAddToIgnoreList: (module: Module) => boolean; - getSourceUrl?: null | ((module: Module) => string); - }>; - export function sourceMapGenerator( - modules: readonly Module[], - options: SourceMapGeneratorOptions - ): ReturnType; - export function sourceMapGeneratorNonBlocking( - modules: readonly Module[], - options: SourceMapGeneratorOptions - ): ReturnType; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/sourceMapObject.js -declare module 'metro/src/DeltaBundler/Serializers/sourceMapObject' { - import type { Module } from 'metro/src/DeltaBundler/types.flow'; - import type { SourceMapGeneratorOptions } from 'metro/src/DeltaBundler/Serializers/sourceMapGenerator'; - import type { MixedSourceMap } from 'metro-source-map'; - export function sourceMapObject( - modules: readonly Module[], - options: SourceMapGeneratorOptions - ): MixedSourceMap; - export function sourceMapObjectNonBlocking( - modules: readonly Module[], - options: SourceMapGeneratorOptions - ): Promise; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Serializers/sourceMapString.js -declare module 'metro/src/DeltaBundler/Serializers/sourceMapString' { - import type { Module } from 'metro/src/DeltaBundler/types.flow'; - import type { SourceMapGeneratorOptions } from 'metro/src/DeltaBundler/Serializers/sourceMapGenerator'; - export function sourceMapString( - modules: readonly Module[], - options: SourceMapGeneratorOptions - ): string; - export function sourceMapStringNonBlocking( - modules: readonly Module[], - options: SourceMapGeneratorOptions - ): Promise; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Transformer.js -declare module 'metro/src/DeltaBundler/Transformer' { - import type { TransformResult, TransformResultWithSource } from 'metro/src/DeltaBundler'; - import type { TransformOptions } from 'metro/src/DeltaBundler/Worker'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import WorkerFarm from 'metro/src/DeltaBundler/WorkerFarm'; - import { Cache } from 'metro-cache'; - type GetOrComputeSha1Fn = ($$PARAM_0$$: string) => Promise<{ - content?: Buffer; - sha1: string; - }>; - class Transformer { - _config: ConfigT; - _cache: Cache; - _baseHash: string; - _getSha1: GetOrComputeSha1Fn; - _workerFarm: WorkerFarm; - constructor( - config: ConfigT, - opts: Readonly<{ - getOrComputeSha1: GetOrComputeSha1Fn; - }> - ); - transformFile( - filePath: string, - transformerOptions: TransformOptions, - fileBuffer?: Buffer - ): Promise; - end(): Promise; - } - export default Transformer; -} - -// NOTE(cedric): this is a manual change, to avoid having to import `../types.flow` -declare module 'metro/src/DeltaBundler/types' { - export * from 'metro/src/DeltaBundler/types.flow'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/types.flow.js -declare module 'metro/src/DeltaBundler/types.flow' { - import type * as _babel_types from '@babel/types'; - import type { RequireContext } from 'metro/src/lib/contextModule'; - import type { RequireContextParams } from 'metro/src/ModuleGraph/worker/collectDependencies'; - import type { Graph } from 'metro/src/DeltaBundler/Graph'; - import type { JsTransformOptions } from 'metro-transform-worker'; - import CountingSet from 'metro/src/lib/CountingSet'; - export type MixedOutput = { - readonly data: any; - readonly type: string; - }; - // NOTE(cedric): this is a manual change for worker support through `require.unstable_resolveWorker()` - export type AsyncDependencyType = 'async' | 'maybeSync' | 'prefetch' | 'weak' | 'worker'; - // export type AsyncDependencyType = 'async' | 'maybeSync' | 'prefetch' | 'weak'; - export type TransformResultDependency = Readonly<{ - /** - * The literal name provided to a require or import call. For example 'foo' in - * case of `require('foo')`. - */ - name: string; - /** - * Extra data returned by the dependency extractor. - */ - data: Readonly<{ - /** - * A locally unique key for this dependency within the current module. - */ - key: string; - /** - * If not null, this dependency is due to a dynamic `import()` or `__prefetchImport()` call. - */ - asyncType?: AsyncDependencyType | null; - /** - * True if the dependency is declared with a static "import x from 'y'" or - * an import() call. - */ - isESMImport: boolean; - /** - * The dependency is enclosed in a try/catch block. - */ - isOptional?: boolean; - locs: readonly _babel_types.SourceLocation[]; - /** Context for requiring a collection of modules. */ - contextParams?: RequireContextParams; - }>; - }>; - export type Dependency = Readonly<{ - absolutePath: string; - data: TransformResultDependency; - }>; - export type Module = Readonly<{ - dependencies: Map; - inverseDependencies: CountingSet; - output: readonly T[]; - path: string; - getSource: () => Buffer; - unstable_transformResultKey?: null | undefined | string; - }>; - export type ModuleData = Readonly<{ - dependencies: ReadonlyMap; - resolvedContexts: ReadonlyMap; - output: readonly T[]; - getSource: () => Buffer; - unstable_transformResultKey?: null | undefined | string; - }>; - export type Dependencies = Map>; - export type ReadOnlyDependencies = ReadonlyMap>; - export type TransformInputOptions = Pick< - JsTransformOptions, - Exclude< - keyof JsTransformOptions, - keyof { - inlinePlatform: boolean; - inlineRequires: boolean; - } - > - >; - export type GraphInputOptions = Readonly<{ - entryPoints: ReadonlySet; - transformOptions: TransformInputOptions; - }>; - export interface ReadOnlyGraph { - readonly entryPoints: ReadonlySet; - readonly transformOptions: Readonly; - readonly dependencies: ReadOnlyDependencies; - } - export type { Graph }; - export type TransformResult = Readonly<{ - dependencies: readonly TransformResultDependency[]; - output: readonly T[]; - unstable_transformResultKey?: null | undefined | string; - }>; - export type TransformResultWithSource = Readonly< - { - getSource: () => Buffer; - } & TransformResult - >; - export type TransformFn = ( - $$PARAM_0$$: string, - $$PARAM_1$$: null | undefined | RequireContext - ) => Promise>; - export type ResolveFn = ( - from: string, - dependency: TransformResultDependency - ) => BundlerResolution; - export type AllowOptionalDependenciesWithOptions = { - readonly exclude: string[]; - }; - export type AllowOptionalDependencies = boolean | AllowOptionalDependenciesWithOptions; - export type BundlerResolution = Readonly<{ - type: 'sourceFile'; - filePath: string; - }>; - export type Options = { - readonly resolve: ResolveFn; - readonly transform: TransformFn; - readonly transformOptions: TransformInputOptions; - readonly onProgress?: null | ((numProcessed: number, total: number) => any); - readonly lazy: boolean; - readonly unstable_allowRequireContext: boolean; - readonly unstable_enablePackageExports: boolean; - readonly shallow: boolean; - }; - export type DeltaResult = { - readonly added: Map>; - readonly modified: Map>; - readonly deleted: Set; - readonly reset: boolean; - }; - export type SerializerOptions = Readonly<{ - asyncRequireModulePath: string; - createModuleId: ($$PARAM_0$$: string) => number; - dev: boolean; - getRunModuleStatement: ($$PARAM_0$$: number | string) => string; - includeAsyncPaths: boolean; - inlineSourceMap?: null | boolean; - modulesOnly: boolean; - processModuleFilter: (module: Module) => boolean; - projectRoot: string; - runBeforeMainModule: readonly string[]; - runModule: boolean; - serverRoot: string; - shouldAddToIgnoreList: ($$PARAM_0$$: Module) => boolean; - sourceMapUrl?: null | string; - sourceUrl?: null | string; - getSourceUrl?: null | (($$PARAM_0$$: Module) => string); - }>; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Worker.js -declare module 'metro/src/DeltaBundler/Worker' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Worker.js - - // NOTE(cedric): Metro uses this weird Flow syntax /*:: */ to override the exported types... - export * from 'metro/src/DeltaBundler/Worker.flow'; - export { default } from 'metro/src/DeltaBundler/Worker.flow'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/Worker.flow.js -declare module 'metro/src/DeltaBundler/Worker.flow' { - import type { TransformResult } from 'metro/src/DeltaBundler/types.flow'; - import type { LogEntry } from 'metro-core/src/Logger'; - import type { JsTransformerConfig, JsTransformOptions } from 'metro-transform-worker'; - export type { JsTransformOptions as TransformOptions } from 'metro-transform-worker'; - export type Worker = { - readonly transform: typeof transform; - }; - export type TransformerConfig = { - transformerPath: string; - transformerConfig: JsTransformerConfig; - }; - type Data = Readonly<{ - result: TransformResult; - sha1: string; - transformFileStartLogEntry: LogEntry; - transformFileEndLogEntry: LogEntry; - }>; - function transform( - filename: string, - transformOptions: JsTransformOptions, - projectRoot: string, - transformerConfig: TransformerConfig, - fileBuffer?: Buffer - ): Promise; - const $$EXPORT_DEFAULT_DECLARATION$$: Worker; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/DeltaBundler/WorkerFarm.js -declare module 'metro/src/DeltaBundler/WorkerFarm' { - import type { TransformResult } from 'metro/src/DeltaBundler'; - import type { TransformerConfig, TransformOptions, Worker } from 'metro/src/DeltaBundler/Worker'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import type { Readable } from 'stream'; - type WorkerInterface = { - getStdout(): Readable; - getStderr(): Readable; - end(): void; - } & Worker; - type TransformerResult = Readonly<{ - result: TransformResult; - sha1: string; - }>; - class WorkerFarm { - _config: ConfigT; - _transformerConfig: TransformerConfig; - _worker: WorkerInterface | Worker; - constructor(config: ConfigT, transformerConfig: TransformerConfig); - kill(): Promise; - transform( - filename: string, - options: TransformOptions, - fileBuffer?: Buffer - ): Promise; - _makeFarm( - absoluteWorkerPath: string, - exposedMethods: readonly string[], - numWorkers: number - ): any; - _computeWorkerKey(method: string, filename: string): null | undefined | string; - _formatGenericError(err: any, filename: string): TransformError; - _formatBabelError(err: any, filename: string): TransformError; - } - class TransformError extends SyntaxError { - type: string; - constructor(message: string); - } - export default WorkerFarm; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/HmrServer.js -declare module 'metro/src/HmrServer' { - import type { GraphOptions } from 'metro/src/shared/types.flow'; - import type { ConfigT, RootPerfLogger } from 'metro-config'; - import type { HmrErrorMessage, HmrUpdateMessage } from 'metro-runtime/src/modules/types.flow'; - import type { UrlWithParsedQuery } from 'url'; - import type IncrementalBundler from 'metro/src/IncrementalBundler'; - import type { RevisionId } from 'metro/src/IncrementalBundler'; - export type EntryPointURL = UrlWithParsedQuery; - export type Client = { - optedIntoHMR: boolean; - revisionIds: RevisionId[]; - readonly sendFn: ($$PARAM_0$$: string) => void; - }; - type ClientGroup = { - readonly clients: Set; - clientUrl: EntryPointURL; - revisionId: RevisionId; - readonly unlisten: () => void; - readonly graphOptions: GraphOptions; - }; - /** - * The HmrServer (Hot Module Reloading) implements a lightweight interface - * to communicate easily to the logic in the React Native repository (which - * is the one that handles the Web Socket connections). - * - * This interface allows the HmrServer to hook its own logic to WS clients - * getting connected, disconnected or having errors (through the - * `onClientConnect`, `onClientDisconnect` and `onClientError` methods). - */ - class HmrServer { - _config: ConfigT; - _bundler: IncrementalBundler; - _createModuleId: (path: string) => number; - _clientGroups: Map; - constructor( - bundler: IncrementalBundler, - createModuleId: (path: string) => number, - config: ConfigT - ); - onClientConnect: (requestUrl: string, sendFn: (data: string) => void) => Promise; - _registerEntryPoint( - client: Client, - requestUrl: string, - sendFn: (data: string) => void - ): Promise; - onClientMessage: ( - client: TClient, - message: string | Buffer | ArrayBuffer | Buffer[], - sendFn: (data: string) => void - ) => Promise; - onClientError: (client: TClient, e: ErrorEvent) => void; - onClientDisconnect: (client: TClient) => void; - _handleFileChange( - group: ClientGroup, - options: { - isInitialUpdate: boolean; - }, - changeEvent: - | null - | undefined - | { - logger?: null | RootPerfLogger; - } - ): Promise; - _prepareMessage( - group: ClientGroup, - options: { - isInitialUpdate: boolean; - }, - changeEvent: - | null - | undefined - | { - logger?: null | RootPerfLogger; - } - ): Promise; - } - export default HmrServer; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/IncrementalBundler.js -declare module 'metro/src/IncrementalBundler' { - import type { DeltaResult, Graph, Module } from 'metro/src/DeltaBundler'; - import type { - Options as DeltaBundlerOptions, - ReadOnlyDependencies, - TransformInputOptions, - } from 'metro/src/DeltaBundler/types.flow'; - import type { GraphId } from 'metro/src/lib/getGraphId'; - import type { ResolverInputOptions } from 'metro/src/shared/types.flow'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import Bundler from 'metro/src/Bundler'; - import DeltaBundler from 'metro/src/DeltaBundler'; - export type RevisionId = string; - export type OutputGraph = Graph; - type OtherOptions = Readonly<{ - onProgress: DeltaBundlerOptions['onProgress']; - shallow: boolean; - lazy: boolean; - }>; - export type GraphRevision = { - readonly id: RevisionId; - readonly date: Date; - readonly graphId: GraphId; - readonly graph: OutputGraph; - readonly prepend: readonly Module[]; - }; - export type IncrementalBundlerOptions = Readonly<{ - hasReducedPerformance?: boolean; - watch?: boolean; - }>; - class IncrementalBundler { - _config: ConfigT; - _bundler: Bundler; - _deltaBundler: DeltaBundler; - _revisionsById: Map>; - _revisionsByGraphId: Map>; - static revisionIdFromString: (str: string) => RevisionId; - constructor(config: ConfigT, options?: IncrementalBundlerOptions); - end(): Promise; - getBundler(): Bundler; - getDeltaBundler(): DeltaBundler; - getRevision(revisionId: RevisionId): null | undefined | Promise; - getRevisionByGraphId(graphId: GraphId): null | undefined | Promise; - buildGraphForEntries( - entryFiles: readonly string[], - transformOptions: TransformInputOptions, - resolverOptions: ResolverInputOptions, - otherOptions?: OtherOptions - ): Promise; - getDependencies( - entryFiles: readonly string[], - transformOptions: TransformInputOptions, - resolverOptions: ResolverInputOptions, - otherOptions?: OtherOptions - ): Promise; - buildGraph( - entryFile: string, - transformOptions: TransformInputOptions, - resolverOptions: ResolverInputOptions, - otherOptions?: OtherOptions - ): Promise<{ - readonly graph: OutputGraph; - readonly prepend: readonly Module[]; - }>; - initializeGraph( - entryFile: string, - transformOptions: TransformInputOptions, - resolverOptions: ResolverInputOptions, - otherOptions?: OtherOptions - ): Promise<{ - delta: DeltaResult; - revision: GraphRevision; - }>; - updateGraph( - revision: GraphRevision, - reset: boolean - ): Promise<{ - delta: DeltaResult; - revision: GraphRevision; - }>; - endGraph(graphId: GraphId): Promise; - _getAbsoluteEntryFiles(entryFiles: readonly string[]): Promise; - ready(): Promise; - } - export default IncrementalBundler; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/IncrementalBundler/GraphNotFoundError.js -declare module 'metro/src/IncrementalBundler/GraphNotFoundError' { - import type { GraphId } from 'metro/src/lib/getGraphId'; - class GraphNotFoundError extends Error { - graphId: GraphId; - constructor(graphId: GraphId); - } - export default GraphNotFoundError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/IncrementalBundler/ResourceNotFoundError.js -declare module 'metro/src/IncrementalBundler/ResourceNotFoundError' { - class ResourceNotFoundError extends Error { - resourcePath: string; - constructor(resourcePath: string); - } - export default ResourceNotFoundError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/IncrementalBundler/RevisionNotFoundError.js -declare module 'metro/src/IncrementalBundler/RevisionNotFoundError' { - import type { RevisionId } from 'metro/src/IncrementalBundler'; - class RevisionNotFoundError extends Error { - revisionId: RevisionId; - constructor(revisionId: RevisionId); - } - export default RevisionNotFoundError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/index.js -declare module 'metro/src/index' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/index.js - - // NOTE(cedric): Metro uses this weird Flow syntax /*:: */ to override the exported types... - export * from 'metro/src/index.flow'; - - // NOTE(cedric): these are exported in Metro's own custom `index.d.ts` - export * from 'metro/src/Assets'; // lmao, the typo - export * from 'metro/src/DeltaBundler/types.flow'; - // NOTE(cedric): only exporting select types due to type conflicts - export { - Dependency, - ContextMode, - RequireContextParams, - MutableInternalDependency, - InternalDependency, - State, - Options, - CollectedDependencies, - DependencyTransformer, - DynamicRequiresBehavior, - ImportQualifier, - } from 'metro/src/ModuleGraph/worker/collectDependencies'; - export * from 'metro/src/Server'; - export * from 'metro/src/lib/reporting'; - - // NOTE(cedric): add this since we had this already, might be nice to deprecate - export { default as Server } from 'metro/src/Server'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/index.flow.js -declare module 'metro/src/index.flow' { - import type * as _ws from 'ws'; - import type { ReadOnlyGraph } from 'metro/src/DeltaBundler'; - import type { ServerOptions } from 'metro/src/Server'; - import type { OutputOptions, RequestOptions } from 'metro/src/shared/types.flow'; - import type { HandleFunction } from 'connect'; - import type { Server as HttpServer } from 'http'; - import type { Server as HttpsServer } from 'https'; - import type { - ConfigT, - InputConfigT, - MetroConfig, - Middleware, - } from 'metro-config/src/configTypes.flow'; - import type { CustomResolverOptions } from 'metro-resolver'; - import type { CustomTransformOptions } from 'metro-transform-worker'; - import type $$IMPORT_TYPEOF_1$$ from 'yargs'; - type Yargs = typeof $$IMPORT_TYPEOF_1$$; - import MetroServer from 'metro/src/Server'; - type MetroMiddleWare = { - attachHmrServer: (httpServer: HttpServer | HttpsServer) => void; - end: () => Promise; - metroServer: MetroServer; - middleware: Middleware; - }; - export type RunMetroOptions = { - waitForBundler?: boolean; - } & ServerOptions; - export type RunServerOptions = Readonly<{ - hasReducedPerformance?: boolean; - host?: string; - onError?: ( - $$PARAM_0$$: Error & { - code?: string; - } - ) => void; - onReady?: (server: HttpServer | HttpsServer) => void; - onClose?: () => void; - secureServerOptions?: object; - secure?: boolean; - secureCert?: string; - secureKey?: string; - unstable_extraMiddleware?: readonly HandleFunction[]; - waitForBundler?: boolean; - watch?: boolean; - websocketEndpoints?: Readonly<{ - [path: string]: _ws.WebSocketServer; - }>; - }>; - type BuildGraphOptions = { - entries: readonly string[]; - customTransformOptions?: CustomTransformOptions; - dev?: boolean; - minify?: boolean; - onProgress?: (transformedFileCount: number, totalFileCount: number) => void; - platform?: string; - type?: 'module' | 'script'; - }; - export type RunBuildOptions = { - entry: string; - dev?: boolean; - out?: string; - onBegin?: () => void; - onComplete?: () => void; - onProgress?: (transformedFileCount: number, totalFileCount: number) => void; - minify?: boolean; - output?: Readonly<{ - build: ( - $$PARAM_0$$: MetroServer, - $$PARAM_1$$: RequestOptions - ) => Promise<{ - code: string; - map: string; - }>; - save: ( - $$PARAM_0$$: { - code: string; - map: string; - }, - $$PARAM_1$$: OutputOptions, - $$PARAM_2$$: (logMessage: string) => void - ) => Promise; - }>; - platform?: string; - sourceMap?: boolean; - sourceMapUrl?: string; - customResolverOptions?: CustomResolverOptions; - customTransformOptions?: CustomTransformOptions; - }; - type BuildCommandOptions = object | null; - type ServeCommandOptions = object | null; - export type { MetroConfig }; - type AttachMetroCLIOptions = { - build?: BuildCommandOptions; - serve?: ServeCommandOptions; - dependencies?: any; - }; - export { Terminal } from 'metro-core'; - export { default as TerminalReporter } from 'metro/src/lib/TerminalReporter'; - export function runMetro(config: InputConfigT, options?: RunMetroOptions): void; - export { loadConfig } from 'metro-config'; - export { mergeConfig } from 'metro-config'; - export { resolveConfig } from 'metro-config'; - export let createConnectMiddleware: ( - config: ConfigT, - options?: RunMetroOptions - ) => Promise; - export const runServer: ( - config: ConfigT, - $$PARAM_1$$: RunServerOptions - ) => Promise; - export const runBuild: ( - config: ConfigT, - $$PARAM_1$$: RunBuildOptions - ) => Promise<{ - code: string; - map: string; - }>; - export const buildGraph: ( - config: InputConfigT, - $$PARAM_1$$: BuildGraphOptions - ) => Promise; - export const attachMetroCli: (yargs: Yargs, options?: AttachMetroCLIOptions) => Yargs; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/BatchProcessor.js -declare module 'metro/src/lib/BatchProcessor' { - type ProcessBatch = (batch: TItem[]) => Promise; - type BatchProcessorOptions = { - maximumDelayMs: number; - maximumItems: number; - concurrency: number; - }; - type QueueItem = { - item: TItem; - reject: (error: any) => any; - resolve: (result: TResult) => any; - }; - /** - * We batch items together trying to minimize their processing, for example as - * network queries. For that we wait a small moment before processing a batch. - * We limit also the number of items we try to process in a single batch so that - * if we have many items pending in a short amount of time, we can start - * processing right away. - */ - class BatchProcessor { - _currentProcessCount: number; - _options: BatchProcessorOptions; - _processBatch: ProcessBatch; - _queue: QueueItem[]; - _timeoutHandle: null | undefined | NodeJS.Timeout; - constructor(options: BatchProcessorOptions, processBatch: ProcessBatch); - _onBatchFinished(): void; - _onBatchResults(jobs: QueueItem[], results: TResult[]): void; - _onBatchError(jobs: QueueItem[], error: any): void; - _processQueue(): void; - _processQueueOnceReady(): void; - queue(item: TItem): Promise; - getQueueLength(): number; - } - export default BatchProcessor; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/bundleToString.js -declare module 'metro/src/lib/bundleToString' { - import type { Bundle, BundleMetadata } from 'metro-runtime/src/modules/types.flow'; - /** - * Serializes a bundle into a plain JS bundle. - */ - function bundleToString(bundle: Bundle): { - readonly code: string; - readonly metadata: BundleMetadata; - }; - export default bundleToString; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/contextModule.js -declare module 'metro/src/lib/contextModule' { - import type { - ContextMode, - RequireContextParams, - } from 'metro/src/ModuleGraph/worker/collectDependencies'; - export type RequireContext = Readonly<{ - recursive: boolean; - filter: RegExp; - /** Mode for resolving dynamic dependencies. Defaults to `sync` */ - mode: ContextMode; - /** Absolute path of the directory to search in */ - from: string; - }>; - /** Given a fully qualified require context, return a virtual file path that ensures uniqueness between paths with different contexts. */ - export function deriveAbsolutePathFromContext( - from: string, - context: RequireContextParams - ): string; - /** Match a file against a require context. */ - export function fileMatchesContext(testPath: string, context: RequireContext): boolean; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/contextModuleTemplates.js -declare module 'metro/src/lib/contextModuleTemplates' { - import type { ContextMode } from 'metro/src/ModuleGraph/worker/collectDependencies'; - /** - * Generate a context module as a virtual file string. - * - * @prop {ContextMode} mode indicates how the modules should be loaded. - * @prop {string} modulePath virtual file path for the virtual module. Example: `require.context('./src')` -> `'/path/to/project/src'`. - * @prop {string[]} files list of absolute file paths that must be exported from the context module. Example: `['/path/to/project/src/index.js']`. - * - * @returns a string representing a context module (virtual file contents). - */ - export function getContextModuleTemplate( - mode: ContextMode, - modulePath: string, - files: string[] - ): string; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/CountingSet.js -declare module 'metro/src/lib/CountingSet' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/CountingSet.js - - export interface ReadOnlyCountingSet extends Iterable { - get size(): number; - has(item: T): boolean; - [Symbol.iterator](): Iterator; // NOTE(cedric): Flow doesn't like this, and causes failures when converting to TSD - count(item: T): number; - forEach( - callbackFn: (this: ThisT, value: T, key: T, set: ReadOnlyCountingSet) => any, - // NOTE: Should be optional, but Flow seems happy to infer undefined here - // which is what we want. - thisArg: ThisT - ): void; - } - - /** - * A Set that only deletes a given item when the number of delete(item) calls - * matches the number of add(item) calls. Iteration and `size` are in terms of - * *unique* items. - */ - export default class CountingSet implements ReadOnlyCountingSet { - constructor(items?: Iterable); - has(item: T): boolean; - add(item: T): void; - delete(item: T): void; - keys(): Iterator; - values(): Iterator; - entries(): Iterator<[T, T]>; - [Symbol.iterator](): Iterator; // NOTE(cedric): Flow doesn't like this, and causes failures when converting to TSD - get size(): number; - count(item: T): number; - clear(): void; - forEach( - callbackFn: (this: ThisT, value: T, key: T, set: CountingSet) => any, - thisArg: ThisT - ): void; - /** - * For Jest purposes. Ideally a custom serializer would be enough, but in - * practice there is hardcoded magic for Set in toEqual (etc) that we cannot - * extend to custom collection classes. Instead let's assume values are - * sortable ( = strings) and make this look like an array with some stable - * order. - */ - toJSON(): any; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/countLines.js -declare module 'metro/src/lib/countLines' { - const countLines: (string: string) => number; - export default countLines; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/createModuleIdFactory.js -declare module 'metro/src/lib/createModuleIdFactory' { - function createModuleIdFactory(): (path: string) => number; - export default createModuleIdFactory; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/createWebsocketServer.js -declare module 'metro/src/lib/createWebsocketServer' { - import ws from 'ws'; - type WebsocketServiceInterface = { - readonly onClientConnect: ( - url: string, - sendFn: (data: string) => void - ) => Promise; - readonly onClientDisconnect?: (client: T) => any; - readonly onClientError?: (client: T, e: ErrorEvent) => any; - readonly onClientMessage?: ( - client: T, - message: string | Buffer | ArrayBuffer | Buffer[], - sendFn: (data: string) => void - ) => any; - }; - type HMROptions = { - websocketServer: WebsocketServiceInterface; - }; - /** - * Returns a WebSocketServer to be attached to an existing HTTP instance. It forwards - * the received events on the given "websocketServer" parameter. It must be an - * object with the following fields: - * - * - onClientConnect - * - onClientError - * - onClientMessage - * - onClientDisconnect - */ - const $$EXPORT_DEFAULT_DECLARATION$$: ( - $$PARAM_0$$: HMROptions - ) => ws.Server; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/debounceAsyncQueue.js -declare module 'metro/src/lib/debounceAsyncQueue' { - function debounceAsyncQueue(fn: () => Promise, delay: number): () => Promise; - export default debounceAsyncQueue; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/formatBundlingError.js -declare module 'metro/src/lib/formatBundlingError' { - import type { FormattedError } from 'metro-runtime/src/modules/types.flow'; - export type CustomError = Error & { - type?: string; - filename?: string; - lineNumber?: number; - errors?: { - description: string; - filename: string; - lineNumber: number; - }[]; - }; - function formatBundlingError(error: CustomError): FormattedError; - export default formatBundlingError; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/getAppendScripts.js -declare module 'metro/src/lib/getAppendScripts' { - import type { Module } from 'metro/src/DeltaBundler'; - type Options = Readonly<{ - asyncRequireModulePath: string; - createModuleId: ($$PARAM_0$$: string) => T; - getRunModuleStatement: ($$PARAM_0$$: T) => string; - inlineSourceMap?: null | boolean; - runBeforeMainModule: readonly string[]; - runModule: boolean; - shouldAddToIgnoreList: ($$PARAM_0$$: Module) => boolean; - sourceMapUrl?: null | string; - sourceUrl?: null | string; - getSourceUrl?: null | (($$PARAM_0$$: Module) => string); - }>; - function getAppendScripts( - entryPoint: string, - modules: readonly Module[], - options: Options - ): readonly Module[]; - export default getAppendScripts; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/getGraphId.js -declare module 'metro/src/lib/getGraphId' { - import type { TransformInputOptions } from 'metro/src/DeltaBundler/types.flow'; - import type { ResolverInputOptions } from 'metro/src/shared/types.flow'; - export type GraphId = string; - function getGraphId( - entryFile: string, - options: TransformInputOptions, - $$PARAM_2$$: Readonly<{ - shallow: boolean; - lazy: boolean; - unstable_allowRequireContext: boolean; - resolverOptions: ResolverInputOptions; - }> - ): GraphId; - export default getGraphId; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/getMaxWorkers.js -declare module 'metro/src/lib/getMaxWorkers' { - const $$EXPORT_DEFAULT_DECLARATION$$: (workers: null | undefined | number) => number; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/getPreludeCode.js -declare module 'metro/src/lib/getPreludeCode' { - function getPreludeCode($$PARAM_0$$: { - readonly extraVars?: { - [$$Key$$: string]: any; - }; - readonly isDev: boolean; - readonly globalPrefix: string; - readonly requireCycleIgnorePatterns: readonly RegExp[]; - }): string; - export default getPreludeCode; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/getPrependedScripts.js -declare module 'metro/src/lib/getPrependedScripts' { - import type Bundler from 'metro/src/Bundler'; - import type { TransformInputOptions } from 'metro/src/DeltaBundler/types.flow'; - import type { ResolverInputOptions } from 'metro/src/shared/types.flow'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import type DeltaBundler from 'metro/src/DeltaBundler'; - import type { Module } from 'metro/src/DeltaBundler'; - function getPrependedScripts( - config: ConfigT, - options: Pick< - TransformInputOptions, - Exclude< - keyof TransformInputOptions, - keyof { - type: TransformInputOptions['type']; - } - > - >, - resolverOptions: ResolverInputOptions, - bundler: Bundler, - deltaBundler: DeltaBundler - ): Promise; - export default getPrependedScripts; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/JsonReporter.js -declare module 'metro/src/lib/JsonReporter' { - import type { Writable } from 'stream'; - export type SerializedError = { - message: string; - stack: string; - errors?: readonly SerializedError[]; - cause?: SerializedError; - }; - export type SerializedEvent< - TEvent extends { - [$$Key$$: string]: any; - }, - > = any; - class JsonReporter< - TEvent extends { - [$$Key$$: string]: any; - }, - > { - _stream: Writable; - constructor(stream: Writable); - update(event: TEvent): void; - } - export default JsonReporter; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/logToConsole.js -declare module 'metro/src/lib/logToConsole' { - import type { Terminal } from 'metro-core'; - const $$EXPORT_DEFAULT_DECLARATION$$: ( - terminal: Terminal, - level: string, - mode: 'BRIDGE' | 'NOBRIDGE', - ...data: unknown[] - ) => void; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/parseCustomResolverOptions.js -declare module 'metro/src/lib/parseCustomResolverOptions' { - import type { CustomResolverOptions } from 'metro-resolver/src/types'; - const $$EXPORT_DEFAULT_DECLARATION$$: (urlObj: { - readonly query?: { - [$$Key$$: string]: string; - }; - }) => CustomResolverOptions; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/parseCustomTransformOptions.js -declare module 'metro/src/lib/parseCustomTransformOptions' { - import type { CustomTransformOptions } from 'metro-transform-worker'; - const $$EXPORT_DEFAULT_DECLARATION$$: (urlObj: { - readonly query?: { - [$$Key$$: string]: string; - }; - }) => CustomTransformOptions; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/parseOptionsFromUrl.js -declare module 'metro/src/lib/parseOptionsFromUrl' { - import type { BundleOptions } from 'metro/src/shared/types.flow'; - const $$EXPORT_DEFAULT_DECLARATION$$: ( - normalizedRequestUrl: string, - platforms: Set - ) => BundleOptions; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/RamBundleParser.js -declare module 'metro/src/lib/RamBundleParser' { - /** - * Implementation of a RAM bundle parser in JS. - * - * It receives a Buffer as an input and implements two main methods, which are - * able to run in constant time no matter the size of the bundle: - * - * getStartupCode(): returns the runtime and the startup code of the bundle. - * getModule(): returns the code for the specified module. - */ - class RamBundleParser { - _buffer: Buffer; - _numModules: number; - _startupCodeLength: number; - _startOffset: number; - constructor(buffer: Buffer); - _readPosition(pos: number): number; - getStartupCode(): string; - getModule(id: number): string; - } - export default RamBundleParser; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/relativizeSourceMap.js -declare module 'metro/src/lib/relativizeSourceMap' { - import type { MixedSourceMap } from 'metro-source-map'; - function relativizeSourceMapInline(sourceMap: MixedSourceMap, sourcesRoot: string): void; - export default relativizeSourceMapInline; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/reporting.js -declare module 'metro/src/lib/reporting' { - import type { Terminal } from 'metro-core'; - import type { HealthCheckResult, WatcherStatus } from 'metro-file-map'; - import type { CustomResolverOptions } from 'metro-resolver'; - import type { CustomTransformOptions } from 'metro-transform-worker'; - export type BundleDetails = { - bundleType: string; - customResolverOptions: CustomResolverOptions; - customTransformOptions: CustomTransformOptions; - dev: boolean; - entryFile: string; - minify: boolean; - platform?: null | string; - }; - /** - * A tagged union of all the actions that may happen and we may want to - * report to the tool user. - */ - export type ReportableEvent = - | { - port: number; - hasReducedPerformance: boolean; - type: 'initialize_started'; - } - | { - type: 'initialize_failed'; - port: number; - error: Error; - } - | { - type: 'initialize_done'; - port: number; - } - | { - buildID: string; - type: 'bundle_build_done'; - } - | { - buildID: string; - type: 'bundle_build_failed'; - } - | { - type: 'bundle_save_log'; - message: string; - } - | { - buildID: string; - bundleDetails: BundleDetails; - isPrefetch?: boolean; - type: 'bundle_build_started'; - } - | { - error: Error; - type: 'bundling_error'; - } - | { - type: 'dep_graph_loading'; - hasReducedPerformance: boolean; - } - | { - type: 'dep_graph_loaded'; - } - | { - buildID: string; - type: 'bundle_transform_progressed'; - transformedFileCount: number; - totalFileCount: number; - } - | { - type: 'cache_read_error'; - error: Error; - } - | { - type: 'cache_write_error'; - error: Error; - } - | { - type: 'transform_cache_reset'; - } - | { - type: 'worker_stdout_chunk'; - chunk: string; - } - | { - type: 'worker_stderr_chunk'; - chunk: string; - } - | { - type: 'hmr_client_error'; - error: Error; - } - | { - type: 'client_log'; - level?: - | 'trace' - | 'info' - | 'warn' - | 'log' - | 'group' - | 'groupCollapsed' - | 'groupEnd' - | 'debug'; - data: any[]; - mode?: 'BRIDGE' | 'NOBRIDGE'; - } - | { - type: 'resolver_warning'; - message: string; - } - | { - type: 'server_listening'; - port: number; - address: string; - family: string; - } - | { - type: 'transformer_load_started'; - } - | { - type: 'transformer_load_done'; - } - | { - type: 'transformer_load_failed'; - error: Error; - } - | { - type: 'watcher_health_check_result'; - result: HealthCheckResult; - } - | { - type: 'watcher_status'; - status: WatcherStatus; - }; - /** - * Code across the application takes a reporter as an option and calls the - * update whenever one of the ReportableEvent happens. Code does not directly - * write to the standard output, because a build would be: - * - * 1. ad-hoc, embedded into another tool, in which case we do not want to - * pollute that tool's own output. The tool is free to present the - * warnings/progress we generate any way they want, by specifing a custom - * reporter. - * 2. run as a background process from another tool, in which case we want - * to expose updates in a way that is easily machine-readable, for example - * a JSON-stream. We don't want to pollute it with textual messages. - * - * We centralize terminal reporting into a single place because we want the - * output to be robust and consistent. The most common reporter is - * TerminalReporter, that should be the only place in the application should - * access the `terminal` module (nor the `console`). - */ - export type Reporter = { - update(event: ReportableEvent): void; - }; - /** - * A standard way to log a warning to the terminal. This should not be called - * from some arbitrary Metro logic, only from the reporters. Instead of - * calling this, add a new type of ReportableEvent instead, and implement a - * proper handler in the reporter(s). - */ - export function logWarning(terminal: Terminal, format: string, ...args: any[]): void; - - /** - * Similar to `logWarning`, but for messages that require the user to act. - */ - export function logError(terminal: Terminal, format: string, ...args: any[]): void; - - /** - * Similar to `logWarning`, but for informational messages. - */ - export function logInfo(terminal: Terminal, format: string, ...args: any[]): void; - - /** - * A reporter that does nothing. Errors and warnings will be swallowed, that - * is generally not what you want. - */ - export const nullReporter: { - update(): void; - }; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/splitBundleOptions.js -declare module 'metro/src/lib/splitBundleOptions' { - import type { BundleOptions, SplitBundleOptions } from 'metro/src/shared/types.flow'; - /** - * Splits a BundleOptions object into smaller, more manageable parts. - */ - function splitBundleOptions(options: BundleOptions): SplitBundleOptions; - export default splitBundleOptions; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/TerminalReporter.js -declare module 'metro/src/lib/TerminalReporter' { - import type { BundleDetails, ReportableEvent } from 'metro/src/lib/reporting'; - import type { Terminal } from 'metro-core'; - import type { HealthCheckResult, WatcherStatus } from 'metro-file-map'; - type BundleProgress = { - bundleDetails: BundleDetails; - transformedFileCount: number; - totalFileCount: number; - ratio: number; - isPrefetch?: boolean; - }; - export type TerminalReportableEvent = - | ReportableEvent - | { - buildID: string; - type: 'bundle_transform_progressed_throttled'; - transformedFileCount: number; - totalFileCount: number; - } - | { - type: 'unstable_server_log'; - level?: 'info' | 'warn' | 'error'; - data?: string | any[]; - } - | { - type: 'unstable_server_menu_updated'; - message: string; - } - | { - type: 'unstable_server_menu_cleared'; - }; - type BuildPhase = 'in_progress' | 'done' | 'failed'; - // NOTE(cedric): manually corrected, its an internal Flow type - type ErrnoError = { - errno: number; - code: string; - path: string; - syscall: string; - }; - type SnippetError = ErrnoError & { - filename?: string; - snippet?: string; - }; - /** - * We try to print useful information to the terminal for interactive builds. - * This implements the `Reporter` interface from the './reporting' module. - */ - class TerminalReporter { - _activeBundles: Map; - _interactionStatus: null | undefined | string; - _scheduleUpdateBundleProgress: { - cancel(): void; - (data: { buildID: string; transformedFileCount: number; totalFileCount: number }): void; - }; - _prevHealthCheckResult: null | undefined | HealthCheckResult; - readonly terminal: Terminal; - constructor(terminal: Terminal); - _getBundleStatusMessage($$PARAM_0$$: BundleProgress, phase: BuildPhase): string; - _logBundleBuildDone(buildID: string): void; - _logBundleBuildFailed(buildID: string): void; - _logInitializing(port: number, hasReducedPerformance: boolean): void; - _logInitializingFailed(port: number, error: SnippetError): void; - _log(event: TerminalReportableEvent): void; - _logBundlingError(error: SnippetError): void; - _logWorkerChunk(origin: 'stdout' | 'stderr', chunk: string): void; - _updateBundleProgress($$PARAM_0$$: { - buildID: string; - transformedFileCount: number; - totalFileCount: number; - }): void; - _updateState(event: TerminalReportableEvent): void; - _getStatusMessage(): string; - _logHmrClientError(e: Error): void; - _logWarning(message: string): void; - _logWatcherHealthCheckResult(result: HealthCheckResult): void; - _logWatcherStatus(status: WatcherStatus): void; - update(event: TerminalReportableEvent): void; - } - export default TerminalReporter; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/lib/transformHelpers.js -declare module 'metro/src/lib/transformHelpers' { - import type Bundler from 'metro/src/Bundler'; - import type { - BundlerResolution, - TransformInputOptions, - TransformResultDependency, - } from 'metro/src/DeltaBundler/types.flow'; - import type { ResolverInputOptions } from 'metro/src/shared/types.flow'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import type DeltaBundler from 'metro/src/DeltaBundler'; - import type { TransformFn } from 'metro/src/DeltaBundler'; - export function getTransformFn( - entryFiles: readonly string[], - bundler: Bundler, - deltaBundler: DeltaBundler, - config: ConfigT, - options: TransformInputOptions, - resolverOptions: ResolverInputOptions - ): Promise; - export function getResolveDependencyFn( - bundler: Bundler, - platform: null | undefined | string, - resolverOptions: ResolverInputOptions - ): Promise<(from: string, dependency: TransformResultDependency) => BundlerResolution>; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/ModuleGraph/worker/collectDependencies.js -declare module 'metro/src/ModuleGraph/worker/collectDependencies' { - import type { NodePath } from '@babel/traverse'; - import type { - CallExpression, - File, - Identifier, - StringLiteral, - SourceLocation, - } from '@babel/types'; - import type { - AllowOptionalDependencies, - AsyncDependencyType, - } from 'metro/src/DeltaBundler/types.flow'; - export type Dependency = Readonly<{ - data: DependencyData; - name: string; - }>; - export type ContextMode = 'sync' | 'eager' | 'lazy' | 'lazy-once'; - type ContextFilter = Readonly<{ - pattern: string; - flags: string; - }>; - export type RequireContextParams = Readonly<{ - recursive: boolean; - filter: Readonly; - mode: ContextMode; - }>; - type DependencyData = Readonly<{ - key: string; - asyncType?: AsyncDependencyType | null; - isESMImport: boolean; - isOptional?: boolean; - locs: readonly SourceLocation[]; - contextParams?: RequireContextParams; - }>; - export type MutableInternalDependency = { - locs: SourceLocation[]; - index: number; - name: string; - } & DependencyData; - export type InternalDependency = Readonly; - export type State = { - asyncRequireModulePathStringLiteral?: null | StringLiteral; - dependencyCalls: Set; - dependencyRegistry: DependencyRegistry; - dependencyTransformer: DependencyTransformer; - dynamicRequires: DynamicRequiresBehavior; - dependencyMapIdentifier?: null | Identifier; - keepRequireNames: boolean; - allowOptionalDependencies: AllowOptionalDependencies; - unstable_allowRequireContext: boolean; - unstable_isESMImportAtSource?: null | (($$PARAM_0$$: SourceLocation) => boolean); - }; - export type Options = Readonly<{ - asyncRequireModulePath: string; - dependencyMapName?: null | string; - dynamicRequires: DynamicRequiresBehavior; - inlineableCalls: readonly string[]; - keepRequireNames: boolean; - allowOptionalDependencies: AllowOptionalDependencies; - dependencyTransformer?: DependencyTransformer; - unstable_allowRequireContext: boolean; - unstable_isESMImportAtSource?: null | undefined | (($$PARAM_0$$: SourceLocation) => boolean); - }>; - export type CollectedDependencies = Readonly<{ - ast: File; - dependencyMapName: string; - dependencies: readonly Dependency[]; - }>; - export interface DependencyTransformer { - transformSyncRequire( - path: NodePath, - dependency: InternalDependency, - state: State - ): void; - transformImportCall(path: NodePath, dependency: InternalDependency, state: State): void; - transformImportMaybeSyncCall( - path: NodePath, - dependency: InternalDependency, - state: State - ): void; - transformPrefetch(path: NodePath, dependency: InternalDependency, state: State): void; - transformIllegalDynamicRequire(path: NodePath, state: State): void; - } - export type DynamicRequiresBehavior = 'throwAtRuntime' | 'reject'; - function collectDependencies(ast: File, options: Options): CollectedDependencies; - export type ImportQualifier = Readonly<{ - name: string; - asyncType?: AsyncDependencyType | null; - isESMImport: boolean; - optional: boolean; - contextParams?: RequireContextParams; - }>; - class DependencyRegistry { - _dependencies: Map; - registerDependency(qualifier: ImportQualifier): InternalDependency; - getDependencies(): InternalDependency[]; - } - export default collectDependencies; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/ModuleGraph/worker/generateImportNames.js -declare module 'metro/src/ModuleGraph/worker/generateImportNames' { - import type * as _babel_types from '@babel/types'; - /** - * Select unused names for "metroImportDefault" and "metroImportAll", by - * calling "generateUid". - */ - function generateImportNames(ast: _babel_types.Node): { - importAll: string; - importDefault: string; - }; - export default generateImportNames; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/ModuleGraph/worker/importLocationsPlugin.js -declare module 'metro/src/ModuleGraph/worker/importLocationsPlugin' { - import type * as _babel_types from '@babel/types'; - import type { PluginObj } from '@babel/core'; - type Types = typeof _babel_types; - export function importLocationsPlugin($$PARAM_0$$: { types: Types }): PluginObj; - export function locToKey(loc: _babel_types.SourceLocation): string; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/ModuleGraph/worker/JsFileWrapping.js -declare module 'metro/src/ModuleGraph/worker/JsFileWrapping' { - import type * as _babel_types from '@babel/types'; - export const WRAP_NAME: '$$_REQUIRE'; - export function wrapJson(source: string, globalPrefix: string): string; - export function jsonToCommonJS(source: string): string; - export function wrapModule( - fileAst: _babel_types.File, - importDefaultName: string, - importAllName: string, - dependencyMapName: string, - globalPrefix: string, - skipRequireRename: boolean - ): { - ast: _babel_types.File; - requireName: string; - }; - export function wrapPolyfill(fileAst: _babel_types.File): _babel_types.File; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/DependencyGraph.js -declare module 'metro/src/node-haste/DependencyGraph' { - import type { - BundlerResolution, - TransformResultDependency, - } from 'metro/src/DeltaBundler/types.flow'; - import type { ResolverInputOptions } from 'metro/src/shared/types.flow'; - import type Package from 'metro/src/node-haste/Package'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import { ModuleResolver } from 'metro/src/node-haste/DependencyGraph/ModuleResolution'; - import ModuleCache from 'metro/src/node-haste/ModuleCache'; - import { EventEmitter } from 'events'; - import type MetroFileMap from 'metro-file-map'; - import type { - ChangeEvent, - FileSystem, - HasteMap, - HealthCheckResult, - WatcherStatus, - } from 'metro-file-map'; - class DependencyGraph extends EventEmitter { - _config: ConfigT; - _haste: MetroFileMap; - _fileSystem: FileSystem; - _moduleCache: ModuleCache; - _hasteMap: HasteMap; - _moduleResolver: ModuleResolver; - _resolutionCache: Map< - string | symbol, - Map>> - >; - _initializedPromise: Promise; - constructor( - config: ConfigT, - options?: { - readonly hasReducedPerformance?: boolean; - readonly watch?: boolean; - } - ); - _onWatcherHealthCheck(result: HealthCheckResult): void; - _onWatcherStatus(status: WatcherStatus): void; - ready(): Promise; - static load( - config: ConfigT, - options?: { - readonly hasReducedPerformance?: boolean; - readonly watch?: boolean; - } - ): Promise; - _onHasteChange($$PARAM_0$$: ChangeEvent): void; - _createModuleResolver(): void; - _getClosestPackage(absoluteModulePath: string): - | null - | undefined - | { - packageJsonPath: string; - packageRelativePath: string; - }; - _createModuleCache(): ModuleCache; - getAllFiles(): string[]; - getOrComputeSha1(mixedPath: string): Promise<{ - content?: Buffer; - sha1: string; - }>; - getWatcher(): EventEmitter; - end(): void; - matchFilesWithContext( - from: string, - context: Readonly<{ - recursive: boolean; - filter: RegExp; - }> - ): Iterable; - resolveDependency( - from: string, - dependency: TransformResultDependency, - platform: string | null, - resolverOptions: ResolverInputOptions, - $$PARAM_4$$: { - assumeFlatNodeModules: boolean; - } - ): BundlerResolution; - _doesFileExist: any; - getHasteName(filePath: string): string; - getDependencies(filePath: string): string[]; - } - export default DependencyGraph; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/DependencyGraph/createFileMap.js -declare module 'metro/src/node-haste/DependencyGraph/createFileMap' { - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - import MetroFileMap from 'metro-file-map'; - function createFileMap( - config: ConfigT, - options?: Readonly<{ - extractDependencies?: boolean; - watch?: boolean; - throwOnModuleCollision?: boolean; - cacheFilePrefix?: string; - }> - ): MetroFileMap; - export default createFileMap; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/DependencyGraph/ModuleResolution.js -declare module 'metro/src/node-haste/DependencyGraph/ModuleResolution' { - import type { - BundlerResolution, - TransformResultDependency, - } from 'metro/src/DeltaBundler/types.flow'; - import type { Reporter } from 'metro/src/lib/reporting'; - import type { ResolverInputOptions } from 'metro/src/shared/types.flow'; - import type { - CustomResolver, - DoesFileExist, - FileCandidates, - FileSystemLookup, - Resolution, - ResolveAsset, - } from 'metro-resolver'; - import type { PackageJson } from 'metro-resolver/src/types'; - export type DirExistsFn = (filePath: string) => boolean; - export type Packageish = { - path: string; - read(): PackageJson; - }; - export type Moduleish = { - readonly path: string; - getPackage(): null | undefined | Packageish; - }; - export type ModuleishCache = { - getPackage(name: string, platform?: string, supportsNativePlatform?: boolean): TPackage; - getPackageOf(absolutePath: string): - | null - | undefined - | { - pkg: TPackage; - packageRelativePath: string; - }; - }; - type Options = Readonly<{ - assetExts: ReadonlySet; - dirExists: DirExistsFn; - disableHierarchicalLookup: boolean; - doesFileExist: DoesFileExist; - emptyModulePath: string; - extraNodeModules?: null | object; - fileSystemLookup: FileSystemLookup; - getHasteModulePath: ( - name: string, - platform: null | undefined | string - ) => null | undefined | string; - getHastePackagePath: ( - name: string, - platform: null | undefined | string - ) => null | undefined | string; - mainFields: readonly string[]; - moduleCache: ModuleishCache; - nodeModulesPaths: readonly string[]; - preferNativePlatform: boolean; - projectRoot: string; - reporter: Reporter; - resolveAsset: ResolveAsset; - resolveRequest?: null | CustomResolver; - sourceExts: readonly string[]; - unstable_conditionNames: readonly string[]; - unstable_conditionsByPlatform: Readonly<{ - [platform: string]: readonly string[]; - }>; - unstable_enablePackageExports: boolean; - }>; - export class ModuleResolver { - _options: Options; - _projectRootFakeModule: Moduleish; - _cachedEmptyModule: null | undefined | BundlerResolution; - constructor(options: Options); - _getEmptyModule(): BundlerResolution; - resolveDependency( - fromModule: Moduleish, - dependency: TransformResultDependency, - allowHaste: boolean, - platform: string | null, - resolverOptions: ResolverInputOptions - ): BundlerResolution; - _getPackage: any; - _getPackageForModule: any; - _getFileResolvedModule(resolution: Resolution): BundlerResolution; - _logWarning: any; - _removeRoot(candidates: FileCandidates): FileCandidates; - } - export class UnableToResolveError extends Error { - originModulePath: string; - targetModuleName: string; - cause: null | undefined | Error; - constructor( - originModulePath: string, - targetModuleName: string, - message: string, - options?: Readonly<{ - dependency?: null | undefined | TransformResultDependency; - cause?: Error; - }> - ); - buildCodeFrameMessage( - dependency: null | undefined | TransformResultDependency - ): null | undefined | string; - } -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/lib/AssetPaths.js -declare module 'metro/src/node-haste/lib/AssetPaths' { - export type AssetPath = { - assetName: string; - name: string; - platform?: null | string; - resolution: number; - type: string; - }; - /** - * Return `null` if the `filePath` doesn't have a valid extension, required - * to describe the type of an asset. - */ - export function parse(filePath: string, platforms: ReadonlySet): AssetPath; - export function tryParse( - filePath: string, - platforms: ReadonlySet - ): null | undefined | AssetPath; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/lib/parsePlatformFilePath.js -declare module 'metro/src/node-haste/lib/parsePlatformFilePath' { - type PlatformFilePathParts = { - dirPath: string; - baseName: string; - platform?: null | string; - extension?: null | string; - }; - /** - * Extract the components of a file path that can have a platform specifier: Ex. - * `index.ios.js` is specific to the `ios` platform and has the extension `js`. - */ - function parsePlatformFilePath( - filePath: string, - platforms: ReadonlySet - ): PlatformFilePathParts; - export default parsePlatformFilePath; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/Module.js -declare module 'metro/src/node-haste/Module' { - import type ModuleCache from 'metro/src/node-haste/ModuleCache'; - import type Package from 'metro/src/node-haste/Package'; - class Module { - path: string; - _moduleCache: ModuleCache; - _sourceCode: null | undefined | string; - constructor(file: string, moduleCache: ModuleCache); - getPackage(): null | undefined | Package; - invalidate(): void; - } - export default Module; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/ModuleCache.js -declare module 'metro/src/node-haste/ModuleCache' { - import Module from 'metro/src/node-haste/Module'; - import Package from 'metro/src/node-haste/Package'; - type GetClosestPackageFn = (absoluteFilePath: string) => - | null - | undefined - | { - packageJsonPath: string; - packageRelativePath: string; - }; - class ModuleCache { - _getClosestPackage: GetClosestPackageFn; - _moduleCache: { - [filePath: string]: Module; - }; - _packageCache: { - [filePath: string]: Package; - }; - _packagePathAndSubpathByModulePath: { - [filePath: string]: - | null - | undefined - | { - packageJsonPath: string; - packageRelativePath: string; - }; - }; - _modulePathsByPackagePath: { - [filePath: string]: Set; - }; - constructor(options: { getClosestPackage: GetClosestPackageFn }); - getModule(filePath: string): Module; - getPackage(filePath: string): Package; - getPackageForModule(module: Module): - | null - | undefined - | { - pkg: Package; - packageRelativePath: string; - }; - getPackageOf(absoluteModulePath: string): - | null - | undefined - | { - pkg: Package; - packageRelativePath: string; - }; - invalidate(filePath: string): void; - } - export default ModuleCache; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/node-haste/Package.js -declare module 'metro/src/node-haste/Package' { - import type { PackageJson } from 'metro-resolver/src/types'; - class Package { - path: string; - _root: string; - _content: null | undefined | PackageJson; - constructor($$PARAM_0$$: { file: string }); - invalidate(): void; - read(): PackageJson; - } - export default Package; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/Server.js -declare module 'metro/src/Server' { - import type { AssetData } from 'metro/src/Assets'; - import type { ExplodedSourceMap } from 'metro/src/DeltaBundler/Serializers/getExplodedSourceMap'; - import type { RamBundleInfo } from 'metro/src/DeltaBundler/Serializers/getRamBundleInfo'; - import type { - Module, - ReadOnlyGraph, - TransformInputOptions, - } from 'metro/src/DeltaBundler/types.flow'; - import type { RevisionId } from 'metro/src/IncrementalBundler'; - import type { GraphId } from 'metro/src/lib/getGraphId'; - import type { Reporter } from 'metro/src/lib/reporting'; - import type { - BundleOptions, - GraphOptions, - ResolverInputOptions, - SplitBundleOptions, - } from 'metro/src/shared/types.flow'; - import type { IncomingMessage } from 'connect'; - import type { ServerResponse } from 'http'; - import type { ConfigT, RootPerfLogger } from 'metro-config/src/configTypes.flow'; - import type { ActionLogEntryData, ActionStartLogEntry, LogEntry } from 'metro-core/src/Logger'; - import type { CustomResolverOptions } from 'metro-resolver/src/types'; - import type { CustomTransformOptions } from 'metro-transform-worker'; - import { SourcePathsMode } from 'metro/src/shared/types.flow'; - import IncrementalBundler from 'metro/src/IncrementalBundler'; - import MultipartResponse from 'metro/src/Server/MultipartResponse'; - import { Logger } from 'metro-core'; - export type SegmentLoadData = { - [$$Key$$: number]: [number[], null | undefined | number]; - }; - export type BundleMetadata = { - hash: string; - otaBuildNumber?: null | string; - mobileConfigs: string[]; - segmentHashes: string[]; - segmentLoadData: SegmentLoadData; - }; - type ProcessStartContext = { - readonly buildNumber: number; - readonly bundleOptions: BundleOptions; - readonly graphId: GraphId; - readonly graphOptions: GraphOptions; - readonly mres?: MultipartResponse | ServerResponse; - readonly req: IncomingMessage; - readonly revisionId?: null | undefined | RevisionId; - readonly bundlePerfLogger: RootPerfLogger; - readonly requestStartTimestamp: number; - } & SplitBundleOptions; - type ProcessDeleteContext = { - readonly graphId: GraphId; - readonly req: IncomingMessage; - readonly res: ServerResponse; - }; - type ProcessEndContext = { - readonly result: T; - } & ProcessStartContext; - export type ServerOptions = Readonly<{ - hasReducedPerformance?: boolean; - onBundleBuilt?: (bundlePath: string) => void; - watch?: boolean; - }>; - class Server { - _bundler: IncrementalBundler; - _config: ConfigT; - _createModuleId: (path: string) => number; - _isEnded: boolean; - _logger: typeof Logger; - _nextBundleBuildNumber: number; - _platforms: Set; - _reporter: Reporter; - _serverOptions: ServerOptions | void; - _allowedSuffixesForSourceRequests: readonly string[]; - _sourceRequestRoutingMap: readonly [any, any][]; - constructor(config: ConfigT, options?: ServerOptions); - end(): void; - getBundler(): IncrementalBundler; - getCreateModuleId(): (path: string) => number; - build(options: BundleOptions): Promise<{ - code: string; - map: string; - }>; - getRamBundleInfo(options: BundleOptions): Promise; - getAssets(options: BundleOptions): Promise; - getOrderedDependencyPaths(options: { - readonly dev: boolean; - readonly entryFile: string; - readonly minify: boolean; - readonly platform?: null | string; - }): Promise; - _rangeRequestMiddleware( - req: IncomingMessage, - res: ServerResponse, - data: string | Buffer, - assetPath: string - ): Buffer | string; - _processSingleAssetRequest(req: IncomingMessage, res: ServerResponse): Promise; - processRequest: ( - $$PARAM_0$$: IncomingMessage, - $$PARAM_1$$: ServerResponse, - $$PARAM_2$$: (e: null | undefined | Error) => void - ) => void; - _parseOptions(url: string): BundleOptions; - _rewriteAndNormalizeUrl(requestUrl: string): string; - _processRequest( - req: IncomingMessage, - res: ServerResponse, - next: ($$PARAM_0$$: null | undefined | Error) => void - ): void; - _processSourceRequest( - relativePathname: string, - rootDir: string, - res: ServerResponse - ): Promise; - _createRequestProcessor($$PARAM_0$$: { - readonly createStartEntry: (context: ProcessStartContext) => ActionLogEntryData; - readonly createEndEntry: ( - context: ProcessEndContext - ) => Pick>; - readonly build: (context: ProcessStartContext) => Promise; - readonly delete?: (context: ProcessDeleteContext) => Promise; - readonly finish: (context: ProcessEndContext) => void; - }): ( - req: IncomingMessage, - res: ServerResponse, - bundleOptions: BundleOptions, - buildContext: Readonly<{ - buildNumber: number; - bundlePerfLogger: RootPerfLogger; - }> - ) => Promise; - _processBundleRequest: ( - req: IncomingMessage, - res: ServerResponse, - bundleOptions: BundleOptions, - buildContext: Readonly<{ - buildNumber: number; - bundlePerfLogger: RootPerfLogger; - }> - ) => Promise; - _getSortedModules(graph: ReadOnlyGraph): readonly Module[]; - _processSourceMapRequest: ( - req: IncomingMessage, - res: ServerResponse, - bundleOptions: BundleOptions, - buildContext: Readonly<{ - buildNumber: number; - bundlePerfLogger: RootPerfLogger; - }> - ) => Promise; - _processAssetsRequest: ( - req: IncomingMessage, - res: ServerResponse, - bundleOptions: BundleOptions, - buildContext: Readonly<{ - buildNumber: number; - bundlePerfLogger: RootPerfLogger; - }> - ) => Promise; - _symbolicate(req: IncomingMessage, res: ServerResponse): void; - _explodedSourceMapForBundleOptions(bundleOptions: BundleOptions): Promise; - _resolveRelativePath( - filePath: string, - $$PARAM_1$$: Readonly<{ - relativeTo?: 'project' | 'server'; - resolverOptions: ResolverInputOptions; - transformOptions: TransformInputOptions; - }> - ): Promise; - getNewBuildNumber(): number; - getPlatforms(): readonly string[]; - getWatchFolders(): readonly string[]; - static DEFAULT_GRAPH_OPTIONS: Readonly<{ - customResolverOptions: CustomResolverOptions; - customTransformOptions: CustomTransformOptions; - dev: boolean; - hot: boolean; - minify: boolean; - unstable_transformProfile: 'default'; - }>; - static DEFAULT_BUNDLE_OPTIONS: { - excludeSource: false; - inlineSourceMap: false; - lazy: false; - modulesOnly: false; - onProgress: null; - runModule: true; - shallow: false; - sourceMapUrl: null; - sourceUrl: null; - sourcePaths: SourcePathsMode; - } & typeof Server.DEFAULT_GRAPH_OPTIONS; - _getServerRootDir(): string; - _getEntryPointAbsolutePath(entryFile: string): string; - ready(): Promise; - _shouldAddModuleToIgnoreList(module: Module): boolean; - _getModuleSourceUrl(module: Module, mode: SourcePathsMode): string; - } - export default Server; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/Server/MultipartResponse.js -declare module 'metro/src/Server/MultipartResponse' { - import type { IncomingMessage, ServerResponse } from 'http'; - type Data = string | Buffer | Uint8Array; - type Headers = { - [$$Key$$: string]: string | number; - }; - class MultipartResponse { - static wrapIfSupported( - req: IncomingMessage, - res: ServerResponse - ): MultipartResponse | ServerResponse; - static serializeHeaders(headers: Headers): string; - res: ServerResponse; - headers: Headers; - constructor(res: ServerResponse); - writeChunk(headers: Headers | null, data?: Data, isLast?: boolean): void; - writeHead(status: number, headers?: Headers): void; - setHeader(name: string, value: string | number): void; - end(data?: Data): void; - once(name: string, fn: () => any): this; - } - export default MultipartResponse; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/Server/symbolicate.js -declare module 'metro/src/Server/symbolicate' { - import type { ExplodedSourceMap } from 'metro/src/DeltaBundler/Serializers/getExplodedSourceMap'; - import type { ConfigT } from 'metro-config/src/configTypes.flow'; - export type StackFrameInput = { - readonly file?: null | string; - readonly lineNumber?: null | number; - readonly column?: null | number; - readonly methodName?: null | string; - }; - export type IntermediateStackFrame = { - collapse?: boolean; - } & StackFrameInput; - export type StackFrameOutput = Readonly<{} & IntermediateStackFrame>; - function symbolicate( - stack: readonly StackFrameInput[], - maps: Iterable<[string, ExplodedSourceMap]>, - config: ConfigT, - extraData: any - ): Promise; - export default symbolicate; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/bundle.js -declare module 'metro/src/shared/output/bundle' { - // See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/bundle.js - - // NOTE(cedric): Metro uses this weird Flow syntax /*:: */ to override the exported types... - export * from 'metro/src/shared/output/bundle.flow'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/bundle.flow.js -declare module 'metro/src/shared/output/bundle.flow' { - import type { OutputOptions, RequestOptions } from 'metro/src/shared/types.flow'; - import Server from 'metro/src/Server'; - export function build(packagerClient: Server, requestOptions: RequestOptions): void; - export function save( - bundle: { - code: string; - map: string; - }, - options: OutputOptions, - log: ($$PARAM_0$$: string) => void - ): void; - export const formatName: 'bundle'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/meta.js -declare module 'metro/src/shared/output/meta' { - const $$EXPORT_DEFAULT_DECLARATION$$: ( - code: Buffer | string, - encoding: 'ascii' | 'utf16le' | 'utf8' - ) => Buffer; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/RamBundle.js -declare module 'metro/src/shared/output/RamBundle' { - import type { RamBundleInfo } from 'metro/src/DeltaBundler/Serializers/getRamBundleInfo'; - import type { OutputOptions, RequestOptions } from 'metro/src/shared/types.flow'; - import Server from 'metro/src/Server'; - export function build(packagerClient: Server, requestOptions: RequestOptions): void; - export function save( - bundle: RamBundleInfo, - options: OutputOptions, - log: (x: string) => void - ): void; - export const formatName: 'bundle'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/RamBundle/as-assets.js -declare module 'metro/src/shared/output/RamBundle/as-assets' { - import type { RamBundleInfo } from 'metro/src/DeltaBundler/Serializers/getRamBundleInfo'; - import type { OutputOptions } from 'metro/src/shared/types.flow'; - /** - * Saves all JS modules of an app as single files - * The startup code (prelude, polyfills etc.) are written to the file - * designated by the `bundleOuput` option. - * All other modules go into a 'js-modules' folder that in the same parent - * directory as the startup file. - */ - function saveAsAssets( - bundle: RamBundleInfo, - options: OutputOptions, - log: (...args: string[]) => void - ): Promise; - export default saveAsAssets; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/RamBundle/as-indexed-file.js -declare module 'metro/src/shared/output/RamBundle/as-indexed-file' { - import type { RamBundleInfo } from 'metro/src/DeltaBundler/Serializers/getRamBundleInfo'; - import type { - ModuleGroups, - ModuleTransportLike, - OutputOptions, - } from 'metro/src/shared/types.flow'; - export function save( - bundle: RamBundleInfo, - options: OutputOptions, - log: (...args: string[]) => void - ): void; - export function buildTableAndContents( - startupCode: string, - modules: readonly ModuleTransportLike[], - moduleGroups: ModuleGroups, - encoding?: 'utf8' | 'utf16le' | 'ascii' - ): void; - export function createModuleGroups( - groups: Map>, - modules: readonly ModuleTransportLike[] - ): void; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/RamBundle/buildSourcemapWithMetadata.js -declare module 'metro/src/shared/output/RamBundle/buildSourcemapWithMetadata' { - import type { ModuleGroups, ModuleTransportLike } from 'metro/src/shared/types.flow'; - import type { IndexMap } from 'metro-source-map'; - type Params = { - fixWrapperOffset: boolean; - lazyModules: readonly ModuleTransportLike[]; - moduleGroups?: null | ModuleGroups; - startupModules: readonly ModuleTransportLike[]; - }; - const $$EXPORT_DEFAULT_DECLARATION$$: ($$PARAM_0$$: Params) => IndexMap; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/RamBundle/magic-number.js -declare module 'metro/src/shared/output/RamBundle/magic-number' { - const $$EXPORT_DEFAULT_DECLARATION$$: 0xfb0bd1e5; - export default $$EXPORT_DEFAULT_DECLARATION$$; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/RamBundle/util.js -declare module 'metro/src/shared/output/RamBundle/util' { - import type { ModuleGroups, ModuleTransportLike } from 'metro/src/shared/types.flow'; - import type { BasicSourceMap, IndexMap } from 'metro-source-map'; - type CombineOptions = { - fixWrapperOffset: boolean; - }; - export function combineSourceMaps( - modules: readonly ModuleTransportLike[], - moduleGroups?: ModuleGroups, - options?: null | undefined | CombineOptions - ): IndexMap; - export function combineSourceMapsAddingOffsets( - modules: readonly ModuleTransportLike[], - x_metro_module_paths: string[], - moduleGroups?: null | undefined | ModuleGroups, - options?: null | undefined | CombineOptions - ): IndexMap; - export { default as countLines } from 'metro/src/lib/countLines'; - export const joinModules: ( - modules: readonly { - readonly code: string; - }[] - ) => string; - export function lineToLineSourceMap(source: string, filename?: string): BasicSourceMap; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/RamBundle/write-sourcemap.js -declare module 'metro/src/shared/output/RamBundle/write-sourcemap' { - function writeSourcemap( - fileName: string, - contents: string, - log: (...args: string[]) => void - ): Promise; - export default writeSourcemap; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/unbundle.js -declare module 'metro/src/shared/output/unbundle' { - export { default } from 'metro/src/shared/output/RamBundle'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/output/writeFile.js -declare module 'metro/src/shared/output/writeFile' { - import fs from 'fs'; - const writeFile: typeof fs.promises.writeFile; - export default writeFile; -} - -// NOTE(cedric): this is a manual change, to avoid having to import `../types.flow` -declare module 'metro/src/shared/types' { - export * from 'metro/src/shared/types.flow'; -} - -// See: https://github.com/facebook/metro/blob/v0.82.0/packages/metro/src/shared/types.flow.js -declare module 'metro/src/shared/types.flow' { - import type { - Options as DeltaBundlerOptions, - TransformInputOptions, - } from 'metro/src/DeltaBundler/types.flow'; - import type { TransformProfile } from 'metro-babel-transformer'; - import type { CustomResolverOptions } from 'metro-resolver'; - import type { MetroSourceMapSegmentTuple, MixedSourceMap } from 'metro-source-map'; - import type { CustomTransformOptions, MinifierOptions } from 'metro-transform-worker'; - type BundleType = 'bundle' | 'delta' | 'meta' | 'map' | 'ram' | 'cli' | 'hmr' | 'todo' | 'graph'; - type MetroSourceMapOrMappings = MixedSourceMap | MetroSourceMapSegmentTuple[]; - export enum SourcePathsMode { - Absolute = 'absolute', - ServerUrl = 'url-server', - } - export namespace SourcePathsMode { - export function cast(value: string | null | undefined): SourcePathsMode; - export function isValid(value: string | null | undefined): value is SourcePathsMode; - export function members(): IterableIterator; - export function getName(value: SourcePathsMode): string; - } - export type BundleOptions = { - bundleType: BundleType; - readonly customResolverOptions: CustomResolverOptions; - customTransformOptions: CustomTransformOptions; - dev: boolean; - entryFile: string; - readonly excludeSource: boolean; - readonly hot: boolean; - readonly inlineSourceMap: boolean; - readonly lazy: boolean; - minify: boolean; - readonly modulesOnly: boolean; - onProgress?: null | ((doneCont: number, totalCount: number) => any); - readonly platform?: null | string; - readonly runModule: boolean; - readonly shallow: boolean; - sourceMapUrl?: null | string; - sourceUrl?: null | string; - createModuleIdFactory?: () => (path: string) => number; - readonly unstable_transformProfile: TransformProfile; - readonly sourcePaths: SourcePathsMode; - }; - export type ResolverInputOptions = Readonly<{ - customResolverOptions?: CustomResolverOptions; - dev: boolean; - }>; - export type SerializerOptions = { - readonly sourceMapUrl?: null | string; - readonly sourceUrl?: null | string; - readonly runModule: boolean; - readonly excludeSource: boolean; - readonly inlineSourceMap: boolean; - readonly modulesOnly: boolean; - readonly sourcePaths: SourcePathsMode; - }; - export type GraphOptions = { - readonly lazy: boolean; - readonly shallow: boolean; - }; - export type SplitBundleOptions = { - readonly entryFile: string; - readonly resolverOptions: ResolverInputOptions; - readonly transformOptions: TransformInputOptions; - readonly serializerOptions: SerializerOptions; - readonly graphOptions: GraphOptions; - readonly onProgress: DeltaBundlerOptions['onProgress']; - }; - export type ModuleGroups = { - groups: Map>; - modulesById: Map; - modulesInGroups: Set; - }; - export type ModuleTransportLike = { - readonly code: string; - readonly id: number; - readonly map?: null | MetroSourceMapOrMappings; - readonly name?: string; - readonly sourcePath: string; - }; - export type ModuleTransportLikeStrict = { - readonly code: string; - readonly id: number; - readonly map?: null | MetroSourceMapOrMappings; - readonly name?: string; - readonly sourcePath: string; - }; - export type RamModuleTransport = { - readonly source: string; - readonly type: string; - } & ModuleTransportLikeStrict; - export type OutputOptions = { - bundleOutput: string; - bundleEncoding?: 'utf8' | 'utf16le' | 'ascii'; - dev?: boolean; - indexedRamBundle?: boolean; - platform: string; - sourcemapOutput?: string; - sourcemapSourcesRoot?: string; - sourcemapUseAbsolutePath?: boolean; - }; - export type RequestOptions = { - entryFile: string; - inlineSourceMap?: boolean; - sourceMapUrl?: string; - dev?: boolean; - minify: boolean; - platform: string; - createModuleIdFactory?: () => (path: string) => number; - onProgress?: (transformedFileCount: number, totalFileCount: number) => void; - readonly customResolverOptions?: CustomResolverOptions; - readonly customTransformOptions?: CustomTransformOptions; - }; - export type { MinifierOptions }; -} diff --git a/packages/@expo/metro-config/CHANGELOG.md b/packages/@expo/metro-config/CHANGELOG.md index 8dc77a6a928959..33d9324ec96800 100644 --- a/packages/@expo/metro-config/CHANGELOG.md +++ b/packages/@expo/metro-config/CHANGELOG.md @@ -18,6 +18,7 @@ - Improve debug logs and types of `import-export-plugin` ([#38203](https://github.com/expo/expo/pull/38203) by [@krystofwoldrich](https://github.com/krystofwoldrich)) - Fix Babel dependencies by removing reliance on `@babel/parser`, `@babel/types`, and `@babel/template`, and adding missing `@babel/code-frame` dependency ([#38171](https://github.com/expo/expo/pull/38171) by [@kitten](https://github.com/kitten)) +- Switch Metro imports to `@expo/metro` wrapper package ([#38166](https://github.com/expo/expo/pull/38166) by [@kitten](https://github.com/kitten)) ## 0.20.17 - 2025-07-03 diff --git a/packages/@expo/metro-config/build/ExpoMetroConfig.d.ts b/packages/@expo/metro-config/build/ExpoMetroConfig.d.ts index a29599fe576b76..33bc73fdb9924d 100644 --- a/packages/@expo/metro-config/build/ExpoMetroConfig.d.ts +++ b/packages/@expo/metro-config/build/ExpoMetroConfig.d.ts @@ -1,5 +1,6 @@ -import { MixedOutput, Module, ReadOnlyGraph, Reporter } from 'metro'; -import { ConfigT as MetroConfig, InputConfigT } from 'metro-config'; +import type { Reporter } from '@expo/metro/metro'; +import type { MixedOutput, Module, ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler/types.flow'; +import type { ConfigT as MetroConfig, InputConfigT } from '@expo/metro/metro-config'; import { INTERNAL_CALLSITES_REGEX } from './customizeFrame'; export interface LoadOptions { config?: string; diff --git a/packages/@expo/metro-config/build/ExpoMetroConfig.js b/packages/@expo/metro-config/build/ExpoMetroConfig.js index 4d7d39d33356e5..62ba50a91d42bd 100644 --- a/packages/@expo/metro-config/build/ExpoMetroConfig.js +++ b/packages/@expo/metro-config/build/ExpoMetroConfig.js @@ -10,8 +10,8 @@ exports.getDefaultConfig = getDefaultConfig; const config_1 = require("@expo/config"); const paths_1 = require("@expo/config/paths"); const json_file_1 = __importDefault(require("@expo/json-file")); +const metro_cache_1 = require("@expo/metro/metro-cache"); const chalk_1 = __importDefault(require("chalk")); -const metro_cache_1 = require("metro-cache"); const os_1 = __importDefault(require("os")); const path_1 = __importDefault(require("path")); const resolve_from_1 = __importDefault(require("resolve-from")); @@ -27,16 +27,19 @@ const withExpoSerializers_1 = require("./serializer/withExpoSerializers"); const postcss_1 = require("./transform-worker/postcss"); const metro_config_1 = require("./traveling/metro-config"); const filePath_1 = require("./utils/filePath"); +const setOnReadonly_1 = require("./utils/setOnReadonly"); const debug = require('debug')('expo:metro:config'); let hasWarnedAboutExotic = false; // Patch Metro's graph to support always parsing certain modules. This enables // things like Tailwind CSS which update based on their own heuristics. function patchMetroGraphToSupportUncachedModules() { - const { Graph } = require('metro/src/DeltaBundler/Graph'); - const original_traverseDependencies = Graph.prototype.traverseDependencies; + const { Graph, } = require('@expo/metro/metro/DeltaBundler/Graph'); + const original_traverseDependencies = Graph.prototype + .traverseDependencies; if (!original_traverseDependencies.__patched) { original_traverseDependencies.__patched = true; - Graph.prototype.traverseDependencies = function (paths, options) { + // eslint-disable-next-line no-inner-declarations + function traverseDependencies(paths, options) { this.dependencies.forEach((dependency) => { // Find any dependencies that have been marked as `skipCache` and ensure they are invalidated. // `skipCache` is set when a CSS module is found by PostCSS. @@ -44,7 +47,7 @@ function patchMetroGraphToSupportUncachedModules() { !paths.includes(dependency.path)) { // Ensure we invalidate the `unstable_transformResultKey` (input hash) so the module isn't removed in // the Graph._processModule method. - dependency.unstable_transformResultKey = dependency.unstable_transformResultKey + '.'; + (0, setOnReadonly_1.setOnReadonly)(dependency, 'unstable_transformResultKey', dependency.unstable_transformResultKey + '.'); // Add the path to the list of modified paths so it gets run through the transformer again, // this will ensure it is passed to PostCSS -> Tailwind. paths.push(dependency.path); @@ -52,9 +55,10 @@ function patchMetroGraphToSupportUncachedModules() { }); // Invoke the original method with the new paths to ensure the standard behavior is preserved. return original_traverseDependencies.call(this, paths, options); - }; + } // Ensure we don't patch the method twice. - Graph.prototype.traverseDependencies.__patched = true; + Graph.prototype.traverseDependencies = traverseDependencies; + traverseDependencies.__patched = true; } } function createNumericModuleIdFactory() { diff --git a/packages/@expo/metro-config/build/ExpoMetroConfig.js.map b/packages/@expo/metro-config/build/ExpoMetroConfig.js.map index 42ac35cb12824f..7e89e2f0372163 100644 --- a/packages/@expo/metro-config/build/ExpoMetroConfig.js.map +++ b/packages/@expo/metro-config/build/ExpoMetroConfig.js.map @@ -1 +1 @@ -{"version":3,"file":"ExpoMetroConfig.js","sourceRoot":"","sources":["../src/ExpoMetroConfig.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ExpoMetroConfig.js","sourceRoot":"","sources":["../src/ExpoMetroConfig.ts"],"names":[],"mappings":";;;;;;AA+IA,kEAyCC;AAED,4CAwMC;AAlYD,qEAAqE;AACrE,yCAA8C;AAC9C,8CAA2E;AAC3E,gEAAuC;AASvC,yDAAqD;AAErD,kDAA0B;AAC1B,4CAAoB;AACpB,gDAAwB;AACxB,gEAAuC;AAEvC,qDAAsF;AAkXhE,yGAlXa,yCAAwB,OAkXb;AAjX9C,+BAA4B;AAC5B,6CAAyC;AACzC,uDAAoD;AACpD,uDAAoD;AACpD,2DAA2D;AAE3D,0DAA2D;AAC3D,0EAAuE;AACvE,wDAAkE;AAClE,2DAA6D;AAC7D,+CAA+C;AAC/C,yDAAsD;AAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAuB,CAAC;AAkC1E,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC,8EAA8E;AAC9E,uEAAuE;AACvE,SAAS,uCAAuC;IAC9C,MAAM,EACJ,KAAK,GACN,GAA0D,OAAO,CAAC,sCAAsC,CAAC,CAAC;IAO3G,MAAM,6BAA6B,GAAG,KAAK,CAAC,SAAS;SAClD,oBAA4C,CAAC;IAEhD,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,CAAC;QAC7C,6BAA6B,CAAC,SAAS,GAAG,IAAI,CAAC;QAC/C,iDAAiD;QACjD,SAAS,oBAAoB,CAAc,KAAe,EAAE,OAA0B;YACpF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAA6B,EAAE,EAAE;gBAC1D,8FAA8F;gBAC9F,4DAA4D;gBAC5D,IACE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC;oBAC1D,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAChC,CAAC;oBACD,qGAAqG;oBACrG,mCAAmC;oBACnC,IAAA,6BAAa,EACX,UAAU,EACV,6BAA6B,EAC7B,UAAU,CAAC,2BAA2B,GAAG,GAAG,CAC7C,CAAC;oBAEF,2FAA2F;oBAC3F,wDAAwD;oBACxD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,8FAA8F;YAC9F,OAAO,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QACD,0CAA0C;QAC1C,KAAK,CAAC,SAAS,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC5D,oBAAoB,CAAC,SAAS,GAAG,IAAI,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B;IACnC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAC9B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,CAAC,UAAkB,EAAE,EAAE;QAC5B,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,EAAE,GAAG,MAAM,EAAE,CAAC;YACd,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAoC,EAAK;IACvD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;IACrC,OAAO,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAM,CAAC;AACV,CAAC;AAED,SAAgB,2BAA2B,CACzC,IAAY;IAEZ,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,KAAa,EAAE,EAAE;QAC1D,2IAA2I;QAC3I,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,kBAAkB,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAA,6BAAe,EAAC,UAAU,CAAC,EAAE,CAAC;YACvC,oCAAoC;YACpC,OAAO,UAAU,CAAC;QACpB,CAAC;aAAM,IAAI,cAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,OAAO,IAAA,sBAAW,EAAC,cAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,sBAAW,EAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAErD,iCAAiC;IACjC,0EAA0E;IAC1E,OAAO,CAAC,UAAkB,EAAE,OAAoD,EAAU,EAAE;QAC1F,MAAM,GAAG,GAAG,OAAO,EAAE,WAAW,IAAI,QAAQ,CAAC;QAE7C,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,yFAAyF;YACzF,6DAA6D;YAC7D,OAAO,qBAAqB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACvB,iCAAiC;YACjC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,yFAAyF;QACzF,MAAM,KAAK,GAAG,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,OAAO,EAAE,QAAQ,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,6DAA6D;QAC7D,OAAO,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAC9B,WAAmB,EACnB,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,wCAAwC,KAA2B,EAAE;IAElG,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,WAAW,EAAE,GAAG,IAAA,gCAAiB,EAAC,WAAW,CAAC,CAAC;IAEhG,IAAI,YAAY,EAAE,CAAC;QACjB,uCAAuC,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,IAAI,SAAG,CAAC,eAAe,CAAC;IAE1D,IAAI,QAAQ,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACtC,oBAAoB,GAAG,IAAI,CAAC;QAC5B,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CACR,kBAAkB,eAAK,CAAC,IAAI,CAAA,iBAAiB,wDAAwD,CACtG,CACF,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,IAAA,sBAAW,EAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC5F,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvE,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAE3D,qDAAqD;IACrD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvB,MAAM,iBAAiB,GAAG,aAAa,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IAEhF,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,IAAI,YAAY,EAAE,CAAC;QACjB,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACjD,kEAAkE;QAClE,6BAA6B;QAC7B,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,uBAAc,EAAC,WAAW,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,IAAA,iCAAe,EAAC,WAAW,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,iCAAe,EAAC,WAAW,CAAC,CAAC;IACtD,IAAI,SAAG,CAAC,UAAU,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,eAAe,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,oBAAoB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,wBAAwB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,iBAAiB,iBAAiB,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM;IACJ,yGAAyG;IACzG,yFAAyF;IACzF,QAAQ,EACR,GAAG,kBAAkB,EACtB,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,IAAI,sBAAS,CAAM;QACpC,IAAI,EAAE,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC;KAC5C,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,0BAAkB,EAAC,WAAW,CAAC,CAAC;IAEnD,2FAA2F;IAC3F,+FAA+F;IAC/F,MAAM,WAAW,GAAyB,WAAW,CAAC,kBAAkB,EAAE;QACxE,YAAY;QACZ,QAAQ,EAAE;YACR,6BAA6B,EAAE;gBAC7B,GAAG,EAAE,CAAC,cAAc,CAAC;gBACrB,OAAO,EAAE,CAAC,cAAc,CAAC;gBACzB,wCAAwC;gBACxC,GAAG,EAAE,CAAC,SAAS,CAAC;aACjB;YACD,kBAAkB,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC;YACvD,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;YAC7B,SAAS,EAAE,kBAAkB,CAAC,QAAQ,CAAC,SAAS;iBAC7C,MAAM;YACL,mDAAmD;YACnD,CAAC,MAAM,EAAE,MAAM,CAAC;YAChB,oDAAoD;YACpD,CAAC,IAAI,CAAC,CACP;iBACA,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/D,UAAU;YACV,gBAAgB;SACjB;QACD,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,OAAO,EAAE;YACP,mJAAmJ;YACnJ,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC;SAChD;QACD,UAAU,EAAE;YACV,kBAAkB,CAAC,MAAM;gBACvB,2DAA2D;gBAC3D,IAAI,IAAA,6BAAe,EAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAE9C,+BAA+B;gBAC/B,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrD,kIAAkI;oBAClI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAC9E,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,qBAAqB,EAAE,SAAG,CAAC,sBAAsB;gBAC/C,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;gBACpD,CAAC,CAAC,4BAA4B;YAEhC,6BAA6B,EAAE,GAAG,EAAE;gBAClC,MAAM,UAAU,GAAa;oBAC3B,gBAAgB;oBAChB,OAAO,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;iBAC7E,CAAC;gBAEF,MAAM,UAAU,GAAG,sBAAW,CAAC,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;gBAC/E,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAChE,CAAC;gBAED,sFAAsF;gBACtF,qGAAqG;gBACrG,MAAM,YAAY,GAAG,sBAAW,CAAC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;gBAC5E,IAAI,YAAY,EAAE,CAAC;oBACjB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAChE,CAAC;gBAED,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC7B,oCAAoC;gBACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBACvB,OAAO;wBACL,2EAA2E;wBAC3E,qCAAqC;wBACrC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC;qBAC1D,CAAC;gBACJ,CAAC;gBAED,mBAAmB;gBACnB,OAAO,OAAO,CAAC,4BAA4B,CAAC,EAAE,CAAC;YACjD,CAAC;SACF;QACD,MAAM,EAAE;YACN,iBAAiB,EAAE,IAAA,wCAAoB,EAAC,WAAW,CAAC;YACpD,IAAI,EAAE,MAAM,CAAC,SAAG,CAAC,cAAc,CAAC,IAAI,IAAI;YACxC,oEAAoE;YACpE,gDAAgD;YAChD,mBAAmB,EAAE,UAAU;SAChC;QACD,YAAY,EAAE;YACZ,cAAc,EAAE,IAAA,yCAAwB,GAAE;SAC3C;QACD,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC;QACvE,mGAAmG;QACnG,WAAW,EAAE;YACX,8FAA8F;YAC9F,sBAAsB,EAAE,KAAK;YAC7B,iCAAiC;YACjC,WAAW,EAAE,IAAA,8BAAoB,EAAC,WAAW,CAAC;YAC9C,gBAAgB,EAAE,GAAG,CAAC,YAAY;gBAChC,CAAC,CAAC,IAAA,wBAAU,EAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC9D,CAAC,CAAC,IAAI;YACR,WAAW;YACX,wEAAwE;YACxE,iBAAiB;YACjB,iEAAiE;YACjE,wBAAwB,EAAE,cAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;YAChE,4BAA4B;YAC5B,4BAA4B,EAAE,IAAI;YAClC,yBAAyB,EAAE,IAAI;YAC/B,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC;YAC5D,8DAA8D;YAC9D,sBAAsB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC1D,iBAAiB,EAAE,wCAAwC;YAC3D,sBAAsB;YACtB,mBAAmB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBAChC,SAAS,EAAE;oBACT,yBAAyB,EAAE,KAAK;oBAChC,cAAc,EAAE,KAAK;iBACtB;aACF,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO,IAAA,yCAAmB,EAAC,WAAW,EAAE,EAAE,wCAAwC,EAAE,CAAC,CAAC;AACxF,CAAC;AAKD,8BAA8B;AACjB,QAAA,UAAU,GAAG,SAAG,CAAC,UAAU,CAAC;AAEzC,SAAS,aAAa,CAAC,WAAmB,EAAE,OAAe;IACzD,MAAM,SAAS,GAAG,sBAAW,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,GAAG,GAAG,mBAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEzC,KAAK,CAAC,GAAG,OAAO,gBAAgB,EAAE,aAAa,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG,EAAE,cAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,KAAK,GAAG,sBAAW,CAAC,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,iBAAiB,CAAC,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/customizeFrame.d.ts b/packages/@expo/metro-config/build/customizeFrame.d.ts index 4616bb47de938c..02081adc930696 100644 --- a/packages/@expo/metro-config/build/customizeFrame.d.ts +++ b/packages/@expo/metro-config/build/customizeFrame.d.ts @@ -1,4 +1,4 @@ -import { SymbolicatorConfigT } from 'metro-config'; +import type { SymbolicatorConfigT } from '@expo/metro/metro-config'; type CustomizeFrameFunc = SymbolicatorConfigT['customizeFrame']; export declare const INTERNAL_CALLSITES_REGEX: RegExp; /** diff --git a/packages/@expo/metro-config/build/file-store.d.ts b/packages/@expo/metro-config/build/file-store.d.ts index 2e0fe792be7faf..3d1965daca828f 100644 --- a/packages/@expo/metro-config/build/file-store.d.ts +++ b/packages/@expo/metro-config/build/file-store.d.ts @@ -1,4 +1,4 @@ -import UpstreamFileStore from 'metro-cache/src/stores/FileStore'; +import UpstreamFileStore from '@expo/metro/metro-cache/stores/FileStore'; export declare class FileStore extends UpstreamFileStore { set(key: Buffer, value: any): Promise; } diff --git a/packages/@expo/metro-config/build/file-store.js b/packages/@expo/metro-config/build/file-store.js index 6beb69851f2157..b412fc72d7e547 100644 --- a/packages/@expo/metro-config/build/file-store.js +++ b/packages/@expo/metro-config/build/file-store.js @@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileStore = void 0; -const FileStore_1 = __importDefault(require("metro-cache/src/stores/FileStore")); +const FileStore_1 = __importDefault(require("@expo/metro/metro-cache/stores/FileStore")); const debug = require('debug')('expo:metro:cache'); class FileStore extends FileStore_1.default { async set(key, value) { diff --git a/packages/@expo/metro-config/build/file-store.js.map b/packages/@expo/metro-config/build/file-store.js.map index eaec50c868c03f..3fea9c6971f137 100644 --- a/packages/@expo/metro-config/build/file-store.js.map +++ b/packages/@expo/metro-config/build/file-store.js.map @@ -1 +1 @@ -{"version":3,"file":"file-store.js","sourceRoot":"","sources":["../src/file-store.ts"],"names":[],"mappings":";;;;;;AAAA,iFAAiE;AAEjE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAuB,CAAC;AAEzE,MAAa,SAAa,SAAQ,mBAAoB;IACpD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU;QAC/B,iEAAiE;QACjE,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC7C,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;CACF;AATD,8BASC"} \ No newline at end of file +{"version":3,"file":"file-store.js","sourceRoot":"","sources":["../src/file-store.ts"],"names":[],"mappings":";;;;;;AAAA,yFAAyE;AAEzE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAuB,CAAC;AAEzE,MAAa,SAAa,SAAQ,mBAAoB;IACpD,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU;QAC/B,iEAAiE;QACjE,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC7C,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;CACF;AATD,8BASC"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.d.ts b/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.d.ts index 971104053eb221..0a6d627a931ace 100644 --- a/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.d.ts +++ b/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.d.ts @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import { ReadOnlyGraph, MixedOutput, Module, SerializerOptions } from 'metro'; +import type { ReadOnlyGraph, MixedOutput, Module, SerializerOptions } from '@expo/metro/metro/DeltaBundler/types.flow'; import { SerializerParameters } from './withExpoSerializers'; export declare function getTransformEnvironment(url: string): string | null; /** Strips the process.env polyfill in server environments to allow for accessing environment variables off the global. */ diff --git a/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js b/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js index 02ca4109da1448..3b13e076369a5a 100644 --- a/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js +++ b/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js @@ -7,8 +7,8 @@ exports.getTransformEnvironment = getTransformEnvironment; exports.serverPreludeSerializerPlugin = serverPreludeSerializerPlugin; exports.environmentVariableSerializerPlugin = environmentVariableSerializerPlugin; exports.getEnvVarDevString = getEnvVarDevString; -const CountingSet_1 = __importDefault(require("metro/src/lib/CountingSet")); -const countLines_1 = __importDefault(require("metro/src/lib/countLines")); +const CountingSet_1 = __importDefault(require("@expo/metro/metro/lib/CountingSet")); +const countLines_1 = __importDefault(require("@expo/metro/metro/lib/countLines")); const debug = require('debug')('expo:metro-config:serializer:env-var'); function getTransformEnvironment(url) { const match = url.match(/[&?]transform\.environment=([^&]+)/); diff --git a/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js.map b/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js.map index 8d7671dd6db352..a8246a52af25b1 100644 --- a/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js.map +++ b/packages/@expo/metro-config/build/serializer/environmentVariableSerializerPlugin.js.map @@ -1 +1 @@ -{"version":3,"file":"environmentVariableSerializerPlugin.js","sourceRoot":"","sources":["../../src/serializer/environmentVariableSerializerPlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"environmentVariableSerializerPlugin.js","sourceRoot":"","sources":["../../src/serializer/environmentVariableSerializerPlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/exportHermes.js b/packages/@expo/metro-config/build/serializer/exportHermes.js index f924ffcad0d9e8..e3a852192d5307 100644 --- a/packages/@expo/metro-config/build/serializer/exportHermes.js +++ b/packages/@expo/metro-config/build/serializer/exportHermes.js @@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildHermesBundleAsync = buildHermesBundleAsync; +const metro_source_map_1 = require("@expo/metro/metro-source-map"); const spawn_async_1 = __importDefault(require("@expo/spawn-async")); const chalk_1 = __importDefault(require("chalk")); const fs_1 = __importDefault(require("fs")); -const metro_source_map_1 = require("metro-source-map"); const os_1 = __importDefault(require("os")); const path_1 = __importDefault(require("path")); const process_1 = __importDefault(require("process")); diff --git a/packages/@expo/metro-config/build/serializer/exportHermes.js.map b/packages/@expo/metro-config/build/serializer/exportHermes.js.map index 6150f562d4f228..b7c7fd5751dc7d 100644 --- a/packages/@expo/metro-config/build/serializer/exportHermes.js.map +++ b/packages/@expo/metro-config/build/serializer/exportHermes.js.map @@ -1 +1 @@ -{"version":3,"file":"exportHermes.js","sourceRoot":"","sources":["../../src/serializer/exportHermes.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"exportHermes.js","sourceRoot":"","sources":["../../src/serializer/exportHermes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.d.ts b/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.d.ts index ec944360544882..bc8d430e46a949 100644 --- a/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.d.ts +++ b/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.d.ts @@ -8,7 +8,7 @@ * Fork with bundle splitting and better source map support. * https://github.com/facebook/metro/blob/bbdd7d7c5e6e0feb50a9967ffae1f723c1d7c4e8/packages/metro/src/DeltaBundler/Serializers/baseJSBundle.js#L1 */ -import type { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; +import type { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from '@expo/metro/metro/DeltaBundler/types.flow'; export type ModuleMap = [number, string][]; export type Bundle = { modules: ModuleMap; diff --git a/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js b/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js index b61ed2c2d444ae..d77911a161a8d1 100644 --- a/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js +++ b/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js @@ -17,10 +17,10 @@ exports.getPlatformOption = getPlatformOption; exports.getBaseUrlOption = getBaseUrlOption; exports.baseJSBundle = baseJSBundle; exports.baseJSBundleWithDependencies = baseJSBundleWithDependencies; +const CountingSet_1 = __importDefault(require("@expo/metro/metro/lib/CountingSet")); +const countLines_1 = __importDefault(require("@expo/metro/metro/lib/countLines")); +const getAppendScripts_1 = __importDefault(require("@expo/metro/metro/lib/getAppendScripts")); const jsc_safe_url_1 = require("jsc-safe-url"); -const CountingSet_1 = __importDefault(require("metro/src/lib/CountingSet")); -const countLines_1 = __importDefault(require("metro/src/lib/countLines")); -const getAppendScripts_1 = __importDefault(require("metro/src/lib/getAppendScripts")); const processModules_1 = require("./processModules"); function getPlatformOption(graph, options) { if (graph.transformOptions?.platform != null) { diff --git a/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js.map b/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js.map index 1d870910e79848..86610a3bb5a706 100644 --- a/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js.map +++ b/packages/@expo/metro-config/build/serializer/fork/baseJSBundle.js.map @@ -1 +1 @@ -{"version":3,"file":"baseJSBundle.js","sourceRoot":"","sources":["../../../src/serializer/fork/baseJSBundle.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"baseJSBundle.js","sourceRoot":"","sources":["../../../src/serializer/fork/baseJSBundle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.d.ts b/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.d.ts index b91d3c28923fd2..e00ed71de86703 100644 --- a/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.d.ts +++ b/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.d.ts @@ -8,8 +8,8 @@ * Fork with support for using the same serializer paths as production and the first bundle. * https://github.com/facebook/metro/blob/87f717b8f5987827c75c82b3cb390060672628f0/packages/metro/src/DeltaBundler/Serializers/hmrJSBundle.js#L1C1-L152C30 */ -import type { DeltaResult, ReadOnlyGraph } from 'metro'; -import type { HmrModule } from 'metro-runtime/src/modules/types.flow'; +import type { DeltaResult, ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler'; +import type { HmrModule } from '@expo/metro/metro-runtime/modules/types.flow'; import type { UrlWithParsedQuery as EntryPointURL } from 'node:url'; type Options = { clientUrl: EntryPointURL; diff --git a/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js b/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js index 9f2fbe0cbe7f5f..ea5c9e2cba2fc6 100644 --- a/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js +++ b/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js @@ -13,8 +13,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); +const metro_transform_plugins_1 = require("@expo/metro/metro-transform-plugins"); const jsc_safe_url_1 = __importDefault(require("jsc-safe-url")); -const metro_transform_plugins_1 = require("metro-transform-plugins"); const node_path_1 = __importDefault(require("node:path")); const node_url_1 = __importDefault(require("node:url")); const js_1 = require("./js"); diff --git a/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js.map b/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js.map index 6c2392ebf16f90..9e13b63a57a57c 100644 --- a/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js.map +++ b/packages/@expo/metro-config/build/serializer/fork/hmrJSBundle.js.map @@ -1 +1 @@ -{"version":3,"file":"hmrJSBundle.js","sourceRoot":"","sources":["../../../src/serializer/fork/hmrJSBundle.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"hmrJSBundle.js","sourceRoot":"","sources":["../../../src/serializer/fork/hmrJSBundle.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/fork/js.d.ts b/packages/@expo/metro-config/build/serializer/fork/js.d.ts index 9ee8cc6042ea60..5d677f2fb77fd0 100644 --- a/packages/@expo/metro-config/build/serializer/fork/js.d.ts +++ b/packages/@expo/metro-config/build/serializer/fork/js.d.ts @@ -8,8 +8,8 @@ * Fork of the metro helper, but with bundle splitting support. * https://github.com/facebook/metro/blob/bbdd7d7c5e6e0feb50a9967ffae1f723c1d7c4e8/packages/metro/src/DeltaBundler/Serializers/helpers/js.js#L1 */ -import type { MixedOutput, Module } from 'metro'; -import type { JsOutput } from 'metro-transform-worker'; +import type { MixedOutput, Module } from '@expo/metro/metro/DeltaBundler'; +import type { JsOutput } from '@expo/metro/metro-transform-worker'; export type Options = { createModuleId: (module: string) => number | string; dev: boolean; diff --git a/packages/@expo/metro-config/build/serializer/fork/js.js b/packages/@expo/metro-config/build/serializer/fork/js.js index 77268e312c1965..51bab89cb9e195 100644 --- a/packages/@expo/metro-config/build/serializer/fork/js.js +++ b/packages/@expo/metro-config/build/serializer/fork/js.js @@ -18,9 +18,10 @@ exports.getModuleParams = getModuleParams; exports.getJsOutput = getJsOutput; exports.isJsModule = isJsModule; exports.isJsOutput = isJsOutput; +const isResolvedDependency_1 = require("@expo/metro/metro/lib/isResolvedDependency"); +const metro_transform_plugins_1 = require("@expo/metro/metro-transform-plugins"); const assert_1 = __importDefault(require("assert")); const jsc_safe_url_1 = __importDefault(require("jsc-safe-url")); -const metro_transform_plugins_1 = require("metro-transform-plugins"); const path_1 = __importDefault(require("path")); function wrapModule(module, options) { const output = getJsOutput(module); @@ -36,6 +37,9 @@ function getModuleParams(module, options) { const paths = {}; let hasPaths = false; const dependencyMapArray = Array.from(module.dependencies.values()).map((dependency) => { + if (!(0, isResolvedDependency_1.isResolvedDependency)(dependency)) { + return null; + } let modulePath = dependency.absolutePath; if (modulePath == null) { if (dependency.data.data.isOptional) { diff --git a/packages/@expo/metro-config/build/serializer/fork/js.js.map b/packages/@expo/metro-config/build/serializer/fork/js.js.map index fb57fa3689285b..3d677e048315d6 100644 --- a/packages/@expo/metro-config/build/serializer/fork/js.js.map +++ b/packages/@expo/metro-config/build/serializer/fork/js.js.map @@ -1 +1 @@ -{"version":3,"file":"js.js","sourceRoot":"","sources":["../../../src/serializer/fork/js.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js.js","sourceRoot":"","sources":["../../../src/serializer/fork/js.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;AAsBH,gCAaC;AAED,0CAuGC;AAED,kCAwBC;AAED,gCAEC;AAED,gCAEC;AA3KD,qFAAkF;AAClF,iFAA4E;AAE5E,oDAA4B;AAC5B,gEAAsC;AACtC,gDAAwB;AAcxB,SAAgB,UAAU,CACxB,MAAc,EACd,OAAgB;IAEhB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAA,+CAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC;IAC/D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,SAAgB,eAAe,CAC7B,MAAc,EACd,OAUC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAErD,MAAM,KAAK,GAAyC,EAAE,CAAC;IACvD,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACrF,IAAI,CAAC,IAAA,2CAAoB,EAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;QAEzC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpC,yDAAyD;gBACzD,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,CAAC,IAAI,iDAAiD,IAAI,CAAC,SAAS,CACnF,UAAU,EACV,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC9C;QACE,+FAA+F;QAC/F,gEAAgE;QAChE,+BAA+B;QAE/B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,EACtC,CAAC;YACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;oBACtB,QAAQ,GAAG,IAAI,CAAC;oBAChB,6DAA6D;oBAE7D,oEAAoE;oBACpE,8CAA8C;oBAE9C,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,CAAC,sBAAU,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC5E,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAChD,8DAA8D;wBAC9D,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;wBACzC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;wBACtC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;wBACxC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;oBACzC,CAAC;oBAED,MAAM,UAAU,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC9E,KAAK,CAAC,EAAE,CAAC;wBACP,GAAG;4BACH,cAAI,CAAC,IAAI,CACP,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC;4BACxB,2BAA2B;4BAC3B,cAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CACpD;4BACD,UAAU;4BACV,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,wBAAwB,IAAI,IAAI,EAAE,CAAC;gBAC3E,QAAQ,GAAG,IAAI,CAAC;gBAChB,uGAAuG;gBACvG,KAAK,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG;QACb,QAAQ;QACR,QAAQ;YACN,CAAC,CAAC;gBACE,GAAG,kBAAkB;gBACrB,KAAK;aACN;YACH,CAAC,CAAC,kBAAkB;KACvB,CAAC;IAEF,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,gEAAgE;QAChE,0DAA0D;QAC1D,MAAM,CAAC,IAAI,CAAC,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,SAAgB,WAAW,CAAC,MAI3B;IACC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7E,IAAA,gBAAM,EACJ,SAAS,CAAC,MAAM,KAAK,CAAC,EACtB,gDAAgD,MAAM,CAAC,IAAI,IAAI,gBAAgB,QAC7E,SAAS,CAAC,MACZ,cAAc,CACf,CAAC;IAEF,MAAM,QAAQ,GAAa,SAAS,CAAC,CAAC,CAAmB,CAAC;IAE1D,IAAA,gBAAM,EACJ,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EACxC,0CAA0C,MAAM,CAAC,IAAI,IAAI,gBAAgB,QACvE,QAAQ,CAAC,IACX,2BAA2B,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CACtD,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,UAAU,CAAC,MAAmB;IAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/fork/processModules.d.ts b/packages/@expo/metro-config/build/serializer/fork/processModules.d.ts index 3f5d7a4264eaa0..caf54b50063263 100644 --- a/packages/@expo/metro-config/build/serializer/fork/processModules.d.ts +++ b/packages/@expo/metro-config/build/serializer/fork/processModules.d.ts @@ -5,7 +5,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import type { Module } from 'metro'; +import type { Module } from '@expo/metro/metro/DeltaBundler'; export declare function processModules(modules: readonly Module[], { filter, createModuleId, dev, includeAsyncPaths, projectRoot, serverRoot, sourceUrl, splitChunks, skipWrapping, computedAsyncModulePaths, }: { splitChunks: boolean; filter?: (module: Module) => boolean; diff --git a/packages/@expo/metro-config/build/serializer/getCssDeps.d.ts b/packages/@expo/metro-config/build/serializer/getCssDeps.d.ts index 575342ad525a79..efaea5e5a858f8 100644 --- a/packages/@expo/metro-config/build/serializer/getCssDeps.d.ts +++ b/packages/@expo/metro-config/build/serializer/getCssDeps.d.ts @@ -1,6 +1,5 @@ -import type { Module } from 'metro'; +import type { Module, ReadOnlyDependencies } from '@expo/metro/metro/DeltaBundler/types.flow'; import { SerialAsset } from './serializerAssets'; -export type ReadOnlyDependencies = ReadonlyMap>; type Options = { processModuleFilter: (modules: Module) => boolean; assetPlugins: readonly string[]; diff --git a/packages/@expo/metro-config/build/serializer/getCssDeps.js b/packages/@expo/metro-config/build/serializer/getCssDeps.js index 06d62ecbfeb68f..edbf1b8e96e456 100644 --- a/packages/@expo/metro-config/build/serializer/getCssDeps.js +++ b/packages/@expo/metro-config/build/serializer/getCssDeps.js @@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.getCssSerialAssets = getCssSerialAssets; exports.fileNameFromContents = fileNameFromContents; exports.getFileName = getFileName; -const js_js_1 = require("metro/src/DeltaBundler/Serializers/helpers/js.js"); +// NOTE(@kitten): jest-resolver -> resolve.exports bug (https://github.com/lukeed/resolve.exports/issues/40) +const js_js_1 = require("@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js"); +const isResolvedDependency_1 = require("@expo/metro/metro/lib/isResolvedDependency"); const path_1 = __importDefault(require("path")); const css_1 = require("../transform-worker/css"); const filePath_1 = require("../utils/filePath"); @@ -78,7 +80,9 @@ function getCssSerialAssets(dependencies, { projectRoot, entryFile }) { } next.dependencies.forEach((dep) => { // Traverse the deps next to ensure the CSS is pushed in the correct order. - checkDep(dep.absolutePath); + if ((0, isResolvedDependency_1.isResolvedDependency)(dep)) { + checkDep(dep.absolutePath); + } }); // Then push the JS after the siblings. if (getCssMetadata(next) && isTypeJSModule(next)) { diff --git a/packages/@expo/metro-config/build/serializer/getCssDeps.js.map b/packages/@expo/metro-config/build/serializer/getCssDeps.js.map index ce2587b59a2830..d9ac7bf3ce67a3 100644 --- a/packages/@expo/metro-config/build/serializer/getCssDeps.js.map +++ b/packages/@expo/metro-config/build/serializer/getCssDeps.js.map @@ -1 +1 @@ -{"version":3,"file":"getCssDeps.js","sourceRoot":"","sources":["../../src/serializer/getCssDeps.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"getCssDeps.js","sourceRoot":"","sources":["../../src/serializer/getCssDeps.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/jsOutput.d.ts b/packages/@expo/metro-config/build/serializer/jsOutput.d.ts index bd23c834740275..95cbf21b83e443 100644 --- a/packages/@expo/metro-config/build/serializer/jsOutput.d.ts +++ b/packages/@expo/metro-config/build/serializer/jsOutput.d.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ import { types as t } from '@babel/core'; -import { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from 'metro-source-map'; -import { JsTransformerConfig } from 'metro-transform-worker'; +import type { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from '@expo/metro/metro-source-map'; +import type { JsTransformerConfig } from '@expo/metro/metro-transform-worker'; import { Options as CollectDependenciesOptions } from '../transform-worker/collect-dependencies'; export type JSFileType = 'js/script' | 'js/module' | 'js/module/asset'; export type JsOutput = { diff --git a/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.d.ts b/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.d.ts index 0c0f1a2c4dd165..bcdd35c48290cc 100644 --- a/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.d.ts +++ b/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.d.ts @@ -1,5 +1,5 @@ -import { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; -import { SerializerConfigT } from 'metro-config'; +import type { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from '@expo/metro/metro/DeltaBundler/types.flow'; +import type { SerializerConfigT } from '@expo/metro/metro-config'; import { Dependency } from '../transform-worker/collect-dependencies'; type Serializer = NonNullable; type SerializerParameters = Parameters; diff --git a/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js b/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js index 7c12f1b2e04d7d..a9b4b2c60d1a0d 100644 --- a/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js +++ b/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js @@ -40,11 +40,12 @@ exports.sortDependencies = sortDependencies; exports.isEnvBoolean = isEnvBoolean; exports.reconcileTransformSerializerPlugin = reconcileTransformSerializerPlugin; const generator_1 = __importDefault(require("@babel/generator")); +const JsFileWrapping_1 = __importDefault(require("@expo/metro/metro/ModuleGraph/worker/JsFileWrapping")); +const importLocationsPlugin_1 = require("@expo/metro/metro/ModuleGraph/worker/importLocationsPlugin"); +const isResolvedDependency_1 = require("@expo/metro/metro/lib/isResolvedDependency"); +const metro_source_map_1 = require("@expo/metro/metro-source-map"); +const metro_transform_plugins_1 = require("@expo/metro/metro-transform-plugins"); const assert_1 = __importDefault(require("assert")); -const JsFileWrapping_1 = __importDefault(require("metro/src/ModuleGraph/worker/JsFileWrapping")); -const importLocationsPlugin_1 = require("metro/src/ModuleGraph/worker/importLocationsPlugin"); -const metro_source_map_1 = require("metro-source-map"); -const metro_transform_plugins_1 = __importDefault(require("metro-transform-plugins")); const node_util_1 = __importDefault(require("node:util")); const jsOutput_1 = require("./jsOutput"); const sideEffects_1 = require("./sideEffects"); @@ -153,7 +154,9 @@ async function reconcileTransformSerializerPlugin(entryPoint, preModules, graph, const { importDefault, importAll } = reconcile; const sideEffectReferences = () => [...value.dependencies.values()] .filter((dep) => { - const fullDep = graph.dependencies.get(dep.absolutePath); + const fullDep = (0, isResolvedDependency_1.isResolvedDependency)(dep) + ? graph.dependencies.get(dep.absolutePath) + : undefined; return fullDep && (0, sideEffects_1.hasSideEffectWithDebugTrace)(options, graph, fullDep)[0]; }) .map((dep) => dep.data.name); @@ -213,7 +216,7 @@ async function reconcileTransformSerializerPlugin(entryPoint, preModules, graph, } if (reconcile.normalizePseudoGlobals) { // This MUST run before `generate` as it mutates the ast out of place. - reserved.push(...metro_transform_plugins_1.default.normalizePseudoGlobals(wrappedAst, { + reserved.push(...(0, metro_transform_plugins_1.normalizePseudoGlobals)(wrappedAst, { reservedNames: reserved, })); } diff --git a/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js.map b/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js.map index b1746327e5b3ca..25a911635069bd 100644 --- a/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js.map +++ b/packages/@expo/metro-config/build/serializer/reconcileTransformSerializerPlugin.js.map @@ -1 +1 @@ -{"version":3,"file":"reconcileTransformSerializerPlugin.js","sourceRoot":"","sources":["../../src/serializer/reconcileTransformSerializerPlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"reconcileTransformSerializerPlugin.js","sourceRoot":"","sources":["../../src/serializer/reconcileTransformSerializerPlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/serializeChunks.d.ts b/packages/@expo/metro-config/build/serializer/serializeChunks.d.ts index e4e019489ef941..7e4c87a258f854 100644 --- a/packages/@expo/metro-config/build/serializer/serializeChunks.d.ts +++ b/packages/@expo/metro-config/build/serializer/serializeChunks.d.ts @@ -1,5 +1,12 @@ -import { AssetData, MetroConfig, MixedOutput, Module, ReadOnlyGraph } from 'metro'; -import { ConfigT, SerializerConfigT } from 'metro-config'; +/** + * Copyright © 2023 650 Industries. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { MetroConfig, AssetData } from '@expo/metro/metro'; +import type { MixedOutput, Module, ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler/types.flow'; +import type { ConfigT, SerializerConfigT } from '@expo/metro/metro-config'; import { ExpoSerializerOptions } from './fork/baseJSBundle'; import { SerialAsset } from './serializerAssets'; import { SerializerConfigOptions } from './withExpoSerializers'; diff --git a/packages/@expo/metro-config/build/serializer/serializeChunks.js b/packages/@expo/metro-config/build/serializer/serializeChunks.js index fa6213049ecdbe..261043f058d0ca 100644 --- a/packages/@expo/metro-config/build/serializer/serializeChunks.js +++ b/packages/@expo/metro-config/build/serializer/serializeChunks.js @@ -6,15 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Chunk = void 0; exports.graphToSerialAssetsAsync = graphToSerialAssetsAsync; exports.getSortedModules = getSortedModules; -/** - * Copyright © 2023 650 Industries. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +const sourceMapString_1 = __importDefault(require("@expo/metro/metro/DeltaBundler/Serializers/sourceMapString")); +const bundleToString_1 = __importDefault(require("@expo/metro/metro/lib/bundleToString")); +const isResolvedDependency_1 = require("@expo/metro/metro/lib/isResolvedDependency"); const assert_1 = __importDefault(require("assert")); -const sourceMapString_1 = __importDefault(require("metro/src/DeltaBundler/Serializers/sourceMapString")); -const bundleToString_1 = __importDefault(require("metro/src/lib/bundleToString")); const path_1 = __importDefault(require("path")); const debugId_1 = require("./debugId"); const exportHermes_1 = require("./exportHermes"); @@ -219,7 +214,7 @@ class Chunk { const computedAsyncModulePaths = {}; this.deps.forEach((module) => { module.dependencies.forEach((dependency) => { - if (dependency.data.data.asyncType) { + if ((0, isResolvedDependency_1.isResolvedDependency)(dependency) && dependency.data.data.asyncType) { const chunkContainingModule = chunks.find((chunk) => chunk.hasAbsolutePath(dependency.absolutePath)); (0, assert_1.default)(chunkContainingModule, 'Chunk containing module not found: ' + dependency.absolutePath); // NOTE(kitten): We shouldn't have any async imports on non-async chunks @@ -497,7 +492,10 @@ function gatherChunks(runtimePremodules, chunks, settings, preModules, graph, op chunks.add(entryChunk); function includeModule(entryModule) { for (const dependency of entryModule.dependencies.values()) { - if (dependency.data.data.asyncType && + if (!(0, isResolvedDependency_1.isResolvedDependency)(dependency)) { + continue; + } + else if (dependency.data.data.asyncType && // Support disabling multiple chunks. entryChunk.options.serializerOptions?.splitChunks !== false) { const isEntry = dependency.data.data.asyncType === 'worker'; diff --git a/packages/@expo/metro-config/build/serializer/serializeChunks.js.map b/packages/@expo/metro-config/build/serializer/serializeChunks.js.map index 5ce44b9b05f4d5..357ff7d5e652e2 100644 --- a/packages/@expo/metro-config/build/serializer/serializeChunks.js.map +++ b/packages/@expo/metro-config/build/serializer/serializeChunks.js.map @@ -1 +1 @@ -{"version":3,"file":"serializeChunks.js","sourceRoot":"","sources":["../../src/serializer/serializeChunks.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"serializeChunks.js","sourceRoot":"","sources":["../../src/serializer/serializeChunks.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/sideEffects.d.ts b/packages/@expo/metro-config/build/serializer/sideEffects.d.ts index 1a9cf267c257dd..a09fe4d0c4ce28 100644 --- a/packages/@expo/metro-config/build/serializer/sideEffects.d.ts +++ b/packages/@expo/metro-config/build/serializer/sideEffects.d.ts @@ -1,4 +1,10 @@ -import { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; +/** + * Copyright © 2024 650 Industries. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from '@expo/metro/metro/DeltaBundler/types.flow'; type AdvancedModule = Module & { sideEffects?: boolean | null; }; diff --git a/packages/@expo/metro-config/build/serializer/sideEffects.js b/packages/@expo/metro-config/build/serializer/sideEffects.js index 626135d362f7c2..6414a6b8fa7a57 100644 --- a/packages/@expo/metro-config/build/serializer/sideEffects.js +++ b/packages/@expo/metro-config/build/serializer/sideEffects.js @@ -6,12 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.hasSideEffectWithDebugTrace = hasSideEffectWithDebugTrace; exports._createSideEffectMatcher = _createSideEffectMatcher; exports.isVirtualModule = isVirtualModule; -/** - * Copyright © 2024 650 Industries. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +const isResolvedDependency_1 = require("@expo/metro/metro/lib/isResolvedDependency"); const fs_1 = __importDefault(require("fs")); const minimatch_1 = require("minimatch"); const path_1 = __importDefault(require("path")); @@ -24,7 +19,7 @@ function hasSideEffectWithDebugTrace(options, graph, value, parentTrace = [value } // Recursively check if any of the dependencies have side effects. for (const depReference of value.dependencies.values()) { - if (checked.has(depReference.absolutePath)) { + if (!(0, isResolvedDependency_1.isResolvedDependency)(depReference) || checked.has(depReference.absolutePath)) { continue; } checked.add(depReference.absolutePath); diff --git a/packages/@expo/metro-config/build/serializer/sideEffects.js.map b/packages/@expo/metro-config/build/serializer/sideEffects.js.map index 94ee64eedec75a..ad762984f1d31c 100644 --- a/packages/@expo/metro-config/build/serializer/sideEffects.js.map +++ b/packages/@expo/metro-config/build/serializer/sideEffects.js.map @@ -1 +1 @@ -{"version":3,"file":"sideEffects.js","sourceRoot":"","sources":["../../src/serializer/sideEffects.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sideEffects.js","sourceRoot":"","sources":["../../src/serializer/sideEffects.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.d.ts b/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.d.ts index 2bab3de57f22f3..6bf487af5152aa 100644 --- a/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.d.ts +++ b/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.d.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ import { types } from '@babel/core'; -import { MixedOutput, Module, ReadOnlyGraph } from 'metro'; -import { SerializerConfigT } from 'metro-config'; +import type { MixedOutput, Module, ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler/types.flow'; +import type { SerializerConfigT } from '@expo/metro/metro-config'; import { ExpoSerializerOptions } from './fork/baseJSBundle'; type Serializer = NonNullable; type SerializerParameters = Parameters; diff --git a/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js b/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js index d05a40d6f15bca..43d2a8f45fb949 100644 --- a/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js +++ b/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js @@ -13,6 +13,7 @@ exports.treeShakeSerializer = treeShakeSerializer; */ const core_1 = require("@babel/core"); const generator_1 = __importDefault(require("@babel/generator")); +const isResolvedDependency_1 = require("@expo/metro/metro/lib/isResolvedDependency"); const assert_1 = __importDefault(require("assert")); const jsOutput_1 = require("./jsOutput"); const reconcileTransformSerializerPlugin_1 = require("./reconcileTransformSerializerPlugin"); @@ -190,7 +191,9 @@ async function treeShakeSerializer(entryPoint, preModules, graph, options) { const targetHashId = getDependencyHashIdForImportModuleId(value, importModuleId); // If the dependency was already removed, then we don't need to do anything. const importInstance = value.dependencies.get(targetHashId); - const graphEntryForTargetImport = graph.dependencies.get(importInstance.absolutePath); + const graphEntryForTargetImport = importInstance && + (0, isResolvedDependency_1.isResolvedDependency)(importInstance) && + graph.dependencies.get(importInstance.absolutePath); // Should never happen but we're playing with fire here. if (!graphEntryForTargetImport) { throw new Error(`Failed to find graph key for re-export "${importModuleId}" while optimizing ${value.path}. Options: ${[...value.dependencies.values()].map((v) => v.data.name).join(', ')}`); @@ -297,6 +300,8 @@ async function treeShakeSerializer(entryPoint, preModules, graph, options) { return; // Recursively remove all dependencies. for (const dep of node.dependencies.values()) { + if (!(0, isResolvedDependency_1.isResolvedDependency)(dep)) + continue; const child = graph.dependencies.get(dep.absolutePath); if (!child) continue; @@ -329,7 +334,9 @@ async function treeShakeSerializer(entryPoint, preModules, graph, options) { const targetHashId = getDependencyHashIdForImportModuleId(graphModule, importModuleId); // If the dependency was already removed, then we don't need to do anything. const importInstance = graphModule.dependencies.get(targetHashId); - const graphEntryForTargetImport = graph.dependencies.get(importInstance.absolutePath); + const graphEntryForTargetImport = importInstance && + (0, isResolvedDependency_1.isResolvedDependency)(importInstance) && + graph.dependencies.get(importInstance.absolutePath); // Should never happen but we're playing with fire here. if (!graphEntryForTargetImport) { throw new Error(`Failed to find graph key for re-export "${importModuleId}" while optimizing ${graphModule.path}. Options: ${[...graphModule.dependencies.values()].map((v) => v.data.name).join(', ')}`); @@ -631,7 +638,7 @@ async function treeShakeSerializer(entryPoint, preModules, graph, options) { // The hash key for the dependency instance in the module. const targetHashId = getDependencyHashIdForImportModuleId(value, importModuleId); const importInstance = value.dependencies.get(targetHashId); - if (importInstance) { + if (importInstance && (0, isResolvedDependency_1.isResolvedDependency)(importInstance)) { dirtyImports.push(importInstance.absolutePath); } } @@ -699,7 +706,8 @@ async function treeShakeSerializer(entryPoint, preModules, graph, options) { // Optimize all deps without marking as dirty to prevent // circular dependencies from creating infinite loops. dep.dependencies.forEach((dep) => { - paths.push(dep.absolutePath); + if ((0, isResolvedDependency_1.isResolvedDependency)(dep)) + paths.push(dep.absolutePath); }); } if (isDebugEnabled) { diff --git a/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js.map b/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js.map index 55b6deb4b90927..b9f7c0d14bcad4 100644 --- a/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js.map +++ b/packages/@expo/metro-config/build/serializer/treeShakeSerializerPlugin.js.map @@ -1 +1 @@ -{"version":3,"file":"treeShakeSerializerPlugin.js","sourceRoot":"","sources":["../../src/serializer/treeShakeSerializerPlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"treeShakeSerializerPlugin.js","sourceRoot":"","sources":["../../src/serializer/treeShakeSerializerPlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/serializer/withExpoSerializers.d.ts b/packages/@expo/metro-config/build/serializer/withExpoSerializers.d.ts index 7a1589d26b1ced..a48dd0463270df 100644 --- a/packages/@expo/metro-config/build/serializer/withExpoSerializers.d.ts +++ b/packages/@expo/metro-config/build/serializer/withExpoSerializers.d.ts @@ -1,5 +1,12 @@ -import { MetroConfig, MixedOutput, Module, ReadOnlyGraph } from 'metro'; -import { ConfigT, InputConfigT } from 'metro-config'; +/** + * Copyright © 2022 650 Industries. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import type { MetroConfig } from '@expo/metro/metro'; +import type { Module, ReadOnlyGraph, MixedOutput } from '@expo/metro/metro/DeltaBundler'; +import type { ConfigT, InputConfigT } from '@expo/metro/metro-config'; import { ExpoSerializerOptions } from './fork/baseJSBundle'; import { SerialAsset } from './serializerAssets'; export type Serializer = NonNullable; diff --git a/packages/@expo/metro-config/build/serializer/withExpoSerializers.js b/packages/@expo/metro-config/build/serializer/withExpoSerializers.js index f0ec0bcb1e2d81..d8139a755cbdb5 100644 --- a/packages/@expo/metro-config/build/serializer/withExpoSerializers.js +++ b/packages/@expo/metro-config/build/serializer/withExpoSerializers.js @@ -7,15 +7,9 @@ exports.withExpoSerializers = withExpoSerializers; exports.withSerializerPlugins = withSerializerPlugins; exports.createDefaultExportCustomSerializer = createDefaultExportCustomSerializer; exports.createSerializerFromSerialProcessors = createSerializerFromSerialProcessors; -/** - * Copyright © 2022 650 Industries. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ +const sourceMapString_1 = __importDefault(require("@expo/metro/metro/DeltaBundler/Serializers/sourceMapString")); +const bundleToString_1 = __importDefault(require("@expo/metro/metro/lib/bundleToString")); const jsc_safe_url_1 = require("jsc-safe-url"); -const sourceMapString_1 = __importDefault(require("metro/src/DeltaBundler/Serializers/sourceMapString")); -const bundleToString_1 = __importDefault(require("metro/src/lib/bundleToString")); const debugId_1 = require("./debugId"); const environmentVariableSerializerPlugin_1 = require("./environmentVariableSerializerPlugin"); const baseJSBundle_1 = require("./fork/baseJSBundle"); diff --git a/packages/@expo/metro-config/build/serializer/withExpoSerializers.js.map b/packages/@expo/metro-config/build/serializer/withExpoSerializers.js.map index b4745c03ee65a2..d2859d38b9648f 100644 --- a/packages/@expo/metro-config/build/serializer/withExpoSerializers.js.map +++ b/packages/@expo/metro-config/build/serializer/withExpoSerializers.js.map @@ -1 +1 @@ -{"version":3,"file":"withExpoSerializers.js","sourceRoot":"","sources":["../../src/serializer/withExpoSerializers.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"withExpoSerializers.js","sourceRoot":"","sources":["../../src/serializer/withExpoSerializers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/transform-worker/asset-transformer.d.ts b/packages/@expo/metro-config/build/transform-worker/asset-transformer.d.ts index 9892441cab13d0..9e7d0dd8b229dd 100644 --- a/packages/@expo/metro-config/build/transform-worker/asset-transformer.d.ts +++ b/packages/@expo/metro-config/build/transform-worker/asset-transformer.d.ts @@ -9,7 +9,7 @@ * https://github.com/facebook/metro/blob/412771475c540b6f85d75d9dcd5a39a6e0753582/packages/metro-transform-worker/src/utils/assetTransformer.js#L1 */ import { type ParseResult } from '@babel/core'; -import { BabelTransformerArgs } from 'metro-babel-transformer'; +import type { BabelTransformerArgs } from '@expo/metro/metro-babel-transformer'; export declare function transform({ filename, options, }: { filename: string; options: Pick; diff --git a/packages/@expo/metro-config/build/transform-worker/asset-transformer.js b/packages/@expo/metro-config/build/transform-worker/asset-transformer.js index 4bcfc86744d00b..b91f53867d42d9 100644 --- a/packages/@expo/metro-config/build/transform-worker/asset-transformer.js +++ b/packages/@expo/metro-config/build/transform-worker/asset-transformer.js @@ -15,7 +15,7 @@ exports.transform = transform; * https://github.com/facebook/metro/blob/412771475c540b6f85d75d9dcd5a39a6e0753582/packages/metro-transform-worker/src/utils/assetTransformer.js#L1 */ const core_1 = require("@babel/core"); -const util_1 = require("metro/src/Bundler/util"); +const util_1 = require("@expo/metro/metro/Bundler/util"); const node_path_1 = __importDefault(require("node:path")); const node_url_1 = __importDefault(require("node:url")); const getAssets_1 = require("./getAssets"); diff --git a/packages/@expo/metro-config/build/transform-worker/asset-transformer.js.map b/packages/@expo/metro-config/build/transform-worker/asset-transformer.js.map index 5df012b21ef804..98d259977f7af1 100644 --- a/packages/@expo/metro-config/build/transform-worker/asset-transformer.js.map +++ b/packages/@expo/metro-config/build/transform-worker/asset-transformer.js.map @@ -1 +1 @@ -{"version":3,"file":"asset-transformer.js","sourceRoot":"","sources":["../../src/transform-worker/asset-transformer.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"asset-transformer.js","sourceRoot":"","sources":["../../src/transform-worker/asset-transformer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/transform-worker/count-lines.d.ts b/packages/@expo/metro-config/build/transform-worker/count-lines.d.ts index a72e350d668a6f..e3447a37402052 100644 --- a/packages/@expo/metro-config/build/transform-worker/count-lines.d.ts +++ b/packages/@expo/metro-config/build/transform-worker/count-lines.d.ts @@ -7,7 +7,7 @@ * * https://github.com/facebook/metro/blob/96c6b893eb77b5929b6050d7189905232ddf6d6d/packages/metro-transform-worker/src/index.js#L679 */ -import type { MetroSourceMapSegmentTuple } from 'metro-source-map'; +import type { MetroSourceMapSegmentTuple } from '@expo/metro/metro-source-map'; export declare function countLinesAndTerminateMap(code: string, map: readonly MetroSourceMapSegmentTuple[]): { lineCount: number; map: MetroSourceMapSegmentTuple[]; diff --git a/packages/@expo/metro-config/build/transform-worker/getAssets.d.ts b/packages/@expo/metro-config/build/transform-worker/getAssets.d.ts index 45730867c00139..6588a2961dbf09 100644 --- a/packages/@expo/metro-config/build/transform-worker/getAssets.d.ts +++ b/packages/@expo/metro-config/build/transform-worker/getAssets.d.ts @@ -5,8 +5,8 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import type { AssetData, Module } from 'metro'; -import { ReadOnlyDependencies } from '../serializer/getCssDeps'; +import { type AssetData } from '@expo/metro/metro/Assets'; +import type { Module, ReadOnlyDependencies } from '@expo/metro/metro/DeltaBundler/types.flow'; type Options = { processModuleFilter: (modules: Module) => boolean; assetPlugins: readonly string[]; diff --git a/packages/@expo/metro-config/build/transform-worker/getAssets.js b/packages/@expo/metro-config/build/transform-worker/getAssets.js index eddcbe45c0c532..46c5d08dcebbf6 100644 --- a/packages/@expo/metro-config/build/transform-worker/getAssets.js +++ b/packages/@expo/metro-config/build/transform-worker/getAssets.js @@ -5,8 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.getUniversalAssetData = getUniversalAssetData; exports.default = getAssets; -const Assets_1 = require("metro/src/Assets"); -const js_js_1 = require("metro/src/DeltaBundler/Serializers/helpers/js.js"); +/** + * Copyright 2023-present 650 Industries (Expo). All rights reserved. + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +const Assets_1 = require("@expo/metro/metro/Assets"); +// NOTE(@kitten): jest-resolver -> resolve.exports bug (https://github.com/lukeed/resolve.exports/issues/40) +const js_js_1 = require("@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js"); const node_crypto_1 = __importDefault(require("node:crypto")); const node_fs_1 = __importDefault(require("node:fs")); const node_path_1 = __importDefault(require("node:path")); diff --git a/packages/@expo/metro-config/build/transform-worker/getAssets.js.map b/packages/@expo/metro-config/build/transform-worker/getAssets.js.map index ff9a155cff6c45..4f00bf8fa401ea 100644 --- a/packages/@expo/metro-config/build/transform-worker/getAssets.js.map +++ b/packages/@expo/metro-config/build/transform-worker/getAssets.js.map @@ -1 +1 @@ -{"version":3,"file":"getAssets.js","sourceRoot":"","sources":["../../src/transform-worker/getAssets.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"getAssets.js","sourceRoot":"","sources":["../../src/transform-worker/getAssets.ts"],"names":[],"mappings":";;;;;AA6FA,sDAyBC;AAID,4BA2BC;AArJD;;;;;;GAMG;AACH,qDAAwE;AACxE,4GAA4G;AAC5G,oFAAmG;AAEnG,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,0BAA0B,CAAuB,CAAC;AAcjF,SAAS,aAAa,CAAC,IAAc;IACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,qBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,qBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,iBAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB;IAC7C,IAAI,YAAY,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,KAAoB;IAC3D,kFAAkF;IAClF,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,oDAAoD,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC1E,wDAAwD;IAExD,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;IAE1B,4EAA4E;IAC5E,oIAAoI;IACpI,4NAA4N;IAC5N,IAAI,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACvD,wCAAwC;QACxC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;aAChD,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;aAC9B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,yFAAyF;IACzF,0FAA0F;IAC1F,MAAM,uBAAuB,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAC5D,oCAAoC,CACrC,CAAC;IACF,IAAI,uBAAuB,IAAI,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;QAC7C,wCAAwC;QACxC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,CACzD,SAAS,EACT,kBAAkB,CAAC,SAAS,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,KAAwB,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,SAAiB,EACjB,gBAAmC,EACnC,QAAmC,EACnC,UAAkB;IAElB,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAY,EACvC,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,EACR,UAAU,CACX,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAE7D,+GAA+G;IAC/G,IAAI,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC/D,uIAAuI;QACvI,0EAA0E;QAC1E,+CAA+C;QAC/C,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC/D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAIc,KAAK,UAAU,SAAS,CACrC,YAAkC,EAClC,OAAgB;IAEhB,MAAM,QAAQ,GAA+B,EAAE,CAAC;IAChD,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAExC,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,IACE,IAAA,kBAAU,EAAC,MAAM,CAAC;YAClB,mBAAmB,CAAC,MAAM,CAAC;YAC3B,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAC9C,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,cAAc,EAClE,CAAC;YACD,QAAQ,CAAC,IAAI,CACX,qBAAqB,CACnB,MAAM,CAAC,IAAI,EACX,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAC/C,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,UAAU,CACnB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.d.ts b/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.d.ts index 688f203e0a46cc..7c8d29b5ff0ae7 100644 --- a/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.d.ts +++ b/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.d.ts @@ -10,8 +10,8 @@ */ import { types as t } from '@babel/core'; import type { ParseResult } from '@babel/core'; -import type { MetroSourceMapSegmentTuple } from 'metro-source-map'; -import { JsTransformerConfig, JsTransformOptions } from 'metro-transform-worker'; +import type { MetroSourceMapSegmentTuple } from '@expo/metro/metro-source-map'; +import type { JsTransformerConfig, JsTransformOptions } from '@expo/metro/metro-transform-worker'; import { InvalidRequireCallError as InternalInvalidRequireCallError, CollectedDependencies, Options as CollectDependenciesOptions } from './collect-dependencies'; import { ExpoJsOutput } from '../serializer/jsOutput'; export { JsTransformOptions }; diff --git a/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js b/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js index 4745552399737d..abf95ca50c673d 100644 --- a/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js +++ b/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js @@ -53,14 +53,14 @@ exports.collectDependenciesForShaking = collectDependenciesForShaking; */ const core_1 = require("@babel/core"); const generator_1 = __importDefault(require("@babel/generator")); -const JsFileWrapping_1 = __importDefault(require("metro/src/ModuleGraph/worker/JsFileWrapping")); -const generateImportNames_1 = __importDefault(require("metro/src/ModuleGraph/worker/generateImportNames")); -const importLocationsPlugin_1 = require("metro/src/ModuleGraph/worker/importLocationsPlugin"); -const metro_cache_1 = require("metro-cache"); -const metro_cache_key_1 = __importDefault(require("metro-cache-key")); -const metro_source_map_1 = require("metro-source-map"); -const metro_transform_plugins_1 = __importDefault(require("metro-transform-plugins")); -const getMinifier_1 = __importDefault(require("metro-transform-worker/src/utils/getMinifier")); +const JsFileWrapping_1 = __importDefault(require("@expo/metro/metro/ModuleGraph/worker/JsFileWrapping")); +const generateImportNames_1 = __importDefault(require("@expo/metro/metro/ModuleGraph/worker/generateImportNames")); +const importLocationsPlugin_1 = require("@expo/metro/metro/ModuleGraph/worker/importLocationsPlugin"); +const metro_cache_1 = require("@expo/metro/metro-cache"); +const metro_cache_key_1 = require("@expo/metro/metro-cache-key"); +const metro_source_map_1 = require("@expo/metro/metro-source-map"); +const metroTransformPlugins = __importStar(require("@expo/metro/metro-transform-plugins")); +const getMinifier_1 = __importDefault(require("@expo/metro/metro-transform-worker/utils/getMinifier")); const node_assert_1 = __importDefault(require("node:assert")); const assetTransformer = __importStar(require("./asset-transformer")); const collect_dependencies_1 = __importStar(require("./collect-dependencies")); @@ -183,7 +183,7 @@ function applyImportSupport(ast, { filename, options, importDefault, importAll, // has no ability to respect side-effects because the transformer hasn't collected all dependencies yet. if (options.inlineRequires) { plugins.push([ - metro_transform_plugins_1.default.inlineRequiresPlugin, + metroTransformPlugins.inlineRequiresPlugin, { ...babelPluginOpts, ignoredRequires: options.nonInlinedRequires, @@ -244,7 +244,7 @@ function performConstantFolding(ast, { filename }) { configFile: false, comments: true, filename, - plugins: [clearProgramScopePlugin, metro_transform_plugins_1.default.constantFoldingPlugin], + plugins: [clearProgramScopePlugin, metroTransformPlugins.constantFoldingPlugin], sourceMaps: false, // NOTE(kitten): In Metro, this is also false, but only works because the prior run of `transformFromAstSync` was always // running with `cloneInputAst: true`. @@ -368,7 +368,7 @@ async function transformJS(file, { config, options }) { // TODO: If the module wrapping is disabled then the normalize function needs to change to account for not being in a body. !unstable_disableModuleWrapping) { // NOTE(EvanBacon): Simply pushing this function will mutate the AST, so it must run before the `generate` step!! - reserved.push(...metro_transform_plugins_1.default.normalizePseudoGlobals(wrappedAst, { + reserved.push(...metroTransformPlugins.normalizePseudoGlobals(wrappedAst, { reservedNames: reserved, })); } @@ -590,16 +590,17 @@ async function transform(config, projectRoot, filename, data, options) { } function getCacheKey(config) { const { babelTransformerPath, minifierPath, ...remainingConfig } = config; - const filesKey = (0, metro_cache_key_1.default)([ + // TODO(@kitten): We can now tie this into `@expo/metro`, which could also simply export a static version export + const filesKey = (0, metro_cache_key_1.getCacheKey)([ require.resolve(babelTransformerPath), require.resolve(minifierPath), - require.resolve('metro-transform-worker/src/utils/getMinifier'), + require.resolve('@expo/metro/metro-transform-worker/utils/getMinifier'), require.resolve('./collect-dependencies'), require.resolve('./asset-transformer'), require.resolve('./resolveOptions'), - require.resolve('metro/src/ModuleGraph/worker/generateImportNames'), - require.resolve('metro/src/ModuleGraph/worker/JsFileWrapping'), - ...metro_transform_plugins_1.default.getTransformPluginCacheKeyFiles(), + require.resolve('@expo/metro/metro/ModuleGraph/worker/generateImportNames'), + require.resolve('@expo/metro/metro/ModuleGraph/worker/JsFileWrapping'), + ...metroTransformPlugins.getTransformPluginCacheKeyFiles(), ]); const babelTransformer = require(babelTransformerPath); return [ diff --git a/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js.map b/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js.map index 84c63bca864d88..5c4a747d07b9af 100644 --- a/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js.map +++ b/packages/@expo/metro-config/build/transform-worker/metro-transform-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"metro-transform-worker.js","sourceRoot":"","sources":["../../src/transform-worker/metro-transform-worker.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metro-transform-worker.js","sourceRoot":"","sources":["../../src/transform-worker/metro-transform-worker.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/transform-worker/postcss.js b/packages/@expo/metro-config/build/transform-worker/postcss.js index c6c5400b8e0907..677cc3f4e8a218 100644 --- a/packages/@expo/metro-config/build/transform-worker/postcss.js +++ b/packages/@expo/metro-config/build/transform-worker/postcss.js @@ -194,7 +194,7 @@ async function resolvePostcssConfig(projectRoot) { } function getPostcssConfigHash(projectRoot) { // TODO: Maybe recurse plugins and add versions to the hash in the future. - const { stableHash } = require('metro-cache'); + const { stableHash, } = require('@expo/metro/metro-cache'); for (const ext of ['.mjs', '.js']) { const configPath = path_1.default.join(projectRoot, CONFIG_FILE_NAME + ext); if (fs_1.default.existsSync(configPath)) { diff --git a/packages/@expo/metro-config/build/transform-worker/postcss.js.map b/packages/@expo/metro-config/build/transform-worker/postcss.js.map index 05b0ed0e8c9aad..0d46e845ed5841 100644 --- a/packages/@expo/metro-config/build/transform-worker/postcss.js.map +++ b/packages/@expo/metro-config/build/transform-worker/postcss.js.map @@ -1 +1 @@ -{"version":3,"file":"postcss.js","sourceRoot":"","sources":["../../src/transform-worker/postcss.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"postcss.js","sourceRoot":"","sources":["../../src/transform-worker/postcss.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/transform-worker/resolveOptions.d.ts b/packages/@expo/metro-config/build/transform-worker/resolveOptions.d.ts index cdb8eaad60387a..cc7325ad366b3c 100644 --- a/packages/@expo/metro-config/build/transform-worker/resolveOptions.d.ts +++ b/packages/@expo/metro-config/build/transform-worker/resolveOptions.d.ts @@ -1,2 +1,2 @@ -import { JsTransformOptions } from 'metro-transform-worker'; +import type { JsTransformOptions } from '@expo/metro/metro-transform-worker'; export declare function shouldMinify(options: Pick): boolean; diff --git a/packages/@expo/metro-config/build/transform-worker/transform-worker.d.ts b/packages/@expo/metro-config/build/transform-worker/transform-worker.d.ts index 445e42ddfcfc28..e7732abc04561c 100644 --- a/packages/@expo/metro-config/build/transform-worker/transform-worker.d.ts +++ b/packages/@expo/metro-config/build/transform-worker/transform-worker.d.ts @@ -5,5 +5,11 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import type { JsTransformerConfig, JsTransformOptions, TransformResponse } from 'metro-transform-worker'; +import type { TransformResultDependency } from '@expo/metro/metro/DeltaBundler'; +import type { JsTransformerConfig, JsTransformOptions, JsOutput } from '@expo/metro/metro-transform-worker'; +interface TransformResponse { + readonly dependencies: readonly TransformResultDependency[]; + readonly output: readonly JsOutput[]; +} export declare function transform(config: JsTransformerConfig, projectRoot: string, filename: string, data: Buffer, options: JsTransformOptions): Promise; +export {}; diff --git a/packages/@expo/metro-config/build/transform-worker/transform-worker.js b/packages/@expo/metro-config/build/transform-worker/transform-worker.js index 8e2db87d25f64f..e42274ea9c5c42 100644 --- a/packages/@expo/metro-config/build/transform-worker/transform-worker.js +++ b/packages/@expo/metro-config/build/transform-worker/transform-worker.js @@ -44,7 +44,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.transform = transform; -const countLines_1 = __importDefault(require("metro/src/lib/countLines")); +const countLines_1 = __importDefault(require("@expo/metro/metro/lib/countLines")); const node_path_1 = require("node:path"); const browserslist_1 = require("./browserslist"); const css_1 = require("./css"); diff --git a/packages/@expo/metro-config/build/transform-worker/transform-worker.js.map b/packages/@expo/metro-config/build/transform-worker/transform-worker.js.map index f0d75f552310ef..74e2ca501c15d1 100644 --- a/packages/@expo/metro-config/build/transform-worker/transform-worker.js.map +++ b/packages/@expo/metro-config/build/transform-worker/transform-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"transform-worker.js","sourceRoot":"","sources":["../../src/transform-worker/transform-worker.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"transform-worker.js","sourceRoot":"","sources":["../../src/transform-worker/transform-worker.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/traveling/metro-config.d.ts b/packages/@expo/metro-config/build/traveling/metro-config.d.ts index 39277c34f47369..c233feeb9ad944 100644 --- a/packages/@expo/metro-config/build/traveling/metro-config.d.ts +++ b/packages/@expo/metro-config/build/traveling/metro-config.d.ts @@ -1,3 +1 @@ -export declare function importMetroConfig(projectRoot: string): typeof import('metro-config') & { - getDefaultConfig: import('metro-config/src/defaults/index').default; -}; +export declare function importMetroConfig(projectRoot: string): typeof import('@expo/metro/metro-config'); diff --git a/packages/@expo/metro-config/build/traveling/metro-config.js b/packages/@expo/metro-config/build/traveling/metro-config.js index 2340f0501008c1..d07d627b4e92f6 100644 --- a/packages/@expo/metro-config/build/traveling/metro-config.js +++ b/packages/@expo/metro-config/build/traveling/metro-config.js @@ -1,4 +1,5 @@ "use strict"; +// TODO(@kitten): is this invalid/redundant with @expo/metro? // This package needs to be imported from within the project to var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; @@ -10,7 +11,7 @@ const resolve_from_1 = __importDefault(require("resolve-from")); function importMetroConfig(projectRoot) { const modulePath = resolve_from_1.default.silent(projectRoot, 'metro-config'); if (!modulePath) { - return require('metro-config'); + return require('@expo/metro/metro-config'); } return require(modulePath); } diff --git a/packages/@expo/metro-config/build/traveling/metro-config.js.map b/packages/@expo/metro-config/build/traveling/metro-config.js.map index 2d72a0308b76fd..35dd0190bb9e34 100644 --- a/packages/@expo/metro-config/build/traveling/metro-config.js.map +++ b/packages/@expo/metro-config/build/traveling/metro-config.js.map @@ -1 +1 @@ -{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../../src/traveling/metro-config.ts"],"names":[],"mappings":";AAAA,+DAA+D;;;;;AAK/D,8CASC;AAZD,gEAAuC;AAEvC,2EAA2E;AAC3E,SAAgB,iBAAiB,CAAC,WAAmB;IAGnD,MAAM,UAAU,GAAG,sBAAW,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC"} \ No newline at end of file +{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../../src/traveling/metro-config.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,+DAA+D;;;;;AAK/D,8CAMC;AATD,gEAAuC;AAEvC,2EAA2E;AAC3E,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,MAAM,UAAU,GAAG,sBAAW,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC"} \ No newline at end of file diff --git a/packages/@expo/metro-config/build/utils/setOnReadonly.d.ts b/packages/@expo/metro-config/build/utils/setOnReadonly.d.ts new file mode 100644 index 00000000000000..a01c06a7b432e5 --- /dev/null +++ b/packages/@expo/metro-config/build/utils/setOnReadonly.d.ts @@ -0,0 +1,4 @@ +/** Set `value` on `obj[key]` while bypassing readonly property annotations */ +export declare function setOnReadonly(obj: T, key: K, value: V): asserts obj is T & { + [key in K]: V; +}; diff --git a/packages/@expo/metro-config/build/utils/setOnReadonly.js b/packages/@expo/metro-config/build/utils/setOnReadonly.js new file mode 100644 index 00000000000000..b65bb0cec13c0e --- /dev/null +++ b/packages/@expo/metro-config/build/utils/setOnReadonly.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setOnReadonly = setOnReadonly; +/** Set `value` on `obj[key]` while bypassing readonly property annotations */ +function setOnReadonly(obj, key, value) { + obj[key] = value; +} +//# sourceMappingURL=setOnReadonly.js.map \ No newline at end of file diff --git a/packages/@expo/metro-config/build/utils/setOnReadonly.js.map b/packages/@expo/metro-config/build/utils/setOnReadonly.js.map new file mode 100644 index 00000000000000..cb1f02db0b3243 --- /dev/null +++ b/packages/@expo/metro-config/build/utils/setOnReadonly.js.map @@ -0,0 +1 @@ +{"version":3,"file":"setOnReadonly.js","sourceRoot":"","sources":["../../src/utils/setOnReadonly.ts"],"names":[],"mappings":";;AACA,sCAMC;AAPD,8EAA8E;AAC9E,SAAgB,aAAa,CAC3B,GAAM,EACN,GAAM,EACN,KAAQ;IAER,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACnB,CAAC"} \ No newline at end of file diff --git a/packages/@expo/metro-config/package.json b/packages/@expo/metro-config/package.json index 89fabcd1ac78e3..0aca3f906dc6a9 100644 --- a/packages/@expo/metro-config/package.json +++ b/packages/@expo/metro-config/package.json @@ -38,6 +38,7 @@ "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@expo/config": "~11.0.10", + "@expo/metro": "~0.1.0", "@expo/env": "~1.0.5", "@expo/json-file": "~9.1.4", "@expo/spawn-async": "^1.7.2", diff --git a/packages/@expo/metro-config/src/ExpoMetroConfig.ts b/packages/@expo/metro-config/src/ExpoMetroConfig.ts index bfa19e8d5fa4d9..909ee14474451e 100644 --- a/packages/@expo/metro-config/src/ExpoMetroConfig.ts +++ b/packages/@expo/metro-config/src/ExpoMetroConfig.ts @@ -2,10 +2,17 @@ import { getPackageJson } from '@expo/config'; import { getBareExtensions, getMetroServerRoot } from '@expo/config/paths'; import JsonFile from '@expo/json-file'; +import type { Reporter } from '@expo/metro/metro'; +import type { Graph, Result as GraphResult } from '@expo/metro/metro/DeltaBundler/Graph'; +import type { + MixedOutput, + Module, + ReadOnlyGraph, + Options as GraphOptions, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import { stableHash } from '@expo/metro/metro-cache'; +import type { ConfigT as MetroConfig, InputConfigT } from '@expo/metro/metro-config'; import chalk from 'chalk'; -import { MixedOutput, Module, ReadOnlyGraph, Reporter } from 'metro'; -import { stableHash } from 'metro-cache'; -import { ConfigT as MetroConfig, InputConfigT } from 'metro-config'; import os from 'os'; import path from 'path'; import resolveFrom from 'resolve-from'; @@ -22,6 +29,7 @@ import { withExpoSerializers } from './serializer/withExpoSerializers'; import { getPostcssConfigHash } from './transform-worker/postcss'; import { importMetroConfig } from './traveling/metro-config'; import { toPosixPath } from './utils/filePath'; +import { setOnReadonly } from './utils/setOnReadonly'; const debug = require('debug')('expo:metro:config') as typeof console.log; @@ -62,14 +70,23 @@ let hasWarnedAboutExotic = false; // Patch Metro's graph to support always parsing certain modules. This enables // things like Tailwind CSS which update based on their own heuristics. function patchMetroGraphToSupportUncachedModules() { - const { Graph } = require('metro/src/DeltaBundler/Graph'); + const { + Graph, + }: typeof import('@expo/metro/metro/DeltaBundler/Graph') = require('@expo/metro/metro/DeltaBundler/Graph'); + + interface TraverseDependencies { + (paths: readonly string[], options: GraphOptions): Promise>; + __patched?: boolean; + } + + const original_traverseDependencies = Graph.prototype + .traverseDependencies as TraverseDependencies; - const original_traverseDependencies = Graph.prototype.traverseDependencies; if (!original_traverseDependencies.__patched) { original_traverseDependencies.__patched = true; - - Graph.prototype.traverseDependencies = function (paths: string[], options: unknown) { - this.dependencies.forEach((dependency: JSModule) => { + // eslint-disable-next-line no-inner-declarations + function traverseDependencies(this: Graph, paths: string[], options: GraphOptions) { + this.dependencies.forEach((dependency: Module | JSModule) => { // Find any dependencies that have been marked as `skipCache` and ensure they are invalidated. // `skipCache` is set when a CSS module is found by PostCSS. if ( @@ -78,7 +95,11 @@ function patchMetroGraphToSupportUncachedModules() { ) { // Ensure we invalidate the `unstable_transformResultKey` (input hash) so the module isn't removed in // the Graph._processModule method. - dependency.unstable_transformResultKey = dependency.unstable_transformResultKey + '.'; + setOnReadonly( + dependency, + 'unstable_transformResultKey', + dependency.unstable_transformResultKey + '.' + ); // Add the path to the list of modified paths so it gets run through the transformer again, // this will ensure it is passed to PostCSS -> Tailwind. @@ -87,9 +108,10 @@ function patchMetroGraphToSupportUncachedModules() { }); // Invoke the original method with the new paths to ensure the standard behavior is preserved. return original_traverseDependencies.call(this, paths, options); - }; + } // Ensure we don't patch the method twice. - Graph.prototype.traverseDependencies.__patched = true; + Graph.prototype.traverseDependencies = traverseDependencies; + traverseDependencies.__patched = true; } } @@ -251,7 +273,7 @@ export function getDefaultConfig( // Add default support for `expo-sqlite` file types. ['db'] ) - .filter((assetExt) => !sourceExts.includes(assetExt)), + .filter((assetExt: string) => !sourceExts.includes(assetExt)), sourceExts, nodeModulesPaths, }, diff --git a/packages/@expo/metro-config/src/__tests__/babel-transformer.test.ts b/packages/@expo/metro-config/src/__tests__/babel-transformer.test.ts index 458f32c34e1354..333ed0fd4b11f0 100644 --- a/packages/@expo/metro-config/src/__tests__/babel-transformer.test.ts +++ b/packages/@expo/metro-config/src/__tests__/babel-transformer.test.ts @@ -1,6 +1,6 @@ import generate from '@babel/generator'; +import type { BabelTransformer } from '@expo/metro/metro-babel-transformer'; import { vol } from 'memfs'; -import type { BabelTransformer } from 'metro-babel-transformer'; import * as babel from '../babel-core'; // eslint-disable-next-line import/namespace @@ -42,7 +42,7 @@ it(`passes the environment as isServer to the babel preset`, () => { dev: true, projectRoot: '/', hot: true, - inlineRequires: false, + inlineRequires: false as any, // TODO(@kitten): Remove minify: false, platform: 'ios', publicPath: '/', @@ -106,7 +106,7 @@ it(`passes the environment as isReactServer to the babel preset`, () => { dev: true, projectRoot: '/', hot: true, - inlineRequires: false, + inlineRequires: false as any, // TODO(@kitten): Remove minify: false, platform: 'ios', publicPath: '/', diff --git a/packages/@expo/metro-config/src/babel-transformer.ts b/packages/@expo/metro-config/src/babel-transformer.ts index 9c57108c45c339..a953f1eb906aeb 100644 --- a/packages/@expo/metro-config/src/babel-transformer.ts +++ b/packages/@expo/metro-config/src/babel-transformer.ts @@ -7,7 +7,7 @@ */ // A fork of the upstream babel-transformer that uses Expo-specific babel defaults // and adds support for web and Node.js environments via `isServer` on the Babel caller. -import type { BabelTransformer, BabelTransformerArgs } from 'metro-babel-transformer'; +import type { BabelTransformer, BabelTransformerArgs } from '@expo/metro/metro-babel-transformer'; import assert from 'node:assert'; import type { TransformOptions } from './babel-core'; diff --git a/packages/@expo/metro-config/src/customizeFrame.ts b/packages/@expo/metro-config/src/customizeFrame.ts index d560bab3c7f196..2cf25aac9c3a9d 100644 --- a/packages/@expo/metro-config/src/customizeFrame.ts +++ b/packages/@expo/metro-config/src/customizeFrame.ts @@ -1,5 +1,5 @@ // Copyright 2023-present 650 Industries (Expo). All rights reserved. -import { SymbolicatorConfigT } from 'metro-config'; +import type { SymbolicatorConfigT } from '@expo/metro/metro-config'; import { URL } from 'url'; type CustomizeFrameFunc = SymbolicatorConfigT['customizeFrame']; diff --git a/packages/@expo/metro-config/src/file-store.ts b/packages/@expo/metro-config/src/file-store.ts index db3de34dfa693a..87836c6954ec2e 100644 --- a/packages/@expo/metro-config/src/file-store.ts +++ b/packages/@expo/metro-config/src/file-store.ts @@ -1,4 +1,4 @@ -import UpstreamFileStore from 'metro-cache/src/stores/FileStore'; +import UpstreamFileStore from '@expo/metro/metro-cache/stores/FileStore'; const debug = require('debug')('expo:metro:cache') as typeof console.log; diff --git a/packages/@expo/metro-config/src/serializer/__tests__/getCssDeps.test.ts b/packages/@expo/metro-config/src/serializer/__tests__/getCssDeps.test.ts index 95b155aad20eb6..f75d2141821a12 100644 --- a/packages/@expo/metro-config/src/serializer/__tests__/getCssDeps.test.ts +++ b/packages/@expo/metro-config/src/serializer/__tests__/getCssDeps.test.ts @@ -1,4 +1,4 @@ -import CountingSet from 'metro/src/lib/CountingSet'; +import CountingSet from '@expo/metro/metro/lib/CountingSet'; import { getCssSerialAssets, fileNameFromContents, JSModule } from '../getCssDeps'; @@ -21,7 +21,10 @@ const fooModule: JSModule = { './bar', { absolutePath: '/root/bar', - data: { data: { asyncType: null, locs: [], key: './bar' }, name: './bar' }, + data: { + data: { asyncType: null, locs: [], key: './bar', isESMImport: false }, + name: './bar', + }, }, ], ]), diff --git a/packages/@expo/metro-config/src/serializer/__tests__/withExpoSerializers.test.ts b/packages/@expo/metro-config/src/serializer/__tests__/withExpoSerializers.test.ts index 015bbccac71ab8..c49c09929a6112 100644 --- a/packages/@expo/metro-config/src/serializer/__tests__/withExpoSerializers.test.ts +++ b/packages/@expo/metro-config/src/serializer/__tests__/withExpoSerializers.test.ts @@ -1,4 +1,4 @@ -import { Module } from 'metro'; +import type { Module } from '@expo/metro/metro/DeltaBundler'; import { microBundle, projectRoot } from '../fork/__tests__/mini-metro'; import { diff --git a/packages/@expo/metro-config/src/serializer/environmentVariableSerializerPlugin.ts b/packages/@expo/metro-config/src/serializer/environmentVariableSerializerPlugin.ts index e94d27b8bb422a..3cbfca6295b2bf 100644 --- a/packages/@expo/metro-config/src/serializer/environmentVariableSerializerPlugin.ts +++ b/packages/@expo/metro-config/src/serializer/environmentVariableSerializerPlugin.ts @@ -4,9 +4,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import { ReadOnlyGraph, MixedOutput, Module, SerializerOptions } from 'metro'; -import CountingSet from 'metro/src/lib/CountingSet'; -import countLines from 'metro/src/lib/countLines'; +import type { + ReadOnlyGraph, + MixedOutput, + Module, + SerializerOptions, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import CountingSet from '@expo/metro/metro/lib/CountingSet'; +import countLines from '@expo/metro/metro/lib/countLines'; import { SerializerParameters } from './withExpoSerializers'; diff --git a/packages/@expo/metro-config/src/serializer/exportHermes.ts b/packages/@expo/metro-config/src/serializer/exportHermes.ts index 5b0dd375b789e6..fb706b95ad1b68 100644 --- a/packages/@expo/metro-config/src/serializer/exportHermes.ts +++ b/packages/@expo/metro-config/src/serializer/exportHermes.ts @@ -1,7 +1,7 @@ +import { composeSourceMaps } from '@expo/metro/metro-source-map'; import spawnAsync from '@expo/spawn-async'; import chalk from 'chalk'; import fs from 'fs'; -import { composeSourceMaps } from 'metro-source-map'; import os from 'os'; import path from 'path'; import process from 'process'; diff --git a/packages/@expo/metro-config/src/serializer/fork/__tests__/mini-metro.ts b/packages/@expo/metro-config/src/serializer/fork/__tests__/mini-metro.ts index 0782bdcd055a46..c3dcadd397ba18 100644 --- a/packages/@expo/metro-config/src/serializer/fork/__tests__/mini-metro.ts +++ b/packages/@expo/metro-config/src/serializer/fork/__tests__/mini-metro.ts @@ -1,5 +1,12 @@ -import { Dependency, MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; -import CountingSet from 'metro/src/lib/CountingSet'; +import type { + Dependency, + MixedOutput, + Module, + ReadOnlyGraph, + SerializerOptions, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import CountingSet from '@expo/metro/metro/lib/CountingSet'; +import metroConfigDefaults from '@expo/metro/metro-config/defaults'; import * as path from 'path'; import { JsTransformOptions } from '../../../transform-worker/metro-transform-worker'; @@ -7,8 +14,7 @@ import * as expoMetroTransformWorker from '../../../transform-worker/transform-w export const projectRoot = '/app'; -const METRO_CONFIG_DEFAULTS = - require('metro-config/src/defaults/index').getDefaultValues() as import('metro-config').ConfigT; +const METRO_CONFIG_DEFAULTS = metroConfigDefaults.getDefaultValues(null); function toDependencyMap(...deps: Dependency[]): Map { const map = new Map(); @@ -149,7 +155,8 @@ export async function microBundle({ const id = queue.shift()!; const absPath = path.join(projectRoot, id); if (visited.has(absPath)) { - modules.get(absPath)?.inverseDependencies.add(parent?.path); + const mod = modules.get(absPath); + if (mod && parent?.path) mod.inverseDependencies.add(parent.path); continue; } visited.add(absPath); @@ -326,8 +333,6 @@ export async function parseModule( })) ), inverseDependencies: new CountingSet(), - - // @ts-expect-error output, }; } diff --git a/packages/@expo/metro-config/src/serializer/fork/__tests__/serializer-test-utils.ts b/packages/@expo/metro-config/src/serializer/fork/__tests__/serializer-test-utils.ts index 74b7e561839bf7..59a98094075e03 100644 --- a/packages/@expo/metro-config/src/serializer/fork/__tests__/serializer-test-utils.ts +++ b/packages/@expo/metro-config/src/serializer/fork/__tests__/serializer-test-utils.ts @@ -1,7 +1,7 @@ +import type { Module, MixedOutput } from '@expo/metro/metro/DeltaBundler'; +import CountingSet from '@expo/metro/metro/lib/CountingSet'; +import countLines from '@expo/metro/metro/lib/countLines'; import assert from 'assert'; -import { Module, MixedOutput } from 'metro'; -import CountingSet from 'metro/src/lib/CountingSet'; -import countLines from 'metro/src/lib/countLines'; import { microBundle, projectRoot } from './mini-metro'; import { reconcileTransformSerializerPlugin } from '../../reconcileTransformSerializerPlugin'; diff --git a/packages/@expo/metro-config/src/serializer/fork/baseJSBundle.ts b/packages/@expo/metro-config/src/serializer/fork/baseJSBundle.ts index 3989783e255547..e0bc36bff8af86 100644 --- a/packages/@expo/metro-config/src/serializer/fork/baseJSBundle.ts +++ b/packages/@expo/metro-config/src/serializer/fork/baseJSBundle.ts @@ -9,11 +9,16 @@ * https://github.com/facebook/metro/blob/bbdd7d7c5e6e0feb50a9967ffae1f723c1d7c4e8/packages/metro/src/DeltaBundler/Serializers/baseJSBundle.js#L1 */ +import type { + MixedOutput, + Module, + ReadOnlyGraph, + SerializerOptions, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import CountingSet from '@expo/metro/metro/lib/CountingSet'; +import countLines from '@expo/metro/metro/lib/countLines'; +import getAppendScripts from '@expo/metro/metro/lib/getAppendScripts'; import { isJscSafeUrl, toNormalUrl } from 'jsc-safe-url'; -import type { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; -import CountingSet from 'metro/src/lib/CountingSet'; -import countLines from 'metro/src/lib/countLines'; -import getAppendScripts from 'metro/src/lib/getAppendScripts'; import { processModules } from './processModules'; diff --git a/packages/@expo/metro-config/src/serializer/fork/hmrJSBundle.ts b/packages/@expo/metro-config/src/serializer/fork/hmrJSBundle.ts index db6f7cc54e7b1c..f58ef9ba9c54c1 100644 --- a/packages/@expo/metro-config/src/serializer/fork/hmrJSBundle.ts +++ b/packages/@expo/metro-config/src/serializer/fork/hmrJSBundle.ts @@ -9,10 +9,10 @@ * https://github.com/facebook/metro/blob/87f717b8f5987827c75c82b3cb390060672628f0/packages/metro/src/DeltaBundler/Serializers/hmrJSBundle.js#L1C1-L152C30 */ +import type { DeltaResult, Module, ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler'; +import type { HmrModule } from '@expo/metro/metro-runtime/modules/types.flow'; +import { addParamsToDefineCall } from '@expo/metro/metro-transform-plugins'; import jscSafeUrl from 'jsc-safe-url'; -import type { DeltaResult, Module, ReadOnlyGraph } from 'metro'; -import type { HmrModule } from 'metro-runtime/src/modules/types.flow'; -import { addParamsToDefineCall } from 'metro-transform-plugins'; import path from 'node:path'; import type { UrlWithParsedQuery as EntryPointURL } from 'node:url'; import url from 'node:url'; diff --git a/packages/@expo/metro-config/src/serializer/fork/js.ts b/packages/@expo/metro-config/src/serializer/fork/js.ts index e8f5d845020fbb..0201abd8b5e6f5 100644 --- a/packages/@expo/metro-config/src/serializer/fork/js.ts +++ b/packages/@expo/metro-config/src/serializer/fork/js.ts @@ -9,11 +9,12 @@ * https://github.com/facebook/metro/blob/bbdd7d7c5e6e0feb50a9967ffae1f723c1d7c4e8/packages/metro/src/DeltaBundler/Serializers/helpers/js.js#L1 */ +import type { MixedOutput, Module } from '@expo/metro/metro/DeltaBundler'; +import { isResolvedDependency } from '@expo/metro/metro/lib/isResolvedDependency'; +import { addParamsToDefineCall } from '@expo/metro/metro-transform-plugins'; +import type { JsOutput } from '@expo/metro/metro-transform-worker'; import assert from 'assert'; import jscSafeUrl from 'jsc-safe-url'; -import type { MixedOutput, Module } from 'metro'; -import { addParamsToDefineCall } from 'metro-transform-plugins'; -import type { JsOutput } from 'metro-transform-worker'; import path from 'path'; export type Options = { @@ -63,6 +64,9 @@ export function getModuleParams( let hasPaths = false; const dependencyMapArray = Array.from(module.dependencies.values()).map((dependency) => { + if (!isResolvedDependency(dependency)) { + return null; + } let modulePath = dependency.absolutePath; if (modulePath == null) { diff --git a/packages/@expo/metro-config/src/serializer/fork/processModules.ts b/packages/@expo/metro-config/src/serializer/fork/processModules.ts index 3191d9d1d70797..bd2e9379b8fe2c 100644 --- a/packages/@expo/metro-config/src/serializer/fork/processModules.ts +++ b/packages/@expo/metro-config/src/serializer/fork/processModules.ts @@ -6,7 +6,7 @@ * LICENSE file in the root directory of this source tree. */ -import type { Module } from 'metro'; +import type { Module } from '@expo/metro/metro/DeltaBundler'; import { isJsModule, wrapModule } from './js'; diff --git a/packages/@expo/metro-config/src/serializer/getCssDeps.ts b/packages/@expo/metro-config/src/serializer/getCssDeps.ts index 3ea9ed97ceaaff..9e3ca7c25ef912 100644 --- a/packages/@expo/metro-config/src/serializer/getCssDeps.ts +++ b/packages/@expo/metro-config/src/serializer/getCssDeps.ts @@ -1,5 +1,7 @@ -import type { Module } from 'metro'; -import { isJsModule } from 'metro/src/DeltaBundler/Serializers/helpers/js.js'; +// NOTE(@kitten): jest-resolver -> resolve.exports bug (https://github.com/lukeed/resolve.exports/issues/40) +import { isJsModule } from '@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js'; +import type { Module, ReadOnlyDependencies } from '@expo/metro/metro/DeltaBundler/types.flow'; +import { isResolvedDependency } from '@expo/metro/metro/lib/isResolvedDependency'; import path from 'path'; import { CSSMetadata } from './jsOutput'; @@ -8,8 +10,6 @@ import { pathToHtmlSafeName } from '../transform-worker/css'; import { toPosixPath } from '../utils/filePath'; import { hashString } from '../utils/hash'; -export type ReadOnlyDependencies = ReadonlyMap>; - type Options = { processModuleFilter: (modules: Module) => boolean; assetPlugins: readonly string[]; @@ -121,7 +121,9 @@ export function getCssSerialAssets( next.dependencies.forEach((dep) => { // Traverse the deps next to ensure the CSS is pushed in the correct order. - checkDep(dep.absolutePath); + if (isResolvedDependency(dep)) { + checkDep(dep.absolutePath); + } }); // Then push the JS after the siblings. diff --git a/packages/@expo/metro-config/src/serializer/jsOutput.ts b/packages/@expo/metro-config/src/serializer/jsOutput.ts index 408e25bd044131..930aaccbe60252 100644 --- a/packages/@expo/metro-config/src/serializer/jsOutput.ts +++ b/packages/@expo/metro-config/src/serializer/jsOutput.ts @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ import { types as t } from '@babel/core'; -import { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from 'metro-source-map'; -import { JsTransformerConfig } from 'metro-transform-worker'; +import type { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from '@expo/metro/metro-source-map'; +import type { JsTransformerConfig } from '@expo/metro/metro-transform-worker'; import { Options as CollectDependenciesOptions } from '../transform-worker/collect-dependencies'; diff --git a/packages/@expo/metro-config/src/serializer/reconcileTransformSerializerPlugin.ts b/packages/@expo/metro-config/src/serializer/reconcileTransformSerializerPlugin.ts index e58380e9e19ecd..0a760a514eef87 100644 --- a/packages/@expo/metro-config/src/serializer/reconcileTransformSerializerPlugin.ts +++ b/packages/@expo/metro-config/src/serializer/reconcileTransformSerializerPlugin.ts @@ -6,13 +6,19 @@ */ import { types as t } from '@babel/core'; import generate from '@babel/generator'; +import type { + MixedOutput, + Module, + ReadOnlyGraph, + SerializerOptions, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import JsFileWrapping from '@expo/metro/metro/ModuleGraph/worker/JsFileWrapping'; +import { locToKey } from '@expo/metro/metro/ModuleGraph/worker/importLocationsPlugin'; +import { isResolvedDependency } from '@expo/metro/metro/lib/isResolvedDependency'; +import type { SerializerConfigT } from '@expo/metro/metro-config'; +import { toSegmentTuple } from '@expo/metro/metro-source-map'; +import { normalizePseudoGlobals } from '@expo/metro/metro-transform-plugins'; import assert from 'assert'; -import { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; -import JsFileWrapping from 'metro/src/ModuleGraph/worker/JsFileWrapping'; -import { locToKey } from 'metro/src/ModuleGraph/worker/importLocationsPlugin'; -import { SerializerConfigT } from 'metro-config'; -import { toSegmentTuple } from 'metro-source-map'; -import metroTransformPlugins from 'metro-transform-plugins'; import util from 'node:util'; import { ExpoJsOutput, isExpoJsOutput } from './jsOutput'; @@ -189,7 +195,9 @@ export async function reconcileTransformSerializerPlugin( const sideEffectReferences = () => [...value.dependencies.values()] .filter((dep) => { - const fullDep = graph.dependencies.get(dep.absolutePath); + const fullDep = isResolvedDependency(dep) + ? graph.dependencies.get(dep.absolutePath) + : undefined; return fullDep && hasSideEffectWithDebugTrace(options, graph, fullDep)[0]; }) .map((dep) => dep.data.name); @@ -266,7 +274,7 @@ export async function reconcileTransformSerializerPlugin( if (reconcile.normalizePseudoGlobals) { // This MUST run before `generate` as it mutates the ast out of place. reserved.push( - ...metroTransformPlugins.normalizePseudoGlobals(wrappedAst, { + ...normalizePseudoGlobals(wrappedAst, { reservedNames: reserved, }) ); diff --git a/packages/@expo/metro-config/src/serializer/serializeChunks.ts b/packages/@expo/metro-config/src/serializer/serializeChunks.ts index 2bc34cbeba2c29..e0069f3e3b056f 100644 --- a/packages/@expo/metro-config/src/serializer/serializeChunks.ts +++ b/packages/@expo/metro-config/src/serializer/serializeChunks.ts @@ -4,18 +4,18 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import assert from 'assert'; -import { - AssetData, - MetroConfig, +import type { MetroConfig, AssetData } from '@expo/metro/metro'; +import sourceMapStringMod from '@expo/metro/metro/DeltaBundler/Serializers/sourceMapString'; +import type { MixedOutput, Module, ReadOnlyGraph, SerializerOptions, -} from 'metro'; -import sourceMapStringMod from 'metro/src/DeltaBundler/Serializers/sourceMapString'; -import bundleToString from 'metro/src/lib/bundleToString'; -import { ConfigT, SerializerConfigT } from 'metro-config'; +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import bundleToString from '@expo/metro/metro/lib/bundleToString'; +import { isResolvedDependency } from '@expo/metro/metro/lib/isResolvedDependency'; +import type { ConfigT, SerializerConfigT } from '@expo/metro/metro-config'; +import assert from 'assert'; import path from 'path'; import { stringToUUID } from './debugId'; @@ -34,7 +34,6 @@ import getMetroAssets from '../transform-worker/getAssets'; import { toPosixPath } from '../utils/filePath'; type Serializer = NonNullable; - type SerializerParameters = Parameters; type ChunkSettings = { @@ -302,7 +301,7 @@ export class Chunk { this.deps.forEach((module) => { module.dependencies.forEach((dependency) => { - if (dependency.data.data.asyncType) { + if (isResolvedDependency(dependency) && dependency.data.data.asyncType) { const chunkContainingModule = chunks.find((chunk) => chunk.hasAbsolutePath(dependency.absolutePath) ); @@ -681,7 +680,9 @@ function gatherChunks( function includeModule(entryModule: Module) { for (const dependency of entryModule.dependencies.values()) { - if ( + if (!isResolvedDependency(dependency)) { + continue; + } else if ( dependency.data.data.asyncType && // Support disabling multiple chunks. entryChunk.options.serializerOptions?.splitChunks !== false diff --git a/packages/@expo/metro-config/src/serializer/sideEffects.ts b/packages/@expo/metro-config/src/serializer/sideEffects.ts index 642c2076a53a9c..32331d25983ca2 100644 --- a/packages/@expo/metro-config/src/serializer/sideEffects.ts +++ b/packages/@expo/metro-config/src/serializer/sideEffects.ts @@ -4,8 +4,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ +import type { + MixedOutput, + Module, + ReadOnlyGraph, + SerializerOptions, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import { isResolvedDependency } from '@expo/metro/metro/lib/isResolvedDependency'; import fs from 'fs'; -import { MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; import { minimatch } from 'minimatch'; import path from 'path'; @@ -32,7 +38,7 @@ export function hasSideEffectWithDebugTrace( } // Recursively check if any of the dependencies have side effects. for (const depReference of value.dependencies.values()) { - if (checked.has(depReference.absolutePath)) { + if (!isResolvedDependency(depReference) || checked.has(depReference.absolutePath)) { continue; } checked.add(depReference.absolutePath); diff --git a/packages/@expo/metro-config/src/serializer/treeShakeSerializerPlugin.ts b/packages/@expo/metro-config/src/serializer/treeShakeSerializerPlugin.ts index 3007b6e03e5e56..c2d250357f40f5 100644 --- a/packages/@expo/metro-config/src/serializer/treeShakeSerializerPlugin.ts +++ b/packages/@expo/metro-config/src/serializer/treeShakeSerializerPlugin.ts @@ -6,9 +6,15 @@ */ import { type NodePath, traverse, types } from '@babel/core'; import generate from '@babel/generator'; +import type { + AsyncDependencyType, + MixedOutput, + Module, + ReadOnlyGraph, +} from '@expo/metro/metro/DeltaBundler/types.flow'; +import { isResolvedDependency } from '@expo/metro/metro/lib/isResolvedDependency'; +import type { SerializerConfigT } from '@expo/metro/metro-config'; import assert from 'assert'; -import { AsyncDependencyType, MixedOutput, Module, ReadOnlyGraph } from 'metro'; -import { SerializerConfigT } from 'metro-config'; import { ExpoSerializerOptions } from './fork/baseJSBundle'; import { isExpoJsOutput } from './jsOutput'; @@ -252,9 +258,11 @@ export async function treeShakeSerializer( const targetHashId = getDependencyHashIdForImportModuleId(value, importModuleId); // If the dependency was already removed, then we don't need to do anything. - const importInstance = value.dependencies.get(targetHashId)!; - - const graphEntryForTargetImport = graph.dependencies.get(importInstance.absolutePath); + const importInstance = value.dependencies.get(targetHashId); + const graphEntryForTargetImport = + importInstance && + isResolvedDependency(importInstance) && + graph.dependencies.get(importInstance.absolutePath); // Should never happen but we're playing with fire here. if (!graphEntryForTargetImport) { throw new Error( @@ -385,6 +393,7 @@ export async function treeShakeSerializer( if (!node) return; // Recursively remove all dependencies. for (const dep of node.dependencies.values()) { + if (!isResolvedDependency(dep)) continue; const child = graph.dependencies.get(dep.absolutePath); if (!child) continue; @@ -436,9 +445,11 @@ export async function treeShakeSerializer( const targetHashId = getDependencyHashIdForImportModuleId(graphModule, importModuleId); // If the dependency was already removed, then we don't need to do anything. - const importInstance = graphModule.dependencies.get(targetHashId)!; - - const graphEntryForTargetImport = graph.dependencies.get(importInstance.absolutePath); + const importInstance = graphModule.dependencies.get(targetHashId); + const graphEntryForTargetImport = + importInstance && + isResolvedDependency(importInstance) && + graph.dependencies.get(importInstance.absolutePath); // Should never happen but we're playing with fire here. if (!graphEntryForTargetImport) { throw new Error( @@ -834,7 +845,7 @@ export async function treeShakeSerializer( // The hash key for the dependency instance in the module. const targetHashId = getDependencyHashIdForImportModuleId(value, importModuleId); const importInstance = value.dependencies.get(targetHashId); - if (importInstance) { + if (importInstance && isResolvedDependency(importInstance)) { dirtyImports.push(importInstance.absolutePath); } } @@ -912,7 +923,7 @@ export async function treeShakeSerializer( // Optimize all deps without marking as dirty to prevent // circular dependencies from creating infinite loops. dep.dependencies.forEach((dep) => { - paths.push(dep.absolutePath); + if (isResolvedDependency(dep)) paths.push(dep.absolutePath); }); } diff --git a/packages/@expo/metro-config/src/serializer/withExpoSerializers.ts b/packages/@expo/metro-config/src/serializer/withExpoSerializers.ts index 4c3b10c686e7af..b0ecdd67b75f81 100644 --- a/packages/@expo/metro-config/src/serializer/withExpoSerializers.ts +++ b/packages/@expo/metro-config/src/serializer/withExpoSerializers.ts @@ -4,11 +4,13 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ +import type { MetroConfig } from '@expo/metro/metro'; +import type { Module, ReadOnlyGraph, MixedOutput } from '@expo/metro/metro/DeltaBundler'; +import sourceMapStringMod from '@expo/metro/metro/DeltaBundler/Serializers/sourceMapString'; +import type { SerializerOptions } from '@expo/metro/metro/DeltaBundler/types.flow'; +import bundleToString from '@expo/metro/metro/lib/bundleToString'; +import type { ConfigT, InputConfigT } from '@expo/metro/metro-config'; import { isJscSafeUrl, toNormalUrl } from 'jsc-safe-url'; -import { MetroConfig, MixedOutput, Module, ReadOnlyGraph, SerializerOptions } from 'metro'; -import sourceMapStringMod from 'metro/src/DeltaBundler/Serializers/sourceMapString'; -import bundleToString from 'metro/src/lib/bundleToString'; -import { ConfigT, InputConfigT } from 'metro-config'; import { stringToUUID } from './debugId'; import { diff --git a/packages/@expo/metro-config/src/transform-plugins/__tests__/utils.ts b/packages/@expo/metro-config/src/transform-plugins/__tests__/utils.ts index 7080c2f8f89e15..a723fe8eb166d2 100644 --- a/packages/@expo/metro-config/src/transform-plugins/__tests__/utils.ts +++ b/packages/@expo/metro-config/src/transform-plugins/__tests__/utils.ts @@ -7,8 +7,8 @@ import { codeFrameColumns } from '@babel/code-frame'; import { types as t } from '@babel/core'; -import type { Dependency } from 'metro/src/ModuleGraph/worker/collectDependencies'; -import collectDependencies from 'metro/src/ModuleGraph/worker/collectDependencies'; +import type { Dependency } from '@expo/metro/metro/ModuleGraph/worker/collectDependencies'; +import collectDependencies from '@expo/metro/metro/ModuleGraph/worker/collectDependencies'; import { importExportPlugin } from '../import-export-plugin'; import { transformToAst } from './__mocks__/test-helpers-upstream'; @@ -64,9 +64,14 @@ function adjustLocForCodeFrame(loc: t.SourceLocation) { } function formatLoc(loc: t.SourceLocation, depIndex: number, dep: Dependency, code: string) { - return codeFrameColumns(code, adjustLocForCodeFrame(loc), { - message: `dep #${depIndex} (${dep.name})`, - linesAbove: 0, - linesBelow: 0, - }); + return codeFrameColumns( + code, + // @ts-ignore-error TODO(@kitten): Unclear why this doesn't match up. Are our @babel/* types misaligned or is this incorrect? + adjustLocForCodeFrame(loc), + { + message: `dep #${depIndex} (${dep.name})`, + linesAbove: 0, + linesBelow: 0, + } + ); } diff --git a/packages/@expo/metro-config/src/transform-worker/__tests__/asset-transformer.test.ts b/packages/@expo/metro-config/src/transform-worker/__tests__/asset-transformer.test.ts index a1125a68442bab..ed9ccfb157ec47 100644 --- a/packages/@expo/metro-config/src/transform-worker/__tests__/asset-transformer.test.ts +++ b/packages/@expo/metro-config/src/transform-worker/__tests__/asset-transformer.test.ts @@ -1,7 +1,7 @@ import * as generator from '@babel/generator'; +import { getAssetData } from '@expo/metro/metro/Assets'; import * as fs from 'fs'; import { vol } from 'memfs'; -import { getAssetData } from 'metro/src/Assets'; import { transform } from '../asset-transformer'; @@ -44,7 +44,7 @@ function getMockImageExport() { jest.mock('fs'); -jest.mock('metro/src/Assets', () => ({ getAssetData: jest.fn() })); +jest.mock('@expo/metro/metro/Assets', () => ({ getAssetData: jest.fn() })); beforeEach(() => { jest.resetModules(); diff --git a/packages/@expo/metro-config/src/transform-worker/__tests__/collect-dependencies-upstream.test.ts b/packages/@expo/metro-config/src/transform-worker/__tests__/collect-dependencies-upstream.test.ts index bec4cd4d51a270..8b5258c092eda3 100644 --- a/packages/@expo/metro-config/src/transform-worker/__tests__/collect-dependencies-upstream.test.ts +++ b/packages/@expo/metro-config/src/transform-worker/__tests__/collect-dependencies-upstream.test.ts @@ -12,11 +12,11 @@ import { codeFrameColumns } from '@babel/code-frame'; import { transformFromAstSync, parse, types as t } from '@babel/core'; import type { NodePath } from '@babel/core'; import generate from '@babel/generator'; -import dedent from 'dedent'; import { importLocationsPlugin, locToKey, -} from 'metro/src/ModuleGraph/worker/importLocationsPlugin'; +} from '@expo/metro/metro/ModuleGraph/worker/importLocationsPlugin'; +import dedent from 'dedent'; import assert from 'node:assert'; import { importExportPlugin } from '../../transform-plugins/import-export-plugin'; @@ -1498,6 +1498,9 @@ it('integration: records locations of inlined dependencies (Metro ESM)', () => { const inlineableCalls = [importDefault, importAll]; + const { + inlineRequiresPlugin, + }: typeof import('@expo/metro/metro-transform-plugins') = require('@expo/metro/metro-transform-plugins'); const { ast: transformedAst } = transformFromAstSync(ast, code, { ast: true, plugins: [ @@ -1508,7 +1511,7 @@ it('integration: records locations of inlined dependencies (Metro ESM)', () => { importAll, }, ], - [require('metro-transform-plugins').inlineRequiresPlugin, { inlineableCalls }], + [inlineRequiresPlugin, { inlineableCalls }], ], babelrc: false, configFile: false, diff --git a/packages/@expo/metro-config/src/transform-worker/__tests__/metro-transform-worker.test.ts b/packages/@expo/metro-config/src/transform-worker/__tests__/metro-transform-worker.test.ts index 1d3a8df982f5de..3cdbdd081bc4c2 100644 --- a/packages/@expo/metro-config/src/transform-worker/__tests__/metro-transform-worker.test.ts +++ b/packages/@expo/metro-config/src/transform-worker/__tests__/metro-transform-worker.test.ts @@ -9,12 +9,16 @@ * https://github.com/facebook/metro/blob/412771475c540b6f85d75d9dcd5a39a6e0753582/packages/metro-transform-worker/src/index.js#L1 */ +import { fromRawMappings } from '@expo/metro/metro-source-map'; +import type { + JsTransformerConfig, + JsTransformOptions, + JsOutput, +} from '@expo/metro/metro-transform-worker'; import { TraceMap, originalPositionFor, generatedPositionFor } from '@jridgewell/trace-mapping'; import { Buffer } from 'buffer'; import * as fs from 'fs'; import { vol } from 'memfs'; -import { fromRawMappings } from 'metro-source-map'; -import type { JsTransformerConfig, JsTransformOptions, JsOutput } from 'metro-transform-worker'; import * as path from 'path'; /** Converts source mappings from Metro to a “TraceMap”, which is similar to source-map’s SourceMapConsumer */ @@ -39,15 +43,20 @@ afterEach(() => { }); jest - .mock('metro-transform-worker/src/utils/getMinifier', () => () => ({ code, map, config }) => { - const trimmed = config.output.comments ? code : code.replace('/*#__PURE__*/', ''); - return { - code: trimmed.replace('arbitrary(code)', 'minified(code)'), - map, - }; - }) - .mock('metro-transform-plugins', () => ({ - ...jest.requireActual('metro-transform-plugins'), + .mock( + '@expo/metro/metro-transform-worker/utils/getMinifier', + () => + () => + ({ code, map, config }) => { + const trimmed = config.output.comments ? code : code.replace('/*#__PURE__*/', ''); + return { + code: trimmed.replace('arbitrary(code)', 'minified(code)'), + map, + }; + } + ) + .mock('@expo/metro/metro-transform-plugins', () => ({ + ...jest.requireActual('@expo/metro/metro-transform-plugins'), inlinePlugin: () => ({}), constantFoldingPlugin: () => ({}), })) @@ -739,10 +748,12 @@ it('allows the constantFoldingPlugin to not remove used helpers when `dev: false // NOTE(kitten): The `constantFoldingPlugin` removes used, inlined Babel helpers, unless // the AST path has been re-crawled. If this regressed, check whether `programPath.scope.crawl()` // is called before this plugin is run. - jest.mock('metro-transform-plugins', () => ({ - ...jest.requireActual('metro-transform-plugins'), + jest.mock('@expo/metro/metro-transform-plugins', () => ({ + ...jest.requireActual('@expo/metro/metro-transform-plugins'), inlinePlugin: () => ({}), - constantFoldingPlugin: jest.requireActual('metro-transform-plugins').constantFoldingPlugin, + constantFoldingPlugin: jest.requireActual( + '@expo/metro/metro-transform-plugins' + ).constantFoldingPlugin, })); const contents = ['import * as test from "test-module";', 'export { test };'].join('\n'); diff --git a/packages/@expo/metro-config/src/transform-worker/asset-transformer.ts b/packages/@expo/metro-config/src/transform-worker/asset-transformer.ts index af727f1eb0fe26..97fddbb90b1293 100644 --- a/packages/@expo/metro-config/src/transform-worker/asset-transformer.ts +++ b/packages/@expo/metro-config/src/transform-worker/asset-transformer.ts @@ -9,8 +9,8 @@ * https://github.com/facebook/metro/blob/412771475c540b6f85d75d9dcd5a39a6e0753582/packages/metro-transform-worker/src/utils/assetTransformer.js#L1 */ import { type ParseResult, template, types as t } from '@babel/core'; -import { generateAssetCodeFileAst } from 'metro/src/Bundler/util'; -import { BabelTransformerArgs } from 'metro-babel-transformer'; +import { generateAssetCodeFileAst } from '@expo/metro/metro/Bundler/util'; +import type { BabelTransformerArgs } from '@expo/metro/metro-babel-transformer'; import path from 'node:path'; import url from 'node:url'; diff --git a/packages/@expo/metro-config/src/transform-worker/count-lines.ts b/packages/@expo/metro-config/src/transform-worker/count-lines.ts index ca292a50529124..b8395ff77550ad 100644 --- a/packages/@expo/metro-config/src/transform-worker/count-lines.ts +++ b/packages/@expo/metro-config/src/transform-worker/count-lines.ts @@ -8,7 +8,7 @@ * https://github.com/facebook/metro/blob/96c6b893eb77b5929b6050d7189905232ddf6d6d/packages/metro-transform-worker/src/index.js#L679 */ -import type { MetroSourceMapSegmentTuple } from 'metro-source-map'; +import type { MetroSourceMapSegmentTuple } from '@expo/metro/metro-source-map'; export function countLinesAndTerminateMap( code: string, diff --git a/packages/@expo/metro-config/src/transform-worker/getAssets.ts b/packages/@expo/metro-config/src/transform-worker/getAssets.ts index e958711bd6b403..d5019a9711d32a 100644 --- a/packages/@expo/metro-config/src/transform-worker/getAssets.ts +++ b/packages/@expo/metro-config/src/transform-worker/getAssets.ts @@ -5,15 +5,14 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -import type { AssetData, Module } from 'metro'; -import { getAssetData } from 'metro/src/Assets'; -import { getJsOutput, isJsModule } from 'metro/src/DeltaBundler/Serializers/helpers/js.js'; +import { getAssetData, type AssetData } from '@expo/metro/metro/Assets'; +// NOTE(@kitten): jest-resolver -> resolve.exports bug (https://github.com/lukeed/resolve.exports/issues/40) +import { getJsOutput, isJsModule } from '@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js'; +import type { Module, ReadOnlyDependencies } from '@expo/metro/metro/DeltaBundler/types.flow'; import crypto from 'node:crypto'; import fs from 'node:fs'; import path from 'node:path'; -import { ReadOnlyDependencies } from '../serializer/getCssDeps'; - const debug = require('debug')('expo:metro-config:assets') as typeof console.log; type ExpoAssetData = AssetData & { diff --git a/packages/@expo/metro-config/src/transform-worker/metro-transform-worker.ts b/packages/@expo/metro-config/src/transform-worker/metro-transform-worker.ts index 8ccd269b99c65f..356af0cc6bc597 100644 --- a/packages/@expo/metro-config/src/transform-worker/metro-transform-worker.ts +++ b/packages/@expo/metro-config/src/transform-worker/metro-transform-worker.ts @@ -11,25 +11,29 @@ import { transformFromAstSync, parse, types as t, template } from '@babel/core'; import type { ParseResult, PluginItem, NodePath } from '@babel/core'; import generate from '@babel/generator'; -import JsFileWrapping from 'metro/src/ModuleGraph/worker/JsFileWrapping'; -import generateImportNames from 'metro/src/ModuleGraph/worker/generateImportNames'; +import JsFileWrapping from '@expo/metro/metro/ModuleGraph/worker/JsFileWrapping'; +import generateImportNames from '@expo/metro/metro/ModuleGraph/worker/generateImportNames'; import { importLocationsPlugin, locToKey, -} from 'metro/src/ModuleGraph/worker/importLocationsPlugin'; -import type { BabelTransformer, BabelTransformerArgs } from 'metro-babel-transformer'; -import { stableHash } from 'metro-cache'; -import getMetroCacheKey from 'metro-cache-key'; +} from '@expo/metro/metro/ModuleGraph/worker/importLocationsPlugin'; +import type { BabelTransformer, BabelTransformerArgs } from '@expo/metro/metro-babel-transformer'; +import { stableHash } from '@expo/metro/metro-cache'; +import { getCacheKey as getMetroCacheKey } from '@expo/metro/metro-cache-key'; import { fromRawMappings, functionMapBabelPlugin, toBabelSegments, toSegmentTuple, -} from 'metro-source-map'; -import type { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from 'metro-source-map'; -import metroTransformPlugins from 'metro-transform-plugins'; -import { JsTransformerConfig, JsTransformOptions, Type } from 'metro-transform-worker'; -import getMinifier from 'metro-transform-worker/src/utils/getMinifier'; +} from '@expo/metro/metro-source-map'; +import type { FBSourceFunctionMap, MetroSourceMapSegmentTuple } from '@expo/metro/metro-source-map'; +import * as metroTransformPlugins from '@expo/metro/metro-transform-plugins'; +import type { + JsTransformerConfig, + JsTransformOptions, + Type, +} from '@expo/metro/metro-transform-worker'; +import getMinifier from '@expo/metro/metro-transform-worker/utils/getMinifier'; import assert from 'node:assert'; import * as assetTransformer from './asset-transformer'; @@ -780,15 +784,16 @@ export async function transform( export function getCacheKey(config: JsTransformerConfig): string { const { babelTransformerPath, minifierPath, ...remainingConfig } = config; + // TODO(@kitten): We can now tie this into `@expo/metro`, which could also simply export a static version export const filesKey = getMetroCacheKey([ require.resolve(babelTransformerPath), require.resolve(minifierPath), - require.resolve('metro-transform-worker/src/utils/getMinifier'), + require.resolve('@expo/metro/metro-transform-worker/utils/getMinifier'), require.resolve('./collect-dependencies'), require.resolve('./asset-transformer'), require.resolve('./resolveOptions'), - require.resolve('metro/src/ModuleGraph/worker/generateImportNames'), - require.resolve('metro/src/ModuleGraph/worker/JsFileWrapping'), + require.resolve('@expo/metro/metro/ModuleGraph/worker/generateImportNames'), + require.resolve('@expo/metro/metro/ModuleGraph/worker/JsFileWrapping'), ...metroTransformPlugins.getTransformPluginCacheKeyFiles(), ]); diff --git a/packages/@expo/metro-config/src/transform-worker/postcss.ts b/packages/@expo/metro-config/src/transform-worker/postcss.ts index 9edb97e85500f3..58a1828776ecb4 100644 --- a/packages/@expo/metro-config/src/transform-worker/postcss.ts +++ b/packages/@expo/metro-config/src/transform-worker/postcss.ts @@ -259,7 +259,9 @@ export async function resolvePostcssConfig( export function getPostcssConfigHash(projectRoot: string): string | null { // TODO: Maybe recurse plugins and add versions to the hash in the future. - const { stableHash } = require('metro-cache'); + const { + stableHash, + }: typeof import('@expo/metro/metro-cache') = require('@expo/metro/metro-cache'); for (const ext of ['.mjs', '.js']) { const configPath = path.join(projectRoot, CONFIG_FILE_NAME + ext); diff --git a/packages/@expo/metro-config/src/transform-worker/resolveOptions.ts b/packages/@expo/metro-config/src/transform-worker/resolveOptions.ts index 4305cf706296ed..c63f249bd0b4dc 100644 --- a/packages/@expo/metro-config/src/transform-worker/resolveOptions.ts +++ b/packages/@expo/metro-config/src/transform-worker/resolveOptions.ts @@ -1,4 +1,4 @@ -import { JsTransformOptions } from 'metro-transform-worker'; +import type { JsTransformOptions } from '@expo/metro/metro-transform-worker'; function isHermesEngine(options: Pick): boolean { // NOTE: This has multiple inputs since we also use the `customTransformOptions.engine` option to indicate the Hermes engine. diff --git a/packages/@expo/metro-config/src/transform-worker/transform-worker.ts b/packages/@expo/metro-config/src/transform-worker/transform-worker.ts index 4c2a97d1676786..ed8056bf90cdc9 100644 --- a/packages/@expo/metro-config/src/transform-worker/transform-worker.ts +++ b/packages/@expo/metro-config/src/transform-worker/transform-worker.ts @@ -6,12 +6,13 @@ * LICENSE file in the root directory of this source tree. */ -import countLines from 'metro/src/lib/countLines'; +import type { TransformResultDependency } from '@expo/metro/metro/DeltaBundler'; +import countLines from '@expo/metro/metro/lib/countLines'; import type { JsTransformerConfig, JsTransformOptions, - TransformResponse, -} from 'metro-transform-worker'; + JsOutput, +} from '@expo/metro/metro-transform-worker'; import { relative, dirname } from 'node:path'; import { getBrowserslistTargets } from './browserslist'; @@ -29,6 +30,11 @@ import { compileSass, matchSass } from './sass'; import { ExpoJsOutput } from '../serializer/jsOutput'; import { toPosixPath } from '../utils/filePath'; +interface TransformResponse { + readonly dependencies: readonly TransformResultDependency[]; + readonly output: readonly JsOutput[]; +} + const debug = require('debug')('expo:metro-config:transform-worker') as typeof console.log; function getStringArray(value: any): string[] | undefined { diff --git a/packages/@expo/metro-config/src/traveling/metro-config.ts b/packages/@expo/metro-config/src/traveling/metro-config.ts index cc5bd0297d12ce..515b80c37b3c04 100644 --- a/packages/@expo/metro-config/src/traveling/metro-config.ts +++ b/packages/@expo/metro-config/src/traveling/metro-config.ts @@ -1,15 +1,13 @@ +// TODO(@kitten): is this invalid/redundant with @expo/metro? // This package needs to be imported from within the project to import resolveFrom from 'resolve-from'; // ensure that Metro can bundle the project's assets (see: `watchFolders`). -export function importMetroConfig(projectRoot: string): typeof import('metro-config') & { - getDefaultConfig: import('metro-config/src/defaults/index').default; -} { +export function importMetroConfig(projectRoot: string): typeof import('@expo/metro/metro-config') { const modulePath = resolveFrom.silent(projectRoot, 'metro-config'); - if (!modulePath) { - return require('metro-config'); + return require('@expo/metro/metro-config'); } return require(modulePath); } diff --git a/packages/@expo/metro-config/src/types.d.ts b/packages/@expo/metro-config/src/types.d.ts new file mode 100644 index 00000000000000..a6e045d75df9a2 --- /dev/null +++ b/packages/@expo/metro-config/src/types.d.ts @@ -0,0 +1,2 @@ +// NOTE(@kitten): Provide type augmentations for `@expo/metro` +import 'expo-module-scripts/types/expo-metro-augmentations.d.ts'; diff --git a/packages/@expo/metro-config/src/utils/setOnReadonly.ts b/packages/@expo/metro-config/src/utils/setOnReadonly.ts new file mode 100644 index 00000000000000..e3d07b7f0d1fa6 --- /dev/null +++ b/packages/@expo/metro-config/src/utils/setOnReadonly.ts @@ -0,0 +1,8 @@ +/** Set `value` on `obj[key]` while bypassing readonly property annotations */ +export function setOnReadonly( + obj: T, + key: K, + value: V +): asserts obj is T & { [key in K]: V } { + obj[key] = value; +} diff --git a/packages/@expo/metro-runtime/src/ts-declarations/metro-runtime.d.ts b/packages/@expo/metro-runtime/src/ts-declarations/metro-runtime.d.ts deleted file mode 100644 index f728f060c94176..00000000000000 --- a/packages/@expo/metro-runtime/src/ts-declarations/metro-runtime.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -// TODO(@kitten): Used in `src/HMRClient.ts`; move to using `metro-runtime/modules/HMRClient` import -declare module 'metro-runtime/src/modules/HMRClient' { - // NOTE(@kitten): These are inexact types, but we're just trying to vaguely match for now - class HMRClient { - constructor(uri: string); - - send(msg: string): void; - isEnabled(): boolean; - disable(): void; - enable(): void; - close(): void; - hasPendingUpdates(): boolean; - - on(name: 'connection-error', onEvent: (error: Error) => unknown): void; - on(name: 'update-start', onEvent: (event: { isInitialUpdate?: boolean }) => unknown): void; - on(name: 'update', onEvent: (event: { isInitialUpdate?: boolean }) => unknown): void; - on(name: 'update-done', onEvent: (event: unknown) => unknown): void; - on(name: 'error', onEvent: (event: { type: string; message: string }) => unknown): void; - on(name: 'close', onEvent: (event: { code: number; reason: string }) => unknown): void; - } - export = HMRClient; -} diff --git a/packages/babel-preset-expo/package.json b/packages/babel-preset-expo/package.json index 8dc863243c4dc9..dfca5532985c31 100644 --- a/packages/babel-preset-expo/package.json +++ b/packages/babel-preset-expo/package.json @@ -74,6 +74,7 @@ }, "devDependencies": { "@types/babel__core": "^7.20.5", + "@expo/metro": "~0.1.0", "babel-plugin-react-compiler": "^19.0.0-beta-e993439-20250405", "expo-module-scripts": "^4.1.7", "jest": "^29.2.1" diff --git a/packages/babel-preset-expo/src/__tests__/minify-sanity.test.ts b/packages/babel-preset-expo/src/__tests__/minify-sanity.test.ts index 573f8e260937d3..7c92eae864197f 100644 --- a/packages/babel-preset-expo/src/__tests__/minify-sanity.test.ts +++ b/packages/babel-preset-expo/src/__tests__/minify-sanity.test.ts @@ -1,5 +1,6 @@ // Run a number of basic operations on the minifier to ensure it works as expected import * as babel from '@babel/core'; +import constantFoldingPlugin from '@expo/metro/metro-transform-plugins/constant-folding-plugin'; import preset from '..'; import { minifyLikeMetroAsync } from './minify-util'; @@ -13,7 +14,7 @@ const DEFAULT_OPTS = { presets: [[preset]], plugins: [ // Fold constants to emulate Metro - require('metro-transform-plugins/src/constant-folding-plugin.js'), + constantFoldingPlugin, ], sourceMaps: true, filename: 'unknown', diff --git a/packages/babel-preset-expo/src/__tests__/minify-util.ts b/packages/babel-preset-expo/src/__tests__/minify-util.ts index d36e342ef77b2f..9c8bc1de263b34 100644 --- a/packages/babel-preset-expo/src/__tests__/minify-util.ts +++ b/packages/babel-preset-expo/src/__tests__/minify-util.ts @@ -1,6 +1,6 @@ // Rough estimation of how minifying works by default in Expo / Metro. // We'll need to update this if we ever change the default minifier. -import getDefaultConfig from 'metro-config/src/defaults'; +import getDefaultConfig from '@expo/metro/metro-config/defaults'; import metroMinify from 'metro-minify-terser'; export async function minifyLikeMetroAsync({ @@ -11,7 +11,6 @@ export async function minifyLikeMetroAsync({ map?: any; }): Promise<{ code?: string; map?: any }> { if (code == null) throw new Error('code is required for minifying'); - // @ts-expect-error: untyped function const terserConfig = (await getDefaultConfig('/')).transformer.minifierConfig; return metroMinify({ code, diff --git a/packages/babel-preset-expo/src/__tests__/platform-shaking.test.ts b/packages/babel-preset-expo/src/__tests__/platform-shaking.test.ts index ff2f5deb5bef89..2f7db396bc07b7 100644 --- a/packages/babel-preset-expo/src/__tests__/platform-shaking.test.ts +++ b/packages/babel-preset-expo/src/__tests__/platform-shaking.test.ts @@ -1,4 +1,5 @@ import * as babel from '@babel/core'; +import constantFoldingPlugin from '@expo/metro/metro-transform-plugins/constant-folding-plugin'; import preset from '..'; import { minifyLikeMetroAsync } from './minify-util'; @@ -12,7 +13,7 @@ const DEFAULT_OPTS = { presets: [[preset]], plugins: [ // Fold constants to emulate Metro - require('metro-transform-plugins/src/constant-folding-plugin.js'), + constantFoldingPlugin, ], sourceMaps: true, filename: 'unknown', diff --git a/packages/babel-preset-expo/tsconfig.json b/packages/babel-preset-expo/tsconfig.json index 7cd26b263b2119..f170a632c1db80 100644 --- a/packages/babel-preset-expo/tsconfig.json +++ b/packages/babel-preset-expo/tsconfig.json @@ -3,7 +3,6 @@ "include": ["./src"], "exclude": ["**/__mocks__/*", "**/__tests__/*"], "compilerOptions": { - "outDir": "./build", - "typeRoots": ["../@expo/cli/ts-declarations"] + "outDir": "./build" } } diff --git a/packages/expo-doctor/CHANGELOG.md b/packages/expo-doctor/CHANGELOG.md index 3f5fe5191b0615..699e5cfa12f17c 100644 --- a/packages/expo-doctor/CHANGELOG.md +++ b/packages/expo-doctor/CHANGELOG.md @@ -10,6 +10,8 @@ ### 💡 Others +- Switch Metro imports to `@expo/metro` wrapper package ([#38166](https://github.com/expo/expo/pull/38166) by [@kitten](https://github.com/kitten)) + ## 1.13.5 - 2025-07-03 _This version does not introduce any user-facing changes._ diff --git a/packages/expo-doctor/package.json b/packages/expo-doctor/package.json index b45bf95943f973..9db065e84b75ab 100644 --- a/packages/expo-doctor/package.json +++ b/packages/expo-doctor/package.json @@ -38,6 +38,7 @@ "@expo/json-file": "~9.1.4", "@expo/schemer": "1.6.4", "@expo/spawn-async": "^1.7.2", + "@expo/metro": "~0.1.0", "@types/debug": "^4.1.8", "@vercel/ncc": "0.38.1", "chalk": "^4.0.0", diff --git a/packages/expo-doctor/src/utils/metroConfigLoader.ts b/packages/expo-doctor/src/utils/metroConfigLoader.ts index 88b932ab018584..a75671bf3e927f 100644 --- a/packages/expo-doctor/src/utils/metroConfigLoader.ts +++ b/packages/expo-doctor/src/utils/metroConfigLoader.ts @@ -1,6 +1,8 @@ -import type MetroConfig from 'metro-config'; +import type MetroConfig from '@expo/metro/metro-config'; import resolveFrom from 'resolve-from'; +// TODO(@kitten): This should be removed and we need to rely on `@expo/metro/metro-config` +// Same for `@expo/metro-config/src/traveling/metro-config.ts` which should also be removed function importMetroConfigFromProject(projectDir: string): typeof MetroConfig { const resolvedPath = resolveFrom.silent(projectDir, 'metro-config'); if (!resolvedPath) { diff --git a/packages/expo-doctor/ts-declarations/metro-config/index.d.ts b/packages/expo-doctor/ts-declarations/metro-config/index.d.ts deleted file mode 100644 index 7d053503f622d7..00000000000000 --- a/packages/expo-doctor/ts-declarations/metro-config/index.d.ts +++ /dev/null @@ -1,230 +0,0 @@ -declare module 'metro-config' { - import { IncomingMessage, ServerResponse } from 'http'; - import type { - DeltaResult, - Graph, - JsTransformerConfig, - Module, - Reporter, - SerializerOptions, - Server, - TransformVariants, - } from 'metro'; - - type CacheStore = unknown; - type CustomResolver = unknown; - - import type { BasicSourceMap, MixedSourceMap } from 'metro-source-map'; - - //#region metro/packages/metro-config/src/configTypes.flow.js - - export type PostMinifyProcess = (arg: { - code: string; - map: BasicSourceMap | null | undefined; - }) => { - code: string; - map: BasicSourceMap | null | undefined; - }; - - export type PostProcessBundleSourcemap = (arg: { - code: Buffer | string; - map: MixedSourceMap; - outFileName: string; - }) => { - code: Buffer | string; - map: MixedSourceMap | string; - }; - - interface ExtraTransformOptions { - readonly preloadedModules: - | { - [path: string]: true; - } - | false; - readonly ramGroups: string[]; - readonly transform: { - readonly experimentalImportSupport: boolean; - readonly inlineRequires: - | { - readonly blacklist: { - [key: string]: true; - }; - } - | boolean; - readonly nonInlinedRequires?: string[]; - readonly unstable_disableES6Transforms?: boolean; - }; - } - - export interface GetTransformOptionsOpts { - dev: boolean; - hot: boolean; - platform: string | null | undefined; - } - - export type GetTransformOptions = ( - entryPoints: readonly string[], - options: GetTransformOptionsOpts, - getDependenciesOf: (path: string) => Promise - ) => Promise; - - export type Middleware = ( - req: IncomingMessage, - res: ServerResponse, - next: (e: Error | null | undefined) => unknown - ) => unknown; - - interface ResolverConfigT { - assetExts: readonly string[]; - assetResolutions: readonly string[]; - blacklistRE: RegExp; - dependencyExtractor: string | null | undefined; - extraNodeModules: { - [name: string]: string; - }; - hasteImplModulePath: string | null | undefined; - platforms: readonly string[]; - resolverMainFields: readonly string[]; - resolveRequest: CustomResolver | null | undefined; - sourceExts: readonly string[]; - useWatchman: boolean; - } - - interface SerializerConfigT { - createModuleIdFactory: () => (path: string) => number; - customSerializer: ( - entryPoint: string, - preModules: Module[], - graph: Graph, - options: SerializerOptions - ) => string | { code: string; map: string } | null | undefined; - experimentalSerializerHook: (graph: Graph, delta: DeltaResult) => unknown; - getModulesRunBeforeMainModule: (entryFilePath: string) => string[]; - getPolyfills: (arg: { platform: string | null | undefined }) => readonly string[]; - getRunModuleStatement: (moduleId: number | string) => string; - polyfillModuleNames: readonly string[]; - postProcessBundleSourcemap: PostProcessBundleSourcemap; - processModuleFilter: (modules: Module) => boolean; - } - - type TransformerConfigT = JsTransformerConfig & { - getTransformOptions: GetTransformOptions; - postMinifyProcess: PostMinifyProcess; - transformVariants: TransformVariants; - workerPath: string; - publicPath: string; - experimentalImportBundleSupport: false; - }; - - interface MetalConfigT { - cacheStores: readonly any[]; - cacheVersion: string; - hasteMapCacheDirectory?: string; - maxWorkers: number; - projectRoot: string; - stickyWorkers: boolean; - transformerPath: string; - reporter: Reporter; - resetCache: boolean; - watchFolders: readonly string[]; - } - - interface ServerConfigT { - enhanceMiddleware: (middleware: Middleware, server: Server) => Middleware; - useGlobalHotkey: boolean; - port: number; - runInspectorProxy: boolean; - verifyConnections: boolean; - } - - type StackFrameCustomizations = undefined | { collapse?: boolean }; - - interface SymbolicatorConfigT { - customizeFrame: ( - frame: Readonly<{ - file: string | null; - lineNumber: number | null; - column: number | null; - methodName: string | null; - }> - ) => StackFrameCustomizations | Promise; - } - - export type InputConfigT = Partial< - MetalConfigT & - Readonly<{ - resolver: Partial; - server: Partial; - serializer: Partial; - symbolicator: Partial; - transformer: Partial; - }> - >; - - export type IntermediateConfigT = MetalConfigT & { - resolver: ResolverConfigT; - server: ServerConfigT; - serializer: SerializerConfigT; - symbolicator: SymbolicatorConfigT; - transformer: TransformerConfigT; - }; - - export type ConfigT = Readonly< - Readonly & - Readonly<{ - resolver: Readonly; - server: Readonly; - serializer: Readonly; - symbolicator: Readonly; - transformer: Readonly; - }> - >; - - //#endregion - //#region metro/packages/metro-config/src/index.js - - interface CosmiConfigResult { - filepath: string; - isEmpty: boolean; - config: ((arg: ConfigT) => Promise) | ((arg: ConfigT) => ConfigT) | InputConfigT; - } - - interface YargArguments { - config?: string; - cwd?: string; - port?: string | number; - host?: string; - projectRoot?: string; - watchFolders?: string[]; - assetExts?: string[]; - sourceExts?: string[]; - platforms?: string[]; - 'max-workers'?: string | number; - maxWorkers?: string | number; - transformer?: string; - 'reset-cache'?: boolean; - resetCache?: boolean; - runInspectorProxy?: boolean; - verbose?: boolean; - } - - export function resolveConfig(path?: string, cwd?: string): Promise; - - export function mergeConfig( - defaultConfig: T, - ...configs: InputConfigT[] - ): T; - - export function loadConfig( - argv: YargArguments, - defaultConfigOverrides: InputConfigT - ): Promise; - - export function getDefaultConfig(rootPath?: string): Promise; - - namespace getDefaultConfig { - function getDefaultValues(rootPath?: string): ConfigT; - } - - //#endregion -} diff --git a/packages/expo-doctor/ts-declarations/metro/index.d.ts b/packages/expo-doctor/ts-declarations/metro/index.d.ts deleted file mode 100644 index bec72b940c6779..00000000000000 --- a/packages/expo-doctor/ts-declarations/metro/index.d.ts +++ /dev/null @@ -1,486 +0,0 @@ -declare module 'metro' { - //#region metro/src/Assets.js - - type AssetDataWithoutFiles = { - readonly __packager_asset: true; - readonly fileSystemLocation: string; - readonly hash: string; - readonly height: number | null | undefined; - readonly httpServerLocation: string; - readonly name: string; - readonly scales: number[]; - readonly type: string; - readonly width: number | null | undefined; - }; - - export type AssetData = AssetDataWithoutFiles & { readonly files: string[] }; - - //#endregion - //#region metro/src/DeltaBundler/types.flow.js - - type DynamicRequiresBehavior = unknown; - type MinifierConfig = unknown; - type BundleDetails = unknown; - type GlobalCacheDisabledReason = unknown; - type MixedSourceMap = unknown; - type MetroSourceMapSegmentTuple = unknown; - - interface MixedOutput { - readonly data: unknown; - readonly type: string; - } - - interface BabelSourceLocation { - start: { line: number; column: number }; - end: { line: number; column: number }; - identifierName?: string; - } - - interface TransformResultDependency { - /** - * The literal name provided to a require or import call. For example 'foo' in - * case of `require('foo')`. - */ - readonly name: string; - - /** - * Extra data returned by the dependency extractor. Whatever is added here is - * blindly piped by Metro to the serializers. - */ - readonly data: { - /** - * If `true` this dependency is due to a dynamic `import()` call. If `false`, - * this dependency was pulled using a synchronous `require()` call. - */ - readonly isAsync: boolean; - - /** - * The dependency is actually a `__prefetchImport()` call. - */ - readonly isPrefetchOnly?: true; - - /** - * The condition for splitting on this dependency edge. - */ - readonly splitCondition?: { - readonly mobileConfigName: string; - }; - - /** - * The dependency is enclosed in a try/catch block. - */ - readonly isOptional?: boolean; - - readonly locs: readonly BabelSourceLocation[]; - }; - } - - interface Dependency { - readonly absolutePath: string; - readonly data: TransformResultDependency; - } - - export interface Module { - readonly dependencies: Map; - readonly inverseDependencies: Set; - readonly output: readonly T[]; - readonly path: string; - readonly getSource: () => Buffer; - } - - export interface Graph { - dependencies: Map>; - importBundleNames: Set; - readonly entryPoints: readonly string[]; - } - - export type TransformResult = Readonly<{ - dependencies: readonly TransformResultDependency[]; - output: readonly T[]; - }>; - - interface AllowOptionalDependenciesWithOptions { - readonly exclude: string[]; - } - type AllowOptionalDependencies = boolean | AllowOptionalDependenciesWithOptions; - - export interface DeltaResult { - readonly added: Map>; - readonly modified: Map>; - readonly deleted: Set; - readonly reset: boolean; - } - - export interface SerializerOptions { - readonly asyncRequireModulePath: string; - readonly createModuleId: (arg0: string) => number; - readonly dev: boolean; - readonly getRunModuleStatement: (arg0: number | string) => string; - readonly inlineSourceMap: boolean | null | undefined; - readonly modulesOnly: boolean; - readonly processModuleFilter: (module: Module) => boolean; - readonly projectRoot: string; - readonly runBeforeMainModule: readonly string[]; - readonly runModule: boolean; - readonly sourceMapUrl: string | null | undefined; - readonly sourceUrl: string | null | undefined; - } - - //#endregion - //#region metro/src/DeltaBundler/Serializers/getRamBundleInfo.js - - interface RamBundleInfo { - getDependencies: (filePath: string) => Set; - startupModules: readonly ModuleTransportLike[]; - lazyModules: readonly ModuleTransportLike[]; - groups: Map>; - } - - //#endregion - //#region metro/src/index.js - - import { Server as HttpServer, IncomingMessage, ServerResponse } from 'http'; - import { Server as HttpsServer } from 'https'; - import { ConfigT, InputConfigT, Middleware, loadConfig } from 'metro-config'; - - type MetroMiddleWare = { - attachHmrServer: (httpServer: HttpServer | HttpsServer) => void; - end: () => void; - metroServer: Server; - middleware: Middleware; - }; - - type RunServerOptions = { - hasReducedPerformance?: boolean; - hmrEnabled?: boolean; - host?: string; - onError?: (arg0: Error & { code?: string }) => void; - onReady?: (server: HttpServer | HttpsServer) => void; - runInspectorProxy?: boolean; - secure?: boolean; - secureCert?: string; - secureKey?: string; - }; - - type BuildGraphOptions = { - entries: readonly string[]; - customTransformOptions?: CustomTransformOptions; - dev?: boolean; - minify?: boolean; - onProgress?: (transformedFileCount: number, totalFileCount: number) => void; - platform?: string; - type?: 'module' | 'script'; - }; - - type RunBuildOptions = { - entry: string; - dev?: boolean; - out?: string; - onBegin?: () => void; - onComplete?: () => void; - onProgress?: (transformedFileCount: number, totalFileCount: number) => void; - minify?: boolean; - output?: { - build: ( - arg0: Server, - arg1: RequestOptions - ) => Promise<{ - code: string; - map: string; - }>; - save: ( - arg0: { - code: string; - map: string; - }, - arg1: OutputOptions, - arg2: (...args: string[]) => void - ) => Promise; - }; - platform?: string; - sourceMap?: boolean; - sourceMapUrl?: string; - }; - - export function runMetro(config: InputConfigT, options?: ServerOptions): Promise; - - export { loadConfig }; - - export function createConnectMiddleware( - config: ConfigT, - options?: ServerOptions - ): Promise; - - export function runServer( - config: ConfigT, - options: RunServerOptions - ): Promise; - - export function runBuild( - config: ConfigT, - options: RunBuildOptions - ): Promise<{ - code: string; - map: string; - }>; - - export function buildGraph(config: InputConfigT, options: BuildGraphOptions): Promise; - //#endregion - //#region metro/src/JSTransformer/worker.js - - type CustomTransformOptions = { - [key: string]: unknown; - }; - - export type JsTransformerConfig = Readonly<{ - assetPlugins: readonly string[]; - assetRegistryPath: string; - asyncRequireModulePath: string; - babelTransformerPath: string; - dynamicDepsInPackages: DynamicRequiresBehavior; - enableBabelRCLookup: boolean; - enableBabelRuntime: boolean; - experimentalImportBundleSupport: boolean; - minifierConfig: MinifierConfig; - minifierPath: string; - optimizationSizeLimit: number; - publicPath: string; - allowOptionalDependencies: AllowOptionalDependencies; - }>; - - //#endregion - //#region metro/src/lib/reporting.js - - /** - * A tagged union of all the actions that may happen and we may want to - * report to the tool user. - */ - export type ReportableEvent = - | { - port: number; - hasReducedPerformance: boolean; - type: 'initialize_started'; - } - | { - type: 'initialize_failed'; - port: number; - error: Error; - } - | { - buildID: string; - type: 'bundle_build_done'; - } - | { - buildID: string; - type: 'bundle_build_failed'; - } - | { - buildID: string; - bundleDetails: BundleDetails; - type: 'bundle_build_started'; - } - | { - error: Error; - type: 'bundling_error'; - } - | { - type: 'dep_graph_loading'; - hasReducedPerformance: boolean; - } - | { type: 'dep_graph_loaded' } - | { - buildID: string; - type: 'bundle_transform_progressed'; - transformedFileCount: number; - totalFileCount: number; - } - | { - type: 'global_cache_error'; - error: Error; - } - | { - type: 'global_cache_disabled'; - reason: GlobalCacheDisabledReason; - } - | { type: 'transform_cache_reset' } - | { - type: 'worker_stdout_chunk'; - chunk: string; - } - | { - type: 'worker_stderr_chunk'; - chunk: string; - } - | { - type: 'hmr_client_error'; - error: Error; - } - | { - type: 'client_log'; - level: - | 'trace' - | 'info' - | 'warn' - | 'log' - | 'group' - | 'groupCollapsed' - | 'groupEnd' - | 'debug'; - data: unknown[]; - }; - - /** - * Code across the application takes a reporter as an option and calls the - * update whenever one of the ReportableEvent happens. Code does not directly - * write to the standard output, because a build would be: - * - * 1. ad-hoc, embedded into another tool, in which case we do not want to - * pollute that tool's own output. The tool is free to present the - * warnings/progress we generate any way they want, by specifing a custom - * reporter. - * 2. run as a background process from another tool, in which case we want - * to expose updates in a way that is easily machine-readable, for example - * a JSON-stream. We don't want to pollute it with textual messages. - * - * We centralize terminal reporting into a single place because we want the - * output to be robust and consistent. The most common reporter is - * TerminalReporter, that should be the only place in the application should - * access the `terminal` module (nor the `console`). - */ - export interface Reporter { - update(event: ReportableEvent): void; - } - - //#endregion - //#region metro/src/ModuleGraph/types.flow.js - - export type TransformVariants = { - readonly [name: string]: object; - }; - - //#endregion - //#region metro/src/Server.js - - type ServerOptions = Readonly<{ - watch?: boolean; - }>; - - //#endregion - //#region metro/src/Server/index.js - - type IncrementalBundler = unknown; - - export class Server { - constructor(config: ConfigT, options?: ServerOptions); - - end(): void; - - getBundler(): IncrementalBundler; - - getCreateModuleId(): (path: string) => number; - - build(options: BundleOptions): Promise<{ - code: string; - map: string; - }>; - - getRamBundleInfo(options: BundleOptions): Promise; - - getAssets(options: BundleOptions): Promise; - - getOrderedDependencyPaths(options: { - readonly dev: boolean; - readonly entryFile: string; - readonly minify: boolean; - readonly platform: string; - }): Promise; - - processRequest( - req: IncomingMessage, - res: ServerResponse, - next: (arg0: Error | null | undefined) => unknown - ): void; - - getNewBuildID(): string; - - getPlatforms(): readonly string[]; - - getWatchFolders(): readonly string[]; - - static DEFAULT_GRAPH_OPTIONS: { - customTransformOptions: any; - dev: boolean; - hot: boolean; - minify: boolean; - }; - - static DEFAULT_BUNDLE_OPTIONS: typeof Server.DEFAULT_GRAPH_OPTIONS & { - excludeSource: false; - inlineSourceMap: false; - modulesOnly: false; - onProgress: null; - runModule: true; - shallow: false; - sourceMapUrl: null; - sourceUrl: null; - }; - } - - //#endregion - //#region metro/src/shared/types.flow.js - - type BundleType = 'bundle' | 'delta' | 'meta' | 'map' | 'ram' | 'cli' | 'hmr' | 'todo' | 'graph'; - - type MetroSourceMapOrMappings = MixedSourceMap | MetroSourceMapSegmentTuple[]; - - export interface BundleOptions { - bundleType: BundleType; - customTransformOptions: CustomTransformOptions; - dev: boolean; - entryFile: string; - readonly excludeSource: boolean; - readonly hot: boolean; - readonly inlineSourceMap: boolean; - minify: boolean; - readonly modulesOnly: boolean; - onProgress: (doneCont: number, totalCount: number) => unknown | null | undefined; - readonly platform: string | null | undefined; - readonly runModule: boolean; - readonly shallow: boolean; - sourceMapUrl: string | null | undefined; - sourceUrl: string | null | undefined; - createModuleIdFactory?: () => (path: string) => number; - } - - type ModuleTransportLike = { - readonly code: string; - readonly id: number; - readonly map: MetroSourceMapOrMappings | null | undefined; - readonly name?: string; - readonly sourcePath: string; - }; - - export interface OutputOptions { - bundleOutput: string; - bundleEncoding?: 'utf8' | 'utf16le' | 'ascii'; - dev?: boolean; - indexedRamBundle?: boolean; - platform: string; - sourcemapOutput?: string; - sourcemapSourcesRoot?: string; - sourcemapUseAbsolutePath?: boolean; - } - - export interface RequestOptions { - entryFile: string; - inlineSourceMap?: boolean; - sourceMapUrl?: string; - dev?: boolean; - minify: boolean; - platform: string; - createModuleIdFactory?: () => (path: string) => number; - onProgress?: (transformedFileCount: number, totalFileCount: number) => void; - } - - //#endregion -} diff --git a/packages/expo-module-scripts/types/expo-metro-augmentations.d.ts b/packages/expo-module-scripts/types/expo-metro-augmentations.d.ts new file mode 100644 index 00000000000000..f29903ffb43852 --- /dev/null +++ b/packages/expo-module-scripts/types/expo-metro-augmentations.d.ts @@ -0,0 +1,49 @@ +/* eslint-disable */ + +/// +/// +/// + +import * as __metroDeltaBundlerTypes from '@expo/metro/metro/DeltaBundler/types.flow'; +declare module '@expo/metro/metro/DeltaBundler/types.flow' { + const enum _AsyncDependencyType { + /** @privateRemarks Augmentation adds `asyncType: 'worker'` to possible values for worker chunk splitting */ + worker = 'worker' + } +} + +import * as __metroBabelTransformer from '@expo/metro/metro-babel-transformer'; +declare module '@expo/metro/metro-babel-transformer' { + interface BabelTransformerOptions { + /** @privateRemarks Augmentation passed to the Expo Babel caller and used in `babel-preset-expo` to force `enableBabelRuntime` to `false` */ + type?: 'script' | 'module' | 'asset'; + } + + interface MetroBabelFileMetadata { + /** @privateRemarks Augmentation used in babel-preset-expo/src/{client-module-proxy-plugin.ts,server-actions-plugin.ts} */ + reactServerReference?: string; + /** @privateRemarks Augmentation used in babel-preset-expo/src/client-module-proxy-plugin.ts */ + reactClientReference?: string; + /** @privateRemarks Augmentation used in babel-preset-expo/src/use-dom-directive-plugin.ts */ + expoDomComponentReference?: string; + /** @privateRemarks Augmentation used in babel-preset-expo/src/detect-dynamic-exports.ts */ + hasCjsExports?: boolean; + } +} + +import * as __metroSourceMap from '@expo/metro/metro-source-map/source-map'; +declare module '@expo/metro/metro-source-map/source-map' { + /** @privateRemarks Addition as per: https://github.com/facebook/metro/blob/3eeba3d459592aa5128995c8224933f6a23a43f1/flow-typed/npm/babel_v7.x.x.js#L23 */ + export interface BabelSourceMapSegment extends Record { + name?: null | string; + source?: null | string; + generated: { line: number; column: number }; + original?: { line: number; column: number }; + } + + /** @privateRemarks Augmented to switch return type to `BabelSourceMapSegment[]` */ + export function toBabelSegments(sourceMap: BasicSourceMap): BabelSourceMapSegment[]; + /** @privateRemarks Augmented to switch argument type to `BabelSourceMapSegment` */ + export function toSegmentTuple(mapping: BabelSourceMapSegment): MetroSourceMapSegmentTuple; +} + diff --git a/packages/expo/CHANGELOG.md b/packages/expo/CHANGELOG.md index 938ce7f6e7556f..ffe8181da2ff5c 100644 --- a/packages/expo/CHANGELOG.md +++ b/packages/expo/CHANGELOG.md @@ -20,6 +20,7 @@ - Reexport `@expo/config/paths` paths as `expo/config/paths`. ([#37860](https://github.com/expo/expo/pull/37860) by [@aleqsio](https://github.com/aleqsio)) - [fetch] refactor reference equality ([#38231](https://github.com/expo/expo/pull/38231) by [@vonovak](https://github.com/vonovak)) - [Android] Remove react-native 0.74 support files ([#38216](https://github.com/expo/expo/pull/38216) by [@gabrieldonadel](https://github.com/gabrieldonadel)) +- Switch Metro imports to `@expo/metro` wrapper package ([#38166](https://github.com/expo/expo/pull/38166) by [@kitten](https://github.com/kitten)) ### ⚠️ Notices diff --git a/packages/expo/build/async-require/hmr.d.ts.map b/packages/expo/build/async-require/hmr.d.ts.map index 3b2e2037f73df6..7d8c91d9162516 100644 --- a/packages/expo/build/async-require/hmr.d.ts.map +++ b/packages/expo/build/async-require/hmr.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/async-require/hmr.ts"],"names":[],"mappings":"AA6CA,KAAK,QAAQ,GACT,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,GACL,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5C,CAAC;AAMF;;;GAGG;AACH,QAAA,MAAM,SAAS,EAAE,wBAsMhB,CAAC;AAuEF,eAAe,SAAS,CAAC"} \ No newline at end of file +{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../../src/async-require/hmr.ts"],"names":[],"mappings":"AA4CA,KAAK,QAAQ,GACT,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,GACL,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC5C,CAAC;AAMF;;;GAGG;AACH,QAAA,MAAM,SAAS,EAAE,wBAsMhB,CAAC;AAuEF,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/packages/expo/package.json b/packages/expo/package.json index 4589ae0d94eca1..ccddec9e299f3d 100644 --- a/packages/expo/package.json +++ b/packages/expo/package.json @@ -77,6 +77,7 @@ "@expo/config": "~11.0.10", "@expo/config-plugins": "~10.0.2", "@expo/fingerprint": "0.13.0", + "@expo/metro": "~0.1.0", "@expo/metro-config": "0.20.14", "@expo/vector-icons": "^14.0.0", "babel-preset-expo": "~13.1.11", diff --git a/packages/expo/src/async-require/hmr.ts b/packages/expo/src/async-require/hmr.ts index 2e2ef41c615805..975d3512b31283 100644 --- a/packages/expo/src/async-require/hmr.ts +++ b/packages/expo/src/async-require/hmr.ts @@ -8,8 +8,7 @@ * Based on this but with web support: * https://github.com/facebook/react-native/blob/086714b02b0fb838dee5a66c5bcefe73b53cf3df/Libraries/Utilities/HMRClient.js */ -// @ts-expect-error: no types for MetroHMRClient -import MetroHMRClient from 'metro-runtime/src/modules/HMRClient'; +import MetroHMRClient from '@expo/metro/metro-runtime/modules/HMRClient'; import prettyFormat, { plugins } from 'pretty-format'; import { DeviceEventEmitter } from 'react-native'; diff --git a/yarn.lock b/yarn.lock index b1499a701a237a..11e859e42f0881 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1409,6 +1409,24 @@ debug "^3.1.0" glob "^10.4.2" +"@expo/metro@~0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@expo/metro/-/metro-0.1.0.tgz#492fadee742d3f976b8531dbd686ac4d2c2a26b2" + integrity sha512-gJ0Dou3QXXY5jp6r6jERYRFsXCvs9HQ7H+/QTL595iWV8i9DYTnQMVBw5M41TBQEq8CpaMDXm+DVpqL746Ek0g== + dependencies: + metro "0.83.0" + metro-babel-transformer "0.83.0" + metro-cache "0.83.0" + metro-cache-key "0.83.0" + metro-config "0.83.0" + metro-core "0.83.0" + metro-file-map "0.83.0" + metro-resolver "0.83.0" + metro-runtime "0.83.0" + metro-source-map "0.83.0" + metro-transform-plugins "0.83.0" + metro-transform-worker "0.83.0" + "@expo/multipart-body-parser@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@expo/multipart-body-parser/-/multipart-body-parser-1.0.0.tgz#7227bab9cfe9d4baea925b748a3212e0239ba55d" @@ -9032,6 +9050,11 @@ hermes-estree@0.28.1: resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.28.1.tgz#631e6db146b06e62fc1c630939acf4a3c77d1b24" integrity sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ== +hermes-estree@0.29.1: + version "0.29.1" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.29.1.tgz#043c7db076e0e8ef8c5f6ed23828d1ba463ebcc5" + integrity sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ== + hermes-parser@0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.25.1.tgz#5be0e487b2090886c62bd8a11724cd766d5f54d1" @@ -9046,6 +9069,13 @@ hermes-parser@0.28.1: dependencies: hermes-estree "0.28.1" +hermes-parser@0.29.1: + version "0.29.1" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.29.1.tgz#436b24bcd7bb1e71f92a04c396ccc0716c288d56" + integrity sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA== + dependencies: + hermes-estree "0.29.1" + hogan.js@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd" @@ -11247,6 +11277,16 @@ metro-babel-transformer@0.82.3: hermes-parser "0.28.1" nullthrows "^1.1.1" +metro-babel-transformer@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.83.0.tgz#933839d581e61a2f107c708e0fbf4379a83fa1ca" + integrity sha512-ncYhd1WWElJj6W+uMgoi57mUgdWm8UZBLUg9/TYh6iFipJ6A78IuztOFbohAk+Zh5S376bF86TSDaeRouAzJkg== + dependencies: + "@babel/core" "^7.25.2" + flow-enums-runtime "^0.0.6" + hermes-parser "0.29.1" + nullthrows "^1.1.1" + metro-cache-key@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.82.3.tgz#71b5d6b682515026ac09dfbae223ebe8d4fd3a7b" @@ -11254,6 +11294,13 @@ metro-cache-key@0.82.3: dependencies: flow-enums-runtime "^0.0.6" +metro-cache-key@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.83.0.tgz#73d6c4810454092ad833706ce39e3111171892c5" + integrity sha512-T0WmTe0NRt/7/kaWuDoUbeF5xlfqzLyVg5MO6X2XnXT8le42S2UxRWJgZOtojOXGvthdQhzdxZM2GCd+BQLfAQ== + dependencies: + flow-enums-runtime "^0.0.6" + metro-cache@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.82.3.tgz#4ba5010cb0e9b033b907ba829cf596c0c70f579c" @@ -11264,6 +11311,16 @@ metro-cache@0.82.3: https-proxy-agent "^7.0.5" metro-core "0.82.3" +metro-cache@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.83.0.tgz#595d9be2cc0e4bc674088a79965fb61ab6e54b36" + integrity sha512-t5ExK5od6PcI7Zc441oRNdnYoxWb9EuqBsgoVQUG2/DRsEAHCkK6EqwLYForgMABYwJOpBTGMw74f7EQMKakuw== + dependencies: + exponential-backoff "^3.1.1" + flow-enums-runtime "^0.0.6" + https-proxy-agent "^7.0.5" + metro-core "0.83.0" + metro-config@0.82.3, metro-config@^0.82.2: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.82.3.tgz#29d74425ebe255b4da46f2886d82191f88af1c49" @@ -11278,6 +11335,20 @@ metro-config@0.82.3, metro-config@^0.82.2: metro-core "0.82.3" metro-runtime "0.82.3" +metro-config@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.83.0.tgz#43bb29db0247c6b990993672b6acba52b67c36d5" + integrity sha512-fkuXgw8KXMOOGfPVwE1xULTeW2kfpyp8dtfD96PcBZHPxv8Pu0EAihTXkCPaKk1PKqIHenzEdW9s2MRUWvyRPA== + dependencies: + connect "^3.6.5" + cosmiconfig "^5.0.5" + flow-enums-runtime "^0.0.6" + jest-validate "^29.7.0" + metro "0.83.0" + metro-cache "0.83.0" + metro-core "0.83.0" + metro-runtime "0.83.0" + metro-core@0.82.3, metro-core@^0.82.2: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.82.3.tgz#749b0916c60f164f05c99e7382917665fe01b287" @@ -11287,6 +11358,15 @@ metro-core@0.82.3, metro-core@^0.82.2: lodash.throttle "^4.1.1" metro-resolver "0.82.3" +metro-core@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.0.tgz#d9fb3dffea49b07db75d735e23cd2528a0a66db5" + integrity sha512-LeWfVWejZVx/cEkOYrgQ11A+2cTPdq30Xm4SM31SfA64teKCnaUPa4k6CxU65AUou5EF4nCFo7B2XE5Q2jwBvg== + dependencies: + flow-enums-runtime "^0.0.6" + lodash.throttle "^4.1.1" + metro-resolver "0.83.0" + metro-file-map@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.82.3.tgz#868677ea55df2cf6491d9de34416e1498bd8f80a" @@ -11302,6 +11382,21 @@ metro-file-map@0.82.3: nullthrows "^1.1.1" walker "^1.0.7" +metro-file-map@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.83.0.tgz#6b1bc47848caccc403896eb8c81a4699c39c934c" + integrity sha512-vWbimPJ/sPwSFfYJcwSbgsM+x3E6mELFnm8WqwrvTvRm55NR05noAzx1HG/X0PJUylptHlQAbguPEA7F4jd/ug== + dependencies: + debug "^4.4.0" + fb-watchman "^2.0.0" + flow-enums-runtime "^0.0.6" + graceful-fs "^4.2.4" + invariant "^2.2.4" + jest-worker "^29.7.0" + micromatch "^4.0.4" + nullthrows "^1.1.1" + walker "^1.0.7" + metro-minify-terser@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.82.3.tgz#7b90f892ef0abccc58c69ae480d3032c6f0bbe86" @@ -11310,6 +11405,14 @@ metro-minify-terser@0.82.3: flow-enums-runtime "^0.0.6" terser "^5.15.0" +metro-minify-terser@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.83.0.tgz#c84c0eae701ecd7e4cf3c595e1f483e8a5e813ad" + integrity sha512-jsVzWnkl43Kb18iQvEn0Keq0n5WQwAiAHn9vCFE6roM6E4fVLDKlzDNoWyFzs9GyodlVYkbjAuz9PCpEzBfq5Q== + dependencies: + flow-enums-runtime "^0.0.6" + terser "^5.15.0" + metro-resolver@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.82.3.tgz#6ba7dfe9b8c57b1332a3747bb6d013006d8968f6" @@ -11317,6 +11420,13 @@ metro-resolver@0.82.3: dependencies: flow-enums-runtime "^0.0.6" +metro-resolver@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.83.0.tgz#a4dc88b192c886c02343703127fef80e3a03ca83" + integrity sha512-TGwPrU4lpKwmvpfnN9WA4RMECpSsZ+GAtiKQRjNh6ek0f7XUR8RuGPTWc4VidTo973C0syfbYVoD/iv1hFgAiw== + dependencies: + flow-enums-runtime "^0.0.6" + metro-runtime@0.82.3, metro-runtime@^0.82.2: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.82.3.tgz#fe793cf9e976256bd450f3da7845fd704f5254bf" @@ -11325,6 +11435,14 @@ metro-runtime@0.82.3, metro-runtime@^0.82.2: "@babel/runtime" "^7.25.0" flow-enums-runtime "^0.0.6" +metro-runtime@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.83.0.tgz#495d28160784c303c98c1d32ef936b2e5524c445" + integrity sha512-35q73Hz4X8JcNa2jgHdRy7zLggyEM2tPhkw+xjfuoRXO8TtFLGl7gKug/lF3GVYWEI6I9wEf5BGsnAoE5MZ4tQ== + dependencies: + "@babel/runtime" "^7.25.0" + flow-enums-runtime "^0.0.6" + metro-source-map@0.82.3, metro-source-map@^0.82.2: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.82.3.tgz#e5d243473b057f70e1090ce9cc769cd72deec40c" @@ -11341,6 +11459,22 @@ metro-source-map@0.82.3, metro-source-map@^0.82.2: source-map "^0.5.6" vlq "^1.0.0" +metro-source-map@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.0.tgz#a9c807a6c7cf43448e6f55e280dab8aafadf0586" + integrity sha512-XsQl5MhXo249q0ImDCFatBaWzU4K6ksso9n2MKoreuMPrgmVwzOAkVvJRUxuPvjW0DzBZKwqpk3ubC5MYRalfQ== + dependencies: + "@babel/traverse" "^7.25.3" + "@babel/traverse--for-generate-function-map" "npm:@babel/traverse@^7.25.3" + "@babel/types" "^7.25.2" + flow-enums-runtime "^0.0.6" + invariant "^2.2.4" + metro-symbolicate "0.83.0" + nullthrows "^1.1.1" + ob1 "0.83.0" + source-map "^0.5.6" + vlq "^1.0.0" + metro-symbolicate@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.82.3.tgz#50c5a645727fad9f0eaef1856298ddf267d35a0b" @@ -11353,6 +11487,18 @@ metro-symbolicate@0.82.3: source-map "^0.5.6" vlq "^1.0.0" +metro-symbolicate@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.0.tgz#05938d2ecbf6c8318185d7b631f9938dcaa115d5" + integrity sha512-pPu73T3y4TWpmGgUIJBF8b4bPjxV9LHcqEqAc6Gd7xqN1Wquu6onhdmi72XLHxhk+mZBF2mtVIr/QKI3tOyRLg== + dependencies: + flow-enums-runtime "^0.0.6" + invariant "^2.2.4" + metro-source-map "0.83.0" + nullthrows "^1.1.1" + source-map "^0.5.6" + vlq "^1.0.0" + metro-transform-plugins@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.82.3.tgz#41379fabc036c95229e948fbf68abc7f757adfa2" @@ -11365,6 +11511,18 @@ metro-transform-plugins@0.82.3: flow-enums-runtime "^0.0.6" nullthrows "^1.1.1" +metro-transform-plugins@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.83.0.tgz#0204405be0f5ffbcd73443ac15408b1285052894" + integrity sha512-HLUB+CduKt9KOUwW6zS3YezcIAUal3mmxEi6PW6/SqpqQIqR7Ij83UswCy/LRhY2Lx6IwucR8Zg9Oo+d0cCvzA== + dependencies: + "@babel/core" "^7.25.2" + "@babel/generator" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.3" + flow-enums-runtime "^0.0.6" + nullthrows "^1.1.1" + metro-transform-worker@0.82.3: version "0.82.3" resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.82.3.tgz#fadb4ff2694079dadd19e449dda4b8ff47545c78" @@ -11384,6 +11542,25 @@ metro-transform-worker@0.82.3: metro-transform-plugins "0.82.3" nullthrows "^1.1.1" +metro-transform-worker@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.83.0.tgz#40822fdaf7b37ed18478948e1714acbd4c2c8a92" + integrity sha512-z9ZGlVMcw562mFqcJrU12yAgjntdRCsQV98rOyIOLF00/ui9un+xbQjqarjYmXpO3fM8SMGD1EjhuSGFN6MmWA== + dependencies: + "@babel/core" "^7.25.2" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/types" "^7.25.2" + flow-enums-runtime "^0.0.6" + metro "0.83.0" + metro-babel-transformer "0.83.0" + metro-cache "0.83.0" + metro-cache-key "0.83.0" + metro-minify-terser "0.83.0" + metro-source-map "0.83.0" + metro-transform-plugins "0.83.0" + nullthrows "^1.1.1" + metro@0.82.3, metro@^0.82.2: version "0.82.3" resolved "https://registry.yarnpkg.com/metro/-/metro-0.82.3.tgz#d25137f05faceb32783b41bbe3698d4903e74792" @@ -11430,6 +11607,52 @@ metro@0.82.3, metro@^0.82.2: ws "^7.5.10" yargs "^17.6.2" +metro@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.83.0.tgz#0837569b1c34e543fc3d4af262863c49725d9398" + integrity sha512-qQoLKhFzZH1AjO81BDftQBUUI5FNzpKC6Bv9QGcZf1YiK034yl6aLQWg6HnNEkKkGNiMwgGlEJAzn40HjQtZmw== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/core" "^7.25.2" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.3" + "@babel/types" "^7.25.2" + accepts "^1.3.7" + chalk "^4.0.0" + ci-info "^2.0.0" + connect "^3.6.5" + debug "^4.4.0" + error-stack-parser "^2.0.6" + flow-enums-runtime "^0.0.6" + graceful-fs "^4.2.4" + hermes-parser "0.29.1" + image-size "^1.0.2" + invariant "^2.2.4" + jest-worker "^29.7.0" + jsc-safe-url "^0.2.2" + lodash.throttle "^4.1.1" + metro-babel-transformer "0.83.0" + metro-cache "0.83.0" + metro-cache-key "0.83.0" + metro-config "0.83.0" + metro-core "0.83.0" + metro-file-map "0.83.0" + metro-resolver "0.83.0" + metro-runtime "0.83.0" + metro-source-map "0.83.0" + metro-symbolicate "0.83.0" + metro-transform-plugins "0.83.0" + metro-transform-worker "0.83.0" + mime-types "^2.1.27" + nullthrows "^1.1.1" + serialize-error "^2.1.0" + source-map "^0.5.6" + throat "^5.0.0" + ws "^7.5.10" + yargs "^17.6.2" + micromatch@^2.1.5: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -12052,6 +12275,13 @@ ob1@0.82.3: dependencies: flow-enums-runtime "^0.0.6" +ob1@0.83.0: + version "0.83.0" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.83.0.tgz#4c3dda1fa32ae3ccfa2cf34a73624648b458c307" + integrity sha512-uLomnfaQcMEvUnvnf7frI8YO6qe8F4pDPvatBxqLuams9BYVA9YvZqM7xJjx7cw+nYgXjreOxsIJjNsM4a6A1A== + dependencies: + flow-enums-runtime "^0.0.6" + object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"