@depup/expo__cli 55.0.16-depup.0
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/README.md +55 -0
- package/add-module.js +8 -0
- package/build/bin/cli +278 -0
- package/build/bin/cli.map +1 -0
- package/build/metro-require/require.js +608 -0
- package/build/src/api/endpoint.js +39 -0
- package/build/src/api/endpoint.js.map +1 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js +23 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -0
- package/build/src/api/getExpoSchema.js +97 -0
- package/build/src/api/getExpoSchema.js.map +1 -0
- package/build/src/api/getNativeModuleVersions.js +37 -0
- package/build/src/api/getNativeModuleVersions.js.map +1 -0
- package/build/src/api/getProjectDevelopmentCertificate.js +26 -0
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -0
- package/build/src/api/getVersions.js +29 -0
- package/build/src/api/getVersions.js.map +1 -0
- package/build/src/api/graphql/client.js +204 -0
- package/build/src/api/graphql/client.js.map +1 -0
- package/build/src/api/graphql/queries/AppQuery.js +40 -0
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -0
- package/build/src/api/graphql/queries/UserQuery.js +63 -0
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -0
- package/build/src/api/rest/cache/FileSystemResponseCache.js +184 -0
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -0
- package/build/src/api/rest/cache/ResponseCache.js +116 -0
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js +76 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -0
- package/build/src/api/rest/client.js +168 -0
- package/build/src/api/rest/client.js.map +1 -0
- package/build/src/api/rest/client.types.js +6 -0
- package/build/src/api/rest/client.types.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +32 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithOffline.js +26 -0
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithProgress.js +108 -0
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithUserAgent.js +34 -0
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -0
- package/build/src/api/settings.js +33 -0
- package/build/src/api/settings.js.map +1 -0
- package/build/src/api/updateDevelopmentSession.js +100 -0
- package/build/src/api/updateDevelopmentSession.js.map +1 -0
- package/build/src/api/user/UserSettings.js +183 -0
- package/build/src/api/user/UserSettings.js.map +1 -0
- package/build/src/api/user/actions.js +167 -0
- package/build/src/api/user/actions.js.map +1 -0
- package/build/src/api/user/expoSsoLauncher.js +149 -0
- package/build/src/api/user/expoSsoLauncher.js.map +1 -0
- package/build/src/api/user/otp.js +177 -0
- package/build/src/api/user/otp.js.map +1 -0
- package/build/src/api/user/user.js +154 -0
- package/build/src/api/user/user.js.map +1 -0
- package/build/src/config/configAsync.js +180 -0
- package/build/src/config/configAsync.js.map +1 -0
- package/build/src/config/index.js +101 -0
- package/build/src/config/index.js.map +1 -0
- package/build/src/customize/customizeAsync.js +57 -0
- package/build/src/customize/customizeAsync.js.map +1 -0
- package/build/src/customize/generate.js +94 -0
- package/build/src/customize/generate.js.map +1 -0
- package/build/src/customize/index.js +51 -0
- package/build/src/customize/index.js.map +1 -0
- package/build/src/customize/resolveOptions.js +23 -0
- package/build/src/customize/resolveOptions.js.map +1 -0
- package/build/src/customize/templates.js +189 -0
- package/build/src/customize/templates.js.map +1 -0
- package/build/src/customize/typescript.js +81 -0
- package/build/src/customize/typescript.js.map +1 -0
- package/build/src/events/builder.js +6 -0
- package/build/src/events/builder.js.map +1 -0
- package/build/src/events/index.js +132 -0
- package/build/src/events/index.js.map +1 -0
- package/build/src/events/stream.js +303 -0
- package/build/src/events/stream.js.map +1 -0
- package/build/src/events/types.js +6 -0
- package/build/src/events/types.js.map +1 -0
- package/build/src/expoUpdatesExports.js +28 -0
- package/build/src/expoUpdatesExports.js.map +1 -0
- package/build/src/export/createMetadataJson.js +55 -0
- package/build/src/export/createMetadataJson.js.map +1 -0
- package/build/src/export/embed/exportEager.js +33 -0
- package/build/src/export/embed/exportEager.js.map +1 -0
- package/build/src/export/embed/exportEmbedAsync.js +457 -0
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -0
- package/build/src/export/embed/exportServer.js +353 -0
- package/build/src/export/embed/exportServer.js.map +1 -0
- package/build/src/export/embed/index.js +161 -0
- package/build/src/export/embed/index.js.map +1 -0
- package/build/src/export/embed/resolveOptions.js +159 -0
- package/build/src/export/embed/resolveOptions.js.map +1 -0
- package/build/src/export/embed/xcodeCompilerLogger.js +148 -0
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -0
- package/build/src/export/exportApp.js +387 -0
- package/build/src/export/exportApp.js.map +1 -0
- package/build/src/export/exportAssets.js +245 -0
- package/build/src/export/exportAssets.js.map +1 -0
- package/build/src/export/exportAsync.js +103 -0
- package/build/src/export/exportAsync.js.map +1 -0
- package/build/src/export/exportDomComponents.js +185 -0
- package/build/src/export/exportDomComponents.js.map +1 -0
- package/build/src/export/exportHermes.js +251 -0
- package/build/src/export/exportHermes.js.map +1 -0
- package/build/src/export/exportStaticAsync.js +623 -0
- package/build/src/export/exportStaticAsync.js.map +1 -0
- package/build/src/export/favicon.js +138 -0
- package/build/src/export/favicon.js.map +1 -0
- package/build/src/export/getPublicExpoManifest.js +39 -0
- package/build/src/export/getPublicExpoManifest.js.map +1 -0
- package/build/src/export/getResolvedLocales.js +52 -0
- package/build/src/export/getResolvedLocales.js.map +1 -0
- package/build/src/export/html.js +33 -0
- package/build/src/export/html.js.map +1 -0
- package/build/src/export/index.js +146 -0
- package/build/src/export/index.js.map +1 -0
- package/build/src/export/metroAssetLocalPath.js +130 -0
- package/build/src/export/metroAssetLocalPath.js.map +1 -0
- package/build/src/export/persistMetroAssets.js +269 -0
- package/build/src/export/persistMetroAssets.js.map +1 -0
- package/build/src/export/publicFolder.js +61 -0
- package/build/src/export/publicFolder.js.map +1 -0
- package/build/src/export/resolveOptions.js +92 -0
- package/build/src/export/resolveOptions.js.map +1 -0
- package/build/src/export/saveAssets.js +273 -0
- package/build/src/export/saveAssets.js.map +1 -0
- package/build/src/export/web/exportWebAsync.js +57 -0
- package/build/src/export/web/exportWebAsync.js.map +1 -0
- package/build/src/export/web/index.js +92 -0
- package/build/src/export/web/index.js.map +1 -0
- package/build/src/export/web/resolveOptions.js +18 -0
- package/build/src/export/web/resolveOptions.js.map +1 -0
- package/build/src/export/writeContents.js +19 -0
- package/build/src/export/writeContents.js.map +1 -0
- package/build/src/install/applyPlugins.js +81 -0
- package/build/src/install/applyPlugins.js.map +1 -0
- package/build/src/install/checkPackages.js +157 -0
- package/build/src/install/checkPackages.js.map +1 -0
- package/build/src/install/fixPackages.js +111 -0
- package/build/src/install/fixPackages.js.map +1 -0
- package/build/src/install/index.js +64 -0
- package/build/src/install/index.js.map +1 -0
- package/build/src/install/installAsync.js +203 -0
- package/build/src/install/installAsync.js.map +1 -0
- package/build/src/install/installExpoPackage.js +124 -0
- package/build/src/install/installExpoPackage.js.map +1 -0
- package/build/src/install/resolveOptions.js +65 -0
- package/build/src/install/resolveOptions.js.map +1 -0
- package/build/src/install/utils/autoAddConfigPlugins.js +90 -0
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
- package/build/src/install/utils/checkPackagesCompatibility.js +66 -0
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -0
- package/build/src/install/utils/parsePackageSpecifier.js +24 -0
- package/build/src/install/utils/parsePackageSpecifier.js.map +1 -0
- package/build/src/lint/ESlintPrerequisite.js +163 -0
- package/build/src/lint/ESlintPrerequisite.js.map +1 -0
- package/build/src/lint/index.js +68 -0
- package/build/src/lint/index.js.map +1 -0
- package/build/src/lint/lintAsync.js +183 -0
- package/build/src/lint/lintAsync.js.map +1 -0
- package/build/src/lint/resolveOptions.js +115 -0
- package/build/src/lint/resolveOptions.js.map +1 -0
- package/build/src/log.js +106 -0
- package/build/src/log.js.map +1 -0
- package/build/src/login/index.js +92 -0
- package/build/src/login/index.js.map +1 -0
- package/build/src/logout/index.js +70 -0
- package/build/src/logout/index.js.map +1 -0
- package/build/src/prebuild/clearNativeFolder.js +202 -0
- package/build/src/prebuild/clearNativeFolder.js.map +1 -0
- package/build/src/prebuild/configureProjectAsync.js +106 -0
- package/build/src/prebuild/configureProjectAsync.js.map +1 -0
- package/build/src/prebuild/copyTemplateFiles.js +95 -0
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
- package/build/src/prebuild/ensureConfigAsync.js +32 -0
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
- package/build/src/prebuild/index.js +122 -0
- package/build/src/prebuild/index.js.map +1 -0
- package/build/src/prebuild/prebuildAsync.js +192 -0
- package/build/src/prebuild/prebuildAsync.js.map +1 -0
- package/build/src/prebuild/renameTemplateAppName.js +135 -0
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
- package/build/src/prebuild/resolveLocalTemplate.js +72 -0
- package/build/src/prebuild/resolveLocalTemplate.js.map +1 -0
- package/build/src/prebuild/resolveOptions.js +222 -0
- package/build/src/prebuild/resolveOptions.js.map +1 -0
- package/build/src/prebuild/resolveTemplate.js +216 -0
- package/build/src/prebuild/resolveTemplate.js.map +1 -0
- package/build/src/prebuild/updateFromTemplate.js +148 -0
- package/build/src/prebuild/updateFromTemplate.js.map +1 -0
- package/build/src/prebuild/updatePackageJson.js +305 -0
- package/build/src/prebuild/updatePackageJson.js.map +1 -0
- package/build/src/prebuild/validateTemplatePlatforms.js +85 -0
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -0
- package/build/src/register/index.js +70 -0
- package/build/src/register/index.js.map +1 -0
- package/build/src/register/registerAsync.js +39 -0
- package/build/src/register/registerAsync.js.map +1 -0
- package/build/src/run/android/index.js +139 -0
- package/build/src/run/android/index.js.map +1 -0
- package/build/src/run/android/resolveDevice.js +28 -0
- package/build/src/run/android/resolveDevice.js.map +1 -0
- package/build/src/run/android/resolveGradlePropsAsync.js +82 -0
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
- package/build/src/run/android/resolveInstallApkName.js +67 -0
- package/build/src/run/android/resolveInstallApkName.js.map +1 -0
- package/build/src/run/android/resolveLaunchProps.js +44 -0
- package/build/src/run/android/resolveLaunchProps.js.map +1 -0
- package/build/src/run/android/resolveOptions.js +43 -0
- package/build/src/run/android/resolveOptions.js.map +1 -0
- package/build/src/run/android/runAndroidAsync.js +157 -0
- package/build/src/run/android/runAndroidAsync.js.map +1 -0
- package/build/src/run/ensureNativeProject.js +53 -0
- package/build/src/run/ensureNativeProject.js.map +1 -0
- package/build/src/run/hints.js +46 -0
- package/build/src/run/hints.js.map +1 -0
- package/build/src/run/index.js +124 -0
- package/build/src/run/index.js.map +1 -0
- package/build/src/run/ios/XcodeBuild.js +382 -0
- package/build/src/run/ios/XcodeBuild.js.map +1 -0
- package/build/src/run/ios/XcodeBuild.types.js +6 -0
- package/build/src/run/ios/XcodeBuild.types.js.map +1 -0
- package/build/src/run/ios/appleDevice/AppleDevice.js +316 -0
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -0
- package/build/src/run/ios/appleDevice/ClientManager.js +207 -0
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/AFCClient.js +248 -0
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +149 -0
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +113 -0
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +186 -0
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +133 -0
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +38 -0
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +146 -0
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +153 -0
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +365 -0
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +167 -0
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +153 -0
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +111 -0
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +100 -0
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -0
- package/build/src/run/ios/codeSigning/Security.js +116 -0
- package/build/src/run/ios/codeSigning/Security.js.map +1 -0
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +108 -0
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -0
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +165 -0
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -0
- package/build/src/run/ios/codeSigning/settings.js +27 -0
- package/build/src/run/ios/codeSigning/settings.js.map +1 -0
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +67 -0
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -0
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +103 -0
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -0
- package/build/src/run/ios/index.js +137 -0
- package/build/src/run/ios/index.js.map +1 -0
- package/build/src/run/ios/launchApp.js +142 -0
- package/build/src/run/ios/launchApp.js.map +1 -0
- package/build/src/run/ios/options/appleDestinations.js +126 -0
- package/build/src/run/ios/options/appleDestinations.js.map +1 -0
- package/build/src/run/ios/options/promptDevice.js +64 -0
- package/build/src/run/ios/options/promptDevice.js.map +1 -0
- package/build/src/run/ios/options/resolveDevice.js +151 -0
- package/build/src/run/ios/options/resolveDevice.js.map +1 -0
- package/build/src/run/ios/options/resolveNativeScheme.js +147 -0
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -0
- package/build/src/run/ios/options/resolveOptions.js +66 -0
- package/build/src/run/ios/options/resolveOptions.js.map +1 -0
- package/build/src/run/ios/options/resolveXcodeProject.js +50 -0
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -0
- package/build/src/run/ios/runIosAsync.js +255 -0
- package/build/src/run/ios/runIosAsync.js.map +1 -0
- package/build/src/run/ios/validateExternalBinary.js +113 -0
- package/build/src/run/ios/validateExternalBinary.js.map +1 -0
- package/build/src/run/resolveBundlerProps.js +38 -0
- package/build/src/run/resolveBundlerProps.js.map +1 -0
- package/build/src/run/startBundler.js +119 -0
- package/build/src/run/startBundler.js.map +1 -0
- package/build/src/serve/index.js +95 -0
- package/build/src/serve/index.js.map +1 -0
- package/build/src/serve/serveAsync.js +227 -0
- package/build/src/serve/serveAsync.js.map +1 -0
- package/build/src/start/detectDevClient.js +53 -0
- package/build/src/start/detectDevClient.js.map +1 -0
- package/build/src/start/doctor/Prerequisite.js +60 -0
- package/build/src/start/doctor/Prerequisite.js.map +1 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js +38 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +144 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +106 -0
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js +239 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +88 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +112 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +192 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js +108 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +165 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/resolvePackages.js +95 -0
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +262 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js +214 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js +33 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +205 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js +144 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +164 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
- package/build/src/start/index.js +151 -0
- package/build/src/start/index.js.map +1 -0
- package/build/src/start/interface/KeyPressHandler.js +126 -0
- package/build/src/start/interface/KeyPressHandler.js.map +1 -0
- package/build/src/start/interface/cliExtensionMenuItemHandler.js +173 -0
- package/build/src/start/interface/cliExtensionMenuItemHandler.js.map +1 -0
- package/build/src/start/interface/commandsTable.js +273 -0
- package/build/src/start/interface/commandsTable.js.map +1 -0
- package/build/src/start/interface/createDevToolsMenuItems.js +159 -0
- package/build/src/start/interface/createDevToolsMenuItems.js.map +1 -0
- package/build/src/start/interface/interactiveActions.js +225 -0
- package/build/src/start/interface/interactiveActions.js.map +1 -0
- package/build/src/start/interface/startInterface.js +261 -0
- package/build/src/start/interface/startInterface.js.map +1 -0
- package/build/src/start/platforms/AppIdResolver.js +55 -0
- package/build/src/start/platforms/AppIdResolver.js.map +1 -0
- package/build/src/start/platforms/DeviceManager.js +74 -0
- package/build/src/start/platforms/DeviceManager.js.map +1 -0
- package/build/src/start/platforms/ExpoGoInstaller.js +167 -0
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
- package/build/src/start/platforms/PlatformManager.js +149 -0
- package/build/src/start/platforms/PlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/ADBServer.js +139 -0
- package/build/src/start/platforms/android/ADBServer.js.map +1 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +54 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js +216 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js +80 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/AndroidSdk.js +79 -0
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -0
- package/build/src/start/platforms/android/activateWindow.js +117 -0
- package/build/src/start/platforms/android/activateWindow.js.map +1 -0
- package/build/src/start/platforms/android/adb.js +367 -0
- package/build/src/start/platforms/android/adb.js.map +1 -0
- package/build/src/start/platforms/android/adbReverse.js +129 -0
- package/build/src/start/platforms/android/adbReverse.js.map +1 -0
- package/build/src/start/platforms/android/emulator.js +185 -0
- package/build/src/start/platforms/android/emulator.js.map +1 -0
- package/build/src/start/platforms/android/getDevices.js +39 -0
- package/build/src/start/platforms/android/getDevices.js.map +1 -0
- package/build/src/start/platforms/android/gradle.js +125 -0
- package/build/src/start/platforms/android/gradle.js.map +1 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js +82 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +76 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js +283 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js +34 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js +22 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
- package/build/src/start/platforms/ios/devicectl.js +398 -0
- package/build/src/start/platforms/ios/devicectl.js.map +1 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +122 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
- package/build/src/start/platforms/ios/getBestSimulator.js +148 -0
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js +72 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
- package/build/src/start/platforms/ios/simctl.js +386 -0
- package/build/src/start/platforms/ios/simctl.js.map +1 -0
- package/build/src/start/platforms/ios/simctlLogging.js +276 -0
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -0
- package/build/src/start/platforms/ios/xcrun.js +74 -0
- package/build/src/start/platforms/ios/xcrun.js.map +1 -0
- package/build/src/start/project/devices.js +92 -0
- package/build/src/start/project/devices.js.map +1 -0
- package/build/src/start/project/dotExpo.js +109 -0
- package/build/src/start/project/dotExpo.js.map +1 -0
- package/build/src/start/project/settings.js +17 -0
- package/build/src/start/project/settings.js.map +1 -0
- package/build/src/start/resolveOptions.js +173 -0
- package/build/src/start/resolveOptions.js.map +1 -0
- package/build/src/start/server/AsyncNgrok.js +269 -0
- package/build/src/start/server/AsyncNgrok.js.map +1 -0
- package/build/src/start/server/AsyncWsTunnel.js +156 -0
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -0
- package/build/src/start/server/Bonjour.js +103 -0
- package/build/src/start/server/Bonjour.js.map +1 -0
- package/build/src/start/server/BundlerDevServer.js +410 -0
- package/build/src/start/server/BundlerDevServer.js.map +1 -0
- package/build/src/start/server/DevServerManager.js +259 -0
- package/build/src/start/server/DevServerManager.js.map +1 -0
- package/build/src/start/server/DevToolsPlugin.js +60 -0
- package/build/src/start/server/DevToolsPlugin.js.map +1 -0
- package/build/src/start/server/DevToolsPlugin.schema.js +79 -0
- package/build/src/start/server/DevToolsPlugin.schema.js.map +1 -0
- package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js +119 -0
- package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js.map +1 -0
- package/build/src/start/server/DevToolsPluginCliExtensionResults.js +61 -0
- package/build/src/start/server/DevToolsPluginCliExtensionResults.js.map +1 -0
- package/build/src/start/server/DevToolsPluginManager.js +60 -0
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -0
- package/build/src/start/server/DevelopmentSession.js +132 -0
- package/build/src/start/server/DevelopmentSession.js.map +1 -0
- package/build/src/start/server/MCP.js +106 -0
- package/build/src/start/server/MCP.js.map +1 -0
- package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js +86 -0
- package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js.map +1 -0
- package/build/src/start/server/UrlCreator.js +219 -0
- package/build/src/start/server/UrlCreator.js.map +1 -0
- package/build/src/start/server/createMCPDevToolsExtensionSchema.js +67 -0
- package/build/src/start/server/createMCPDevToolsExtensionSchema.js.map +1 -0
- package/build/src/start/server/getStaticRenderFunctions.js +171 -0
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -0
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +39 -0
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js +1654 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js +438 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.js +180 -0
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
- package/build/src/start/server/metro/createExpoAutolinkingResolver.js +123 -0
- package/build/src/start/server/metro/createExpoAutolinkingResolver.js.map +1 -0
- package/build/src/start/server/metro/createExpoFallbackResolver.js +143 -0
- package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -0
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +501 -0
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js +229 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -0
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +49 -0
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
- package/build/src/start/server/metro/debugging/attachAtlas.js +103 -0
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +127 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -0
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +58 -0
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
- package/build/src/start/server/metro/debugging/getDebuggerType.js +20 -0
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +44 -0
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +30 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +27 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +33 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +56 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +49 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
- package/build/src/start/server/metro/debugging/types.js +6 -0
- package/build/src/start/server/metro/debugging/types.js.map +1 -0
- package/build/src/start/server/metro/dev-server/compression.js +45 -0
- package/build/src/start/server/metro/dev-server/compression.js.map +1 -0
- package/build/src/start/server/metro/dev-server/createEventSocket.js +103 -0
- package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -0
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +129 -0
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -0
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +82 -0
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +27 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +43 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -0
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js +41 -0
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -0
- package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js +17 -0
- package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js.map +1 -0
- package/build/src/start/server/metro/externals.js +89 -0
- package/build/src/start/server/metro/externals.js.map +1 -0
- package/build/src/start/server/metro/fetchRouterManifest.js +83 -0
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -0
- package/build/src/start/server/metro/getCssModulesFromBundler.js +114 -0
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -0
- package/build/src/start/server/metro/instantiateMetro.js +492 -0
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
- package/build/src/start/server/metro/log-box/LogBoxLog.js +211 -0
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -0
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +124 -0
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -0
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +46 -0
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -0
- package/build/src/start/server/metro/metroErrorInterface.js +403 -0
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -0
- package/build/src/start/server/metro/metroErrors.js +27 -0
- package/build/src/start/server/metro/metroErrors.js.map +1 -0
- package/build/src/start/server/metro/metroVirtualModules.js +92 -0
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +62 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -0
- package/build/src/start/server/metro/resolveLoader.js +68 -0
- package/build/src/start/server/metro/resolveLoader.js.map +1 -0
- package/build/src/start/server/metro/router.js +218 -0
- package/build/src/start/server/metro/router.js.map +1 -0
- package/build/src/start/server/metro/runServer-fork.js +179 -0
- package/build/src/start/server/metro/runServer-fork.js.map +1 -0
- package/build/src/start/server/metro/serializeHtml.js +138 -0
- package/build/src/start/server/metro/serializeHtml.js.map +1 -0
- package/build/src/start/server/metro/symbolicate.js +6 -0
- package/build/src/start/server/metro/symbolicate.js.map +1 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +103 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -0
- package/build/src/start/server/metro/withMetroErrorReportingResolver.js +266 -0
- package/build/src/start/server/metro/withMetroErrorReportingResolver.js.map +1 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js +748 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -0
- package/build/src/start/server/metro/withMetroResolvers.js +110 -0
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -0
- package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js +63 -0
- package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js.map +1 -0
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +32 -0
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/CorsMiddleware.js +92 -0
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/CreateFileMiddleware.js +166 -0
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +78 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +138 -0
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +288 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js +121 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/FaviconMiddleware.js +52 -0
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +29 -0
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +116 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js +362 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +103 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +85 -0
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/inspector/CdpClient.js +81 -0
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -0
- package/build/src/start/server/middleware/inspector/JsInspector.js +123 -0
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -0
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +91 -0
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +30 -0
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -0
- package/build/src/start/server/middleware/metroOptions.js +367 -0
- package/build/src/start/server/middleware/metroOptions.js.map +1 -0
- package/build/src/start/server/middleware/mutations.js +33 -0
- package/build/src/start/server/middleware/mutations.js.map +1 -0
- package/build/src/start/server/middleware/resolveAssets.js +154 -0
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
- package/build/src/start/server/middleware/resolvePlatform.js +71 -0
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +38 -0
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -0
- package/build/src/start/server/middleware/server.types.js +6 -0
- package/build/src/start/server/middleware/server.types.js.map +1 -0
- package/build/src/start/server/openPlatforms.js +33 -0
- package/build/src/start/server/openPlatforms.js.map +1 -0
- package/build/src/start/server/platformBundlers.js +39 -0
- package/build/src/start/server/platformBundlers.js.map +1 -0
- package/build/src/start/server/serverLogLikeMetro.js +309 -0
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -0
- package/build/src/start/server/type-generation/expo-env.js +51 -0
- package/build/src/start/server/type-generation/expo-env.js.map +1 -0
- package/build/src/start/server/type-generation/routes.js +510 -0
- package/build/src/start/server/type-generation/routes.js.map +1 -0
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +79 -0
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -0
- package/build/src/start/server/type-generation/tsconfig.js +122 -0
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -0
- package/build/src/start/server/webTemplate.js +111 -0
- package/build/src/start/server/webTemplate.js.map +1 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +316 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
- package/build/src/start/server/webpack/compile.js +101 -0
- package/build/src/start/server/webpack/compile.js.map +1 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js +106 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
- package/build/src/start/server/webpack/resolveFromProject.js +63 -0
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
- package/build/src/start/server/webpack/tls.js +128 -0
- package/build/src/start/server/webpack/tls.js.map +1 -0
- package/build/src/start/startAsync.js +204 -0
- package/build/src/start/startAsync.js.map +1 -0
- package/build/src/types.d.ts +2 -0
- package/build/src/utils/FileNotifier.js +138 -0
- package/build/src/utils/FileNotifier.js.map +1 -0
- package/build/src/utils/ansi.js +22 -0
- package/build/src/utils/ansi.js.map +1 -0
- package/build/src/utils/args.js +141 -0
- package/build/src/utils/args.js.map +1 -0
- package/build/src/utils/array.js +92 -0
- package/build/src/utils/array.js.map +1 -0
- package/build/src/utils/build-cache-providers/helpers.js +61 -0
- package/build/src/utils/build-cache-providers/helpers.js.map +1 -0
- package/build/src/utils/build-cache-providers/index.js +283 -0
- package/build/src/utils/build-cache-providers/index.js.map +1 -0
- package/build/src/utils/cocoapods.js +258 -0
- package/build/src/utils/cocoapods.js.map +1 -0
- package/build/src/utils/codesigning.js +395 -0
- package/build/src/utils/codesigning.js.map +1 -0
- package/build/src/utils/createFileTransform.js +34 -0
- package/build/src/utils/createFileTransform.js.map +1 -0
- package/build/src/utils/createTempPath.js +68 -0
- package/build/src/utils/createTempPath.js.map +1 -0
- package/build/src/utils/delay.js +58 -0
- package/build/src/utils/delay.js.map +1 -0
- package/build/src/utils/dir.js +121 -0
- package/build/src/utils/dir.js.map +1 -0
- package/build/src/utils/downloadAppAsync.js +98 -0
- package/build/src/utils/downloadAppAsync.js.map +1 -0
- package/build/src/utils/downloadExpoGoAsync.js +170 -0
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
- package/build/src/utils/editor.js +527 -0
- package/build/src/utils/editor.js.map +1 -0
- package/build/src/utils/env.js +266 -0
- package/build/src/utils/env.js.map +1 -0
- package/build/src/utils/errors.js +134 -0
- package/build/src/utils/errors.js.map +1 -0
- package/build/src/utils/exit.js +210 -0
- package/build/src/utils/exit.js.map +1 -0
- package/build/src/utils/expoUpdatesCli.js +120 -0
- package/build/src/utils/expoUpdatesCli.js.map +1 -0
- package/build/src/utils/fetch.js +41 -0
- package/build/src/utils/fetch.js.map +1 -0
- package/build/src/utils/filePath.js +42 -0
- package/build/src/utils/filePath.js.map +1 -0
- package/build/src/utils/findUp.js +61 -0
- package/build/src/utils/findUp.js.map +1 -0
- package/build/src/utils/fn.js +44 -0
- package/build/src/utils/fn.js.map +1 -0
- package/build/src/utils/freeport.js +70 -0
- package/build/src/utils/freeport.js.map +1 -0
- package/build/src/utils/getOrPromptApplicationId.js +259 -0
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
- package/build/src/utils/getRunningProcess.js +181 -0
- package/build/src/utils/getRunningProcess.js.map +1 -0
- package/build/src/utils/git.js +132 -0
- package/build/src/utils/git.js.map +1 -0
- package/build/src/utils/glob.js +46 -0
- package/build/src/utils/glob.js.map +1 -0
- package/build/src/utils/interactive.js +17 -0
- package/build/src/utils/interactive.js.map +1 -0
- package/build/src/utils/ip.js +63 -0
- package/build/src/utils/ip.js.map +1 -0
- package/build/src/utils/isModuleSymlinked.js +54 -0
- package/build/src/utils/isModuleSymlinked.js.map +1 -0
- package/build/src/utils/link.js +55 -0
- package/build/src/utils/link.js.map +1 -0
- package/build/src/utils/mergeGitIgnorePaths.js +189 -0
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
- package/build/src/utils/modifyConfigAsync.js +106 -0
- package/build/src/utils/modifyConfigAsync.js.map +1 -0
- package/build/src/utils/modifyConfigPlugins.js +79 -0
- package/build/src/utils/modifyConfigPlugins.js.map +1 -0
- package/build/src/utils/net.js +43 -0
- package/build/src/utils/net.js.map +1 -0
- package/build/src/utils/nodeEnv.js +168 -0
- package/build/src/utils/nodeEnv.js.map +1 -0
- package/build/src/utils/nodeModules.js +52 -0
- package/build/src/utils/nodeModules.js.map +1 -0
- package/build/src/utils/npm.js +222 -0
- package/build/src/utils/npm.js.map +1 -0
- package/build/src/utils/obj.js +59 -0
- package/build/src/utils/obj.js.map +1 -0
- package/build/src/utils/open.js +36 -0
- package/build/src/utils/open.js.map +1 -0
- package/build/src/utils/ora.js +113 -0
- package/build/src/utils/ora.js.map +1 -0
- package/build/src/utils/plist.js +108 -0
- package/build/src/utils/plist.js.map +1 -0
- package/build/src/utils/port.js +196 -0
- package/build/src/utils/port.js.map +1 -0
- package/build/src/utils/profile.js +94 -0
- package/build/src/utils/profile.js.map +1 -0
- package/build/src/utils/progress.js +76 -0
- package/build/src/utils/progress.js.map +1 -0
- package/build/src/utils/prompts.js +151 -0
- package/build/src/utils/prompts.js.map +1 -0
- package/build/src/utils/qr.js +186 -0
- package/build/src/utils/qr.js.map +1 -0
- package/build/src/utils/resolveArgs.js +236 -0
- package/build/src/utils/resolveArgs.js.map +1 -0
- package/build/src/utils/resolveGlobal.js +195 -0
- package/build/src/utils/resolveGlobal.js.map +1 -0
- package/build/src/utils/scheme.js +212 -0
- package/build/src/utils/scheme.js.map +1 -0
- package/build/src/utils/stream.js +31 -0
- package/build/src/utils/stream.js.map +1 -0
- package/build/src/utils/strings.js +33 -0
- package/build/src/utils/strings.js.map +1 -0
- package/build/src/utils/tar.js +168 -0
- package/build/src/utils/tar.js.map +1 -0
- package/build/src/utils/telemetry/Telemetry.js +131 -0
- package/build/src/utils/telemetry/Telemetry.js.map +1 -0
- package/build/src/utils/telemetry/clients/FetchClient.js +91 -0
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -0
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js +86 -0
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -0
- package/build/src/utils/telemetry/clients/flushFetchDetached.js +39 -0
- package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -0
- package/build/src/utils/telemetry/events.js +20 -0
- package/build/src/utils/telemetry/events.js.map +1 -0
- package/build/src/utils/telemetry/index.js +72 -0
- package/build/src/utils/telemetry/index.js.map +1 -0
- package/build/src/utils/telemetry/types.js +6 -0
- package/build/src/utils/telemetry/types.js.map +1 -0
- package/build/src/utils/telemetry/utils/constants.js +23 -0
- package/build/src/utils/telemetry/utils/constants.js.map +1 -0
- package/build/src/utils/telemetry/utils/context.js +115 -0
- package/build/src/utils/telemetry/utils/context.js.map +1 -0
- package/build/src/utils/template.js +48 -0
- package/build/src/utils/template.js.map +1 -0
- package/build/src/utils/terminal.js +15 -0
- package/build/src/utils/terminal.js.map +1 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js +87 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -0
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +84 -0
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -0
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +94 -0
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -0
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +62 -0
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -0
- package/build/src/utils/url.js +92 -0
- package/build/src/utils/url.js.map +1 -0
- package/build/src/utils/validateApplicationId.js +255 -0
- package/build/src/utils/validateApplicationId.js.map +1 -0
- package/build/src/utils/variadic.js +132 -0
- package/build/src/utils/variadic.js.map +1 -0
- package/build/src/whoami/index.js +69 -0
- package/build/src/whoami/index.js.map +1 -0
- package/build/src/whoami/whoamiAsync.js +75 -0
- package/build/src/whoami/whoamiAsync.js.map +1 -0
- package/changes.json +106 -0
- package/internal/unstable-expo-updates-exports.d.ts +31 -0
- package/internal/unstable-expo-updates-exports.js +3 -0
- package/package.json +275 -0
- package/static/loading-page/index.html +363 -0
- package/static/shims/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js +13 -0
- package/static/shims/react-native-web/dist/cjs/exports/BackHandler/index.js +10 -0
- package/static/shims/react-native-web/dist/exports/AppRegistry/AppContainer.js +12 -0
- package/static/shims/react-native-web/dist/exports/BackHandler/index.js +7 -0
- package/static/template/+html.tsx +28 -0
- package/static/template/+native-intent.ts +9 -0
- package/static/template/.eslintrc.js +5 -0
- package/static/template/[...rsc]+api.ts +16 -0
- package/static/template/babel.config.js +6 -0
- package/static/template/eslint.config.js +10 -0
- package/static/template/index.html +36 -0
- package/static/template/metro.config.js +7 -0
- package/static/template/webpack.config.js +7 -0
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright © 2022 650 Industries.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/ "use strict";
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
function _export(target, all) {
|
|
11
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: all[name]
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
_export(exports, {
|
|
17
|
+
IS_METRO_BUNDLE_ERROR_SYMBOL: function() {
|
|
18
|
+
return IS_METRO_BUNDLE_ERROR_SYMBOL;
|
|
19
|
+
},
|
|
20
|
+
attachImportStackToRootMessage: function() {
|
|
21
|
+
return attachImportStackToRootMessage;
|
|
22
|
+
},
|
|
23
|
+
dropStackIfContainsCodeFrame: function() {
|
|
24
|
+
return dropStackIfContainsCodeFrame;
|
|
25
|
+
},
|
|
26
|
+
getErrorOverlayHtmlAsync: function() {
|
|
27
|
+
return getErrorOverlayHtmlAsync;
|
|
28
|
+
},
|
|
29
|
+
getStackAsFormattedLog: function() {
|
|
30
|
+
return getStackAsFormattedLog;
|
|
31
|
+
},
|
|
32
|
+
likelyContainsCodeFrame: function() {
|
|
33
|
+
return likelyContainsCodeFrame;
|
|
34
|
+
},
|
|
35
|
+
logMetroError: function() {
|
|
36
|
+
return logMetroError;
|
|
37
|
+
},
|
|
38
|
+
logMetroErrorAsync: function() {
|
|
39
|
+
return logMetroErrorAsync;
|
|
40
|
+
},
|
|
41
|
+
logMetroErrorWithStack: function() {
|
|
42
|
+
return logMetroErrorWithStack;
|
|
43
|
+
},
|
|
44
|
+
nearestImportStack: function() {
|
|
45
|
+
return nearestImportStack;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
function _paths() {
|
|
49
|
+
const data = require("@expo/config/paths");
|
|
50
|
+
_paths = function() {
|
|
51
|
+
return data;
|
|
52
|
+
};
|
|
53
|
+
return data;
|
|
54
|
+
}
|
|
55
|
+
function _utils() {
|
|
56
|
+
const data = require("@expo/log-box/utils");
|
|
57
|
+
_utils = function() {
|
|
58
|
+
return data;
|
|
59
|
+
};
|
|
60
|
+
return data;
|
|
61
|
+
}
|
|
62
|
+
function _chalk() {
|
|
63
|
+
const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
|
|
64
|
+
_chalk = function() {
|
|
65
|
+
return data;
|
|
66
|
+
};
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
69
|
+
function _nodeutil() {
|
|
70
|
+
const data = require("node:util");
|
|
71
|
+
_nodeutil = function() {
|
|
72
|
+
return data;
|
|
73
|
+
};
|
|
74
|
+
return data;
|
|
75
|
+
}
|
|
76
|
+
function _path() {
|
|
77
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
78
|
+
_path = function() {
|
|
79
|
+
return data;
|
|
80
|
+
};
|
|
81
|
+
return data;
|
|
82
|
+
}
|
|
83
|
+
function _resolvefrom() {
|
|
84
|
+
const data = /*#__PURE__*/ _interop_require_default(require("resolve-from"));
|
|
85
|
+
_resolvefrom = function() {
|
|
86
|
+
return data;
|
|
87
|
+
};
|
|
88
|
+
return data;
|
|
89
|
+
}
|
|
90
|
+
function _stacktraceparser() {
|
|
91
|
+
const data = require("stacktrace-parser");
|
|
92
|
+
_stacktraceparser = function() {
|
|
93
|
+
return data;
|
|
94
|
+
};
|
|
95
|
+
return data;
|
|
96
|
+
}
|
|
97
|
+
function _terminallink() {
|
|
98
|
+
const data = /*#__PURE__*/ _interop_require_default(require("terminal-link"));
|
|
99
|
+
_terminallink = function() {
|
|
100
|
+
return data;
|
|
101
|
+
};
|
|
102
|
+
return data;
|
|
103
|
+
}
|
|
104
|
+
const _LogBoxLog = require("./log-box/LogBoxLog");
|
|
105
|
+
const _formatProjectFilePath = require("./log-box/formatProjectFilePath");
|
|
106
|
+
const _log = require("../../../log");
|
|
107
|
+
const _ansi = require("../../../utils/ansi");
|
|
108
|
+
const _env = require("../../../utils/env");
|
|
109
|
+
const _errors = require("../../../utils/errors");
|
|
110
|
+
const _getStaticRenderFunctions = require("../getStaticRenderFunctions");
|
|
111
|
+
function _interop_require_default(obj) {
|
|
112
|
+
return obj && obj.__esModule ? obj : {
|
|
113
|
+
default: obj
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const isDebug = require('debug').enabled('expo:start:server:metro');
|
|
117
|
+
function fill(width) {
|
|
118
|
+
return Array(width).join(' ');
|
|
119
|
+
}
|
|
120
|
+
function formatPaths(config) {
|
|
121
|
+
const filePath = _chalk().default.reset(config.filePath);
|
|
122
|
+
return _chalk().default.dim('(') + filePath + _chalk().default.dim(`:${[
|
|
123
|
+
config.line,
|
|
124
|
+
config.col
|
|
125
|
+
].filter(Boolean).join(':')})`);
|
|
126
|
+
}
|
|
127
|
+
async function logMetroErrorWithStack(projectRoot, { stack, codeFrame, error }) {
|
|
128
|
+
if (error instanceof _errors.SilentError) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
// process.stdout.write('\u001b[0m'); // Reset attributes
|
|
132
|
+
// process.stdout.write('\u001bc'); // Reset the terminal
|
|
133
|
+
_log.Log.log();
|
|
134
|
+
_log.Log.log(_chalk().default.red('Metro error: ') + error.message);
|
|
135
|
+
_log.Log.log();
|
|
136
|
+
if (error instanceof _errors.CommandError) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
_log.Log.log(getStackAsFormattedLog(projectRoot, {
|
|
140
|
+
stack,
|
|
141
|
+
codeFrame,
|
|
142
|
+
error,
|
|
143
|
+
showCollapsedFrames: true
|
|
144
|
+
}).stack);
|
|
145
|
+
}
|
|
146
|
+
function getStackAsFormattedLog(projectRoot, { stack, codeFrame, error, showCollapsedFrames = _env.env.EXPO_DEBUG }) {
|
|
147
|
+
const logs = [];
|
|
148
|
+
const containsCodeFrame = likelyContainsCodeFrame(error == null ? void 0 : error.message);
|
|
149
|
+
if (containsCodeFrame) {
|
|
150
|
+
// Some transformation errors will have a code frame embedded in the error message
|
|
151
|
+
// from Babel and we should not duplicate it as message is already printed before this call.
|
|
152
|
+
} else if (codeFrame) {
|
|
153
|
+
var _codeFrame_location;
|
|
154
|
+
const maxWarningLineLength = Math.max(800, process.stdout.columns);
|
|
155
|
+
const lineText = codeFrame.content;
|
|
156
|
+
const lines = codeFrame.content.split('\n');
|
|
157
|
+
// ---- index.tsx ------------------------------------------------------
|
|
158
|
+
// 32 | This is example code which will be under the title.
|
|
159
|
+
const title = _path().default.basename(codeFrame.fileName);
|
|
160
|
+
logs.push(_chalk().default.bold`Code: ${title}`);
|
|
161
|
+
const isPreviewTooLong = lines.some((line)=>line.length > maxWarningLineLength);
|
|
162
|
+
const column = (_codeFrame_location = codeFrame.location) == null ? void 0 : _codeFrame_location.column;
|
|
163
|
+
// When the preview is too long, we skip reading the file and attempting to apply
|
|
164
|
+
// code coloring, this is because it can get very slow.
|
|
165
|
+
if (isPreviewTooLong) {
|
|
166
|
+
var _codeFrame_location1, _codeFrame_location2;
|
|
167
|
+
let previewLine = '';
|
|
168
|
+
let cursorLine = '';
|
|
169
|
+
const formattedPath = formatPaths({
|
|
170
|
+
filePath: codeFrame.fileName,
|
|
171
|
+
line: (_codeFrame_location1 = codeFrame.location) == null ? void 0 : _codeFrame_location1.row,
|
|
172
|
+
col: (_codeFrame_location2 = codeFrame.location) == null ? void 0 : _codeFrame_location2.column
|
|
173
|
+
});
|
|
174
|
+
// Create a curtailed preview line like:
|
|
175
|
+
// `...transition:'fade'},k._updatePropsStack=function(){clearImmediate(k._updateImmediate),k._updateImmediate...`
|
|
176
|
+
// If there is no text preview or column number, we can't do anything.
|
|
177
|
+
if (lineText && column != null) {
|
|
178
|
+
var _codeFrame_fileName;
|
|
179
|
+
const rangeWindow = Math.round(Math.max(((_codeFrame_fileName = codeFrame.fileName) == null ? void 0 : _codeFrame_fileName.length) ?? 0, Math.max(80, process.stdout.columns)) / 2);
|
|
180
|
+
let minBounds = Math.max(0, column - rangeWindow);
|
|
181
|
+
const maxBounds = Math.min(minBounds + rangeWindow * 2, lineText.length);
|
|
182
|
+
previewLine = lineText.slice(minBounds, maxBounds);
|
|
183
|
+
// If we splice content off the start, then we should append `...`.
|
|
184
|
+
// This is unlikely to happen since we limit the activation size.
|
|
185
|
+
if (minBounds > 0) {
|
|
186
|
+
// Adjust the min bounds so the cursor is aligned after we add the "..."
|
|
187
|
+
minBounds -= 3;
|
|
188
|
+
previewLine = _chalk().default.dim('...') + previewLine;
|
|
189
|
+
}
|
|
190
|
+
if (maxBounds < lineText.length) {
|
|
191
|
+
previewLine += _chalk().default.dim('...');
|
|
192
|
+
}
|
|
193
|
+
// If the column property could be found, then use that to fix the cursor location which is often broken in regex.
|
|
194
|
+
cursorLine = (column == null ? '' : fill(column) + _chalk().default.reset('^')).slice(minBounds);
|
|
195
|
+
logs.push(formattedPath, '', previewLine, cursorLine, _chalk().default.dim('(error truncated)'));
|
|
196
|
+
}
|
|
197
|
+
} else {
|
|
198
|
+
logs.push(codeFrame.content);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
let isFallback = false;
|
|
202
|
+
if (stack == null ? void 0 : stack.length) {
|
|
203
|
+
const stackProps = stack.map((frame)=>{
|
|
204
|
+
return {
|
|
205
|
+
title: frame.methodName,
|
|
206
|
+
subtitle: (0, _formatProjectFilePath.getStackFormattedLocation)(projectRoot, frame),
|
|
207
|
+
collapse: frame.collapse || isInternalBytecode(frame)
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
const stackLines = [];
|
|
211
|
+
const backupStackLines = [];
|
|
212
|
+
stackProps.forEach((frame)=>{
|
|
213
|
+
const shouldShow = !frame.collapse || showCollapsedFrames;
|
|
214
|
+
const position = _terminallink().default.isSupported ? (0, _terminallink().default)(frame.subtitle, frame.subtitle) : frame.subtitle;
|
|
215
|
+
let lineItem = _chalk().default.gray(` ${frame.title} (${position})`);
|
|
216
|
+
if (frame.collapse) {
|
|
217
|
+
lineItem = _chalk().default.dim(lineItem);
|
|
218
|
+
}
|
|
219
|
+
// Never show the internal module system.
|
|
220
|
+
const isMetroRuntime = /\/metro-runtime\/src\/polyfills\/require\.js/.test(frame.subtitle) || /\/metro-require\/require\.js/.test(frame.subtitle);
|
|
221
|
+
if (!isMetroRuntime) {
|
|
222
|
+
if (shouldShow) {
|
|
223
|
+
stackLines.push(lineItem);
|
|
224
|
+
}
|
|
225
|
+
backupStackLines.push(lineItem);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
logs.push(_chalk().default.bold`Call Stack`);
|
|
229
|
+
if (!backupStackLines.length) {
|
|
230
|
+
logs.push(_chalk().default.gray(' No stack trace available.'));
|
|
231
|
+
} else {
|
|
232
|
+
isFallback = stackLines.length === 0;
|
|
233
|
+
// If there are not stack lines then it means the error likely happened in the node modules, in this case we should fallback to showing all the
|
|
234
|
+
// the stacks to give the user whatever help we can.
|
|
235
|
+
const displayStack = stackLines.length ? stackLines : backupStackLines;
|
|
236
|
+
logs.push(displayStack.join('\n'));
|
|
237
|
+
}
|
|
238
|
+
} else if (error && error.stack) {
|
|
239
|
+
logs.push(_chalk().default.gray(` ${error.stack}`));
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
isFallback,
|
|
243
|
+
stack: logs.join('\n')
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
const IS_METRO_BUNDLE_ERROR_SYMBOL = Symbol('_isMetroBundleError');
|
|
247
|
+
const HAS_LOGGED_SYMBOL = Symbol('_hasLoggedInCLI');
|
|
248
|
+
async function logMetroError(projectRoot, { error }) {
|
|
249
|
+
var _log_symbolicated_stack, _log_symbolicated;
|
|
250
|
+
if (error instanceof _errors.SilentError || error[HAS_LOGGED_SYMBOL]) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
error[HAS_LOGGED_SYMBOL] = true;
|
|
254
|
+
const stack = parseErrorStack(projectRoot, error.stack);
|
|
255
|
+
const log = new _LogBoxLog.LogBoxLog({
|
|
256
|
+
level: 'static',
|
|
257
|
+
message: {
|
|
258
|
+
content: error.message,
|
|
259
|
+
substitutions: []
|
|
260
|
+
},
|
|
261
|
+
isComponentError: false,
|
|
262
|
+
stack,
|
|
263
|
+
category: 'static',
|
|
264
|
+
componentStack: []
|
|
265
|
+
});
|
|
266
|
+
await new Promise((res)=>log.symbolicate('stack', res));
|
|
267
|
+
logMetroErrorWithStack(projectRoot, {
|
|
268
|
+
stack: ((_log_symbolicated = log.symbolicated) == null ? void 0 : (_log_symbolicated_stack = _log_symbolicated.stack) == null ? void 0 : _log_symbolicated_stack.stack) ?? [],
|
|
269
|
+
codeFrame: log.codeFrame,
|
|
270
|
+
error
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
/** @returns the html required to render the static metro error as an SPA. */ function logFromError({ error, projectRoot }) {
|
|
274
|
+
const data = (0, _utils().parseWebBuildErrors)({
|
|
275
|
+
error,
|
|
276
|
+
projectRoot,
|
|
277
|
+
parseErrorStack
|
|
278
|
+
});
|
|
279
|
+
return new _LogBoxLog.LogBoxLog(data);
|
|
280
|
+
}
|
|
281
|
+
async function logMetroErrorAsync({ error, projectRoot }) {
|
|
282
|
+
var _log_symbolicated_stack, _log_symbolicated;
|
|
283
|
+
const log = logFromError({
|
|
284
|
+
projectRoot,
|
|
285
|
+
error
|
|
286
|
+
});
|
|
287
|
+
await new Promise((res)=>log.symbolicate('stack', ()=>res()));
|
|
288
|
+
logMetroErrorWithStack(projectRoot, {
|
|
289
|
+
stack: ((_log_symbolicated = log.symbolicated) == null ? void 0 : (_log_symbolicated_stack = _log_symbolicated.stack) == null ? void 0 : _log_symbolicated_stack.stack) ?? [],
|
|
290
|
+
codeFrame: log.codeFrame,
|
|
291
|
+
error
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
async function getErrorOverlayHtmlAsync({ error, projectRoot, routerRoot }) {
|
|
295
|
+
var _log_symbolicated_stack, _log_symbolicated;
|
|
296
|
+
const log = logFromError({
|
|
297
|
+
projectRoot,
|
|
298
|
+
error
|
|
299
|
+
});
|
|
300
|
+
await new Promise((res)=>log.symbolicate('stack', ()=>res()));
|
|
301
|
+
logMetroErrorWithStack(projectRoot, {
|
|
302
|
+
stack: ((_log_symbolicated = log.symbolicated) == null ? void 0 : (_log_symbolicated_stack = _log_symbolicated.stack) == null ? void 0 : _log_symbolicated_stack.stack) ?? [],
|
|
303
|
+
codeFrame: log.codeFrame,
|
|
304
|
+
error
|
|
305
|
+
});
|
|
306
|
+
if ('message' in log && 'content' in log.message && typeof log.message.content === 'string') {
|
|
307
|
+
log.message.content = (0, _ansi.stripAnsi)(log.message.content);
|
|
308
|
+
}
|
|
309
|
+
const logBoxContext = {
|
|
310
|
+
selectedLogIndex: 0,
|
|
311
|
+
isDisabled: false,
|
|
312
|
+
logs: [
|
|
313
|
+
log
|
|
314
|
+
]
|
|
315
|
+
};
|
|
316
|
+
const html = `<html><head><style>#root,body,html{height:100%;background-color:black}body{overflow:hidden}#root{display:flex}</style></head><body><div id="root"></div><script id="_expo-static-error" type="application/json">${JSON.stringify(logBoxContext)}</script></body></html>`;
|
|
317
|
+
// TODO: We could reuse the pre-built DOM Log Box from @expo/log-box
|
|
318
|
+
const errorOverlayEntry = await (0, _getStaticRenderFunctions.createMetroEndpointAsync)(projectRoot, // Keep the URL relative
|
|
319
|
+
'', (0, _resolvefrom().default)(projectRoot, 'expo-router/_error'), {
|
|
320
|
+
mode: 'development',
|
|
321
|
+
platform: 'web',
|
|
322
|
+
minify: false,
|
|
323
|
+
optimize: false,
|
|
324
|
+
usedExports: false,
|
|
325
|
+
baseUrl: '',
|
|
326
|
+
routerRoot,
|
|
327
|
+
isExporting: false,
|
|
328
|
+
reactCompiler: false
|
|
329
|
+
});
|
|
330
|
+
const htmlWithJs = html.replace('</body>', `<script src=${errorOverlayEntry}></script></body>`);
|
|
331
|
+
return htmlWithJs;
|
|
332
|
+
}
|
|
333
|
+
function parseErrorStack(projectRoot, stack) {
|
|
334
|
+
if (stack == null) {
|
|
335
|
+
return [];
|
|
336
|
+
}
|
|
337
|
+
if (Array.isArray(stack)) {
|
|
338
|
+
return stack;
|
|
339
|
+
}
|
|
340
|
+
const serverRoot = (0, _paths().getMetroServerRoot)(projectRoot);
|
|
341
|
+
return (0, _stacktraceparser().parse)(stack).map((frame)=>{
|
|
342
|
+
// frame.file will mostly look like `http://localhost:8081/index.bundle?platform=web&dev=true&hot=false`
|
|
343
|
+
if (frame.file) {
|
|
344
|
+
// SSR will sometimes have absolute paths followed by `.bundle?...`, we need to try and make them relative paths and append a dev server URL.
|
|
345
|
+
if (frame.file.startsWith('/') && frame.file.includes('bundle?') && !canParse(frame.file)) {
|
|
346
|
+
// Malformed stack file from SSR. Attempt to repair.
|
|
347
|
+
frame.file = 'https://localhost:8081/' + _path().default.relative(serverRoot, frame.file);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return {
|
|
351
|
+
...frame,
|
|
352
|
+
column: frame.column != null ? frame.column - 1 : null
|
|
353
|
+
};
|
|
354
|
+
}).filter((frame)=>frame.file && !frame.file.includes('node_modules'));
|
|
355
|
+
}
|
|
356
|
+
function canParse(url) {
|
|
357
|
+
try {
|
|
358
|
+
// eslint-disable-next-line no-new
|
|
359
|
+
new URL(url);
|
|
360
|
+
return true;
|
|
361
|
+
} catch {
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
function dropStackIfContainsCodeFrame(err) {
|
|
366
|
+
if (!(err instanceof Error)) return;
|
|
367
|
+
if (likelyContainsCodeFrame(err.message)) {
|
|
368
|
+
// If the error message contains a code frame, we should drop the stack to avoid cluttering the output.
|
|
369
|
+
delete err.stack;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
function likelyContainsCodeFrame(message) {
|
|
373
|
+
if (!message) return false;
|
|
374
|
+
const clean = (0, _nodeutil().stripVTControlCharacters)(message);
|
|
375
|
+
if (!clean) return false;
|
|
376
|
+
return /^\s*\d+\s+\|/m.test(clean);
|
|
377
|
+
}
|
|
378
|
+
const attachImportStackToRootMessage = (err, importStack = nearestImportStack(err))=>{
|
|
379
|
+
// Space out build failures.
|
|
380
|
+
if (err instanceof Error && importStack) {
|
|
381
|
+
err.message += '\n\n' + importStack;
|
|
382
|
+
if (!isDebug) {
|
|
383
|
+
// When not debugging remove the stack to avoid cluttering the output and confusing users,
|
|
384
|
+
// the import stack is the guide to fixing the error.
|
|
385
|
+
delete err.stack;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
const nearestImportStack = (err, root = err)=>{
|
|
390
|
+
if (!(err instanceof Error) || !(root instanceof Error)) return undefined;
|
|
391
|
+
if ('_expoImportStack' in err && typeof err._expoImportStack === 'string') {
|
|
392
|
+
// Space out build failures.
|
|
393
|
+
return err._expoImportStack;
|
|
394
|
+
} else {
|
|
395
|
+
return nearestImportStack(err.cause, root);
|
|
396
|
+
}
|
|
397
|
+
};
|
|
398
|
+
function isInternalBytecode(frame) {
|
|
399
|
+
var _frame_file;
|
|
400
|
+
return ((_frame_file = frame.file) == null ? void 0 : _frame_file.includes('InternalBytecode.js')) ?? false;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
//# sourceMappingURL=metroErrorInterface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/metroErrorInterface.ts"],"sourcesContent":["/**\n * Copyright © 2022 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 { getMetroServerRoot } from '@expo/config/paths';\nimport { parseWebBuildErrors } from '@expo/log-box/utils';\nimport chalk from 'chalk';\nimport { stripVTControlCharacters } from 'node:util';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport { parse, StackFrame } from 'stacktrace-parser';\nimport terminalLink from 'terminal-link';\n\nimport { LogBoxLog, LogBoxLogData } from './log-box/LogBoxLog';\nimport type { CodeFrame, StackFrame as MetroStackFrame } from './log-box/LogBoxSymbolication';\nimport { getStackFormattedLocation } from './log-box/formatProjectFilePath';\nimport { Log } from '../../../log';\nimport { stripAnsi } from '../../../utils/ansi';\nimport { env } from '../../../utils/env';\nimport { CommandError, SilentError } from '../../../utils/errors';\nimport { createMetroEndpointAsync } from '../getStaticRenderFunctions';\n\nconst isDebug = require('debug').enabled('expo:start:server:metro');\n\nfunction fill(width: number): string {\n return Array(width).join(' ');\n}\n\nfunction formatPaths(config: { filePath: string | null; line?: number; col?: number }) {\n const filePath = chalk.reset(config.filePath);\n return (\n chalk.dim('(') +\n filePath +\n chalk.dim(`:${[config.line, config.col].filter(Boolean).join(':')})`)\n );\n}\n\nexport async function logMetroErrorWithStack(\n projectRoot: string,\n {\n stack,\n codeFrame,\n error,\n }: {\n stack: MetroStackFrame[];\n codeFrame?: CodeFrame;\n error: Error;\n }\n) {\n if (error instanceof SilentError) {\n return;\n }\n\n // process.stdout.write('\\u001b[0m'); // Reset attributes\n // process.stdout.write('\\u001bc'); // Reset the terminal\n\n Log.log();\n Log.log(chalk.red('Metro error: ') + error.message);\n Log.log();\n\n if (error instanceof CommandError) {\n return;\n }\n\n Log.log(\n getStackAsFormattedLog(projectRoot, { stack, codeFrame, error, showCollapsedFrames: true })\n .stack\n );\n}\n\nexport function getStackAsFormattedLog(\n projectRoot: string,\n {\n stack,\n codeFrame,\n error,\n showCollapsedFrames = env.EXPO_DEBUG,\n }: {\n stack: MetroStackFrame[];\n codeFrame?: CodeFrame;\n error?: Error;\n showCollapsedFrames?: boolean;\n }\n): {\n isFallback: boolean;\n stack: string;\n} {\n const logs: string[] = [];\n const containsCodeFrame = likelyContainsCodeFrame(error?.message);\n\n if (containsCodeFrame) {\n // Some transformation errors will have a code frame embedded in the error message\n // from Babel and we should not duplicate it as message is already printed before this call.\n } else if (codeFrame) {\n const maxWarningLineLength = Math.max(800, process.stdout.columns);\n\n const lineText = codeFrame.content;\n const lines = codeFrame.content.split('\\n');\n\n // ---- index.tsx ------------------------------------------------------\n // 32 | This is example code which will be under the title.\n const title = path.basename(codeFrame.fileName);\n logs.push(chalk.bold`Code: ${title}`);\n\n const isPreviewTooLong = lines.some((line) => line.length > maxWarningLineLength);\n const column = codeFrame.location?.column;\n // When the preview is too long, we skip reading the file and attempting to apply\n // code coloring, this is because it can get very slow.\n if (isPreviewTooLong) {\n let previewLine = '';\n let cursorLine = '';\n\n const formattedPath = formatPaths({\n filePath: codeFrame.fileName,\n line: codeFrame.location?.row,\n col: codeFrame.location?.column,\n });\n // Create a curtailed preview line like:\n // `...transition:'fade'},k._updatePropsStack=function(){clearImmediate(k._updateImmediate),k._updateImmediate...`\n // If there is no text preview or column number, we can't do anything.\n if (lineText && column != null) {\n const rangeWindow = Math.round(\n Math.max(codeFrame.fileName?.length ?? 0, Math.max(80, process.stdout.columns)) / 2\n );\n let minBounds = Math.max(0, column - rangeWindow);\n const maxBounds = Math.min(minBounds + rangeWindow * 2, lineText.length);\n previewLine = lineText.slice(minBounds, maxBounds);\n\n // If we splice content off the start, then we should append `...`.\n // This is unlikely to happen since we limit the activation size.\n if (minBounds > 0) {\n // Adjust the min bounds so the cursor is aligned after we add the \"...\"\n minBounds -= 3;\n previewLine = chalk.dim('...') + previewLine;\n }\n if (maxBounds < lineText.length) {\n previewLine += chalk.dim('...');\n }\n\n // If the column property could be found, then use that to fix the cursor location which is often broken in regex.\n cursorLine = (column == null ? '' : fill(column) + chalk.reset('^')).slice(minBounds);\n\n logs.push(formattedPath, '', previewLine, cursorLine, chalk.dim('(error truncated)'));\n }\n } else {\n logs.push(codeFrame.content);\n }\n }\n\n let isFallback = false;\n if (stack?.length) {\n const stackProps = stack.map((frame) => {\n return {\n title: frame.methodName,\n subtitle: getStackFormattedLocation(projectRoot, frame),\n collapse: frame.collapse || isInternalBytecode(frame),\n };\n });\n\n const stackLines: string[] = [];\n const backupStackLines: string[] = [];\n\n stackProps.forEach((frame) => {\n const shouldShow = !frame.collapse || showCollapsedFrames;\n\n const position = terminalLink.isSupported\n ? terminalLink(frame.subtitle, frame.subtitle)\n : frame.subtitle;\n let lineItem = chalk.gray(` ${frame.title} (${position})`);\n\n if (frame.collapse) {\n lineItem = chalk.dim(lineItem);\n }\n // Never show the internal module system.\n const isMetroRuntime =\n /\\/metro-runtime\\/src\\/polyfills\\/require\\.js/.test(frame.subtitle) ||\n /\\/metro-require\\/require\\.js/.test(frame.subtitle);\n if (!isMetroRuntime) {\n if (shouldShow) {\n stackLines.push(lineItem);\n }\n backupStackLines.push(lineItem);\n }\n });\n\n logs.push(chalk.bold`Call Stack`);\n\n if (!backupStackLines.length) {\n logs.push(chalk.gray(' No stack trace available.'));\n } else {\n isFallback = stackLines.length === 0;\n // If there are not stack lines then it means the error likely happened in the node modules, in this case we should fallback to showing all the\n // the stacks to give the user whatever help we can.\n const displayStack = stackLines.length ? stackLines : backupStackLines;\n logs.push(displayStack.join('\\n'));\n }\n } else if (error && error.stack) {\n logs.push(chalk.gray(` ${error.stack}`));\n }\n\n return {\n isFallback,\n stack: logs.join('\\n'),\n };\n}\n\nexport const IS_METRO_BUNDLE_ERROR_SYMBOL = Symbol('_isMetroBundleError');\nconst HAS_LOGGED_SYMBOL = Symbol('_hasLoggedInCLI');\n\nexport async function logMetroError(\n projectRoot: string,\n {\n error,\n }: {\n error: Error & {\n [HAS_LOGGED_SYMBOL]?: boolean;\n };\n }\n) {\n if (error instanceof SilentError || error[HAS_LOGGED_SYMBOL]) {\n return;\n }\n error[HAS_LOGGED_SYMBOL] = true;\n\n const stack = parseErrorStack(projectRoot, error.stack);\n\n const log = new LogBoxLog({\n level: 'static',\n message: {\n content: error.message,\n substitutions: [],\n },\n isComponentError: false,\n stack,\n category: 'static',\n componentStack: [],\n });\n\n await new Promise((res) => log.symbolicate('stack', res));\n\n logMetroErrorWithStack(projectRoot, {\n stack: log.symbolicated?.stack?.stack ?? [],\n codeFrame: log.codeFrame,\n error,\n });\n}\n\n/** @returns the html required to render the static metro error as an SPA. */\nfunction logFromError({ error, projectRoot }: { error: Error; projectRoot: string }): LogBoxLog {\n const data = parseWebBuildErrors({\n error,\n projectRoot,\n parseErrorStack,\n });\n return new LogBoxLog(data as LogBoxLogData);\n}\n\n/** @returns the html required to render the static metro error as an SPA. */\nexport async function logMetroErrorAsync({\n error,\n projectRoot,\n}: {\n error: Error;\n projectRoot: string;\n}) {\n const log = logFromError({ projectRoot, error });\n\n await new Promise<void>((res) => log.symbolicate('stack', () => res()));\n\n logMetroErrorWithStack(projectRoot, {\n stack: log.symbolicated?.stack?.stack ?? [],\n codeFrame: log.codeFrame,\n error,\n });\n}\n\n/** @returns the html required to render the static metro error as an SPA. */\nexport async function getErrorOverlayHtmlAsync({\n error,\n projectRoot,\n routerRoot,\n}: {\n error: Error;\n projectRoot: string;\n routerRoot: string;\n}) {\n const log = logFromError({ projectRoot, error });\n\n await new Promise<void>((res) => log.symbolicate('stack', () => res()));\n\n logMetroErrorWithStack(projectRoot, {\n stack: log.symbolicated?.stack?.stack ?? [],\n codeFrame: log.codeFrame,\n error,\n });\n\n if ('message' in log && 'content' in log.message && typeof log.message.content === 'string') {\n log.message.content = stripAnsi(log.message.content)!;\n }\n\n const logBoxContext = {\n selectedLogIndex: 0,\n isDisabled: false,\n logs: [log],\n };\n const html = `<html><head><style>#root,body,html{height:100%;background-color:black}body{overflow:hidden}#root{display:flex}</style></head><body><div id=\"root\"></div><script id=\"_expo-static-error\" type=\"application/json\">${JSON.stringify(\n logBoxContext\n )}</script></body></html>`;\n\n // TODO: We could reuse the pre-built DOM Log Box from @expo/log-box\n const errorOverlayEntry = await createMetroEndpointAsync(\n projectRoot,\n // Keep the URL relative\n '',\n resolveFrom(projectRoot, 'expo-router/_error'),\n {\n mode: 'development',\n platform: 'web',\n minify: false,\n optimize: false,\n usedExports: false,\n baseUrl: '',\n routerRoot,\n isExporting: false,\n reactCompiler: false,\n }\n );\n\n const htmlWithJs = html.replace('</body>', `<script src=${errorOverlayEntry}></script></body>`);\n return htmlWithJs;\n}\n\nfunction parseErrorStack(\n projectRoot: string,\n stack?: string\n): (StackFrame & { collapse?: boolean })[] {\n if (stack == null) {\n return [];\n }\n if (Array.isArray(stack)) {\n return stack;\n }\n\n const serverRoot = getMetroServerRoot(projectRoot);\n\n return parse(stack)\n .map((frame) => {\n // frame.file will mostly look like `http://localhost:8081/index.bundle?platform=web&dev=true&hot=false`\n\n if (frame.file) {\n // SSR will sometimes have absolute paths followed by `.bundle?...`, we need to try and make them relative paths and append a dev server URL.\n if (frame.file.startsWith('/') && frame.file.includes('bundle?') && !canParse(frame.file)) {\n // Malformed stack file from SSR. Attempt to repair.\n frame.file = 'https://localhost:8081/' + path.relative(serverRoot, frame.file);\n }\n }\n\n return {\n ...frame,\n column: frame.column != null ? frame.column - 1 : null,\n };\n })\n .filter((frame) => frame.file && !frame.file.includes('node_modules'));\n}\n\nfunction canParse(url: string): boolean {\n try {\n // eslint-disable-next-line no-new\n new URL(url);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function dropStackIfContainsCodeFrame(err: unknown) {\n if (!(err instanceof Error)) return;\n\n if (likelyContainsCodeFrame(err.message)) {\n // If the error message contains a code frame, we should drop the stack to avoid cluttering the output.\n delete err.stack;\n }\n}\n\n/**\n * Tests given string on presence of ` [num] |` at the start of any line.\n * Returns `false` for undefined or empty strings.\n */\nexport function likelyContainsCodeFrame(message: string | undefined): boolean {\n if (!message) return false;\n\n const clean = stripVTControlCharacters(message);\n if (!clean) return false;\n\n return /^\\s*\\d+\\s+\\|/m.test(clean);\n}\n\n/**\n * Walks thru the error cause chain and attaches the import stack to the root error message.\n * Removes the error stack for import and syntax errors.\n */\nexport const attachImportStackToRootMessage = (\n err: unknown,\n importStack = nearestImportStack(err)\n) => {\n // Space out build failures.\n if (err instanceof Error && importStack) {\n err.message += '\\n\\n' + importStack;\n if (!isDebug) {\n // When not debugging remove the stack to avoid cluttering the output and confusing users,\n // the import stack is the guide to fixing the error.\n delete err.stack;\n }\n }\n};\n\n/**\n * Walks thru the error cause chain and returns the nearest import stack.\n * If the import stack is not found, it returns `undefined`.\n */\nexport const nearestImportStack = (err: unknown, root: unknown = err): string | undefined => {\n if (!(err instanceof Error) || !(root instanceof Error)) return undefined;\n\n if ('_expoImportStack' in err && typeof err._expoImportStack === 'string') {\n // Space out build failures.\n return err._expoImportStack;\n } else {\n return nearestImportStack(err.cause, root);\n }\n};\n\nfunction isInternalBytecode(frame: StackFrame): boolean {\n return frame.file?.includes('InternalBytecode.js') ?? false;\n}\n"],"names":["IS_METRO_BUNDLE_ERROR_SYMBOL","attachImportStackToRootMessage","dropStackIfContainsCodeFrame","getErrorOverlayHtmlAsync","getStackAsFormattedLog","likelyContainsCodeFrame","logMetroError","logMetroErrorAsync","logMetroErrorWithStack","nearestImportStack","isDebug","require","enabled","fill","width","Array","join","formatPaths","config","filePath","chalk","reset","dim","line","col","filter","Boolean","projectRoot","stack","codeFrame","error","SilentError","Log","log","red","message","CommandError","showCollapsedFrames","env","EXPO_DEBUG","logs","containsCodeFrame","maxWarningLineLength","Math","max","process","stdout","columns","lineText","content","lines","split","title","path","basename","fileName","push","bold","isPreviewTooLong","some","length","column","location","previewLine","cursorLine","formattedPath","row","rangeWindow","round","minBounds","maxBounds","min","slice","isFallback","stackProps","map","frame","methodName","subtitle","getStackFormattedLocation","collapse","isInternalBytecode","stackLines","backupStackLines","forEach","shouldShow","position","terminalLink","isSupported","lineItem","gray","isMetroRuntime","test","displayStack","Symbol","HAS_LOGGED_SYMBOL","parseErrorStack","LogBoxLog","level","substitutions","isComponentError","category","componentStack","Promise","res","symbolicate","symbolicated","logFromError","data","parseWebBuildErrors","routerRoot","stripAnsi","logBoxContext","selectedLogIndex","isDisabled","html","JSON","stringify","errorOverlayEntry","createMetroEndpointAsync","resolveFrom","mode","platform","minify","optimize","usedExports","baseUrl","isExporting","reactCompiler","htmlWithJs","replace","isArray","serverRoot","getMetroServerRoot","parse","file","startsWith","includes","canParse","relative","url","URL","err","Error","clean","stripVTControlCharacters","importStack","root","undefined","_expoImportStack","cause"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Used to cast a type to metro errors without depending on specific versions of metro.
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
function _export(target, all) {
|
|
7
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
isFailedToResolveNameError: function() {
|
|
14
|
+
return isFailedToResolveNameError;
|
|
15
|
+
},
|
|
16
|
+
isFailedToResolvePathError: function() {
|
|
17
|
+
return isFailedToResolvePathError;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
function isFailedToResolveNameError(error) {
|
|
21
|
+
return !!error && 'extraPaths' in error && error.constructor.name === 'FailedToResolveNameError';
|
|
22
|
+
}
|
|
23
|
+
function isFailedToResolvePathError(error) {
|
|
24
|
+
return !!error && 'candidates' in error && error.constructor.name === 'FailedToResolvePathError' && !error.message.includes('Importing native-only module');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=metroErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/metroErrors.ts"],"sourcesContent":["// Used to cast a type to metro errors without depending on specific versions of metro.\n\nexport type FileAndDirCandidates = {\n dir: FileCandidates;\n file: FileCandidates;\n};\n\n/**\n * This is a way to describe what files we tried to look for when resolving\n * a module name as file. This is mainly used for error reporting, so that\n * we can explain why we cannot resolve a module.\n */\nexport type FileCandidates =\n // We only tried to resolve a specific asset.\n | { type: 'asset'; name: string }\n // We attempted to resolve a name as being a source file (ex. JavaScript,\n // JSON...), in which case there can be several extensions we tried, for\n // example `/js/foo.ios.js`, `/js/foo.js`, etc. for a single prefix '/js/foo'.\n | {\n type: 'sourceFile';\n filePathPrefix: string;\n candidateExts: readonly string[];\n };\n\ntype FailedToResolveNameError = Error & {\n dirPaths: string[];\n extraPaths: string[];\n};\n\ntype FailedToResolvePathError = Error & {\n candidates: FileAndDirCandidates;\n};\n\nexport function isFailedToResolveNameError(error: any): error is FailedToResolveNameError {\n return !!error && 'extraPaths' in error && error.constructor.name === 'FailedToResolveNameError';\n}\n\nexport function isFailedToResolvePathError(error: any): error is FailedToResolvePathError {\n return (\n !!error &&\n 'candidates' in error &&\n error.constructor.name === 'FailedToResolvePathError' &&\n !error.message.includes('Importing native-only module')\n );\n}\n"],"names":["isFailedToResolveNameError","isFailedToResolvePathError","error","constructor","name","message","includes"],"mappings":"AAAA,uFAAuF;;;;;;;;;;;;IAiCvEA,0BAA0B;eAA1BA;;IAIAC,0BAA0B;eAA1BA;;;AAJT,SAASD,2BAA2BE,KAAU;IACnD,OAAO,CAAC,CAACA,SAAS,gBAAgBA,SAASA,MAAMC,WAAW,CAACC,IAAI,KAAK;AACxE;AAEO,SAASH,2BAA2BC,KAAU;IACnD,OACE,CAAC,CAACA,SACF,gBAAgBA,SAChBA,MAAMC,WAAW,CAACC,IAAI,KAAK,8BAC3B,CAACF,MAAMG,OAAO,CAACC,QAAQ,CAAC;AAE5B"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright © 2024 650 Industries.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/ "use strict";
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(exports, "getMetroBundlerWithVirtualModules", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function() {
|
|
13
|
+
return getMetroBundlerWithVirtualModules;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
function assertBundlerHasPrivateMembers(bundler) {
|
|
17
|
+
if (!('_depGraph' in bundler)) {
|
|
18
|
+
throw new Error('Expected bundler to have member: _depGraph. Upstream metro may have removed this property.');
|
|
19
|
+
}
|
|
20
|
+
assertDepGraphHasPrivateMembers(bundler._depGraph);
|
|
21
|
+
}
|
|
22
|
+
function assertDepGraphHasPrivateMembers(depGraph) {
|
|
23
|
+
if (!depGraph || typeof depGraph !== 'object' || !('_fileSystem' in depGraph)) {
|
|
24
|
+
throw new Error('Expected bundler._depGraph to have member: _fileSystem. Upstream metro may have removed this property.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function ensureMetroBundlerPatchedWithSetVirtualModule(bundler) {
|
|
28
|
+
if (!bundler.setVirtualModule) {
|
|
29
|
+
bundler.setVirtualModule = function(id, contents) {
|
|
30
|
+
assertBundlerHasPrivateMembers(this);
|
|
31
|
+
const fs = ensureFileSystemPatched(this._depGraph._fileSystem);
|
|
32
|
+
fs.expoVirtualModules.set(ensureStartsWithNullByte(id), Buffer.from(contents));
|
|
33
|
+
};
|
|
34
|
+
bundler.hasVirtualModule = function(id) {
|
|
35
|
+
assertBundlerHasPrivateMembers(this);
|
|
36
|
+
const fs = ensureFileSystemPatched(this._depGraph._fileSystem);
|
|
37
|
+
return fs.expoVirtualModules.has(ensureStartsWithNullByte(id));
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return bundler;
|
|
41
|
+
}
|
|
42
|
+
function ensureStartsWithNullByte(id) {
|
|
43
|
+
// Because you'll likely need to return the path somewhere, we should just assert with a useful error message instead of
|
|
44
|
+
// attempting to mutate the value behind the scenes. This ensures correctness in the resolution.
|
|
45
|
+
if (!id.startsWith('\0')) {
|
|
46
|
+
throw new Error(`Virtual modules in Expo CLI must start with with null byte (\\0), got: ${id}`);
|
|
47
|
+
}
|
|
48
|
+
return id;
|
|
49
|
+
}
|
|
50
|
+
function getMetroBundlerWithVirtualModules(bundler) {
|
|
51
|
+
if (!bundler.transformFile.__patched) {
|
|
52
|
+
const originalTransformFile = bundler.transformFile.bind(bundler);
|
|
53
|
+
bundler.transformFile = async function(filePath, transformOptions, /** Optionally provide the file contents, this can be used to provide virtual contents for a file. */ fileBuffer) {
|
|
54
|
+
// file buffer will be defined for virtual modules in Metro, e.g. context modules.
|
|
55
|
+
if (!fileBuffer) {
|
|
56
|
+
if (filePath.startsWith('\0')) {
|
|
57
|
+
const graph = await this.getDependencyGraph();
|
|
58
|
+
assertDepGraphHasPrivateMembers(graph);
|
|
59
|
+
if (graph._fileSystem.expoVirtualModules) {
|
|
60
|
+
fileBuffer = graph._fileSystem.expoVirtualModules.get(filePath);
|
|
61
|
+
}
|
|
62
|
+
if (!fileBuffer) {
|
|
63
|
+
throw new Error(`Virtual module "${filePath}" not found.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return originalTransformFile(filePath, transformOptions, fileBuffer);
|
|
68
|
+
};
|
|
69
|
+
bundler.transformFile.__patched = true;
|
|
70
|
+
}
|
|
71
|
+
return ensureMetroBundlerPatchedWithSetVirtualModule(bundler);
|
|
72
|
+
}
|
|
73
|
+
function ensureFileSystemPatched(fs) {
|
|
74
|
+
if (!fs.getSha1.__patched) {
|
|
75
|
+
const original_getSha1 = fs.getSha1.bind(fs);
|
|
76
|
+
fs.getSha1 = (filename)=>{
|
|
77
|
+
// Rollup virtual module format.
|
|
78
|
+
if (filename.startsWith('\0')) {
|
|
79
|
+
return filename;
|
|
80
|
+
}
|
|
81
|
+
return original_getSha1(filename);
|
|
82
|
+
};
|
|
83
|
+
fs.getSha1.__patched = true;
|
|
84
|
+
}
|
|
85
|
+
// TODO: Connect virtual modules to a specific context so they don't cross-bundles.
|
|
86
|
+
if (!fs.expoVirtualModules) {
|
|
87
|
+
fs.expoVirtualModules = new Map();
|
|
88
|
+
}
|
|
89
|
+
return fs;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=metroVirtualModules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/start/server/metro/metroVirtualModules.ts"],"sourcesContent":["/**\n * Copyright © 2024 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 type Bundler from '@expo/metro/metro/Bundler';\nimport type DependencyGraph from '@expo/metro/metro/node-haste/DependencyGraph';\nimport type { FileSystem } from '@expo/metro/metro-file-map';\n\ntype ExpoPatchedFileSystem = Omit<FileSystem, 'getSha1'> & {\n getSha1: FileSystem['getSha1'] & { __patched?: boolean };\n expoVirtualModules?: Map<string, Buffer>;\n};\n\ntype ActualDependencyGraph = DependencyGraph & {\n _fileSystem: ExpoPatchedFileSystem;\n};\n\ntype ActualBundler = Bundler & {\n _depGraph: ActualDependencyGraph;\n};\n\ntype ExpoPatchedBundler = Bundler & {\n setVirtualModule: (id: string, contents: string) => void;\n hasVirtualModule: (id: string) => boolean;\n};\n\nfunction assertBundlerHasPrivateMembers(bundler: Bundler): asserts bundler is ActualBundler {\n if (!('_depGraph' in bundler)) {\n throw new Error(\n 'Expected bundler to have member: _depGraph. Upstream metro may have removed this property.'\n );\n }\n\n assertDepGraphHasPrivateMembers(bundler._depGraph);\n}\n\nfunction assertDepGraphHasPrivateMembers(\n depGraph: unknown\n): asserts depGraph is ActualDependencyGraph {\n if (!depGraph || typeof depGraph !== 'object' || !('_fileSystem' in depGraph)) {\n throw new Error(\n 'Expected bundler._depGraph to have member: _fileSystem. Upstream metro may have removed this property.'\n );\n }\n}\n\nfunction ensureMetroBundlerPatchedWithSetVirtualModule(\n bundler: Bundler & {\n setVirtualModule?: (id: string, contents: string) => void;\n hasVirtualModule?: (id: string) => boolean;\n }\n): ExpoPatchedBundler {\n if (!bundler.setVirtualModule) {\n bundler.setVirtualModule = function (this: Bundler, id: string, contents: string) {\n assertBundlerHasPrivateMembers(this);\n const fs = ensureFileSystemPatched(this._depGraph._fileSystem);\n fs.expoVirtualModules!.set(ensureStartsWithNullByte(id), Buffer.from(contents));\n };\n bundler.hasVirtualModule = function (this: Bundler, id: string) {\n assertBundlerHasPrivateMembers(this);\n const fs = ensureFileSystemPatched(this._depGraph._fileSystem);\n return fs.expoVirtualModules!.has(ensureStartsWithNullByte(id));\n };\n }\n\n return bundler as ExpoPatchedBundler;\n}\n\nfunction ensureStartsWithNullByte(id: string): string {\n // Because you'll likely need to return the path somewhere, we should just assert with a useful error message instead of\n // attempting to mutate the value behind the scenes. This ensures correctness in the resolution.\n if (!id.startsWith('\\0')) {\n throw new Error(`Virtual modules in Expo CLI must start with with null byte (\\\\0), got: ${id}`);\n }\n return id;\n}\n\nexport function getMetroBundlerWithVirtualModules(\n bundler: Bundler & {\n transformFile: Bundler['transformFile'] & { __patched?: boolean };\n }\n): ExpoPatchedBundler {\n if (!bundler.transformFile.__patched) {\n const originalTransformFile = bundler.transformFile.bind(bundler);\n\n bundler.transformFile = async function (\n filePath: string,\n transformOptions: any,\n /** Optionally provide the file contents, this can be used to provide virtual contents for a file. */\n fileBuffer?: Buffer\n ) {\n // file buffer will be defined for virtual modules in Metro, e.g. context modules.\n if (!fileBuffer) {\n if (filePath.startsWith('\\0')) {\n const graph = await this.getDependencyGraph();\n\n assertDepGraphHasPrivateMembers(graph);\n\n if (graph._fileSystem.expoVirtualModules) {\n fileBuffer = graph._fileSystem.expoVirtualModules.get(filePath);\n }\n\n if (!fileBuffer) {\n throw new Error(`Virtual module \"${filePath}\" not found.`);\n }\n }\n }\n return originalTransformFile(filePath, transformOptions, fileBuffer);\n };\n\n bundler.transformFile.__patched = true;\n }\n\n return ensureMetroBundlerPatchedWithSetVirtualModule(bundler);\n}\n\nfunction ensureFileSystemPatched(fs: ExpoPatchedFileSystem): ExpoPatchedFileSystem {\n if (!fs.getSha1.__patched) {\n const original_getSha1 = fs.getSha1.bind(fs);\n fs.getSha1 = (filename: string) => {\n // Rollup virtual module format.\n if (filename.startsWith('\\0')) {\n return filename;\n }\n\n return original_getSha1(filename);\n };\n fs.getSha1.__patched = true;\n }\n\n // TODO: Connect virtual modules to a specific context so they don't cross-bundles.\n if (!fs.expoVirtualModules) {\n fs.expoVirtualModules = new Map<string, Buffer>();\n }\n\n return fs;\n}\n"],"names":["getMetroBundlerWithVirtualModules","assertBundlerHasPrivateMembers","bundler","Error","assertDepGraphHasPrivateMembers","_depGraph","depGraph","ensureMetroBundlerPatchedWithSetVirtualModule","setVirtualModule","id","contents","fs","ensureFileSystemPatched","_fileSystem","expoVirtualModules","set","ensureStartsWithNullByte","Buffer","from","hasVirtualModule","has","startsWith","transformFile","__patched","originalTransformFile","bind","filePath","transformOptions","fileBuffer","graph","getDependencyGraph","get","getSha1","original_getSha1","filename","Map"],"mappings":"AAAA;;;;;CAKC;;;;+BA0EeA;;;eAAAA;;;AAnDhB,SAASC,+BAA+BC,OAAgB;IACtD,IAAI,CAAE,CAAA,eAAeA,OAAM,GAAI;QAC7B,MAAM,IAAIC,MACR;IAEJ;IAEAC,gCAAgCF,QAAQG,SAAS;AACnD;AAEA,SAASD,gCACPE,QAAiB;IAEjB,IAAI,CAACA,YAAY,OAAOA,aAAa,YAAY,CAAE,CAAA,iBAAiBA,QAAO,GAAI;QAC7E,MAAM,IAAIH,MACR;IAEJ;AACF;AAEA,SAASI,8CACPL,OAGC;IAED,IAAI,CAACA,QAAQM,gBAAgB,EAAE;QAC7BN,QAAQM,gBAAgB,GAAG,SAAyBC,EAAU,EAAEC,QAAgB;YAC9ET,+BAA+B,IAAI;YACnC,MAAMU,KAAKC,wBAAwB,IAAI,CAACP,SAAS,CAACQ,WAAW;YAC7DF,GAAGG,kBAAkB,CAAEC,GAAG,CAACC,yBAAyBP,KAAKQ,OAAOC,IAAI,CAACR;QACvE;QACAR,QAAQiB,gBAAgB,GAAG,SAAyBV,EAAU;YAC5DR,+BAA+B,IAAI;YACnC,MAAMU,KAAKC,wBAAwB,IAAI,CAACP,SAAS,CAACQ,WAAW;YAC7D,OAAOF,GAAGG,kBAAkB,CAAEM,GAAG,CAACJ,yBAAyBP;QAC7D;IACF;IAEA,OAAOP;AACT;AAEA,SAASc,yBAAyBP,EAAU;IAC1C,wHAAwH;IACxH,gGAAgG;IAChG,IAAI,CAACA,GAAGY,UAAU,CAAC,OAAO;QACxB,MAAM,IAAIlB,MAAM,CAAC,uEAAuE,EAAEM,IAAI;IAChG;IACA,OAAOA;AACT;AAEO,SAAST,kCACdE,OAEC;IAED,IAAI,CAACA,QAAQoB,aAAa,CAACC,SAAS,EAAE;QACpC,MAAMC,wBAAwBtB,QAAQoB,aAAa,CAACG,IAAI,CAACvB;QAEzDA,QAAQoB,aAAa,GAAG,eACtBI,QAAgB,EAChBC,gBAAqB,EACrB,mGAAmG,GACnGC,UAAmB;YAEnB,kFAAkF;YAClF,IAAI,CAACA,YAAY;gBACf,IAAIF,SAASL,UAAU,CAAC,OAAO;oBAC7B,MAAMQ,QAAQ,MAAM,IAAI,CAACC,kBAAkB;oBAE3C1B,gCAAgCyB;oBAEhC,IAAIA,MAAMhB,WAAW,CAACC,kBAAkB,EAAE;wBACxCc,aAAaC,MAAMhB,WAAW,CAACC,kBAAkB,CAACiB,GAAG,CAACL;oBACxD;oBAEA,IAAI,CAACE,YAAY;wBACf,MAAM,IAAIzB,MAAM,CAAC,gBAAgB,EAAEuB,SAAS,YAAY,CAAC;oBAC3D;gBACF;YACF;YACA,OAAOF,sBAAsBE,UAAUC,kBAAkBC;QAC3D;QAEA1B,QAAQoB,aAAa,CAACC,SAAS,GAAG;IACpC;IAEA,OAAOhB,8CAA8CL;AACvD;AAEA,SAASU,wBAAwBD,EAAyB;IACxD,IAAI,CAACA,GAAGqB,OAAO,CAACT,SAAS,EAAE;QACzB,MAAMU,mBAAmBtB,GAAGqB,OAAO,CAACP,IAAI,CAACd;QACzCA,GAAGqB,OAAO,GAAG,CAACE;YACZ,gCAAgC;YAChC,IAAIA,SAASb,UAAU,CAAC,OAAO;gBAC7B,OAAOa;YACT;YAEA,OAAOD,iBAAiBC;QAC1B;QACAvB,GAAGqB,OAAO,CAACT,SAAS,GAAG;IACzB;IAEA,mFAAmF;IACnF,IAAI,CAACZ,GAAGG,kBAAkB,EAAE;QAC1BH,GAAGG,kBAAkB,GAAG,IAAIqB;IAC9B;IAEA,OAAOxB;AACT"}
|