@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/profile.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { env } from './env';\nimport * as Log from '../log';\n\n/**\n * Wrap a method and profile the time it takes to execute the method using `EXPO_PROFILE`.\n * Works best with named functions (i.e. not arrow functions).\n *\n * @param fn function to profile.\n * @param functionName optional name of the function to display in the profile output.\n */\nexport function profile<IArgs extends any[], T extends (...args: IArgs) => any>(\n fn: T,\n functionName: string = fn.name\n): T {\n if (!env.EXPO_PROFILE) {\n return fn;\n }\n\n const name = chalk.dim(`⏱ [profile] ${functionName ?? 'unknown'}`);\n\n return ((...args: IArgs) => {\n // Start the timer.\n Log.time(name);\n\n // Invoke the method.\n const results = fn(...args);\n\n // If non-promise then return as-is.\n if (!(results instanceof Promise)) {\n Log.timeEnd(name);\n return results;\n }\n\n // Otherwise await to profile after the promise resolves.\n return new Promise<Awaited<ReturnType<T>>>((resolve, reject) => {\n results.then(\n (results) => {\n resolve(results);\n Log.timeEnd(name);\n },\n (reason) => {\n reject(reason);\n Log.timeEnd(name);\n }\n );\n });\n }) as T;\n}\n"],"names":["profile","Log","fn","functionName","name","env","EXPO_PROFILE","chalk","dim","args","time","results","Promise","timeEnd","resolve","reject","then","reason"],"mappings":"AAAA;;;;QAYgBA,OAAO,GAAPA,OAAO;
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/profile.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { env } from './env';\nimport * as Log from '../log';\n\n/**\n * Wrap a method and profile the time it takes to execute the method using `EXPO_PROFILE`.\n * Works best with named functions (i.e. not arrow functions).\n *\n * @param fn function to profile.\n * @param functionName optional name of the function to display in the profile output.\n */\nexport function profile<IArgs extends any[], T extends (...args: IArgs) => any>(\n fn: T,\n functionName: string = fn.name\n): T {\n if (!env.EXPO_PROFILE) {\n return fn;\n }\n\n const name = chalk.dim(`⏱ [profile] ${functionName ?? 'unknown'}`);\n\n return ((...args: IArgs) => {\n // Start the timer.\n Log.time(name);\n\n // Invoke the method.\n const results = fn(...args);\n\n // If non-promise then return as-is.\n if (!(results instanceof Promise)) {\n Log.timeEnd(name);\n return results;\n }\n\n // Otherwise await to profile after the promise resolves.\n return new Promise<Awaited<ReturnType<T>>>((resolve, reject) => {\n results.then(\n (results) => {\n resolve(results);\n Log.timeEnd(name);\n },\n (reason) => {\n reject(reason);\n Log.timeEnd(name);\n }\n );\n });\n }) as T;\n}\n"],"names":["profile","Log","fn","functionName","name","env","EXPO_PROFILE","chalk","dim","args","time","results","Promise","timeEnd","resolve","reject","then","reason"],"mappings":"AAAA;;;;QAYgBA,OAAO,GAAPA,OAAO;SAZL,MAAO;gDAAP,OAAO;IAAP,MAAO;;;;;AAEL,IAAA,IAAO,WAAP,OAAO,CAAA;AACfC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;;;;;;;;;;;;;;;;;;;;;;;;;;;AASR,SAASD,OAAO,CACrBE,EAAK,EACLC,YAAoB,GAAGD,EAAE,CAACE,IAAI,EAC3B;IACH,IAAI,CAACC,IAAG,IAAA,CAACC,YAAY,EAAE;QACrB,OAAOJ,EAAE,CAAC;KACX;IAED,MAAME,IAAI,GAAGG,MAAK,UAAA,CAACC,GAAG,CAAC,CAAC,eAAa,EAAEL,YAAY,WAAZA,YAAY,GAAI,SAAS,CAAC,CAAC,CAAC,AAAC;IAEpE,OAAQ,CAAC,GAAGM,IAAI,AAAO,GAAK;QAC1B,mBAAmB;QACnBR,GAAG,CAACS,IAAI,CAACN,IAAI,CAAC,CAAC;QAEf,qBAAqB;QACrB,MAAMO,QAAO,GAAGT,EAAE,IAAIO,IAAI,CAAC,AAAC;QAE5B,oCAAoC;QACpC,IAAI,CAAC,CAACE,QAAO,YAAYC,OAAO,CAAC,EAAE;YACjCX,GAAG,CAACY,OAAO,CAACT,IAAI,CAAC,CAAC;YAClB,OAAOO,QAAO,CAAC;SAChB;QAED,yDAAyD;QACzD,OAAO,IAAIC,OAAO,CAAyB,CAACE,OAAO,EAAEC,MAAM,GAAK;YAC9DJ,QAAO,CAACK,IAAI,CACV,CAACL,OAAO,GAAK;gBACXG,OAAO,CAACH,OAAO,CAAC,CAAC;gBACjBV,GAAG,CAACY,OAAO,CAACT,IAAI,CAAC,CAAC;aACnB,EACD,CAACa,MAAM,GAAK;gBACVF,MAAM,CAACE,MAAM,CAAC,CAAC;gBACfhB,GAAG,CAACY,OAAO,CAACT,IAAI,CAAC,CAAC;aACnB,CACF,CAAC;SACH,CAAC,CAAC;KACJ,CAAO;CACT"}
|
|
@@ -5,7 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.setProgressBar = setProgressBar;
|
|
6
6
|
exports.getProgressBar = getProgressBar;
|
|
7
7
|
exports.createProgressBar = createProgressBar;
|
|
8
|
-
|
|
8
|
+
function _progress() {
|
|
9
|
+
const data = _interopRequireDefault(require("progress"));
|
|
10
|
+
_progress = function() {
|
|
11
|
+
return data;
|
|
12
|
+
};
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
9
15
|
function _interopRequireDefault(obj) {
|
|
10
16
|
return obj && obj.__esModule ? obj : {
|
|
11
17
|
default: obj
|
|
@@ -22,7 +28,7 @@ function createProgressBar(barFormat, options) {
|
|
|
22
28
|
if (process.stderr.clearLine == null) {
|
|
23
29
|
return null;
|
|
24
30
|
}
|
|
25
|
-
const bar = new _progress.default(barFormat, options);
|
|
31
|
+
const bar = new (_progress()).default(barFormat, options);
|
|
26
32
|
const logReal = console.log;
|
|
27
33
|
const infoReal = console.info;
|
|
28
34
|
const warnReal = console.warn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/progress.ts"],"sourcesContent":["import ProgressBar from 'progress';\n\nlet currentProgress: ProgressBar | null = null;\n\nexport function setProgressBar(bar: ProgressBar | null): void {\n currentProgress = bar;\n}\n\nexport function getProgressBar(): ProgressBar | null {\n return currentProgress;\n}\n\nexport function createProgressBar(barFormat: string, options: ProgressBar.ProgressBarOptions) {\n if (process.stderr.clearLine == null) {\n return null;\n }\n\n const bar = new ProgressBar(barFormat, options);\n\n const logReal = console.log;\n const infoReal = console.info;\n const warnReal = console.warn;\n const errorReal = console.error;\n\n const wrapNativeLogs = (): void => {\n // @ts-expect-error\n console.log = (...args: any) => bar.interrupt(...args);\n // @ts-expect-error\n console.info = (...args: any) => bar.interrupt(...args);\n // @ts-expect-error\n console.warn = (...args: any) => bar.interrupt(...args);\n // @ts-expect-error\n console.error = (...args: any) => bar.interrupt(...args);\n };\n\n const resetNativeLogs = (): void => {\n console.log = logReal;\n console.info = infoReal;\n console.warn = warnReal;\n console.error = errorReal;\n };\n\n const originalTerminate = bar.terminate.bind(bar);\n bar.terminate = () => {\n resetNativeLogs();\n setProgressBar(null);\n originalTerminate();\n };\n\n wrapNativeLogs();\n setProgressBar(bar);\n return bar;\n}\n"],"names":["setProgressBar","getProgressBar","createProgressBar","currentProgress","bar","barFormat","options","process","stderr","clearLine","ProgressBar","logReal","console","log","infoReal","info","warnReal","warn","errorReal","error","wrapNativeLogs","args","interrupt","resetNativeLogs","originalTerminate","terminate","bind"],"mappings":"AAAA;;;;QAIgBA,cAAc,GAAdA,cAAc;QAIdC,cAAc,GAAdA,cAAc;QAIdC,iBAAiB,GAAjBA,iBAAiB;
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/progress.ts"],"sourcesContent":["import ProgressBar from 'progress';\n\nlet currentProgress: ProgressBar | null = null;\n\nexport function setProgressBar(bar: ProgressBar | null): void {\n currentProgress = bar;\n}\n\nexport function getProgressBar(): ProgressBar | null {\n return currentProgress;\n}\n\nexport function createProgressBar(barFormat: string, options: ProgressBar.ProgressBarOptions) {\n if (process.stderr.clearLine == null) {\n return null;\n }\n\n const bar = new ProgressBar(barFormat, options);\n\n const logReal = console.log;\n const infoReal = console.info;\n const warnReal = console.warn;\n const errorReal = console.error;\n\n const wrapNativeLogs = (): void => {\n // @ts-expect-error\n console.log = (...args: any) => bar.interrupt(...args);\n // @ts-expect-error\n console.info = (...args: any) => bar.interrupt(...args);\n // @ts-expect-error\n console.warn = (...args: any) => bar.interrupt(...args);\n // @ts-expect-error\n console.error = (...args: any) => bar.interrupt(...args);\n };\n\n const resetNativeLogs = (): void => {\n console.log = logReal;\n console.info = infoReal;\n console.warn = warnReal;\n console.error = errorReal;\n };\n\n const originalTerminate = bar.terminate.bind(bar);\n bar.terminate = () => {\n resetNativeLogs();\n setProgressBar(null);\n originalTerminate();\n };\n\n wrapNativeLogs();\n setProgressBar(bar);\n return bar;\n}\n"],"names":["setProgressBar","getProgressBar","createProgressBar","currentProgress","bar","barFormat","options","process","stderr","clearLine","ProgressBar","logReal","console","log","infoReal","info","warnReal","warn","errorReal","error","wrapNativeLogs","args","interrupt","resetNativeLogs","originalTerminate","terminate","bind"],"mappings":"AAAA;;;;QAIgBA,cAAc,GAAdA,cAAc;QAIdC,cAAc,GAAdA,cAAc;QAIdC,iBAAiB,GAAjBA,iBAAiB;SAZT,SAAU;gDAAV,UAAU;IAAV,SAAU;;;;;;;;;;AAElC,IAAIC,eAAe,GAAuB,IAAI,AAAC;AAExC,SAASH,cAAc,CAACI,GAAuB,EAAQ;IAC5DD,eAAe,GAAGC,GAAG,CAAC;CACvB;AAEM,SAASH,cAAc,GAAuB;IACnD,OAAOE,eAAe,CAAC;CACxB;AAEM,SAASD,iBAAiB,CAACG,SAAiB,EAAEC,OAAuC,EAAE;IAC5F,IAAIC,OAAO,CAACC,MAAM,CAACC,SAAS,IAAI,IAAI,EAAE;QACpC,OAAO,IAAI,CAAC;KACb;IAED,MAAML,GAAG,GAAG,IAAIM,CAAAA,SAAW,WAAA,CAACL,SAAS,EAAEC,OAAO,CAAC,AAAC;IAEhD,MAAMK,OAAO,GAAGC,OAAO,CAACC,GAAG,AAAC;IAC5B,MAAMC,QAAQ,GAAGF,OAAO,CAACG,IAAI,AAAC;IAC9B,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,IAAI,AAAC;IAC9B,MAAMC,SAAS,GAAGN,OAAO,CAACO,KAAK,AAAC;IAEhC,MAAMC,cAAc,GAAG,IAAY;QACjC,mBAAmB;QACnBR,OAAO,CAACC,GAAG,GAAG,CAAC,GAAGQ,IAAI,AAAK,GAAKjB,GAAG,CAACkB,SAAS,IAAID,IAAI,CAAC;QAAA,CAAC;QACvD,mBAAmB;QACnBT,OAAO,CAACG,IAAI,GAAG,CAAC,GAAGM,IAAI,AAAK,GAAKjB,GAAG,CAACkB,SAAS,IAAID,IAAI,CAAC;QAAA,CAAC;QACxD,mBAAmB;QACnBT,OAAO,CAACK,IAAI,GAAG,CAAC,GAAGI,IAAI,AAAK,GAAKjB,GAAG,CAACkB,SAAS,IAAID,IAAI,CAAC;QAAA,CAAC;QACxD,mBAAmB;QACnBT,OAAO,CAACO,KAAK,GAAG,CAAC,GAAGE,IAAI,AAAK,GAAKjB,GAAG,CAACkB,SAAS,IAAID,IAAI,CAAC;QAAA,CAAC;KAC1D,AAAC;IAEF,MAAME,eAAe,GAAG,IAAY;QAClCX,OAAO,CAACC,GAAG,GAAGF,OAAO,CAAC;QACtBC,OAAO,CAACG,IAAI,GAAGD,QAAQ,CAAC;QACxBF,OAAO,CAACK,IAAI,GAAGD,QAAQ,CAAC;QACxBJ,OAAO,CAACO,KAAK,GAAGD,SAAS,CAAC;KAC3B,AAAC;IAEF,MAAMM,iBAAiB,GAAGpB,GAAG,CAACqB,SAAS,CAACC,IAAI,CAACtB,GAAG,CAAC,AAAC;IAClDA,GAAG,CAACqB,SAAS,GAAG,IAAM;QACpBF,eAAe,EAAE,CAAC;QAClBvB,cAAc,CAAC,IAAI,CAAC,CAAC;QACrBwB,iBAAiB,EAAE,CAAC;KACrB,CAAC;IAEFJ,cAAc,EAAE,CAAC;IACjBpB,cAAc,CAACI,GAAG,CAAC,CAAC;IACpB,OAAOA,GAAG,CAAC;CACZ"}
|
|
@@ -11,8 +11,20 @@ exports.pauseInteractions = pauseInteractions;
|
|
|
11
11
|
exports.resumeInteractions = resumeInteractions;
|
|
12
12
|
exports.createSelectionFilter = createSelectionFilter;
|
|
13
13
|
exports.promptAsync = void 0;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
function _assert() {
|
|
15
|
+
const data = _interopRequireDefault(require("assert"));
|
|
16
|
+
_assert = function() {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _prompts() {
|
|
22
|
+
const data = _interopRequireDefault(require("prompts"));
|
|
23
|
+
_prompts = function() {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
16
28
|
var _errors = require("./errors");
|
|
17
29
|
var _interactive = require("./interactive");
|
|
18
30
|
async function prompt(questions, { nonInteractiveHelp , ...options } = {}) {
|
|
@@ -32,7 +44,7 @@ async function prompt(questions, { nonInteractiveHelp , ...options } = {}) {
|
|
|
32
44
|
}
|
|
33
45
|
pauseInteractions();
|
|
34
46
|
try {
|
|
35
|
-
const results = await (
|
|
47
|
+
const results = await _prompts().default(questions, {
|
|
36
48
|
onCancel () {
|
|
37
49
|
throw new _errors.AbortCommandError();
|
|
38
50
|
},
|
|
@@ -76,7 +88,7 @@ function addInteractionListener(callback) {
|
|
|
76
88
|
function removeInteractionListener(callback) {
|
|
77
89
|
const listenerIndex = listeners.findIndex((_callback)=>_callback === callback
|
|
78
90
|
);
|
|
79
|
-
(
|
|
91
|
+
_assert().default(listenerIndex >= 0, "removeInteractionListener(): cannot remove an unregistered event listener.");
|
|
80
92
|
listeners.splice(listenerIndex, 1);
|
|
81
93
|
}
|
|
82
94
|
function pauseInteractions(options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/prompts.ts"],"sourcesContent":["import assert from 'assert';\nimport prompts, { Choice, Options, PromptObject } from 'prompts';\n\nimport { AbortCommandError, CommandError } from './errors';\nimport { isInteractive } from './interactive';\n\nconst debug = require('debug')('expo:utils:prompts') as typeof console.log;\n\nexport type Question<V extends string = string> = PromptObject<V> & {\n optionsPerPage?: number;\n};\n\nexport interface ExpoChoice<T> extends Choice {\n value: T;\n}\n\ntype PromptOptions = { nonInteractiveHelp?: string } & Options;\n\nexport type NamelessQuestion = Omit<Question<'value'>, 'name' | 'type'>;\n\ntype InteractionOptions = { pause: boolean; canEscape?: boolean };\n\ntype InteractionCallback = (options: InteractionOptions) => void;\n\n/** Interaction observers for detecting when keystroke tracking should pause/resume. */\nconst listeners: InteractionCallback[] = [];\n\nexport default async function prompt(\n questions: Question | Question[],\n { nonInteractiveHelp, ...options }: PromptOptions = {}\n) {\n questions = Array.isArray(questions) ? questions : [questions];\n if (!isInteractive() && questions.length !== 0) {\n let message = `Input is required, but 'npx expo' is in non-interactive mode.\\n`;\n if (nonInteractiveHelp) {\n message += nonInteractiveHelp;\n } else {\n const question = questions[0];\n const questionMessage =\n typeof question.message === 'function'\n ? question.message(undefined, {}, question)\n : question.message;\n\n message += `Required input:\\n${(questionMessage || '').trim().replace(/^/gm, '> ')}`;\n }\n throw new CommandError('NON_INTERACTIVE', message);\n }\n\n pauseInteractions();\n try {\n const results = await prompts(questions, {\n onCancel() {\n throw new AbortCommandError();\n },\n ...options,\n });\n\n return results;\n } finally {\n resumeInteractions();\n }\n}\n\n/**\n * Create a standard yes/no confirmation that can be cancelled.\n *\n * @param questions\n * @param options\n */\nexport async function confirmAsync(\n questions: NamelessQuestion,\n options?: PromptOptions\n): Promise<boolean> {\n const { value } = await prompt(\n {\n initial: true,\n ...questions,\n name: 'value',\n type: 'confirm',\n },\n options\n );\n return value ?? null;\n}\n\n/** Select an option from a list of options. */\nexport async function selectAsync<T>(\n message: string,\n choices: ExpoChoice<T>[],\n options?: PromptOptions\n): Promise<T> {\n const { value } = await prompt(\n {\n message,\n choices,\n name: 'value',\n type: 'select',\n },\n options\n );\n return value ?? null;\n}\n\nexport const promptAsync = prompt;\n\n/** Used to pause/resume interaction observers while prompting (made for TerminalUI). */\nexport function addInteractionListener(callback: InteractionCallback) {\n listeners.push(callback);\n}\n\nexport function removeInteractionListener(callback: InteractionCallback) {\n const listenerIndex = listeners.findIndex((_callback) => _callback === callback);\n assert(\n listenerIndex >= 0,\n 'removeInteractionListener(): cannot remove an unregistered event listener.'\n );\n listeners.splice(listenerIndex, 1);\n}\n\n/** Notify all listeners that keypress observations must pause. */\nexport function pauseInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers paused');\n for (const listener of listeners) {\n listener({ pause: true, ...options });\n }\n}\n\n/** Notify all listeners that keypress observations can start.. */\nexport function resumeInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers resumed');\n for (const listener of listeners) {\n listener({ pause: false, ...options });\n }\n}\n\nexport function createSelectionFilter(): (input: any, choices: Choice[]) => Promise<any> {\n function escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n return async (input: any, choices: Choice[]) => {\n try {\n const regex = new RegExp(escapeRegex(input), 'i');\n return choices.filter((choice: any) => regex.test(choice.title));\n } catch (error: any) {\n debug('Error filtering choices', error);\n return [];\n }\n };\n}\n"],"names":["prompt","confirmAsync","selectAsync","addInteractionListener","removeInteractionListener","pauseInteractions","resumeInteractions","createSelectionFilter","questions","nonInteractiveHelp","options","Array","isArray","isInteractive","length","message","question","questionMessage","undefined","trim","replace","CommandError","results","prompts","onCancel","AbortCommandError","debug","require","listeners","value","initial","name","type","choices","promptAsync","callback","push","listenerIndex","findIndex","_callback","assert","splice","listener","pause","escapeRegex","string","input","regex","RegExp","filter","choice","test","title","error"],"mappings":"AAAA;;;;kBA2B8BA,MAAM;QA0CdC,YAAY,GAAZA,YAAY;QAiBZC,WAAW,GAAXA,WAAW;QAoBjBC,sBAAsB,GAAtBA,sBAAsB;QAItBC,yBAAyB,GAAzBA,yBAAyB;QAUzBC,iBAAiB,GAAjBA,iBAAiB;QAQjBC,kBAAkB,GAAlBA,kBAAkB;QAOlBC,qBAAqB,GAArBA,qBAAqB;;
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/prompts.ts"],"sourcesContent":["import assert from 'assert';\nimport prompts, { Choice, Options, PromptObject } from 'prompts';\n\nimport { AbortCommandError, CommandError } from './errors';\nimport { isInteractive } from './interactive';\n\nconst debug = require('debug')('expo:utils:prompts') as typeof console.log;\n\nexport type Question<V extends string = string> = PromptObject<V> & {\n optionsPerPage?: number;\n};\n\nexport interface ExpoChoice<T> extends Choice {\n value: T;\n}\n\ntype PromptOptions = { nonInteractiveHelp?: string } & Options;\n\nexport type NamelessQuestion = Omit<Question<'value'>, 'name' | 'type'>;\n\ntype InteractionOptions = { pause: boolean; canEscape?: boolean };\n\ntype InteractionCallback = (options: InteractionOptions) => void;\n\n/** Interaction observers for detecting when keystroke tracking should pause/resume. */\nconst listeners: InteractionCallback[] = [];\n\nexport default async function prompt(\n questions: Question | Question[],\n { nonInteractiveHelp, ...options }: PromptOptions = {}\n) {\n questions = Array.isArray(questions) ? questions : [questions];\n if (!isInteractive() && questions.length !== 0) {\n let message = `Input is required, but 'npx expo' is in non-interactive mode.\\n`;\n if (nonInteractiveHelp) {\n message += nonInteractiveHelp;\n } else {\n const question = questions[0];\n const questionMessage =\n typeof question.message === 'function'\n ? question.message(undefined, {}, question)\n : question.message;\n\n message += `Required input:\\n${(questionMessage || '').trim().replace(/^/gm, '> ')}`;\n }\n throw new CommandError('NON_INTERACTIVE', message);\n }\n\n pauseInteractions();\n try {\n const results = await prompts(questions, {\n onCancel() {\n throw new AbortCommandError();\n },\n ...options,\n });\n\n return results;\n } finally {\n resumeInteractions();\n }\n}\n\n/**\n * Create a standard yes/no confirmation that can be cancelled.\n *\n * @param questions\n * @param options\n */\nexport async function confirmAsync(\n questions: NamelessQuestion,\n options?: PromptOptions\n): Promise<boolean> {\n const { value } = await prompt(\n {\n initial: true,\n ...questions,\n name: 'value',\n type: 'confirm',\n },\n options\n );\n return value ?? null;\n}\n\n/** Select an option from a list of options. */\nexport async function selectAsync<T>(\n message: string,\n choices: ExpoChoice<T>[],\n options?: PromptOptions\n): Promise<T> {\n const { value } = await prompt(\n {\n message,\n choices,\n name: 'value',\n type: 'select',\n },\n options\n );\n return value ?? null;\n}\n\nexport const promptAsync = prompt;\n\n/** Used to pause/resume interaction observers while prompting (made for TerminalUI). */\nexport function addInteractionListener(callback: InteractionCallback) {\n listeners.push(callback);\n}\n\nexport function removeInteractionListener(callback: InteractionCallback) {\n const listenerIndex = listeners.findIndex((_callback) => _callback === callback);\n assert(\n listenerIndex >= 0,\n 'removeInteractionListener(): cannot remove an unregistered event listener.'\n );\n listeners.splice(listenerIndex, 1);\n}\n\n/** Notify all listeners that keypress observations must pause. */\nexport function pauseInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers paused');\n for (const listener of listeners) {\n listener({ pause: true, ...options });\n }\n}\n\n/** Notify all listeners that keypress observations can start.. */\nexport function resumeInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers resumed');\n for (const listener of listeners) {\n listener({ pause: false, ...options });\n }\n}\n\nexport function createSelectionFilter(): (input: any, choices: Choice[]) => Promise<any> {\n function escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n return async (input: any, choices: Choice[]) => {\n try {\n const regex = new RegExp(escapeRegex(input), 'i');\n return choices.filter((choice: any) => regex.test(choice.title));\n } catch (error: any) {\n debug('Error filtering choices', error);\n return [];\n }\n };\n}\n"],"names":["prompt","confirmAsync","selectAsync","addInteractionListener","removeInteractionListener","pauseInteractions","resumeInteractions","createSelectionFilter","questions","nonInteractiveHelp","options","Array","isArray","isInteractive","length","message","question","questionMessage","undefined","trim","replace","CommandError","results","prompts","onCancel","AbortCommandError","debug","require","listeners","value","initial","name","type","choices","promptAsync","callback","push","listenerIndex","findIndex","_callback","assert","splice","listener","pause","escapeRegex","string","input","regex","RegExp","filter","choice","test","title","error"],"mappings":"AAAA;;;;kBA2B8BA,MAAM;QA0CdC,YAAY,GAAZA,YAAY;QAiBZC,WAAW,GAAXA,WAAW;QAoBjBC,sBAAsB,GAAtBA,sBAAsB;QAItBC,yBAAyB,GAAzBA,yBAAyB;QAUzBC,iBAAiB,GAAjBA,iBAAiB;QAQjBC,kBAAkB,GAAlBA,kBAAkB;QAOlBC,qBAAqB,GAArBA,qBAAqB;;SAvIlB,OAAQ;gDAAR,QAAQ;IAAR,OAAQ;;;;;SAC4B,QAAS;gDAAT,SAAS;IAAT,QAAS;;;;;AAEhB,IAAA,OAAU,WAAV,UAAU,CAAA;AAC5B,IAAA,YAAe,WAAf,eAAe,CAAA;AAuB9B,eAAeP,MAAM,CAClCQ,SAAgC,EAChC,EAAEC,kBAAkB,CAAA,EAAE,GAAGC,OAAO,EAAiB,GAAG,EAAE,EACtD;IACAF,SAAS,GAAGG,KAAK,CAACC,OAAO,CAACJ,SAAS,CAAC,GAAGA,SAAS,GAAG;QAACA,SAAS;KAAC,CAAC;IAC/D,IAAI,CAACK,CAAAA,GAAAA,YAAa,AAAE,CAAA,cAAF,EAAE,IAAIL,SAAS,CAACM,MAAM,KAAK,CAAC,EAAE;QAC9C,IAAIC,OAAO,GAAG,CAAC,+DAA+D,CAAC,AAAC;QAChF,IAAIN,kBAAkB,EAAE;YACtBM,OAAO,IAAIN,kBAAkB,CAAC;SAC/B,MAAM;YACL,MAAMO,QAAQ,GAAGR,SAAS,CAAC,CAAC,CAAC,AAAC;YAC9B,MAAMS,eAAe,GACnB,OAAOD,QAAQ,CAACD,OAAO,KAAK,UAAU,GAClCC,QAAQ,CAACD,OAAO,CAACG,SAAS,EAAE,EAAE,EAAEF,QAAQ,CAAC,GACzCA,QAAQ,CAACD,OAAO,AAAC;YAEvBA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAACE,eAAe,IAAI,EAAE,CAAC,CAACE,IAAI,EAAE,CAACC,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;SACtF;QACD,MAAM,IAAIC,OAAY,aAAA,CAAC,iBAAiB,EAAEN,OAAO,CAAC,CAAC;KACpD;IAEDV,iBAAiB,EAAE,CAAC;IACpB,IAAI;QACF,MAAMiB,OAAO,GAAG,MAAMC,QAAO,UAAA,CAACf,SAAS,EAAE;YACvCgB,QAAQ,IAAG;gBACT,MAAM,IAAIC,OAAiB,kBAAA,EAAE,CAAC;aAC/B;YACD,GAAGf,OAAO;SACX,CAAC,AAAC;QAEH,OAAOY,OAAO,CAAC;KAChB,QAAS;QACRhB,kBAAkB,EAAE,CAAC;KACtB;CACF;;;;;;AAvDD,MAAMoB,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,AAAsB,AAAC;AAkB3E,uFAAuF,CACvF,MAAMC,SAAS,GAA0B,EAAE,AAAC;AA4CrC,eAAe3B,YAAY,CAChCO,SAA2B,EAC3BE,OAAuB,EACL;IAClB,MAAM,EAAEmB,KAAK,CAAA,EAAE,GAAG,MAAM7B,MAAM,CAC5B;QACE8B,OAAO,EAAE,IAAI;QACb,GAAGtB,SAAS;QACZuB,IAAI,EAAE,OAAO;QACbC,IAAI,EAAE,SAAS;KAChB,EACDtB,OAAO,CACR,AAAC;IACF,OAAOmB,KAAK,WAALA,KAAK,GAAI,IAAI,CAAC;CACtB;AAGM,eAAe3B,WAAW,CAC/Ba,OAAe,EACfkB,OAAwB,EACxBvB,OAAuB,EACX;IACZ,MAAM,EAAEmB,KAAK,CAAA,EAAE,GAAG,MAAM7B,MAAM,CAC5B;QACEe,OAAO;QACPkB,OAAO;QACPF,IAAI,EAAE,OAAO;QACbC,IAAI,EAAE,QAAQ;KACf,EACDtB,OAAO,CACR,AAAC;IACF,OAAOmB,KAAK,WAALA,KAAK,GAAI,IAAI,CAAC;CACtB;AAEM,MAAMK,WAAW,GAAGlC,MAAM,AAAC;QAArBkC,WAAW,GAAXA,WAAW;AAGjB,SAAS/B,sBAAsB,CAACgC,QAA6B,EAAE;IACpEP,SAAS,CAACQ,IAAI,CAACD,QAAQ,CAAC,CAAC;CAC1B;AAEM,SAAS/B,yBAAyB,CAAC+B,QAA6B,EAAE;IACvE,MAAME,aAAa,GAAGT,SAAS,CAACU,SAAS,CAAC,CAACC,SAAS,GAAKA,SAAS,KAAKJ,QAAQ;IAAA,CAAC,AAAC;IACjFK,OAAM,UAAA,CACJH,aAAa,IAAI,CAAC,EAClB,4EAA4E,CAC7E,CAAC;IACFT,SAAS,CAACa,MAAM,CAACJ,aAAa,EAAE,CAAC,CAAC,CAAC;CACpC;AAGM,SAAShC,iBAAiB,CAACK,OAA0C,GAAG,EAAE,EAAE;IACjFgB,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACtC,KAAK,MAAMgB,QAAQ,IAAId,SAAS,CAAE;QAChCc,QAAQ,CAAC;YAAEC,KAAK,EAAE,IAAI;YAAE,GAAGjC,OAAO;SAAE,CAAC,CAAC;KACvC;CACF;AAGM,SAASJ,kBAAkB,CAACI,OAA0C,GAAG,EAAE,EAAE;IAClFgB,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACvC,KAAK,MAAMgB,QAAQ,IAAId,SAAS,CAAE;QAChCc,QAAQ,CAAC;YAAEC,KAAK,EAAE,KAAK;YAAE,GAAGjC,OAAO;SAAE,CAAC,CAAC;KACxC;CACF;AAEM,SAASH,qBAAqB,GAAoD;IACvF,SAASqC,WAAW,CAACC,MAAc,EAAE;QACnC,OAAOA,MAAM,CAACzB,OAAO,0BAA0B,MAAM,CAAC,CAAC;KACxD;IAED,OAAO,OAAO0B,KAAU,EAAEb,OAAiB,GAAK;QAC9C,IAAI;YACF,MAAMc,KAAK,GAAG,IAAIC,MAAM,CAACJ,WAAW,CAACE,KAAK,CAAC,EAAE,GAAG,CAAC,AAAC;YAClD,OAAOb,OAAO,CAACgB,MAAM,CAAC,CAACC,MAAW,GAAKH,KAAK,CAACI,IAAI,CAACD,MAAM,CAACE,KAAK,CAAC;YAAA,CAAC,CAAC;SAClE,CAAC,OAAOC,KAAK,EAAO;YACnB3B,KAAK,CAAC,yBAAyB,EAAE2B,KAAK,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC;SACX;KACF,CAAC;CACH"}
|
|
@@ -5,13 +5,55 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.getSchemesForIosAsync = getSchemesForIosAsync;
|
|
6
6
|
exports.getSchemesForAndroidAsync = getSchemesForAndroidAsync;
|
|
7
7
|
exports.getOptionalDevClientSchemeAsync = getOptionalDevClientSchemeAsync;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
function _config() {
|
|
9
|
+
const data = require("@expo/config");
|
|
10
|
+
_config = function() {
|
|
11
|
+
return data;
|
|
12
|
+
};
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
function _configPlugins() {
|
|
16
|
+
const data = require("@expo/config-plugins");
|
|
17
|
+
_configPlugins = function() {
|
|
18
|
+
return data;
|
|
19
|
+
};
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
22
|
+
function _getInfoPlistPath() {
|
|
23
|
+
const data = require("@expo/config-plugins/build/ios/utils/getInfoPlistPath");
|
|
24
|
+
_getInfoPlistPath = function() {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function _plist() {
|
|
30
|
+
const data = _interopRequireDefault(require("@expo/plist"));
|
|
31
|
+
_plist = 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
|
+
}
|
|
50
|
+
function _resolveFrom() {
|
|
51
|
+
const data = _interopRequireDefault(require("resolve-from"));
|
|
52
|
+
_resolveFrom = function() {
|
|
53
|
+
return data;
|
|
54
|
+
};
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
15
57
|
var _array = require("./array");
|
|
16
58
|
var Log = _interopRequireWildcard(require("../log"));
|
|
17
59
|
var _clearNativeFolder = require("../prebuild/clearNativeFolder");
|
|
@@ -59,13 +101,13 @@ function sortLongest(obj) {
|
|
|
59
101
|
}
|
|
60
102
|
async function getSchemesForIosAsync(projectRoot) {
|
|
61
103
|
try {
|
|
62
|
-
const infoPlistBuildProperty = (
|
|
104
|
+
const infoPlistBuildProperty = _getInfoPlistPath().getInfoPlistPathFromPbxproj(projectRoot);
|
|
63
105
|
debug(`ios application Info.plist path:`, infoPlistBuildProperty);
|
|
64
106
|
if (infoPlistBuildProperty) {
|
|
65
|
-
const configPath = _path.default.join(projectRoot, "ios", infoPlistBuildProperty);
|
|
66
|
-
const rawPlist = _fs.default.readFileSync(configPath, "utf8");
|
|
67
|
-
const plistObject = _plist.default.parse(rawPlist);
|
|
68
|
-
const schemes = _configPlugins.IOSConfig.Scheme.getSchemesFromPlist(plistObject);
|
|
107
|
+
const configPath = _path().default.join(projectRoot, "ios", infoPlistBuildProperty);
|
|
108
|
+
const rawPlist = _fs().default.readFileSync(configPath, "utf8");
|
|
109
|
+
const plistObject = _plist().default.parse(rawPlist);
|
|
110
|
+
const schemes = _configPlugins().IOSConfig.Scheme.getSchemesFromPlist(plistObject);
|
|
69
111
|
debug(`ios application schemes:`, schemes);
|
|
70
112
|
return resolveExpoOrLongestScheme(schemes);
|
|
71
113
|
}
|
|
@@ -77,9 +119,9 @@ async function getSchemesForIosAsync(projectRoot) {
|
|
|
77
119
|
}
|
|
78
120
|
async function getSchemesForAndroidAsync(projectRoot) {
|
|
79
121
|
try {
|
|
80
|
-
const configPath = await _configPlugins.AndroidConfig.Paths.getAndroidManifestAsync(projectRoot);
|
|
81
|
-
const manifest = await _configPlugins.AndroidConfig.Manifest.readAndroidManifestAsync(configPath);
|
|
82
|
-
const schemes = await _configPlugins.AndroidConfig.Scheme.getSchemesFromManifest(manifest);
|
|
122
|
+
const configPath = await _configPlugins().AndroidConfig.Paths.getAndroidManifestAsync(projectRoot);
|
|
123
|
+
const manifest = await _configPlugins().AndroidConfig.Manifest.readAndroidManifestAsync(configPath);
|
|
124
|
+
const schemes = await _configPlugins().AndroidConfig.Scheme.getSchemesFromManifest(manifest);
|
|
83
125
|
debug(`android application schemes:`, schemes);
|
|
84
126
|
return resolveExpoOrLongestScheme(schemes);
|
|
85
127
|
} catch (error) {
|
|
@@ -90,9 +132,9 @@ async function getSchemesForAndroidAsync(projectRoot) {
|
|
|
90
132
|
}
|
|
91
133
|
// TODO: Revisit and test after run code is merged.
|
|
92
134
|
async function getManagedDevClientSchemeAsync(projectRoot) {
|
|
93
|
-
const { exp } = (
|
|
135
|
+
const { exp } = _config().getConfig(projectRoot);
|
|
94
136
|
try {
|
|
95
|
-
const getDefaultScheme = require((
|
|
137
|
+
const getDefaultScheme = require(_resolveFrom().default(projectRoot, "expo-dev-client/getDefaultScheme"));
|
|
96
138
|
const scheme = getDefaultScheme(exp);
|
|
97
139
|
return scheme;
|
|
98
140
|
} catch {
|
|
@@ -111,18 +153,28 @@ async function getOptionalDevClientSchemeAsync(projectRoot) {
|
|
|
111
153
|
]);
|
|
112
154
|
// Allow managed projects
|
|
113
155
|
if (!hasIos && !hasAndroid) {
|
|
114
|
-
return
|
|
156
|
+
return {
|
|
157
|
+
scheme: await getManagedDevClientSchemeAsync(projectRoot),
|
|
158
|
+
resolution: "config"
|
|
159
|
+
};
|
|
115
160
|
}
|
|
116
|
-
let matching;
|
|
117
161
|
// Allow for only one native project to exist.
|
|
118
162
|
if (!hasIos) {
|
|
119
|
-
|
|
163
|
+
return {
|
|
164
|
+
scheme: android[0],
|
|
165
|
+
resolution: "android"
|
|
166
|
+
};
|
|
120
167
|
} else if (!hasAndroid) {
|
|
121
|
-
|
|
168
|
+
return {
|
|
169
|
+
scheme: ios[0],
|
|
170
|
+
resolution: "ios"
|
|
171
|
+
};
|
|
122
172
|
} else {
|
|
123
|
-
|
|
173
|
+
return {
|
|
174
|
+
scheme: (0, _array).intersecting(ios, android)[0],
|
|
175
|
+
resolution: "shared"
|
|
176
|
+
};
|
|
124
177
|
}
|
|
125
|
-
return matching != null ? matching : null;
|
|
126
178
|
}
|
|
127
179
|
|
|
128
180
|
//# sourceMappingURL=scheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/scheme.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport { AndroidConfig, IOSConfig } from '@expo/config-plugins';\nimport { getInfoPlistPathFromPbxproj } from '@expo/config-plugins/build/ios/utils/getInfoPlistPath';\nimport plist from '@expo/plist';\nimport fs from 'fs';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { intersecting } from './array';\nimport * as Log from '../log';\nimport {\n hasRequiredAndroidFilesAsync,\n hasRequiredIOSFilesAsync,\n} from '../prebuild/clearNativeFolder';\n\nconst debug = require('debug')('expo:utils:scheme') as typeof console.log;\n\n// sort longest to ensure uniqueness.\n// this might be undesirable as it causes the QR code to be longer.\nfunction sortLongest(obj: string[]): string[] {\n return obj.sort((a, b) => b.length - a.length);\n}\n\n/**\n * Resolve the scheme for the dev client using two methods:\n * - filter on known Expo schemes, starting with `exp+`, avoiding 3rd party schemes.\n * - filter on longest to ensure uniqueness.\n */\nfunction resolveExpoOrLongestScheme(schemes: string[]): string[] {\n const expoOnlySchemes = schemes.filter((scheme) => scheme.startsWith('exp+'));\n return expoOnlySchemes.length > 0 ? sortLongest(expoOnlySchemes) : sortLongest(schemes);\n}\n\n// TODO: Revisit and test after run code is merged.\nexport async function getSchemesForIosAsync(projectRoot: string): Promise<string[]> {\n try {\n const infoPlistBuildProperty = getInfoPlistPathFromPbxproj(projectRoot);\n debug(`ios application Info.plist path:`, infoPlistBuildProperty);\n if (infoPlistBuildProperty) {\n const configPath = path.join(projectRoot, 'ios', infoPlistBuildProperty);\n const rawPlist = fs.readFileSync(configPath, 'utf8');\n const plistObject = plist.parse(rawPlist);\n const schemes = IOSConfig.Scheme.getSchemesFromPlist(plistObject);\n debug(`ios application schemes:`, schemes);\n return resolveExpoOrLongestScheme(schemes);\n }\n } catch (error) {\n debug(`expected error collecting ios application schemes for the main target:`, error);\n }\n // No ios folder or some other error\n return [];\n}\n\n// TODO: Revisit and test after run code is merged.\nexport async function getSchemesForAndroidAsync(projectRoot: string): Promise<string[]> {\n try {\n const configPath = await AndroidConfig.Paths.getAndroidManifestAsync(projectRoot);\n const manifest = await AndroidConfig.Manifest.readAndroidManifestAsync(configPath);\n const schemes = await AndroidConfig.Scheme.getSchemesFromManifest(manifest);\n debug(`android application schemes:`, schemes);\n return resolveExpoOrLongestScheme(schemes);\n } catch (error) {\n debug(`expected error collecting android application schemes for the main activity:`, error);\n // No android folder or some other error\n return [];\n }\n}\n\n// TODO: Revisit and test after run code is merged.\nasync function getManagedDevClientSchemeAsync(projectRoot: string): Promise<string | null> {\n const { exp } = getConfig(projectRoot);\n try {\n const getDefaultScheme = require(resolveFrom(projectRoot, 'expo-dev-client/getDefaultScheme'));\n const scheme = getDefaultScheme(exp);\n return scheme;\n } catch {\n Log.warn(\n '\\nDevelopment build: Unable to get the default URI scheme for the project. Please make sure the expo-dev-client package is installed.'\n );\n return null;\n }\n}\n\n// TODO: Revisit and test after run code is merged.\nexport async function getOptionalDevClientSchemeAsync(projectRoot: string): Promise<string | null> {\n const [hasIos, hasAndroid] = await Promise.all([\n hasRequiredIOSFilesAsync(projectRoot),\n hasRequiredAndroidFilesAsync(projectRoot),\n ]);\n\n const [ios, android] = await Promise.all([\n getSchemesForIosAsync(projectRoot),\n getSchemesForAndroidAsync(projectRoot),\n ]);\n\n // Allow managed projects\n if (!hasIos && !hasAndroid) {\n return getManagedDevClientSchemeAsync(projectRoot);\n }\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/scheme.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\nimport { AndroidConfig, IOSConfig } from '@expo/config-plugins';\nimport { getInfoPlistPathFromPbxproj } from '@expo/config-plugins/build/ios/utils/getInfoPlistPath';\nimport plist from '@expo/plist';\nimport fs from 'fs';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { intersecting } from './array';\nimport * as Log from '../log';\nimport {\n hasRequiredAndroidFilesAsync,\n hasRequiredIOSFilesAsync,\n} from '../prebuild/clearNativeFolder';\n\nconst debug = require('debug')('expo:utils:scheme') as typeof console.log;\n\n// sort longest to ensure uniqueness.\n// this might be undesirable as it causes the QR code to be longer.\nfunction sortLongest(obj: string[]): string[] {\n return obj.sort((a, b) => b.length - a.length);\n}\n\n/**\n * Resolve the scheme for the dev client using two methods:\n * - filter on known Expo schemes, starting with `exp+`, avoiding 3rd party schemes.\n * - filter on longest to ensure uniqueness.\n */\nfunction resolveExpoOrLongestScheme(schemes: string[]): string[] {\n const expoOnlySchemes = schemes.filter((scheme) => scheme.startsWith('exp+'));\n return expoOnlySchemes.length > 0 ? sortLongest(expoOnlySchemes) : sortLongest(schemes);\n}\n\n// TODO: Revisit and test after run code is merged.\nexport async function getSchemesForIosAsync(projectRoot: string): Promise<string[]> {\n try {\n const infoPlistBuildProperty = getInfoPlistPathFromPbxproj(projectRoot);\n debug(`ios application Info.plist path:`, infoPlistBuildProperty);\n if (infoPlistBuildProperty) {\n const configPath = path.join(projectRoot, 'ios', infoPlistBuildProperty);\n const rawPlist = fs.readFileSync(configPath, 'utf8');\n const plistObject = plist.parse(rawPlist);\n const schemes = IOSConfig.Scheme.getSchemesFromPlist(plistObject);\n debug(`ios application schemes:`, schemes);\n return resolveExpoOrLongestScheme(schemes);\n }\n } catch (error) {\n debug(`expected error collecting ios application schemes for the main target:`, error);\n }\n // No ios folder or some other error\n return [];\n}\n\n// TODO: Revisit and test after run code is merged.\nexport async function getSchemesForAndroidAsync(projectRoot: string): Promise<string[]> {\n try {\n const configPath = await AndroidConfig.Paths.getAndroidManifestAsync(projectRoot);\n const manifest = await AndroidConfig.Manifest.readAndroidManifestAsync(configPath);\n const schemes = await AndroidConfig.Scheme.getSchemesFromManifest(manifest);\n debug(`android application schemes:`, schemes);\n return resolveExpoOrLongestScheme(schemes);\n } catch (error) {\n debug(`expected error collecting android application schemes for the main activity:`, error);\n // No android folder or some other error\n return [];\n }\n}\n\n// TODO: Revisit and test after run code is merged.\nasync function getManagedDevClientSchemeAsync(projectRoot: string): Promise<string | null> {\n const { exp } = getConfig(projectRoot);\n try {\n const getDefaultScheme = require(resolveFrom(projectRoot, 'expo-dev-client/getDefaultScheme'));\n const scheme = getDefaultScheme(exp);\n return scheme;\n } catch {\n Log.warn(\n '\\nDevelopment build: Unable to get the default URI scheme for the project. Please make sure the expo-dev-client package is installed.'\n );\n return null;\n }\n}\n\n// TODO: Revisit and test after run code is merged.\nexport async function getOptionalDevClientSchemeAsync(\n projectRoot: string\n): Promise<{ scheme: string | null; resolution: 'config' | 'shared' | 'android' | 'ios' }> {\n const [hasIos, hasAndroid] = await Promise.all([\n hasRequiredIOSFilesAsync(projectRoot),\n hasRequiredAndroidFilesAsync(projectRoot),\n ]);\n\n const [ios, android] = await Promise.all([\n getSchemesForIosAsync(projectRoot),\n getSchemesForAndroidAsync(projectRoot),\n ]);\n\n // Allow managed projects\n if (!hasIos && !hasAndroid) {\n return { scheme: await getManagedDevClientSchemeAsync(projectRoot), resolution: 'config' };\n }\n\n // Allow for only one native project to exist.\n if (!hasIos) {\n return { scheme: android[0], resolution: 'android' };\n } else if (!hasAndroid) {\n return { scheme: ios[0], resolution: 'ios' };\n } else {\n return { scheme: intersecting(ios, android)[0], resolution: 'shared' };\n }\n}\n"],"names":["getSchemesForIosAsync","getSchemesForAndroidAsync","getOptionalDevClientSchemeAsync","Log","debug","require","sortLongest","obj","sort","a","b","length","resolveExpoOrLongestScheme","schemes","expoOnlySchemes","filter","scheme","startsWith","projectRoot","infoPlistBuildProperty","getInfoPlistPathFromPbxproj","configPath","path","join","rawPlist","fs","readFileSync","plistObject","plist","parse","IOSConfig","Scheme","getSchemesFromPlist","error","AndroidConfig","Paths","getAndroidManifestAsync","manifest","Manifest","readAndroidManifestAsync","getSchemesFromManifest","getManagedDevClientSchemeAsync","exp","getConfig","getDefaultScheme","resolveFrom","warn","hasIos","hasAndroid","Promise","all","hasRequiredIOSFilesAsync","hasRequiredAndroidFilesAsync","ios","android","resolution","intersecting"],"mappings":"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"}
|
package/build/src/utils/tar.js
CHANGED
|
@@ -3,8 +3,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
exports.extractAsync = extractAsync;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
function _spawnAsync() {
|
|
7
|
+
const data = _interopRequireDefault(require("@expo/spawn-async"));
|
|
8
|
+
_spawnAsync = function() {
|
|
9
|
+
return data;
|
|
10
|
+
};
|
|
11
|
+
return data;
|
|
12
|
+
}
|
|
13
|
+
function _tar() {
|
|
14
|
+
const data = _interopRequireDefault(require("tar"));
|
|
15
|
+
_tar = function() {
|
|
16
|
+
return data;
|
|
17
|
+
};
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
8
20
|
var Log = _interopRequireWildcard(require("../log"));
|
|
9
21
|
function _interopRequireDefault(obj) {
|
|
10
22
|
return obj && obj.__esModule ? obj : {
|
|
@@ -37,7 +49,7 @@ async function extractAsync(input, output) {
|
|
|
37
49
|
try {
|
|
38
50
|
if (process.platform !== "win32") {
|
|
39
51
|
debug(`Extracting ${input} to ${output}`);
|
|
40
|
-
await (
|
|
52
|
+
await _spawnAsync().default("tar", [
|
|
41
53
|
"-xf",
|
|
42
54
|
input,
|
|
43
55
|
"-C",
|
|
@@ -53,7 +65,7 @@ async function extractAsync(input, output) {
|
|
|
53
65
|
debug(`Extracting ${input} to ${output} using JS tar module`);
|
|
54
66
|
// tar node module has previously had problems with big files, and seems to
|
|
55
67
|
// be slower, so only use it as a backup.
|
|
56
|
-
await _tar.default.extract({
|
|
68
|
+
await _tar().default.extract({
|
|
57
69
|
file: input,
|
|
58
70
|
cwd: output
|
|
59
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/tar.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport tar from 'tar';\n\nimport * as Log from '../log';\n\nconst debug = require('debug')('expo:utils:tar') as typeof console.log;\n\n/** Extract a tar using built-in tools if available and falling back on Node.js. */\nexport async function extractAsync(input: string, output: string): Promise<void> {\n try {\n if (process.platform !== 'win32') {\n debug(`Extracting ${input} to ${output}`);\n await spawnAsync('tar', ['-xf', input, '-C', output], {\n stdio: 'inherit',\n });\n return;\n }\n } catch (error: any) {\n Log.warn(\n `Failed to extract tar using native tools, falling back on JS tar module. ${error.message}`\n );\n }\n debug(`Extracting ${input} to ${output} using JS tar module`);\n // tar node module has previously had problems with big files, and seems to\n // be slower, so only use it as a backup.\n await tar.extract({ file: input, cwd: output });\n}\n"],"names":["extractAsync","Log","debug","require","input","output","process","platform","spawnAsync","stdio","error","warn","message","tar","extract","file","cwd"],"mappings":"AAAA;;;;QAQsBA,YAAY,GAAZA,YAAY;
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/tar.ts"],"sourcesContent":["import spawnAsync from '@expo/spawn-async';\nimport tar from 'tar';\n\nimport * as Log from '../log';\n\nconst debug = require('debug')('expo:utils:tar') as typeof console.log;\n\n/** Extract a tar using built-in tools if available and falling back on Node.js. */\nexport async function extractAsync(input: string, output: string): Promise<void> {\n try {\n if (process.platform !== 'win32') {\n debug(`Extracting ${input} to ${output}`);\n await spawnAsync('tar', ['-xf', input, '-C', output], {\n stdio: 'inherit',\n });\n return;\n }\n } catch (error: any) {\n Log.warn(\n `Failed to extract tar using native tools, falling back on JS tar module. ${error.message}`\n );\n }\n debug(`Extracting ${input} to ${output} using JS tar module`);\n // tar node module has previously had problems with big files, and seems to\n // be slower, so only use it as a backup.\n await tar.extract({ file: input, cwd: output });\n}\n"],"names":["extractAsync","Log","debug","require","input","output","process","platform","spawnAsync","stdio","error","warn","message","tar","extract","file","cwd"],"mappings":"AAAA;;;;QAQsBA,YAAY,GAAZA,YAAY;SARX,WAAmB;gDAAnB,mBAAmB;IAAnB,WAAmB;;;;;SAC1B,IAAK;gDAAL,KAAK;IAAL,IAAK;;;;;AAETC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEf,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,AAAsB,AAAC;AAGhE,eAAeH,YAAY,CAACI,KAAa,EAAEC,MAAc,EAAiB;IAC/E,IAAI;QACF,IAAIC,OAAO,CAACC,QAAQ,KAAK,OAAO,EAAE;YAChCL,KAAK,CAAC,CAAC,WAAW,EAAEE,KAAK,CAAC,IAAI,EAAEC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAMG,WAAU,UAAA,CAAC,KAAK,EAAE;gBAAC,KAAK;gBAAEJ,KAAK;gBAAE,IAAI;gBAAEC,MAAM;aAAC,EAAE;gBACpDI,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,OAAO;SACR;KACF,CAAC,OAAOC,KAAK,EAAO;QACnBT,GAAG,CAACU,IAAI,CACN,CAAC,yEAAyE,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC,CAC5F,CAAC;KACH;IACDV,KAAK,CAAC,CAAC,WAAW,EAAEE,KAAK,CAAC,IAAI,EAAEC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9D,2EAA2E;IAC3E,yCAAyC;IACzC,MAAMQ,IAAG,UAAA,CAACC,OAAO,CAAC;QAAEC,IAAI,EAAEX,KAAK;QAAEY,GAAG,EAAEX,MAAM;KAAE,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _childProcess() {
|
|
6
|
+
const data = require("child_process");
|
|
7
|
+
_childProcess = function() {
|
|
8
|
+
return data;
|
|
9
|
+
};
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
function _fs() {
|
|
13
|
+
const data = _interopRequireDefault(require("fs"));
|
|
14
|
+
_fs = function() {
|
|
15
|
+
return data;
|
|
16
|
+
};
|
|
17
|
+
return data;
|
|
18
|
+
}
|
|
19
|
+
function _path() {
|
|
20
|
+
const data = _interopRequireDefault(require("path"));
|
|
21
|
+
_path = function() {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
return data;
|
|
25
|
+
}
|
|
26
|
+
function _tempy() {
|
|
27
|
+
const data = _interopRequireDefault(require("tempy"));
|
|
28
|
+
_tempy = function() {
|
|
29
|
+
return data;
|
|
30
|
+
};
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
function _interopRequireDefault(obj) {
|
|
34
|
+
return obj && obj.__esModule ? obj : {
|
|
35
|
+
default: obj
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const debug = require("debug")("expo:telemetry:detachedClient");
|
|
39
|
+
class DetachedClient {
|
|
40
|
+
records = [];
|
|
41
|
+
get isIdentified() {
|
|
42
|
+
return !!this.actor;
|
|
43
|
+
}
|
|
44
|
+
async identify(actor) {
|
|
45
|
+
if (!actor) return;
|
|
46
|
+
debug("Actor received");
|
|
47
|
+
this.actor = actor;
|
|
48
|
+
}
|
|
49
|
+
async record(record) {
|
|
50
|
+
debug("Event received: %s", record.event);
|
|
51
|
+
this.records.push({
|
|
52
|
+
...record,
|
|
53
|
+
originalTimestamp: new Date()
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async flush() {
|
|
57
|
+
if (!this.records.length) {
|
|
58
|
+
return debug("No records to flush, skipping...");
|
|
59
|
+
}
|
|
60
|
+
const file = _tempy().default.file({
|
|
61
|
+
name: "expo-telemetry.json"
|
|
62
|
+
});
|
|
63
|
+
const data = {
|
|
64
|
+
actor: this.actor,
|
|
65
|
+
records: this.records
|
|
66
|
+
};
|
|
67
|
+
this.records = [];
|
|
68
|
+
await _fs().default.promises.mkdir(_path().default.dirname(file), {
|
|
69
|
+
recursive: true
|
|
70
|
+
});
|
|
71
|
+
await _fs().default.promises.writeFile(file, JSON.stringify(data));
|
|
72
|
+
const child = _childProcess().spawn(process.execPath, [
|
|
73
|
+
require.resolve("./flushDetached"),
|
|
74
|
+
file
|
|
75
|
+
], {
|
|
76
|
+
detached: true,
|
|
77
|
+
windowsHide: true,
|
|
78
|
+
shell: false,
|
|
79
|
+
stdio: "ignore"
|
|
80
|
+
});
|
|
81
|
+
child.unref();
|
|
82
|
+
debug("Detached flush started");
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.DetachedClient = DetachedClient;
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=DetachedClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/telemetry/DetachedClient.ts"],"sourcesContent":["import { spawn } from 'child_process';\nimport fs from 'fs';\nimport path from 'path';\nimport tempy from 'tempy';\n\nimport type { TelemetryClient, TelemetryRecord, TelemetryRecordWithDate } from './types';\nimport type { Actor } from '../../api/user/user';\n\nconst debug = require('debug')('expo:telemetry:detachedClient') as typeof console.log;\n\nexport type DetachedTelemetry = {\n actor?: Actor;\n records: TelemetryRecordWithDate[];\n};\n\nexport class DetachedClient implements TelemetryClient {\n private actor: Actor | undefined;\n private records: TelemetryRecordWithDate[] = [];\n\n get isIdentified() {\n return !!this.actor;\n }\n\n async identify(actor?: Actor) {\n if (!actor) return;\n debug('Actor received');\n this.actor = actor;\n }\n\n async record(record: TelemetryRecord) {\n debug('Event received: %s', record.event);\n this.records.push({ ...record, originalTimestamp: new Date() });\n }\n\n async flush() {\n if (!this.records.length) {\n return debug('No records to flush, skipping...');\n }\n\n const file = tempy.file({ name: 'expo-telemetry.json' });\n const data: DetachedTelemetry = { actor: this.actor, records: this.records };\n\n this.records = [];\n\n await fs.promises.mkdir(path.dirname(file), { recursive: true });\n await fs.promises.writeFile(file, JSON.stringify(data));\n\n const child = spawn(process.execPath, [require.resolve('./flushDetached'), file], {\n detached: true,\n windowsHide: true,\n shell: false,\n stdio: 'ignore',\n });\n\n child.unref();\n\n debug('Detached flush started');\n }\n}\n"],"names":["debug","require","DetachedClient","records","isIdentified","actor","identify","record","event","push","originalTimestamp","Date","flush","length","file","tempy","name","data","fs","promises","mkdir","path","dirname","recursive","writeFile","JSON","stringify","child","spawn","process","execPath","resolve","detached","windowsHide","shell","stdio","unref"],"mappings":"AAAA;;;;SAAsB,aAAe;yBAAf,eAAe;IAAf,aAAe;;;;;SACtB,GAAI;gDAAJ,IAAI;IAAJ,GAAI;;;;;SACF,KAAM;gDAAN,MAAM;IAAN,KAAM;;;;;SACL,MAAO;gDAAP,OAAO;IAAP,MAAO;;;;;;;;;;AAKzB,MAAMA,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,+BAA+B,CAAC,AAAsB,AAAC;AAO/E,MAAMC,cAAc;IAEzB,AAAQC,OAAO,GAA8B,EAAE,CAAC;IAEhD,IAAIC,YAAY,GAAG;QACjB,OAAO,CAAC,CAAC,IAAI,CAACC,KAAK,CAAC;KACrB;IAED,MAAMC,QAAQ,CAACD,KAAa,EAAE;QAC5B,IAAI,CAACA,KAAK,EAAE,OAAO;QACnBL,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,IAAI,CAACK,KAAK,GAAGA,KAAK,CAAC;KACpB;IAED,MAAME,MAAM,CAACA,MAAuB,EAAE;QACpCP,KAAK,CAAC,oBAAoB,EAAEO,MAAM,CAACC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAACL,OAAO,CAACM,IAAI,CAAC;YAAE,GAAGF,MAAM;YAAEG,iBAAiB,EAAE,IAAIC,IAAI,EAAE;SAAE,CAAC,CAAC;KACjE;IAED,MAAMC,KAAK,GAAG;QACZ,IAAI,CAAC,IAAI,CAACT,OAAO,CAACU,MAAM,EAAE;YACxB,OAAOb,KAAK,CAAC,kCAAkC,CAAC,CAAC;SAClD;QAED,MAAMc,IAAI,GAAGC,MAAK,UAAA,CAACD,IAAI,CAAC;YAAEE,IAAI,EAAE,qBAAqB;SAAE,CAAC,AAAC;QACzD,MAAMC,IAAI,GAAsB;YAAEZ,KAAK,EAAE,IAAI,CAACA,KAAK;YAAEF,OAAO,EAAE,IAAI,CAACA,OAAO;SAAE,AAAC;QAE7E,IAAI,CAACA,OAAO,GAAG,EAAE,CAAC;QAElB,MAAMe,GAAE,UAAA,CAACC,QAAQ,CAACC,KAAK,CAACC,KAAI,UAAA,CAACC,OAAO,CAACR,IAAI,CAAC,EAAE;YAAES,SAAS,EAAE,IAAI;SAAE,CAAC,CAAC;QACjE,MAAML,GAAE,UAAA,CAACC,QAAQ,CAACK,SAAS,CAACV,IAAI,EAAEW,IAAI,CAACC,SAAS,CAACT,IAAI,CAAC,CAAC,CAAC;QAExD,MAAMU,KAAK,GAAGC,aAAK,QAAA,CAACC,OAAO,CAACC,QAAQ,EAAE;YAAC7B,OAAO,CAAC8B,OAAO,CAAC,iBAAiB,CAAC;YAAEjB,IAAI;SAAC,EAAE;YAChFkB,QAAQ,EAAE,IAAI;YACdC,WAAW,EAAE,IAAI;YACjBC,KAAK,EAAE,KAAK;YACZC,KAAK,EAAE,QAAQ;SAChB,CAAC,AAAC;QAEHR,KAAK,CAACS,KAAK,EAAE,CAAC;QAEdpC,KAAK,CAAC,wBAAwB,CAAC,CAAC;KACjC;CACF;QA3CYE,cAAc,GAAdA,cAAc"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _rudderSdkNode() {
|
|
6
|
+
const data = _interopRequireDefault(require("@expo/rudder-sdk-node"));
|
|
7
|
+
_rudderSdkNode = function() {
|
|
8
|
+
return data;
|
|
9
|
+
};
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
var _getContext = require("./getContext");
|
|
13
|
+
var _userSettings = _interopRequireDefault(require("../../api/user/UserSettings"));
|
|
14
|
+
var _user = require("../../api/user/user");
|
|
15
|
+
var _env = require("../env");
|
|
16
|
+
function _interopRequireDefault(obj) {
|
|
17
|
+
return obj && obj.__esModule ? obj : {
|
|
18
|
+
default: obj
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const debug = require("debug")("expo:telemetry:rudderClient");
|
|
22
|
+
class RudderClient {
|
|
23
|
+
constructor(sdk, mode = "attached"){
|
|
24
|
+
this.mode = mode;
|
|
25
|
+
if (!sdk) {
|
|
26
|
+
sdk = new (_rudderSdkNode()).default(_env.env.EXPO_STAGING || _env.env.EXPO_LOCAL ? "24TKICqYKilXM480mA7ktgVDdea" : "24TKR7CQAaGgIrLTgu3Fp4OdOkI", "https://cdp.expo.dev/v1/batch", {
|
|
27
|
+
flushInterval: 300
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
this.rudderstack = sdk;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Wait until the initial identification is complete.
|
|
34
|
+
* This may be called multiple times, from `.record()`, but only calls `getUserAsync` once.
|
|
35
|
+
* Note, this method won't retry after the initial identification returns `undefined`.
|
|
36
|
+
*/ async waitUntilInitialIdentification() {
|
|
37
|
+
if (!this.identity && !this.initialIdentify) {
|
|
38
|
+
// This method has a side-effect that calls `.identify()` internally
|
|
39
|
+
this.initialIdentify = (0, _user).getUserAsync();
|
|
40
|
+
}
|
|
41
|
+
if (!this.identity && this.initialIdentify) {
|
|
42
|
+
await this.initialIdentify;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
get isIdentified() {
|
|
46
|
+
return !!this.identity;
|
|
47
|
+
}
|
|
48
|
+
async identify(actor) {
|
|
49
|
+
var ref, ref1;
|
|
50
|
+
if (!actor) return;
|
|
51
|
+
debug("Actor received");
|
|
52
|
+
const userId = actor.id;
|
|
53
|
+
const anonymousId = await _userSettings.default.getAnonymousIdentifierAsync();
|
|
54
|
+
if (((ref = this.identity) == null ? void 0 : ref.userId) === userId && ((ref1 = this.identity) == null ? void 0 : ref1.anonymousId) === anonymousId) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.identity = {
|
|
58
|
+
userId,
|
|
59
|
+
anonymousId
|
|
60
|
+
};
|
|
61
|
+
this.rudderstack.identify({
|
|
62
|
+
userId,
|
|
63
|
+
anonymousId,
|
|
64
|
+
traits: {
|
|
65
|
+
username: (0, _user).getActorDisplayName(actor),
|
|
66
|
+
user_id: actor.id,
|
|
67
|
+
user_type: actor.__typename
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
async record(record) {
|
|
72
|
+
if (!this.identity) {
|
|
73
|
+
await this.waitUntilInitialIdentification();
|
|
74
|
+
}
|
|
75
|
+
if (this.identity) {
|
|
76
|
+
debug("Event received: %s", record.event);
|
|
77
|
+
const originalTimestamp = "originalTimestamp" in record ? record.originalTimestamp : undefined;
|
|
78
|
+
await this.rudderstack.track({
|
|
79
|
+
event: record.event,
|
|
80
|
+
originalTimestamp,
|
|
81
|
+
properties: record.properties,
|
|
82
|
+
...this.identity,
|
|
83
|
+
context: {
|
|
84
|
+
...(0, _getContext).getContext(),
|
|
85
|
+
client: {
|
|
86
|
+
mode: this.mode
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async flush() {
|
|
93
|
+
await this.rudderstack.flush();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.RudderClient = RudderClient;
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=RudderClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/telemetry/RudderClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\n\nimport { getContext } from './getContext';\nimport type { TelemetryClient, TelemetryRecord, TelemetryRecordWithDate } from './types';\nimport UserSettings from '../../api/user/UserSettings';\nimport { type Actor, getActorDisplayName, getUserAsync } from '../../api/user/user';\nimport { env } from '../env';\n\nconst debug = require('debug')('expo:telemetry:rudderClient') as typeof console.log;\n\nexport class RudderClient implements TelemetryClient {\n /** The RudderStack SDK instance */\n private rudderstack: RudderAnalytics;\n /** The known identity of the user */\n private identity: { userId: string; anonymousId: string } | undefined;\n /** The promise to initially identify the user */\n private initialIdentify: Promise<any> | undefined;\n\n constructor(\n sdk?: RudderAnalytics,\n private mode: 'attached' | 'detached' = 'attached'\n ) {\n if (!sdk) {\n sdk = new RudderAnalytics(\n env.EXPO_STAGING || env.EXPO_LOCAL\n ? '24TKICqYKilXM480mA7ktgVDdea'\n : '24TKR7CQAaGgIrLTgu3Fp4OdOkI', // expo unified\n 'https://cdp.expo.dev/v1/batch',\n {\n flushInterval: 300,\n }\n );\n }\n\n this.rudderstack = sdk;\n }\n\n /**\n * Wait until the initial identification is complete.\n * This may be called multiple times, from `.record()`, but only calls `getUserAsync` once.\n * Note, this method won't retry after the initial identification returns `undefined`.\n */\n private async waitUntilInitialIdentification() {\n if (!this.identity && !this.initialIdentify) {\n // This method has a side-effect that calls `.identify()` internally\n this.initialIdentify = getUserAsync();\n }\n\n if (!this.identity && this.initialIdentify) {\n await this.initialIdentify;\n }\n }\n\n get isIdentified() {\n return !!this.identity;\n }\n\n async identify(actor?: Actor) {\n if (!actor) return;\n\n debug('Actor received');\n\n const userId = actor.id;\n const anonymousId = await UserSettings.getAnonymousIdentifierAsync();\n\n if (this.identity?.userId === userId && this.identity?.anonymousId === anonymousId) {\n return;\n }\n\n this.identity = { userId, anonymousId };\n this.rudderstack.identify({\n userId,\n anonymousId,\n traits: {\n username: getActorDisplayName(actor),\n user_id: actor.id,\n user_type: actor.__typename,\n },\n });\n }\n\n async record(record: TelemetryRecord | TelemetryRecordWithDate) {\n if (!this.identity) {\n await this.waitUntilInitialIdentification();\n }\n\n if (this.identity) {\n debug('Event received: %s', record.event);\n\n const originalTimestamp =\n 'originalTimestamp' in record ? record.originalTimestamp : undefined;\n\n await this.rudderstack.track({\n event: record.event,\n originalTimestamp,\n properties: record.properties,\n ...this.identity,\n context: {\n ...getContext(),\n client: { mode: this.mode },\n },\n });\n }\n }\n\n async flush() {\n await this.rudderstack.flush();\n }\n}\n"],"names":["debug","require","RudderClient","constructor","sdk","mode","RudderAnalytics","env","EXPO_STAGING","EXPO_LOCAL","flushInterval","rudderstack","waitUntilInitialIdentification","identity","initialIdentify","getUserAsync","isIdentified","identify","actor","userId","id","anonymousId","UserSettings","getAnonymousIdentifierAsync","traits","username","getActorDisplayName","user_id","user_type","__typename","record","event","originalTimestamp","undefined","track","properties","context","getContext","client","flush"],"mappings":"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"}
|