@expo/cli 0.17.9 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bin/cli +11 -7
- package/build/bin/cli.map +1 -1
- package/build/src/api/getExpoSchema.js +23 -5
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/graphql/client.js +28 -10
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +16 -4
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +8 -2
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +8 -2
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemCache.js +21 -9
- package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
- package/build/src/api/rest/cache/response.js +9 -3
- package/build/src/api/rest/cache/response.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +32 -8
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +23 -5
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +9 -4
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +8 -2
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/settings.js +8 -2
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +18 -6
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +26 -8
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +17 -5
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +32 -8
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +17 -5
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +19 -12
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +25 -7
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +9 -3
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +8 -2
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +16 -4
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +10 -4
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/templates.js +33 -9
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +8 -2
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +8 -2
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +58 -18
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/index.js +17 -5
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +8 -2
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +16 -4
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +32 -12
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +27 -9
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +10 -2
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportHermes.js +29 -17
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +69 -37
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +33 -9
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/fork-bundleAsync.js +61 -16
- package/build/src/export/fork-bundleAsync.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +8 -2
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +15 -3
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/index.js +11 -5
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +9 -3
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +27 -15
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +18 -6
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +8 -2
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +43 -19
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +16 -4
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +9 -3
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/install/applyPlugins.js +8 -2
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +18 -6
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +8 -2
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +14 -8
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +27 -9
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +17 -5
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +17 -5
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/log.js +9 -3
- package/build/src/log.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +37 -13
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +16 -4
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +29 -11
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +24 -6
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +14 -8
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +9 -3
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +119 -0
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
- package/build/src/prebuild/resolveOptions.js +32 -8
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +44 -14
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +18 -2
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +49 -13
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +16 -4
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/run/android/index.js +20 -4
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +55 -0
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
- package/build/src/run/android/resolveInstallApkName.js +18 -6
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +10 -4
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +5 -3
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +13 -4
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +15 -3
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +10 -4
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +8 -2
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +57 -21
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +25 -7
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +10 -4
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +34 -10
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +16 -4
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +8 -2
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +17 -5
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +17 -5
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +25 -7
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +24 -6
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +8 -2
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +16 -4
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +8 -2
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +16 -4
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +16 -4
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +17 -5
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +8 -2
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +9 -3
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +25 -7
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +22 -10
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +19 -7
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +17 -5
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +9 -3
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +1 -2
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +27 -9
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +8 -2
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +10 -2
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/startBundler.js +16 -4
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/start/detectDevClient.js +29 -0
- package/build/src/start/detectDevClient.js.map +1 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js +8 -2
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +16 -4
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +16 -4
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +79 -29
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +24 -6
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +25 -7
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +27 -9
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +24 -6
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +8 -2
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +25 -7
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +32 -21
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +33 -9
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +18 -6
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +29 -11
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +18 -6
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +17 -11
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +27 -9
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +17 -11
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +8 -2
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +9 -3
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +8 -2
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +30 -14
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +33 -13
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +17 -5
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +13 -7
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +19 -7
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +34 -10
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +16 -4
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +21 -4
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +32 -8
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +23 -6
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +10 -4
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +26 -8
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +50 -18
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +4 -3
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +16 -4
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +8 -2
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +9 -3
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +12 -6
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +40 -10
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +16 -4
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/dotExpo.js +27 -9
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/resolveOptions.js +33 -15
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +34 -10
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +16 -4
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +28 -10
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +16 -4
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +9 -3
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +26 -8
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +19 -6
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +91 -55
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +231 -83
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +30 -15
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +26 -8
- 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/createExpoMetroResolver.js +56 -20
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +90 -45
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +29 -28
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +27 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +11 -8
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +63 -0
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +1 -6
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +8 -5
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/PageReload.js +7 -6
- package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +25 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +22 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +28 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +10 -6
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js +14 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
- package/build/src/start/server/metro/debugging/types.js.map +1 -0
- package/build/src/start/server/metro/externals.js +51 -64
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +8 -2
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +8 -2
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +34 -10
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +96 -30
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +40 -21
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +82 -0
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +8 -2
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +44 -17
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +56 -14
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +25 -12
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +8 -2
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +148 -46
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +31 -13
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +22 -10
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +16 -4
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +42 -12
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +8 -2
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +41 -11
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +40 -10
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +24 -6
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +8 -2
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +24 -6
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +25 -8
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js +10 -4
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +24 -6
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +33 -9
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +27 -11
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +33 -9
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +12 -2
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +17 -5
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +8 -2
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +8 -2
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +37 -13
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +16 -4
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +91 -37
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +27 -9
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +27 -9
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +26 -8
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +36 -12
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +17 -5
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +8 -2
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +35 -11
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +36 -11
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +32 -8
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/analytics/getDevClientProperties.js +26 -8
- package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
- package/build/src/utils/analytics/metroDebuggerMiddleware.js +2 -2
- package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
- package/build/src/utils/args.js +32 -8
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/cocoapods.js +64 -28
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +79 -29
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +24 -69
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/dir.js +33 -26
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +40 -10
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +26 -11
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +18 -6
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +40 -31
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +20 -5
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/findUp.js +18 -6
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +19 -7
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +18 -6
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +18 -6
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +9 -3
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/ip.js +8 -2
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +16 -4
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/link.js +18 -6
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +25 -13
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +18 -6
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +8 -2
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/nodeEnv.js +2 -0
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +23 -5
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +64 -17
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/open.js +9 -3
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +16 -4
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +24 -6
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +22 -10
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +8 -2
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +8 -2
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +16 -4
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/scheme.js +75 -23
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/tar.js +16 -4
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/DetachedClient.js +87 -0
- package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
- package/build/src/utils/telemetry/RudderClient.js +98 -0
- package/build/src/utils/telemetry/RudderClient.js.map +1 -0
- package/build/src/utils/telemetry/flushDetached.js +43 -0
- package/build/src/utils/telemetry/flushDetached.js.map +1 -0
- package/build/src/utils/telemetry/getContext.js +92 -0
- package/build/src/utils/telemetry/getContext.js.map +1 -0
- package/build/src/utils/telemetry/index.js +32 -0
- package/build/src/utils/telemetry/index.js.map +1 -0
- package/build/src/utils/telemetry/types.js +6 -0
- package/build/src/utils/telemetry/types.js.map +1 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js +16 -4
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +18 -6
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +10 -4
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +19 -10
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +18 -6
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +8 -2
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +15 -16
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
- package/build/src/run/android/resolveGradleProps.js +0 -37
- package/build/src/run/android/resolveGradleProps.js.map +0 -1
- package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
- package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
- package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
- package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
- package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
- package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
- package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
- package/build/src/utils/analytics/rudderstackClient.js +0 -147
- package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
- /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/analytics/getDevClientProperties.ts"],"sourcesContent":["import { ExpoConfig, getAccountUsername, getDefaultTarget, getPackageJson } from '@expo/config';\nimport JsonFile, { JSONValue } from '@expo/json-file';\nimport resolveFrom from 'resolve-from';\n\nimport { memoize } from '../fn';\n\nconst getAccountName = memoize((exp: Pick<ExpoConfig, 'owner'>) => {\n return getAccountUsername(exp);\n});\n\n/** @returns true if the expo-dev-client package is found in the project `package.json` file. */\nexport function hasDirectDevClientDependency(projectRoot: string): boolean {\n const pkg = getPackageJson(projectRoot);\n return !!pkg.dependencies?.['expo-dev-client'] || !!pkg.devDependencies?.['expo-dev-client'];\n}\n\nconst getDevClientVersion = memoize((projectRoot: string): JSONValue | undefined => {\n try {\n const devClientPackage = resolveFrom.silent(projectRoot, 'expo-dev-client/package.json');\n if (devClientPackage) {\n return JsonFile.read(devClientPackage).version;\n }\n } catch {}\n return undefined;\n});\n\nconst getProjectType = memoize((projectRoot: string): 'managed' | 'generic' => {\n return getDefaultTarget(projectRoot) === 'managed' ? 'managed' : 'generic';\n});\n\nexport default function getDevClientProperties(projectRoot: string, exp: ExpoConfig) {\n return {\n account_name: getAccountName({ owner: exp.owner }),\n dev_client_version: getDevClientVersion(projectRoot),\n project_type: getProjectType(projectRoot),\n uptime_ms: process.uptime() * 1000,\n };\n}\n"],"names":["getDevClientProperties","hasDirectDevClientDependency","projectRoot","exp","account_name","getAccountName","owner","dev_client_version","getDevClientVersion","project_type","getProjectType","uptime_ms","process","uptime","memoize","getAccountUsername","pkg","getPackageJson","dependencies","devDependencies","devClientPackage","resolveFrom","silent","JsonFile","read","version","undefined","getDefaultTarget"],"mappings":"AAAA;;;;kBA8BwBA,sBAAsB;QAnB9BC,4BAA4B,GAA5BA,4BAA4B;
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/analytics/getDevClientProperties.ts"],"sourcesContent":["import { ExpoConfig, getAccountUsername, getDefaultTarget, getPackageJson } from '@expo/config';\nimport JsonFile, { JSONValue } from '@expo/json-file';\nimport resolveFrom from 'resolve-from';\n\nimport { memoize } from '../fn';\n\nconst getAccountName = memoize((exp: Pick<ExpoConfig, 'owner'>) => {\n return getAccountUsername(exp);\n});\n\n/** @returns true if the expo-dev-client package is found in the project `package.json` file. */\nexport function hasDirectDevClientDependency(projectRoot: string): boolean {\n const pkg = getPackageJson(projectRoot);\n return !!pkg.dependencies?.['expo-dev-client'] || !!pkg.devDependencies?.['expo-dev-client'];\n}\n\nconst getDevClientVersion = memoize((projectRoot: string): JSONValue | undefined => {\n try {\n const devClientPackage = resolveFrom.silent(projectRoot, 'expo-dev-client/package.json');\n if (devClientPackage) {\n return JsonFile.read(devClientPackage).version;\n }\n } catch {}\n return undefined;\n});\n\nconst getProjectType = memoize((projectRoot: string): 'managed' | 'generic' => {\n return getDefaultTarget(projectRoot) === 'managed' ? 'managed' : 'generic';\n});\n\nexport default function getDevClientProperties(projectRoot: string, exp: ExpoConfig) {\n return {\n account_name: getAccountName({ owner: exp.owner }),\n dev_client_version: getDevClientVersion(projectRoot),\n project_type: getProjectType(projectRoot),\n uptime_ms: process.uptime() * 1000,\n };\n}\n"],"names":["getDevClientProperties","hasDirectDevClientDependency","projectRoot","exp","account_name","getAccountName","owner","dev_client_version","getDevClientVersion","project_type","getProjectType","uptime_ms","process","uptime","memoize","getAccountUsername","pkg","getPackageJson","dependencies","devDependencies","devClientPackage","resolveFrom","silent","JsonFile","read","version","undefined","getDefaultTarget"],"mappings":"AAAA;;;;kBA8BwBA,sBAAsB;QAnB9BC,4BAA4B,GAA5BA,4BAA4B;SAXqC,OAAc;yBAAd,cAAc;IAAd,OAAc;;;;;SAC3D,SAAiB;gDAAjB,iBAAiB;IAAjB,SAAiB;;;;;SAC7B,YAAc;gDAAd,cAAc;IAAd,YAAc;;;;;AAEd,IAAA,GAAO,WAAP,OAAO,CAAA;AA0BhB,SAASD,sBAAsB,CAACE,WAAmB,EAAEC,GAAe,EAAE;IACnF,OAAO;QACLC,YAAY,EAAEC,cAAc,CAAC;YAAEC,KAAK,EAAEH,GAAG,CAACG,KAAK;SAAE,CAAC;QAClDC,kBAAkB,EAAEC,mBAAmB,CAACN,WAAW,CAAC;QACpDO,YAAY,EAAEC,cAAc,CAACR,WAAW,CAAC;QACzCS,SAAS,EAAEC,OAAO,CAACC,MAAM,EAAE,GAAG,IAAI;KACnC,CAAC;CACH;;;;;;AA/BD,MAAMR,cAAc,GAAGS,CAAAA,GAAAA,GAAO,AAE5B,CAAA,QAF4B,CAAC,CAACX,GAA8B,GAAK;IACjE,OAAOY,OAAkB,qBAAA,CAACZ,GAAG,CAAC,CAAC;CAChC,CAAC,AAAC;AAGI,SAASF,4BAA4B,CAACC,WAAmB,EAAW;QAEhEc,GAAgB,EAA2BA,IAAmB;IADvE,MAAMA,GAAG,GAAGC,OAAc,iBAAA,CAACf,WAAW,CAAC,AAAC;IACxC,OAAO,CAAC,CAACc,CAAAA,CAAAA,GAAgB,GAAhBA,GAAG,CAACE,YAAY,SAAqB,GAArCF,KAAAA,CAAqC,GAArCA,GAAgB,AAAE,CAAC,iBAAiB,CAAC,CAAA,IAAI,CAAC,CAACA,CAAAA,CAAAA,IAAmB,GAAnBA,GAAG,CAACG,eAAe,SAAqB,GAAxCH,KAAAA,CAAwC,GAAxCA,IAAmB,AAAE,CAAC,iBAAiB,CAAC,CAAA,CAAC;CAC9F;AAED,MAAMR,mBAAmB,GAAGM,CAAAA,GAAAA,GAAO,AAQjC,CAAA,QARiC,CAAC,CAACZ,WAAmB,GAA4B;IAClF,IAAI;QACF,MAAMkB,gBAAgB,GAAGC,YAAW,UAAA,CAACC,MAAM,CAACpB,WAAW,EAAE,8BAA8B,CAAC,AAAC;QACzF,IAAIkB,gBAAgB,EAAE;YACpB,OAAOG,SAAQ,UAAA,CAACC,IAAI,CAACJ,gBAAgB,CAAC,CAACK,OAAO,CAAC;SAChD;KACF,CAAC,OAAM,EAAE;IACV,OAAOC,SAAS,CAAC;CAClB,CAAC,AAAC;AAEH,MAAMhB,cAAc,GAAGI,CAAAA,GAAAA,GAAO,AAE5B,CAAA,QAF4B,CAAC,CAACZ,WAAmB,GAA4B;IAC7E,OAAOyB,OAAgB,mBAAA,CAACzB,WAAW,CAAC,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC5E,CAAC,AAAC"}
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.createDebuggerTelemetryMiddleware = createDebuggerTelemetryMiddleware;
|
|
6
6
|
exports.findDebugTool = findDebugTool;
|
|
7
7
|
var _getMetroDebugProperties = require("./getMetroDebugProperties");
|
|
8
|
-
var _rudderstackClient = require("./rudderstackClient");
|
|
9
8
|
var _env = require("../env");
|
|
9
|
+
var _telemetry = require("../telemetry");
|
|
10
10
|
function createDebuggerTelemetryMiddleware(projectRoot, exp) {
|
|
11
11
|
let hasReported = false;
|
|
12
12
|
// This only works for Hermes apps, disable when telemetry is turned off
|
|
@@ -25,7 +25,7 @@ function createDebuggerTelemetryMiddleware(projectRoot, exp) {
|
|
|
25
25
|
const debugTool = findDebugTool(req);
|
|
26
26
|
if (debugTool) {
|
|
27
27
|
hasReported = true;
|
|
28
|
-
(0,
|
|
28
|
+
(0, _telemetry).logEventAsync("metro debug", (0, _getMetroDebugProperties).getMetroDebugProperties(projectRoot, exp, debugTool));
|
|
29
29
|
}
|
|
30
30
|
if (typeof next === "function") {
|
|
31
31
|
return next(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/analytics/metroDebuggerMiddleware.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport { Middleware } from 'metro-config';\n\nimport { DebugTool, getMetroDebugProperties } from './getMetroDebugProperties';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/analytics/metroDebuggerMiddleware.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport { Middleware } from 'metro-config';\n\nimport { DebugTool, getMetroDebugProperties } from './getMetroDebugProperties';\nimport { env } from '../env';\nimport { logEventAsync } from '../telemetry';\n\ntype Request = Parameters<Middleware>[0];\ntype Response = Parameters<Middleware>[1];\ntype Next = Parameters<Middleware>[2];\n\n/**\n * Create a Metro middleware that reports when a debugger request was found.\n * This will only be reported once, if the app uses Hermes and telemetry is not enabled.\n */\nexport function createDebuggerTelemetryMiddleware(\n projectRoot: string,\n exp: ExpoConfig\n): Middleware {\n let hasReported = false;\n\n // This only works for Hermes apps, disable when telemetry is turned off\n if (env.EXPO_NO_TELEMETRY || exp.jsEngine !== 'hermes') {\n return (req: Request, res: Response, next: Next) => {\n if (typeof next === 'function') {\n next(undefined);\n }\n };\n }\n\n return (req: Request, res: Response, next: Next) => {\n // Only report once\n if (hasReported && typeof next === 'function') {\n return next(undefined);\n }\n\n const debugTool = findDebugTool(req);\n if (debugTool) {\n hasReported = true;\n logEventAsync('metro debug', getMetroDebugProperties(projectRoot, exp, debugTool));\n }\n\n if (typeof next === 'function') {\n return next(undefined);\n }\n };\n}\n\n/** Exposed for testing */\nexport function findDebugTool(\n req: Pick<Parameters<Middleware>[0], 'headers' | 'url'>\n): DebugTool | null {\n if (req.headers['origin']?.includes('chrome-devtools')) {\n return { name: 'chrome' };\n }\n\n if (req.url?.startsWith('/json')) {\n const flipperUserAgent = req.headers['user-agent']?.match(/(Flipper)\\/([^\\s]+)/);\n if (flipperUserAgent) {\n return {\n name: flipperUserAgent[1].toLowerCase(),\n version: flipperUserAgent[2],\n };\n }\n }\n\n return null;\n}\n"],"names":["createDebuggerTelemetryMiddleware","findDebugTool","projectRoot","exp","hasReported","env","EXPO_NO_TELEMETRY","jsEngine","req","res","next","undefined","debugTool","logEventAsync","getMetroDebugProperties","headers","includes","name","url","startsWith","flipperUserAgent","match","toLowerCase","version"],"mappings":"AAAA;;;;QAegBA,iCAAiC,GAAjCA,iCAAiC;QAkCjCC,aAAa,GAAbA,aAAa;AA9CsB,IAAA,wBAA2B,WAA3B,2BAA2B,CAAA;AAC1D,IAAA,IAAQ,WAAR,QAAQ,CAAA;AACE,IAAA,UAAc,WAAd,cAAc,CAAA;AAUrC,SAASD,iCAAiC,CAC/CE,WAAmB,EACnBC,GAAe,EACH;IACZ,IAAIC,WAAW,GAAG,KAAK,AAAC;IAExB,wEAAwE;IACxE,IAAIC,IAAG,IAAA,CAACC,iBAAiB,IAAIH,GAAG,CAACI,QAAQ,KAAK,QAAQ,EAAE;QACtD,OAAO,CAACC,GAAY,EAAEC,GAAa,EAAEC,IAAU,GAAK;YAClD,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;gBAC9BA,IAAI,CAACC,SAAS,CAAC,CAAC;aACjB;SACF,CAAC;KACH;IAED,OAAO,CAACH,GAAY,EAAEC,GAAa,EAAEC,IAAU,GAAK;QAClD,mBAAmB;QACnB,IAAIN,WAAW,IAAI,OAAOM,IAAI,KAAK,UAAU,EAAE;YAC7C,OAAOA,IAAI,CAACC,SAAS,CAAC,CAAC;SACxB;QAED,MAAMC,SAAS,GAAGX,aAAa,CAACO,GAAG,CAAC,AAAC;QACrC,IAAII,SAAS,EAAE;YACbR,WAAW,GAAG,IAAI,CAAC;YACnBS,CAAAA,GAAAA,UAAa,AAAqE,CAAA,cAArE,CAAC,aAAa,EAAEC,CAAAA,GAAAA,wBAAuB,AAA6B,CAAA,wBAA7B,CAACZ,WAAW,EAAEC,GAAG,EAAES,SAAS,CAAC,CAAC,CAAC;SACpF;QAED,IAAI,OAAOF,IAAI,KAAK,UAAU,EAAE;YAC9B,OAAOA,IAAI,CAACC,SAAS,CAAC,CAAC;SACxB;KACF,CAAC;CACH;AAGM,SAASV,aAAa,CAC3BO,GAAuD,EACrC;QACdA,GAAqB,EAIrBA,IAAO;IAJX,IAAIA,CAAAA,GAAqB,GAArBA,GAAG,CAACO,OAAO,CAAC,QAAQ,CAAC,SAAU,GAA/BP,KAAAA,CAA+B,GAA/BA,GAAqB,CAAEQ,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QACtD,OAAO;YAAEC,IAAI,EAAE,QAAQ;SAAE,CAAC;KAC3B;IAED,IAAIT,CAAAA,IAAO,GAAPA,GAAG,CAACU,GAAG,SAAY,GAAnBV,KAAAA,CAAmB,GAAnBA,IAAO,CAAEW,UAAU,CAAC,OAAO,CAAC,EAAE;YACPX,IAAyB;QAAlD,MAAMY,gBAAgB,GAAGZ,CAAAA,IAAyB,GAAzBA,GAAG,CAACO,OAAO,CAAC,YAAY,CAAC,SAAO,GAAhCP,KAAAA,CAAgC,GAAhCA,IAAyB,CAAEa,KAAK,uBAAuB,AAAC;QACjF,IAAID,gBAAgB,EAAE;YACpB,OAAO;gBACLH,IAAI,EAAEG,gBAAgB,CAAC,CAAC,CAAC,CAACE,WAAW,EAAE;gBACvCC,OAAO,EAAEH,gBAAgB,CAAC,CAAC,CAAC;aAC7B,CAAC;SACH;KACF;IAED,OAAO,IAAI,CAAC;CACb"}
|
package/build/src/utils/args.js
CHANGED
|
@@ -6,10 +6,34 @@ exports.getProjectRoot = getProjectRoot;
|
|
|
6
6
|
exports.assertArgs = assertArgs;
|
|
7
7
|
exports.assertWithOptionsArgs = assertWithOptionsArgs;
|
|
8
8
|
exports.printHelp = printHelp;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
function _arg() {
|
|
10
|
+
const data = _interopRequireDefault(require("arg"));
|
|
11
|
+
_arg = function() {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
function _chalk() {
|
|
17
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
18
|
+
_chalk = function() {
|
|
19
|
+
return data;
|
|
20
|
+
};
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
function _fs() {
|
|
24
|
+
const data = require("fs");
|
|
25
|
+
_fs = function() {
|
|
26
|
+
return data;
|
|
27
|
+
};
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
function _path() {
|
|
31
|
+
const data = require("path");
|
|
32
|
+
_path = function() {
|
|
33
|
+
return data;
|
|
34
|
+
};
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
13
37
|
var Log = _interopRequireWildcard(require("../log"));
|
|
14
38
|
function _interopRequireDefault(obj) {
|
|
15
39
|
return obj && obj.__esModule ? obj : {
|
|
@@ -38,8 +62,8 @@ function _interopRequireWildcard(obj) {
|
|
|
38
62
|
}
|
|
39
63
|
}
|
|
40
64
|
function getProjectRoot(args) {
|
|
41
|
-
const projectRoot = (
|
|
42
|
-
if (!(
|
|
65
|
+
const projectRoot = _path().resolve(args._[0] || ".");
|
|
66
|
+
if (!_fs().existsSync(projectRoot)) {
|
|
43
67
|
Log.exit(`Invalid project root: ${projectRoot}`);
|
|
44
68
|
}
|
|
45
69
|
return projectRoot;
|
|
@@ -51,7 +75,7 @@ function assertArgs(schema, argv) {
|
|
|
51
75
|
}
|
|
52
76
|
function assertWithOptionsArgs(schema, options) {
|
|
53
77
|
try {
|
|
54
|
-
return (
|
|
78
|
+
return _arg().default(schema, options);
|
|
55
79
|
} catch (error) {
|
|
56
80
|
// Handle errors caused by user input.
|
|
57
81
|
// Only errors from `arg`, which does not start with `ARG_CONFIG_` are user input errors.
|
|
@@ -64,7 +88,7 @@ function assertWithOptionsArgs(schema, options) {
|
|
|
64
88
|
}
|
|
65
89
|
}
|
|
66
90
|
function printHelp(info, usage, options, extra = "") {
|
|
67
|
-
Log.exit(_chalk.default`
|
|
91
|
+
Log.exit(_chalk().default`
|
|
68
92
|
{bold Info}
|
|
69
93
|
${info}
|
|
70
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/args.ts"],"sourcesContent":["// Common utilities for interacting with `args` library.\n// These functions should be used by every command.\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport { existsSync } from 'fs';\nimport { resolve } from 'path';\n\nimport * as Log from '../log';\n\n/**\n * Parse the first argument as a project directory.\n *\n * @returns valid project directory.\n */\nexport function getProjectRoot(args: arg.Result<arg.Spec>) {\n const projectRoot = resolve(args._[0] || '.');\n\n if (!existsSync(projectRoot)) {\n Log.exit(`Invalid project root: ${projectRoot}`);\n }\n\n return projectRoot;\n}\n\n/**\n * Parse args and assert unknown options.\n *\n * @param schema the `args` schema for parsing the command line arguments.\n * @param argv extra strings\n * @returns processed args object.\n */\nexport function assertArgs(schema: arg.Spec, argv?: string[]): arg.Result<arg.Spec> {\n return assertWithOptionsArgs(schema, { argv });\n}\n\nexport function assertWithOptionsArgs(\n schema: arg.Spec,\n options: arg.Options\n): arg.Result<arg.Spec> {\n try {\n return arg(schema, options);\n } catch (error: any) {\n // Handle errors caused by user input.\n // Only errors from `arg`, which does not start with `ARG_CONFIG_` are user input errors.\n // See: https://github.com/vercel/arg/releases/tag/5.0.0\n if ('code' in error && error.code.startsWith('ARG_') && !error.code.startsWith('ARG_CONFIG_')) {\n Log.exit(error.message, 1);\n }\n // Otherwise rethrow the error.\n throw error;\n }\n}\n\nexport function printHelp(info: string, usage: string, options: string, extra: string = ''): never {\n Log.exit(\n chalk`\n {bold Info}\n ${info}\n\n {bold Usage}\n {dim $} ${usage}\n\n {bold Options}\n ${options.split('\\n').join('\\n ')}\n` + extra,\n 0\n );\n}\n"],"names":["getProjectRoot","assertArgs","assertWithOptionsArgs","printHelp","Log","args","projectRoot","resolve","_","existsSync","exit","schema","argv","options","arg","error","code","startsWith","message","info","usage","extra","chalk","split","join"],"mappings":"AAEA;;;;QAYgBA,cAAc,GAAdA,cAAc;QAiBdC,UAAU,GAAVA,UAAU;QAIVC,qBAAqB,GAArBA,qBAAqB;QAkBrBC,SAAS,GAATA,SAAS;
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/args.ts"],"sourcesContent":["// Common utilities for interacting with `args` library.\n// These functions should be used by every command.\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport { existsSync } from 'fs';\nimport { resolve } from 'path';\n\nimport * as Log from '../log';\n\n/**\n * Parse the first argument as a project directory.\n *\n * @returns valid project directory.\n */\nexport function getProjectRoot(args: arg.Result<arg.Spec>) {\n const projectRoot = resolve(args._[0] || '.');\n\n if (!existsSync(projectRoot)) {\n Log.exit(`Invalid project root: ${projectRoot}`);\n }\n\n return projectRoot;\n}\n\n/**\n * Parse args and assert unknown options.\n *\n * @param schema the `args` schema for parsing the command line arguments.\n * @param argv extra strings\n * @returns processed args object.\n */\nexport function assertArgs(schema: arg.Spec, argv?: string[]): arg.Result<arg.Spec> {\n return assertWithOptionsArgs(schema, { argv });\n}\n\nexport function assertWithOptionsArgs(\n schema: arg.Spec,\n options: arg.Options\n): arg.Result<arg.Spec> {\n try {\n return arg(schema, options);\n } catch (error: any) {\n // Handle errors caused by user input.\n // Only errors from `arg`, which does not start with `ARG_CONFIG_` are user input errors.\n // See: https://github.com/vercel/arg/releases/tag/5.0.0\n if ('code' in error && error.code.startsWith('ARG_') && !error.code.startsWith('ARG_CONFIG_')) {\n Log.exit(error.message, 1);\n }\n // Otherwise rethrow the error.\n throw error;\n }\n}\n\nexport function printHelp(info: string, usage: string, options: string, extra: string = ''): never {\n Log.exit(\n chalk`\n {bold Info}\n ${info}\n\n {bold Usage}\n {dim $} ${usage}\n\n {bold Options}\n ${options.split('\\n').join('\\n ')}\n` + extra,\n 0\n );\n}\n"],"names":["getProjectRoot","assertArgs","assertWithOptionsArgs","printHelp","Log","args","projectRoot","resolve","_","existsSync","exit","schema","argv","options","arg","error","code","startsWith","message","info","usage","extra","chalk","split","join"],"mappings":"AAEA;;;;QAYgBA,cAAc,GAAdA,cAAc;QAiBdC,UAAU,GAAVA,UAAU;QAIVC,qBAAqB,GAArBA,qBAAqB;QAkBrBC,SAAS,GAATA,SAAS;SAnDT,IAAK;gDAAL,KAAK;IAAL,IAAK;;;;;SACH,MAAO;gDAAP,OAAO;IAAP,MAAO;;;;;SACE,GAAI;yBAAJ,IAAI;IAAJ,GAAI;;;;;SACP,KAAM;yBAAN,MAAM;IAAN,KAAM;;;;;AAElBC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOR,SAASJ,cAAc,CAACK,IAA0B,EAAE;IACzD,MAAMC,WAAW,GAAGC,KAAO,UAAA,CAACF,IAAI,CAACG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,AAAC;IAE9C,IAAI,CAACC,GAAU,aAAA,CAACH,WAAW,CAAC,EAAE;QAC5BF,GAAG,CAACM,IAAI,CAAC,CAAC,sBAAsB,EAAEJ,WAAW,CAAC,CAAC,CAAC,CAAC;KAClD;IAED,OAAOA,WAAW,CAAC;CACpB;AASM,SAASL,UAAU,CAACU,MAAgB,EAAEC,IAAe,EAAwB;IAClF,OAAOV,qBAAqB,CAACS,MAAM,EAAE;QAAEC,IAAI;KAAE,CAAC,CAAC;CAChD;AAEM,SAASV,qBAAqB,CACnCS,MAAgB,EAChBE,OAAoB,EACE;IACtB,IAAI;QACF,OAAOC,IAAG,UAAA,CAACH,MAAM,EAAEE,OAAO,CAAC,CAAC;KAC7B,CAAC,OAAOE,KAAK,EAAO;QACnB,sCAAsC;QACtC,yFAAyF;QACzF,wDAAwD;QACxD,IAAI,MAAM,IAAIA,KAAK,IAAIA,KAAK,CAACC,IAAI,CAACC,UAAU,CAAC,MAAM,CAAC,IAAI,CAACF,KAAK,CAACC,IAAI,CAACC,UAAU,CAAC,aAAa,CAAC,EAAE;YAC7Fb,GAAG,CAACM,IAAI,CAACK,KAAK,CAACG,OAAO,EAAE,CAAC,CAAC,CAAC;SAC5B;QACD,+BAA+B;QAC/B,MAAMH,KAAK,CAAC;KACb;CACF;AAEM,SAASZ,SAAS,CAACgB,IAAY,EAAEC,KAAa,EAAEP,OAAe,EAAEQ,KAAa,GAAG,EAAE,EAAS;IACjGjB,GAAG,CAACM,IAAI,CACNY,MAAK,UAAA,CAAC;;IAEN,EAAEH,IAAI,CAAC;;;YAGC,EAAEC,KAAK,CAAC;;;IAGhB,EAAEP,OAAO,CAACU,KAAK,CAAC,IAAI,CAAC,CAACC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC,GAAGH,KAAK,EACL,CAAC,CACF,CAAC;CACH"}
|
|
@@ -5,12 +5,48 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.hasPackageJsonDependencyListChangedAsync = hasPackageJsonDependencyListChangedAsync;
|
|
6
6
|
exports.installCocoaPodsAsync = installCocoaPodsAsync;
|
|
7
7
|
exports.maybePromptToSyncPodsAsync = maybePromptToSyncPodsAsync;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
function _config() {
|
|
9
|
+
const data = require("@expo/config");
|
|
10
|
+
_config = function() {
|
|
11
|
+
return data;
|
|
12
|
+
};
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
function _jsonFile() {
|
|
16
|
+
const data = _interopRequireDefault(require("@expo/json-file"));
|
|
17
|
+
_jsonFile = function() {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
function PackageManager() {
|
|
23
|
+
const data = _interopRequireWildcard(require("@expo/package-manager"));
|
|
24
|
+
PackageManager = function() {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function _chalk() {
|
|
30
|
+
const data = _interopRequireDefault(require("chalk"));
|
|
31
|
+
_chalk = function() {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
function _fs() {
|
|
37
|
+
const data = _interopRequireDefault(require("fs"));
|
|
38
|
+
_fs = function() {
|
|
39
|
+
return data;
|
|
40
|
+
};
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
function _path() {
|
|
44
|
+
const data = _interopRequireDefault(require("path"));
|
|
45
|
+
_path = function() {
|
|
46
|
+
return data;
|
|
47
|
+
};
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
14
50
|
var _dir = require("./dir");
|
|
15
51
|
var _env = require("./env");
|
|
16
52
|
var _errors = require("./errors");
|
|
@@ -46,16 +82,16 @@ function _interopRequireWildcard(obj) {
|
|
|
46
82
|
const PROJECT_PREBUILD_SETTINGS = ".expo/prebuild";
|
|
47
83
|
const CACHED_PACKAGE_JSON = "cached-packages.json";
|
|
48
84
|
function getTempPrebuildFolder(projectRoot) {
|
|
49
|
-
return _path.default.join(projectRoot, PROJECT_PREBUILD_SETTINGS);
|
|
85
|
+
return _path().default.join(projectRoot, PROJECT_PREBUILD_SETTINGS);
|
|
50
86
|
}
|
|
51
87
|
function hasNewDependenciesSinceLastBuild(projectRoot, packageChecksums) {
|
|
52
88
|
// TODO: Maybe comparing lock files would be better...
|
|
53
89
|
const templateDirectory = getTempPrebuildFolder(projectRoot);
|
|
54
|
-
const tempPkgJsonPath = _path.default.join(templateDirectory, CACHED_PACKAGE_JSON);
|
|
55
|
-
if (!_fs.default.existsSync(tempPkgJsonPath)) {
|
|
90
|
+
const tempPkgJsonPath = _path().default.join(templateDirectory, CACHED_PACKAGE_JSON);
|
|
91
|
+
if (!_fs().default.existsSync(tempPkgJsonPath)) {
|
|
56
92
|
return true;
|
|
57
93
|
}
|
|
58
|
-
const { dependencies , devDependencies } = _jsonFile.default.read(tempPkgJsonPath);
|
|
94
|
+
const { dependencies , devDependencies } = _jsonFile().default.read(tempPkgJsonPath);
|
|
59
95
|
// Only change the dependencies if the normalized hash changes, this helps to reduce meaningless changes.
|
|
60
96
|
const hasNewDependencies = packageChecksums.dependencies !== dependencies;
|
|
61
97
|
const hasNewDevDependencies = packageChecksums.devDependencies !== devDependencies;
|
|
@@ -68,13 +104,13 @@ function createPackageChecksums(pkg) {
|
|
|
68
104
|
};
|
|
69
105
|
}
|
|
70
106
|
async function hasPackageJsonDependencyListChangedAsync(projectRoot) {
|
|
71
|
-
const pkg = (
|
|
107
|
+
const pkg = _config().getPackageJson(projectRoot);
|
|
72
108
|
const packages = createPackageChecksums(pkg);
|
|
73
109
|
const hasNewDependencies = hasNewDependenciesSinceLastBuild(projectRoot, packages);
|
|
74
110
|
// Cache package.json
|
|
75
111
|
await (0, _dir).ensureDirectoryAsync(getTempPrebuildFolder(projectRoot));
|
|
76
|
-
const templateDirectory = _path.default.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON);
|
|
77
|
-
await _jsonFile.default.writeAsync(templateDirectory, packages);
|
|
112
|
+
const templateDirectory = _path().default.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON);
|
|
113
|
+
await _jsonFile().default.writeAsync(templateDirectory, packages);
|
|
78
114
|
return hasNewDependencies;
|
|
79
115
|
}
|
|
80
116
|
async function installCocoaPodsAsync(projectRoot) {
|
|
@@ -83,8 +119,8 @@ async function installCocoaPodsAsync(projectRoot) {
|
|
|
83
119
|
step.succeed("Skipped installing CocoaPods because operating system is not on macOS.");
|
|
84
120
|
return false;
|
|
85
121
|
}
|
|
86
|
-
const packageManager = new PackageManager.CocoaPodsPackageManager({
|
|
87
|
-
cwd: _path.default.join(projectRoot, "ios"),
|
|
122
|
+
const packageManager = new (PackageManager()).CocoaPodsPackageManager({
|
|
123
|
+
cwd: _path().default.join(projectRoot, "ios"),
|
|
88
124
|
silent: !(_env.env.EXPO_DEBUG || _env.env.CI)
|
|
89
125
|
});
|
|
90
126
|
if (!await packageManager.isCLIInstalledAsync()) {
|
|
@@ -92,7 +128,7 @@ async function installCocoaPodsAsync(projectRoot) {
|
|
|
92
128
|
// prompt user -- do you want to install cocoapods right now?
|
|
93
129
|
step.text = "CocoaPods CLI not found in your PATH, installing it now.";
|
|
94
130
|
step.stopAndPersist();
|
|
95
|
-
await PackageManager.CocoaPodsPackageManager.installCLIAsync({
|
|
131
|
+
await PackageManager().CocoaPodsPackageManager.installCLIAsync({
|
|
96
132
|
nonInteractive: true,
|
|
97
133
|
spawnOptions: {
|
|
98
134
|
...packageManager.options,
|
|
@@ -109,9 +145,9 @@ async function installCocoaPodsAsync(projectRoot) {
|
|
|
109
145
|
} catch (error) {
|
|
110
146
|
step.stopAndPersist({
|
|
111
147
|
symbol: "\u26A0\uFE0F ",
|
|
112
|
-
text: _chalk.default.red("Unable to install the CocoaPods CLI.")
|
|
148
|
+
text: _chalk().default.red("Unable to install the CocoaPods CLI.")
|
|
113
149
|
});
|
|
114
|
-
if (error instanceof PackageManager.CocoaPodsError) {
|
|
150
|
+
if (error instanceof PackageManager().CocoaPodsError) {
|
|
115
151
|
Log.log(error.message);
|
|
116
152
|
} else {
|
|
117
153
|
Log.log(`Unknown error: ${error.message}`);
|
|
@@ -131,9 +167,9 @@ async function installCocoaPodsAsync(projectRoot) {
|
|
|
131
167
|
} catch (error) {
|
|
132
168
|
step.stopAndPersist({
|
|
133
169
|
symbol: "\u26A0\uFE0F ",
|
|
134
|
-
text: _chalk.default.red("Something went wrong running `pod install` in the `ios` directory.")
|
|
170
|
+
text: _chalk().default.red("Something went wrong running `pod install` in the `ios` directory.")
|
|
135
171
|
});
|
|
136
|
-
if (error instanceof PackageManager.CocoaPodsError) {
|
|
172
|
+
if (error instanceof PackageManager().CocoaPodsError) {
|
|
137
173
|
Log.log(error.message);
|
|
138
174
|
} else {
|
|
139
175
|
Log.log(`Unknown error: ${error.message}`);
|
|
@@ -142,15 +178,15 @@ async function installCocoaPodsAsync(projectRoot) {
|
|
|
142
178
|
}
|
|
143
179
|
}
|
|
144
180
|
function doesProjectUseCocoaPods(projectRoot) {
|
|
145
|
-
return _fs.default.existsSync(_path.default.join(projectRoot, "ios", "Podfile"));
|
|
181
|
+
return _fs().default.existsSync(_path().default.join(projectRoot, "ios", "Podfile"));
|
|
146
182
|
}
|
|
147
183
|
function isLockfileCreated(projectRoot) {
|
|
148
|
-
const podfileLockPath = _path.default.join(projectRoot, "ios", "Podfile.lock");
|
|
149
|
-
return _fs.default.existsSync(podfileLockPath);
|
|
184
|
+
const podfileLockPath = _path().default.join(projectRoot, "ios", "Podfile.lock");
|
|
185
|
+
return _fs().default.existsSync(podfileLockPath);
|
|
150
186
|
}
|
|
151
187
|
function isPodFolderCreated(projectRoot) {
|
|
152
|
-
const podFolderPath = _path.default.join(projectRoot, "ios", "Pods");
|
|
153
|
-
return _fs.default.existsSync(podFolderPath);
|
|
188
|
+
const podFolderPath = _path().default.join(projectRoot, "ios", "Pods");
|
|
189
|
+
return _fs().default.existsSync(podFolderPath);
|
|
154
190
|
}
|
|
155
191
|
async function maybePromptToSyncPodsAsync(projectRoot) {
|
|
156
192
|
if (!doesProjectUseCocoaPods(projectRoot)) {
|
|
@@ -171,15 +207,15 @@ async function maybePromptToSyncPodsAsync(projectRoot) {
|
|
|
171
207
|
}
|
|
172
208
|
async function promptToInstallPodsAsync(projectRoot, missingPods) {
|
|
173
209
|
if (missingPods == null ? void 0 : missingPods.length) {
|
|
174
|
-
Log.log(`Could not find the following native modules: ${missingPods.map((pod)=>_chalk.default.bold(pod)
|
|
175
|
-
).join(", ")}. Did you forget to run "${_chalk.default.bold("pod install")}" ?`);
|
|
210
|
+
Log.log(`Could not find the following native modules: ${missingPods.map((pod)=>_chalk().default.bold(pod)
|
|
211
|
+
).join(", ")}. Did you forget to run "${_chalk().default.bold("pod install")}" ?`);
|
|
176
212
|
}
|
|
177
213
|
try {
|
|
178
214
|
if (!await installCocoaPodsAsync(projectRoot)) {
|
|
179
215
|
throw new _errors.AbortCommandError();
|
|
180
216
|
}
|
|
181
217
|
} catch (error) {
|
|
182
|
-
await _fs.default.promises.rm(_path.default.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON), {
|
|
218
|
+
await _fs().default.promises.rm(_path().default.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON), {
|
|
183
219
|
recursive: true,
|
|
184
220
|
force: true
|
|
185
221
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/cocoapods.ts"],"sourcesContent":["import { getPackageJson, PackageJSONConfig } from '@expo/config';\nimport JsonFile from '@expo/json-file';\nimport * as PackageManager from '@expo/package-manager';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { ensureDirectoryAsync } from './dir';\nimport { env } from './env';\nimport { AbortCommandError } from './errors';\nimport { logNewSection } from './ora';\nimport * as Log from '../log';\nimport { hashForDependencyMap } from '../prebuild/updatePackageJson';\n\ntype PackageChecksums = {\n /** checksum for the `package.json` dependency object. */\n dependencies: string;\n /** checksum for the `package.json` devDependency object. */\n devDependencies: string;\n};\n\nconst PROJECT_PREBUILD_SETTINGS = '.expo/prebuild';\nconst CACHED_PACKAGE_JSON = 'cached-packages.json';\n\nfunction getTempPrebuildFolder(projectRoot: string): string {\n return path.join(projectRoot, PROJECT_PREBUILD_SETTINGS);\n}\n\nfunction hasNewDependenciesSinceLastBuild(\n projectRoot: string,\n packageChecksums: PackageChecksums\n): boolean {\n // TODO: Maybe comparing lock files would be better...\n const templateDirectory = getTempPrebuildFolder(projectRoot);\n const tempPkgJsonPath = path.join(templateDirectory, CACHED_PACKAGE_JSON);\n if (!fs.existsSync(tempPkgJsonPath)) {\n return true;\n }\n const { dependencies, devDependencies } = JsonFile.read(tempPkgJsonPath);\n // Only change the dependencies if the normalized hash changes, this helps to reduce meaningless changes.\n const hasNewDependencies = packageChecksums.dependencies !== dependencies;\n const hasNewDevDependencies = packageChecksums.devDependencies !== devDependencies;\n\n return hasNewDependencies || hasNewDevDependencies;\n}\n\nfunction createPackageChecksums(pkg: PackageJSONConfig): PackageChecksums {\n return {\n dependencies: hashForDependencyMap(pkg.dependencies || {}),\n devDependencies: hashForDependencyMap(pkg.devDependencies || {}),\n };\n}\n\n/** @returns `true` if the package.json dependency hash does not match the cached hash from the last run. */\nexport async function hasPackageJsonDependencyListChangedAsync(\n projectRoot: string\n): Promise<boolean> {\n const pkg = getPackageJson(projectRoot);\n\n const packages = createPackageChecksums(pkg);\n const hasNewDependencies = hasNewDependenciesSinceLastBuild(projectRoot, packages);\n\n // Cache package.json\n await ensureDirectoryAsync(getTempPrebuildFolder(projectRoot));\n const templateDirectory = path.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON);\n await JsonFile.writeAsync(templateDirectory, packages);\n\n return hasNewDependencies;\n}\n\nexport async function installCocoaPodsAsync(projectRoot: string): Promise<boolean> {\n let step = logNewSection('Installing CocoaPods...');\n if (process.platform !== 'darwin') {\n step.succeed('Skipped installing CocoaPods because operating system is not on macOS.');\n return false;\n }\n\n const packageManager = new PackageManager.CocoaPodsPackageManager({\n cwd: path.join(projectRoot, 'ios'),\n silent: !(env.EXPO_DEBUG || env.CI),\n });\n\n if (!(await packageManager.isCLIInstalledAsync())) {\n try {\n // prompt user -- do you want to install cocoapods right now?\n step.text = 'CocoaPods CLI not found in your PATH, installing it now.';\n step.stopAndPersist();\n await PackageManager.CocoaPodsPackageManager.installCLIAsync({\n nonInteractive: true,\n spawnOptions: {\n ...packageManager.options,\n // Don't silence this part\n stdio: ['inherit', 'inherit', 'pipe'],\n },\n });\n step.succeed('Installed CocoaPods CLI.');\n step = logNewSection('Running `pod install` in the `ios` directory.');\n } catch (error: any) {\n step.stopAndPersist({\n symbol: '⚠️ ',\n text: chalk.red('Unable to install the CocoaPods CLI.'),\n });\n if (error instanceof PackageManager.CocoaPodsError) {\n Log.log(error.message);\n } else {\n Log.log(`Unknown error: ${error.message}`);\n }\n return false;\n }\n }\n\n try {\n await packageManager.installAsync({ spinner: step });\n // Create cached list for later\n await hasPackageJsonDependencyListChangedAsync(projectRoot).catch(() => null);\n step.succeed('Installed CocoaPods');\n return true;\n } catch (error: any) {\n step.stopAndPersist({\n symbol: '⚠️ ',\n text: chalk.red('Something went wrong running `pod install` in the `ios` directory.'),\n });\n if (error instanceof PackageManager.CocoaPodsError) {\n Log.log(error.message);\n } else {\n Log.log(`Unknown error: ${error.message}`);\n }\n return false;\n }\n}\n\nfunction doesProjectUseCocoaPods(projectRoot: string): boolean {\n return fs.existsSync(path.join(projectRoot, 'ios', 'Podfile'));\n}\n\nfunction isLockfileCreated(projectRoot: string): boolean {\n const podfileLockPath = path.join(projectRoot, 'ios', 'Podfile.lock');\n return fs.existsSync(podfileLockPath);\n}\n\nfunction isPodFolderCreated(projectRoot: string): boolean {\n const podFolderPath = path.join(projectRoot, 'ios', 'Pods');\n return fs.existsSync(podFolderPath);\n}\n\n// TODO: Same process but with app.config changes + default plugins.\n// This will ensure the user is prompted for extra setup.\nexport async function maybePromptToSyncPodsAsync(projectRoot: string) {\n if (!doesProjectUseCocoaPods(projectRoot)) {\n // Project does not use CocoaPods\n return;\n }\n if (!isLockfileCreated(projectRoot) || !isPodFolderCreated(projectRoot)) {\n if (!(await installCocoaPodsAsync(projectRoot))) {\n throw new AbortCommandError();\n }\n return;\n }\n\n // Getting autolinked packages can be heavy, optimize around checking every time.\n if (!(await hasPackageJsonDependencyListChangedAsync(projectRoot))) {\n return;\n }\n\n await promptToInstallPodsAsync(projectRoot, []);\n}\n\nasync function promptToInstallPodsAsync(projectRoot: string, missingPods?: string[]) {\n if (missingPods?.length) {\n Log.log(\n `Could not find the following native modules: ${missingPods\n .map((pod) => chalk.bold(pod))\n .join(', ')}. Did you forget to run \"${chalk.bold('pod install')}\" ?`\n );\n }\n\n try {\n if (!(await installCocoaPodsAsync(projectRoot))) {\n throw new AbortCommandError();\n }\n } catch (error) {\n await fs.promises.rm(path.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON), {\n recursive: true,\n force: true,\n });\n throw error;\n }\n}\n"],"names":["hasPackageJsonDependencyListChangedAsync","installCocoaPodsAsync","maybePromptToSyncPodsAsync","PackageManager","Log","PROJECT_PREBUILD_SETTINGS","CACHED_PACKAGE_JSON","getTempPrebuildFolder","projectRoot","path","join","hasNewDependenciesSinceLastBuild","packageChecksums","templateDirectory","tempPkgJsonPath","fs","existsSync","dependencies","devDependencies","JsonFile","read","hasNewDependencies","hasNewDevDependencies","createPackageChecksums","pkg","hashForDependencyMap","getPackageJson","packages","ensureDirectoryAsync","writeAsync","step","logNewSection","process","platform","succeed","packageManager","CocoaPodsPackageManager","cwd","silent","env","EXPO_DEBUG","CI","isCLIInstalledAsync","text","stopAndPersist","installCLIAsync","nonInteractive","spawnOptions","options","stdio","error","symbol","chalk","red","CocoaPodsError","log","message","installAsync","spinner","catch","doesProjectUseCocoaPods","isLockfileCreated","podfileLockPath","isPodFolderCreated","podFolderPath","AbortCommandError","promptToInstallPodsAsync","missingPods","length","map","pod","bold","promises","rm","recursive","force"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/cocoapods.ts"],"sourcesContent":["import { getPackageJson, PackageJSONConfig } from '@expo/config';\nimport JsonFile from '@expo/json-file';\nimport * as PackageManager from '@expo/package-manager';\nimport chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\n\nimport { ensureDirectoryAsync } from './dir';\nimport { env } from './env';\nimport { AbortCommandError } from './errors';\nimport { logNewSection } from './ora';\nimport * as Log from '../log';\nimport { hashForDependencyMap } from '../prebuild/updatePackageJson';\n\ntype PackageChecksums = {\n /** checksum for the `package.json` dependency object. */\n dependencies: string;\n /** checksum for the `package.json` devDependency object. */\n devDependencies: string;\n};\n\nconst PROJECT_PREBUILD_SETTINGS = '.expo/prebuild';\nconst CACHED_PACKAGE_JSON = 'cached-packages.json';\n\nfunction getTempPrebuildFolder(projectRoot: string): string {\n return path.join(projectRoot, PROJECT_PREBUILD_SETTINGS);\n}\n\nfunction hasNewDependenciesSinceLastBuild(\n projectRoot: string,\n packageChecksums: PackageChecksums\n): boolean {\n // TODO: Maybe comparing lock files would be better...\n const templateDirectory = getTempPrebuildFolder(projectRoot);\n const tempPkgJsonPath = path.join(templateDirectory, CACHED_PACKAGE_JSON);\n if (!fs.existsSync(tempPkgJsonPath)) {\n return true;\n }\n const { dependencies, devDependencies } = JsonFile.read(tempPkgJsonPath);\n // Only change the dependencies if the normalized hash changes, this helps to reduce meaningless changes.\n const hasNewDependencies = packageChecksums.dependencies !== dependencies;\n const hasNewDevDependencies = packageChecksums.devDependencies !== devDependencies;\n\n return hasNewDependencies || hasNewDevDependencies;\n}\n\nfunction createPackageChecksums(pkg: PackageJSONConfig): PackageChecksums {\n return {\n dependencies: hashForDependencyMap(pkg.dependencies || {}),\n devDependencies: hashForDependencyMap(pkg.devDependencies || {}),\n };\n}\n\n/** @returns `true` if the package.json dependency hash does not match the cached hash from the last run. */\nexport async function hasPackageJsonDependencyListChangedAsync(\n projectRoot: string\n): Promise<boolean> {\n const pkg = getPackageJson(projectRoot);\n\n const packages = createPackageChecksums(pkg);\n const hasNewDependencies = hasNewDependenciesSinceLastBuild(projectRoot, packages);\n\n // Cache package.json\n await ensureDirectoryAsync(getTempPrebuildFolder(projectRoot));\n const templateDirectory = path.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON);\n await JsonFile.writeAsync(templateDirectory, packages);\n\n return hasNewDependencies;\n}\n\nexport async function installCocoaPodsAsync(projectRoot: string): Promise<boolean> {\n let step = logNewSection('Installing CocoaPods...');\n if (process.platform !== 'darwin') {\n step.succeed('Skipped installing CocoaPods because operating system is not on macOS.');\n return false;\n }\n\n const packageManager = new PackageManager.CocoaPodsPackageManager({\n cwd: path.join(projectRoot, 'ios'),\n silent: !(env.EXPO_DEBUG || env.CI),\n });\n\n if (!(await packageManager.isCLIInstalledAsync())) {\n try {\n // prompt user -- do you want to install cocoapods right now?\n step.text = 'CocoaPods CLI not found in your PATH, installing it now.';\n step.stopAndPersist();\n await PackageManager.CocoaPodsPackageManager.installCLIAsync({\n nonInteractive: true,\n spawnOptions: {\n ...packageManager.options,\n // Don't silence this part\n stdio: ['inherit', 'inherit', 'pipe'],\n },\n });\n step.succeed('Installed CocoaPods CLI.');\n step = logNewSection('Running `pod install` in the `ios` directory.');\n } catch (error: any) {\n step.stopAndPersist({\n symbol: '⚠️ ',\n text: chalk.red('Unable to install the CocoaPods CLI.'),\n });\n if (error instanceof PackageManager.CocoaPodsError) {\n Log.log(error.message);\n } else {\n Log.log(`Unknown error: ${error.message}`);\n }\n return false;\n }\n }\n\n try {\n await packageManager.installAsync({ spinner: step });\n // Create cached list for later\n await hasPackageJsonDependencyListChangedAsync(projectRoot).catch(() => null);\n step.succeed('Installed CocoaPods');\n return true;\n } catch (error: any) {\n step.stopAndPersist({\n symbol: '⚠️ ',\n text: chalk.red('Something went wrong running `pod install` in the `ios` directory.'),\n });\n if (error instanceof PackageManager.CocoaPodsError) {\n Log.log(error.message);\n } else {\n Log.log(`Unknown error: ${error.message}`);\n }\n return false;\n }\n}\n\nfunction doesProjectUseCocoaPods(projectRoot: string): boolean {\n return fs.existsSync(path.join(projectRoot, 'ios', 'Podfile'));\n}\n\nfunction isLockfileCreated(projectRoot: string): boolean {\n const podfileLockPath = path.join(projectRoot, 'ios', 'Podfile.lock');\n return fs.existsSync(podfileLockPath);\n}\n\nfunction isPodFolderCreated(projectRoot: string): boolean {\n const podFolderPath = path.join(projectRoot, 'ios', 'Pods');\n return fs.existsSync(podFolderPath);\n}\n\n// TODO: Same process but with app.config changes + default plugins.\n// This will ensure the user is prompted for extra setup.\nexport async function maybePromptToSyncPodsAsync(projectRoot: string) {\n if (!doesProjectUseCocoaPods(projectRoot)) {\n // Project does not use CocoaPods\n return;\n }\n if (!isLockfileCreated(projectRoot) || !isPodFolderCreated(projectRoot)) {\n if (!(await installCocoaPodsAsync(projectRoot))) {\n throw new AbortCommandError();\n }\n return;\n }\n\n // Getting autolinked packages can be heavy, optimize around checking every time.\n if (!(await hasPackageJsonDependencyListChangedAsync(projectRoot))) {\n return;\n }\n\n await promptToInstallPodsAsync(projectRoot, []);\n}\n\nasync function promptToInstallPodsAsync(projectRoot: string, missingPods?: string[]) {\n if (missingPods?.length) {\n Log.log(\n `Could not find the following native modules: ${missingPods\n .map((pod) => chalk.bold(pod))\n .join(', ')}. Did you forget to run \"${chalk.bold('pod install')}\" ?`\n );\n }\n\n try {\n if (!(await installCocoaPodsAsync(projectRoot))) {\n throw new AbortCommandError();\n }\n } catch (error) {\n await fs.promises.rm(path.join(getTempPrebuildFolder(projectRoot), CACHED_PACKAGE_JSON), {\n recursive: true,\n force: true,\n });\n throw error;\n }\n}\n"],"names":["hasPackageJsonDependencyListChangedAsync","installCocoaPodsAsync","maybePromptToSyncPodsAsync","PackageManager","Log","PROJECT_PREBUILD_SETTINGS","CACHED_PACKAGE_JSON","getTempPrebuildFolder","projectRoot","path","join","hasNewDependenciesSinceLastBuild","packageChecksums","templateDirectory","tempPkgJsonPath","fs","existsSync","dependencies","devDependencies","JsonFile","read","hasNewDependencies","hasNewDevDependencies","createPackageChecksums","pkg","hashForDependencyMap","getPackageJson","packages","ensureDirectoryAsync","writeAsync","step","logNewSection","process","platform","succeed","packageManager","CocoaPodsPackageManager","cwd","silent","env","EXPO_DEBUG","CI","isCLIInstalledAsync","text","stopAndPersist","installCLIAsync","nonInteractive","spawnOptions","options","stdio","error","symbol","chalk","red","CocoaPodsError","log","message","installAsync","spinner","catch","doesProjectUseCocoaPods","isLockfileCreated","podfileLockPath","isPodFolderCreated","podFolderPath","AbortCommandError","promptToInstallPodsAsync","missingPods","length","map","pod","bold","promises","rm","recursive","force"],"mappings":"AAAA;;;;QAsDsBA,wCAAwC,GAAxCA,wCAAwC;QAgBxCC,qBAAqB,GAArBA,qBAAqB;QA6ErBC,0BAA0B,GAA1BA,0BAA0B;SAnJE,OAAc;yBAAd,cAAc;IAAd,OAAc;;;;;SAC3C,SAAiB;gDAAjB,iBAAiB;IAAjB,SAAiB;;;;;SAC1BC,cAAc;iDAAM,uBAAuB;IAA3CA,cAAc;;;;;SACR,MAAO;gDAAP,OAAO;IAAP,MAAO;;;;;SACV,GAAI;gDAAJ,IAAI;IAAJ,GAAI;;;;;SACF,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;AAEc,IAAA,IAAO,WAAP,OAAO,CAAA;AACxB,IAAA,IAAO,WAAP,OAAO,CAAA;AACO,IAAA,OAAU,WAAV,UAAU,CAAA;AACd,IAAA,IAAO,WAAP,OAAO,CAAA;AACzBC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACsB,IAAA,kBAA+B,WAA/B,+BAA+B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AASpE,MAAMC,yBAAyB,GAAG,gBAAgB,AAAC;AACnD,MAAMC,mBAAmB,GAAG,sBAAsB,AAAC;AAEnD,SAASC,qBAAqB,CAACC,WAAmB,EAAU;IAC1D,OAAOC,KAAI,UAAA,CAACC,IAAI,CAACF,WAAW,EAAEH,yBAAyB,CAAC,CAAC;CAC1D;AAED,SAASM,gCAAgC,CACvCH,WAAmB,EACnBI,gBAAkC,EACzB;IACT,sDAAsD;IACtD,MAAMC,iBAAiB,GAAGN,qBAAqB,CAACC,WAAW,CAAC,AAAC;IAC7D,MAAMM,eAAe,GAAGL,KAAI,UAAA,CAACC,IAAI,CAACG,iBAAiB,EAAEP,mBAAmB,CAAC,AAAC;IAC1E,IAAI,CAACS,GAAE,UAAA,CAACC,UAAU,CAACF,eAAe,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;IACD,MAAM,EAAEG,YAAY,CAAA,EAAEC,eAAe,CAAA,EAAE,GAAGC,SAAQ,UAAA,CAACC,IAAI,CAACN,eAAe,CAAC,AAAC;IACzE,yGAAyG;IACzG,MAAMO,kBAAkB,GAAGT,gBAAgB,CAACK,YAAY,KAAKA,YAAY,AAAC;IAC1E,MAAMK,qBAAqB,GAAGV,gBAAgB,CAACM,eAAe,KAAKA,eAAe,AAAC;IAEnF,OAAOG,kBAAkB,IAAIC,qBAAqB,CAAC;CACpD;AAED,SAASC,sBAAsB,CAACC,GAAsB,EAAoB;IACxE,OAAO;QACLP,YAAY,EAAEQ,CAAAA,GAAAA,kBAAoB,AAAwB,CAAA,qBAAxB,CAACD,GAAG,CAACP,YAAY,IAAI,EAAE,CAAC;QAC1DC,eAAe,EAAEO,CAAAA,GAAAA,kBAAoB,AAA2B,CAAA,qBAA3B,CAACD,GAAG,CAACN,eAAe,IAAI,EAAE,CAAC;KACjE,CAAC;CACH;AAGM,eAAelB,wCAAwC,CAC5DQ,WAAmB,EACD;IAClB,MAAMgB,GAAG,GAAGE,OAAc,iBAAA,CAAClB,WAAW,CAAC,AAAC;IAExC,MAAMmB,QAAQ,GAAGJ,sBAAsB,CAACC,GAAG,CAAC,AAAC;IAC7C,MAAMH,kBAAkB,GAAGV,gCAAgC,CAACH,WAAW,EAAEmB,QAAQ,CAAC,AAAC;IAEnF,qBAAqB;IACrB,MAAMC,CAAAA,GAAAA,IAAoB,AAAoC,CAAA,qBAApC,CAACrB,qBAAqB,CAACC,WAAW,CAAC,CAAC,CAAC;IAC/D,MAAMK,iBAAiB,GAAGJ,KAAI,UAAA,CAACC,IAAI,CAACH,qBAAqB,CAACC,WAAW,CAAC,EAAEF,mBAAmB,CAAC,AAAC;IAC7F,MAAMa,SAAQ,UAAA,CAACU,UAAU,CAAChB,iBAAiB,EAAEc,QAAQ,CAAC,CAAC;IAEvD,OAAON,kBAAkB,CAAC;CAC3B;AAEM,eAAepB,qBAAqB,CAACO,WAAmB,EAAoB;IACjF,IAAIsB,IAAI,GAAGC,CAAAA,GAAAA,IAAa,AAA2B,CAAA,cAA3B,CAAC,yBAAyB,CAAC,AAAC;IACpD,IAAIC,OAAO,CAACC,QAAQ,KAAK,QAAQ,EAAE;QACjCH,IAAI,CAACI,OAAO,CAAC,wEAAwE,CAAC,CAAC;QACvF,OAAO,KAAK,CAAC;KACd;IAED,MAAMC,cAAc,GAAG,IAAIhC,CAAAA,cAAc,IAACiC,uBAAuB,CAAC;QAChEC,GAAG,EAAE5B,KAAI,UAAA,CAACC,IAAI,CAACF,WAAW,EAAE,KAAK,CAAC;QAClC8B,MAAM,EAAE,CAAC,CAACC,IAAG,IAAA,CAACC,UAAU,IAAID,IAAG,IAAA,CAACE,EAAE,CAAC;KACpC,CAAC,AAAC;IAEH,IAAI,CAAE,MAAMN,cAAc,CAACO,mBAAmB,EAAE,AAAC,EAAE;QACjD,IAAI;YACF,6DAA6D;YAC7DZ,IAAI,CAACa,IAAI,GAAG,0DAA0D,CAAC;YACvEb,IAAI,CAACc,cAAc,EAAE,CAAC;YACtB,MAAMzC,cAAc,GAACiC,uBAAuB,CAACS,eAAe,CAAC;gBAC3DC,cAAc,EAAE,IAAI;gBACpBC,YAAY,EAAE;oBACZ,GAAGZ,cAAc,CAACa,OAAO;oBACzB,0BAA0B;oBAC1BC,KAAK,EAAE;wBAAC,SAAS;wBAAE,SAAS;wBAAE,MAAM;qBAAC;iBACtC;aACF,CAAC,CAAC;YACHnB,IAAI,CAACI,OAAO,CAAC,0BAA0B,CAAC,CAAC;YACzCJ,IAAI,GAAGC,CAAAA,GAAAA,IAAa,AAAiD,CAAA,cAAjD,CAAC,+CAA+C,CAAC,CAAC;SACvE,CAAC,OAAOmB,KAAK,EAAO;YACnBpB,IAAI,CAACc,cAAc,CAAC;gBAClBO,MAAM,EAAE,eAAK;gBACTR,IAAA,EAAES,MAAK,UAAA,CAACC,GAAG,CAAC,sCAAsC,CAAC;aACxD,CAAC,CAAC;YACH,IAAIH,KAAK,YAAY/C,cAAc,GAACmD,cAAc,EAAE;gBAClDlD,GAAG,CAACmD,GAAG,CAACL,KAAK,CAACM,OAAO,CAAC,CAAC;aACxB,MAAM;gBACLpD,GAAG,CAACmD,GAAG,CAAC,CAAC,eAAe,EAAEL,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC,CAAC;aAC5C;YACD,OAAO,KAAK,CAAC;SACd;KACF;IAED,IAAI;QACF,MAAMrB,cAAc,CAACsB,YAAY,CAAC;YAAEC,OAAO,EAAE5B,IAAI;SAAE,CAAC,CAAC;QACrD,+BAA+B;QAC/B,MAAM9B,wCAAwC,CAACQ,WAAW,CAAC,CAACmD,KAAK,CAAC,IAAM,IAAI;QAAA,CAAC,CAAC;QAC9E7B,IAAI,CAACI,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;KACb,CAAC,OAAOgB,KAAK,EAAO;QACnBpB,IAAI,CAACc,cAAc,CAAC;YAClBO,MAAM,EAAE,eAAK;YACbR,IAAI,EAAES,MAAK,UAAA,CAACC,GAAG,CAAC,oEAAoE,CAAC;SACtF,CAAC,CAAC;QACH,IAAIH,KAAK,YAAY/C,cAAc,GAACmD,cAAc,EAAE;YAClDlD,GAAG,CAACmD,GAAG,CAACL,KAAK,CAACM,OAAO,CAAC,CAAC;SACxB,MAAM;YACLpD,GAAG,CAACmD,GAAG,CAAC,CAAC,eAAe,EAAEL,KAAK,CAACM,OAAO,CAAC,CAAC,CAAC,CAAC;SAC5C;QACD,OAAO,KAAK,CAAC;KACd;CACF;AAED,SAASI,uBAAuB,CAACpD,WAAmB,EAAW;IAC7D,OAAOO,GAAE,UAAA,CAACC,UAAU,CAACP,KAAI,UAAA,CAACC,IAAI,CAACF,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;CAChE;AAED,SAASqD,iBAAiB,CAACrD,WAAmB,EAAW;IACvD,MAAMsD,eAAe,GAAGrD,KAAI,UAAA,CAACC,IAAI,CAACF,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,AAAC;IACtE,OAAOO,GAAE,UAAA,CAACC,UAAU,CAAC8C,eAAe,CAAC,CAAC;CACvC;AAED,SAASC,kBAAkB,CAACvD,WAAmB,EAAW;IACxD,MAAMwD,aAAa,GAAGvD,KAAI,UAAA,CAACC,IAAI,CAACF,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,AAAC;IAC5D,OAAOO,GAAE,UAAA,CAACC,UAAU,CAACgD,aAAa,CAAC,CAAC;CACrC;AAIM,eAAe9D,0BAA0B,CAACM,WAAmB,EAAE;IACpE,IAAI,CAACoD,uBAAuB,CAACpD,WAAW,CAAC,EAAE;QACzC,iCAAiC;QACjC,OAAO;KACR;IACD,IAAI,CAACqD,iBAAiB,CAACrD,WAAW,CAAC,IAAI,CAACuD,kBAAkB,CAACvD,WAAW,CAAC,EAAE;QACvE,IAAI,CAAE,MAAMP,qBAAqB,CAACO,WAAW,CAAC,AAAC,EAAE;YAC/C,MAAM,IAAIyD,OAAiB,kBAAA,EAAE,CAAC;SAC/B;QACD,OAAO;KACR;IAED,iFAAiF;IACjF,IAAI,CAAE,MAAMjE,wCAAwC,CAACQ,WAAW,CAAC,AAAC,EAAE;QAClE,OAAO;KACR;IAED,MAAM0D,wBAAwB,CAAC1D,WAAW,EAAE,EAAE,CAAC,CAAC;CACjD;AAED,eAAe0D,wBAAwB,CAAC1D,WAAmB,EAAE2D,WAAsB,EAAE;IACnF,IAAIA,WAAW,QAAQ,GAAnBA,KAAAA,CAAmB,GAAnBA,WAAW,CAAEC,MAAM,EAAE;QACvBhE,GAAG,CAACmD,GAAG,CACL,CAAC,6CAA6C,EAAEY,WAAW,CACxDE,GAAG,CAAC,CAACC,GAAG,GAAKlB,MAAK,UAAA,CAACmB,IAAI,CAACD,GAAG,CAAC;QAAA,CAAC,CAC7B5D,IAAI,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE0C,MAAK,UAAA,CAACmB,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CACxE,CAAC;KACH;IAED,IAAI;QACF,IAAI,CAAE,MAAMtE,qBAAqB,CAACO,WAAW,CAAC,AAAC,EAAE;YAC/C,MAAM,IAAIyD,OAAiB,kBAAA,EAAE,CAAC;SAC/B;KACF,CAAC,OAAOf,KAAK,EAAE;QACd,MAAMnC,GAAE,UAAA,CAACyD,QAAQ,CAACC,EAAE,CAAChE,KAAI,UAAA,CAACC,IAAI,CAACH,qBAAqB,CAACC,WAAW,CAAC,EAAEF,mBAAmB,CAAC,EAAE;YACvFoE,SAAS,EAAE,IAAI;YACfC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,MAAMzB,KAAK,CAAC;KACb;CACF"}
|
|
@@ -6,14 +6,62 @@ exports.getDevelopmentCodeSigningDirectory = getDevelopmentCodeSigningDirectory;
|
|
|
6
6
|
exports.getCodeSigningInfoAsync = getCodeSigningInfoAsync;
|
|
7
7
|
exports.signManifestString = signManifestString;
|
|
8
8
|
exports.DevelopmentCodeSigningInfoFile = void 0;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
function _codeSigningCertificates() {
|
|
10
|
+
const data = require("@expo/code-signing-certificates");
|
|
11
|
+
_codeSigningCertificates = function() {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
function _getUserState() {
|
|
17
|
+
const data = require("@expo/config/build/getUserState");
|
|
18
|
+
_getUserState = function() {
|
|
19
|
+
return data;
|
|
20
|
+
};
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
function _jsonFile() {
|
|
24
|
+
const data = _interopRequireDefault(require("@expo/json-file"));
|
|
25
|
+
_jsonFile = function() {
|
|
26
|
+
return data;
|
|
27
|
+
};
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
function _core() {
|
|
31
|
+
const data = require("@urql/core");
|
|
32
|
+
_core = function() {
|
|
33
|
+
return data;
|
|
34
|
+
};
|
|
35
|
+
return data;
|
|
36
|
+
}
|
|
37
|
+
function _fs() {
|
|
38
|
+
const data = require("fs");
|
|
39
|
+
_fs = function() {
|
|
40
|
+
return data;
|
|
41
|
+
};
|
|
42
|
+
return data;
|
|
43
|
+
}
|
|
44
|
+
function _graphql() {
|
|
45
|
+
const data = require("graphql");
|
|
46
|
+
_graphql = function() {
|
|
47
|
+
return data;
|
|
48
|
+
};
|
|
49
|
+
return data;
|
|
50
|
+
}
|
|
51
|
+
function _path() {
|
|
52
|
+
const data = _interopRequireDefault(require("path"));
|
|
53
|
+
_path = function() {
|
|
54
|
+
return data;
|
|
55
|
+
};
|
|
56
|
+
return data;
|
|
57
|
+
}
|
|
58
|
+
function _structuredHeaders() {
|
|
59
|
+
const data = require("structured-headers");
|
|
60
|
+
_structuredHeaders = function() {
|
|
61
|
+
return data;
|
|
62
|
+
};
|
|
63
|
+
return data;
|
|
64
|
+
}
|
|
17
65
|
var _env = require("./env");
|
|
18
66
|
var _errors = require("./errors");
|
|
19
67
|
var _getExpoGoIntermediateCertificate = require("../api/getExpoGoIntermediateCertificate");
|
|
@@ -52,12 +100,12 @@ function _interopRequireWildcard(obj) {
|
|
|
52
100
|
const debug = require("debug")("expo:codesigning");
|
|
53
101
|
const DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME = "development-code-signing-settings-2.json";
|
|
54
102
|
function getDevelopmentCodeSigningDirectory() {
|
|
55
|
-
return _path.default.join((
|
|
103
|
+
return _path().default.join(_getUserState().getExpoHomeDirectory(), "codesigning");
|
|
56
104
|
}
|
|
57
105
|
function getProjectDevelopmentCodeSigningInfoFile(defaults) {
|
|
58
106
|
function getFile(easProjectId) {
|
|
59
|
-
const filePath = _path.default.join(getDevelopmentCodeSigningDirectory(), easProjectId, DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME);
|
|
60
|
-
return new _jsonFile.default(filePath);
|
|
107
|
+
const filePath = _path().default.join(getDevelopmentCodeSigningDirectory(), easProjectId, DEVELOPMENT_CODE_SIGNING_SETTINGS_FILE_NAME);
|
|
108
|
+
return new (_jsonFile()).default(filePath);
|
|
61
109
|
}
|
|
62
110
|
async function readAsync(easProjectId) {
|
|
63
111
|
let projectSettings;
|
|
@@ -107,7 +155,7 @@ async function getCodeSigningInfoAsync(exp, expectSignatureHeader, privateKeyPat
|
|
|
107
155
|
}
|
|
108
156
|
let parsedExpectSignature;
|
|
109
157
|
try {
|
|
110
|
-
parsedExpectSignature = (
|
|
158
|
+
parsedExpectSignature = _structuredHeaders().parseDictionary(expectSignatureHeader);
|
|
111
159
|
} catch {
|
|
112
160
|
throw new _errors.CommandError("Invalid value for expo-expect-signature header");
|
|
113
161
|
}
|
|
@@ -212,7 +260,7 @@ async function getCodeSigningInfoAsync(exp, expectSignatureHeader, privateKeyPat
|
|
|
212
260
|
}
|
|
213
261
|
async function readFileWithErrorAsync(path, errorMessage) {
|
|
214
262
|
try {
|
|
215
|
-
return await _fs.promises.readFile(path, "utf8");
|
|
263
|
+
return await _fs().promises.readFile(path, "utf8");
|
|
216
264
|
} catch {
|
|
217
265
|
throw new _errors.CommandError(errorMessage);
|
|
218
266
|
}
|
|
@@ -222,9 +270,9 @@ async function getProjectPrivateKeyAndCertificateFromFilePathsAsync({ codeSignin
|
|
|
222
270
|
readFileWithErrorAsync(codeSigningCertificatePath, `Code signing certificate cannot be read from path: ${codeSigningCertificatePath}`),
|
|
223
271
|
readFileWithErrorAsync(privateKeyPath, `Code signing private key cannot be read from path: ${privateKeyPath}`),
|
|
224
272
|
]);
|
|
225
|
-
const privateKey = (
|
|
226
|
-
const certificate = (
|
|
227
|
-
(
|
|
273
|
+
const privateKey = _codeSigningCertificates().convertPrivateKeyPEMToPrivateKey(privateKeyPEM);
|
|
274
|
+
const certificate = _codeSigningCertificates().convertCertificatePEMToCertificate(codeSigningCertificatePEM);
|
|
275
|
+
_codeSigningCertificates().validateSelfSignedCertificate(certificate, {
|
|
228
276
|
publicKey: certificate.publicKey,
|
|
229
277
|
privateKey
|
|
230
278
|
});
|
|
@@ -244,13 +292,15 @@ async function getProjectPrivateKeyAndCertificateFromFilePathsAsync({ codeSignin
|
|
|
244
292
|
if (!privateKeyPEM || !certificatePEMs) {
|
|
245
293
|
return null;
|
|
246
294
|
}
|
|
247
|
-
const certificateChain = certificatePEMs.map((certificatePEM)=>(
|
|
295
|
+
const certificateChain = certificatePEMs.map((certificatePEM)=>_codeSigningCertificates().convertCertificatePEMToCertificate(certificatePEM)
|
|
248
296
|
);
|
|
249
297
|
// TODO(wschurman): maybe move to @expo/code-signing-certificates
|
|
250
|
-
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
298
|
+
// ensure all intermediate certificates are valid
|
|
299
|
+
for (const certificate of certificateChain){
|
|
300
|
+
const now = new Date();
|
|
301
|
+
if (certificate.validity.notBefore > now || certificate.validity.notAfter < now) {
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
254
304
|
}
|
|
255
305
|
// TODO(wschurman): maybe do more validation, like validation of projectID and scopeKey within eas certificate extension
|
|
256
306
|
return {
|
|
@@ -276,7 +326,7 @@ async function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId) {
|
|
|
276
326
|
try {
|
|
277
327
|
app = await _appQuery.AppQuery.byIdAsync(easProjectId);
|
|
278
328
|
} catch (e) {
|
|
279
|
-
if (e instanceof _graphql.GraphQLError || e instanceof _core.CombinedError) {
|
|
329
|
+
if (e instanceof _graphql().GraphQLError || e instanceof _core().CombinedError) {
|
|
280
330
|
return null;
|
|
281
331
|
}
|
|
282
332
|
throw e;
|
|
@@ -284,10 +334,10 @@ async function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId) {
|
|
|
284
334
|
if (!actorCanGetProjectDevelopmentCertificate(actor, app)) {
|
|
285
335
|
return null;
|
|
286
336
|
}
|
|
287
|
-
const keyPair = (
|
|
288
|
-
const keyPairPEM = (
|
|
289
|
-
const csr = (
|
|
290
|
-
const csrPEM = (
|
|
337
|
+
const keyPair = _codeSigningCertificates().generateKeyPair();
|
|
338
|
+
const keyPairPEM = _codeSigningCertificates().convertKeyPairToPEM(keyPair);
|
|
339
|
+
const csr = _codeSigningCertificates().generateCSR(keyPair, `Development Certificate for ${easProjectId}`);
|
|
340
|
+
const csrPEM = _codeSigningCertificates().convertCSRToCSRPEM(csr);
|
|
291
341
|
const [developmentSigningCertificate, expoGoIntermediateCertificate] = await Promise.all([
|
|
292
342
|
(0, _getProjectDevelopmentCertificate).getProjectDevelopmentCertificateAsync(easProjectId, csrPEM),
|
|
293
343
|
(0, _getExpoGoIntermediateCertificate).getExpoGoIntermediateCertificateAsync(easProjectId),
|
|
@@ -313,9 +363,9 @@ async function fetchAndCacheNewDevelopmentCodeSigningInfoAsync(easProjectId) {
|
|
|
313
363
|
};
|
|
314
364
|
}
|
|
315
365
|
function signManifestString(stringifiedManifest, codeSigningInfo) {
|
|
316
|
-
const privateKey = (
|
|
317
|
-
const certificate = (
|
|
318
|
-
return (
|
|
366
|
+
const privateKey = _codeSigningCertificates().convertPrivateKeyPEMToPrivateKey(codeSigningInfo.privateKey);
|
|
367
|
+
const certificate = _codeSigningCertificates().convertCertificatePEMToCertificate(codeSigningInfo.certificateForPrivateKey);
|
|
368
|
+
return _codeSigningCertificates().signBufferRSASHA256AndVerify(privateKey, certificate, Buffer.from(stringifiedManifest, "utf8"));
|
|
319
369
|
}
|
|
320
370
|
|
|
321
371
|
//# sourceMappingURL=codesigning.js.map
|