@expo/cli 1.0.0-canary-20250320-7a205d3 → 1.0.0-canary-20250402-161f57b
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 +55 -37
- 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 +72 -62
- 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 +68 -64
- 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 +53 -45
- 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 +64 -34
- 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 +4 -2
- 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 +293 -280
- 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 -41
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +31 -27
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +110 -98
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +34 -30
- 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 -8
- 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 +28 -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 -81
- 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 +150 -140
- 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 +16 -15
- 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 +120 -96
- 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 +17 -16
|
@@ -12,16 +12,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
12
12
|
});
|
|
13
13
|
Object.defineProperty(exports, "createFallbackModuleResolver", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: ()
|
|
15
|
+
get: function() {
|
|
16
|
+
return createFallbackModuleResolver;
|
|
17
|
+
}
|
|
16
18
|
});
|
|
17
19
|
function _path() {
|
|
18
|
-
const data = /*#__PURE__*/
|
|
20
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
19
21
|
_path = function() {
|
|
20
22
|
return data;
|
|
21
23
|
};
|
|
22
24
|
return data;
|
|
23
25
|
}
|
|
24
|
-
function
|
|
26
|
+
function _interop_require_default(obj) {
|
|
25
27
|
return obj && obj.__esModule ? obj : {
|
|
26
28
|
default: obj
|
|
27
29
|
};
|
|
@@ -36,19 +38,19 @@ function _interopRequireDefault(obj) {
|
|
|
36
38
|
* forget to specify their own dependencies, rather than what we use ourselves
|
|
37
39
|
* only in `expo` and `expo-router`.
|
|
38
40
|
*/ const EXCLUDE_ORIGIN_MODULES = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
'@expo/config': true,
|
|
42
|
+
'@expo/config-plugins': true,
|
|
43
|
+
'schema-utils': true,
|
|
42
44
|
semver: true
|
|
43
45
|
};
|
|
44
|
-
const debug = require(
|
|
45
|
-
/** Converts a list of module names to a regex that may either match bare module names or sub-modules of modules */ const dependenciesToRegex = (dependencies)=>new RegExp(`^(?:${dependencies.join(
|
|
46
|
+
const debug = require('debug')('expo:start:server:metro:fallback-resolver');
|
|
47
|
+
/** Converts a list of module names to a regex that may either match bare module names or sub-modules of modules */ const dependenciesToRegex = (dependencies)=>new RegExp(`^(?:${dependencies.join('|')})(?:$|/)`);
|
|
46
48
|
/** Resolves an origin module and outputs a filter regex and target path for it */ const getModuleDescriptionWithResolver = (context, resolve, originModuleName)=>{
|
|
47
49
|
let filePath;
|
|
48
50
|
let packageMeta;
|
|
49
51
|
try {
|
|
50
52
|
const resolution = resolve(`${originModuleName}/package.json`);
|
|
51
|
-
if (resolution.type !==
|
|
53
|
+
if (resolution.type !== 'sourceFile') {
|
|
52
54
|
debug(`Fallback module resolution failed for origin module: ${originModuleName})`);
|
|
53
55
|
return null;
|
|
54
56
|
}
|
|
@@ -76,7 +78,7 @@ const debug = require("debug")("expo:start:server:metro:fallback-resolver");
|
|
|
76
78
|
if (peerDependenciesMeta) {
|
|
77
79
|
peerDependencies = peerDependencies.filter((dependency)=>{
|
|
78
80
|
const peerMeta = peerDependenciesMeta[dependency];
|
|
79
|
-
return peerMeta && typeof peerMeta ===
|
|
81
|
+
return peerMeta && typeof peerMeta === 'object' && peerMeta.optional === true;
|
|
80
82
|
});
|
|
81
83
|
}
|
|
82
84
|
dependencies.push(...peerDependencies);
|
|
@@ -93,7 +95,7 @@ const debug = require("debug")("expo:start:server:metro:fallback-resolver");
|
|
|
93
95
|
moduleTestRe: dependenciesToRegex(dependencies)
|
|
94
96
|
} : null;
|
|
95
97
|
};
|
|
96
|
-
function createFallbackModuleResolver({ originModuleNames
|
|
98
|
+
function createFallbackModuleResolver({ originModuleNames, getStrictResolver }) {
|
|
97
99
|
const _moduleDescriptionsCache = {};
|
|
98
100
|
const getModuleDescription = (immutableContext, originModuleName, platform)=>{
|
|
99
101
|
if (_moduleDescriptionsCache[originModuleName] !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/createExpoFallbackResolver.ts"],"sourcesContent":["// This file creates the fallback resolver\n// The fallback resolver applies only to module imports and should be the last resolver\n// in the chain. It applies to failed Node module resolution of modules and will attempt\n// to resolve them to `expo` and `expo-router` dependencies that couldn't be resolved.\n// This resolves isolated dependency issues, where we expect dependencies of `expo`\n// and `expo-router` to be resolvable, due to hoisting, but they aren't hoisted in\n// a user's project.\n// See: https://github.com/expo/expo/pull/34286\n\nimport type { ResolutionContext } from 'metro-resolver';\nimport path from 'path';\n\nimport type { StrictResolver, StrictResolverFactory } from './withMetroMultiPlatform';\nimport type { ExpoCustomMetroResolver } from './withMetroResolvers';\n\n/** A record of dependencies that we know are only used for scripts and config-plugins\n * @privateRemarks\n * This includes dependencies we never resolve indirectly. Generally, we only want\n * to add fallback resolutions for dependencies of `expo` and `expo-router` that\n * are either transpiled into output code or resolved from other Expo packages\n * without them having direct dependencies on these dependencies.\n * Meaning: If you update this list, exclude what a user might use when they\n * forget to specify their own dependencies, rather than what we use ourselves\n * only in `expo` and `expo-router`.\n */\nconst EXCLUDE_ORIGIN_MODULES: Record<string, true | undefined> = {\n '@expo/config': true,\n '@expo/config-plugins': true,\n 'schema-utils': true, // Used by `expo-router/plugin`\n semver: true, // Used by `expo-router/doctor`\n};\n\ninterface PackageMetaPeerDependenciesMetaEntry {\n [propName: string]: unknown;\n optional?: boolean;\n}\n\ninterface PackageMeta {\n readonly [propName: string]: unknown;\n readonly name?: string;\n readonly main?: string;\n readonly exports?: any; // unused\n readonly dependencies?: Record<string, unknown>;\n readonly peerDependencies?: Record<string, unknown>;\n readonly peerDependenciesMeta?: Record<\n string,\n PackageMetaPeerDependenciesMetaEntry | undefined | null\n >;\n}\n\ninterface ModuleDescription {\n originModulePath: string;\n moduleTestRe: RegExp;\n}\n\nconst debug = require('debug')('expo:start:server:metro:fallback-resolver') as typeof console.log;\n\n/** Converts a list of module names to a regex that may either match bare module names or sub-modules of modules */\nconst dependenciesToRegex = (dependencies: string[]) =>\n new RegExp(`^(?:${dependencies.join('|')})(?:$|/)`);\n\n/** Resolves an origin module and outputs a filter regex and target path for it */\nconst getModuleDescriptionWithResolver = (\n context: ResolutionContext,\n resolve: StrictResolver,\n originModuleName: string\n): ModuleDescription | null => {\n let filePath: string | undefined;\n let packageMeta: PackageMeta | undefined | null;\n try {\n const resolution = resolve(`${originModuleName}/package.json`);\n if (resolution.type !== 'sourceFile') {\n debug(`Fallback module resolution failed for origin module: ${originModuleName})`);\n return null;\n }\n filePath = resolution.filePath;\n packageMeta = context.getPackage(filePath);\n if (!packageMeta) {\n return null;\n }\n } catch (error: any) {\n debug(\n `Fallback module resolution threw: ${error.constructor.name}. (module: ${filePath || originModuleName})`\n );\n return null;\n }\n let dependencies: string[] = [];\n if (packageMeta.dependencies) dependencies.push(...Object.keys(packageMeta.dependencies));\n if (packageMeta.peerDependencies) {\n const peerDependenciesMeta = packageMeta.peerDependenciesMeta;\n let peerDependencies = Object.keys(packageMeta.peerDependencies);\n // We explicitly include non-optional peer dependencies. Non-optional peer dependencies of\n // `expo` and `expo-router` are either expected to be accessible on a project-level, since\n // both are meant to be installed is direct dependencies, or shouldn't be accessible when\n // they're fulfilled as isolated dependencies.\n // The exception are only *optional* peer dependencies, since when they're installed\n // automatically by newer package manager behaviour, they may become isolated dependencies\n // that we still wish to access.\n if (peerDependenciesMeta) {\n peerDependencies = peerDependencies.filter((dependency) => {\n const peerMeta = peerDependenciesMeta[dependency];\n return peerMeta && typeof peerMeta === 'object' && peerMeta.optional === true;\n });\n }\n dependencies.push(...peerDependencies);\n }\n // We deduplicate the dependencies and exclude modules that we know are only used for scripts or config-plugins\n dependencies = dependencies.filter((moduleName, index, dependenciesArr) => {\n if (EXCLUDE_ORIGIN_MODULES[moduleName]) return false;\n return dependenciesArr.indexOf(moduleName) === index;\n });\n // Return test regex for dependencies and full origin module path to resolve through\n const originModulePath = path.dirname(filePath);\n return dependencies.length\n ? { originModulePath, moduleTestRe: dependenciesToRegex(dependencies) }\n : null;\n};\n\n/** Creates a fallback module resolver that resolves dependencis of modules named in `originModuleNames` via their path.\n * @remarks\n * The fallback resolver targets modules dependended on by modules named in `originModuleNames` and resolves\n * them from the module root of these origin modules instead.\n * It should only be used as a fallback after normal Node resolution (and other resolvers) have failed for:\n * - the `expo` package\n * - the `expo-router` package\n * Dependencies mentioned as either optional peer dependencies or direct dependencies by these modules may be isolated\n * and inaccessible via standard Node module resolution. This may happen when either transpilation adds these\n * dependencies to other parts of the tree (e.g. `@babel/runtime`) or when a dependency fails to hoist due to either\n * a corrupted dependency tree or when a peer dependency is fulfilled incorrectly (e.g. `expo-asset`)\n * @privateRemarks\n * This does NOT follow Node resolution and is *only* intended to provide a fallback for modules that we depend on\n * ourselves and know we can resolve (via expo or expo-router)!\n */\nexport function createFallbackModuleResolver({\n originModuleNames,\n getStrictResolver,\n}: {\n originModuleNames: string[];\n getStrictResolver: StrictResolverFactory;\n}): ExpoCustomMetroResolver {\n const _moduleDescriptionsCache: Record<string, ModuleDescription | null> = {};\n\n const getModuleDescription = (\n immutableContext: ResolutionContext,\n originModuleName: string,\n platform: string | null\n ) => {\n if (_moduleDescriptionsCache[originModuleName] !== undefined) {\n return _moduleDescriptionsCache[originModuleName];\n }\n // Resolve the origin module itself through `<module>/.`\n const context: ResolutionContext = {\n ...immutableContext,\n originModulePath: `${originModuleName}/package.json`,\n };\n return (_moduleDescriptionsCache[originModuleName] = getModuleDescriptionWithResolver(\n context,\n getStrictResolver(context, platform),\n originModuleName\n ));\n };\n\n const fileSpecifierRe = /^[\\\\/]|^\\.\\.?(?:$|[\\\\/])/i;\n\n return function requestFallbackModule(immutableContext, moduleName, platform) {\n // Early return if `moduleName` cannot be a module specifier\n // This doesn't have to be accurate as this resolver is a fallback for failed resolutions and\n // we're only doing this to avoid unnecessary resolution work\n if (fileSpecifierRe.test(moduleName)) {\n return null;\n }\n\n for (const originModuleName of originModuleNames) {\n const moduleDescription = getModuleDescription(immutableContext, originModuleName, platform);\n if (moduleDescription && moduleDescription.moduleTestRe.test(moduleName)) {\n // We instead resolve as if it was depended on by the `originModulePath` (the module named in `originModuleNames`)\n const context: ResolutionContext = {\n ...immutableContext,\n nodeModulesPaths: [moduleDescription.originModulePath],\n originModulePath: moduleDescription.originModulePath,\n };\n const res = getStrictResolver(context, platform)(moduleName);\n debug(\n `Fallback resolution for ${platform}: ${moduleName} -> from origin: ${originModuleName}`\n );\n return res;\n }\n }\n\n return null;\n };\n}\n"],"names":["createFallbackModuleResolver","EXCLUDE_ORIGIN_MODULES","semver","debug","require","dependenciesToRegex","dependencies","RegExp","join","getModuleDescriptionWithResolver","context","resolve","originModuleName","filePath","packageMeta","resolution","type","getPackage","error","constructor","name","push","Object","keys","peerDependencies","peerDependenciesMeta","filter","dependency","peerMeta","optional","moduleName","index","dependenciesArr","indexOf","originModulePath","path","dirname","length","moduleTestRe","originModuleNames","getStrictResolver","_moduleDescriptionsCache","getModuleDescription","immutableContext","platform","undefined","fileSpecifierRe","requestFallbackModule","test","moduleDescription","nodeModulesPaths","res"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/createExpoFallbackResolver.ts"],"sourcesContent":["// This file creates the fallback resolver\n// The fallback resolver applies only to module imports and should be the last resolver\n// in the chain. It applies to failed Node module resolution of modules and will attempt\n// to resolve them to `expo` and `expo-router` dependencies that couldn't be resolved.\n// This resolves isolated dependency issues, where we expect dependencies of `expo`\n// and `expo-router` to be resolvable, due to hoisting, but they aren't hoisted in\n// a user's project.\n// See: https://github.com/expo/expo/pull/34286\n\nimport type { ResolutionContext } from 'metro-resolver';\nimport path from 'path';\n\nimport type { StrictResolver, StrictResolverFactory } from './withMetroMultiPlatform';\nimport type { ExpoCustomMetroResolver } from './withMetroResolvers';\n\n/** A record of dependencies that we know are only used for scripts and config-plugins\n * @privateRemarks\n * This includes dependencies we never resolve indirectly. Generally, we only want\n * to add fallback resolutions for dependencies of `expo` and `expo-router` that\n * are either transpiled into output code or resolved from other Expo packages\n * without them having direct dependencies on these dependencies.\n * Meaning: If you update this list, exclude what a user might use when they\n * forget to specify their own dependencies, rather than what we use ourselves\n * only in `expo` and `expo-router`.\n */\nconst EXCLUDE_ORIGIN_MODULES: Record<string, true | undefined> = {\n '@expo/config': true,\n '@expo/config-plugins': true,\n 'schema-utils': true, // Used by `expo-router/plugin`\n semver: true, // Used by `expo-router/doctor`\n};\n\ninterface PackageMetaPeerDependenciesMetaEntry {\n [propName: string]: unknown;\n optional?: boolean;\n}\n\ninterface PackageMeta {\n readonly [propName: string]: unknown;\n readonly name?: string;\n readonly main?: string;\n readonly exports?: any; // unused\n readonly dependencies?: Record<string, unknown>;\n readonly peerDependencies?: Record<string, unknown>;\n readonly peerDependenciesMeta?: Record<\n string,\n PackageMetaPeerDependenciesMetaEntry | undefined | null\n >;\n}\n\ninterface ModuleDescription {\n originModulePath: string;\n moduleTestRe: RegExp;\n}\n\nconst debug = require('debug')('expo:start:server:metro:fallback-resolver') as typeof console.log;\n\n/** Converts a list of module names to a regex that may either match bare module names or sub-modules of modules */\nconst dependenciesToRegex = (dependencies: string[]) =>\n new RegExp(`^(?:${dependencies.join('|')})(?:$|/)`);\n\n/** Resolves an origin module and outputs a filter regex and target path for it */\nconst getModuleDescriptionWithResolver = (\n context: ResolutionContext,\n resolve: StrictResolver,\n originModuleName: string\n): ModuleDescription | null => {\n let filePath: string | undefined;\n let packageMeta: PackageMeta | undefined | null;\n try {\n const resolution = resolve(`${originModuleName}/package.json`);\n if (resolution.type !== 'sourceFile') {\n debug(`Fallback module resolution failed for origin module: ${originModuleName})`);\n return null;\n }\n filePath = resolution.filePath;\n packageMeta = context.getPackage(filePath);\n if (!packageMeta) {\n return null;\n }\n } catch (error: any) {\n debug(\n `Fallback module resolution threw: ${error.constructor.name}. (module: ${filePath || originModuleName})`\n );\n return null;\n }\n let dependencies: string[] = [];\n if (packageMeta.dependencies) dependencies.push(...Object.keys(packageMeta.dependencies));\n if (packageMeta.peerDependencies) {\n const peerDependenciesMeta = packageMeta.peerDependenciesMeta;\n let peerDependencies = Object.keys(packageMeta.peerDependencies);\n // We explicitly include non-optional peer dependencies. Non-optional peer dependencies of\n // `expo` and `expo-router` are either expected to be accessible on a project-level, since\n // both are meant to be installed is direct dependencies, or shouldn't be accessible when\n // they're fulfilled as isolated dependencies.\n // The exception are only *optional* peer dependencies, since when they're installed\n // automatically by newer package manager behaviour, they may become isolated dependencies\n // that we still wish to access.\n if (peerDependenciesMeta) {\n peerDependencies = peerDependencies.filter((dependency) => {\n const peerMeta = peerDependenciesMeta[dependency];\n return peerMeta && typeof peerMeta === 'object' && peerMeta.optional === true;\n });\n }\n dependencies.push(...peerDependencies);\n }\n // We deduplicate the dependencies and exclude modules that we know are only used for scripts or config-plugins\n dependencies = dependencies.filter((moduleName, index, dependenciesArr) => {\n if (EXCLUDE_ORIGIN_MODULES[moduleName]) return false;\n return dependenciesArr.indexOf(moduleName) === index;\n });\n // Return test regex for dependencies and full origin module path to resolve through\n const originModulePath = path.dirname(filePath);\n return dependencies.length\n ? { originModulePath, moduleTestRe: dependenciesToRegex(dependencies) }\n : null;\n};\n\n/** Creates a fallback module resolver that resolves dependencis of modules named in `originModuleNames` via their path.\n * @remarks\n * The fallback resolver targets modules dependended on by modules named in `originModuleNames` and resolves\n * them from the module root of these origin modules instead.\n * It should only be used as a fallback after normal Node resolution (and other resolvers) have failed for:\n * - the `expo` package\n * - the `expo-router` package\n * Dependencies mentioned as either optional peer dependencies or direct dependencies by these modules may be isolated\n * and inaccessible via standard Node module resolution. This may happen when either transpilation adds these\n * dependencies to other parts of the tree (e.g. `@babel/runtime`) or when a dependency fails to hoist due to either\n * a corrupted dependency tree or when a peer dependency is fulfilled incorrectly (e.g. `expo-asset`)\n * @privateRemarks\n * This does NOT follow Node resolution and is *only* intended to provide a fallback for modules that we depend on\n * ourselves and know we can resolve (via expo or expo-router)!\n */\nexport function createFallbackModuleResolver({\n originModuleNames,\n getStrictResolver,\n}: {\n originModuleNames: string[];\n getStrictResolver: StrictResolverFactory;\n}): ExpoCustomMetroResolver {\n const _moduleDescriptionsCache: Record<string, ModuleDescription | null> = {};\n\n const getModuleDescription = (\n immutableContext: ResolutionContext,\n originModuleName: string,\n platform: string | null\n ) => {\n if (_moduleDescriptionsCache[originModuleName] !== undefined) {\n return _moduleDescriptionsCache[originModuleName];\n }\n // Resolve the origin module itself through `<module>/.`\n const context: ResolutionContext = {\n ...immutableContext,\n originModulePath: `${originModuleName}/package.json`,\n };\n return (_moduleDescriptionsCache[originModuleName] = getModuleDescriptionWithResolver(\n context,\n getStrictResolver(context, platform),\n originModuleName\n ));\n };\n\n const fileSpecifierRe = /^[\\\\/]|^\\.\\.?(?:$|[\\\\/])/i;\n\n return function requestFallbackModule(immutableContext, moduleName, platform) {\n // Early return if `moduleName` cannot be a module specifier\n // This doesn't have to be accurate as this resolver is a fallback for failed resolutions and\n // we're only doing this to avoid unnecessary resolution work\n if (fileSpecifierRe.test(moduleName)) {\n return null;\n }\n\n for (const originModuleName of originModuleNames) {\n const moduleDescription = getModuleDescription(immutableContext, originModuleName, platform);\n if (moduleDescription && moduleDescription.moduleTestRe.test(moduleName)) {\n // We instead resolve as if it was depended on by the `originModulePath` (the module named in `originModuleNames`)\n const context: ResolutionContext = {\n ...immutableContext,\n nodeModulesPaths: [moduleDescription.originModulePath],\n originModulePath: moduleDescription.originModulePath,\n };\n const res = getStrictResolver(context, platform)(moduleName);\n debug(\n `Fallback resolution for ${platform}: ${moduleName} -> from origin: ${originModuleName}`\n );\n return res;\n }\n }\n\n return null;\n };\n}\n"],"names":["createFallbackModuleResolver","EXCLUDE_ORIGIN_MODULES","semver","debug","require","dependenciesToRegex","dependencies","RegExp","join","getModuleDescriptionWithResolver","context","resolve","originModuleName","filePath","packageMeta","resolution","type","getPackage","error","constructor","name","push","Object","keys","peerDependencies","peerDependenciesMeta","filter","dependency","peerMeta","optional","moduleName","index","dependenciesArr","indexOf","originModulePath","path","dirname","length","moduleTestRe","originModuleNames","getStrictResolver","_moduleDescriptionsCache","getModuleDescription","immutableContext","platform","undefined","fileSpecifierRe","requestFallbackModule","test","moduleDescription","nodeModulesPaths","res"],"mappings":"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"}
|
|
@@ -14,58 +14,64 @@ function _export(target, all) {
|
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
_export(exports, {
|
|
17
|
-
FailedToResolvePathError: ()
|
|
18
|
-
|
|
17
|
+
FailedToResolvePathError: function() {
|
|
18
|
+
return FailedToResolvePathError;
|
|
19
|
+
},
|
|
20
|
+
createFastResolver: function() {
|
|
21
|
+
return createFastResolver;
|
|
22
|
+
}
|
|
19
23
|
});
|
|
20
24
|
function _fs() {
|
|
21
|
-
const data = /*#__PURE__*/
|
|
25
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
22
26
|
_fs = function() {
|
|
23
27
|
return data;
|
|
24
28
|
};
|
|
25
29
|
return data;
|
|
26
30
|
}
|
|
27
31
|
function _path() {
|
|
28
|
-
const data = /*#__PURE__*/
|
|
32
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
29
33
|
_path = function() {
|
|
30
34
|
return data;
|
|
31
35
|
};
|
|
32
36
|
return data;
|
|
33
37
|
}
|
|
34
|
-
const _createJResolver = /*#__PURE__*/
|
|
38
|
+
const _createJResolver = /*#__PURE__*/ _interop_require_default(require("./createJResolver"));
|
|
35
39
|
const _externals = require("./externals");
|
|
36
40
|
const _formatFileCandidates = require("./formatFileCandidates");
|
|
37
41
|
const _metroOptions = require("../middleware/metroOptions");
|
|
38
|
-
function
|
|
42
|
+
function _interop_require_default(obj) {
|
|
39
43
|
return obj && obj.__esModule ? obj : {
|
|
40
44
|
default: obj
|
|
41
45
|
};
|
|
42
46
|
}
|
|
43
47
|
class FailedToResolvePathError extends Error {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
constructor(...args){
|
|
49
|
+
super(...args), // Added to ensure the error is matched by our tooling.
|
|
50
|
+
// TODO: Test that this matches `isFailedToResolvePathError`
|
|
51
|
+
this.candidates = {};
|
|
52
|
+
}
|
|
47
53
|
}
|
|
48
54
|
class ShimModuleError extends Error {
|
|
49
55
|
}
|
|
50
|
-
const debug = require(
|
|
51
|
-
const realpathFS = process.platform !==
|
|
56
|
+
const debug = require('debug')('expo:metro:resolve');
|
|
57
|
+
const realpathFS = process.platform !== 'win32' && _fs().default.realpathSync && typeof _fs().default.realpathSync.native === 'function' ? _fs().default.realpathSync.native : _fs().default.realpathSync;
|
|
52
58
|
function realpathSync(x) {
|
|
53
59
|
try {
|
|
54
60
|
return realpathFS(x);
|
|
55
61
|
} catch (realpathErr) {
|
|
56
|
-
if (realpathErr.code !==
|
|
62
|
+
if (realpathErr.code !== 'ENOENT') {
|
|
57
63
|
throw realpathErr;
|
|
58
64
|
}
|
|
59
65
|
}
|
|
60
66
|
return x;
|
|
61
67
|
}
|
|
62
|
-
function createFastResolver({ preserveSymlinks
|
|
63
|
-
debug(
|
|
68
|
+
function createFastResolver({ preserveSymlinks, blockList }) {
|
|
69
|
+
debug('Creating with settings:', {
|
|
64
70
|
preserveSymlinks,
|
|
65
71
|
blockList
|
|
66
72
|
});
|
|
67
73
|
const cachedExtensions = new Map();
|
|
68
|
-
function getAdjustedExtensions({ metroSourceExtensions
|
|
74
|
+
function getAdjustedExtensions({ metroSourceExtensions, platform, isNative }) {
|
|
69
75
|
const key = JSON.stringify({
|
|
70
76
|
metroSourceExtensions,
|
|
71
77
|
platform,
|
|
@@ -93,8 +99,8 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
93
99
|
return output;
|
|
94
100
|
}
|
|
95
101
|
function fastResolve(context, moduleName, platform) {
|
|
96
|
-
var
|
|
97
|
-
const environment = (
|
|
102
|
+
var _context_customResolverOptions;
|
|
103
|
+
const environment = (_context_customResolverOptions = context.customResolverOptions) == null ? void 0 : _context_customResolverOptions.environment;
|
|
98
104
|
const isServer = (0, _metroOptions.isServerEnvironment)(environment);
|
|
99
105
|
const extensions = getAdjustedExtensions({
|
|
100
106
|
metroSourceExtensions: context.sourceExts,
|
|
@@ -104,16 +110,16 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
104
110
|
let fp;
|
|
105
111
|
const conditions = context.unstable_enablePackageExports ? [
|
|
106
112
|
...new Set([
|
|
107
|
-
|
|
108
|
-
context.isESMImport === true ?
|
|
113
|
+
'default',
|
|
114
|
+
context.isESMImport === true ? 'import' : 'require',
|
|
109
115
|
...context.unstable_conditionNames,
|
|
110
|
-
...platform != null ? context.unstable_conditionsByPlatform[platform] ?? [] : []
|
|
111
|
-
])
|
|
116
|
+
...platform != null ? context.unstable_conditionsByPlatform[platform] ?? [] : []
|
|
117
|
+
])
|
|
112
118
|
] : [];
|
|
113
119
|
// NOTE(cedric): metro@0.81.0 ships with `fileSystemLookup`, while `metro@0.80.12` ships as unstable
|
|
114
|
-
const fileSystemLookup =
|
|
120
|
+
const fileSystemLookup = 'unstable_fileSystemLookup' in context ? context.unstable_fileSystemLookup : context.fileSystemLookup;
|
|
115
121
|
if (!fileSystemLookup) {
|
|
116
|
-
throw new Error(
|
|
122
|
+
throw new Error('Metro API fileSystemLookup is required for fast resolver');
|
|
117
123
|
}
|
|
118
124
|
try {
|
|
119
125
|
fp = (0, _createJResolver.default)(moduleName, {
|
|
@@ -136,11 +142,11 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
136
142
|
},
|
|
137
143
|
isDirectory (file) {
|
|
138
144
|
const res = fileSystemLookup(file);
|
|
139
|
-
return res.exists && res.type ===
|
|
145
|
+
return res.exists && res.type === 'd';
|
|
140
146
|
},
|
|
141
147
|
isFile (file) {
|
|
142
148
|
const res = fileSystemLookup(file);
|
|
143
|
-
return res.exists && res.type ===
|
|
149
|
+
return res.exists && res.type === 'f';
|
|
144
150
|
},
|
|
145
151
|
pathExists (file) {
|
|
146
152
|
return fileSystemLookup(file).exists;
|
|
@@ -149,7 +155,7 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
149
155
|
// set the pkg.main to the first available field in context.mainFields
|
|
150
156
|
for (const field of context.mainFields){
|
|
151
157
|
if (pkg[field] && // object-inspect uses browser: {} in package.json
|
|
152
|
-
typeof pkg[field] ===
|
|
158
|
+
typeof pkg[field] === 'string') {
|
|
153
159
|
return {
|
|
154
160
|
...pkg,
|
|
155
161
|
main: pkg[field]
|
|
@@ -162,22 +168,22 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
162
168
|
// the app doesn't finish without it.
|
|
163
169
|
preserveSymlinks,
|
|
164
170
|
readPackageSync (readFileSync, pkgFile) {
|
|
165
|
-
return context.getPackage(pkgFile) ?? JSON.parse(_fs().default.readFileSync(pkgFile,
|
|
171
|
+
return context.getPackage(pkgFile) ?? JSON.parse(_fs().default.readFileSync(pkgFile, 'utf8'));
|
|
166
172
|
},
|
|
167
173
|
includeCoreModules: isServer,
|
|
168
174
|
pathFilter: // Disable `browser` field for server environments.
|
|
169
175
|
isServer ? undefined : (pkg, _resolvedPath, relativePathIn)=>{
|
|
170
176
|
let relativePath = relativePathIn;
|
|
171
|
-
if (relativePath[0] !==
|
|
177
|
+
if (relativePath[0] !== '.') {
|
|
172
178
|
relativePath = `./${relativePath}`;
|
|
173
179
|
}
|
|
174
180
|
const replacements = pkg.browser;
|
|
175
181
|
if (replacements === undefined) {
|
|
176
|
-
return
|
|
182
|
+
return '';
|
|
177
183
|
}
|
|
178
184
|
// TODO: Probably use a better extension matching system here.
|
|
179
185
|
// This was added for `uuid/v4` -> `./lib/rng` -> `./lib/rng-browser.js`
|
|
180
|
-
const mappedPath = replacements[relativePath] ?? replacements[relativePath +
|
|
186
|
+
const mappedPath = replacements[relativePath] ?? replacements[relativePath + '.js'];
|
|
181
187
|
if (mappedPath === false) {
|
|
182
188
|
throw new ShimModuleError();
|
|
183
189
|
}
|
|
@@ -187,14 +193,14 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
187
193
|
} catch (error) {
|
|
188
194
|
if (error instanceof ShimModuleError) {
|
|
189
195
|
return {
|
|
190
|
-
type:
|
|
196
|
+
type: 'empty'
|
|
191
197
|
};
|
|
192
198
|
}
|
|
193
|
-
if (
|
|
199
|
+
if ('code' in error && error.code === 'MODULE_NOT_FOUND') {
|
|
194
200
|
if ((0, _externals.isNodeExternal)(moduleName)) {
|
|
195
201
|
// In this case, mock the file to use an empty module.
|
|
196
202
|
return {
|
|
197
|
-
type:
|
|
203
|
+
type: 'empty'
|
|
198
204
|
};
|
|
199
205
|
}
|
|
200
206
|
debug({
|
|
@@ -204,8 +210,8 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
204
210
|
isServer,
|
|
205
211
|
preserveSymlinks
|
|
206
212
|
}, context);
|
|
207
|
-
throw new FailedToResolvePathError(
|
|
208
|
-
type:
|
|
213
|
+
throw new FailedToResolvePathError('The module could not be resolved because no file or module matched the pattern:\n' + ` ${(0, _formatFileCandidates.formatFileCandidates)({
|
|
214
|
+
type: 'sourceFile',
|
|
209
215
|
filePathPrefix: moduleName,
|
|
210
216
|
candidateExts: extensions
|
|
211
217
|
}, true)}\n\nFrom:\n ${context.originModulePath}\n`);
|
|
@@ -214,29 +220,29 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
214
220
|
}
|
|
215
221
|
if (context.sourceExts.some((ext)=>fp.endsWith(ext))) {
|
|
216
222
|
return {
|
|
217
|
-
type:
|
|
223
|
+
type: 'sourceFile',
|
|
218
224
|
filePath: fp
|
|
219
225
|
};
|
|
220
226
|
}
|
|
221
227
|
if ((0, _externals.isNodeExternal)(fp)) {
|
|
222
228
|
if (isServer) {
|
|
223
229
|
return {
|
|
224
|
-
type:
|
|
230
|
+
type: 'sourceFile',
|
|
225
231
|
filePath: fp
|
|
226
232
|
};
|
|
227
233
|
}
|
|
228
234
|
// NOTE: This shouldn't happen, the module should throw.
|
|
229
235
|
// Mock non-server built-in modules to empty.
|
|
230
236
|
return {
|
|
231
|
-
type:
|
|
237
|
+
type: 'empty'
|
|
232
238
|
};
|
|
233
239
|
}
|
|
234
240
|
// NOTE: platform extensions may not be supported on assets.
|
|
235
|
-
if (platform ===
|
|
241
|
+
if (platform === 'web') {
|
|
236
242
|
// Skip multi-resolution on web/server bundles. Only consideration here is that
|
|
237
243
|
// we may still need it in case the only image is a multi-resolution image.
|
|
238
244
|
return {
|
|
239
|
-
type:
|
|
245
|
+
type: 'assetFiles',
|
|
240
246
|
filePaths: [
|
|
241
247
|
fp
|
|
242
248
|
]
|
|
@@ -246,7 +252,7 @@ function createFastResolver({ preserveSymlinks , blockList }) {
|
|
|
246
252
|
const extension = _path().default.extname(fp);
|
|
247
253
|
const basename = _path().default.basename(fp, extension);
|
|
248
254
|
return {
|
|
249
|
-
type:
|
|
255
|
+
type: 'assetFiles',
|
|
250
256
|
// Support multi-resolution asset extensions...
|
|
251
257
|
filePaths: context.resolveAsset(dirPath, basename, extension) ?? [
|
|
252
258
|
fp
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/start/server/metro/createExpoMetroResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport fs from 'fs';\nimport { Resolution, ResolutionContext } from 'metro-resolver';\nimport path from 'path';\n\nimport jestResolver from './createJResolver';\nimport { isNodeExternal } from './externals';\nimport { formatFileCandidates } from './formatFileCandidates';\nimport { isServerEnvironment } from '../middleware/metroOptions';\n\nexport class FailedToResolvePathError extends Error {\n // Added to ensure the error is matched by our tooling.\n // TODO: Test that this matches `isFailedToResolvePathError`\n candidates = {};\n}\n\nclass ShimModuleError extends Error {}\n\nconst debug = require('debug')('expo:metro:resolve') as typeof console.log;\n\nconst realpathFS =\n process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function'\n ? fs.realpathSync.native\n : fs.realpathSync;\n\nfunction realpathSync(x: string) {\n try {\n return realpathFS(x);\n } catch (realpathErr: any) {\n if (realpathErr.code !== 'ENOENT') {\n throw realpathErr;\n }\n }\n return x;\n}\n\nexport function createFastResolver({\n preserveSymlinks,\n blockList,\n}: {\n preserveSymlinks: boolean;\n blockList: RegExp[];\n}) {\n debug('Creating with settings:', { preserveSymlinks, blockList });\n const cachedExtensions: Map<string, readonly string[]> = new Map();\n\n function getAdjustedExtensions({\n metroSourceExtensions,\n platform,\n isNative,\n }: {\n metroSourceExtensions: readonly string[];\n platform: string | null;\n isNative: boolean;\n }): readonly string[] {\n const key = JSON.stringify({ metroSourceExtensions, platform, isNative });\n if (cachedExtensions.has(key)) {\n return cachedExtensions.get(key)!;\n }\n\n let output = metroSourceExtensions;\n if (platform) {\n const nextOutput: string[] = [];\n\n output.forEach((ext) => {\n nextOutput.push(`${platform}.${ext}`);\n if (isNative) {\n nextOutput.push(`native.${ext}`);\n }\n nextOutput.push(ext);\n });\n\n output = nextOutput;\n }\n\n output = Array.from(new Set<string>(output));\n\n // resolve expects these to start with a dot.\n output = output.map((ext) => `.${ext}`);\n\n cachedExtensions.set(key, output);\n\n return output;\n }\n\n function fastResolve(\n context: Pick<\n ResolutionContext,\n | 'unstable_enablePackageExports'\n | 'customResolverOptions'\n | 'sourceExts'\n | 'preferNativePlatform'\n | 'originModulePath'\n | 'getPackage'\n | 'nodeModulesPaths'\n | 'mainFields'\n | 'resolveAsset'\n | 'unstable_conditionNames'\n | 'unstable_conditionsByPlatform'\n | 'fileSystemLookup'\n | 'isESMImport'\n >,\n moduleName: string,\n platform: string | null\n ): Resolution {\n const environment = context.customResolverOptions?.environment;\n const isServer = isServerEnvironment(environment);\n\n const extensions = getAdjustedExtensions({\n metroSourceExtensions: context.sourceExts,\n platform,\n isNative: context.preferNativePlatform,\n }) as string[];\n\n let fp: string;\n\n const conditions = context.unstable_enablePackageExports\n ? [\n ...new Set([\n 'default',\n context.isESMImport === true ? 'import' : 'require',\n ...context.unstable_conditionNames,\n ...(platform != null ? (context.unstable_conditionsByPlatform[platform] ?? []) : []),\n ]),\n ]\n : [];\n\n // NOTE(cedric): metro@0.81.0 ships with `fileSystemLookup`, while `metro@0.80.12` ships as unstable\n const fileSystemLookup = (\n 'unstable_fileSystemLookup' in context\n ? context.unstable_fileSystemLookup\n : context.fileSystemLookup\n ) as ResolutionContext['fileSystemLookup'] | undefined;\n\n if (!fileSystemLookup) {\n throw new Error('Metro API fileSystemLookup is required for fast resolver');\n }\n\n try {\n fp = jestResolver(moduleName, {\n blockList,\n enablePackageExports: context.unstable_enablePackageExports,\n basedir: path.dirname(context.originModulePath),\n moduleDirectory: context.nodeModulesPaths.length\n ? (context.nodeModulesPaths as string[])\n : undefined,\n extensions,\n conditions,\n realpathSync(file: string): string {\n let metroRealPath: string | null = null;\n\n const res = fileSystemLookup(file);\n if (res?.exists) {\n metroRealPath = res.realPath;\n }\n\n if (metroRealPath == null && preserveSymlinks) {\n return realpathSync(file);\n }\n return metroRealPath ?? file;\n },\n isDirectory(file: string): boolean {\n const res = fileSystemLookup(file);\n return res.exists && res.type === 'd';\n },\n isFile(file: string): boolean {\n const res = fileSystemLookup(file);\n return res.exists && res.type === 'f';\n },\n pathExists(file: string): boolean {\n return fileSystemLookup(file).exists;\n },\n packageFilter(pkg) {\n // set the pkg.main to the first available field in context.mainFields\n for (const field of context.mainFields) {\n if (\n pkg[field] &&\n // object-inspect uses browser: {} in package.json\n typeof pkg[field] === 'string'\n ) {\n return {\n ...pkg,\n main: pkg[field],\n };\n }\n }\n return pkg;\n },\n // Used to ensure files trace to packages instead of node_modules in expo/expo. This is how Metro works and\n // the app doesn't finish without it.\n preserveSymlinks,\n readPackageSync(readFileSync, pkgFile) {\n return context.getPackage(pkgFile) ?? JSON.parse(fs.readFileSync(pkgFile, 'utf8'));\n },\n includeCoreModules: isServer,\n\n pathFilter:\n // Disable `browser` field for server environments.\n isServer\n ? undefined\n : // Enable `browser` field support\n (pkg: any, _resolvedPath: string, relativePathIn: string): string => {\n let relativePath = relativePathIn;\n if (relativePath[0] !== '.') {\n relativePath = `./${relativePath}`;\n }\n\n const replacements = pkg.browser;\n if (replacements === undefined) {\n return '';\n }\n\n // TODO: Probably use a better extension matching system here.\n // This was added for `uuid/v4` -> `./lib/rng` -> `./lib/rng-browser.js`\n const mappedPath = replacements[relativePath] ?? replacements[relativePath + '.js'];\n if (mappedPath === false) {\n throw new ShimModuleError();\n }\n return mappedPath;\n },\n });\n } catch (error: any) {\n if (error instanceof ShimModuleError) {\n return {\n type: 'empty',\n };\n }\n\n if ('code' in error && error.code === 'MODULE_NOT_FOUND') {\n if (isNodeExternal(moduleName)) {\n // In this case, mock the file to use an empty module.\n return {\n type: 'empty',\n };\n }\n\n debug({ moduleName, platform, conditions, isServer, preserveSymlinks }, context);\n\n throw new FailedToResolvePathError(\n 'The module could not be resolved because no file or module matched the pattern:\\n' +\n ` ${formatFileCandidates(\n {\n type: 'sourceFile',\n filePathPrefix: moduleName,\n candidateExts: extensions,\n },\n true\n )}\\n\\nFrom:\\n ${context.originModulePath}\\n`\n );\n }\n throw error;\n }\n\n if (context.sourceExts.some((ext) => fp.endsWith(ext))) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n\n if (isNodeExternal(fp)) {\n if (isServer) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n // NOTE: This shouldn't happen, the module should throw.\n // Mock non-server built-in modules to empty.\n return {\n type: 'empty',\n };\n }\n\n // NOTE: platform extensions may not be supported on assets.\n\n if (platform === 'web') {\n // Skip multi-resolution on web/server bundles. Only consideration here is that\n // we may still need it in case the only image is a multi-resolution image.\n return {\n type: 'assetFiles',\n filePaths: [fp],\n };\n }\n\n const dirPath = path.dirname(fp);\n const extension = path.extname(fp);\n const basename = path.basename(fp, extension);\n return {\n type: 'assetFiles',\n // Support multi-resolution asset extensions...\n filePaths: context.resolveAsset(dirPath, basename, extension) ?? [fp],\n };\n }\n\n return fastResolve;\n}\n"],"names":["FailedToResolvePathError","createFastResolver","Error","candidates","ShimModuleError","debug","require","realpathFS","process","platform","fs","realpathSync","native","x","realpathErr","code","preserveSymlinks","blockList","cachedExtensions","Map","getAdjustedExtensions","metroSourceExtensions","isNative","key","JSON","stringify","has","get","output","nextOutput","forEach","ext","push","Array","from","Set","map","set","fastResolve","context","moduleName","environment","customResolverOptions","isServer","isServerEnvironment","extensions","sourceExts","preferNativePlatform","fp","conditions","unstable_enablePackageExports","isESMImport","unstable_conditionNames","unstable_conditionsByPlatform","fileSystemLookup","unstable_fileSystemLookup","jestResolver","enablePackageExports","basedir","path","dirname","originModulePath","moduleDirectory","nodeModulesPaths","length","undefined","file","metroRealPath","res","exists","realPath","isDirectory","type","isFile","pathExists","packageFilter","pkg","field","mainFields","main","readPackageSync","readFileSync","pkgFile","getPackage","parse","includeCoreModules","pathFilter","_resolvedPath","relativePathIn","relativePath","replacements","browser","mappedPath","error","isNodeExternal","formatFileCandidates","filePathPrefix","candidateExts","some","endsWith","filePath","filePaths","dirPath","extension","extname","basename","resolveAsset"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/createExpoMetroResolver.ts"],"sourcesContent":["/**\n * Copyright © 2023 650 Industries.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport fs from 'fs';\nimport { Resolution, ResolutionContext } from 'metro-resolver';\nimport path from 'path';\n\nimport jestResolver from './createJResolver';\nimport { isNodeExternal } from './externals';\nimport { formatFileCandidates } from './formatFileCandidates';\nimport { isServerEnvironment } from '../middleware/metroOptions';\n\nexport class FailedToResolvePathError extends Error {\n // Added to ensure the error is matched by our tooling.\n // TODO: Test that this matches `isFailedToResolvePathError`\n candidates = {};\n}\n\nclass ShimModuleError extends Error {}\n\nconst debug = require('debug')('expo:metro:resolve') as typeof console.log;\n\nconst realpathFS =\n process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function'\n ? fs.realpathSync.native\n : fs.realpathSync;\n\nfunction realpathSync(x: string) {\n try {\n return realpathFS(x);\n } catch (realpathErr: any) {\n if (realpathErr.code !== 'ENOENT') {\n throw realpathErr;\n }\n }\n return x;\n}\n\nexport function createFastResolver({\n preserveSymlinks,\n blockList,\n}: {\n preserveSymlinks: boolean;\n blockList: RegExp[];\n}) {\n debug('Creating with settings:', { preserveSymlinks, blockList });\n const cachedExtensions: Map<string, readonly string[]> = new Map();\n\n function getAdjustedExtensions({\n metroSourceExtensions,\n platform,\n isNative,\n }: {\n metroSourceExtensions: readonly string[];\n platform: string | null;\n isNative: boolean;\n }): readonly string[] {\n const key = JSON.stringify({ metroSourceExtensions, platform, isNative });\n if (cachedExtensions.has(key)) {\n return cachedExtensions.get(key)!;\n }\n\n let output = metroSourceExtensions;\n if (platform) {\n const nextOutput: string[] = [];\n\n output.forEach((ext) => {\n nextOutput.push(`${platform}.${ext}`);\n if (isNative) {\n nextOutput.push(`native.${ext}`);\n }\n nextOutput.push(ext);\n });\n\n output = nextOutput;\n }\n\n output = Array.from(new Set<string>(output));\n\n // resolve expects these to start with a dot.\n output = output.map((ext) => `.${ext}`);\n\n cachedExtensions.set(key, output);\n\n return output;\n }\n\n function fastResolve(\n context: Pick<\n ResolutionContext,\n | 'unstable_enablePackageExports'\n | 'customResolverOptions'\n | 'sourceExts'\n | 'preferNativePlatform'\n | 'originModulePath'\n | 'getPackage'\n | 'nodeModulesPaths'\n | 'mainFields'\n | 'resolveAsset'\n | 'unstable_conditionNames'\n | 'unstable_conditionsByPlatform'\n | 'fileSystemLookup'\n | 'isESMImport'\n >,\n moduleName: string,\n platform: string | null\n ): Resolution {\n const environment = context.customResolverOptions?.environment;\n const isServer = isServerEnvironment(environment);\n\n const extensions = getAdjustedExtensions({\n metroSourceExtensions: context.sourceExts,\n platform,\n isNative: context.preferNativePlatform,\n }) as string[];\n\n let fp: string;\n\n const conditions = context.unstable_enablePackageExports\n ? [\n ...new Set([\n 'default',\n context.isESMImport === true ? 'import' : 'require',\n ...context.unstable_conditionNames,\n ...(platform != null ? (context.unstable_conditionsByPlatform[platform] ?? []) : []),\n ]),\n ]\n : [];\n\n // NOTE(cedric): metro@0.81.0 ships with `fileSystemLookup`, while `metro@0.80.12` ships as unstable\n const fileSystemLookup = (\n 'unstable_fileSystemLookup' in context\n ? context.unstable_fileSystemLookup\n : context.fileSystemLookup\n ) as ResolutionContext['fileSystemLookup'] | undefined;\n\n if (!fileSystemLookup) {\n throw new Error('Metro API fileSystemLookup is required for fast resolver');\n }\n\n try {\n fp = jestResolver(moduleName, {\n blockList,\n enablePackageExports: context.unstable_enablePackageExports,\n basedir: path.dirname(context.originModulePath),\n moduleDirectory: context.nodeModulesPaths.length\n ? (context.nodeModulesPaths as string[])\n : undefined,\n extensions,\n conditions,\n realpathSync(file: string): string {\n let metroRealPath: string | null = null;\n\n const res = fileSystemLookup(file);\n if (res?.exists) {\n metroRealPath = res.realPath;\n }\n\n if (metroRealPath == null && preserveSymlinks) {\n return realpathSync(file);\n }\n return metroRealPath ?? file;\n },\n isDirectory(file: string): boolean {\n const res = fileSystemLookup(file);\n return res.exists && res.type === 'd';\n },\n isFile(file: string): boolean {\n const res = fileSystemLookup(file);\n return res.exists && res.type === 'f';\n },\n pathExists(file: string): boolean {\n return fileSystemLookup(file).exists;\n },\n packageFilter(pkg) {\n // set the pkg.main to the first available field in context.mainFields\n for (const field of context.mainFields) {\n if (\n pkg[field] &&\n // object-inspect uses browser: {} in package.json\n typeof pkg[field] === 'string'\n ) {\n return {\n ...pkg,\n main: pkg[field],\n };\n }\n }\n return pkg;\n },\n // Used to ensure files trace to packages instead of node_modules in expo/expo. This is how Metro works and\n // the app doesn't finish without it.\n preserveSymlinks,\n readPackageSync(readFileSync, pkgFile) {\n return context.getPackage(pkgFile) ?? JSON.parse(fs.readFileSync(pkgFile, 'utf8'));\n },\n includeCoreModules: isServer,\n\n pathFilter:\n // Disable `browser` field for server environments.\n isServer\n ? undefined\n : // Enable `browser` field support\n (pkg: any, _resolvedPath: string, relativePathIn: string): string => {\n let relativePath = relativePathIn;\n if (relativePath[0] !== '.') {\n relativePath = `./${relativePath}`;\n }\n\n const replacements = pkg.browser;\n if (replacements === undefined) {\n return '';\n }\n\n // TODO: Probably use a better extension matching system here.\n // This was added for `uuid/v4` -> `./lib/rng` -> `./lib/rng-browser.js`\n const mappedPath = replacements[relativePath] ?? replacements[relativePath + '.js'];\n if (mappedPath === false) {\n throw new ShimModuleError();\n }\n return mappedPath;\n },\n });\n } catch (error: any) {\n if (error instanceof ShimModuleError) {\n return {\n type: 'empty',\n };\n }\n\n if ('code' in error && error.code === 'MODULE_NOT_FOUND') {\n if (isNodeExternal(moduleName)) {\n // In this case, mock the file to use an empty module.\n return {\n type: 'empty',\n };\n }\n\n debug({ moduleName, platform, conditions, isServer, preserveSymlinks }, context);\n\n throw new FailedToResolvePathError(\n 'The module could not be resolved because no file or module matched the pattern:\\n' +\n ` ${formatFileCandidates(\n {\n type: 'sourceFile',\n filePathPrefix: moduleName,\n candidateExts: extensions,\n },\n true\n )}\\n\\nFrom:\\n ${context.originModulePath}\\n`\n );\n }\n throw error;\n }\n\n if (context.sourceExts.some((ext) => fp.endsWith(ext))) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n\n if (isNodeExternal(fp)) {\n if (isServer) {\n return {\n type: 'sourceFile',\n filePath: fp,\n };\n }\n // NOTE: This shouldn't happen, the module should throw.\n // Mock non-server built-in modules to empty.\n return {\n type: 'empty',\n };\n }\n\n // NOTE: platform extensions may not be supported on assets.\n\n if (platform === 'web') {\n // Skip multi-resolution on web/server bundles. Only consideration here is that\n // we may still need it in case the only image is a multi-resolution image.\n return {\n type: 'assetFiles',\n filePaths: [fp],\n };\n }\n\n const dirPath = path.dirname(fp);\n const extension = path.extname(fp);\n const basename = path.basename(fp, extension);\n return {\n type: 'assetFiles',\n // Support multi-resolution asset extensions...\n filePaths: context.resolveAsset(dirPath, basename, extension) ?? [fp],\n };\n }\n\n return fastResolve;\n}\n"],"names":["FailedToResolvePathError","createFastResolver","Error","candidates","ShimModuleError","debug","require","realpathFS","process","platform","fs","realpathSync","native","x","realpathErr","code","preserveSymlinks","blockList","cachedExtensions","Map","getAdjustedExtensions","metroSourceExtensions","isNative","key","JSON","stringify","has","get","output","nextOutput","forEach","ext","push","Array","from","Set","map","set","fastResolve","context","moduleName","environment","customResolverOptions","isServer","isServerEnvironment","extensions","sourceExts","preferNativePlatform","fp","conditions","unstable_enablePackageExports","isESMImport","unstable_conditionNames","unstable_conditionsByPlatform","fileSystemLookup","unstable_fileSystemLookup","jestResolver","enablePackageExports","basedir","path","dirname","originModulePath","moduleDirectory","nodeModulesPaths","length","undefined","file","metroRealPath","res","exists","realPath","isDirectory","type","isFile","pathExists","packageFilter","pkg","field","mainFields","main","readPackageSync","readFileSync","pkgFile","getPackage","parse","includeCoreModules","pathFilter","_resolvedPath","relativePathIn","relativePath","replacements","browser","mappedPath","error","isNodeExternal","formatFileCandidates","filePathPrefix","candidateExts","some","endsWith","filePath","filePaths","dirPath","extension","extname","basename","resolveAsset"],"mappings":"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"}
|
|
@@ -13,10 +13,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "default", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: ()
|
|
16
|
+
get: function() {
|
|
17
|
+
return _default;
|
|
18
|
+
}
|
|
17
19
|
});
|
|
18
20
|
function _assert() {
|
|
19
|
-
const data = /*#__PURE__*/
|
|
21
|
+
const data = /*#__PURE__*/ _interop_require_default(require("assert"));
|
|
20
22
|
_assert = function() {
|
|
21
23
|
return data;
|
|
22
24
|
};
|
|
@@ -36,14 +38,14 @@ function _resolve() {
|
|
|
36
38
|
};
|
|
37
39
|
return data;
|
|
38
40
|
}
|
|
39
|
-
function
|
|
40
|
-
const data = /*#__PURE__*/
|
|
41
|
-
|
|
41
|
+
function _resolveexports() {
|
|
42
|
+
const data = /*#__PURE__*/ _interop_require_wildcard(require("resolve.exports"));
|
|
43
|
+
_resolveexports = function() {
|
|
42
44
|
return data;
|
|
43
45
|
};
|
|
44
46
|
return data;
|
|
45
47
|
}
|
|
46
|
-
function
|
|
48
|
+
function _interop_require_default(obj) {
|
|
47
49
|
return obj && obj.__esModule ? obj : {
|
|
48
50
|
default: obj
|
|
49
51
|
};
|
|
@@ -56,7 +58,7 @@ function _getRequireWildcardCache(nodeInterop) {
|
|
|
56
58
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
57
59
|
})(nodeInterop);
|
|
58
60
|
}
|
|
59
|
-
function
|
|
61
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
60
62
|
if (!nodeInterop && obj && obj.__esModule) {
|
|
61
63
|
return obj;
|
|
62
64
|
}
|
|
@@ -69,7 +71,9 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
69
71
|
if (cache && cache.has(obj)) {
|
|
70
72
|
return cache.get(obj);
|
|
71
73
|
}
|
|
72
|
-
var newObj = {
|
|
74
|
+
var newObj = {
|
|
75
|
+
__proto__: null
|
|
76
|
+
};
|
|
73
77
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
74
78
|
for(var key in obj){
|
|
75
79
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -87,7 +91,7 @@ function _interopRequireWildcard(obj, nodeInterop) {
|
|
|
87
91
|
}
|
|
88
92
|
return newObj;
|
|
89
93
|
}
|
|
90
|
-
const defaultResolver = (path, { enablePackageExports
|
|
94
|
+
const defaultResolver = (path, { enablePackageExports, blockList = [], ...options })=>{
|
|
91
95
|
// @ts-expect-error
|
|
92
96
|
const resolveOptions = {
|
|
93
97
|
...options,
|
|
@@ -109,22 +113,22 @@ const _default = defaultResolver;
|
|
|
109
113
|
if (shouldIgnoreRequestForExports(path)) {
|
|
110
114
|
return path;
|
|
111
115
|
}
|
|
112
|
-
const segments = path.split(
|
|
116
|
+
const segments = path.split('/');
|
|
113
117
|
let moduleName = segments.shift();
|
|
114
118
|
if (!moduleName) {
|
|
115
119
|
return path;
|
|
116
120
|
}
|
|
117
|
-
if (moduleName.startsWith(
|
|
121
|
+
if (moduleName.startsWith('@')) {
|
|
118
122
|
moduleName = `${moduleName}/${segments.shift()}`;
|
|
119
123
|
}
|
|
120
124
|
// self-reference
|
|
121
125
|
const closestPackageJson = findClosestPackageJson(options.basedir, options);
|
|
122
126
|
if (closestPackageJson) {
|
|
123
127
|
const pkg = options.readPackageSync(options.readFileSync, closestPackageJson);
|
|
124
|
-
(0, _assert().default)(pkg,
|
|
128
|
+
(0, _assert().default)(pkg, 'package.json should be read by `readPackageSync`');
|
|
125
129
|
// Added support for the package.json "imports" field (#-prefixed paths)
|
|
126
|
-
if (path.startsWith(
|
|
127
|
-
const resolved =
|
|
130
|
+
if (path.startsWith('#')) {
|
|
131
|
+
const resolved = _resolveexports().imports(pkg, path, createResolveOptions(options.conditions));
|
|
128
132
|
if (resolved) {
|
|
129
133
|
// TODO: Should we attempt to resolve every path in the array?
|
|
130
134
|
return (0, _path().resolve)((0, _path().dirname)(closestPackageJson), resolved[0]);
|
|
@@ -133,16 +137,16 @@ const _default = defaultResolver;
|
|
|
133
137
|
return path;
|
|
134
138
|
}
|
|
135
139
|
if (pkg.name === moduleName) {
|
|
136
|
-
const
|
|
137
|
-
if (
|
|
138
|
-
return (0, _path().resolve)((0, _path().dirname)(closestPackageJson),
|
|
140
|
+
const resolved = _resolveexports().exports(pkg, segments.join('/') || '.', createResolveOptions(options.conditions));
|
|
141
|
+
if (resolved) {
|
|
142
|
+
return (0, _path().resolve)((0, _path().dirname)(closestPackageJson), resolved[0]);
|
|
139
143
|
}
|
|
140
144
|
if (pkg.exports) {
|
|
141
145
|
throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
|
|
142
146
|
}
|
|
143
147
|
}
|
|
144
148
|
}
|
|
145
|
-
let packageJsonPath =
|
|
149
|
+
let packageJsonPath = '';
|
|
146
150
|
try {
|
|
147
151
|
packageJsonPath = (0, _resolve().sync)(`${moduleName}/package.json`, options);
|
|
148
152
|
} catch {
|
|
@@ -151,13 +155,13 @@ const _default = defaultResolver;
|
|
|
151
155
|
if (!packageJsonPath) {
|
|
152
156
|
return path;
|
|
153
157
|
}
|
|
154
|
-
const
|
|
155
|
-
(0, _assert().default)(
|
|
156
|
-
const
|
|
157
|
-
if (
|
|
158
|
-
return (0, _path().resolve)((0, _path().dirname)(packageJsonPath),
|
|
158
|
+
const pkg = options.readPackageSync(options.readFileSync, packageJsonPath);
|
|
159
|
+
(0, _assert().default)(pkg, 'package.json should be read by `readPackageSync`');
|
|
160
|
+
const resolved = _resolveexports().exports(pkg, segments.join('/') || '.', createResolveOptions(options.conditions));
|
|
161
|
+
if (resolved) {
|
|
162
|
+
return (0, _path().resolve)((0, _path().dirname)(packageJsonPath), resolved[0]);
|
|
159
163
|
}
|
|
160
|
-
if (
|
|
164
|
+
if (pkg.exports) {
|
|
161
165
|
throw new Error("`exports` exists, but no results - this is a bug in Expo CLI's Metro resolver. Please report an issue");
|
|
162
166
|
}
|
|
163
167
|
return path;
|
|
@@ -172,16 +176,16 @@ function createResolveOptions(conditions) {
|
|
|
172
176
|
};
|
|
173
177
|
}
|
|
174
178
|
// if it's a relative import or an absolute path, imports/exports are ignored
|
|
175
|
-
const shouldIgnoreRequestForExports = (path)=>path.startsWith(
|
|
179
|
+
const shouldIgnoreRequestForExports = (path)=>path.startsWith('.') || (0, _path().isAbsolute)(path);
|
|
176
180
|
// adapted from
|
|
177
181
|
// https://github.com/lukeed/escalade/blob/2477005062cdbd8407afc90d3f48f4930354252b/src/sync.js
|
|
178
182
|
function findClosestPackageJson(start, options) {
|
|
179
|
-
let dir = (0, _path().resolve)(
|
|
183
|
+
let dir = (0, _path().resolve)('.', start);
|
|
180
184
|
if (!options.isDirectory(dir)) {
|
|
181
185
|
dir = (0, _path().dirname)(dir);
|
|
182
186
|
}
|
|
183
187
|
while(true){
|
|
184
|
-
const pkgJsonFile = (0, _path().resolve)(dir,
|
|
188
|
+
const pkgJsonFile = (0, _path().resolve)(dir, './package.json');
|
|
185
189
|
const hasPackageJson = options.pathExists(pkgJsonFile);
|
|
186
190
|
if (hasPackageJson) {
|
|
187
191
|
return pkgJsonFile;
|