@expo/cli 0.22.25 → 0.22.26
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 +91 -93
- package/build/bin/cli.map +1 -1
- package/build/metro-require/require.js +52 -53
- package/build/src/api/endpoint.js +2 -6
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoGoIntermediateCertificate.js +3 -5
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
- package/build/src/api/getExpoSchema.js +12 -16
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/getNativeModuleVersions.js +4 -6
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/getProjectDevelopmentCertificate.js +3 -5
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
- package/build/src/api/getVersions.js +5 -7
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/graphql/client.js +26 -32
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +4 -6
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +3 -5
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +1 -3
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemResponseCache.js +8 -10
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/ResponseCache.js +12 -20
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +11 -13
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +35 -53
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/client.types.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +3 -5
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +3 -5
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js +7 -11
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +3 -5
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithUserAgent.js +6 -8
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
- package/build/src/api/settings.js +5 -7
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +17 -23
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +21 -39
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +21 -27
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +26 -30
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +29 -35
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +30 -44
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +23 -29
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +21 -25
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +6 -8
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +16 -20
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +12 -14
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/resolveOptions.js +2 -4
- package/build/src/customize/resolveOptions.js.map +1 -1
- package/build/src/customize/templates.js +54 -58
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +7 -11
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +9 -11
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEager.js +6 -8
- package/build/src/export/embed/exportEager.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +61 -71
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/exportServer.js +55 -57
- package/build/src/export/embed/exportServer.js.map +1 -1
- package/build/src/export/embed/index.js +40 -44
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +36 -44
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +27 -39
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +63 -67
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +27 -35
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +9 -13
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportDomComponents.js +45 -53
- package/build/src/export/exportDomComponents.js.map +1 -1
- package/build/src/export/exportHermes.js +63 -85
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +62 -72
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +27 -33
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +5 -7
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +9 -11
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +6 -10
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +28 -32
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +30 -36
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +34 -42
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +6 -10
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +24 -28
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +46 -50
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +11 -13
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +15 -19
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/web/resolveOptions.js +3 -5
- package/build/src/export/web/resolveOptions.js.map +1 -1
- package/build/src/export/writeContents.js +2 -4
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/graphql/generated.js +274 -400
- package/build/src/graphql/generated.js.map +1 -1
- package/build/src/install/applyPlugins.js +7 -11
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +22 -26
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +12 -16
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +16 -18
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +26 -32
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +18 -22
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js +19 -21
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +14 -18
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/install/utils/checkPackagesCompatibility.js +11 -13
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
- package/build/src/lint/ESlintPrerequisite.js +44 -50
- package/build/src/lint/ESlintPrerequisite.js.map +1 -1
- package/build/src/lint/index.js +8 -12
- package/build/src/lint/index.js.map +1 -1
- package/build/src/lint/lintAsync.js +8 -10
- package/build/src/lint/lintAsync.js.map +1 -1
- package/build/src/log.js +16 -36
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +20 -24
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js +7 -11
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +26 -38
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +14 -18
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +13 -17
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +4 -6
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +32 -36
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +25 -29
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +40 -46
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +52 -66
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +32 -36
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +13 -19
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +39 -53
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +8 -12
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js +7 -11
- package/build/src/register/index.js.map +1 -1
- package/build/src/register/registerAsync.js +3 -5
- package/build/src/register/registerAsync.js.map +1 -1
- package/build/src/run/android/index.js +32 -36
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveDevice.js +8 -10
- package/build/src/run/android/resolveDevice.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +16 -18
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +15 -17
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +10 -12
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +2 -4
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +21 -23
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +5 -7
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +7 -13
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +23 -27
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +56 -74
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.types.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +63 -69
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +26 -29
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +25 -28
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +26 -29
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -22
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +29 -32
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +24 -28
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +4 -7
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +27 -28
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +17 -23
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +132 -146
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +21 -29
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +21 -29
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +22 -34
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +17 -27
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +39 -53
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +9 -13
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +19 -27
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +5 -9
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +12 -14
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +21 -27
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +36 -40
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +17 -23
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/appleDestinations.js +36 -38
- package/build/src/run/ios/options/appleDestinations.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +16 -20
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +24 -30
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +23 -31
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +5 -7
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +5 -7
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +44 -48
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/ios/validateExternalBinary.js +22 -24
- package/build/src/run/ios/validateExternalBinary.js.map +1 -1
- package/build/src/run/resolveBundlerProps.js +2 -4
- package/build/src/run/resolveBundlerProps.js.map +1 -1
- package/build/src/run/startBundler.js +12 -16
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/serve/index.js +16 -20
- package/build/src/serve/index.js.map +1 -1
- package/build/src/serve/serveAsync.js +32 -36
- package/build/src/serve/serveAsync.js.map +1 -1
- package/build/src/start/detectDevClient.js +9 -13
- package/build/src/start/detectDevClient.js.map +1 -1
- package/build/src/start/doctor/Prerequisite.js +7 -12
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/SecurityBinPrerequisite.js +11 -13
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +19 -23
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +19 -23
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +45 -51
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +16 -18
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +19 -23
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +25 -31
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +17 -25
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +32 -40
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +26 -32
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +31 -41
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +29 -34
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +8 -12
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +28 -32
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +17 -23
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +27 -33
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +42 -46
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +14 -18
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +80 -94
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +40 -44
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +61 -65
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +4 -6
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +6 -10
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +20 -25
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +15 -17
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +35 -39
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +16 -18
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +20 -24
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidPlatformManager.js +17 -17
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +9 -11
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +22 -26
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +83 -121
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +12 -20
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +26 -36
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js +5 -7
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +28 -36
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +15 -19
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +19 -21
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +31 -37
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/ApplePlatformManager.js +12 -12
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +7 -9
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/devicectl.js +73 -87
- package/build/src/start/platforms/ios/devicectl.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +18 -22
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +19 -29
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +10 -14
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +74 -102
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +52 -57
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +18 -22
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +9 -19
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +11 -15
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/project/settings.js +2 -4
- package/build/src/start/project/settings.js.map +1 -1
- package/build/src/start/resolveOptions.js +40 -48
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +51 -55
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/AsyncWsTunnel.js +36 -40
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +79 -81
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +38 -42
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +14 -18
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +14 -18
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +10 -16
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +33 -36
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +21 -29
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +4 -6
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +271 -269
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +56 -63
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +33 -39
- 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 +40 -46
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +28 -32
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +92 -96
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +30 -32
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +11 -13
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +1 -3
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
- package/build/src/start/server/metro/debugging/attachAtlas.js +22 -26
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +17 -19
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +31 -25
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
- package/build/src/start/server/metro/debugging/getDebuggerType.js +4 -6
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +8 -14
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +5 -7
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +6 -8
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +5 -7
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +12 -14
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +10 -14
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js +4 -6
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
- package/build/src/start/server/metro/debugging/types.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createEventSocket.js +16 -18
- package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +21 -23
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +21 -23
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +2 -4
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +2 -4
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js +4 -8
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
- package/build/src/start/server/metro/externals.js +25 -33
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +12 -16
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +9 -11
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +18 -22
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +79 -85
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxLog.js +36 -40
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +14 -20
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +6 -10
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +78 -88
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +4 -8
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroPrivateServer.js +7 -9
- package/build/src/start/server/metro/metroPrivateServer.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +8 -10
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -1
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +22 -24
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +32 -48
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +22 -24
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +22 -24
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/symbolicate.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +29 -35
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +139 -149
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +39 -49
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +6 -8
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +15 -17
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +31 -32
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +19 -22
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +27 -33
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +60 -64
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +9 -15
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js +14 -15
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +2 -4
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +31 -34
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +56 -64
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +19 -23
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +19 -20
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +9 -11
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js +11 -17
- package/build/src/start/server/middleware/createBuiltinAPIRequestHandler.js.map +1 -1
- package/build/src/start/server/middleware/inspector/CdpClient.js +10 -12
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +27 -35
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +19 -21
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +2 -6
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +96 -120
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +3 -7
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +18 -26
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +15 -23
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +9 -11
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
- package/build/src/start/server/middleware/server.types.js.map +1 -1
- package/build/src/start/server/openPlatforms.js +8 -10
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +11 -13
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +50 -58
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +7 -11
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +54 -76
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +19 -21
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +28 -36
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +24 -28
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +46 -52
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +11 -15
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js +26 -28
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +12 -18
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +12 -18
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +27 -31
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +17 -20
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/ansi.js +5 -7
- package/build/src/utils/ansi.js.map +1 -1
- package/build/src/utils/args.js +14 -24
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +6 -18
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/cocoapods.js +46 -54
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +68 -78
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +12 -16
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/createTempPath.js +13 -17
- package/build/src/utils/createTempPath.js.map +1 -1
- package/build/src/utils/delay.js +6 -12
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +28 -46
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +8 -10
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +21 -25
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +35 -41
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +59 -63
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +30 -37
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +31 -35
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/expoUpdatesCli.js +22 -32
- package/build/src/utils/expoUpdatesCli.js.map +1 -1
- package/build/src/utils/fetch.js +4 -8
- package/build/src/utils/fetch.js.map +1 -1
- package/build/src/utils/filePath.js +6 -10
- package/build/src/utils/filePath.js.map +1 -1
- package/build/src/utils/findUp.js +9 -13
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +2 -6
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +26 -32
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +21 -29
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +20 -26
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +4 -8
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/interactive.js +1 -3
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/ip.js +19 -21
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +9 -11
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/jsonSchemaDeref.js +18 -20
- package/build/src/utils/jsonSchemaDeref.js.map +1 -1
- package/build/src/utils/link.js +13 -17
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +28 -46
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +10 -16
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +6 -10
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/nodeEnv.js +6 -12
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +8 -10
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +36 -50
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +5 -11
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +8 -10
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +7 -13
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +15 -21
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +33 -43
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +7 -11
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +5 -11
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +29 -47
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/resolveArgs.js +24 -36
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +32 -40
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/stream.js +3 -5
- package/build/src/utils/stream.js.map +1 -1
- package/build/src/utils/strings.js +4 -6
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +15 -19
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/Telemetry.js +27 -29
- package/build/src/utils/telemetry/Telemetry.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +13 -15
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js +22 -26
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/RudderClient.js +8 -10
- package/build/src/utils/telemetry/clients/RudderClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/RudderDetachedClient.js +22 -26
- package/build/src/utils/telemetry/clients/RudderDetachedClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/flushFetchDetached.js +10 -10
- package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
- package/build/src/utils/telemetry/clients/flushRudderDetached.js +10 -10
- package/build/src/utils/telemetry/clients/flushRudderDetached.js.map +1 -1
- package/build/src/utils/telemetry/events.js +2 -4
- package/build/src/utils/telemetry/events.js.map +1 -1
- package/build/src/utils/telemetry/flushDetached.js.map +1 -1
- package/build/src/utils/telemetry/index.js +29 -25
- package/build/src/utils/telemetry/index.js.map +1 -1
- package/build/src/utils/telemetry/types.js.map +1 -1
- package/build/src/utils/telemetry/utils/constants.js +4 -8
- package/build/src/utils/telemetry/utils/constants.js.map +1 -1
- package/build/src/utils/telemetry/utils/context.js +14 -18
- package/build/src/utils/telemetry/utils/context.js.map +1 -1
- package/build/src/utils/template.js +4 -6
- package/build/src/utils/template.js.map +1 -1
- package/build/src/utils/terminal.js +2 -4
- package/build/src/utils/terminal.js.map +1 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +17 -21
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +14 -18
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +5 -7
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +12 -14
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +13 -23
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +86 -108
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +16 -22
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js +7 -11
- package/build/src/whoami/index.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +7 -11
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,38 +4,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "Telemetry", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get:
|
|
8
|
-
return Telemetry;
|
|
9
|
-
}
|
|
7
|
+
get: ()=>Telemetry
|
|
10
8
|
});
|
|
11
|
-
function
|
|
12
|
-
const data = /*#__PURE__*/
|
|
13
|
-
|
|
9
|
+
function _nodeCrypto() {
|
|
10
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("node:crypto"));
|
|
11
|
+
_nodeCrypto = function() {
|
|
14
12
|
return data;
|
|
15
13
|
};
|
|
16
14
|
return data;
|
|
17
15
|
}
|
|
18
|
-
const
|
|
19
|
-
const
|
|
16
|
+
const _fetchClient = require("./clients/FetchClient");
|
|
17
|
+
const _fetchDetachedClient = require("./clients/FetchDetachedClient");
|
|
20
18
|
const _context = require("./utils/context");
|
|
21
|
-
const
|
|
19
|
+
const _userSettings = require("../../api/user/UserSettings");
|
|
22
20
|
const _env = require("../env");
|
|
23
|
-
function
|
|
21
|
+
function _interopRequireDefault(obj) {
|
|
24
22
|
return obj && obj.__esModule ? obj : {
|
|
25
23
|
default: obj
|
|
26
24
|
};
|
|
27
25
|
}
|
|
28
|
-
const debug = require(
|
|
26
|
+
const debug = require("debug")("expo:telemetry");
|
|
29
27
|
class Telemetry {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
context = (0, _context.createContext)();
|
|
29
|
+
client = new _fetchDetachedClient.FetchDetachedClient();
|
|
30
|
+
/** A list of all events, recorded before the telemetry was fully initialized */ earlyRecords = [];
|
|
31
|
+
constructor({ anonymousId =(0, _userSettings.getAnonymousId)() , sessionId =_nodeCrypto().default.randomUUID() , userId , strategy ="detached" } = {}){
|
|
34
32
|
this.actor = {
|
|
35
33
|
anonymousId,
|
|
36
34
|
sessionId
|
|
37
35
|
};
|
|
38
|
-
this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ?
|
|
36
|
+
this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ? "debug" : strategy);
|
|
39
37
|
if (userId) {
|
|
40
38
|
this.initialize({
|
|
41
39
|
userId
|
|
@@ -49,8 +47,8 @@ class Telemetry {
|
|
|
49
47
|
// Abort when client is already using the correct strategy
|
|
50
48
|
if (this.client.strategy === strategy) return;
|
|
51
49
|
// Abort when debugging the telemetry
|
|
52
|
-
if (_env.env.EXPO_NO_TELEMETRY_DETACH && strategy !==
|
|
53
|
-
debug(
|
|
50
|
+
if (_env.env.EXPO_NO_TELEMETRY_DETACH && strategy !== "debug") return;
|
|
51
|
+
debug("Switching strategy from %s to %s", this.client.strategy, strategy);
|
|
54
52
|
// Load and instantiate the correct client, based on strategy
|
|
55
53
|
const client = createClientFromStrategy(strategy);
|
|
56
54
|
// Replace the client, and re-record any pending records
|
|
@@ -63,7 +61,7 @@ class Telemetry {
|
|
|
63
61
|
get isInitialized() {
|
|
64
62
|
return this.actor.userHash !== undefined;
|
|
65
63
|
}
|
|
66
|
-
initialize({ userId
|
|
64
|
+
initialize({ userId }) {
|
|
67
65
|
this.actor.userHash = userId ? hashUserId(userId) : null;
|
|
68
66
|
this.flushEarlyRecords();
|
|
69
67
|
}
|
|
@@ -76,7 +74,7 @@ class Telemetry {
|
|
|
76
74
|
recordInternal(records) {
|
|
77
75
|
return this.client.record(records.map((record)=>({
|
|
78
76
|
...record,
|
|
79
|
-
type:
|
|
77
|
+
type: "track",
|
|
80
78
|
sentAt: new Date(),
|
|
81
79
|
messageId: createMessageId(record),
|
|
82
80
|
anonymousId: this.actor.anonymousId,
|
|
@@ -94,7 +92,7 @@ class Telemetry {
|
|
|
94
92
|
const records = Array.isArray(record) ? record : [
|
|
95
93
|
record
|
|
96
94
|
];
|
|
97
|
-
debug(
|
|
95
|
+
debug("Recording %d event(s)", records.length);
|
|
98
96
|
if (!this.isInitialized) {
|
|
99
97
|
this.earlyRecords.push(...records);
|
|
100
98
|
return;
|
|
@@ -102,30 +100,30 @@ class Telemetry {
|
|
|
102
100
|
return this.recordInternal(records);
|
|
103
101
|
}
|
|
104
102
|
flush() {
|
|
105
|
-
debug(
|
|
103
|
+
debug("Flushing events...");
|
|
106
104
|
this.flushEarlyRecords();
|
|
107
105
|
return this.client.flush();
|
|
108
106
|
}
|
|
109
107
|
flushOnExit() {
|
|
110
|
-
this.setStrategy(
|
|
108
|
+
this.setStrategy("detached");
|
|
111
109
|
this.flushEarlyRecords();
|
|
112
110
|
return this.client.flush();
|
|
113
111
|
}
|
|
114
112
|
}
|
|
115
113
|
function createClientFromStrategy(strategy) {
|
|
116
114
|
// When debugging, use the actual Rudderstack client, but lazy load it
|
|
117
|
-
if (_env.env.EXPO_NO_TELEMETRY_DETACH || strategy ===
|
|
118
|
-
return new
|
|
115
|
+
if (_env.env.EXPO_NO_TELEMETRY_DETACH || strategy === "debug" || strategy === "instant") {
|
|
116
|
+
return new _fetchClient.FetchClient();
|
|
119
117
|
}
|
|
120
|
-
return new
|
|
118
|
+
return new _fetchDetachedClient.FetchDetachedClient();
|
|
121
119
|
}
|
|
122
120
|
/** Generate a unique message ID using a random hash and UUID */ function createMessageId(record) {
|
|
123
|
-
const uuid =
|
|
124
|
-
const md5 =
|
|
121
|
+
const uuid = _nodeCrypto().default.randomUUID();
|
|
122
|
+
const md5 = _nodeCrypto().default.createHash("md5").update(JSON.stringify(record)).digest("hex");
|
|
125
123
|
return `node-${md5}-${uuid}`;
|
|
126
124
|
}
|
|
127
125
|
/** Hash the user identifier to make it untracable */ function hashUserId(userId) {
|
|
128
|
-
return
|
|
126
|
+
return _nodeCrypto().default.createHash("sha256").update(userId).digest("hex");
|
|
129
127
|
}
|
|
130
128
|
|
|
131
129
|
//# sourceMappingURL=Telemetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/telemetry/Telemetry.ts"],"sourcesContent":["import crypto from 'node:crypto';\n\nimport { FetchClient } from './clients/FetchClient';\nimport { FetchDetachedClient } from './clients/FetchDetachedClient';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecord } from './types';\nimport { createContext } from './utils/context';\nimport { getAnonymousId } from '../../api/user/UserSettings';\nimport { env } from '../env';\n\nconst debug = require('debug')('expo:telemetry') as typeof console.log;\n\ntype TelemetryOptions = {\n /** A locally generated ID, untracable to an actual user */\n anonymousId?: string;\n /** A locally generated ID, per CLI invocation */\n sessionId?: string;\n /** The authenticated user ID, this is used to generate an untracable hash */\n userId?: string;\n /** The underlying telemetry strategy to use */\n strategy?: TelemetryClientStrategy;\n};\n\ntype TelemetryActor = Required<Pick<TelemetryOptions, 'anonymousId' | 'sessionId'>> & {\n /**\n * Hashed version of the user ID, untracable to an actual user.\n * If this value is set to `undefined`, telemetry is considered uninitialized and will wait until its set.\n * If this value is set to `null`, telemetry is considered initialized without an authenticated user.\n * If this value is set to a string, telemetry is considered initialized with an authenticated user.\n */\n userHash?: string | null;\n};\n\nexport class Telemetry {\n private context = createContext();\n private client: TelemetryClient = new FetchDetachedClient();\n private actor: TelemetryActor;\n\n /** A list of all events, recorded before the telemetry was fully initialized */\n private earlyRecords: TelemetryRecord[] = [];\n\n constructor({\n anonymousId = getAnonymousId(),\n sessionId = crypto.randomUUID(),\n userId,\n strategy = 'detached',\n }: TelemetryOptions = {}) {\n this.actor = { anonymousId, sessionId };\n this.setStrategy(env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);\n\n if (userId) {\n this.initialize({ userId });\n }\n }\n\n get strategy() {\n return this.client.strategy;\n }\n\n setStrategy(strategy: TelemetryOptions['strategy']) {\n // Abort when client is already using the correct strategy\n if (this.client.strategy === strategy) return;\n // Abort when debugging the telemetry\n if (env.EXPO_NO_TELEMETRY_DETACH && strategy !== 'debug') return;\n\n debug('Switching strategy from %s to %s', this.client.strategy, strategy);\n\n // Load and instantiate the correct client, based on strategy\n const client = createClientFromStrategy(strategy);\n // Replace the client, and re-record any pending records\n this.client.abort().forEach((record) => client.record([record]));\n this.client = client;\n\n return this;\n }\n\n get isInitialized() {\n return this.actor.userHash !== undefined;\n }\n\n initialize({ userId }: { userId: string | null }) {\n this.actor.userHash = userId ? hashUserId(userId) : null;\n this.flushEarlyRecords();\n }\n\n private flushEarlyRecords() {\n if (this.earlyRecords.length) {\n this.recordInternal(this.earlyRecords);\n this.earlyRecords = [];\n }\n }\n\n private recordInternal(records: TelemetryRecord[]) {\n return this.client.record(\n records.map((record) => ({\n ...record,\n type: 'track' as const,\n sentAt: new Date(),\n messageId: createMessageId(record),\n anonymousId: this.actor.anonymousId,\n userHash: this.actor.userHash,\n context: {\n ...this.context,\n sessionId: this.actor.sessionId,\n client: { mode: this.client.strategy },\n },\n }))\n );\n }\n\n record(record: TelemetryRecord | TelemetryRecord[]) {\n const records = Array.isArray(record) ? record : [record];\n\n debug('Recording %d event(s)', records.length);\n\n if (!this.isInitialized) {\n this.earlyRecords.push(...records);\n return;\n }\n\n return this.recordInternal(records);\n }\n\n flush() {\n debug('Flushing events...');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n\n flushOnExit() {\n this.setStrategy('detached');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n}\n\nfunction createClientFromStrategy(strategy: TelemetryOptions['strategy']) {\n // When debugging, use the actual Rudderstack client, but lazy load it\n if (env.EXPO_NO_TELEMETRY_DETACH || strategy === 'debug' || strategy === 'instant') {\n return new FetchClient();\n }\n\n return new FetchDetachedClient();\n}\n\n/** Generate a unique message ID using a random hash and UUID */\nfunction createMessageId(record: TelemetryRecord) {\n const uuid = crypto.randomUUID();\n const md5 = crypto.createHash('md5').update(JSON.stringify(record)).digest('hex');\n\n return `node-${md5}-${uuid}`;\n}\n\n/** Hash the user identifier to make it untracable */\nfunction hashUserId(userId: string) {\n return crypto.createHash('sha256').update(userId).digest('hex');\n}\n"],"names":["Telemetry","debug","require","
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/telemetry/Telemetry.ts"],"sourcesContent":["import crypto from 'node:crypto';\n\nimport { FetchClient } from './clients/FetchClient';\nimport { FetchDetachedClient } from './clients/FetchDetachedClient';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecord } from './types';\nimport { createContext } from './utils/context';\nimport { getAnonymousId } from '../../api/user/UserSettings';\nimport { env } from '../env';\n\nconst debug = require('debug')('expo:telemetry') as typeof console.log;\n\ntype TelemetryOptions = {\n /** A locally generated ID, untracable to an actual user */\n anonymousId?: string;\n /** A locally generated ID, per CLI invocation */\n sessionId?: string;\n /** The authenticated user ID, this is used to generate an untracable hash */\n userId?: string;\n /** The underlying telemetry strategy to use */\n strategy?: TelemetryClientStrategy;\n};\n\ntype TelemetryActor = Required<Pick<TelemetryOptions, 'anonymousId' | 'sessionId'>> & {\n /**\n * Hashed version of the user ID, untracable to an actual user.\n * If this value is set to `undefined`, telemetry is considered uninitialized and will wait until its set.\n * If this value is set to `null`, telemetry is considered initialized without an authenticated user.\n * If this value is set to a string, telemetry is considered initialized with an authenticated user.\n */\n userHash?: string | null;\n};\n\nexport class Telemetry {\n private context = createContext();\n private client: TelemetryClient = new FetchDetachedClient();\n private actor: TelemetryActor;\n\n /** A list of all events, recorded before the telemetry was fully initialized */\n private earlyRecords: TelemetryRecord[] = [];\n\n constructor({\n anonymousId = getAnonymousId(),\n sessionId = crypto.randomUUID(),\n userId,\n strategy = 'detached',\n }: TelemetryOptions = {}) {\n this.actor = { anonymousId, sessionId };\n this.setStrategy(env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);\n\n if (userId) {\n this.initialize({ userId });\n }\n }\n\n get strategy() {\n return this.client.strategy;\n }\n\n setStrategy(strategy: TelemetryOptions['strategy']) {\n // Abort when client is already using the correct strategy\n if (this.client.strategy === strategy) return;\n // Abort when debugging the telemetry\n if (env.EXPO_NO_TELEMETRY_DETACH && strategy !== 'debug') return;\n\n debug('Switching strategy from %s to %s', this.client.strategy, strategy);\n\n // Load and instantiate the correct client, based on strategy\n const client = createClientFromStrategy(strategy);\n // Replace the client, and re-record any pending records\n this.client.abort().forEach((record) => client.record([record]));\n this.client = client;\n\n return this;\n }\n\n get isInitialized() {\n return this.actor.userHash !== undefined;\n }\n\n initialize({ userId }: { userId: string | null }) {\n this.actor.userHash = userId ? hashUserId(userId) : null;\n this.flushEarlyRecords();\n }\n\n private flushEarlyRecords() {\n if (this.earlyRecords.length) {\n this.recordInternal(this.earlyRecords);\n this.earlyRecords = [];\n }\n }\n\n private recordInternal(records: TelemetryRecord[]) {\n return this.client.record(\n records.map((record) => ({\n ...record,\n type: 'track' as const,\n sentAt: new Date(),\n messageId: createMessageId(record),\n anonymousId: this.actor.anonymousId,\n userHash: this.actor.userHash,\n context: {\n ...this.context,\n sessionId: this.actor.sessionId,\n client: { mode: this.client.strategy },\n },\n }))\n );\n }\n\n record(record: TelemetryRecord | TelemetryRecord[]) {\n const records = Array.isArray(record) ? record : [record];\n\n debug('Recording %d event(s)', records.length);\n\n if (!this.isInitialized) {\n this.earlyRecords.push(...records);\n return;\n }\n\n return this.recordInternal(records);\n }\n\n flush() {\n debug('Flushing events...');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n\n flushOnExit() {\n this.setStrategy('detached');\n this.flushEarlyRecords();\n return this.client.flush();\n }\n}\n\nfunction createClientFromStrategy(strategy: TelemetryOptions['strategy']) {\n // When debugging, use the actual Rudderstack client, but lazy load it\n if (env.EXPO_NO_TELEMETRY_DETACH || strategy === 'debug' || strategy === 'instant') {\n return new FetchClient();\n }\n\n return new FetchDetachedClient();\n}\n\n/** Generate a unique message ID using a random hash and UUID */\nfunction createMessageId(record: TelemetryRecord) {\n const uuid = crypto.randomUUID();\n const md5 = crypto.createHash('md5').update(JSON.stringify(record)).digest('hex');\n\n return `node-${md5}-${uuid}`;\n}\n\n/** Hash the user identifier to make it untracable */\nfunction hashUserId(userId: string) {\n return crypto.createHash('sha256').update(userId).digest('hex');\n}\n"],"names":["Telemetry","debug","require","context","createContext","client","FetchDetachedClient","earlyRecords","constructor","anonymousId","getAnonymousId","sessionId","crypto","randomUUID","userId","strategy","actor","setStrategy","env","EXPO_NO_TELEMETRY_DETACH","initialize","createClientFromStrategy","abort","forEach","record","isInitialized","userHash","undefined","hashUserId","flushEarlyRecords","length","recordInternal","records","map","type","sentAt","Date","messageId","createMessageId","mode","Array","isArray","push","flush","flushOnExit","FetchClient","uuid","md5","createHash","update","JSON","stringify","digest"],"mappings":"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"}
|
|
@@ -4,13 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "FetchClient", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get:
|
|
8
|
-
return FetchClient;
|
|
9
|
-
}
|
|
7
|
+
get: ()=>FetchClient
|
|
10
8
|
});
|
|
11
|
-
function
|
|
9
|
+
function _nodeBuffer() {
|
|
12
10
|
const data = require("node:buffer");
|
|
13
|
-
|
|
11
|
+
_nodeBuffer = function() {
|
|
14
12
|
return data;
|
|
15
13
|
};
|
|
16
14
|
return data;
|
|
@@ -25,16 +23,16 @@ function _undici() {
|
|
|
25
23
|
const _fetch = require("../../../utils/fetch");
|
|
26
24
|
const _constants = require("../utils/constants");
|
|
27
25
|
class FetchClient {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
/** This client should be used for long-running commands */ strategy = "instant";
|
|
27
|
+
/** All records that are queued and being sent */ entries = new Set();
|
|
28
|
+
constructor({ fetch =createTelemetryFetch() , url =_constants.TELEMETRY_ENDPOINT , target =_constants.TELEMETRY_TARGET } = {}){
|
|
31
29
|
this.fetch = fetch;
|
|
32
30
|
this.url = url;
|
|
33
31
|
this.headers = {
|
|
34
|
-
accept:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
authorization:
|
|
32
|
+
accept: "application/json",
|
|
33
|
+
"content-type": "application/json",
|
|
34
|
+
"user-agent": `expo-cli/${"0.22.26"}`,
|
|
35
|
+
authorization: "Basic " + _nodeBuffer().Buffer.from(`${target}:`).toString("base64")
|
|
38
36
|
};
|
|
39
37
|
}
|
|
40
38
|
queue(records, controller, request) {
|
|
@@ -57,7 +55,7 @@ class FetchClient {
|
|
|
57
55
|
});
|
|
58
56
|
return this.queue(records, controller, this.fetch(this.url, {
|
|
59
57
|
body,
|
|
60
|
-
method:
|
|
58
|
+
method: "POST",
|
|
61
59
|
signal: controller.signal,
|
|
62
60
|
headers: this.headers
|
|
63
61
|
}));
|
|
@@ -92,8 +90,8 @@ function createTelemetryFetch() {
|
|
|
92
90
|
});
|
|
93
91
|
}
|
|
94
92
|
/** Extract the URL string from either `RequestInfo` or `URL` */ function extractUrl(info) {
|
|
95
|
-
if (typeof info ===
|
|
96
|
-
if (
|
|
93
|
+
if (typeof info === "string") return info;
|
|
94
|
+
if ("url" in info) return info.url;
|
|
97
95
|
return info.toString();
|
|
98
96
|
}
|
|
99
97
|
/** Mute a promise by removing the original return type and hide errors */ function mutePromise(promise) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchClient.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\nimport { URL } from 'node:url';\nimport { Agent, RetryAgent, type RequestInfo, type RequestInit } from 'undici';\n\nimport { fetch } from '../../../utils/fetch';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\ntype FetchClientOptions = {\n /** The fetch method for sending events, should handle retries and timeouts */\n fetch?: typeof fetch;\n /** The endpoint for recorded events */\n url?: string;\n /** The telemetry target for all events */\n target?: string;\n};\n\ntype FetchClientEntry = Promise<void> & {\n records: TelemetryRecordInternal[];\n controller: AbortController;\n};\n\nexport class FetchClient implements TelemetryClient {\n /** This client should be used for long-running commands */\n readonly strategy: TelemetryClientStrategy = 'instant';\n /** The fetch instance used to transport telemetry to the backend */\n private fetch: typeof fetch;\n /** The endpoint to send events to */\n private url: string;\n /** Additional headers to send with every event */\n private headers: RequestInit['headers'];\n /** All records that are queued and being sent */\n private entries: Set<FetchClientEntry> = new Set();\n\n constructor({\n fetch = createTelemetryFetch(),\n url = TELEMETRY_ENDPOINT,\n target = TELEMETRY_TARGET,\n }: FetchClientOptions = {}) {\n this.fetch = fetch;\n this.url = url;\n this.headers = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': `expo-cli/${process.env.__EXPO_VERSION}`,\n authorization: 'Basic ' + Buffer.from(`${target}:`).toString('base64'),\n };\n }\n\n private queue(\n records: TelemetryRecordInternal[],\n controller: AbortController,\n request: ReturnType<typeof fetch>\n ) {\n const entry: FetchClientEntry = mutePromise(request) as any;\n entry.finally(() => this.entries.delete(entry));\n entry.controller = controller;\n entry.records = records;\n\n this.entries.add(entry);\n\n return entry;\n }\n\n record(record: TelemetryRecordInternal[]) {\n const records = Array.isArray(record) ? record : [record];\n\n if (!records.length) return;\n\n const controller = new AbortController();\n const body = JSON.stringify({\n sentAt: new Date(),\n batch: records,\n });\n\n return this.queue(\n records,\n controller,\n this.fetch(this.url, {\n body,\n method: 'POST',\n signal: controller.signal,\n headers: this.headers,\n })\n );\n }\n\n flush() {\n return mutePromise(Promise.all(this.entries));\n }\n\n abort() {\n const records: TelemetryRecordInternal[] = [];\n\n this.entries.forEach((entry) => {\n try {\n entry.controller.abort();\n records.push(...entry.records);\n } catch {\n // Ignore abort errors\n }\n });\n\n return records;\n }\n}\n\nfunction createTelemetryFetch(): typeof fetch {\n const agent = new RetryAgent(new Agent(), {\n maxRetries: 3,\n retryAfter: true,\n minTimeout: 500,\n maxTimeout: 2000,\n timeoutFactor: 2,\n });\n\n return (info: RequestInfo | URL, init: RequestInit = {}) =>\n fetch(extractUrl(info), { ...init, dispatcher: agent });\n}\n\n/** Extract the URL string from either `RequestInfo` or `URL` */\nfunction extractUrl(info: RequestInfo | URL) {\n if (typeof info === 'string') return info;\n if ('url' in info) return info.url;\n return info.toString();\n}\n\n/** Mute a promise by removing the original return type and hide errors */\nfunction mutePromise(promise: Promise<any>) {\n return promise.then(\n () => {},\n () => {}\n );\n}\n"],"names":["FetchClient","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchClient.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\nimport { URL } from 'node:url';\nimport { Agent, RetryAgent, type RequestInfo, type RequestInit } from 'undici';\n\nimport { fetch } from '../../../utils/fetch';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\ntype FetchClientOptions = {\n /** The fetch method for sending events, should handle retries and timeouts */\n fetch?: typeof fetch;\n /** The endpoint for recorded events */\n url?: string;\n /** The telemetry target for all events */\n target?: string;\n};\n\ntype FetchClientEntry = Promise<void> & {\n records: TelemetryRecordInternal[];\n controller: AbortController;\n};\n\nexport class FetchClient implements TelemetryClient {\n /** This client should be used for long-running commands */\n readonly strategy: TelemetryClientStrategy = 'instant';\n /** The fetch instance used to transport telemetry to the backend */\n private fetch: typeof fetch;\n /** The endpoint to send events to */\n private url: string;\n /** Additional headers to send with every event */\n private headers: RequestInit['headers'];\n /** All records that are queued and being sent */\n private entries: Set<FetchClientEntry> = new Set();\n\n constructor({\n fetch = createTelemetryFetch(),\n url = TELEMETRY_ENDPOINT,\n target = TELEMETRY_TARGET,\n }: FetchClientOptions = {}) {\n this.fetch = fetch;\n this.url = url;\n this.headers = {\n accept: 'application/json',\n 'content-type': 'application/json',\n 'user-agent': `expo-cli/${process.env.__EXPO_VERSION}`,\n authorization: 'Basic ' + Buffer.from(`${target}:`).toString('base64'),\n };\n }\n\n private queue(\n records: TelemetryRecordInternal[],\n controller: AbortController,\n request: ReturnType<typeof fetch>\n ) {\n const entry: FetchClientEntry = mutePromise(request) as any;\n entry.finally(() => this.entries.delete(entry));\n entry.controller = controller;\n entry.records = records;\n\n this.entries.add(entry);\n\n return entry;\n }\n\n record(record: TelemetryRecordInternal[]) {\n const records = Array.isArray(record) ? record : [record];\n\n if (!records.length) return;\n\n const controller = new AbortController();\n const body = JSON.stringify({\n sentAt: new Date(),\n batch: records,\n });\n\n return this.queue(\n records,\n controller,\n this.fetch(this.url, {\n body,\n method: 'POST',\n signal: controller.signal,\n headers: this.headers,\n })\n );\n }\n\n flush() {\n return mutePromise(Promise.all(this.entries));\n }\n\n abort() {\n const records: TelemetryRecordInternal[] = [];\n\n this.entries.forEach((entry) => {\n try {\n entry.controller.abort();\n records.push(...entry.records);\n } catch {\n // Ignore abort errors\n }\n });\n\n return records;\n }\n}\n\nfunction createTelemetryFetch(): typeof fetch {\n const agent = new RetryAgent(new Agent(), {\n maxRetries: 3,\n retryAfter: true,\n minTimeout: 500,\n maxTimeout: 2000,\n timeoutFactor: 2,\n });\n\n return (info: RequestInfo | URL, init: RequestInit = {}) =>\n fetch(extractUrl(info), { ...init, dispatcher: agent });\n}\n\n/** Extract the URL string from either `RequestInfo` or `URL` */\nfunction extractUrl(info: RequestInfo | URL) {\n if (typeof info === 'string') return info;\n if ('url' in info) return info.url;\n return info.toString();\n}\n\n/** Mute a promise by removing the original return type and hide errors */\nfunction mutePromise(promise: Promise<any>) {\n return promise.then(\n () => {},\n () => {}\n );\n}\n"],"names":["FetchClient","strategy","entries","Set","constructor","fetch","createTelemetryFetch","url","TELEMETRY_ENDPOINT","target","TELEMETRY_TARGET","headers","accept","process","env","__EXPO_VERSION","authorization","Buffer","from","toString","queue","records","controller","request","entry","mutePromise","finally","delete","add","record","Array","isArray","length","AbortController","body","JSON","stringify","sentAt","Date","batch","method","signal","flush","Promise","all","abort","forEach","push","agent","RetryAgent","Agent","maxRetries","retryAfter","minTimeout","maxTimeout","timeoutFactor","info","init","extractUrl","dispatcher","promise","then"],"mappings":"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"}
|
|
@@ -4,39 +4,39 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "FetchDetachedClient", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get:
|
|
8
|
-
return FetchDetachedClient;
|
|
9
|
-
}
|
|
7
|
+
get: ()=>FetchDetachedClient
|
|
10
8
|
});
|
|
11
|
-
function
|
|
9
|
+
function _nodeChildProcess() {
|
|
12
10
|
const data = require("node:child_process");
|
|
13
|
-
|
|
11
|
+
_nodeChildProcess = function() {
|
|
14
12
|
return data;
|
|
15
13
|
};
|
|
16
14
|
return data;
|
|
17
15
|
}
|
|
18
|
-
function
|
|
19
|
-
const data = /*#__PURE__*/
|
|
20
|
-
|
|
16
|
+
function _nodeFs() {
|
|
17
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("node:fs"));
|
|
18
|
+
_nodeFs = function() {
|
|
21
19
|
return data;
|
|
22
20
|
};
|
|
23
21
|
return data;
|
|
24
22
|
}
|
|
25
|
-
function
|
|
26
|
-
const data = /*#__PURE__*/
|
|
27
|
-
|
|
23
|
+
function _nodePath() {
|
|
24
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("node:path"));
|
|
25
|
+
_nodePath = function() {
|
|
28
26
|
return data;
|
|
29
27
|
};
|
|
30
28
|
return data;
|
|
31
29
|
}
|
|
32
30
|
const _createTempPath = require("../../createTempPath");
|
|
33
|
-
function
|
|
31
|
+
function _interopRequireDefault(obj) {
|
|
34
32
|
return obj && obj.__esModule ? obj : {
|
|
35
33
|
default: obj
|
|
36
34
|
};
|
|
37
35
|
}
|
|
38
|
-
const debug = require(
|
|
36
|
+
const debug = require("debug")("expo:telemetry:client:detached");
|
|
39
37
|
class FetchDetachedClient {
|
|
38
|
+
/** This client should be used for short-lived commands */ strategy = "detached";
|
|
39
|
+
/** All recorded telemetry events */ records = [];
|
|
40
40
|
abort() {
|
|
41
41
|
return this.records;
|
|
42
42
|
}
|
|
@@ -49,37 +49,33 @@ class FetchDetachedClient {
|
|
|
49
49
|
async flush() {
|
|
50
50
|
try {
|
|
51
51
|
if (!this.records.length) {
|
|
52
|
-
return debug(
|
|
52
|
+
return debug("No records to flush, skipping...");
|
|
53
53
|
}
|
|
54
|
-
const file = (0, _createTempPath.createTempFilePath)(
|
|
54
|
+
const file = (0, _createTempPath.createTempFilePath)("expo-telemetry.json");
|
|
55
55
|
const data = JSON.stringify({
|
|
56
56
|
records: this.records
|
|
57
57
|
});
|
|
58
58
|
this.records = [];
|
|
59
|
-
await
|
|
59
|
+
await _nodeFs().default.promises.mkdir(_nodePath().default.dirname(file), {
|
|
60
60
|
recursive: true
|
|
61
61
|
});
|
|
62
|
-
await
|
|
63
|
-
const child = (0,
|
|
64
|
-
require.resolve(
|
|
62
|
+
await _nodeFs().default.promises.writeFile(file, data);
|
|
63
|
+
const child = (0, _nodeChildProcess().spawn)(process.execPath, [
|
|
64
|
+
require.resolve("./flushFetchDetached"),
|
|
65
65
|
file
|
|
66
66
|
], {
|
|
67
67
|
detached: true,
|
|
68
68
|
windowsHide: true,
|
|
69
69
|
shell: false,
|
|
70
|
-
stdio:
|
|
70
|
+
stdio: "ignore"
|
|
71
71
|
});
|
|
72
72
|
child.unref();
|
|
73
73
|
} catch (error) {
|
|
74
74
|
// This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,
|
|
75
75
|
// since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.
|
|
76
|
-
debug(
|
|
76
|
+
debug("Exception while initiating detached flush:", error);
|
|
77
77
|
}
|
|
78
|
-
debug(
|
|
79
|
-
}
|
|
80
|
-
constructor(){
|
|
81
|
-
/** This client should be used for short-lived commands */ this.strategy = 'detached';
|
|
82
|
-
/** All recorded telemetry events */ this.records = [];
|
|
78
|
+
debug("Detached flush started");
|
|
83
79
|
}
|
|
84
80
|
}
|
|
85
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchDetachedClient.ts"],"sourcesContent":["import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createTempFilePath } from '../../createTempPath';\nimport type { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\n\nconst debug = require('debug')('expo:telemetry:client:detached') as typeof console.log;\n\nexport class FetchDetachedClient implements TelemetryClient {\n /** This client should be used for short-lived commands */\n readonly strategy: TelemetryClientStrategy = 'detached';\n /** All recorded telemetry events */\n private records: TelemetryRecordInternal[] = [];\n\n abort() {\n return this.records;\n }\n\n record(record: TelemetryRecordInternal[]) {\n this.records.push(\n ...record.map((record) => ({\n ...record,\n originalTimestamp: record.sentAt,\n }))\n );\n }\n\n async flush() {\n try {\n if (!this.records.length) {\n return debug('No records to flush, skipping...');\n }\n\n const file = createTempFilePath('expo-telemetry.json');\n const data = JSON.stringify({ records: this.records });\n\n this.records = [];\n\n await fs.promises.mkdir(path.dirname(file), { recursive: true });\n await fs.promises.writeFile(file, data);\n\n const child = spawn(process.execPath, [require.resolve('./flushFetchDetached'), file], {\n detached: true,\n windowsHide: true,\n shell: false,\n stdio: 'ignore',\n });\n\n child.unref();\n } catch (error) {\n // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,\n // since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.\n debug('Exception while initiating detached flush:', error);\n }\n\n debug('Detached flush started');\n }\n}\n"],"names":["FetchDetachedClient","debug","require","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchDetachedClient.ts"],"sourcesContent":["import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createTempFilePath } from '../../createTempPath';\nimport type { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\n\nconst debug = require('debug')('expo:telemetry:client:detached') as typeof console.log;\n\nexport class FetchDetachedClient implements TelemetryClient {\n /** This client should be used for short-lived commands */\n readonly strategy: TelemetryClientStrategy = 'detached';\n /** All recorded telemetry events */\n private records: TelemetryRecordInternal[] = [];\n\n abort() {\n return this.records;\n }\n\n record(record: TelemetryRecordInternal[]) {\n this.records.push(\n ...record.map((record) => ({\n ...record,\n originalTimestamp: record.sentAt,\n }))\n );\n }\n\n async flush() {\n try {\n if (!this.records.length) {\n return debug('No records to flush, skipping...');\n }\n\n const file = createTempFilePath('expo-telemetry.json');\n const data = JSON.stringify({ records: this.records });\n\n this.records = [];\n\n await fs.promises.mkdir(path.dirname(file), { recursive: true });\n await fs.promises.writeFile(file, data);\n\n const child = spawn(process.execPath, [require.resolve('./flushFetchDetached'), file], {\n detached: true,\n windowsHide: true,\n shell: false,\n stdio: 'ignore',\n });\n\n child.unref();\n } catch (error) {\n // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,\n // since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.\n debug('Exception while initiating detached flush:', error);\n }\n\n debug('Detached flush started');\n }\n}\n"],"names":["FetchDetachedClient","debug","require","strategy","records","abort","record","push","map","originalTimestamp","sentAt","flush","length","file","createTempFilePath","data","JSON","stringify","fs","promises","mkdir","path","dirname","recursive","writeFile","child","spawn","process","execPath","resolve","detached","windowsHide","shell","stdio","unref","error"],"mappings":"AAAA;;;;+BASaA,qBAAmB;;aAAnBA,mBAAmB;;;yBATV,oBAAoB;;;;;;;8DAC3B,SAAS;;;;;;;8DACP,WAAW;;;;;;gCAEO,sBAAsB;;;;;;AAGzD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,gCAAgC,CAAC,AAAsB,AAAC;AAEhF,MAAMF,mBAAmB;IAC9B,wDAAwD,GACxD,AAASG,QAAQ,GAA4B,UAAU,CAAC;IACxD,kCAAkC,GAClC,AAAQC,OAAO,GAA8B,EAAE,CAAC;IAEhDC,KAAK,GAAG;QACN,OAAO,IAAI,CAACD,OAAO,CAAC;IACtB;IAEAE,MAAM,CAACA,MAAiC,EAAE;QACxC,IAAI,CAACF,OAAO,CAACG,IAAI,IACZD,MAAM,CAACE,GAAG,CAAC,CAACF,MAAM,GAAK,CAAC;gBACzB,GAAGA,MAAM;gBACTG,iBAAiB,EAAEH,MAAM,CAACI,MAAM;aACjC,CAAC,CAAC,CACJ,CAAC;IACJ;UAEMC,KAAK,GAAG;QACZ,IAAI;YACF,IAAI,CAAC,IAAI,CAACP,OAAO,CAACQ,MAAM,EAAE;gBACxB,OAAOX,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACnD,CAAC;YAED,MAAMY,IAAI,GAAGC,IAAAA,eAAkB,mBAAA,EAAC,qBAAqB,CAAC,AAAC;YACvD,MAAMC,IAAI,GAAGC,IAAI,CAACC,SAAS,CAAC;gBAAEb,OAAO,EAAE,IAAI,CAACA,OAAO;aAAE,CAAC,AAAC;YAEvD,IAAI,CAACA,OAAO,GAAG,EAAE,CAAC;YAElB,MAAMc,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACC,KAAK,CAACC,SAAI,EAAA,QAAA,CAACC,OAAO,CAACT,IAAI,CAAC,EAAE;gBAAEU,SAAS,EAAE,IAAI;aAAE,CAAC,CAAC;YACjE,MAAML,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACK,SAAS,CAACX,IAAI,EAAEE,IAAI,CAAC,CAAC;YAExC,MAAMU,KAAK,GAAGC,IAAAA,iBAAK,EAAA,MAAA,EAACC,OAAO,CAACC,QAAQ,EAAE;gBAAC1B,OAAO,CAAC2B,OAAO,CAAC,sBAAsB,CAAC;gBAAEhB,IAAI;aAAC,EAAE;gBACrFiB,QAAQ,EAAE,IAAI;gBACdC,WAAW,EAAE,IAAI;gBACjBC,KAAK,EAAE,KAAK;gBACZC,KAAK,EAAE,QAAQ;aAChB,CAAC,AAAC;YAEHR,KAAK,CAACS,KAAK,EAAE,CAAC;QAChB,EAAE,OAAOC,KAAK,EAAE;YACd,oIAAoI;YACpI,mIAAmI;YACnIlC,KAAK,CAAC,4CAA4C,EAAEkC,KAAK,CAAC,CAAC;QAC7D,CAAC;QAEDlC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClC;CACD"}
|
|
@@ -4,35 +4,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "RudderClient", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get:
|
|
8
|
-
return RudderClient;
|
|
9
|
-
}
|
|
7
|
+
get: ()=>RudderClient
|
|
10
8
|
});
|
|
11
|
-
function
|
|
12
|
-
const data = /*#__PURE__*/
|
|
13
|
-
|
|
9
|
+
function _rudderSdkNode() {
|
|
10
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/rudder-sdk-node"));
|
|
11
|
+
_rudderSdkNode = function() {
|
|
14
12
|
return data;
|
|
15
13
|
};
|
|
16
14
|
return data;
|
|
17
15
|
}
|
|
18
16
|
const _constants = require("../utils/constants");
|
|
19
|
-
function
|
|
17
|
+
function _interopRequireDefault(obj) {
|
|
20
18
|
return obj && obj.__esModule ? obj : {
|
|
21
19
|
default: obj
|
|
22
20
|
};
|
|
23
21
|
}
|
|
24
22
|
class RudderClient {
|
|
23
|
+
/** This client should only be used in debug mode, or in the detached script */ strategy = "debug";
|
|
25
24
|
constructor(sdk){
|
|
26
|
-
/** This client should only be used in debug mode, or in the detached script */ this.strategy = 'debug';
|
|
27
25
|
if (!sdk) {
|
|
28
|
-
sdk = new (
|
|
26
|
+
sdk = new (_rudderSdkNode()).default(_constants.TELEMETRY_TARGET, _constants.TELEMETRY_ENDPOINT, {
|
|
29
27
|
flushInterval: 300
|
|
30
28
|
});
|
|
31
29
|
}
|
|
32
30
|
this.rudderstack = sdk;
|
|
33
31
|
}
|
|
34
32
|
abort() {
|
|
35
|
-
throw new Error(
|
|
33
|
+
throw new Error("Cannot abort Rudderstack client records");
|
|
36
34
|
}
|
|
37
35
|
async record(records) {
|
|
38
36
|
await Promise.all(records.map((record)=>this.rudderstack.track(record)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\n\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\nexport class RudderClient implements TelemetryClient {\n /** This client should only be used in debug mode, or in the detached script */\n readonly strategy: TelemetryClientStrategy = 'debug';\n /** The RudderStack SDK instance */\n private rudderstack: RudderAnalytics;\n\n constructor(sdk?: RudderAnalytics) {\n if (!sdk) {\n sdk = new RudderAnalytics(TELEMETRY_TARGET, TELEMETRY_ENDPOINT, {\n flushInterval: 300,\n });\n }\n\n this.rudderstack = sdk;\n }\n\n abort(): TelemetryRecordInternal[] {\n throw new Error('Cannot abort Rudderstack client records');\n }\n\n async record(records: TelemetryRecordInternal[]) {\n await Promise.all(records.map((record) => this.rudderstack.track(record)));\n }\n\n async flush() {\n await this.rudderstack.flush();\n }\n}\n"],"names":["RudderClient","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\n\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\nexport class RudderClient implements TelemetryClient {\n /** This client should only be used in debug mode, or in the detached script */\n readonly strategy: TelemetryClientStrategy = 'debug';\n /** The RudderStack SDK instance */\n private rudderstack: RudderAnalytics;\n\n constructor(sdk?: RudderAnalytics) {\n if (!sdk) {\n sdk = new RudderAnalytics(TELEMETRY_TARGET, TELEMETRY_ENDPOINT, {\n flushInterval: 300,\n });\n }\n\n this.rudderstack = sdk;\n }\n\n abort(): TelemetryRecordInternal[] {\n throw new Error('Cannot abort Rudderstack client records');\n }\n\n async record(records: TelemetryRecordInternal[]) {\n await Promise.all(records.map((record) => this.rudderstack.track(record)));\n }\n\n async flush() {\n await this.rudderstack.flush();\n }\n}\n"],"names":["RudderClient","strategy","constructor","sdk","RudderAnalytics","TELEMETRY_TARGET","TELEMETRY_ENDPOINT","flushInterval","rudderstack","abort","Error","record","records","Promise","all","map","track","flush"],"mappings":"AAAA;;;;+BAKaA,cAAY;;aAAZA,YAAY;;;8DALG,uBAAuB;;;;;;2BAGE,oBAAoB;;;;;;AAElE,MAAMA,YAAY;IACvB,6EAA6E,GAC7E,AAASC,QAAQ,GAA4B,OAAO,CAAC;IAIrDC,YAAYC,GAAqB,CAAE;QACjC,IAAI,CAACA,GAAG,EAAE;YACRA,GAAG,GAAG,IAAIC,CAAAA,cAAe,EAAA,CAAA,QAAA,CAACC,UAAgB,iBAAA,EAAEC,UAAkB,mBAAA,EAAE;gBAC9DC,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAACC,WAAW,GAAGL,GAAG,CAAC;IACzB;IAEAM,KAAK,GAA8B;QACjC,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D;UAEMC,MAAM,CAACC,OAAkC,EAAE;QAC/C,MAAMC,OAAO,CAACC,GAAG,CAACF,OAAO,CAACG,GAAG,CAAC,CAACJ,MAAM,GAAK,IAAI,CAACH,WAAW,CAACQ,KAAK,CAACL,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7E;UAEMM,KAAK,GAAG;QACZ,MAAM,IAAI,CAACT,WAAW,CAACS,KAAK,EAAE,CAAC;IACjC;CACD"}
|
|
@@ -4,39 +4,39 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
Object.defineProperty(exports, "RudderDetachedClient", {
|
|
6
6
|
enumerable: true,
|
|
7
|
-
get:
|
|
8
|
-
return RudderDetachedClient;
|
|
9
|
-
}
|
|
7
|
+
get: ()=>RudderDetachedClient
|
|
10
8
|
});
|
|
11
|
-
function
|
|
9
|
+
function _nodeChildProcess() {
|
|
12
10
|
const data = require("node:child_process");
|
|
13
|
-
|
|
11
|
+
_nodeChildProcess = function() {
|
|
14
12
|
return data;
|
|
15
13
|
};
|
|
16
14
|
return data;
|
|
17
15
|
}
|
|
18
|
-
function
|
|
19
|
-
const data = /*#__PURE__*/
|
|
20
|
-
|
|
16
|
+
function _nodeFs() {
|
|
17
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("node:fs"));
|
|
18
|
+
_nodeFs = function() {
|
|
21
19
|
return data;
|
|
22
20
|
};
|
|
23
21
|
return data;
|
|
24
22
|
}
|
|
25
|
-
function
|
|
26
|
-
const data = /*#__PURE__*/
|
|
27
|
-
|
|
23
|
+
function _nodePath() {
|
|
24
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("node:path"));
|
|
25
|
+
_nodePath = function() {
|
|
28
26
|
return data;
|
|
29
27
|
};
|
|
30
28
|
return data;
|
|
31
29
|
}
|
|
32
30
|
const _createTempPath = require("../../createTempPath");
|
|
33
|
-
function
|
|
31
|
+
function _interopRequireDefault(obj) {
|
|
34
32
|
return obj && obj.__esModule ? obj : {
|
|
35
33
|
default: obj
|
|
36
34
|
};
|
|
37
35
|
}
|
|
38
|
-
const debug = require(
|
|
36
|
+
const debug = require("debug")("expo:telemetry:client:detached");
|
|
39
37
|
class RudderDetachedClient {
|
|
38
|
+
/** This client should be used for short-lived commands */ strategy = "detached";
|
|
39
|
+
/** All recorded telemetry events */ records = [];
|
|
40
40
|
abort() {
|
|
41
41
|
return this.records;
|
|
42
42
|
}
|
|
@@ -49,37 +49,33 @@ class RudderDetachedClient {
|
|
|
49
49
|
async flush() {
|
|
50
50
|
try {
|
|
51
51
|
if (!this.records.length) {
|
|
52
|
-
return debug(
|
|
52
|
+
return debug("No records to flush, skipping...");
|
|
53
53
|
}
|
|
54
|
-
const file = (0, _createTempPath.createTempFilePath)(
|
|
54
|
+
const file = (0, _createTempPath.createTempFilePath)("expo-telemetry.json");
|
|
55
55
|
const data = JSON.stringify({
|
|
56
56
|
records: this.records
|
|
57
57
|
});
|
|
58
58
|
this.records = [];
|
|
59
|
-
await
|
|
59
|
+
await _nodeFs().default.promises.mkdir(_nodePath().default.dirname(file), {
|
|
60
60
|
recursive: true
|
|
61
61
|
});
|
|
62
|
-
await
|
|
63
|
-
const child = (0,
|
|
64
|
-
require.resolve(
|
|
62
|
+
await _nodeFs().default.promises.writeFile(file, data);
|
|
63
|
+
const child = (0, _nodeChildProcess().spawn)(process.execPath, [
|
|
64
|
+
require.resolve("./flushRudderDetached"),
|
|
65
65
|
file
|
|
66
66
|
], {
|
|
67
67
|
detached: true,
|
|
68
68
|
windowsHide: true,
|
|
69
69
|
shell: false,
|
|
70
|
-
stdio:
|
|
70
|
+
stdio: "ignore"
|
|
71
71
|
});
|
|
72
72
|
child.unref();
|
|
73
73
|
} catch (error) {
|
|
74
74
|
// This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,
|
|
75
75
|
// since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.
|
|
76
|
-
debug(
|
|
76
|
+
debug("Exception while initiating detached flush:", error);
|
|
77
77
|
}
|
|
78
|
-
debug(
|
|
79
|
-
}
|
|
80
|
-
constructor(){
|
|
81
|
-
/** This client should be used for short-lived commands */ this.strategy = 'detached';
|
|
82
|
-
/** All recorded telemetry events */ this.records = [];
|
|
78
|
+
debug("Detached flush started");
|
|
83
79
|
}
|
|
84
80
|
}
|
|
85
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderDetachedClient.ts"],"sourcesContent":["import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createTempFilePath } from '../../createTempPath';\nimport type { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\n\nconst debug = require('debug')('expo:telemetry:client:detached') as typeof console.log;\n\nexport class RudderDetachedClient implements TelemetryClient {\n /** This client should be used for short-lived commands */\n readonly strategy: TelemetryClientStrategy = 'detached';\n /** All recorded telemetry events */\n private records: TelemetryRecordInternal[] = [];\n\n abort() {\n return this.records;\n }\n\n record(record: TelemetryRecordInternal[]) {\n this.records.push(\n ...record.map((record) => ({\n ...record,\n originalTimestamp: record.sentAt,\n }))\n );\n }\n\n async flush() {\n try {\n if (!this.records.length) {\n return debug('No records to flush, skipping...');\n }\n\n const file = createTempFilePath('expo-telemetry.json');\n const data = JSON.stringify({ records: this.records });\n\n this.records = [];\n\n await fs.promises.mkdir(path.dirname(file), { recursive: true });\n await fs.promises.writeFile(file, data);\n\n const child = spawn(process.execPath, [require.resolve('./flushRudderDetached'), file], {\n detached: true,\n windowsHide: true,\n shell: false,\n stdio: 'ignore',\n });\n\n child.unref();\n } catch (error) {\n // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,\n // since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.\n debug('Exception while initiating detached flush:', error);\n }\n\n debug('Detached flush started');\n }\n}\n"],"names":["RudderDetachedClient","debug","require","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/RudderDetachedClient.ts"],"sourcesContent":["import { spawn } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createTempFilePath } from '../../createTempPath';\nimport type { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\n\nconst debug = require('debug')('expo:telemetry:client:detached') as typeof console.log;\n\nexport class RudderDetachedClient implements TelemetryClient {\n /** This client should be used for short-lived commands */\n readonly strategy: TelemetryClientStrategy = 'detached';\n /** All recorded telemetry events */\n private records: TelemetryRecordInternal[] = [];\n\n abort() {\n return this.records;\n }\n\n record(record: TelemetryRecordInternal[]) {\n this.records.push(\n ...record.map((record) => ({\n ...record,\n originalTimestamp: record.sentAt,\n }))\n );\n }\n\n async flush() {\n try {\n if (!this.records.length) {\n return debug('No records to flush, skipping...');\n }\n\n const file = createTempFilePath('expo-telemetry.json');\n const data = JSON.stringify({ records: this.records });\n\n this.records = [];\n\n await fs.promises.mkdir(path.dirname(file), { recursive: true });\n await fs.promises.writeFile(file, data);\n\n const child = spawn(process.execPath, [require.resolve('./flushRudderDetached'), file], {\n detached: true,\n windowsHide: true,\n shell: false,\n stdio: 'ignore',\n });\n\n child.unref();\n } catch (error) {\n // This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,\n // since this file may no longer be present after the upgrade, but before the process under the old Expo CLI version is terminated.\n debug('Exception while initiating detached flush:', error);\n }\n\n debug('Detached flush started');\n }\n}\n"],"names":["RudderDetachedClient","debug","require","strategy","records","abort","record","push","map","originalTimestamp","sentAt","flush","length","file","createTempFilePath","data","JSON","stringify","fs","promises","mkdir","path","dirname","recursive","writeFile","child","spawn","process","execPath","resolve","detached","windowsHide","shell","stdio","unref","error"],"mappings":"AAAA;;;;+BASaA,sBAAoB;;aAApBA,oBAAoB;;;yBATX,oBAAoB;;;;;;;8DAC3B,SAAS;;;;;;;8DACP,WAAW;;;;;;gCAEO,sBAAsB;;;;;;AAGzD,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,gCAAgC,CAAC,AAAsB,AAAC;AAEhF,MAAMF,oBAAoB;IAC/B,wDAAwD,GACxD,AAASG,QAAQ,GAA4B,UAAU,CAAC;IACxD,kCAAkC,GAClC,AAAQC,OAAO,GAA8B,EAAE,CAAC;IAEhDC,KAAK,GAAG;QACN,OAAO,IAAI,CAACD,OAAO,CAAC;IACtB;IAEAE,MAAM,CAACA,MAAiC,EAAE;QACxC,IAAI,CAACF,OAAO,CAACG,IAAI,IACZD,MAAM,CAACE,GAAG,CAAC,CAACF,MAAM,GAAK,CAAC;gBACzB,GAAGA,MAAM;gBACTG,iBAAiB,EAAEH,MAAM,CAACI,MAAM;aACjC,CAAC,CAAC,CACJ,CAAC;IACJ;UAEMC,KAAK,GAAG;QACZ,IAAI;YACF,IAAI,CAAC,IAAI,CAACP,OAAO,CAACQ,MAAM,EAAE;gBACxB,OAAOX,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACnD,CAAC;YAED,MAAMY,IAAI,GAAGC,IAAAA,eAAkB,mBAAA,EAAC,qBAAqB,CAAC,AAAC;YACvD,MAAMC,IAAI,GAAGC,IAAI,CAACC,SAAS,CAAC;gBAAEb,OAAO,EAAE,IAAI,CAACA,OAAO;aAAE,CAAC,AAAC;YAEvD,IAAI,CAACA,OAAO,GAAG,EAAE,CAAC;YAElB,MAAMc,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACC,KAAK,CAACC,SAAI,EAAA,QAAA,CAACC,OAAO,CAACT,IAAI,CAAC,EAAE;gBAAEU,SAAS,EAAE,IAAI;aAAE,CAAC,CAAC;YACjE,MAAML,OAAE,EAAA,QAAA,CAACC,QAAQ,CAACK,SAAS,CAACX,IAAI,EAAEE,IAAI,CAAC,CAAC;YAExC,MAAMU,KAAK,GAAGC,IAAAA,iBAAK,EAAA,MAAA,EAACC,OAAO,CAACC,QAAQ,EAAE;gBAAC1B,OAAO,CAAC2B,OAAO,CAAC,uBAAuB,CAAC;gBAAEhB,IAAI;aAAC,EAAE;gBACtFiB,QAAQ,EAAE,IAAI;gBACdC,WAAW,EAAE,IAAI;gBACjBC,KAAK,EAAE,KAAK;gBACZC,KAAK,EAAE,QAAQ;aAChB,CAAC,AAAC;YAEHR,KAAK,CAACS,KAAK,EAAE,CAAC;QAChB,EAAE,OAAOC,KAAK,EAAE;YACd,oIAAoI;YACpI,mIAAmI;YACnIlC,KAAK,CAAC,4CAA4C,EAAEkC,KAAK,CAAC,CAAC;QAC7D,CAAC;QAEDlC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClC;CACD"}
|