@expo/cli 1.0.0-canary-20250306-d9d3e02 → 1.0.0-canary-20250331-817737a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bin/cli +93 -91
- package/build/bin/cli.map +1 -1
- package/build/metro-require/require.js +53 -52
- package/build/src/api/endpoint.js +6 -2
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoGoIntermediateCertificate.js +5 -3
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
- package/build/src/api/getExpoSchema.js +16 -12
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/getNativeModuleVersions.js +6 -4
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/getProjectDevelopmentCertificate.js +5 -3
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
- package/build/src/api/getVersions.js +7 -5
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/graphql/client.js +32 -26
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +6 -4
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +5 -3
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +3 -1
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemResponseCache.js +36 -32
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/ResponseCache.js +20 -12
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +13 -11
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +58 -36
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/client.types.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +5 -3
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +5 -3
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js +11 -7
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +5 -3
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithUserAgent.js +8 -6
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
- package/build/src/api/settings.js +7 -5
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +23 -17
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +53 -31
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +27 -21
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +30 -26
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +35 -29
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +44 -30
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +29 -23
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +25 -21
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +8 -6
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +20 -16
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +14 -12
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/resolveOptions.js +4 -2
- package/build/src/customize/resolveOptions.js.map +1 -1
- package/build/src/customize/templates.js +58 -54
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +11 -7
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +11 -9
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEager.js +8 -6
- package/build/src/export/embed/exportEager.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +71 -61
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/exportServer.js +57 -55
- package/build/src/export/embed/exportServer.js.map +1 -1
- package/build/src/export/embed/index.js +44 -40
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +44 -36
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +39 -27
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +76 -68
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +34 -26
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +13 -9
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportDomComponents.js +80 -72
- package/build/src/export/exportDomComponents.js.map +1 -1
- package/build/src/export/exportHermes.js +75 -53
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +73 -62
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +33 -27
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +7 -5
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +11 -9
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +10 -6
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +32 -28
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +36 -30
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +70 -33
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +10 -6
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +28 -24
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +50 -46
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +13 -11
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +19 -15
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/web/resolveOptions.js +5 -3
- package/build/src/export/web/resolveOptions.js.map +1 -1
- package/build/src/export/writeContents.js +4 -2
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/graphql/generated.js +705 -479
- package/build/src/graphql/generated.js.map +1 -1
- package/build/src/install/applyPlugins.js +11 -7
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +26 -22
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +16 -12
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +18 -16
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +32 -26
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +22 -18
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js +21 -19
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +18 -14
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/install/utils/checkPackagesCompatibility.js +14 -12
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
- package/build/src/lint/ESlintPrerequisite.js +50 -44
- package/build/src/lint/ESlintPrerequisite.js.map +1 -1
- package/build/src/lint/index.js +12 -8
- package/build/src/lint/index.js.map +1 -1
- package/build/src/lint/lintAsync.js +10 -8
- package/build/src/lint/lintAsync.js.map +1 -1
- package/build/src/log.js +36 -16
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +24 -20
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js +11 -7
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +38 -26
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +18 -14
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +17 -13
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +6 -4
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +36 -32
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +29 -25
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +43 -37
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +70 -53
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +36 -32
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +19 -13
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +53 -39
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +12 -8
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js +11 -7
- package/build/src/register/index.js.map +1 -1
- package/build/src/register/registerAsync.js +5 -3
- package/build/src/register/registerAsync.js.map +1 -1
- package/build/src/run/android/index.js +36 -32
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveDevice.js +10 -8
- package/build/src/run/android/resolveDevice.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +18 -16
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +17 -15
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +12 -10
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +4 -2
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +23 -21
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +7 -5
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +13 -7
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +27 -23
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +80 -60
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +69 -63
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +29 -26
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +28 -25
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +29 -26
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +22 -21
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +32 -29
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +28 -24
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +7 -4
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +28 -27
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +23 -17
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +146 -132
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +29 -21
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +29 -21
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +34 -22
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +27 -17
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +53 -39
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +13 -9
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +27 -19
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +9 -5
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +14 -12
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +27 -21
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +40 -36
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +23 -17
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/appleDestinations.js +38 -36
- package/build/src/run/ios/options/appleDestinations.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +20 -16
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +30 -24
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +31 -23
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +7 -5
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +7 -5
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +48 -44
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/ios/validateExternalBinary.js +24 -22
- package/build/src/run/ios/validateExternalBinary.js.map +1 -1
- package/build/src/run/resolveBundlerProps.js +6 -4
- package/build/src/run/resolveBundlerProps.js.map +1 -1
- package/build/src/run/startBundler.js +16 -12
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/serve/index.js +20 -16
- package/build/src/serve/index.js.map +1 -1
- package/build/src/serve/serveAsync.js +36 -32
- package/build/src/serve/serveAsync.js.map +1 -1
- package/build/src/start/detectDevClient.js +13 -9
- package/build/src/start/detectDevClient.js.map +1 -1
- package/build/src/start/doctor/Prerequisite.js +12 -7
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -11
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +23 -19
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +23 -19
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +51 -45
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +18 -16
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +23 -19
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +31 -25
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +25 -17
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +40 -32
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +32 -26
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +41 -31
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +34 -29
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -8
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +32 -28
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +23 -17
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +33 -27
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +46 -42
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +18 -14
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +94 -80
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +44 -40
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +65 -61
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +6 -4
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +10 -6
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +25 -20
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +17 -15
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +39 -35
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -16
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +24 -20
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +11 -9
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +26 -22
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +121 -83
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +20 -12
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +36 -26
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js +7 -5
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +36 -28
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +19 -15
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +21 -19
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +37 -31
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +9 -7
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/devicectl.js +88 -74
- package/build/src/start/platforms/ios/devicectl.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +22 -18
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +29 -19
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +14 -10
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +102 -74
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +57 -52
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +22 -18
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +19 -9
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +15 -11
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/project/settings.js +4 -2
- package/build/src/start/project/settings.js.map +1 -1
- package/build/src/start/resolveOptions.js +48 -40
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +55 -51
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/AsyncWsTunnel.js +37 -33
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +81 -79
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +42 -38
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +18 -14
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +18 -14
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +16 -10
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +36 -33
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +30 -22
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +9 -5
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +269 -271
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +63 -56
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +39 -33
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
- package/build/src/start/server/metro/createExpoFallbackResolver.js +13 -11
- package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +47 -40
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +31 -31
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +96 -92
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +31 -29
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
- package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
- package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -11
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
- package/build/src/start/server/metro/debugging/types.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createEventSocket.js +18 -16
- package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +4 -2
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js +8 -4
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
- package/build/src/start/server/metro/externals.js +33 -25
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +16 -12
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +11 -9
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +24 -20
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +87 -84
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +88 -78
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +8 -4
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroPrivateServer.js +9 -7
- package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +10 -8
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +48 -32
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +24 -22
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +24 -22
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/symbolicate.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +35 -29
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +161 -147
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +49 -39
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +61 -57
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js +19 -14
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
- package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +122 -97
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +7 -3
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +26 -18
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +23 -15
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
- package/build/src/start/server/middleware/server.types.js.map +1 -1
- package/build/src/start/server/openPlatforms.js +10 -8
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +13 -11
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +58 -50
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +11 -7
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +72 -50
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +36 -28
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +28 -24
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +15 -11
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +18 -12
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +18 -12
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +31 -27
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +20 -17
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/ansi.js +7 -5
- package/build/src/utils/ansi.js.map +1 -1
- package/build/src/utils/args.js +24 -14
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +18 -6
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/cocoapods.js +54 -46
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +79 -69
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +16 -12
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/createTempPath.js +12 -8
- package/build/src/utils/createTempPath.js.map +1 -1
- package/build/src/utils/delay.js +12 -6
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +40 -22
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +10 -8
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +27 -23
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +41 -35
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +63 -59
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +37 -30
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +35 -31
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/expoUpdatesCli.js +32 -22
- package/build/src/utils/expoUpdatesCli.js.map +1 -1
- package/build/src/utils/fetch.js +8 -4
- package/build/src/utils/fetch.js.map +1 -1
- package/build/src/utils/filePath.js +10 -6
- package/build/src/utils/filePath.js.map +1 -1
- package/build/src/utils/findUp.js +13 -9
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +6 -2
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +41 -35
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +29 -21
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +26 -20
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +8 -4
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/interactive.js +3 -1
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/ip.js +21 -19
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +11 -9
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/jsonSchemaDeref.js +20 -18
- package/build/src/utils/jsonSchemaDeref.js.map +1 -1
- package/build/src/utils/link.js +17 -13
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +46 -28
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +16 -10
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +10 -6
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/multipartMixed.js +13 -11
- package/build/src/utils/multipartMixed.js.map +1 -1
- package/build/src/utils/nodeEnv.js +12 -6
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +10 -8
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +49 -35
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +11 -5
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +10 -8
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +13 -7
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +21 -15
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +43 -33
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +11 -7
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +11 -5
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +47 -29
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/resolveArgs.js +36 -24
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +40 -32
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/stream.js +5 -3
- package/build/src/utils/stream.js.map +1 -1
- package/build/src/utils/strings.js +6 -4
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +18 -14
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/Telemetry.js +29 -27
- package/build/src/utils/telemetry/Telemetry.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
- package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
- package/build/src/utils/telemetry/events.js +4 -2
- package/build/src/utils/telemetry/events.js.map +1 -1
- package/build/src/utils/telemetry/index.js +25 -29
- package/build/src/utils/telemetry/index.js.map +1 -1
- package/build/src/utils/telemetry/types.js.map +1 -1
- package/build/src/utils/telemetry/utils/constants.js +8 -4
- package/build/src/utils/telemetry/utils/constants.js.map +1 -1
- package/build/src/utils/telemetry/utils/context.js +18 -14
- package/build/src/utils/telemetry/utils/context.js.map +1 -1
- package/build/src/utils/template.js +6 -4
- package/build/src/utils/template.js.map +1 -1
- package/build/src/utils/terminal.js +4 -2
- package/build/src/utils/terminal.js.map +1 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +23 -13
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +108 -86
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +22 -16
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js +11 -7
- package/build/src/whoami/index.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +11 -7
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +16 -17
|
@@ -9,9 +9,15 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
instantiateMetroAsync: function() {
|
|
13
|
+
return instantiateMetroAsync;
|
|
14
|
+
},
|
|
15
|
+
isWatchEnabled: function() {
|
|
16
|
+
return isWatchEnabled;
|
|
17
|
+
},
|
|
18
|
+
loadMetroConfigAsync: function() {
|
|
19
|
+
return loadMetroConfigAsync;
|
|
20
|
+
}
|
|
15
21
|
});
|
|
16
22
|
function _config() {
|
|
17
23
|
const data = require("@expo/config");
|
|
@@ -27,88 +33,88 @@ function _paths() {
|
|
|
27
33
|
};
|
|
28
34
|
return data;
|
|
29
35
|
}
|
|
30
|
-
function
|
|
36
|
+
function _metroconfig() {
|
|
31
37
|
const data = require("@expo/metro-config");
|
|
32
|
-
|
|
38
|
+
_metroconfig = function() {
|
|
33
39
|
return data;
|
|
34
40
|
};
|
|
35
41
|
return data;
|
|
36
42
|
}
|
|
37
43
|
function _chalk() {
|
|
38
|
-
const data = /*#__PURE__*/
|
|
44
|
+
const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
|
39
45
|
_chalk = function() {
|
|
40
46
|
return data;
|
|
41
47
|
};
|
|
42
48
|
return data;
|
|
43
49
|
}
|
|
44
|
-
function
|
|
45
|
-
const data = /*#__PURE__*/
|
|
46
|
-
|
|
50
|
+
function _RevisionNotFoundError() {
|
|
51
|
+
const data = /*#__PURE__*/ _interop_require_default(require("metro/src/IncrementalBundler/RevisionNotFoundError"));
|
|
52
|
+
_RevisionNotFoundError = function() {
|
|
47
53
|
return data;
|
|
48
54
|
};
|
|
49
55
|
return data;
|
|
50
56
|
}
|
|
51
57
|
function _formatBundlingError() {
|
|
52
|
-
const data = /*#__PURE__*/
|
|
58
|
+
const data = /*#__PURE__*/ _interop_require_default(require("metro/src/lib/formatBundlingError"));
|
|
53
59
|
_formatBundlingError = function() {
|
|
54
60
|
return data;
|
|
55
61
|
};
|
|
56
62
|
return data;
|
|
57
63
|
}
|
|
58
|
-
function
|
|
64
|
+
function _metroconfig1() {
|
|
59
65
|
const data = require("metro-config");
|
|
60
|
-
|
|
66
|
+
_metroconfig1 = function() {
|
|
61
67
|
return data;
|
|
62
68
|
};
|
|
63
69
|
return data;
|
|
64
70
|
}
|
|
65
|
-
function
|
|
71
|
+
function _metrocore() {
|
|
66
72
|
const data = require("metro-core");
|
|
67
|
-
|
|
73
|
+
_metrocore = function() {
|
|
68
74
|
return data;
|
|
69
75
|
};
|
|
70
76
|
return data;
|
|
71
77
|
}
|
|
72
|
-
function
|
|
73
|
-
const data = /*#__PURE__*/
|
|
74
|
-
|
|
78
|
+
function _nodeutil() {
|
|
79
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:util"));
|
|
80
|
+
_nodeutil = function() {
|
|
75
81
|
return data;
|
|
76
82
|
};
|
|
77
83
|
return data;
|
|
78
84
|
}
|
|
79
85
|
function _path() {
|
|
80
|
-
const data = /*#__PURE__*/
|
|
86
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
81
87
|
_path = function() {
|
|
82
88
|
return data;
|
|
83
89
|
};
|
|
84
90
|
return data;
|
|
85
91
|
}
|
|
86
|
-
const
|
|
87
|
-
const
|
|
92
|
+
const _DevToolsPluginWebsocketEndpoint = require("./DevToolsPluginWebsocketEndpoint");
|
|
93
|
+
const _MetroTerminalReporter = require("./MetroTerminalReporter");
|
|
88
94
|
const _attachAtlas = require("./debugging/attachAtlas");
|
|
89
95
|
const _createDebugMiddleware = require("./debugging/createDebugMiddleware");
|
|
90
96
|
const _createMetroMiddleware = require("./dev-server/createMetroMiddleware");
|
|
91
|
-
const
|
|
97
|
+
const _runServerfork = require("./runServer-fork");
|
|
92
98
|
const _withMetroMultiPlatform = require("./withMetroMultiPlatform");
|
|
93
99
|
const _log = require("../../../log");
|
|
94
100
|
const _env = require("../../../utils/env");
|
|
95
101
|
const _errors = require("../../../utils/errors");
|
|
96
|
-
const
|
|
102
|
+
const _CorsMiddleware = require("../middleware/CorsMiddleware");
|
|
97
103
|
const _createJsInspectorMiddleware = require("../middleware/inspector/createJsInspectorMiddleware");
|
|
98
104
|
const _mutations = require("../middleware/mutations");
|
|
99
105
|
const _platformBundlers = require("../platformBundlers");
|
|
100
|
-
function
|
|
106
|
+
function _interop_require_default(obj) {
|
|
101
107
|
return obj && obj.__esModule ? obj : {
|
|
102
108
|
default: obj
|
|
103
109
|
};
|
|
104
110
|
}
|
|
105
111
|
// Wrap terminal and polyfill console.log so we can log during bundling without breaking the indicator.
|
|
106
|
-
class LogRespectingTerminal extends
|
|
112
|
+
class LogRespectingTerminal extends _metrocore().Terminal {
|
|
107
113
|
constructor(stream){
|
|
108
114
|
super(stream);
|
|
109
115
|
const sendLog = (...args)=>{
|
|
110
116
|
this._logLines.push(// format args like console.log
|
|
111
|
-
|
|
117
|
+
_nodeutil().default.format(...args));
|
|
112
118
|
this._scheduleUpdate();
|
|
113
119
|
// Flush the logs to the terminal immediately so logs at the end of the process are not lost.
|
|
114
120
|
this.flush();
|
|
@@ -119,28 +125,28 @@ class LogRespectingTerminal extends _metroCore().Terminal {
|
|
|
119
125
|
}
|
|
120
126
|
// Share one instance of Terminal for all instances of Metro.
|
|
121
127
|
const terminal = new LogRespectingTerminal(process.stdout);
|
|
122
|
-
async function loadMetroConfigAsync(projectRoot, options, { exp
|
|
123
|
-
var
|
|
128
|
+
async function loadMetroConfigAsync(projectRoot, options, { exp, isExporting, getMetroBundler }) {
|
|
129
|
+
var _exp_experiments, _exp_experiments1, _config_resolver, _exp_experiments2, _exp_experiments3, _exp_experiments4, _exp_experiments5, _exp_experiments6;
|
|
124
130
|
let reportEvent;
|
|
125
|
-
const serverActionsEnabled = ((
|
|
131
|
+
const serverActionsEnabled = ((_exp_experiments = exp.experiments) == null ? void 0 : _exp_experiments.reactServerFunctions) ?? _env.env.EXPO_UNSTABLE_SERVER_FUNCTIONS;
|
|
126
132
|
if (serverActionsEnabled) {
|
|
127
|
-
process.env.EXPO_UNSTABLE_SERVER_FUNCTIONS =
|
|
133
|
+
process.env.EXPO_UNSTABLE_SERVER_FUNCTIONS = '1';
|
|
128
134
|
}
|
|
129
135
|
// NOTE: Enable all the experimental Metro flags when RSC is enabled.
|
|
130
|
-
if (((
|
|
131
|
-
process.env.EXPO_USE_METRO_REQUIRE =
|
|
132
|
-
process.env.EXPO_USE_FAST_RESOLVER =
|
|
136
|
+
if (((_exp_experiments1 = exp.experiments) == null ? void 0 : _exp_experiments1.reactServerComponentRoutes) || serverActionsEnabled) {
|
|
137
|
+
process.env.EXPO_USE_METRO_REQUIRE = '1';
|
|
138
|
+
process.env.EXPO_USE_FAST_RESOLVER = '1';
|
|
133
139
|
}
|
|
134
140
|
const serverRoot = (0, _paths().getMetroServerRoot)(projectRoot);
|
|
135
|
-
const terminalReporter = new
|
|
136
|
-
const hasConfig = await (0,
|
|
141
|
+
const terminalReporter = new _MetroTerminalReporter.MetroTerminalReporter(serverRoot, terminal);
|
|
142
|
+
const hasConfig = await (0, _metroconfig1().resolveConfig)(options.config, projectRoot);
|
|
137
143
|
let config = {
|
|
138
|
-
...await (0,
|
|
144
|
+
...await (0, _metroconfig1().loadConfig)({
|
|
139
145
|
cwd: projectRoot,
|
|
140
146
|
projectRoot,
|
|
141
147
|
...options
|
|
142
148
|
}, // If the project does not have a metro.config.js, then we use the default config.
|
|
143
|
-
hasConfig.isEmpty ? (0,
|
|
149
|
+
hasConfig.isEmpty ? (0, _metroconfig().getDefaultConfig)(projectRoot) : undefined),
|
|
144
150
|
reporter: {
|
|
145
151
|
update (event) {
|
|
146
152
|
terminalReporter.update(event);
|
|
@@ -151,22 +157,22 @@ async function loadMetroConfigAsync(projectRoot, options, { exp , isExporting ,
|
|
|
151
157
|
}
|
|
152
158
|
};
|
|
153
159
|
// @ts-expect-error: Set the global require cycle ignore patterns for SSR bundles. This won't work with custom global prefixes, but we don't use those.
|
|
154
|
-
globalThis.__requireCycleIgnorePatterns = (
|
|
160
|
+
globalThis.__requireCycleIgnorePatterns = (_config_resolver = config.resolver) == null ? void 0 : _config_resolver.requireCycleIgnorePatterns;
|
|
155
161
|
if (isExporting) {
|
|
156
|
-
var
|
|
162
|
+
var _exp_experiments7;
|
|
157
163
|
// This token will be used in the asset plugin to ensure the path is correct for writing locally.
|
|
158
164
|
// @ts-expect-error: typed as readonly.
|
|
159
|
-
config.transformer.publicPath = `/assets?export_path=${(((
|
|
165
|
+
config.transformer.publicPath = `/assets?export_path=${(((_exp_experiments7 = exp.experiments) == null ? void 0 : _exp_experiments7.baseUrl) ?? '') + '/assets'}`;
|
|
160
166
|
} else {
|
|
161
167
|
// @ts-expect-error: typed as readonly
|
|
162
|
-
config.transformer.publicPath =
|
|
168
|
+
config.transformer.publicPath = '/assets/?unstable_path=.';
|
|
163
169
|
}
|
|
164
170
|
const platformBundlers = (0, _platformBundlers.getPlatformBundlers)(projectRoot, exp);
|
|
165
|
-
if ((
|
|
171
|
+
if ((_exp_experiments2 = exp.experiments) == null ? void 0 : _exp_experiments2.reactCompiler) {
|
|
166
172
|
_log.Log.warn(`Experimental React Compiler is enabled.`);
|
|
167
173
|
}
|
|
168
174
|
if (_env.env.EXPO_UNSTABLE_TREE_SHAKING && !_env.env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH) {
|
|
169
|
-
throw new _errors.CommandError(
|
|
175
|
+
throw new _errors.CommandError('EXPO_UNSTABLE_TREE_SHAKING requires EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH to be enabled.');
|
|
170
176
|
}
|
|
171
177
|
if (_env.env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH) {
|
|
172
178
|
_log.Log.warn(`Experimental bundle optimization is enabled.`);
|
|
@@ -175,22 +181,19 @@ async function loadMetroConfigAsync(projectRoot, options, { exp , isExporting ,
|
|
|
175
181
|
_log.Log.warn(`Experimental tree shaking is enabled.`);
|
|
176
182
|
}
|
|
177
183
|
if (serverActionsEnabled) {
|
|
178
|
-
var
|
|
179
|
-
_log.Log.warn(`
|
|
180
|
-
if (!((ref9 = exp.experiments) == null ? void 0 : ref9.reactServerComponentRoutes)) {
|
|
181
|
-
_log.Log.warn(`- React Server Component routes are NOT enabled. Routes will render in client mode.`);
|
|
182
|
-
}
|
|
184
|
+
var _exp_experiments8;
|
|
185
|
+
_log.Log.warn(`React Server Functions (beta) are enabled. Route rendering mode: ${((_exp_experiments8 = exp.experiments) == null ? void 0 : _exp_experiments8.reactServerComponentRoutes) ? 'server' : 'client'}`);
|
|
183
186
|
}
|
|
184
187
|
config = await (0, _withMetroMultiPlatform.withMetroMultiPlatformAsync)(projectRoot, {
|
|
185
188
|
config,
|
|
186
189
|
exp,
|
|
187
190
|
platformBundlers,
|
|
188
|
-
isTsconfigPathsEnabled: ((
|
|
191
|
+
isTsconfigPathsEnabled: ((_exp_experiments3 = exp.experiments) == null ? void 0 : _exp_experiments3.tsconfigPaths) ?? true,
|
|
189
192
|
isFastResolverEnabled: _env.env.EXPO_USE_FAST_RESOLVER,
|
|
190
193
|
isExporting,
|
|
191
|
-
isReactCanaryEnabled: (((
|
|
194
|
+
isReactCanaryEnabled: (((_exp_experiments4 = exp.experiments) == null ? void 0 : _exp_experiments4.reactServerComponentRoutes) || serverActionsEnabled || ((_exp_experiments5 = exp.experiments) == null ? void 0 : _exp_experiments5.reactCanary)) ?? false,
|
|
192
195
|
isNamedRequiresEnabled: _env.env.EXPO_USE_METRO_REQUIRE,
|
|
193
|
-
isReactServerComponentsEnabled: !!((
|
|
196
|
+
isReactServerComponentsEnabled: !!((_exp_experiments6 = exp.experiments) == null ? void 0 : _exp_experiments6.reactServerComponentRoutes),
|
|
194
197
|
getMetroBundler
|
|
195
198
|
});
|
|
196
199
|
return {
|
|
@@ -199,11 +202,11 @@ async function loadMetroConfigAsync(projectRoot, options, { exp , isExporting ,
|
|
|
199
202
|
reporter: terminalReporter
|
|
200
203
|
};
|
|
201
204
|
}
|
|
202
|
-
async function instantiateMetroAsync(metroBundler, options, { isExporting
|
|
205
|
+
async function instantiateMetroAsync(metroBundler, options, { isExporting, exp = (0, _config().getConfig)(metroBundler.projectRoot, {
|
|
203
206
|
skipSDKVersionRequirement: true
|
|
204
|
-
}).exp
|
|
207
|
+
}).exp }) {
|
|
205
208
|
const projectRoot = metroBundler.projectRoot;
|
|
206
|
-
const { config: metroConfig
|
|
209
|
+
const { config: metroConfig, setEventReporter } = await loadMetroConfigAsync(projectRoot, options, {
|
|
207
210
|
exp,
|
|
208
211
|
isExporting,
|
|
209
212
|
getMetroBundler () {
|
|
@@ -211,15 +214,15 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
211
214
|
}
|
|
212
215
|
});
|
|
213
216
|
// Create the core middleware stack for Metro, including websocket listeners
|
|
214
|
-
const { middleware
|
|
217
|
+
const { middleware, messagesSocket, eventsSocket, websocketEndpoints } = (0, _createMetroMiddleware.createMetroMiddleware)(metroConfig);
|
|
215
218
|
if (!isExporting) {
|
|
216
219
|
// Enable correct CORS headers for Expo Router features
|
|
217
|
-
(0, _mutations.prependMiddleware)(middleware, (0,
|
|
220
|
+
(0, _mutations.prependMiddleware)(middleware, (0, _CorsMiddleware.createCorsMiddleware)(exp));
|
|
218
221
|
// Enable debug middleware for CDP-related debugging
|
|
219
|
-
const { debugMiddleware
|
|
222
|
+
const { debugMiddleware, debugWebsocketEndpoints } = (0, _createDebugMiddleware.createDebugMiddleware)(metroBundler);
|
|
220
223
|
Object.assign(websocketEndpoints, debugWebsocketEndpoints);
|
|
221
224
|
middleware.use(debugMiddleware);
|
|
222
|
-
middleware.use(
|
|
225
|
+
middleware.use('/_expo/debugger', (0, _createJsInspectorMiddleware.createJsInspectorMiddleware)());
|
|
223
226
|
// TODO(cedric): `enhanceMiddleware` is deprecated, but is currently used to unify the middleware stacks
|
|
224
227
|
// See: https://github.com/facebook/metro/commit/22e85fde85ec454792a1b70eba4253747a2587a9
|
|
225
228
|
// See: https://github.com/facebook/metro/commit/d0d554381f119bb80ab09dbd6a1d310b54737e52
|
|
@@ -242,10 +245,10 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
242
245
|
// NOTE(cedric): reset the Atlas file once, and reuse it for static exports
|
|
243
246
|
resetAtlasFile: isExporting
|
|
244
247
|
});
|
|
245
|
-
const { server
|
|
248
|
+
const { server, hmrServer, metro } = await (0, _runServerfork.runServer)(metroBundler, metroConfig, {
|
|
246
249
|
websocketEndpoints: {
|
|
247
250
|
...websocketEndpoints,
|
|
248
|
-
...(0,
|
|
251
|
+
...(0, _DevToolsPluginWebsocketEndpoint.createDevToolsPluginWebsocketEndpoint)()
|
|
249
252
|
},
|
|
250
253
|
watch: !isExporting && isWatchEnabled()
|
|
251
254
|
}, {
|
|
@@ -267,13 +270,13 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
267
270
|
// This function ensures that modules in source maps are sorted in the same
|
|
268
271
|
// order as in a plain JS bundle.
|
|
269
272
|
metro._getSortedModules = function(graph) {
|
|
270
|
-
var
|
|
273
|
+
var _graph_transformOptions_customTransformOptions;
|
|
271
274
|
const modules = [
|
|
272
275
|
...graph.dependencies.values()
|
|
273
276
|
];
|
|
274
277
|
const ctx = {
|
|
275
278
|
platform: graph.transformOptions.platform,
|
|
276
|
-
environment: (
|
|
279
|
+
environment: (_graph_transformOptions_customTransformOptions = graph.transformOptions.customTransformOptions) == null ? void 0 : _graph_transformOptions_customTransformOptions.environment
|
|
277
280
|
};
|
|
278
281
|
// Assign IDs to modules in a consistent order
|
|
279
282
|
for (const module of modules){
|
|
@@ -287,11 +290,11 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
287
290
|
if (hmrServer) {
|
|
288
291
|
let hmrJSBundle;
|
|
289
292
|
try {
|
|
290
|
-
hmrJSBundle = require(
|
|
293
|
+
hmrJSBundle = require('@expo/metro-config/build/serializer/fork/hmrJSBundle').default;
|
|
291
294
|
} catch {
|
|
292
295
|
// Add fallback for monorepo tests up until the fork is merged.
|
|
293
|
-
_log.Log.warn(
|
|
294
|
-
hmrJSBundle = require(
|
|
296
|
+
_log.Log.warn('Failed to load HMR serializer from @expo/metro-config, using fallback version.');
|
|
297
|
+
hmrJSBundle = require('metro/src/DeltaBundler/Serializers/hmrJSBundle');
|
|
295
298
|
}
|
|
296
299
|
// 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.
|
|
297
300
|
hmrServer._prepareMessage = async function(group, options, changeEvent) {
|
|
@@ -299,17 +302,17 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
299
302
|
// with patch for `_createModuleId`.
|
|
300
303
|
const logger = !options.isInitialUpdate ? changeEvent == null ? void 0 : changeEvent.logger : null;
|
|
301
304
|
try {
|
|
302
|
-
var
|
|
305
|
+
var _revision_graph_transformOptions_customTransformOptions;
|
|
303
306
|
const revPromise = this._bundler.getRevision(group.revisionId);
|
|
304
307
|
if (!revPromise) {
|
|
305
308
|
return {
|
|
306
|
-
type:
|
|
307
|
-
body: (0, _formatBundlingError().default)(new (
|
|
309
|
+
type: 'error',
|
|
310
|
+
body: (0, _formatBundlingError().default)(new (_RevisionNotFoundError()).default(group.revisionId))
|
|
308
311
|
};
|
|
309
312
|
}
|
|
310
|
-
logger == null ? void 0 : logger.point(
|
|
311
|
-
const { revision
|
|
312
|
-
logger == null ? void 0 : logger.point(
|
|
313
|
+
logger == null ? void 0 : logger.point('updateGraph_start');
|
|
314
|
+
const { revision, delta } = await this._bundler.updateGraph(await revPromise, false);
|
|
315
|
+
logger == null ? void 0 : logger.point('updateGraph_end');
|
|
313
316
|
this._clientGroups.delete(group.revisionId);
|
|
314
317
|
group.revisionId = revision.id;
|
|
315
318
|
for (const client of group.clients){
|
|
@@ -317,11 +320,11 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
317
320
|
client.revisionIds.push(revision.id);
|
|
318
321
|
}
|
|
319
322
|
this._clientGroups.set(group.revisionId, group);
|
|
320
|
-
logger == null ? void 0 : logger.point(
|
|
323
|
+
logger == null ? void 0 : logger.point('serialize_start');
|
|
321
324
|
// NOTE(EvanBacon): This is the patch
|
|
322
325
|
const moduleIdContext = {
|
|
323
326
|
platform: revision.graph.transformOptions.platform,
|
|
324
|
-
environment: (
|
|
327
|
+
environment: (_revision_graph_transformOptions_customTransformOptions = revision.graph.transformOptions.customTransformOptions) == null ? void 0 : _revision_graph_transformOptions_customTransformOptions.environment
|
|
325
328
|
};
|
|
326
329
|
const hmrUpdate = hmrJSBundle(delta, revision.graph, {
|
|
327
330
|
clientUrl: group.clientUrl,
|
|
@@ -334,9 +337,9 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
334
337
|
projectRoot: this._config.projectRoot,
|
|
335
338
|
serverRoot: this._config.server.unstable_serverRoot ?? this._config.projectRoot
|
|
336
339
|
});
|
|
337
|
-
logger == null ? void 0 : logger.point(
|
|
340
|
+
logger == null ? void 0 : logger.point('serialize_end');
|
|
338
341
|
return {
|
|
339
|
-
type:
|
|
342
|
+
type: 'update',
|
|
340
343
|
body: {
|
|
341
344
|
revisionId: revision.id,
|
|
342
345
|
isInitialUpdate: options.isInitialUpdate,
|
|
@@ -346,11 +349,11 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
346
349
|
} catch (error) {
|
|
347
350
|
const formattedError = (0, _formatBundlingError().default)(error);
|
|
348
351
|
this._config.reporter.update({
|
|
349
|
-
type:
|
|
352
|
+
type: 'bundling_error',
|
|
350
353
|
error
|
|
351
354
|
});
|
|
352
355
|
return {
|
|
353
|
-
type:
|
|
356
|
+
type: 'error',
|
|
354
357
|
body: formattedError
|
|
355
358
|
};
|
|
356
359
|
}
|
|
@@ -366,25 +369,25 @@ async function instantiateMetroAsync(metroBundler, options, { isExporting , exp
|
|
|
366
369
|
}
|
|
367
370
|
// TODO: Fork the entire transform function so we can simply regex the file contents for keywords instead.
|
|
368
371
|
function pruneCustomTransformOptions(filePath, transformOptions) {
|
|
369
|
-
var
|
|
372
|
+
var _transformOptions_customTransformOptions, _transformOptions_customTransformOptions1, _transformOptions_customTransformOptions2, _transformOptions_customTransformOptions3;
|
|
370
373
|
// Normalize the filepath for cross platform checking.
|
|
371
|
-
filePath = filePath.split(_path().default.sep).join(
|
|
372
|
-
if (((
|
|
374
|
+
filePath = filePath.split(_path().default.sep).join('/');
|
|
375
|
+
if (((_transformOptions_customTransformOptions = transformOptions.customTransformOptions) == null ? void 0 : _transformOptions_customTransformOptions.dom) && // The only generated file that needs the dom root is `expo/dom/entry.js`
|
|
373
376
|
!filePath.match(/expo\/dom\/entry\.js$/)) {
|
|
374
377
|
// Clear the dom root option if we aren't transforming the magic entry file, this ensures
|
|
375
378
|
// that cached artifacts from other DOM component bundles can be reused.
|
|
376
|
-
transformOptions.customTransformOptions.dom =
|
|
379
|
+
transformOptions.customTransformOptions.dom = 'true';
|
|
377
380
|
}
|
|
378
|
-
if (((
|
|
381
|
+
if (((_transformOptions_customTransformOptions1 = transformOptions.customTransformOptions) == null ? void 0 : _transformOptions_customTransformOptions1.routerRoot) && // The router root is used all over expo-router (`process.env.EXPO_ROUTER_ABS_APP_ROOT`, `process.env.EXPO_ROUTER_APP_ROOT`) so we'll just ignore the entire package.
|
|
379
382
|
!(filePath.match(/\/expo-router\/_ctx/) || filePath.match(/\/expo-router\/build\//))) {
|
|
380
383
|
// Set to the default value.
|
|
381
|
-
transformOptions.customTransformOptions.routerRoot =
|
|
384
|
+
transformOptions.customTransformOptions.routerRoot = 'app';
|
|
382
385
|
}
|
|
383
|
-
if (((
|
|
386
|
+
if (((_transformOptions_customTransformOptions2 = transformOptions.customTransformOptions) == null ? void 0 : _transformOptions_customTransformOptions2.asyncRoutes) && // The async routes settings are also used in `expo-router/_ctx.ios.js` (and other platform variants) via `process.env.EXPO_ROUTER_IMPORT_MODE`
|
|
384
387
|
!(filePath.match(/\/expo-router\/_ctx/) || filePath.match(/\/expo-router\/build\//))) {
|
|
385
388
|
delete transformOptions.customTransformOptions.asyncRoutes;
|
|
386
389
|
}
|
|
387
|
-
if (((
|
|
390
|
+
if (((_transformOptions_customTransformOptions3 = transformOptions.customTransformOptions) == null ? void 0 : _transformOptions_customTransformOptions3.clientBoundaries) && // The client boundaries are only used in `@expo/metro-runtime/src/virtual.js` for production RSC exports.
|
|
388
391
|
!filePath.match(/\/@expo\/metro-runtime\/rsc\/virtual\.js$/)) {
|
|
389
392
|
delete transformOptions.customTransformOptions.clientBoundaries;
|
|
390
393
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/instantiateMetro.ts"],"sourcesContent":["import { ExpoConfig, getConfig } from '@expo/config';\nimport { getMetroServerRoot } from '@expo/config/paths';\nimport { getDefaultConfig, LoadOptions } from '@expo/metro-config';\nimport chalk from 'chalk';\nimport http from 'http';\nimport type Metro from 'metro';\nimport { ReadOnlyGraph } from 'metro';\nimport Bundler from 'metro/src/Bundler';\nimport type { TransformOptions } from 'metro/src/DeltaBundler/Worker';\nimport MetroHmrServer from 'metro/src/HmrServer';\nimport RevisionNotFoundError from 'metro/src/IncrementalBundler/RevisionNotFoundError';\nimport formatBundlingError from 'metro/src/lib/formatBundlingError';\nimport { loadConfig, resolveConfig, ConfigT } from 'metro-config';\nimport { Terminal } from 'metro-core';\nimport util from 'node:util';\nimport path from 'path';\n\nimport { createDevToolsPluginWebsocketEndpoint } from './DevToolsPluginWebsocketEndpoint';\nimport { MetroBundlerDevServer } from './MetroBundlerDevServer';\nimport { MetroTerminalReporter } from './MetroTerminalReporter';\nimport { attachAtlasAsync } from './debugging/attachAtlas';\nimport { createDebugMiddleware } from './debugging/createDebugMiddleware';\nimport { createMetroMiddleware } from './dev-server/createMetroMiddleware';\nimport { runServer } from './runServer-fork';\nimport { withMetroMultiPlatformAsync } from './withMetroMultiPlatform';\nimport { Log } from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { createCorsMiddleware } from '../middleware/CorsMiddleware';\nimport { createJsInspectorMiddleware } from '../middleware/inspector/createJsInspectorMiddleware';\nimport { prependMiddleware } from '../middleware/mutations';\nimport { getPlatformBundlers } from '../platformBundlers';\n\n// From expo/dev-server but with ability to use custom logger.\ntype MessageSocket = {\n broadcast: (method: string, params?: Record<string, any> | undefined) => void;\n};\n\n// Wrap terminal and polyfill console.log so we can log during bundling without breaking the indicator.\nclass LogRespectingTerminal extends Terminal {\n constructor(stream: import('node:net').Socket | import('node:stream').Writable) {\n super(stream);\n\n const sendLog = (...args: any[]) => {\n this._logLines.push(\n // format args like console.log\n util.format(...args)\n );\n this._scheduleUpdate();\n\n // Flush the logs to the terminal immediately so logs at the end of the process are not lost.\n this.flush();\n };\n\n console.log = sendLog;\n console.info = sendLog;\n }\n}\n\n// Share one instance of Terminal for all instances of Metro.\nconst terminal = new LogRespectingTerminal(process.stdout);\n\nexport async function loadMetroConfigAsync(\n projectRoot: string,\n options: LoadOptions,\n {\n exp,\n isExporting,\n getMetroBundler,\n }: { exp: ExpoConfig; isExporting: boolean; getMetroBundler: () => Bundler }\n) {\n let reportEvent: ((event: any) => void) | undefined;\n\n const serverActionsEnabled =\n exp.experiments?.reactServerFunctions ?? env.EXPO_UNSTABLE_SERVER_FUNCTIONS;\n\n if (serverActionsEnabled) {\n process.env.EXPO_UNSTABLE_SERVER_FUNCTIONS = '1';\n }\n\n // NOTE: Enable all the experimental Metro flags when RSC is enabled.\n if (exp.experiments?.reactServerComponentRoutes || serverActionsEnabled) {\n process.env.EXPO_USE_METRO_REQUIRE = '1';\n process.env.EXPO_USE_FAST_RESOLVER = '1';\n }\n\n const serverRoot = getMetroServerRoot(projectRoot);\n const terminalReporter = new MetroTerminalReporter(serverRoot, terminal);\n\n const hasConfig = await resolveConfig(options.config, projectRoot);\n let config: ConfigT = {\n ...(await loadConfig(\n { cwd: projectRoot, projectRoot, ...options },\n // If the project does not have a metro.config.js, then we use the default config.\n hasConfig.isEmpty ? getDefaultConfig(projectRoot) : undefined\n )),\n reporter: {\n update(event: any) {\n terminalReporter.update(event);\n if (reportEvent) {\n reportEvent(event);\n }\n },\n },\n };\n\n // @ts-expect-error: Set the global require cycle ignore patterns for SSR bundles. This won't work with custom global prefixes, but we don't use those.\n globalThis.__requireCycleIgnorePatterns = config.resolver?.requireCycleIgnorePatterns;\n\n if (isExporting) {\n // This token will be used in the asset plugin to ensure the path is correct for writing locally.\n // @ts-expect-error: typed as readonly.\n config.transformer.publicPath = `/assets?export_path=${\n (exp.experiments?.baseUrl ?? '') + '/assets'\n }`;\n } else {\n // @ts-expect-error: typed as readonly\n config.transformer.publicPath = '/assets/?unstable_path=.';\n }\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n if (exp.experiments?.reactCompiler) {\n Log.warn(`Experimental React Compiler is enabled.`);\n }\n\n if (env.EXPO_UNSTABLE_TREE_SHAKING && !env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH) {\n throw new CommandError(\n 'EXPO_UNSTABLE_TREE_SHAKING requires EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH to be enabled.'\n );\n }\n\n if (env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH) {\n Log.warn(`Experimental bundle optimization is enabled.`);\n }\n if (env.EXPO_UNSTABLE_TREE_SHAKING) {\n Log.warn(`Experimental tree shaking is enabled.`);\n }\n\n if (serverActionsEnabled) {\n Log.warn(\n `Experimental React Server Functions are enabled. Production exports are not supported yet.`\n );\n if (!exp.experiments?.reactServerComponentRoutes) {\n Log.warn(\n `- React Server Component routes are NOT enabled. Routes will render in client mode.`\n );\n }\n }\n\n config = await withMetroMultiPlatformAsync(projectRoot, {\n config,\n exp,\n platformBundlers,\n isTsconfigPathsEnabled: exp.experiments?.tsconfigPaths ?? true,\n isFastResolverEnabled: env.EXPO_USE_FAST_RESOLVER,\n isExporting,\n isReactCanaryEnabled:\n (exp.experiments?.reactServerComponentRoutes ||\n serverActionsEnabled ||\n exp.experiments?.reactCanary) ??\n false,\n isNamedRequiresEnabled: env.EXPO_USE_METRO_REQUIRE,\n isReactServerComponentsEnabled: !!exp.experiments?.reactServerComponentRoutes,\n getMetroBundler,\n });\n\n return {\n config,\n setEventReporter: (logger: (event: any) => void) => (reportEvent = logger),\n reporter: terminalReporter,\n };\n}\n\n/** The most generic possible setup for Metro bundler. */\nexport async function instantiateMetroAsync(\n metroBundler: MetroBundlerDevServer,\n options: Omit<LoadOptions, 'logger'>,\n {\n isExporting,\n exp = getConfig(metroBundler.projectRoot, {\n skipSDKVersionRequirement: true,\n }).exp,\n }: { isExporting: boolean; exp?: ExpoConfig }\n): Promise<{\n metro: Metro.Server;\n hmrServer: MetroHmrServer | null;\n server: http.Server;\n middleware: any;\n messageSocket: MessageSocket;\n}> {\n const projectRoot = metroBundler.projectRoot;\n\n const { config: metroConfig, setEventReporter } = await loadMetroConfigAsync(\n projectRoot,\n options,\n {\n exp,\n isExporting,\n getMetroBundler() {\n return metro.getBundler().getBundler();\n },\n }\n );\n\n // Create the core middleware stack for Metro, including websocket listeners\n const { middleware, messagesSocket, eventsSocket, websocketEndpoints } =\n createMetroMiddleware(metroConfig);\n\n if (!isExporting) {\n // Enable correct CORS headers for Expo Router features\n prependMiddleware(middleware, createCorsMiddleware(exp));\n\n // Enable debug middleware for CDP-related debugging\n const { debugMiddleware, debugWebsocketEndpoints } = createDebugMiddleware(metroBundler);\n Object.assign(websocketEndpoints, debugWebsocketEndpoints);\n middleware.use(debugMiddleware);\n middleware.use('/_expo/debugger', createJsInspectorMiddleware());\n\n // TODO(cedric): `enhanceMiddleware` is deprecated, but is currently used to unify the middleware stacks\n // See: https://github.com/facebook/metro/commit/22e85fde85ec454792a1b70eba4253747a2587a9\n // See: https://github.com/facebook/metro/commit/d0d554381f119bb80ab09dbd6a1d310b54737e52\n const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;\n // @ts-expect-error: can't mutate readonly config\n metroConfig.server.enhanceMiddleware = (metroMiddleware: any, server: Metro.Server) => {\n if (customEnhanceMiddleware) {\n metroMiddleware = customEnhanceMiddleware(metroMiddleware, server);\n }\n return middleware.use(metroMiddleware);\n };\n }\n\n // Attach Expo Atlas if enabled\n await attachAtlasAsync({\n isExporting,\n exp,\n projectRoot,\n middleware,\n metroConfig,\n // NOTE(cedric): reset the Atlas file once, and reuse it for static exports\n resetAtlasFile: isExporting,\n });\n\n const { server, hmrServer, metro } = await runServer(\n metroBundler,\n metroConfig,\n {\n websocketEndpoints: {\n ...websocketEndpoints,\n ...createDevToolsPluginWebsocketEndpoint(),\n },\n watch: !isExporting && isWatchEnabled(),\n },\n {\n mockServer: isExporting,\n }\n );\n\n // Patch transform file to remove inconvenient customTransformOptions which are only used in single well-known files.\n const originalTransformFile = metro\n .getBundler()\n .getBundler()\n .transformFile.bind(metro.getBundler().getBundler());\n\n metro.getBundler().getBundler().transformFile = async function (\n filePath: string,\n transformOptions: TransformOptions,\n fileBuffer?: Buffer\n ) {\n return originalTransformFile(\n filePath,\n pruneCustomTransformOptions(\n filePath,\n // Clone the options so we don't mutate the original.\n {\n ...transformOptions,\n customTransformOptions: {\n __proto__: null,\n ...transformOptions.customTransformOptions,\n },\n }\n ),\n fileBuffer\n );\n };\n\n setEventReporter(eventsSocket.reportMetroEvent);\n\n // This function ensures that modules in source maps are sorted in the same\n // order as in a plain JS bundle.\n metro._getSortedModules = function (this: Metro.Server, graph: ReadOnlyGraph) {\n const modules = [...graph.dependencies.values()];\n\n const ctx = {\n platform: graph.transformOptions.platform,\n environment: graph.transformOptions.customTransformOptions?.environment,\n };\n // Assign IDs to modules in a consistent order\n for (const module of modules) {\n // @ts-expect-error\n this._createModuleId(module.path, ctx);\n }\n // Sort by IDs\n return modules.sort(\n // @ts-expect-error\n (a, b) => this._createModuleId(a.path, ctx) - this._createModuleId(b.path, ctx)\n );\n };\n\n if (hmrServer) {\n let hmrJSBundle: typeof import('@expo/metro-config/build/serializer/fork/hmrJSBundle').default;\n\n try {\n hmrJSBundle = require('@expo/metro-config/build/serializer/fork/hmrJSBundle').default;\n } catch {\n // Add fallback for monorepo tests up until the fork is merged.\n Log.warn('Failed to load HMR serializer from @expo/metro-config, using fallback version.');\n hmrJSBundle = require('metro/src/DeltaBundler/Serializers/hmrJSBundle');\n }\n\n // 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.\n hmrServer._prepareMessage = async function (this: MetroHmrServer, group, options, changeEvent) {\n // Fork of https://github.com/facebook/metro/blob/3b3e0aaf725cfa6907bf2c8b5fbc0da352d29efe/packages/metro/src/HmrServer.js#L327-L393\n // with patch for `_createModuleId`.\n const logger = !options.isInitialUpdate ? changeEvent?.logger : null;\n try {\n const revPromise = this._bundler.getRevision(group.revisionId);\n if (!revPromise) {\n return {\n type: 'error',\n body: formatBundlingError(new RevisionNotFoundError(group.revisionId)),\n };\n }\n logger?.point('updateGraph_start');\n const { revision, delta } = await this._bundler.updateGraph(await revPromise, false);\n logger?.point('updateGraph_end');\n this._clientGroups.delete(group.revisionId);\n group.revisionId = revision.id;\n for (const client of group.clients) {\n client.revisionIds = client.revisionIds.filter(\n (revisionId) => revisionId !== group.revisionId\n );\n client.revisionIds.push(revision.id);\n }\n this._clientGroups.set(group.revisionId, group);\n logger?.point('serialize_start');\n // NOTE(EvanBacon): This is the patch\n const moduleIdContext = {\n platform: revision.graph.transformOptions.platform,\n environment: revision.graph.transformOptions.customTransformOptions?.environment,\n };\n const hmrUpdate = hmrJSBundle(delta, revision.graph, {\n clientUrl: group.clientUrl,\n // NOTE(EvanBacon): This is also the patch\n createModuleId: (moduleId: string) => {\n // @ts-expect-error\n return this._createModuleId(moduleId, moduleIdContext);\n },\n includeAsyncPaths: group.graphOptions.lazy,\n projectRoot: this._config.projectRoot,\n serverRoot: this._config.server.unstable_serverRoot ?? this._config.projectRoot,\n });\n logger?.point('serialize_end');\n return {\n type: 'update',\n body: {\n revisionId: revision.id,\n isInitialUpdate: options.isInitialUpdate,\n ...hmrUpdate,\n },\n };\n } catch (error: any) {\n const formattedError = formatBundlingError(error);\n this._config.reporter.update({\n type: 'bundling_error',\n error,\n });\n return {\n type: 'error',\n body: formattedError,\n };\n }\n };\n }\n\n return {\n metro,\n hmrServer,\n server,\n middleware,\n messageSocket: messagesSocket,\n };\n}\n\n// TODO: Fork the entire transform function so we can simply regex the file contents for keywords instead.\nfunction pruneCustomTransformOptions(\n filePath: string,\n transformOptions: TransformOptions\n): TransformOptions {\n // Normalize the filepath for cross platform checking.\n filePath = filePath.split(path.sep).join('/');\n\n if (\n transformOptions.customTransformOptions?.dom &&\n // The only generated file that needs the dom root is `expo/dom/entry.js`\n !filePath.match(/expo\\/dom\\/entry\\.js$/)\n ) {\n // Clear the dom root option if we aren't transforming the magic entry file, this ensures\n // that cached artifacts from other DOM component bundles can be reused.\n transformOptions.customTransformOptions.dom = 'true';\n }\n\n if (\n transformOptions.customTransformOptions?.routerRoot &&\n // The router root is used all over expo-router (`process.env.EXPO_ROUTER_ABS_APP_ROOT`, `process.env.EXPO_ROUTER_APP_ROOT`) so we'll just ignore the entire package.\n !(filePath.match(/\\/expo-router\\/_ctx/) || filePath.match(/\\/expo-router\\/build\\//))\n ) {\n // Set to the default value.\n transformOptions.customTransformOptions.routerRoot = 'app';\n }\n if (\n transformOptions.customTransformOptions?.asyncRoutes &&\n // The async routes settings are also used in `expo-router/_ctx.ios.js` (and other platform variants) via `process.env.EXPO_ROUTER_IMPORT_MODE`\n !(filePath.match(/\\/expo-router\\/_ctx/) || filePath.match(/\\/expo-router\\/build\\//))\n ) {\n delete transformOptions.customTransformOptions.asyncRoutes;\n }\n\n if (\n transformOptions.customTransformOptions?.clientBoundaries &&\n // The client boundaries are only used in `@expo/metro-runtime/src/virtual.js` for production RSC exports.\n !filePath.match(/\\/@expo\\/metro-runtime\\/rsc\\/virtual\\.js$/)\n ) {\n delete transformOptions.customTransformOptions.clientBoundaries;\n }\n\n return transformOptions;\n}\n\n/**\n * Simplify and communicate if Metro is running without watching file updates,.\n * Exposed for testing.\n */\nexport function isWatchEnabled() {\n if (env.CI) {\n Log.log(\n chalk`Metro is running in CI mode, reloads are disabled. Remove {bold CI=true} to enable watch mode.`\n );\n }\n\n return !env.CI;\n}\n"],"names":["loadMetroConfigAsync","instantiateMetroAsync","isWatchEnabled","LogRespectingTerminal","Terminal","constructor","stream","sendLog","args","_logLines","push","util","format","_scheduleUpdate","flush","console","log","info","terminal","process","stdout","projectRoot","options","exp","isExporting","getMetroBundler","config","reportEvent","serverActionsEnabled","experiments","reactServerFunctions","env","EXPO_UNSTABLE_SERVER_FUNCTIONS","reactServerComponentRoutes","EXPO_USE_METRO_REQUIRE","EXPO_USE_FAST_RESOLVER","serverRoot","getMetroServerRoot","terminalReporter","MetroTerminalReporter","hasConfig","resolveConfig","loadConfig","cwd","isEmpty","getDefaultConfig","undefined","reporter","update","event","globalThis","__requireCycleIgnorePatterns","resolver","requireCycleIgnorePatterns","transformer","publicPath","baseUrl","platformBundlers","getPlatformBundlers","reactCompiler","Log","warn","EXPO_UNSTABLE_TREE_SHAKING","EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH","CommandError","withMetroMultiPlatformAsync","isTsconfigPathsEnabled","tsconfigPaths","isFastResolverEnabled","isReactCanaryEnabled","reactCanary","isNamedRequiresEnabled","isReactServerComponentsEnabled","setEventReporter","logger","metroBundler","getConfig","skipSDKVersionRequirement","metroConfig","metro","getBundler","middleware","messagesSocket","eventsSocket","websocketEndpoints","createMetroMiddleware","prependMiddleware","createCorsMiddleware","debugMiddleware","debugWebsocketEndpoints","createDebugMiddleware","Object","assign","use","createJsInspectorMiddleware","customEnhanceMiddleware","server","enhanceMiddleware","metroMiddleware","attachAtlasAsync","resetAtlasFile","hmrServer","runServer","createDevToolsPluginWebsocketEndpoint","watch","mockServer","originalTransformFile","transformFile","bind","filePath","transformOptions","fileBuffer","pruneCustomTransformOptions","customTransformOptions","__proto__","reportMetroEvent","_getSortedModules","graph","modules","dependencies","values","ctx","platform","environment","module","_createModuleId","path","sort","a","b","hmrJSBundle","require","default","_prepareMessage","group","changeEvent","isInitialUpdate","revision","revPromise","_bundler","getRevision","revisionId","type","body","formatBundlingError","RevisionNotFoundError","point","delta","updateGraph","_clientGroups","delete","id","client","clients","revisionIds","filter","set","moduleIdContext","hmrUpdate","clientUrl","createModuleId","moduleId","includeAsyncPaths","graphOptions","lazy","_config","unstable_serverRoot","error","formattedError","messageSocket","split","sep","join","dom","match","routerRoot","asyncRoutes","clientBoundaries","CI","chalk"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/instantiateMetro.ts"],"sourcesContent":["import { ExpoConfig, getConfig } from '@expo/config';\nimport { getMetroServerRoot } from '@expo/config/paths';\nimport { getDefaultConfig, LoadOptions } from '@expo/metro-config';\nimport chalk from 'chalk';\nimport http from 'http';\nimport type Metro from 'metro';\nimport { ReadOnlyGraph } from 'metro';\nimport Bundler from 'metro/src/Bundler';\nimport type { TransformOptions } from 'metro/src/DeltaBundler/Worker';\nimport MetroHmrServer from 'metro/src/HmrServer';\nimport RevisionNotFoundError from 'metro/src/IncrementalBundler/RevisionNotFoundError';\nimport formatBundlingError from 'metro/src/lib/formatBundlingError';\nimport { loadConfig, resolveConfig, ConfigT } from 'metro-config';\nimport { Terminal } from 'metro-core';\nimport util from 'node:util';\nimport path from 'path';\n\nimport { createDevToolsPluginWebsocketEndpoint } from './DevToolsPluginWebsocketEndpoint';\nimport { MetroBundlerDevServer } from './MetroBundlerDevServer';\nimport { MetroTerminalReporter } from './MetroTerminalReporter';\nimport { attachAtlasAsync } from './debugging/attachAtlas';\nimport { createDebugMiddleware } from './debugging/createDebugMiddleware';\nimport { createMetroMiddleware } from './dev-server/createMetroMiddleware';\nimport { runServer } from './runServer-fork';\nimport { withMetroMultiPlatformAsync } from './withMetroMultiPlatform';\nimport { Log } from '../../../log';\nimport { env } from '../../../utils/env';\nimport { CommandError } from '../../../utils/errors';\nimport { createCorsMiddleware } from '../middleware/CorsMiddleware';\nimport { createJsInspectorMiddleware } from '../middleware/inspector/createJsInspectorMiddleware';\nimport { prependMiddleware } from '../middleware/mutations';\nimport { getPlatformBundlers } from '../platformBundlers';\n\n// From expo/dev-server but with ability to use custom logger.\ntype MessageSocket = {\n broadcast: (method: string, params?: Record<string, any> | undefined) => void;\n};\n\n// Wrap terminal and polyfill console.log so we can log during bundling without breaking the indicator.\nclass LogRespectingTerminal extends Terminal {\n constructor(stream: import('node:net').Socket | import('node:stream').Writable) {\n super(stream);\n\n const sendLog = (...args: any[]) => {\n this._logLines.push(\n // format args like console.log\n util.format(...args)\n );\n this._scheduleUpdate();\n\n // Flush the logs to the terminal immediately so logs at the end of the process are not lost.\n this.flush();\n };\n\n console.log = sendLog;\n console.info = sendLog;\n }\n}\n\n// Share one instance of Terminal for all instances of Metro.\nconst terminal = new LogRespectingTerminal(process.stdout);\n\nexport async function loadMetroConfigAsync(\n projectRoot: string,\n options: LoadOptions,\n {\n exp,\n isExporting,\n getMetroBundler,\n }: { exp: ExpoConfig; isExporting: boolean; getMetroBundler: () => Bundler }\n) {\n let reportEvent: ((event: any) => void) | undefined;\n\n const serverActionsEnabled =\n exp.experiments?.reactServerFunctions ?? env.EXPO_UNSTABLE_SERVER_FUNCTIONS;\n\n if (serverActionsEnabled) {\n process.env.EXPO_UNSTABLE_SERVER_FUNCTIONS = '1';\n }\n\n // NOTE: Enable all the experimental Metro flags when RSC is enabled.\n if (exp.experiments?.reactServerComponentRoutes || serverActionsEnabled) {\n process.env.EXPO_USE_METRO_REQUIRE = '1';\n process.env.EXPO_USE_FAST_RESOLVER = '1';\n }\n\n const serverRoot = getMetroServerRoot(projectRoot);\n const terminalReporter = new MetroTerminalReporter(serverRoot, terminal);\n\n const hasConfig = await resolveConfig(options.config, projectRoot);\n let config: ConfigT = {\n ...(await loadConfig(\n { cwd: projectRoot, projectRoot, ...options },\n // If the project does not have a metro.config.js, then we use the default config.\n hasConfig.isEmpty ? getDefaultConfig(projectRoot) : undefined\n )),\n reporter: {\n update(event: any) {\n terminalReporter.update(event);\n if (reportEvent) {\n reportEvent(event);\n }\n },\n },\n };\n\n // @ts-expect-error: Set the global require cycle ignore patterns for SSR bundles. This won't work with custom global prefixes, but we don't use those.\n globalThis.__requireCycleIgnorePatterns = config.resolver?.requireCycleIgnorePatterns;\n\n if (isExporting) {\n // This token will be used in the asset plugin to ensure the path is correct for writing locally.\n // @ts-expect-error: typed as readonly.\n config.transformer.publicPath = `/assets?export_path=${\n (exp.experiments?.baseUrl ?? '') + '/assets'\n }`;\n } else {\n // @ts-expect-error: typed as readonly\n config.transformer.publicPath = '/assets/?unstable_path=.';\n }\n\n const platformBundlers = getPlatformBundlers(projectRoot, exp);\n\n if (exp.experiments?.reactCompiler) {\n Log.warn(`Experimental React Compiler is enabled.`);\n }\n\n if (env.EXPO_UNSTABLE_TREE_SHAKING && !env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH) {\n throw new CommandError(\n 'EXPO_UNSTABLE_TREE_SHAKING requires EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH to be enabled.'\n );\n }\n\n if (env.EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH) {\n Log.warn(`Experimental bundle optimization is enabled.`);\n }\n if (env.EXPO_UNSTABLE_TREE_SHAKING) {\n Log.warn(`Experimental tree shaking is enabled.`);\n }\n\n if (serverActionsEnabled) {\n Log.warn(\n `React Server Functions (beta) are enabled. Route rendering mode: ${exp.experiments?.reactServerComponentRoutes ? 'server' : 'client'}`\n );\n }\n\n config = await withMetroMultiPlatformAsync(projectRoot, {\n config,\n exp,\n platformBundlers,\n isTsconfigPathsEnabled: exp.experiments?.tsconfigPaths ?? true,\n isFastResolverEnabled: env.EXPO_USE_FAST_RESOLVER,\n isExporting,\n isReactCanaryEnabled:\n (exp.experiments?.reactServerComponentRoutes ||\n serverActionsEnabled ||\n exp.experiments?.reactCanary) ??\n false,\n isNamedRequiresEnabled: env.EXPO_USE_METRO_REQUIRE,\n isReactServerComponentsEnabled: !!exp.experiments?.reactServerComponentRoutes,\n getMetroBundler,\n });\n\n return {\n config,\n setEventReporter: (logger: (event: any) => void) => (reportEvent = logger),\n reporter: terminalReporter,\n };\n}\n\n/** The most generic possible setup for Metro bundler. */\nexport async function instantiateMetroAsync(\n metroBundler: MetroBundlerDevServer,\n options: Omit<LoadOptions, 'logger'>,\n {\n isExporting,\n exp = getConfig(metroBundler.projectRoot, {\n skipSDKVersionRequirement: true,\n }).exp,\n }: { isExporting: boolean; exp?: ExpoConfig }\n): Promise<{\n metro: Metro.Server;\n hmrServer: MetroHmrServer | null;\n server: http.Server;\n middleware: any;\n messageSocket: MessageSocket;\n}> {\n const projectRoot = metroBundler.projectRoot;\n\n const { config: metroConfig, setEventReporter } = await loadMetroConfigAsync(\n projectRoot,\n options,\n {\n exp,\n isExporting,\n getMetroBundler() {\n return metro.getBundler().getBundler();\n },\n }\n );\n\n // Create the core middleware stack for Metro, including websocket listeners\n const { middleware, messagesSocket, eventsSocket, websocketEndpoints } =\n createMetroMiddleware(metroConfig);\n\n if (!isExporting) {\n // Enable correct CORS headers for Expo Router features\n prependMiddleware(middleware, createCorsMiddleware(exp));\n\n // Enable debug middleware for CDP-related debugging\n const { debugMiddleware, debugWebsocketEndpoints } = createDebugMiddleware(metroBundler);\n Object.assign(websocketEndpoints, debugWebsocketEndpoints);\n middleware.use(debugMiddleware);\n middleware.use('/_expo/debugger', createJsInspectorMiddleware());\n\n // TODO(cedric): `enhanceMiddleware` is deprecated, but is currently used to unify the middleware stacks\n // See: https://github.com/facebook/metro/commit/22e85fde85ec454792a1b70eba4253747a2587a9\n // See: https://github.com/facebook/metro/commit/d0d554381f119bb80ab09dbd6a1d310b54737e52\n const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;\n // @ts-expect-error: can't mutate readonly config\n metroConfig.server.enhanceMiddleware = (metroMiddleware: any, server: Metro.Server) => {\n if (customEnhanceMiddleware) {\n metroMiddleware = customEnhanceMiddleware(metroMiddleware, server);\n }\n return middleware.use(metroMiddleware);\n };\n }\n\n // Attach Expo Atlas if enabled\n await attachAtlasAsync({\n isExporting,\n exp,\n projectRoot,\n middleware,\n metroConfig,\n // NOTE(cedric): reset the Atlas file once, and reuse it for static exports\n resetAtlasFile: isExporting,\n });\n\n const { server, hmrServer, metro } = await runServer(\n metroBundler,\n metroConfig,\n {\n websocketEndpoints: {\n ...websocketEndpoints,\n ...createDevToolsPluginWebsocketEndpoint(),\n },\n watch: !isExporting && isWatchEnabled(),\n },\n {\n mockServer: isExporting,\n }\n );\n\n // Patch transform file to remove inconvenient customTransformOptions which are only used in single well-known files.\n const originalTransformFile = metro\n .getBundler()\n .getBundler()\n .transformFile.bind(metro.getBundler().getBundler());\n\n metro.getBundler().getBundler().transformFile = async function (\n filePath: string,\n transformOptions: TransformOptions,\n fileBuffer?: Buffer\n ) {\n return originalTransformFile(\n filePath,\n pruneCustomTransformOptions(\n filePath,\n // Clone the options so we don't mutate the original.\n {\n ...transformOptions,\n customTransformOptions: {\n __proto__: null,\n ...transformOptions.customTransformOptions,\n },\n }\n ),\n fileBuffer\n );\n };\n\n setEventReporter(eventsSocket.reportMetroEvent);\n\n // This function ensures that modules in source maps are sorted in the same\n // order as in a plain JS bundle.\n metro._getSortedModules = function (this: Metro.Server, graph: ReadOnlyGraph) {\n const modules = [...graph.dependencies.values()];\n\n const ctx = {\n platform: graph.transformOptions.platform,\n environment: graph.transformOptions.customTransformOptions?.environment,\n };\n // Assign IDs to modules in a consistent order\n for (const module of modules) {\n // @ts-expect-error\n this._createModuleId(module.path, ctx);\n }\n // Sort by IDs\n return modules.sort(\n // @ts-expect-error\n (a, b) => this._createModuleId(a.path, ctx) - this._createModuleId(b.path, ctx)\n );\n };\n\n if (hmrServer) {\n let hmrJSBundle: typeof import('@expo/metro-config/build/serializer/fork/hmrJSBundle').default;\n\n try {\n hmrJSBundle = require('@expo/metro-config/build/serializer/fork/hmrJSBundle').default;\n } catch {\n // Add fallback for monorepo tests up until the fork is merged.\n Log.warn('Failed to load HMR serializer from @expo/metro-config, using fallback version.');\n hmrJSBundle = require('metro/src/DeltaBundler/Serializers/hmrJSBundle');\n }\n\n // 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.\n hmrServer._prepareMessage = async function (this: MetroHmrServer, group, options, changeEvent) {\n // Fork of https://github.com/facebook/metro/blob/3b3e0aaf725cfa6907bf2c8b5fbc0da352d29efe/packages/metro/src/HmrServer.js#L327-L393\n // with patch for `_createModuleId`.\n const logger = !options.isInitialUpdate ? changeEvent?.logger : null;\n try {\n const revPromise = this._bundler.getRevision(group.revisionId);\n if (!revPromise) {\n return {\n type: 'error',\n body: formatBundlingError(new RevisionNotFoundError(group.revisionId)),\n };\n }\n logger?.point('updateGraph_start');\n const { revision, delta } = await this._bundler.updateGraph(await revPromise, false);\n logger?.point('updateGraph_end');\n this._clientGroups.delete(group.revisionId);\n group.revisionId = revision.id;\n for (const client of group.clients) {\n client.revisionIds = client.revisionIds.filter(\n (revisionId) => revisionId !== group.revisionId\n );\n client.revisionIds.push(revision.id);\n }\n this._clientGroups.set(group.revisionId, group);\n logger?.point('serialize_start');\n // NOTE(EvanBacon): This is the patch\n const moduleIdContext = {\n platform: revision.graph.transformOptions.platform,\n environment: revision.graph.transformOptions.customTransformOptions?.environment,\n };\n const hmrUpdate = hmrJSBundle(delta, revision.graph, {\n clientUrl: group.clientUrl,\n // NOTE(EvanBacon): This is also the patch\n createModuleId: (moduleId: string) => {\n // @ts-expect-error\n return this._createModuleId(moduleId, moduleIdContext);\n },\n includeAsyncPaths: group.graphOptions.lazy,\n projectRoot: this._config.projectRoot,\n serverRoot: this._config.server.unstable_serverRoot ?? this._config.projectRoot,\n });\n logger?.point('serialize_end');\n return {\n type: 'update',\n body: {\n revisionId: revision.id,\n isInitialUpdate: options.isInitialUpdate,\n ...hmrUpdate,\n },\n };\n } catch (error: any) {\n const formattedError = formatBundlingError(error);\n this._config.reporter.update({\n type: 'bundling_error',\n error,\n });\n return {\n type: 'error',\n body: formattedError,\n };\n }\n };\n }\n\n return {\n metro,\n hmrServer,\n server,\n middleware,\n messageSocket: messagesSocket,\n };\n}\n\n// TODO: Fork the entire transform function so we can simply regex the file contents for keywords instead.\nfunction pruneCustomTransformOptions(\n filePath: string,\n transformOptions: TransformOptions\n): TransformOptions {\n // Normalize the filepath for cross platform checking.\n filePath = filePath.split(path.sep).join('/');\n\n if (\n transformOptions.customTransformOptions?.dom &&\n // The only generated file that needs the dom root is `expo/dom/entry.js`\n !filePath.match(/expo\\/dom\\/entry\\.js$/)\n ) {\n // Clear the dom root option if we aren't transforming the magic entry file, this ensures\n // that cached artifacts from other DOM component bundles can be reused.\n transformOptions.customTransformOptions.dom = 'true';\n }\n\n if (\n transformOptions.customTransformOptions?.routerRoot &&\n // The router root is used all over expo-router (`process.env.EXPO_ROUTER_ABS_APP_ROOT`, `process.env.EXPO_ROUTER_APP_ROOT`) so we'll just ignore the entire package.\n !(filePath.match(/\\/expo-router\\/_ctx/) || filePath.match(/\\/expo-router\\/build\\//))\n ) {\n // Set to the default value.\n transformOptions.customTransformOptions.routerRoot = 'app';\n }\n if (\n transformOptions.customTransformOptions?.asyncRoutes &&\n // The async routes settings are also used in `expo-router/_ctx.ios.js` (and other platform variants) via `process.env.EXPO_ROUTER_IMPORT_MODE`\n !(filePath.match(/\\/expo-router\\/_ctx/) || filePath.match(/\\/expo-router\\/build\\//))\n ) {\n delete transformOptions.customTransformOptions.asyncRoutes;\n }\n\n if (\n transformOptions.customTransformOptions?.clientBoundaries &&\n // The client boundaries are only used in `@expo/metro-runtime/src/virtual.js` for production RSC exports.\n !filePath.match(/\\/@expo\\/metro-runtime\\/rsc\\/virtual\\.js$/)\n ) {\n delete transformOptions.customTransformOptions.clientBoundaries;\n }\n\n return transformOptions;\n}\n\n/**\n * Simplify and communicate if Metro is running without watching file updates,.\n * Exposed for testing.\n */\nexport function isWatchEnabled() {\n if (env.CI) {\n Log.log(\n chalk`Metro is running in CI mode, reloads are disabled. Remove {bold CI=true} to enable watch mode.`\n );\n }\n\n return !env.CI;\n}\n"],"names":["instantiateMetroAsync","isWatchEnabled","loadMetroConfigAsync","LogRespectingTerminal","Terminal","constructor","stream","sendLog","args","_logLines","push","util","format","_scheduleUpdate","flush","console","log","info","terminal","process","stdout","projectRoot","options","exp","isExporting","getMetroBundler","config","reportEvent","serverActionsEnabled","experiments","reactServerFunctions","env","EXPO_UNSTABLE_SERVER_FUNCTIONS","reactServerComponentRoutes","EXPO_USE_METRO_REQUIRE","EXPO_USE_FAST_RESOLVER","serverRoot","getMetroServerRoot","terminalReporter","MetroTerminalReporter","hasConfig","resolveConfig","loadConfig","cwd","isEmpty","getDefaultConfig","undefined","reporter","update","event","globalThis","__requireCycleIgnorePatterns","resolver","requireCycleIgnorePatterns","transformer","publicPath","baseUrl","platformBundlers","getPlatformBundlers","reactCompiler","Log","warn","EXPO_UNSTABLE_TREE_SHAKING","EXPO_UNSTABLE_METRO_OPTIMIZE_GRAPH","CommandError","withMetroMultiPlatformAsync","isTsconfigPathsEnabled","tsconfigPaths","isFastResolverEnabled","isReactCanaryEnabled","reactCanary","isNamedRequiresEnabled","isReactServerComponentsEnabled","setEventReporter","logger","metroBundler","getConfig","skipSDKVersionRequirement","metroConfig","metro","getBundler","middleware","messagesSocket","eventsSocket","websocketEndpoints","createMetroMiddleware","prependMiddleware","createCorsMiddleware","debugMiddleware","debugWebsocketEndpoints","createDebugMiddleware","Object","assign","use","createJsInspectorMiddleware","customEnhanceMiddleware","server","enhanceMiddleware","metroMiddleware","attachAtlasAsync","resetAtlasFile","hmrServer","runServer","createDevToolsPluginWebsocketEndpoint","watch","mockServer","originalTransformFile","transformFile","bind","filePath","transformOptions","fileBuffer","pruneCustomTransformOptions","customTransformOptions","__proto__","reportMetroEvent","_getSortedModules","graph","modules","dependencies","values","ctx","platform","environment","module","_createModuleId","path","sort","a","b","hmrJSBundle","require","default","_prepareMessage","group","changeEvent","isInitialUpdate","revision","revPromise","_bundler","getRevision","revisionId","type","body","formatBundlingError","RevisionNotFoundError","point","delta","updateGraph","_clientGroups","delete","id","client","clients","revisionIds","filter","set","moduleIdContext","hmrUpdate","clientUrl","createModuleId","moduleId","includeAsyncPaths","graphOptions","lazy","_config","unstable_serverRoot","error","formattedError","messageSocket","split","sep","join","dom","match","routerRoot","asyncRoutes","clientBoundaries","CI","chalk"],"mappings":"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"}
|