@expo/cli 1.0.0-canary-20250320-7a205d3 → 1.0.0-canary-20250402-161f57b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bin/cli +93 -91
- package/build/bin/cli.map +1 -1
- package/build/metro-require/require.js +53 -52
- package/build/src/api/endpoint.js +6 -2
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoGoIntermediateCertificate.js +5 -3
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
- package/build/src/api/getExpoSchema.js +16 -12
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/getNativeModuleVersions.js +6 -4
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/getProjectDevelopmentCertificate.js +5 -3
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
- package/build/src/api/getVersions.js +7 -5
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/graphql/client.js +32 -26
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +6 -4
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +5 -3
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +3 -1
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemResponseCache.js +36 -32
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/ResponseCache.js +20 -12
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +13 -11
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +55 -37
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/client.types.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +5 -3
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +5 -3
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js +11 -7
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +5 -3
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithUserAgent.js +8 -6
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
- package/build/src/api/settings.js +7 -5
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +23 -17
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +53 -31
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +27 -21
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +30 -26
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +35 -29
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +44 -30
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +29 -23
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +25 -21
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +8 -6
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +20 -16
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +14 -12
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/resolveOptions.js +4 -2
- package/build/src/customize/resolveOptions.js.map +1 -1
- package/build/src/customize/templates.js +58 -54
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +11 -7
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +11 -9
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEager.js +8 -6
- package/build/src/export/embed/exportEager.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +72 -62
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/exportServer.js +57 -55
- package/build/src/export/embed/exportServer.js.map +1 -1
- package/build/src/export/embed/index.js +44 -40
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +44 -36
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +39 -27
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +68 -64
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +34 -26
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +13 -9
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportDomComponents.js +53 -45
- package/build/src/export/exportDomComponents.js.map +1 -1
- package/build/src/export/exportHermes.js +75 -53
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +73 -62
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +33 -27
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +7 -5
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +11 -9
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +10 -6
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +32 -28
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +36 -30
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +64 -34
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +10 -6
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +28 -24
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +50 -46
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +13 -11
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +19 -15
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/web/resolveOptions.js +5 -3
- package/build/src/export/web/resolveOptions.js.map +1 -1
- package/build/src/export/writeContents.js +4 -2
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/graphql/generated.js +705 -479
- package/build/src/graphql/generated.js.map +1 -1
- package/build/src/install/applyPlugins.js +11 -7
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +26 -22
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +16 -12
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +18 -16
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +32 -26
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +22 -18
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js +21 -19
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +18 -14
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/install/utils/checkPackagesCompatibility.js +14 -12
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
- package/build/src/lint/ESlintPrerequisite.js +50 -44
- package/build/src/lint/ESlintPrerequisite.js.map +1 -1
- package/build/src/lint/index.js +12 -8
- package/build/src/lint/index.js.map +1 -1
- package/build/src/lint/lintAsync.js +10 -8
- package/build/src/lint/lintAsync.js.map +1 -1
- package/build/src/log.js +36 -16
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +24 -20
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js +11 -7
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +38 -26
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +18 -14
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +17 -13
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +6 -4
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +36 -32
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +29 -25
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +43 -37
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +70 -53
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +36 -32
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +19 -13
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +53 -39
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +12 -8
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js +11 -7
- package/build/src/register/index.js.map +1 -1
- package/build/src/register/registerAsync.js +5 -3
- package/build/src/register/registerAsync.js.map +1 -1
- package/build/src/run/android/index.js +36 -32
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveDevice.js +10 -8
- package/build/src/run/android/resolveDevice.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +18 -16
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +17 -15
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +12 -10
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +4 -2
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +23 -21
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +7 -5
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +13 -7
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +27 -23
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +80 -60
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +69 -63
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +29 -26
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +28 -25
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +29 -26
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +22 -21
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +32 -29
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +28 -24
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +7 -4
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +28 -27
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +23 -17
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +146 -132
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +29 -21
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +29 -21
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +34 -22
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +27 -17
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +53 -39
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +13 -9
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +27 -19
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +9 -5
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +14 -12
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +27 -21
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +40 -36
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +23 -17
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/appleDestinations.js +38 -36
- package/build/src/run/ios/options/appleDestinations.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +20 -16
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +30 -24
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +31 -23
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +7 -5
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +7 -5
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +48 -44
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/ios/validateExternalBinary.js +24 -22
- package/build/src/run/ios/validateExternalBinary.js.map +1 -1
- package/build/src/run/resolveBundlerProps.js +4 -2
- package/build/src/run/resolveBundlerProps.js.map +1 -1
- package/build/src/run/startBundler.js +16 -12
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/serve/index.js +20 -16
- package/build/src/serve/index.js.map +1 -1
- package/build/src/serve/serveAsync.js +36 -32
- package/build/src/serve/serveAsync.js.map +1 -1
- package/build/src/start/detectDevClient.js +13 -9
- package/build/src/start/detectDevClient.js.map +1 -1
- package/build/src/start/doctor/Prerequisite.js +12 -7
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -11
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +23 -19
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +23 -19
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +51 -45
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +18 -16
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +23 -19
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +31 -25
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +25 -17
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +40 -32
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +32 -26
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +41 -31
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +34 -29
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -8
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +32 -28
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +23 -17
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +33 -27
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +46 -42
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +18 -14
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +94 -80
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +44 -40
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +65 -61
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +6 -4
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +10 -6
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +25 -20
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +17 -15
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +39 -35
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -16
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +24 -20
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +11 -9
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +26 -22
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +121 -83
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +20 -12
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +36 -26
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js +7 -5
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +36 -28
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +19 -15
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +21 -19
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +37 -31
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +9 -7
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/devicectl.js +88 -74
- package/build/src/start/platforms/ios/devicectl.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +22 -18
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +29 -19
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +14 -10
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +102 -74
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +57 -52
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +22 -18
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +19 -9
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +15 -11
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/project/settings.js +4 -2
- package/build/src/start/project/settings.js.map +1 -1
- package/build/src/start/resolveOptions.js +48 -40
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +55 -51
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/AsyncWsTunnel.js +37 -33
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +81 -79
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +42 -38
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +18 -14
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +18 -14
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +16 -10
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +36 -33
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +30 -22
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +9 -5
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +293 -280
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +63 -56
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +39 -33
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
- package/build/src/start/server/metro/createExpoFallbackResolver.js +13 -11
- package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +47 -41
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +31 -27
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +110 -98
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +34 -30
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +13 -11
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +3 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
- package/build/src/start/server/metro/debugging/attachAtlas.js +26 -22
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +19 -17
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +25 -31
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
- package/build/src/start/server/metro/debugging/getDebuggerType.js +6 -4
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +14 -8
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +7 -5
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +8 -6
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +7 -5
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +14 -12
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +14 -10
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js +6 -4
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
- package/build/src/start/server/metro/debugging/types.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createEventSocket.js +18 -16
- package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +23 -21
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +23 -21
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +4 -2
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +4 -2
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js +8 -4
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
- package/build/src/start/server/metro/externals.js +33 -25
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +28 -12
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +11 -9
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +24 -20
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +87 -81
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxLog.js +40 -36
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +20 -14
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +10 -6
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +88 -78
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +8 -4
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroPrivateServer.js +9 -7
- package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +10 -8
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +24 -22
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +48 -32
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +24 -22
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +24 -22
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/symbolicate.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +35 -29
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +150 -140
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +49 -39
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +8 -6
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +17 -15
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +32 -31
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +22 -19
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +33 -27
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +61 -57
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +15 -9
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js +16 -15
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +4 -2
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +34 -31
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +64 -56
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +23 -19
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +20 -19
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +11 -9
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +17 -11
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
- package/build/src/start/server/middleware/inspector/CdpClient.js +12 -10
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +35 -27
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +21 -19
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +6 -2
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +120 -96
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +7 -3
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +26 -18
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +23 -15
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +11 -9
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
- package/build/src/start/server/middleware/server.types.js.map +1 -1
- package/build/src/start/server/openPlatforms.js +10 -8
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +13 -11
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +58 -50
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +11 -7
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +72 -50
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +21 -19
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +36 -28
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +28 -24
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +52 -46
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +15 -11
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js +28 -26
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +18 -12
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +18 -12
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +31 -27
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +20 -17
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/ansi.js +7 -5
- package/build/src/utils/ansi.js.map +1 -1
- package/build/src/utils/args.js +24 -14
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +18 -6
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/cocoapods.js +54 -46
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +79 -69
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +16 -12
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/createTempPath.js +12 -8
- package/build/src/utils/createTempPath.js.map +1 -1
- package/build/src/utils/delay.js +12 -6
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +40 -22
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +10 -8
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +27 -23
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +41 -35
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +63 -59
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +37 -30
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +35 -31
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/expoUpdatesCli.js +32 -22
- package/build/src/utils/expoUpdatesCli.js.map +1 -1
- package/build/src/utils/fetch.js +8 -4
- package/build/src/utils/fetch.js.map +1 -1
- package/build/src/utils/filePath.js +10 -6
- package/build/src/utils/filePath.js.map +1 -1
- package/build/src/utils/findUp.js +13 -9
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +6 -2
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +41 -35
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +29 -21
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +26 -20
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +8 -4
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/interactive.js +3 -1
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/ip.js +21 -19
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +11 -9
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/jsonSchemaDeref.js +20 -18
- package/build/src/utils/jsonSchemaDeref.js.map +1 -1
- package/build/src/utils/link.js +17 -13
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +46 -28
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +16 -10
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +10 -6
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/multipartMixed.js +13 -11
- package/build/src/utils/multipartMixed.js.map +1 -1
- package/build/src/utils/nodeEnv.js +12 -6
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +10 -8
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +49 -35
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +11 -5
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +10 -8
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +13 -7
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +21 -15
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +43 -33
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +11 -7
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +11 -5
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +47 -29
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/resolveArgs.js +36 -24
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +40 -32
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/stream.js +5 -3
- package/build/src/utils/stream.js.map +1 -1
- package/build/src/utils/strings.js +6 -4
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +18 -14
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/Telemetry.js +29 -27
- package/build/src/utils/telemetry/Telemetry.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +15 -13
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js +26 -22
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
- package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
- package/build/src/utils/telemetry/events.js +4 -2
- package/build/src/utils/telemetry/events.js.map +1 -1
- package/build/src/utils/telemetry/index.js +25 -29
- package/build/src/utils/telemetry/index.js.map +1 -1
- package/build/src/utils/telemetry/types.js.map +1 -1
- package/build/src/utils/telemetry/utils/constants.js +8 -4
- package/build/src/utils/telemetry/utils/constants.js.map +1 -1
- package/build/src/utils/telemetry/utils/context.js +18 -14
- package/build/src/utils/telemetry/utils/context.js.map +1 -1
- package/build/src/utils/template.js +6 -4
- package/build/src/utils/template.js.map +1 -1
- package/build/src/utils/terminal.js +4 -2
- package/build/src/utils/terminal.js.map +1 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +21 -17
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -14
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +7 -5
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +14 -12
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +23 -13
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +108 -86
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +22 -16
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js +11 -7
- package/build/src/whoami/index.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +11 -7
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +17 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode is trying to inject a script to configure Node environment variables.\n * This won't work in Hermes, but vscode will retry this 200x.\n * Avoid sending this \"spam\" to the device.\n *\n * @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54\n */\nexport class VscodeRuntimeEvaluateHandler extends MessageHandler {\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeEvaluate>) {\n if (message.method === 'Runtime.evaluate' && isVscodeNodeAttachEnvironmentInjection(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'string',\n value: `Hermes doesn't support environment variables through process.env`,\n },\n },\n });\n }\n\n if (message.method === 'Runtime.evaluate' && isVscodeNodeTelemetry(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'object',\n value: {\n processId: this.page.id,\n nodeVersion: process.version,\n architecture: process.arch,\n },\n },\n },\n });\n }\n\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-evaluate */\nexport type RuntimeEvaluate = CdpMessage<\n 'Runtime.evaluate',\n Protocol.Runtime.EvaluateRequest,\n Protocol.Runtime.EvaluateResponse\n>;\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54 */\nfunction isVscodeNodeAttachEnvironmentInjection(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process==='undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.env[\"NODE_OPTIONS\"]`)\n );\n}\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeLauncherBase.ts#L523-L531 */\nfunction isVscodeNodeTelemetry(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process === 'undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.pid`) &&\n message.params?.expression.includes(`process.version`) &&\n message.params?.expression.includes(`process.arch`)\n );\n}\n"],"names":["VscodeRuntimeEvaluateHandler","MessageHandler","isEnabled","getDebuggerType","debugger","userAgent","handleDebuggerMessage","message","method","isVscodeNodeAttachEnvironmentInjection","sendToDebugger","id","result","type","value","isVscodeNodeTelemetry","processId","page","nodeVersion","process","version","architecture","arch","params","expression","includes"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode is trying to inject a script to configure Node environment variables.\n * This won't work in Hermes, but vscode will retry this 200x.\n * Avoid sending this \"spam\" to the device.\n *\n * @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54\n */\nexport class VscodeRuntimeEvaluateHandler extends MessageHandler {\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeEvaluate>) {\n if (message.method === 'Runtime.evaluate' && isVscodeNodeAttachEnvironmentInjection(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'string',\n value: `Hermes doesn't support environment variables through process.env`,\n },\n },\n });\n }\n\n if (message.method === 'Runtime.evaluate' && isVscodeNodeTelemetry(message)) {\n return this.sendToDebugger<DeviceResponse<RuntimeEvaluate>>({\n id: message.id,\n result: {\n result: {\n type: 'object',\n value: {\n processId: this.page.id,\n nodeVersion: process.version,\n architecture: process.arch,\n },\n },\n },\n });\n }\n\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-evaluate */\nexport type RuntimeEvaluate = CdpMessage<\n 'Runtime.evaluate',\n Protocol.Runtime.EvaluateRequest,\n Protocol.Runtime.EvaluateResponse\n>;\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeAttacherBase.ts#L22-L54 */\nfunction isVscodeNodeAttachEnvironmentInjection(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process==='undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.env[\"NODE_OPTIONS\"]`)\n );\n}\n\n/** @see https://github.com/microsoft/vscode-js-debug/blob/1d104b5184736677ab5cc280c70bbd227403850c/src/targets/node/nodeLauncherBase.ts#L523-L531 */\nfunction isVscodeNodeTelemetry(message: DebuggerRequest<RuntimeEvaluate>) {\n return (\n message.params?.expression.includes(`typeof process === 'undefined'`) &&\n message.params?.expression.includes(`'process not defined'`) &&\n message.params?.expression.includes(`process.pid`) &&\n message.params?.expression.includes(`process.version`) &&\n message.params?.expression.includes(`process.arch`)\n );\n}\n"],"names":["VscodeRuntimeEvaluateHandler","MessageHandler","isEnabled","getDebuggerType","debugger","userAgent","handleDebuggerMessage","message","method","isVscodeNodeAttachEnvironmentInjection","sendToDebugger","id","result","type","value","isVscodeNodeTelemetry","processId","page","nodeVersion","process","version","architecture","arch","params","expression","includes"],"mappings":";;;;+BAaaA;;;eAAAA;;;gCAXkB;iCACC;AAUzB,MAAMA,qCAAqCC,8BAAc;IAC9DC,YAAY;QACV,OAAOC,IAAAA,gCAAe,EAAC,IAAI,CAACC,QAAQ,CAACC,SAAS,MAAM;IACtD;IAEAC,sBAAsBC,OAAyC,EAAE;QAC/D,IAAIA,QAAQC,MAAM,KAAK,sBAAsBC,uCAAuCF,UAAU;YAC5F,OAAO,IAAI,CAACG,cAAc,CAAkC;gBAC1DC,IAAIJ,QAAQI,EAAE;gBACdC,QAAQ;oBACNA,QAAQ;wBACNC,MAAM;wBACNC,OAAO,CAAC,gEAAgE,CAAC;oBAC3E;gBACF;YACF;QACF;QAEA,IAAIP,QAAQC,MAAM,KAAK,sBAAsBO,sBAAsBR,UAAU;YAC3E,OAAO,IAAI,CAACG,cAAc,CAAkC;gBAC1DC,IAAIJ,QAAQI,EAAE;gBACdC,QAAQ;oBACNA,QAAQ;wBACNC,MAAM;wBACNC,OAAO;4BACLE,WAAW,IAAI,CAACC,IAAI,CAACN,EAAE;4BACvBO,aAAaC,QAAQC,OAAO;4BAC5BC,cAAcF,QAAQG,IAAI;wBAC5B;oBACF;gBACF;YACF;QACF;QAEA,OAAO;IACT;AACF;AASA,iJAAiJ,GACjJ,SAASb,uCAAuCF,OAAyC;QAErFA,iBACAA,kBACAA;IAHF,OACEA,EAAAA,kBAAAA,QAAQgB,MAAM,qBAAdhB,gBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,4BAA4B,CAAC,QAClElB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,QAC3DlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;AAErE;AAEA,mJAAmJ,GACnJ,SAASV,sBAAsBR,OAAyC;QAEpEA,iBACAA,kBACAA,kBACAA,kBACAA;IALF,OACEA,EAAAA,kBAAAA,QAAQgB,MAAM,qBAAdhB,gBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,QACpElB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,QAC3DlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,WAAW,CAAC,QACjDlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,eAAe,CAAC,QACrDlB,mBAAAA,QAAQgB,MAAM,qBAAdhB,iBAAgBiB,UAAU,CAACC,QAAQ,CAAC,CAAC,YAAY,CAAC;AAEtD"}
|
package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js
CHANGED
|
@@ -4,35 +4,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "VscodeRuntimeGetPropertiesHandler", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return VscodeRuntimeGetPropertiesHandler;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
const
|
|
11
|
+
const _MessageHandler = require("../MessageHandler");
|
|
10
12
|
const _getDebuggerType = require("../getDebuggerType");
|
|
11
|
-
class VscodeRuntimeGetPropertiesHandler extends
|
|
12
|
-
/** Keep track of `Runtime.getProperties` responses to intercept, by request id */ interceptGetProperties = new Set();
|
|
13
|
+
class VscodeRuntimeGetPropertiesHandler extends _MessageHandler.MessageHandler {
|
|
13
14
|
isEnabled() {
|
|
14
|
-
return (0, _getDebuggerType.getDebuggerType)(this.debugger.userAgent) ===
|
|
15
|
+
return (0, _getDebuggerType.getDebuggerType)(this.debugger.userAgent) === 'vscode';
|
|
15
16
|
}
|
|
16
17
|
handleDebuggerMessage(message) {
|
|
17
|
-
if (message.method ===
|
|
18
|
+
if (message.method === 'Runtime.getProperties') {
|
|
18
19
|
this.interceptGetProperties.add(message.id);
|
|
19
20
|
}
|
|
20
21
|
// Do not block propagation of this message
|
|
21
22
|
return false;
|
|
22
23
|
}
|
|
23
24
|
handleDeviceMessage(message) {
|
|
24
|
-
if (
|
|
25
|
+
if ('id' in message && this.interceptGetProperties.has(message.id)) {
|
|
25
26
|
this.interceptGetProperties.delete(message.id);
|
|
26
27
|
for (const item of message.result.result ?? []){
|
|
27
|
-
var
|
|
28
|
+
var _item_value;
|
|
28
29
|
// Force-fully format the properties description to be an empty string
|
|
29
30
|
if (item.value) {
|
|
30
|
-
item.value.description = item.value.description ??
|
|
31
|
+
item.value.description = item.value.description ?? '';
|
|
31
32
|
}
|
|
32
33
|
// Avoid passing the `objectId` for symbol types.
|
|
33
34
|
// When collapsing in vscode, it will fetch information about the symbol using the `objectId`.
|
|
34
35
|
// The `Runtime.getProperties` request of the symbol hard-crashes Hermes.
|
|
35
|
-
if (((
|
|
36
|
+
if (((_item_value = item.value) == null ? void 0 : _item_value.type) === 'symbol' && item.value.objectId) {
|
|
36
37
|
delete item.value.objectId;
|
|
37
38
|
}
|
|
38
39
|
}
|
|
@@ -40,6 +41,9 @@ class VscodeRuntimeGetPropertiesHandler extends _messageHandler.MessageHandler {
|
|
|
40
41
|
// Do not block propagation of this message
|
|
41
42
|
return false;
|
|
42
43
|
}
|
|
44
|
+
constructor(...args){
|
|
45
|
+
super(...args), /** Keep track of `Runtime.getProperties` responses to intercept, by request id */ this.interceptGetProperties = new Set();
|
|
46
|
+
}
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
//# sourceMappingURL=VscodeRuntimeGetProperties.js.map
|
package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode doesn't seem to work nicely with missing `description` fields on `RemoteObject` instances.\n * It also tries to invoke `Runtime.callFunctionOn` on `Symbol` types, which crashes Hermes.\n * This handler tries to compensate for these two separate issues.\n *\n * @see https://github.com/facebook/hermes/issues/114\n * @see https://github.com/microsoft/vscode-js-debug/issues/1583\n */\nexport class VscodeRuntimeGetPropertiesHandler extends MessageHandler {\n /** Keep track of `Runtime.getProperties` responses to intercept, by request id */\n interceptGetProperties = new Set<number>();\n\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeGetProperties>) {\n if (message.method === 'Runtime.getProperties') {\n this.interceptGetProperties.add(message.id);\n }\n\n // Do not block propagation of this message\n return false;\n }\n\n handleDeviceMessage(message: DeviceResponse<RuntimeGetProperties>) {\n if ('id' in message && this.interceptGetProperties.has(message.id)) {\n this.interceptGetProperties.delete(message.id);\n\n for (const item of message.result.result ?? []) {\n // Force-fully format the properties description to be an empty string\n if (item.value) {\n item.value.description = item.value.description ?? '';\n }\n\n // Avoid passing the `objectId` for symbol types.\n // When collapsing in vscode, it will fetch information about the symbol using the `objectId`.\n // The `Runtime.getProperties` request of the symbol hard-crashes Hermes.\n if (item.value?.type === 'symbol' && item.value.objectId) {\n delete item.value.objectId;\n }\n }\n }\n\n // Do not block propagation of this message\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-getProperties */\nexport type RuntimeGetProperties = CdpMessage<\n 'Runtime.getProperties',\n Protocol.Runtime.GetPropertiesRequest,\n Protocol.Runtime.GetPropertiesResponse\n>;\n"],"names":["VscodeRuntimeGetPropertiesHandler","MessageHandler","
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.ts"],"sourcesContent":["import type Protocol from 'devtools-protocol';\n\nimport { MessageHandler } from '../MessageHandler';\nimport { getDebuggerType } from '../getDebuggerType';\nimport type { CdpMessage, DebuggerRequest, DeviceResponse } from '../types';\n\n/**\n * Vscode doesn't seem to work nicely with missing `description` fields on `RemoteObject` instances.\n * It also tries to invoke `Runtime.callFunctionOn` on `Symbol` types, which crashes Hermes.\n * This handler tries to compensate for these two separate issues.\n *\n * @see https://github.com/facebook/hermes/issues/114\n * @see https://github.com/microsoft/vscode-js-debug/issues/1583\n */\nexport class VscodeRuntimeGetPropertiesHandler extends MessageHandler {\n /** Keep track of `Runtime.getProperties` responses to intercept, by request id */\n interceptGetProperties = new Set<number>();\n\n isEnabled() {\n return getDebuggerType(this.debugger.userAgent) === 'vscode';\n }\n\n handleDebuggerMessage(message: DebuggerRequest<RuntimeGetProperties>) {\n if (message.method === 'Runtime.getProperties') {\n this.interceptGetProperties.add(message.id);\n }\n\n // Do not block propagation of this message\n return false;\n }\n\n handleDeviceMessage(message: DeviceResponse<RuntimeGetProperties>) {\n if ('id' in message && this.interceptGetProperties.has(message.id)) {\n this.interceptGetProperties.delete(message.id);\n\n for (const item of message.result.result ?? []) {\n // Force-fully format the properties description to be an empty string\n if (item.value) {\n item.value.description = item.value.description ?? '';\n }\n\n // Avoid passing the `objectId` for symbol types.\n // When collapsing in vscode, it will fetch information about the symbol using the `objectId`.\n // The `Runtime.getProperties` request of the symbol hard-crashes Hermes.\n if (item.value?.type === 'symbol' && item.value.objectId) {\n delete item.value.objectId;\n }\n }\n }\n\n // Do not block propagation of this message\n return false;\n }\n}\n\n/** @see https://chromedevtools.github.io/devtools-protocol/v8/Runtime/#method-getProperties */\nexport type RuntimeGetProperties = CdpMessage<\n 'Runtime.getProperties',\n Protocol.Runtime.GetPropertiesRequest,\n Protocol.Runtime.GetPropertiesResponse\n>;\n"],"names":["VscodeRuntimeGetPropertiesHandler","MessageHandler","isEnabled","getDebuggerType","debugger","userAgent","handleDebuggerMessage","message","method","interceptGetProperties","add","id","handleDeviceMessage","has","delete","item","result","value","description","type","objectId","Set"],"mappings":";;;;+BAcaA;;;eAAAA;;;gCAZkB;iCACC;AAWzB,MAAMA,0CAA0CC,8BAAc;IAInEC,YAAY;QACV,OAAOC,IAAAA,gCAAe,EAAC,IAAI,CAACC,QAAQ,CAACC,SAAS,MAAM;IACtD;IAEAC,sBAAsBC,OAA8C,EAAE;QACpE,IAAIA,QAAQC,MAAM,KAAK,yBAAyB;YAC9C,IAAI,CAACC,sBAAsB,CAACC,GAAG,CAACH,QAAQI,EAAE;QAC5C;QAEA,2CAA2C;QAC3C,OAAO;IACT;IAEAC,oBAAoBL,OAA6C,EAAE;QACjE,IAAI,QAAQA,WAAW,IAAI,CAACE,sBAAsB,CAACI,GAAG,CAACN,QAAQI,EAAE,GAAG;YAClE,IAAI,CAACF,sBAAsB,CAACK,MAAM,CAACP,QAAQI,EAAE;YAE7C,KAAK,MAAMI,QAAQR,QAAQS,MAAM,CAACA,MAAM,IAAI,EAAE,CAAE;oBAS1CD;gBARJ,sEAAsE;gBACtE,IAAIA,KAAKE,KAAK,EAAE;oBACdF,KAAKE,KAAK,CAACC,WAAW,GAAGH,KAAKE,KAAK,CAACC,WAAW,IAAI;gBACrD;gBAEA,iDAAiD;gBACjD,8FAA8F;gBAC9F,yEAAyE;gBACzE,IAAIH,EAAAA,cAAAA,KAAKE,KAAK,qBAAVF,YAAYI,IAAI,MAAK,YAAYJ,KAAKE,KAAK,CAACG,QAAQ,EAAE;oBACxD,OAAOL,KAAKE,KAAK,CAACG,QAAQ;gBAC5B;YACF;QACF;QAEA,2CAA2C;QAC3C,OAAO;IACT;;QAtCK,gBACL,gFAAgF,QAChFX,yBAAyB,IAAIY;;AAqC/B"}
|
|
@@ -4,13 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "pageIsSupported", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return pageIsSupported;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
11
|
function pageIsSupported(page) {
|
|
10
|
-
var
|
|
12
|
+
var _page_reactNative;
|
|
11
13
|
// @ts-expect-error No good way to filter this properly in TypeScript
|
|
12
|
-
const capabilities = page.capabilities ?? ((
|
|
13
|
-
return page.title ===
|
|
14
|
+
const capabilities = page.capabilities ?? ((_page_reactNative = page.reactNative) == null ? void 0 : _page_reactNative.capabilities) ?? {};
|
|
15
|
+
return page.title === 'React Native Experimental (Improved Chrome Reloads)' || capabilities.nativePageReloads === true;
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
//# sourceMappingURL=pageIsSupported.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/start/server/metro/debugging/pageIsSupported.ts"],"sourcesContent":["import { Page } from './types';\n\ntype DevicePageInternal = Pick<Page, 'title' | 'capabilities'>;\ntype DevicePageResponse = {\n title: string;\n reactNative?: {\n logicalDeviceId: string;\n capabilities: Page['capabilities'];\n };\n};\n\n/**\n * Determine if a page debug target is supported by our debugging extensions.\n * If it's not, the extended CDP handlers will not be enabled.\n */\nexport function pageIsSupported(page: DevicePageInternal | DevicePageResponse): boolean {\n // @ts-expect-error No good way to filter this properly in TypeScript\n const capabilities = page.capabilities ?? page.reactNative?.capabilities ?? {};\n\n return (\n page.title === 'React Native Experimental (Improved Chrome Reloads)' ||\n capabilities.nativePageReloads === true\n );\n}\n"],"names":["pageIsSupported","page","capabilities","reactNative","title","nativePageReloads"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/start/server/metro/debugging/pageIsSupported.ts"],"sourcesContent":["import { Page } from './types';\n\ntype DevicePageInternal = Pick<Page, 'title' | 'capabilities'>;\ntype DevicePageResponse = {\n title: string;\n reactNative?: {\n logicalDeviceId: string;\n capabilities: Page['capabilities'];\n };\n};\n\n/**\n * Determine if a page debug target is supported by our debugging extensions.\n * If it's not, the extended CDP handlers will not be enabled.\n */\nexport function pageIsSupported(page: DevicePageInternal | DevicePageResponse): boolean {\n // @ts-expect-error No good way to filter this properly in TypeScript\n const capabilities = page.capabilities ?? page.reactNative?.capabilities ?? {};\n\n return (\n page.title === 'React Native Experimental (Improved Chrome Reloads)' ||\n capabilities.nativePageReloads === true\n );\n}\n"],"names":["pageIsSupported","page","capabilities","reactNative","title","nativePageReloads"],"mappings":";;;;+BAegBA;;;eAAAA;;;AAAT,SAASA,gBAAgBC,IAA6C;QAEjCA;IAD1C,qEAAqE;IACrE,MAAMC,eAAeD,KAAKC,YAAY,MAAID,oBAAAA,KAAKE,WAAW,qBAAhBF,kBAAkBC,YAAY,KAAI,CAAC;IAE7E,OACED,KAAKG,KAAK,KAAK,yDACfF,aAAaG,iBAAiB,KAAK;AAEvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -4,11 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "createEventsSocket", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return createEventsSocket;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
function
|
|
11
|
+
function _prettyformat() {
|
|
10
12
|
const data = require("pretty-format");
|
|
11
|
-
|
|
13
|
+
_prettyformat = function() {
|
|
12
14
|
return data;
|
|
13
15
|
};
|
|
14
16
|
return data;
|
|
@@ -23,31 +25,31 @@ function _ws() {
|
|
|
23
25
|
const _createSocketBroadcaster = require("./utils/createSocketBroadcaster");
|
|
24
26
|
const _createSocketMap = require("./utils/createSocketMap");
|
|
25
27
|
const _socketMessages = require("./utils/socketMessages");
|
|
26
|
-
const debug = require(
|
|
28
|
+
const debug = require('debug')('expo:metro:devserver:eventsSocket');
|
|
27
29
|
function createEventsSocket(options) {
|
|
28
30
|
const clients = (0, _createSocketMap.createSocketMap)();
|
|
29
31
|
const broadcast = (0, _createSocketBroadcaster.createBroadcaster)(clients.map);
|
|
30
32
|
const server = new (_ws()).WebSocketServer({
|
|
31
33
|
noServer: true,
|
|
32
|
-
verifyClient ({ origin
|
|
34
|
+
verifyClient ({ origin }) {
|
|
33
35
|
// This exposes the full JS logs and enables issuing commands like reload
|
|
34
36
|
// so let's make sure only locally running stuff can connect to it
|
|
35
37
|
// origin is only checked if it is set, e.g. when the request is made from a (CORS) browser
|
|
36
38
|
// any 'back-end' connection isn't CORS at all, and has full control over the origin header,
|
|
37
39
|
// so there is no point in checking it security wise
|
|
38
|
-
return !origin || origin.startsWith(
|
|
40
|
+
return !origin || origin.startsWith('http://localhost:') || origin.startsWith('file:');
|
|
39
41
|
}
|
|
40
42
|
});
|
|
41
|
-
server.on(
|
|
43
|
+
server.on('connection', (socket)=>{
|
|
42
44
|
const client = clients.registerSocket(socket);
|
|
43
45
|
// Register disconnect handlers
|
|
44
|
-
socket.on(
|
|
45
|
-
socket.on(
|
|
46
|
+
socket.on('close', client.terminate);
|
|
47
|
+
socket.on('error', client.terminate);
|
|
46
48
|
// Register message handler
|
|
47
|
-
socket.on(
|
|
49
|
+
socket.on('message', (data, isBinary)=>{
|
|
48
50
|
const message = (0, _socketMessages.parseRawMessage)(data, isBinary);
|
|
49
51
|
if (!message) return;
|
|
50
|
-
if (message.type ===
|
|
52
|
+
if (message.type === 'command') {
|
|
51
53
|
options.broadcast(message.command, message.params);
|
|
52
54
|
} else {
|
|
53
55
|
debug(`Received unknown message type: ${message.type}`);
|
|
@@ -55,7 +57,7 @@ function createEventsSocket(options) {
|
|
|
55
57
|
});
|
|
56
58
|
});
|
|
57
59
|
return {
|
|
58
|
-
endpoint:
|
|
60
|
+
endpoint: '/events',
|
|
59
61
|
server: new (_ws()).WebSocketServer({
|
|
60
62
|
noServer: true
|
|
61
63
|
}),
|
|
@@ -73,7 +75,7 @@ function serializeMetroEvent(message) {
|
|
|
73
75
|
if (message && message.error && message.error instanceof Error) {
|
|
74
76
|
return (0, _socketMessages.serializeMessage)({
|
|
75
77
|
...message,
|
|
76
|
-
error: (0,
|
|
78
|
+
error: (0, _prettyformat().format)(message.error, {
|
|
77
79
|
escapeString: true,
|
|
78
80
|
highlight: true,
|
|
79
81
|
maxDepth: 3,
|
|
@@ -81,16 +83,16 @@ function serializeMetroEvent(message) {
|
|
|
81
83
|
})
|
|
82
84
|
});
|
|
83
85
|
}
|
|
84
|
-
if (message && message.type ===
|
|
86
|
+
if (message && message.type === 'client_log') {
|
|
85
87
|
return (0, _socketMessages.serializeMessage)({
|
|
86
88
|
...message,
|
|
87
|
-
data: message.data.map((item)=>typeof item ===
|
|
89
|
+
data: message.data.map((item)=>typeof item === 'string' ? item : (0, _prettyformat().format)(item, {
|
|
88
90
|
escapeString: true,
|
|
89
91
|
highlight: true,
|
|
90
92
|
maxDepth: 3,
|
|
91
93
|
min: true,
|
|
92
94
|
plugins: [
|
|
93
|
-
|
|
95
|
+
_prettyformat().plugins.ReactElement
|
|
94
96
|
]
|
|
95
97
|
}))
|
|
96
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createEventSocket.ts"],"sourcesContent":["import { format as prettyFormat, plugins as prettyPlugins } from 'pretty-format';\nimport { WebSocketServer } from 'ws';\n\nimport type { createMessagesSocket } from './createMessageSocket';\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\nconst debug = require('debug')('expo:metro:devserver:eventsSocket') as typeof console.log;\n\ntype EventsSocketOptions = {\n /** The message endpoint broadcaster, used to relay commands from Metro */\n broadcast: ReturnType<typeof createMessagesSocket>['broadcast'];\n};\n\n/**\n * Metro events server that dispatches all Metro events to connected clients.\n * This includes logs, errors, bundling progression, etc.\n */\nexport function createEventsSocket(options: EventsSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({\n noServer: true,\n verifyClient({ origin }: { origin: string }) {\n // This exposes the full JS logs and enables issuing commands like reload\n // so let's make sure only locally running stuff can connect to it\n // origin is only checked if it is set, e.g. when the request is made from a (CORS) browser\n // any 'back-end' connection isn't CORS at all, and has full control over the origin header,\n // so there is no point in checking it security wise\n return !origin || origin.startsWith('http://localhost:') || origin.startsWith('file:');\n },\n });\n\n server.on('connection', (socket) => {\n const client = clients.registerSocket(socket);\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', (data, isBinary) => {\n const message = parseRawMessage<Command>(data, isBinary);\n if (!message) return;\n\n if (message.type === 'command') {\n options.broadcast(message.command, message.params);\n } else {\n debug(`Received unknown message type: ${message.type}`);\n }\n });\n });\n\n return {\n endpoint: '/events' as const,\n server: new WebSocketServer({ noServer: true }),\n reportMetroEvent: (event: any) => {\n // Avoid serializing data if there are no clients\n if (!clients.map.size) {\n return;\n }\n\n return broadcast(null, serializeMetroEvent(event));\n },\n };\n}\n\ntype Command = {\n type: 'command';\n command: string;\n params?: any;\n};\n\nfunction serializeMetroEvent(message: any): string {\n // Some types reported by Metro are not serializable\n if (message && message.error && message.error instanceof Error) {\n return serializeMessage({\n ...message,\n error: prettyFormat(message.error, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n }),\n });\n }\n\n if (message && message.type === 'client_log') {\n return serializeMessage({\n ...message,\n data: message.data.map((item: any) =>\n typeof item === 'string'\n ? item\n : prettyFormat(item, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n plugins: [prettyPlugins.ReactElement],\n })\n ),\n });\n }\n\n return serializeMessage(message);\n}\n"],"names":["createEventsSocket","debug","require","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","verifyClient","origin","startsWith","on","socket","client","registerSocket","terminate","data","isBinary","message","parseRawMessage","type","command","params","endpoint","reportMetroEvent","event","size","serializeMetroEvent","error","Error","serializeMessage","prettyFormat","escapeString","highlight","maxDepth","min","item","plugins","prettyPlugins","ReactElement"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createEventSocket.ts"],"sourcesContent":["import { format as prettyFormat, plugins as prettyPlugins } from 'pretty-format';\nimport { WebSocketServer } from 'ws';\n\nimport type { createMessagesSocket } from './createMessageSocket';\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\nconst debug = require('debug')('expo:metro:devserver:eventsSocket') as typeof console.log;\n\ntype EventsSocketOptions = {\n /** The message endpoint broadcaster, used to relay commands from Metro */\n broadcast: ReturnType<typeof createMessagesSocket>['broadcast'];\n};\n\n/**\n * Metro events server that dispatches all Metro events to connected clients.\n * This includes logs, errors, bundling progression, etc.\n */\nexport function createEventsSocket(options: EventsSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({\n noServer: true,\n verifyClient({ origin }: { origin: string }) {\n // This exposes the full JS logs and enables issuing commands like reload\n // so let's make sure only locally running stuff can connect to it\n // origin is only checked if it is set, e.g. when the request is made from a (CORS) browser\n // any 'back-end' connection isn't CORS at all, and has full control over the origin header,\n // so there is no point in checking it security wise\n return !origin || origin.startsWith('http://localhost:') || origin.startsWith('file:');\n },\n });\n\n server.on('connection', (socket) => {\n const client = clients.registerSocket(socket);\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', (data, isBinary) => {\n const message = parseRawMessage<Command>(data, isBinary);\n if (!message) return;\n\n if (message.type === 'command') {\n options.broadcast(message.command, message.params);\n } else {\n debug(`Received unknown message type: ${message.type}`);\n }\n });\n });\n\n return {\n endpoint: '/events' as const,\n server: new WebSocketServer({ noServer: true }),\n reportMetroEvent: (event: any) => {\n // Avoid serializing data if there are no clients\n if (!clients.map.size) {\n return;\n }\n\n return broadcast(null, serializeMetroEvent(event));\n },\n };\n}\n\ntype Command = {\n type: 'command';\n command: string;\n params?: any;\n};\n\nfunction serializeMetroEvent(message: any): string {\n // Some types reported by Metro are not serializable\n if (message && message.error && message.error instanceof Error) {\n return serializeMessage({\n ...message,\n error: prettyFormat(message.error, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n }),\n });\n }\n\n if (message && message.type === 'client_log') {\n return serializeMessage({\n ...message,\n data: message.data.map((item: any) =>\n typeof item === 'string'\n ? item\n : prettyFormat(item, {\n escapeString: true,\n highlight: true,\n maxDepth: 3,\n min: true,\n plugins: [prettyPlugins.ReactElement],\n })\n ),\n });\n }\n\n return serializeMessage(message);\n}\n"],"names":["createEventsSocket","debug","require","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","verifyClient","origin","startsWith","on","socket","client","registerSocket","terminate","data","isBinary","message","parseRawMessage","type","command","params","endpoint","reportMetroEvent","event","size","serializeMetroEvent","error","Error","serializeMessage","prettyFormat","escapeString","highlight","maxDepth","min","item","plugins","prettyPlugins","ReactElement"],"mappings":";;;;+BAmBgBA;;;eAAAA;;;;yBAnBiD;;;;;;;yBACjC;;;;;;yCAGE;iCACF;gCACkB;AAElD,MAAMC,QAAQC,QAAQ,SAAS;AAWxB,SAASF,mBAAmBG,OAA4B;IAC7D,MAAMC,UAAUC,IAAAA,gCAAe;IAC/B,MAAMC,YAAYC,IAAAA,0CAAiB,EAACH,QAAQI,GAAG;IAE/C,MAAMC,SAAS,IAAIC,CAAAA,KAAc,iBAAC,CAAC;QACjCC,UAAU;QACVC,cAAa,EAAEC,MAAM,EAAsB;YACzC,yEAAyE;YACzE,kEAAkE;YAClE,2FAA2F;YAC3F,4FAA4F;YAC5F,oDAAoD;YACpD,OAAO,CAACA,UAAUA,OAAOC,UAAU,CAAC,wBAAwBD,OAAOC,UAAU,CAAC;QAChF;IACF;IAEAL,OAAOM,EAAE,CAAC,cAAc,CAACC;QACvB,MAAMC,SAASb,QAAQc,cAAc,CAACF;QAEtC,+BAA+B;QAC/BA,OAAOD,EAAE,CAAC,SAASE,OAAOE,SAAS;QACnCH,OAAOD,EAAE,CAAC,SAASE,OAAOE,SAAS;QACnC,2BAA2B;QAC3BH,OAAOD,EAAE,CAAC,WAAW,CAACK,MAAMC;YAC1B,MAAMC,UAAUC,IAAAA,+BAAe,EAAUH,MAAMC;YAC/C,IAAI,CAACC,SAAS;YAEd,IAAIA,QAAQE,IAAI,KAAK,WAAW;gBAC9BrB,QAAQG,SAAS,CAACgB,QAAQG,OAAO,EAAEH,QAAQI,MAAM;YACnD,OAAO;gBACLzB,MAAM,CAAC,+BAA+B,EAAEqB,QAAQE,IAAI,EAAE;YACxD;QACF;IACF;IAEA,OAAO;QACLG,UAAU;QACVlB,QAAQ,IAAIC,CAAAA,KAAc,iBAAC,CAAC;YAAEC,UAAU;QAAK;QAC7CiB,kBAAkB,CAACC;YACjB,iDAAiD;YACjD,IAAI,CAACzB,QAAQI,GAAG,CAACsB,IAAI,EAAE;gBACrB;YACF;YAEA,OAAOxB,UAAU,MAAMyB,oBAAoBF;QAC7C;IACF;AACF;AAQA,SAASE,oBAAoBT,OAAY;IACvC,oDAAoD;IACpD,IAAIA,WAAWA,QAAQU,KAAK,IAAIV,QAAQU,KAAK,YAAYC,OAAO;QAC9D,OAAOC,IAAAA,gCAAgB,EAAC;YACtB,GAAGZ,OAAO;YACVU,OAAOG,IAAAA,sBAAY,EAACb,QAAQU,KAAK,EAAE;gBACjCI,cAAc;gBACdC,WAAW;gBACXC,UAAU;gBACVC,KAAK;YACP;QACF;IACF;IAEA,IAAIjB,WAAWA,QAAQE,IAAI,KAAK,cAAc;QAC5C,OAAOU,IAAAA,gCAAgB,EAAC;YACtB,GAAGZ,OAAO;YACVF,MAAME,QAAQF,IAAI,CAACZ,GAAG,CAAC,CAACgC,OACtB,OAAOA,SAAS,WACZA,OACAL,IAAAA,sBAAY,EAACK,MAAM;oBACjBJ,cAAc;oBACdC,WAAW;oBACXC,UAAU;oBACVC,KAAK;oBACLE,SAAS;wBAACC,uBAAa,CAACC,YAAY;qBAAC;gBACvC;QAER;IACF;IAEA,OAAOT,IAAAA,gCAAgB,EAACZ;AAC1B"}
|
|
@@ -4,11 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "createMessagesSocket", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return createMessagesSocket;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
function
|
|
11
|
+
function _nodeurl() {
|
|
10
12
|
const data = require("node:url");
|
|
11
|
-
|
|
13
|
+
_nodeurl = function() {
|
|
12
14
|
return data;
|
|
13
15
|
};
|
|
14
16
|
return data;
|
|
@@ -29,23 +31,23 @@ function createMessagesSocket(options) {
|
|
|
29
31
|
const server = new (_ws()).WebSocketServer({
|
|
30
32
|
noServer: true
|
|
31
33
|
});
|
|
32
|
-
server.on(
|
|
34
|
+
server.on('connection', (socket, req)=>{
|
|
33
35
|
const client = clients.registerSocket(socket);
|
|
34
36
|
// Assign the query parameters to the socket, used for `getpeers` requests
|
|
35
37
|
// NOTE(cedric): this looks like a legacy feature, might be able to drop it
|
|
36
38
|
if (req.url) {
|
|
37
|
-
Object.defineProperty(socket,
|
|
38
|
-
value: (0,
|
|
39
|
+
Object.defineProperty(socket, '_upgradeQuery', {
|
|
40
|
+
value: (0, _nodeurl().parse)(req.url).query
|
|
39
41
|
});
|
|
40
42
|
}
|
|
41
43
|
// Register disconnect handlers
|
|
42
|
-
socket.on(
|
|
43
|
-
socket.on(
|
|
44
|
+
socket.on('close', client.terminate);
|
|
45
|
+
socket.on('error', client.terminate);
|
|
44
46
|
// Register message handler
|
|
45
|
-
socket.on(
|
|
47
|
+
socket.on('message', createClientMessageHandler(socket, client.id, clients, broadcast));
|
|
46
48
|
});
|
|
47
49
|
return {
|
|
48
|
-
endpoint:
|
|
50
|
+
endpoint: '/message',
|
|
49
51
|
server,
|
|
50
52
|
broadcast: (method, params)=>{
|
|
51
53
|
if (clients.map.size === 0) {
|
|
@@ -62,17 +64,17 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
|
|
|
62
64
|
function handleServerRequest(message) {
|
|
63
65
|
// Ignore messages without identifiers, unable to link responses
|
|
64
66
|
if (!message.id) return;
|
|
65
|
-
if (message.method ===
|
|
67
|
+
if (message.method === 'getid') {
|
|
66
68
|
return socket.send((0, _socketMessages.serializeMessage)({
|
|
67
69
|
id: message.id,
|
|
68
70
|
result: clientId
|
|
69
71
|
}));
|
|
70
72
|
}
|
|
71
|
-
if (message.method ===
|
|
73
|
+
if (message.method === 'getpeers') {
|
|
72
74
|
const peers = {};
|
|
73
75
|
clients.map.forEach((peerSocket, peerSocketId)=>{
|
|
74
76
|
if (peerSocketId !== clientId) {
|
|
75
|
-
peers[peerSocketId] =
|
|
77
|
+
peers[peerSocketId] = '_upgradeQuery' in peerSocket ? peerSocket._upgradeQuery : {};
|
|
76
78
|
}
|
|
77
79
|
});
|
|
78
80
|
return socket.send((0, _socketMessages.serializeMessage)({
|
|
@@ -90,11 +92,11 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
|
|
|
90
92
|
}
|
|
91
93
|
// Handle incoming requests from clients
|
|
92
94
|
if (messageIsRequest(message)) {
|
|
93
|
-
var
|
|
94
|
-
if (message.target ===
|
|
95
|
+
var _clients_findSocket;
|
|
96
|
+
if (message.target === 'server') {
|
|
95
97
|
return handleServerRequest(message);
|
|
96
98
|
}
|
|
97
|
-
return (
|
|
99
|
+
return (_clients_findSocket = clients.findSocket(message.target)) == null ? void 0 : _clients_findSocket.send((0, _socketMessages.serializeMessage)({
|
|
98
100
|
method: message.method,
|
|
99
101
|
params: message.params,
|
|
100
102
|
id: !message.id ? undefined : {
|
|
@@ -105,8 +107,8 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
|
|
|
105
107
|
}
|
|
106
108
|
// Handle incoming responses
|
|
107
109
|
if (messageIsResponse(message)) {
|
|
108
|
-
var
|
|
109
|
-
return (
|
|
110
|
+
var _clients_findSocket1;
|
|
111
|
+
return (_clients_findSocket1 = clients.findSocket(message.id.clientId)) == null ? void 0 : _clients_findSocket1.send((0, _socketMessages.serializeMessage)({
|
|
110
112
|
id: message.id.requestId,
|
|
111
113
|
result: message.result,
|
|
112
114
|
error: message.error
|
|
@@ -115,13 +117,13 @@ function createClientMessageHandler(socket, clientId, clients, broadcast) {
|
|
|
115
117
|
};
|
|
116
118
|
}
|
|
117
119
|
function messageIsBroadcast(message) {
|
|
118
|
-
return
|
|
120
|
+
return 'method' in message && typeof message.method === 'string' && (!('id' in message) || message.id === undefined) && (!('target' in message) || message.target === undefined);
|
|
119
121
|
}
|
|
120
122
|
function messageIsRequest(message) {
|
|
121
|
-
return
|
|
123
|
+
return 'method' in message && typeof message.method === 'string' && 'target' in message && typeof message.target === 'string';
|
|
122
124
|
}
|
|
123
125
|
function messageIsResponse(message) {
|
|
124
|
-
return
|
|
126
|
+
return 'id' in message && typeof message.id === 'object' && typeof message.id.requestId !== 'undefined' && typeof message.id.clientId === 'string' && ('result' in message && !!message.result || 'error' in message && !!message.error);
|
|
125
127
|
}
|
|
126
128
|
|
|
127
129
|
//# sourceMappingURL=createMessageSocket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMessageSocket.ts"],"sourcesContent":["import { parse } from 'node:url';\nimport { type WebSocket, WebSocketServer, type RawData as WebSocketRawData } from 'ws';\n\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap, type SocketId } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\ntype MessageSocketOptions = {\n logger: {\n warn: (message: string) => any;\n };\n};\n\n/**\n * Client \"command\" server that dispatches basic commands to connected clients.\n * This basic client to client communication, reload, or open dev menu cli commands.\n */\nexport function createMessagesSocket(options: MessageSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({ noServer: true });\n\n server.on('connection', (socket, req) => {\n const client = clients.registerSocket(socket);\n\n // Assign the query parameters to the socket, used for `getpeers` requests\n // NOTE(cedric): this looks like a legacy feature, might be able to drop it\n if (req.url) {\n Object.defineProperty(socket, '_upgradeQuery', {\n value: parse(req.url).query,\n });\n }\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', createClientMessageHandler(socket, client.id, clients, broadcast));\n });\n\n return {\n endpoint: '/message' as const,\n server,\n broadcast: (method: BroadcastMessage['method'], params?: BroadcastMessage['params']) => {\n if (clients.map.size === 0) {\n return options.logger.warn(\n `No apps connected. Sending \"${method}\" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.`\n );\n }\n\n broadcast(null, serializeMessage({ method, params }));\n },\n };\n}\n\nfunction createClientMessageHandler(\n socket: WebSocket,\n clientId: SocketId,\n clients: ReturnType<typeof createSocketMap>,\n broadcast: ReturnType<typeof createBroadcaster>\n) {\n function handleServerRequest(message: RequestMessage) {\n // Ignore messages without identifiers, unable to link responses\n if (!message.id) return;\n\n if (message.method === 'getid') {\n return socket.send(serializeMessage({ id: message.id, result: clientId }));\n }\n\n if (message.method === 'getpeers') {\n const peers: Record<string, any> = {};\n clients.map.forEach((peerSocket, peerSocketId) => {\n if (peerSocketId !== clientId) {\n peers[peerSocketId] = '_upgradeQuery' in peerSocket ? peerSocket._upgradeQuery : {};\n }\n });\n return socket.send(serializeMessage({ id: message.id, result: peers }));\n }\n }\n\n return (data: WebSocketRawData, isBinary: boolean) => {\n const message = parseRawMessage<IncomingMessage>(data, isBinary);\n if (!message) return;\n\n // Handle broadcast messages\n if (messageIsBroadcast(message)) {\n return broadcast(null, data.toString());\n }\n\n // Handle incoming requests from clients\n if (messageIsRequest(message)) {\n if (message.target === 'server') {\n return handleServerRequest(message);\n }\n\n return clients.findSocket(message.target)?.send(\n serializeMessage({\n method: message.method,\n params: message.params,\n id: !message.id\n ? undefined\n : {\n requestId: message.id,\n clientId,\n },\n })\n );\n }\n\n // Handle incoming responses\n if (messageIsResponse(message)) {\n return clients.findSocket(message.id.clientId)?.send(\n serializeMessage({\n id: message.id.requestId,\n result: message.result,\n error: message.error,\n })\n );\n }\n };\n}\n\ntype MessageId = {\n requestId: string;\n clientId: SocketId;\n};\n\ntype IncomingMessage = BroadcastMessage | RequestMessage | ResponseMessage;\n\ntype BroadcastMessage = {\n method: string;\n params?: Record<string, any>;\n};\n\ntype RequestMessage = {\n method: string;\n params?: Record<string, any>;\n target: string;\n id?: string;\n};\n\ntype ResponseMessage = {\n result?: any;\n error?: Error;\n id: MessageId;\n};\n\nfunction messageIsBroadcast(message: IncomingMessage): message is BroadcastMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n (!('id' in message) || message.id === undefined) &&\n (!('target' in message) || message.target === undefined)\n );\n}\n\nfunction messageIsRequest(message: IncomingMessage): message is RequestMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n 'target' in message &&\n typeof message.target === 'string'\n );\n}\n\nfunction messageIsResponse(message: IncomingMessage): message is ResponseMessage {\n return (\n 'id' in message &&\n typeof message.id === 'object' &&\n typeof message.id.requestId !== 'undefined' &&\n typeof message.id.clientId === 'string' &&\n (('result' in message && !!message.result) || ('error' in message && !!message.error))\n );\n}\n"],"names":["createMessagesSocket","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","on","socket","req","client","registerSocket","url","Object","defineProperty","value","parse","query","terminate","createClientMessageHandler","id","endpoint","method","params","size","logger","warn","serializeMessage","clientId","handleServerRequest","message","send","result","peers","forEach","peerSocket","peerSocketId","_upgradeQuery","data","isBinary","parseRawMessage","messageIsBroadcast","toString","messageIsRequest","target","findSocket","undefined","requestId","messageIsResponse","error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMessageSocket.ts"],"sourcesContent":["import { parse } from 'node:url';\nimport { type WebSocket, WebSocketServer, type RawData as WebSocketRawData } from 'ws';\n\nimport { createBroadcaster } from './utils/createSocketBroadcaster';\nimport { createSocketMap, type SocketId } from './utils/createSocketMap';\nimport { parseRawMessage, serializeMessage } from './utils/socketMessages';\n\ntype MessageSocketOptions = {\n logger: {\n warn: (message: string) => any;\n };\n};\n\n/**\n * Client \"command\" server that dispatches basic commands to connected clients.\n * This basic client to client communication, reload, or open dev menu cli commands.\n */\nexport function createMessagesSocket(options: MessageSocketOptions) {\n const clients = createSocketMap();\n const broadcast = createBroadcaster(clients.map);\n\n const server = new WebSocketServer({ noServer: true });\n\n server.on('connection', (socket, req) => {\n const client = clients.registerSocket(socket);\n\n // Assign the query parameters to the socket, used for `getpeers` requests\n // NOTE(cedric): this looks like a legacy feature, might be able to drop it\n if (req.url) {\n Object.defineProperty(socket, '_upgradeQuery', {\n value: parse(req.url).query,\n });\n }\n\n // Register disconnect handlers\n socket.on('close', client.terminate);\n socket.on('error', client.terminate);\n // Register message handler\n socket.on('message', createClientMessageHandler(socket, client.id, clients, broadcast));\n });\n\n return {\n endpoint: '/message' as const,\n server,\n broadcast: (method: BroadcastMessage['method'], params?: BroadcastMessage['params']) => {\n if (clients.map.size === 0) {\n return options.logger.warn(\n `No apps connected. Sending \"${method}\" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.`\n );\n }\n\n broadcast(null, serializeMessage({ method, params }));\n },\n };\n}\n\nfunction createClientMessageHandler(\n socket: WebSocket,\n clientId: SocketId,\n clients: ReturnType<typeof createSocketMap>,\n broadcast: ReturnType<typeof createBroadcaster>\n) {\n function handleServerRequest(message: RequestMessage) {\n // Ignore messages without identifiers, unable to link responses\n if (!message.id) return;\n\n if (message.method === 'getid') {\n return socket.send(serializeMessage({ id: message.id, result: clientId }));\n }\n\n if (message.method === 'getpeers') {\n const peers: Record<string, any> = {};\n clients.map.forEach((peerSocket, peerSocketId) => {\n if (peerSocketId !== clientId) {\n peers[peerSocketId] = '_upgradeQuery' in peerSocket ? peerSocket._upgradeQuery : {};\n }\n });\n return socket.send(serializeMessage({ id: message.id, result: peers }));\n }\n }\n\n return (data: WebSocketRawData, isBinary: boolean) => {\n const message = parseRawMessage<IncomingMessage>(data, isBinary);\n if (!message) return;\n\n // Handle broadcast messages\n if (messageIsBroadcast(message)) {\n return broadcast(null, data.toString());\n }\n\n // Handle incoming requests from clients\n if (messageIsRequest(message)) {\n if (message.target === 'server') {\n return handleServerRequest(message);\n }\n\n return clients.findSocket(message.target)?.send(\n serializeMessage({\n method: message.method,\n params: message.params,\n id: !message.id\n ? undefined\n : {\n requestId: message.id,\n clientId,\n },\n })\n );\n }\n\n // Handle incoming responses\n if (messageIsResponse(message)) {\n return clients.findSocket(message.id.clientId)?.send(\n serializeMessage({\n id: message.id.requestId,\n result: message.result,\n error: message.error,\n })\n );\n }\n };\n}\n\ntype MessageId = {\n requestId: string;\n clientId: SocketId;\n};\n\ntype IncomingMessage = BroadcastMessage | RequestMessage | ResponseMessage;\n\ntype BroadcastMessage = {\n method: string;\n params?: Record<string, any>;\n};\n\ntype RequestMessage = {\n method: string;\n params?: Record<string, any>;\n target: string;\n id?: string;\n};\n\ntype ResponseMessage = {\n result?: any;\n error?: Error;\n id: MessageId;\n};\n\nfunction messageIsBroadcast(message: IncomingMessage): message is BroadcastMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n (!('id' in message) || message.id === undefined) &&\n (!('target' in message) || message.target === undefined)\n );\n}\n\nfunction messageIsRequest(message: IncomingMessage): message is RequestMessage {\n return (\n 'method' in message &&\n typeof message.method === 'string' &&\n 'target' in message &&\n typeof message.target === 'string'\n );\n}\n\nfunction messageIsResponse(message: IncomingMessage): message is ResponseMessage {\n return (\n 'id' in message &&\n typeof message.id === 'object' &&\n typeof message.id.requestId !== 'undefined' &&\n typeof message.id.clientId === 'string' &&\n (('result' in message && !!message.result) || ('error' in message && !!message.error))\n );\n}\n"],"names":["createMessagesSocket","options","clients","createSocketMap","broadcast","createBroadcaster","map","server","WebSocketServer","noServer","on","socket","req","client","registerSocket","url","Object","defineProperty","value","parse","query","terminate","createClientMessageHandler","id","endpoint","method","params","size","logger","warn","serializeMessage","clientId","handleServerRequest","message","send","result","peers","forEach","peerSocket","peerSocketId","_upgradeQuery","data","isBinary","parseRawMessage","messageIsBroadcast","toString","messageIsRequest","target","findSocket","undefined","requestId","messageIsResponse","error"],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "createMetroMiddleware", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return createMetroMiddleware;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
11
|
function _connect() {
|
|
10
|
-
const data = /*#__PURE__*/
|
|
12
|
+
const data = /*#__PURE__*/ _interop_require_default(require("connect"));
|
|
11
13
|
_connect = function() {
|
|
12
14
|
return data;
|
|
13
15
|
};
|
|
@@ -17,22 +19,22 @@ const _createEventSocket = require("./createEventSocket");
|
|
|
17
19
|
const _createMessageSocket = require("./createMessageSocket");
|
|
18
20
|
const _log = require("../../../../log");
|
|
19
21
|
const _editor = require("../../../../utils/editor");
|
|
20
|
-
function
|
|
22
|
+
function _interop_require_default(obj) {
|
|
21
23
|
return obj && obj.__esModule ? obj : {
|
|
22
24
|
default: obj
|
|
23
25
|
};
|
|
24
26
|
}
|
|
25
|
-
const compression = require(
|
|
27
|
+
const compression = require('compression');
|
|
26
28
|
function createMetroMiddleware(metroConfig) {
|
|
27
29
|
const messages = (0, _createMessageSocket.createMessagesSocket)({
|
|
28
30
|
logger: _log.Log
|
|
29
31
|
});
|
|
30
32
|
const events = (0, _createEventSocket.createEventsSocket)(messages);
|
|
31
33
|
const middleware = (0, _connect().default)().use(noCacheMiddleware).use(compression())// Support opening stack frames from clients directly in the editor
|
|
32
|
-
.use(
|
|
34
|
+
.use('/open-stack-frame', rawBodyMiddleware).use('/open-stack-frame', metroOpenStackFrameMiddleware)// Support the symbolication endpoint of Metro
|
|
33
35
|
// See: https://github.com/facebook/metro/blob/a792d85ffde3c21c3fbf64ac9404ab0afe5ff957/packages/metro/src/Server.js#L1266
|
|
34
|
-
.use(
|
|
35
|
-
.use(
|
|
36
|
+
.use('/symbolicate', rawBodyMiddleware)// Support status check to detect if the packager needs to be started from the native side
|
|
37
|
+
.use('/status', createMetroStatusMiddleware(metroConfig));
|
|
36
38
|
return {
|
|
37
39
|
middleware,
|
|
38
40
|
messagesSocket: messages,
|
|
@@ -44,34 +46,34 @@ function createMetroMiddleware(metroConfig) {
|
|
|
44
46
|
};
|
|
45
47
|
}
|
|
46
48
|
const noCacheMiddleware = (req, res, next)=>{
|
|
47
|
-
res.setHeader(
|
|
48
|
-
res.setHeader(
|
|
49
|
-
res.setHeader(
|
|
50
|
-
res.setHeader(
|
|
49
|
+
res.setHeader('Surrogate-Control', 'no-store');
|
|
50
|
+
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');
|
|
51
|
+
res.setHeader('Pragma', 'no-cache');
|
|
52
|
+
res.setHeader('Expires', '0');
|
|
51
53
|
next();
|
|
52
54
|
};
|
|
53
55
|
const rawBodyMiddleware = (req, _res, next)=>{
|
|
54
56
|
const reqWithBody = req;
|
|
55
|
-
reqWithBody.setEncoding(
|
|
56
|
-
reqWithBody.rawBody =
|
|
57
|
-
reqWithBody.on(
|
|
58
|
-
reqWithBody.on(
|
|
57
|
+
reqWithBody.setEncoding('utf8');
|
|
58
|
+
reqWithBody.rawBody = '';
|
|
59
|
+
reqWithBody.on('data', (chunk)=>reqWithBody.rawBody += chunk);
|
|
60
|
+
reqWithBody.on('end', next);
|
|
59
61
|
};
|
|
60
62
|
const metroOpenStackFrameMiddleware = (req, res, next)=>{
|
|
61
63
|
// Only accept POST requests
|
|
62
|
-
if (req.method !==
|
|
64
|
+
if (req.method !== 'POST') return next();
|
|
63
65
|
// Only handle requests with a raw body
|
|
64
|
-
if (!(
|
|
66
|
+
if (!('rawBody' in req) || !req.rawBody) {
|
|
65
67
|
res.statusCode = 406;
|
|
66
|
-
return res.end(
|
|
68
|
+
return res.end('Open stack frame requires the JSON stack frame as request body');
|
|
67
69
|
}
|
|
68
70
|
const frame = JSON.parse(req.rawBody);
|
|
69
|
-
(0, _editor.openInEditorAsync)(frame.file, frame.lineNumber).finally(()=>res.end(
|
|
71
|
+
(0, _editor.openInEditorAsync)(frame.file, frame.lineNumber).finally(()=>res.end('OK'));
|
|
70
72
|
};
|
|
71
73
|
function createMetroStatusMiddleware(metroConfig) {
|
|
72
74
|
return (_req, res)=>{
|
|
73
|
-
res.setHeader(
|
|
74
|
-
res.end(
|
|
75
|
+
res.setHeader('X-React-Native-Project-Root', metroConfig.projectRoot);
|
|
76
|
+
res.end('packager-status:running');
|
|
75
77
|
};
|
|
76
78
|
}
|
|
77
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMetroMiddleware.ts"],"sourcesContent":["import connect from 'connect';\nimport type { MetroConfig } from 'metro';\n\nimport { createEventsSocket } from './createEventSocket';\nimport { createMessagesSocket } from './createMessageSocket';\nimport { Log } from '../../../../log';\nimport { openInEditorAsync } from '../../../../utils/editor';\n\nconst compression = require('compression');\n\nexport function createMetroMiddleware(metroConfig: Pick<MetroConfig, 'projectRoot'>) {\n const messages = createMessagesSocket({ logger: Log });\n const events = createEventsSocket(messages);\n\n const middleware = connect()\n .use(noCacheMiddleware)\n .use(compression())\n // Support opening stack frames from clients directly in the editor\n .use('/open-stack-frame', rawBodyMiddleware)\n .use('/open-stack-frame', metroOpenStackFrameMiddleware)\n // Support the symbolication endpoint of Metro\n // See: https://github.com/facebook/metro/blob/a792d85ffde3c21c3fbf64ac9404ab0afe5ff957/packages/metro/src/Server.js#L1266\n .use('/symbolicate', rawBodyMiddleware)\n // Support status check to detect if the packager needs to be started from the native side\n .use('/status', createMetroStatusMiddleware(metroConfig));\n\n return {\n middleware,\n messagesSocket: messages,\n eventsSocket: events,\n websocketEndpoints: {\n [messages.endpoint]: messages.server,\n [events.endpoint]: events.server,\n },\n };\n}\n\nconst noCacheMiddleware: connect.NextHandleFunction = (req, res, next) => {\n res.setHeader('Surrogate-Control', 'no-store');\n res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');\n res.setHeader('Pragma', 'no-cache');\n res.setHeader('Expires', '0');\n next();\n};\n\nconst rawBodyMiddleware: connect.NextHandleFunction = (req, _res, next) => {\n const reqWithBody = req as typeof req & { rawBody: string };\n reqWithBody.setEncoding('utf8');\n reqWithBody.rawBody = '';\n reqWithBody.on('data', (chunk) => (reqWithBody.rawBody += chunk));\n reqWithBody.on('end', next);\n};\n\nconst metroOpenStackFrameMiddleware: connect.NextHandleFunction = (req, res, next) => {\n // Only accept POST requests\n if (req.method !== 'POST') return next();\n // Only handle requests with a raw body\n if (!('rawBody' in req) || !req.rawBody) {\n res.statusCode = 406;\n return res.end('Open stack frame requires the JSON stack frame as request body');\n }\n\n const frame = JSON.parse(req.rawBody as string);\n openInEditorAsync(frame.file, frame.lineNumber).finally(() => res.end('OK'));\n};\n\nfunction createMetroStatusMiddleware(\n metroConfig: Pick<MetroConfig, 'projectRoot'>\n): connect.NextHandleFunction {\n return (_req, res) => {\n res.setHeader('X-React-Native-Project-Root', metroConfig.projectRoot!);\n res.end('packager-status:running');\n };\n}\n"],"names":["createMetroMiddleware","compression","require","metroConfig","messages","createMessagesSocket","logger","Log","events","createEventsSocket","middleware","connect","use","noCacheMiddleware","rawBodyMiddleware","metroOpenStackFrameMiddleware","createMetroStatusMiddleware","messagesSocket","eventsSocket","websocketEndpoints","endpoint","server","req","res","next","setHeader","_res","reqWithBody","setEncoding","rawBody","on","chunk","method","statusCode","end","frame","JSON","parse","openInEditorAsync","file","lineNumber","finally","_req","projectRoot"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/start/server/metro/dev-server/createMetroMiddleware.ts"],"sourcesContent":["import connect from 'connect';\nimport type { MetroConfig } from 'metro';\n\nimport { createEventsSocket } from './createEventSocket';\nimport { createMessagesSocket } from './createMessageSocket';\nimport { Log } from '../../../../log';\nimport { openInEditorAsync } from '../../../../utils/editor';\n\nconst compression = require('compression');\n\nexport function createMetroMiddleware(metroConfig: Pick<MetroConfig, 'projectRoot'>) {\n const messages = createMessagesSocket({ logger: Log });\n const events = createEventsSocket(messages);\n\n const middleware = connect()\n .use(noCacheMiddleware)\n .use(compression())\n // Support opening stack frames from clients directly in the editor\n .use('/open-stack-frame', rawBodyMiddleware)\n .use('/open-stack-frame', metroOpenStackFrameMiddleware)\n // Support the symbolication endpoint of Metro\n // See: https://github.com/facebook/metro/blob/a792d85ffde3c21c3fbf64ac9404ab0afe5ff957/packages/metro/src/Server.js#L1266\n .use('/symbolicate', rawBodyMiddleware)\n // Support status check to detect if the packager needs to be started from the native side\n .use('/status', createMetroStatusMiddleware(metroConfig));\n\n return {\n middleware,\n messagesSocket: messages,\n eventsSocket: events,\n websocketEndpoints: {\n [messages.endpoint]: messages.server,\n [events.endpoint]: events.server,\n },\n };\n}\n\nconst noCacheMiddleware: connect.NextHandleFunction = (req, res, next) => {\n res.setHeader('Surrogate-Control', 'no-store');\n res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, proxy-revalidate');\n res.setHeader('Pragma', 'no-cache');\n res.setHeader('Expires', '0');\n next();\n};\n\nconst rawBodyMiddleware: connect.NextHandleFunction = (req, _res, next) => {\n const reqWithBody = req as typeof req & { rawBody: string };\n reqWithBody.setEncoding('utf8');\n reqWithBody.rawBody = '';\n reqWithBody.on('data', (chunk) => (reqWithBody.rawBody += chunk));\n reqWithBody.on('end', next);\n};\n\nconst metroOpenStackFrameMiddleware: connect.NextHandleFunction = (req, res, next) => {\n // Only accept POST requests\n if (req.method !== 'POST') return next();\n // Only handle requests with a raw body\n if (!('rawBody' in req) || !req.rawBody) {\n res.statusCode = 406;\n return res.end('Open stack frame requires the JSON stack frame as request body');\n }\n\n const frame = JSON.parse(req.rawBody as string);\n openInEditorAsync(frame.file, frame.lineNumber).finally(() => res.end('OK'));\n};\n\nfunction createMetroStatusMiddleware(\n metroConfig: Pick<MetroConfig, 'projectRoot'>\n): connect.NextHandleFunction {\n return (_req, res) => {\n res.setHeader('X-React-Native-Project-Root', metroConfig.projectRoot!);\n res.end('packager-status:running');\n };\n}\n"],"names":["createMetroMiddleware","compression","require","metroConfig","messages","createMessagesSocket","logger","Log","events","createEventsSocket","middleware","connect","use","noCacheMiddleware","rawBodyMiddleware","metroOpenStackFrameMiddleware","createMetroStatusMiddleware","messagesSocket","eventsSocket","websocketEndpoints","endpoint","server","req","res","next","setHeader","_res","reqWithBody","setEncoding","rawBody","on","chunk","method","statusCode","end","frame","JSON","parse","openInEditorAsync","file","lineNumber","finally","_req","projectRoot"],"mappings":";;;;+BAUgBA;;;eAAAA;;;;gEAVI;;;;;;mCAGe;qCACE;qBACjB;wBACc;;;;;;AAElC,MAAMC,cAAcC,QAAQ;AAErB,SAASF,sBAAsBG,WAA6C;IACjF,MAAMC,WAAWC,IAAAA,yCAAoB,EAAC;QAAEC,QAAQC,QAAG;IAAC;IACpD,MAAMC,SAASC,IAAAA,qCAAkB,EAACL;IAElC,MAAMM,aAAaC,IAAAA,kBAAO,IACvBC,GAAG,CAACC,mBACJD,GAAG,CAACX,cACL,mEAAmE;KAClEW,GAAG,CAAC,qBAAqBE,mBACzBF,GAAG,CAAC,qBAAqBG,8BAC1B,8CAA8C;IAC9C,0HAA0H;KACzHH,GAAG,CAAC,gBAAgBE,kBACrB,0FAA0F;KACzFF,GAAG,CAAC,WAAWI,4BAA4Bb;IAE9C,OAAO;QACLO;QACAO,gBAAgBb;QAChBc,cAAcV;QACdW,oBAAoB;YAClB,CAACf,SAASgB,QAAQ,CAAC,EAAEhB,SAASiB,MAAM;YACpC,CAACb,OAAOY,QAAQ,CAAC,EAAEZ,OAAOa,MAAM;QAClC;IACF;AACF;AAEA,MAAMR,oBAAgD,CAACS,KAAKC,KAAKC;IAC/DD,IAAIE,SAAS,CAAC,qBAAqB;IACnCF,IAAIE,SAAS,CAAC,iBAAiB;IAC/BF,IAAIE,SAAS,CAAC,UAAU;IACxBF,IAAIE,SAAS,CAAC,WAAW;IACzBD;AACF;AAEA,MAAMV,oBAAgD,CAACQ,KAAKI,MAAMF;IAChE,MAAMG,cAAcL;IACpBK,YAAYC,WAAW,CAAC;IACxBD,YAAYE,OAAO,GAAG;IACtBF,YAAYG,EAAE,CAAC,QAAQ,CAACC,QAAWJ,YAAYE,OAAO,IAAIE;IAC1DJ,YAAYG,EAAE,CAAC,OAAON;AACxB;AAEA,MAAMT,gCAA4D,CAACO,KAAKC,KAAKC;IAC3E,4BAA4B;IAC5B,IAAIF,IAAIU,MAAM,KAAK,QAAQ,OAAOR;IAClC,uCAAuC;IACvC,IAAI,CAAE,CAAA,aAAaF,GAAE,KAAM,CAACA,IAAIO,OAAO,EAAE;QACvCN,IAAIU,UAAU,GAAG;QACjB,OAAOV,IAAIW,GAAG,CAAC;IACjB;IAEA,MAAMC,QAAQC,KAAKC,KAAK,CAACf,IAAIO,OAAO;IACpCS,IAAAA,yBAAiB,EAACH,MAAMI,IAAI,EAAEJ,MAAMK,UAAU,EAAEC,OAAO,CAAC,IAAMlB,IAAIW,GAAG,CAAC;AACxE;AAEA,SAASlB,4BACPb,WAA6C;IAE7C,OAAO,CAACuC,MAAMnB;QACZA,IAAIE,SAAS,CAAC,+BAA+BtB,YAAYwC,WAAW;QACpEpB,IAAIW,GAAG,CAAC;IACV;AACF"}
|
|
@@ -4,9 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "createBroadcaster", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get: ()
|
|
7
|
+
get: function() {
|
|
8
|
+
return createBroadcaster;
|
|
9
|
+
}
|
|
8
10
|
});
|
|
9
|
-
const debug = require(
|
|
11
|
+
const debug = require('debug')('expo:metro:dev-server:broadcaster');
|
|
10
12
|
function createBroadcaster(sockets) {
|
|
11
13
|
return function broadcast(senderSocketId, message) {
|
|
12
14
|
// Ignore if there are no connected sockets
|