@depup/expo__cli 55.0.16-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -0
- package/add-module.js +8 -0
- package/build/bin/cli +278 -0
- package/build/bin/cli.map +1 -0
- package/build/metro-require/require.js +608 -0
- package/build/src/api/endpoint.js +39 -0
- package/build/src/api/endpoint.js.map +1 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js +23 -0
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -0
- package/build/src/api/getExpoSchema.js +97 -0
- package/build/src/api/getExpoSchema.js.map +1 -0
- package/build/src/api/getNativeModuleVersions.js +37 -0
- package/build/src/api/getNativeModuleVersions.js.map +1 -0
- package/build/src/api/getProjectDevelopmentCertificate.js +26 -0
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -0
- package/build/src/api/getVersions.js +29 -0
- package/build/src/api/getVersions.js.map +1 -0
- package/build/src/api/graphql/client.js +204 -0
- package/build/src/api/graphql/client.js.map +1 -0
- package/build/src/api/graphql/queries/AppQuery.js +40 -0
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -0
- package/build/src/api/graphql/queries/UserQuery.js +63 -0
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -0
- package/build/src/api/rest/cache/FileSystemResponseCache.js +184 -0
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -0
- package/build/src/api/rest/cache/ResponseCache.js +116 -0
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js +76 -0
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -0
- package/build/src/api/rest/client.js +168 -0
- package/build/src/api/rest/client.js.map +1 -0
- package/build/src/api/rest/client.types.js +6 -0
- package/build/src/api/rest/client.types.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +32 -0
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithOffline.js +26 -0
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithProgress.js +108 -0
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -0
- package/build/src/api/rest/wrapFetchWithUserAgent.js +34 -0
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -0
- package/build/src/api/settings.js +33 -0
- package/build/src/api/settings.js.map +1 -0
- package/build/src/api/updateDevelopmentSession.js +100 -0
- package/build/src/api/updateDevelopmentSession.js.map +1 -0
- package/build/src/api/user/UserSettings.js +183 -0
- package/build/src/api/user/UserSettings.js.map +1 -0
- package/build/src/api/user/actions.js +167 -0
- package/build/src/api/user/actions.js.map +1 -0
- package/build/src/api/user/expoSsoLauncher.js +149 -0
- package/build/src/api/user/expoSsoLauncher.js.map +1 -0
- package/build/src/api/user/otp.js +177 -0
- package/build/src/api/user/otp.js.map +1 -0
- package/build/src/api/user/user.js +154 -0
- package/build/src/api/user/user.js.map +1 -0
- package/build/src/config/configAsync.js +180 -0
- package/build/src/config/configAsync.js.map +1 -0
- package/build/src/config/index.js +101 -0
- package/build/src/config/index.js.map +1 -0
- package/build/src/customize/customizeAsync.js +57 -0
- package/build/src/customize/customizeAsync.js.map +1 -0
- package/build/src/customize/generate.js +94 -0
- package/build/src/customize/generate.js.map +1 -0
- package/build/src/customize/index.js +51 -0
- package/build/src/customize/index.js.map +1 -0
- package/build/src/customize/resolveOptions.js +23 -0
- package/build/src/customize/resolveOptions.js.map +1 -0
- package/build/src/customize/templates.js +189 -0
- package/build/src/customize/templates.js.map +1 -0
- package/build/src/customize/typescript.js +81 -0
- package/build/src/customize/typescript.js.map +1 -0
- package/build/src/events/builder.js +6 -0
- package/build/src/events/builder.js.map +1 -0
- package/build/src/events/index.js +132 -0
- package/build/src/events/index.js.map +1 -0
- package/build/src/events/stream.js +303 -0
- package/build/src/events/stream.js.map +1 -0
- package/build/src/events/types.js +6 -0
- package/build/src/events/types.js.map +1 -0
- package/build/src/expoUpdatesExports.js +28 -0
- package/build/src/expoUpdatesExports.js.map +1 -0
- package/build/src/export/createMetadataJson.js +55 -0
- package/build/src/export/createMetadataJson.js.map +1 -0
- package/build/src/export/embed/exportEager.js +33 -0
- package/build/src/export/embed/exportEager.js.map +1 -0
- package/build/src/export/embed/exportEmbedAsync.js +457 -0
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -0
- package/build/src/export/embed/exportServer.js +353 -0
- package/build/src/export/embed/exportServer.js.map +1 -0
- package/build/src/export/embed/index.js +161 -0
- package/build/src/export/embed/index.js.map +1 -0
- package/build/src/export/embed/resolveOptions.js +159 -0
- package/build/src/export/embed/resolveOptions.js.map +1 -0
- package/build/src/export/embed/xcodeCompilerLogger.js +148 -0
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -0
- package/build/src/export/exportApp.js +387 -0
- package/build/src/export/exportApp.js.map +1 -0
- package/build/src/export/exportAssets.js +245 -0
- package/build/src/export/exportAssets.js.map +1 -0
- package/build/src/export/exportAsync.js +103 -0
- package/build/src/export/exportAsync.js.map +1 -0
- package/build/src/export/exportDomComponents.js +185 -0
- package/build/src/export/exportDomComponents.js.map +1 -0
- package/build/src/export/exportHermes.js +251 -0
- package/build/src/export/exportHermes.js.map +1 -0
- package/build/src/export/exportStaticAsync.js +623 -0
- package/build/src/export/exportStaticAsync.js.map +1 -0
- package/build/src/export/favicon.js +138 -0
- package/build/src/export/favicon.js.map +1 -0
- package/build/src/export/getPublicExpoManifest.js +39 -0
- package/build/src/export/getPublicExpoManifest.js.map +1 -0
- package/build/src/export/getResolvedLocales.js +52 -0
- package/build/src/export/getResolvedLocales.js.map +1 -0
- package/build/src/export/html.js +33 -0
- package/build/src/export/html.js.map +1 -0
- package/build/src/export/index.js +146 -0
- package/build/src/export/index.js.map +1 -0
- package/build/src/export/metroAssetLocalPath.js +130 -0
- package/build/src/export/metroAssetLocalPath.js.map +1 -0
- package/build/src/export/persistMetroAssets.js +269 -0
- package/build/src/export/persistMetroAssets.js.map +1 -0
- package/build/src/export/publicFolder.js +61 -0
- package/build/src/export/publicFolder.js.map +1 -0
- package/build/src/export/resolveOptions.js +92 -0
- package/build/src/export/resolveOptions.js.map +1 -0
- package/build/src/export/saveAssets.js +273 -0
- package/build/src/export/saveAssets.js.map +1 -0
- package/build/src/export/web/exportWebAsync.js +57 -0
- package/build/src/export/web/exportWebAsync.js.map +1 -0
- package/build/src/export/web/index.js +92 -0
- package/build/src/export/web/index.js.map +1 -0
- package/build/src/export/web/resolveOptions.js +18 -0
- package/build/src/export/web/resolveOptions.js.map +1 -0
- package/build/src/export/writeContents.js +19 -0
- package/build/src/export/writeContents.js.map +1 -0
- package/build/src/install/applyPlugins.js +81 -0
- package/build/src/install/applyPlugins.js.map +1 -0
- package/build/src/install/checkPackages.js +157 -0
- package/build/src/install/checkPackages.js.map +1 -0
- package/build/src/install/fixPackages.js +111 -0
- package/build/src/install/fixPackages.js.map +1 -0
- package/build/src/install/index.js +64 -0
- package/build/src/install/index.js.map +1 -0
- package/build/src/install/installAsync.js +203 -0
- package/build/src/install/installAsync.js.map +1 -0
- package/build/src/install/installExpoPackage.js +124 -0
- package/build/src/install/installExpoPackage.js.map +1 -0
- package/build/src/install/resolveOptions.js +65 -0
- package/build/src/install/resolveOptions.js.map +1 -0
- package/build/src/install/utils/autoAddConfigPlugins.js +90 -0
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
- package/build/src/install/utils/checkPackagesCompatibility.js +66 -0
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -0
- package/build/src/install/utils/parsePackageSpecifier.js +24 -0
- package/build/src/install/utils/parsePackageSpecifier.js.map +1 -0
- package/build/src/lint/ESlintPrerequisite.js +163 -0
- package/build/src/lint/ESlintPrerequisite.js.map +1 -0
- package/build/src/lint/index.js +68 -0
- package/build/src/lint/index.js.map +1 -0
- package/build/src/lint/lintAsync.js +183 -0
- package/build/src/lint/lintAsync.js.map +1 -0
- package/build/src/lint/resolveOptions.js +115 -0
- package/build/src/lint/resolveOptions.js.map +1 -0
- package/build/src/log.js +106 -0
- package/build/src/log.js.map +1 -0
- package/build/src/login/index.js +92 -0
- package/build/src/login/index.js.map +1 -0
- package/build/src/logout/index.js +70 -0
- package/build/src/logout/index.js.map +1 -0
- package/build/src/prebuild/clearNativeFolder.js +202 -0
- package/build/src/prebuild/clearNativeFolder.js.map +1 -0
- package/build/src/prebuild/configureProjectAsync.js +106 -0
- package/build/src/prebuild/configureProjectAsync.js.map +1 -0
- package/build/src/prebuild/copyTemplateFiles.js +95 -0
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
- package/build/src/prebuild/ensureConfigAsync.js +32 -0
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
- package/build/src/prebuild/index.js +122 -0
- package/build/src/prebuild/index.js.map +1 -0
- package/build/src/prebuild/prebuildAsync.js +192 -0
- package/build/src/prebuild/prebuildAsync.js.map +1 -0
- package/build/src/prebuild/renameTemplateAppName.js +135 -0
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
- package/build/src/prebuild/resolveLocalTemplate.js +72 -0
- package/build/src/prebuild/resolveLocalTemplate.js.map +1 -0
- package/build/src/prebuild/resolveOptions.js +222 -0
- package/build/src/prebuild/resolveOptions.js.map +1 -0
- package/build/src/prebuild/resolveTemplate.js +216 -0
- package/build/src/prebuild/resolveTemplate.js.map +1 -0
- package/build/src/prebuild/updateFromTemplate.js +148 -0
- package/build/src/prebuild/updateFromTemplate.js.map +1 -0
- package/build/src/prebuild/updatePackageJson.js +305 -0
- package/build/src/prebuild/updatePackageJson.js.map +1 -0
- package/build/src/prebuild/validateTemplatePlatforms.js +85 -0
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -0
- package/build/src/register/index.js +70 -0
- package/build/src/register/index.js.map +1 -0
- package/build/src/register/registerAsync.js +39 -0
- package/build/src/register/registerAsync.js.map +1 -0
- package/build/src/run/android/index.js +139 -0
- package/build/src/run/android/index.js.map +1 -0
- package/build/src/run/android/resolveDevice.js +28 -0
- package/build/src/run/android/resolveDevice.js.map +1 -0
- package/build/src/run/android/resolveGradlePropsAsync.js +82 -0
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
- package/build/src/run/android/resolveInstallApkName.js +67 -0
- package/build/src/run/android/resolveInstallApkName.js.map +1 -0
- package/build/src/run/android/resolveLaunchProps.js +44 -0
- package/build/src/run/android/resolveLaunchProps.js.map +1 -0
- package/build/src/run/android/resolveOptions.js +43 -0
- package/build/src/run/android/resolveOptions.js.map +1 -0
- package/build/src/run/android/runAndroidAsync.js +157 -0
- package/build/src/run/android/runAndroidAsync.js.map +1 -0
- package/build/src/run/ensureNativeProject.js +53 -0
- package/build/src/run/ensureNativeProject.js.map +1 -0
- package/build/src/run/hints.js +46 -0
- package/build/src/run/hints.js.map +1 -0
- package/build/src/run/index.js +124 -0
- package/build/src/run/index.js.map +1 -0
- package/build/src/run/ios/XcodeBuild.js +382 -0
- package/build/src/run/ios/XcodeBuild.js.map +1 -0
- package/build/src/run/ios/XcodeBuild.types.js +6 -0
- package/build/src/run/ios/XcodeBuild.types.js.map +1 -0
- package/build/src/run/ios/appleDevice/AppleDevice.js +316 -0
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -0
- package/build/src/run/ios/appleDevice/ClientManager.js +207 -0
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/AFCClient.js +248 -0
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +149 -0
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +113 -0
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +186 -0
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +133 -0
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +38 -0
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +146 -0
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -0
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +153 -0
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +365 -0
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +167 -0
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +153 -0
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +111 -0
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -0
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +100 -0
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -0
- package/build/src/run/ios/codeSigning/Security.js +116 -0
- package/build/src/run/ios/codeSigning/Security.js.map +1 -0
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +108 -0
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -0
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +165 -0
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -0
- package/build/src/run/ios/codeSigning/settings.js +27 -0
- package/build/src/run/ios/codeSigning/settings.js.map +1 -0
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +67 -0
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -0
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +103 -0
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -0
- package/build/src/run/ios/index.js +137 -0
- package/build/src/run/ios/index.js.map +1 -0
- package/build/src/run/ios/launchApp.js +142 -0
- package/build/src/run/ios/launchApp.js.map +1 -0
- package/build/src/run/ios/options/appleDestinations.js +126 -0
- package/build/src/run/ios/options/appleDestinations.js.map +1 -0
- package/build/src/run/ios/options/promptDevice.js +64 -0
- package/build/src/run/ios/options/promptDevice.js.map +1 -0
- package/build/src/run/ios/options/resolveDevice.js +151 -0
- package/build/src/run/ios/options/resolveDevice.js.map +1 -0
- package/build/src/run/ios/options/resolveNativeScheme.js +147 -0
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -0
- package/build/src/run/ios/options/resolveOptions.js +66 -0
- package/build/src/run/ios/options/resolveOptions.js.map +1 -0
- package/build/src/run/ios/options/resolveXcodeProject.js +50 -0
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -0
- package/build/src/run/ios/runIosAsync.js +255 -0
- package/build/src/run/ios/runIosAsync.js.map +1 -0
- package/build/src/run/ios/validateExternalBinary.js +113 -0
- package/build/src/run/ios/validateExternalBinary.js.map +1 -0
- package/build/src/run/resolveBundlerProps.js +38 -0
- package/build/src/run/resolveBundlerProps.js.map +1 -0
- package/build/src/run/startBundler.js +119 -0
- package/build/src/run/startBundler.js.map +1 -0
- package/build/src/serve/index.js +95 -0
- package/build/src/serve/index.js.map +1 -0
- package/build/src/serve/serveAsync.js +227 -0
- package/build/src/serve/serveAsync.js.map +1 -0
- package/build/src/start/detectDevClient.js +53 -0
- package/build/src/start/detectDevClient.js.map +1 -0
- package/build/src/start/doctor/Prerequisite.js +60 -0
- package/build/src/start/doctor/Prerequisite.js.map +1 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js +38 -0
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +144 -0
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +106 -0
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js +239 -0
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +88 -0
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +112 -0
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +192 -0
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js +108 -0
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +165 -0
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/resolvePackages.js +95 -0
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +262 -0
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js +214 -0
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js +33 -0
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +205 -0
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js +144 -0
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +164 -0
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
- package/build/src/start/index.js +151 -0
- package/build/src/start/index.js.map +1 -0
- package/build/src/start/interface/KeyPressHandler.js +126 -0
- package/build/src/start/interface/KeyPressHandler.js.map +1 -0
- package/build/src/start/interface/cliExtensionMenuItemHandler.js +173 -0
- package/build/src/start/interface/cliExtensionMenuItemHandler.js.map +1 -0
- package/build/src/start/interface/commandsTable.js +273 -0
- package/build/src/start/interface/commandsTable.js.map +1 -0
- package/build/src/start/interface/createDevToolsMenuItems.js +159 -0
- package/build/src/start/interface/createDevToolsMenuItems.js.map +1 -0
- package/build/src/start/interface/interactiveActions.js +225 -0
- package/build/src/start/interface/interactiveActions.js.map +1 -0
- package/build/src/start/interface/startInterface.js +261 -0
- package/build/src/start/interface/startInterface.js.map +1 -0
- package/build/src/start/platforms/AppIdResolver.js +55 -0
- package/build/src/start/platforms/AppIdResolver.js.map +1 -0
- package/build/src/start/platforms/DeviceManager.js +74 -0
- package/build/src/start/platforms/DeviceManager.js.map +1 -0
- package/build/src/start/platforms/ExpoGoInstaller.js +167 -0
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
- package/build/src/start/platforms/PlatformManager.js +149 -0
- package/build/src/start/platforms/PlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/ADBServer.js +139 -0
- package/build/src/start/platforms/android/ADBServer.js.map +1 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +54 -0
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js +216 -0
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js +80 -0
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
- package/build/src/start/platforms/android/AndroidSdk.js +79 -0
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -0
- package/build/src/start/platforms/android/activateWindow.js +117 -0
- package/build/src/start/platforms/android/activateWindow.js.map +1 -0
- package/build/src/start/platforms/android/adb.js +367 -0
- package/build/src/start/platforms/android/adb.js.map +1 -0
- package/build/src/start/platforms/android/adbReverse.js +129 -0
- package/build/src/start/platforms/android/adbReverse.js.map +1 -0
- package/build/src/start/platforms/android/emulator.js +185 -0
- package/build/src/start/platforms/android/emulator.js.map +1 -0
- package/build/src/start/platforms/android/getDevices.js +39 -0
- package/build/src/start/platforms/android/getDevices.js.map +1 -0
- package/build/src/start/platforms/android/gradle.js +125 -0
- package/build/src/start/platforms/android/gradle.js.map +1 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js +82 -0
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +76 -0
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js +283 -0
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js +34 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js +22 -0
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
- package/build/src/start/platforms/ios/devicectl.js +398 -0
- package/build/src/start/platforms/ios/devicectl.js.map +1 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +122 -0
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
- package/build/src/start/platforms/ios/getBestSimulator.js +148 -0
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js +72 -0
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
- package/build/src/start/platforms/ios/simctl.js +386 -0
- package/build/src/start/platforms/ios/simctl.js.map +1 -0
- package/build/src/start/platforms/ios/simctlLogging.js +276 -0
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -0
- package/build/src/start/platforms/ios/xcrun.js +74 -0
- package/build/src/start/platforms/ios/xcrun.js.map +1 -0
- package/build/src/start/project/devices.js +92 -0
- package/build/src/start/project/devices.js.map +1 -0
- package/build/src/start/project/dotExpo.js +109 -0
- package/build/src/start/project/dotExpo.js.map +1 -0
- package/build/src/start/project/settings.js +17 -0
- package/build/src/start/project/settings.js.map +1 -0
- package/build/src/start/resolveOptions.js +173 -0
- package/build/src/start/resolveOptions.js.map +1 -0
- package/build/src/start/server/AsyncNgrok.js +269 -0
- package/build/src/start/server/AsyncNgrok.js.map +1 -0
- package/build/src/start/server/AsyncWsTunnel.js +156 -0
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -0
- package/build/src/start/server/Bonjour.js +103 -0
- package/build/src/start/server/Bonjour.js.map +1 -0
- package/build/src/start/server/BundlerDevServer.js +410 -0
- package/build/src/start/server/BundlerDevServer.js.map +1 -0
- package/build/src/start/server/DevServerManager.js +259 -0
- package/build/src/start/server/DevServerManager.js.map +1 -0
- package/build/src/start/server/DevToolsPlugin.js +60 -0
- package/build/src/start/server/DevToolsPlugin.js.map +1 -0
- package/build/src/start/server/DevToolsPlugin.schema.js +79 -0
- package/build/src/start/server/DevToolsPlugin.schema.js.map +1 -0
- package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js +119 -0
- package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js.map +1 -0
- package/build/src/start/server/DevToolsPluginCliExtensionResults.js +61 -0
- package/build/src/start/server/DevToolsPluginCliExtensionResults.js.map +1 -0
- package/build/src/start/server/DevToolsPluginManager.js +60 -0
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -0
- package/build/src/start/server/DevelopmentSession.js +132 -0
- package/build/src/start/server/DevelopmentSession.js.map +1 -0
- package/build/src/start/server/MCP.js +106 -0
- package/build/src/start/server/MCP.js.map +1 -0
- package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js +86 -0
- package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js.map +1 -0
- package/build/src/start/server/UrlCreator.js +219 -0
- package/build/src/start/server/UrlCreator.js.map +1 -0
- package/build/src/start/server/createMCPDevToolsExtensionSchema.js +67 -0
- package/build/src/start/server/createMCPDevToolsExtensionSchema.js.map +1 -0
- package/build/src/start/server/getStaticRenderFunctions.js +171 -0
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -0
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +39 -0
- package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js +1654 -0
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js +438 -0
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.js +180 -0
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
- package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
- package/build/src/start/server/metro/createExpoAutolinkingResolver.js +123 -0
- package/build/src/start/server/metro/createExpoAutolinkingResolver.js.map +1 -0
- package/build/src/start/server/metro/createExpoFallbackResolver.js +143 -0
- package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -0
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +501 -0
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js +229 -0
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -0
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +49 -0
- package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
- package/build/src/start/server/metro/debugging/attachAtlas.js +103 -0
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +127 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -0
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +58 -0
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
- package/build/src/start/server/metro/debugging/getDebuggerType.js +20 -0
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +44 -0
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +30 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +27 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +33 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +56 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +49 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
- package/build/src/start/server/metro/debugging/types.js +6 -0
- package/build/src/start/server/metro/debugging/types.js.map +1 -0
- package/build/src/start/server/metro/dev-server/compression.js +45 -0
- package/build/src/start/server/metro/dev-server/compression.js.map +1 -0
- package/build/src/start/server/metro/dev-server/createEventSocket.js +103 -0
- package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -0
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +129 -0
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -0
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +82 -0
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +27 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +43 -0
- package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -0
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js +41 -0
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -0
- package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js +17 -0
- package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js.map +1 -0
- package/build/src/start/server/metro/externals.js +89 -0
- package/build/src/start/server/metro/externals.js.map +1 -0
- package/build/src/start/server/metro/fetchRouterManifest.js +83 -0
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -0
- package/build/src/start/server/metro/getCssModulesFromBundler.js +114 -0
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -0
- package/build/src/start/server/metro/instantiateMetro.js +492 -0
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
- package/build/src/start/server/metro/log-box/LogBoxLog.js +211 -0
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -0
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +124 -0
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -0
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +46 -0
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -0
- package/build/src/start/server/metro/metroErrorInterface.js +403 -0
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -0
- package/build/src/start/server/metro/metroErrors.js +27 -0
- package/build/src/start/server/metro/metroErrors.js.map +1 -0
- package/build/src/start/server/metro/metroVirtualModules.js +92 -0
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +62 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -0
- package/build/src/start/server/metro/resolveLoader.js +68 -0
- package/build/src/start/server/metro/resolveLoader.js.map +1 -0
- package/build/src/start/server/metro/router.js +218 -0
- package/build/src/start/server/metro/router.js.map +1 -0
- package/build/src/start/server/metro/runServer-fork.js +179 -0
- package/build/src/start/server/metro/runServer-fork.js.map +1 -0
- package/build/src/start/server/metro/serializeHtml.js +138 -0
- package/build/src/start/server/metro/serializeHtml.js.map +1 -0
- package/build/src/start/server/metro/symbolicate.js +6 -0
- package/build/src/start/server/metro/symbolicate.js.map +1 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +103 -0
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -0
- package/build/src/start/server/metro/withMetroErrorReportingResolver.js +266 -0
- package/build/src/start/server/metro/withMetroErrorReportingResolver.js.map +1 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js +748 -0
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -0
- package/build/src/start/server/metro/withMetroResolvers.js +110 -0
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -0
- package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js +63 -0
- package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js.map +1 -0
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +32 -0
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/CorsMiddleware.js +92 -0
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/CreateFileMiddleware.js +166 -0
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +78 -0
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +138 -0
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +288 -0
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js +121 -0
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/FaviconMiddleware.js +52 -0
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +29 -0
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +116 -0
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js +362 -0
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +103 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +85 -0
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/inspector/CdpClient.js +81 -0
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -0
- package/build/src/start/server/middleware/inspector/JsInspector.js +123 -0
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -0
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +91 -0
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +30 -0
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -0
- package/build/src/start/server/middleware/metroOptions.js +367 -0
- package/build/src/start/server/middleware/metroOptions.js.map +1 -0
- package/build/src/start/server/middleware/mutations.js +33 -0
- package/build/src/start/server/middleware/mutations.js.map +1 -0
- package/build/src/start/server/middleware/resolveAssets.js +154 -0
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
- package/build/src/start/server/middleware/resolvePlatform.js +71 -0
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +38 -0
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -0
- package/build/src/start/server/middleware/server.types.js +6 -0
- package/build/src/start/server/middleware/server.types.js.map +1 -0
- package/build/src/start/server/openPlatforms.js +33 -0
- package/build/src/start/server/openPlatforms.js.map +1 -0
- package/build/src/start/server/platformBundlers.js +39 -0
- package/build/src/start/server/platformBundlers.js.map +1 -0
- package/build/src/start/server/serverLogLikeMetro.js +309 -0
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -0
- package/build/src/start/server/type-generation/expo-env.js +51 -0
- package/build/src/start/server/type-generation/expo-env.js.map +1 -0
- package/build/src/start/server/type-generation/routes.js +510 -0
- package/build/src/start/server/type-generation/routes.js.map +1 -0
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +79 -0
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -0
- package/build/src/start/server/type-generation/tsconfig.js +122 -0
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -0
- package/build/src/start/server/webTemplate.js +111 -0
- package/build/src/start/server/webTemplate.js.map +1 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +316 -0
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
- package/build/src/start/server/webpack/compile.js +101 -0
- package/build/src/start/server/webpack/compile.js.map +1 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js +106 -0
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
- package/build/src/start/server/webpack/resolveFromProject.js +63 -0
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
- package/build/src/start/server/webpack/tls.js +128 -0
- package/build/src/start/server/webpack/tls.js.map +1 -0
- package/build/src/start/startAsync.js +204 -0
- package/build/src/start/startAsync.js.map +1 -0
- package/build/src/types.d.ts +2 -0
- package/build/src/utils/FileNotifier.js +138 -0
- package/build/src/utils/FileNotifier.js.map +1 -0
- package/build/src/utils/ansi.js +22 -0
- package/build/src/utils/ansi.js.map +1 -0
- package/build/src/utils/args.js +141 -0
- package/build/src/utils/args.js.map +1 -0
- package/build/src/utils/array.js +92 -0
- package/build/src/utils/array.js.map +1 -0
- package/build/src/utils/build-cache-providers/helpers.js +61 -0
- package/build/src/utils/build-cache-providers/helpers.js.map +1 -0
- package/build/src/utils/build-cache-providers/index.js +283 -0
- package/build/src/utils/build-cache-providers/index.js.map +1 -0
- package/build/src/utils/cocoapods.js +258 -0
- package/build/src/utils/cocoapods.js.map +1 -0
- package/build/src/utils/codesigning.js +395 -0
- package/build/src/utils/codesigning.js.map +1 -0
- package/build/src/utils/createFileTransform.js +34 -0
- package/build/src/utils/createFileTransform.js.map +1 -0
- package/build/src/utils/createTempPath.js +68 -0
- package/build/src/utils/createTempPath.js.map +1 -0
- package/build/src/utils/delay.js +58 -0
- package/build/src/utils/delay.js.map +1 -0
- package/build/src/utils/dir.js +121 -0
- package/build/src/utils/dir.js.map +1 -0
- package/build/src/utils/downloadAppAsync.js +98 -0
- package/build/src/utils/downloadAppAsync.js.map +1 -0
- package/build/src/utils/downloadExpoGoAsync.js +170 -0
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
- package/build/src/utils/editor.js +527 -0
- package/build/src/utils/editor.js.map +1 -0
- package/build/src/utils/env.js +266 -0
- package/build/src/utils/env.js.map +1 -0
- package/build/src/utils/errors.js +134 -0
- package/build/src/utils/errors.js.map +1 -0
- package/build/src/utils/exit.js +210 -0
- package/build/src/utils/exit.js.map +1 -0
- package/build/src/utils/expoUpdatesCli.js +120 -0
- package/build/src/utils/expoUpdatesCli.js.map +1 -0
- package/build/src/utils/fetch.js +41 -0
- package/build/src/utils/fetch.js.map +1 -0
- package/build/src/utils/filePath.js +42 -0
- package/build/src/utils/filePath.js.map +1 -0
- package/build/src/utils/findUp.js +61 -0
- package/build/src/utils/findUp.js.map +1 -0
- package/build/src/utils/fn.js +44 -0
- package/build/src/utils/fn.js.map +1 -0
- package/build/src/utils/freeport.js +70 -0
- package/build/src/utils/freeport.js.map +1 -0
- package/build/src/utils/getOrPromptApplicationId.js +259 -0
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
- package/build/src/utils/getRunningProcess.js +181 -0
- package/build/src/utils/getRunningProcess.js.map +1 -0
- package/build/src/utils/git.js +132 -0
- package/build/src/utils/git.js.map +1 -0
- package/build/src/utils/glob.js +46 -0
- package/build/src/utils/glob.js.map +1 -0
- package/build/src/utils/interactive.js +17 -0
- package/build/src/utils/interactive.js.map +1 -0
- package/build/src/utils/ip.js +63 -0
- package/build/src/utils/ip.js.map +1 -0
- package/build/src/utils/isModuleSymlinked.js +54 -0
- package/build/src/utils/isModuleSymlinked.js.map +1 -0
- package/build/src/utils/link.js +55 -0
- package/build/src/utils/link.js.map +1 -0
- package/build/src/utils/mergeGitIgnorePaths.js +189 -0
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
- package/build/src/utils/modifyConfigAsync.js +106 -0
- package/build/src/utils/modifyConfigAsync.js.map +1 -0
- package/build/src/utils/modifyConfigPlugins.js +79 -0
- package/build/src/utils/modifyConfigPlugins.js.map +1 -0
- package/build/src/utils/net.js +43 -0
- package/build/src/utils/net.js.map +1 -0
- package/build/src/utils/nodeEnv.js +168 -0
- package/build/src/utils/nodeEnv.js.map +1 -0
- package/build/src/utils/nodeModules.js +52 -0
- package/build/src/utils/nodeModules.js.map +1 -0
- package/build/src/utils/npm.js +222 -0
- package/build/src/utils/npm.js.map +1 -0
- package/build/src/utils/obj.js +59 -0
- package/build/src/utils/obj.js.map +1 -0
- package/build/src/utils/open.js +36 -0
- package/build/src/utils/open.js.map +1 -0
- package/build/src/utils/ora.js +113 -0
- package/build/src/utils/ora.js.map +1 -0
- package/build/src/utils/plist.js +108 -0
- package/build/src/utils/plist.js.map +1 -0
- package/build/src/utils/port.js +196 -0
- package/build/src/utils/port.js.map +1 -0
- package/build/src/utils/profile.js +94 -0
- package/build/src/utils/profile.js.map +1 -0
- package/build/src/utils/progress.js +76 -0
- package/build/src/utils/progress.js.map +1 -0
- package/build/src/utils/prompts.js +151 -0
- package/build/src/utils/prompts.js.map +1 -0
- package/build/src/utils/qr.js +186 -0
- package/build/src/utils/qr.js.map +1 -0
- package/build/src/utils/resolveArgs.js +236 -0
- package/build/src/utils/resolveArgs.js.map +1 -0
- package/build/src/utils/resolveGlobal.js +195 -0
- package/build/src/utils/resolveGlobal.js.map +1 -0
- package/build/src/utils/scheme.js +212 -0
- package/build/src/utils/scheme.js.map +1 -0
- package/build/src/utils/stream.js +31 -0
- package/build/src/utils/stream.js.map +1 -0
- package/build/src/utils/strings.js +33 -0
- package/build/src/utils/strings.js.map +1 -0
- package/build/src/utils/tar.js +168 -0
- package/build/src/utils/tar.js.map +1 -0
- package/build/src/utils/telemetry/Telemetry.js +131 -0
- package/build/src/utils/telemetry/Telemetry.js.map +1 -0
- package/build/src/utils/telemetry/clients/FetchClient.js +91 -0
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -0
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js +86 -0
- package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -0
- package/build/src/utils/telemetry/clients/flushFetchDetached.js +39 -0
- package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -0
- package/build/src/utils/telemetry/events.js +20 -0
- package/build/src/utils/telemetry/events.js.map +1 -0
- package/build/src/utils/telemetry/index.js +72 -0
- package/build/src/utils/telemetry/index.js.map +1 -0
- package/build/src/utils/telemetry/types.js +6 -0
- package/build/src/utils/telemetry/types.js.map +1 -0
- package/build/src/utils/telemetry/utils/constants.js +23 -0
- package/build/src/utils/telemetry/utils/constants.js.map +1 -0
- package/build/src/utils/telemetry/utils/context.js +115 -0
- package/build/src/utils/telemetry/utils/context.js.map +1 -0
- package/build/src/utils/template.js +48 -0
- package/build/src/utils/template.js.map +1 -0
- package/build/src/utils/terminal.js +15 -0
- package/build/src/utils/terminal.js.map +1 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js +87 -0
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -0
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +84 -0
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -0
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +94 -0
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -0
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +62 -0
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -0
- package/build/src/utils/url.js +92 -0
- package/build/src/utils/url.js.map +1 -0
- package/build/src/utils/validateApplicationId.js +255 -0
- package/build/src/utils/validateApplicationId.js.map +1 -0
- package/build/src/utils/variadic.js +132 -0
- package/build/src/utils/variadic.js.map +1 -0
- package/build/src/whoami/index.js +69 -0
- package/build/src/whoami/index.js.map +1 -0
- package/build/src/whoami/whoamiAsync.js +75 -0
- package/build/src/whoami/whoamiAsync.js.map +1 -0
- package/changes.json +106 -0
- package/internal/unstable-expo-updates-exports.d.ts +31 -0
- package/internal/unstable-expo-updates-exports.js +3 -0
- package/package.json +275 -0
- package/static/loading-page/index.html +363 -0
- package/static/shims/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js +13 -0
- package/static/shims/react-native-web/dist/cjs/exports/BackHandler/index.js +10 -0
- package/static/shims/react-native-web/dist/exports/AppRegistry/AppContainer.js +12 -0
- package/static/shims/react-native-web/dist/exports/BackHandler/index.js +7 -0
- package/static/template/+html.tsx +28 -0
- package/static/template/+native-intent.ts +9 -0
- package/static/template/.eslintrc.js +5 -0
- package/static/template/[...rsc]+api.ts +16 -0
- package/static/template/babel.config.js +6 -0
- package/static/template/eslint.config.js +10 -0
- package/static/template/index.html +36 -0
- package/static/template/metro.config.js +7 -0
- package/static/template/webpack.config.js +7 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
extractAsync: function() {
|
|
13
|
+
return extractAsync;
|
|
14
|
+
},
|
|
15
|
+
extractStream: function() {
|
|
16
|
+
return extractStream;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
function _multitars() {
|
|
20
|
+
const data = require("multitars");
|
|
21
|
+
_multitars = function() {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
return data;
|
|
25
|
+
}
|
|
26
|
+
function _nodecrypto() {
|
|
27
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:crypto"));
|
|
28
|
+
_nodecrypto = function() {
|
|
29
|
+
return data;
|
|
30
|
+
};
|
|
31
|
+
return data;
|
|
32
|
+
}
|
|
33
|
+
function _nodefs() {
|
|
34
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
|
|
35
|
+
_nodefs = function() {
|
|
36
|
+
return data;
|
|
37
|
+
};
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
function _nodepath() {
|
|
41
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
42
|
+
_nodepath = function() {
|
|
43
|
+
return data;
|
|
44
|
+
};
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
function _nodestream() {
|
|
48
|
+
const data = require("node:stream");
|
|
49
|
+
_nodestream = function() {
|
|
50
|
+
return data;
|
|
51
|
+
};
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
const _dir = require("./dir");
|
|
55
|
+
function _interop_require_default(obj) {
|
|
56
|
+
return obj && obj.__esModule ? obj : {
|
|
57
|
+
default: obj
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const debug = require('debug')('expo:utils:tar');
|
|
61
|
+
class ChecksumStream extends TransformStream {
|
|
62
|
+
constructor(algorithm){
|
|
63
|
+
super({
|
|
64
|
+
transform: (chunk, controller)=>{
|
|
65
|
+
this.hash.update(chunk);
|
|
66
|
+
controller.enqueue(chunk);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
this.hash = _nodecrypto().default.createHash(algorithm);
|
|
70
|
+
}
|
|
71
|
+
digest(encoding) {
|
|
72
|
+
return this.hash.digest(encoding);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function extractStream(input, output, options = {}) {
|
|
76
|
+
output = _nodepath().default.resolve(output);
|
|
77
|
+
await (0, _dir.ensureDirectoryAsync)(output);
|
|
78
|
+
const { checksumAlgorithm, strip = 0, rename, filter } = options;
|
|
79
|
+
const checksumStream = new ChecksumStream(checksumAlgorithm || 'md5');
|
|
80
|
+
const decompressionStream = new DecompressionStream('gzip');
|
|
81
|
+
const body = input.pipeThrough(checksumStream).pipeThrough(decompressionStream);
|
|
82
|
+
for await (const file of (0, _multitars().untar)(body)){
|
|
83
|
+
let name = _nodepath().default.normalize(file.name);
|
|
84
|
+
if (filter && !filter(name, file.typeflag)) {
|
|
85
|
+
debug(`filtered: ${_nodepath().default.resolve(output, name)}`);
|
|
86
|
+
continue;
|
|
87
|
+
} else if (rename) {
|
|
88
|
+
name = rename(name, file.typeflag) ?? name;
|
|
89
|
+
}
|
|
90
|
+
for(let idx = 0; idx < strip; idx++){
|
|
91
|
+
const sepIdx = name.indexOf(_nodepath().default.sep);
|
|
92
|
+
if (sepIdx > -1) {
|
|
93
|
+
name = name.slice(sepIdx + 1);
|
|
94
|
+
} else {
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const resolved = _nodepath().default.resolve(output, name);
|
|
99
|
+
if (!resolved.startsWith(output)) {
|
|
100
|
+
debug(`skip: ${resolved}`);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const parent = _nodepath().default.dirname(resolved);
|
|
104
|
+
if (parent !== output) {
|
|
105
|
+
let exists = false;
|
|
106
|
+
try {
|
|
107
|
+
const stat = await _nodefs().default.promises.lstat(parent);
|
|
108
|
+
if (stat.isSymbolicLink() || !stat.isDirectory() && !stat.isFile()) {
|
|
109
|
+
debug(`skip: ${resolved}`);
|
|
110
|
+
continue;
|
|
111
|
+
} else if (stat.isDirectory()) {
|
|
112
|
+
exists = true;
|
|
113
|
+
}
|
|
114
|
+
} catch {}
|
|
115
|
+
if (!exists) {
|
|
116
|
+
debug(`mkdir(p): ${parent}`);
|
|
117
|
+
await _nodefs().default.promises.mkdir(parent, {
|
|
118
|
+
recursive: true
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
switch(file.typeflag){
|
|
123
|
+
case _multitars().TarTypeFlag.FILE:
|
|
124
|
+
debug(`write(${file.mode.toString(8)}): ${resolved}`);
|
|
125
|
+
await _nodefs().default.promises.writeFile(resolved, (0, _multitars().streamToAsyncIterable)(file.stream()), {
|
|
126
|
+
mode: file.mode
|
|
127
|
+
});
|
|
128
|
+
break;
|
|
129
|
+
case _multitars().TarTypeFlag.DIRECTORY:
|
|
130
|
+
debug(`mkdir(${file.mode.toString(8)}): ${resolved}`);
|
|
131
|
+
try {
|
|
132
|
+
await _nodefs().default.promises.mkdir(resolved, {
|
|
133
|
+
mode: file.mode
|
|
134
|
+
});
|
|
135
|
+
} catch (error) {
|
|
136
|
+
if (error.code !== 'EEXIST') {
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
break;
|
|
141
|
+
case _multitars().TarTypeFlag.SYMLINK:
|
|
142
|
+
case _multitars().TarTypeFlag.LINK:
|
|
143
|
+
{
|
|
144
|
+
const target = _nodepath().default.resolve(parent, file.linkname ?? '');
|
|
145
|
+
if (!target.startsWith(output) || target === parent) {
|
|
146
|
+
debug(`skip: ${resolved} -> ${target}`);
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (file.typeflag === _multitars().TarTypeFlag.LINK) {
|
|
150
|
+
debug(`link: ${resolved} -> ${target}`);
|
|
151
|
+
await _nodefs().default.promises.link(target, resolved);
|
|
152
|
+
} else {
|
|
153
|
+
const stat = await _nodefs().default.promises.lstat(target).catch(()=>null);
|
|
154
|
+
const type = (stat == null ? void 0 : stat.isDirectory()) ? 'dir' : 'file';
|
|
155
|
+
debug(`symlink(${type}): ${resolved} -> ${target}`);
|
|
156
|
+
await _nodefs().default.promises.symlink(target, resolved, type);
|
|
157
|
+
}
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return checksumStream.digest('hex');
|
|
163
|
+
}
|
|
164
|
+
async function extractAsync(input, output, options) {
|
|
165
|
+
await extractStream(_nodestream().Readable.toWeb(_nodefs().default.createReadStream(input)), output, options);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
//# sourceMappingURL=tar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/tar.ts"],"sourcesContent":["import { streamToAsyncIterable, TarTypeFlag, untar } from 'multitars';\nimport crypto from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\n\nimport { ensureDirectoryAsync } from './dir';\n\nconst debug = require('debug')('expo:utils:tar') as typeof console.log;\n\nclass ChecksumStream extends TransformStream {\n hash: crypto.Hash;\n constructor(algorithm: string) {\n super({\n transform: (chunk, controller) => {\n this.hash.update(chunk);\n controller.enqueue(chunk);\n },\n });\n this.hash = crypto.createHash(algorithm);\n }\n\n digest(): Buffer;\n digest(encoding: crypto.BinaryToTextEncoding): string;\n digest(encoding?: crypto.BinaryToTextEncoding): string | Buffer {\n return this.hash.digest(encoding!);\n }\n}\n\nexport interface ExtractOptions {\n strip?: number;\n filter?(name: string, type: TarTypeFlag): boolean | null | undefined;\n rename?(name: string, type: TarTypeFlag): string | null | undefined;\n checksumAlgorithm?: string;\n}\n\nexport async function extractStream(\n input: ReadableStream,\n output: string,\n options: ExtractOptions = {}\n): Promise<string> {\n output = path.resolve(output);\n await ensureDirectoryAsync(output);\n\n const { checksumAlgorithm, strip = 0, rename, filter } = options;\n\n const checksumStream = new ChecksumStream(checksumAlgorithm || 'md5');\n const decompressionStream = new DecompressionStream('gzip');\n\n const body = input.pipeThrough(checksumStream).pipeThrough(decompressionStream);\n\n for await (const file of untar(body)) {\n let name = path.normalize(file.name);\n if (filter && !filter(name, file.typeflag)) {\n debug(`filtered: ${path.resolve(output, name)}`);\n continue;\n } else if (rename) {\n name = rename(name, file.typeflag) ?? name;\n }\n\n for (let idx = 0; idx < strip; idx++) {\n const sepIdx = name.indexOf(path.sep);\n if (sepIdx > -1) {\n name = name.slice(sepIdx + 1);\n } else {\n break;\n }\n }\n\n const resolved = path.resolve(output, name);\n if (!resolved.startsWith(output)) {\n debug(`skip: ${resolved}`);\n continue;\n }\n\n const parent = path.dirname(resolved);\n if (parent !== output) {\n let exists = false;\n try {\n const stat = await fs.promises.lstat(parent);\n if (stat.isSymbolicLink() || (!stat.isDirectory() && !stat.isFile())) {\n debug(`skip: ${resolved}`);\n continue;\n } else if (stat.isDirectory()) {\n exists = true;\n }\n } catch {}\n\n if (!exists) {\n debug(`mkdir(p): ${parent}`);\n await fs.promises.mkdir(parent, { recursive: true });\n }\n }\n\n switch (file.typeflag) {\n case TarTypeFlag.FILE:\n debug(`write(${file.mode.toString(8)}): ${resolved}`);\n await fs.promises.writeFile(resolved, streamToAsyncIterable(file.stream()), {\n mode: file.mode,\n });\n break;\n case TarTypeFlag.DIRECTORY:\n debug(`mkdir(${file.mode.toString(8)}): ${resolved}`);\n try {\n await fs.promises.mkdir(resolved, { mode: file.mode });\n } catch (error: any) {\n if (error.code !== 'EEXIST') {\n throw error;\n }\n }\n break;\n case TarTypeFlag.SYMLINK:\n case TarTypeFlag.LINK: {\n const target = path.resolve(parent, file.linkname ?? '');\n if (!target.startsWith(output) || target === parent) {\n debug(`skip: ${resolved} -> ${target}`);\n continue;\n }\n\n if (file.typeflag === TarTypeFlag.LINK) {\n debug(`link: ${resolved} -> ${target}`);\n await fs.promises.link(target, resolved);\n } else {\n const stat = await fs.promises.lstat(target).catch(() => null);\n const type = stat?.isDirectory() ? 'dir' : 'file';\n debug(`symlink(${type}): ${resolved} -> ${target}`);\n await fs.promises.symlink(target, resolved, type);\n }\n break;\n }\n }\n }\n\n return checksumStream.digest('hex');\n}\n\n/** Extract a tar using built-in tools if available and falling back on Node.js. */\nexport async function extractAsync(\n input: string,\n output: string,\n options?: ExtractOptions\n): Promise<void> {\n await extractStream(\n Readable.toWeb(fs.createReadStream(input)) as ReadableStream,\n output,\n options\n );\n}\n"],"names":["extractAsync","extractStream","debug","require","ChecksumStream","TransformStream","constructor","algorithm","transform","chunk","controller","hash","update","enqueue","crypto","createHash","digest","encoding","input","output","options","path","resolve","ensureDirectoryAsync","checksumAlgorithm","strip","rename","filter","checksumStream","decompressionStream","DecompressionStream","body","pipeThrough","file","untar","name","normalize","typeflag","idx","sepIdx","indexOf","sep","slice","resolved","startsWith","parent","dirname","exists","stat","fs","promises","lstat","isSymbolicLink","isDirectory","isFile","mkdir","recursive","TarTypeFlag","FILE","mode","toString","writeFile","streamToAsyncIterable","stream","DIRECTORY","error","code","SYMLINK","LINK","target","linkname","link","catch","type","symlink","Readable","toWeb","createReadStream"],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "Telemetry", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Telemetry;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _nodecrypto() {
|
|
12
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:crypto"));
|
|
13
|
+
_nodecrypto = function() {
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
const _FetchClient = require("./clients/FetchClient");
|
|
19
|
+
const _FetchDetachedClient = require("./clients/FetchDetachedClient");
|
|
20
|
+
const _context = require("./utils/context");
|
|
21
|
+
const _UserSettings = require("../../api/user/UserSettings");
|
|
22
|
+
const _env = require("../env");
|
|
23
|
+
function _interop_require_default(obj) {
|
|
24
|
+
return obj && obj.__esModule ? obj : {
|
|
25
|
+
default: obj
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const debug = require('debug')('expo:telemetry');
|
|
29
|
+
class Telemetry {
|
|
30
|
+
constructor({ anonymousId = (0, _UserSettings.getAnonymousId)(), sessionId = _nodecrypto().default.randomUUID(), userId, strategy = 'detached' } = {}){
|
|
31
|
+
this.context = (0, _context.createContext)();
|
|
32
|
+
this.client = new _FetchDetachedClient.FetchDetachedClient();
|
|
33
|
+
/** A list of all events, recorded before the telemetry was fully initialized */ this.earlyRecords = [];
|
|
34
|
+
this.actor = {
|
|
35
|
+
anonymousId,
|
|
36
|
+
sessionId
|
|
37
|
+
};
|
|
38
|
+
this.setStrategy(_env.env.EXPO_NO_TELEMETRY_DETACH ? 'debug' : strategy);
|
|
39
|
+
if (userId) {
|
|
40
|
+
this.initialize({
|
|
41
|
+
userId
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
get strategy() {
|
|
46
|
+
return this.client.strategy;
|
|
47
|
+
}
|
|
48
|
+
setStrategy(strategy) {
|
|
49
|
+
// Abort when client is already using the correct strategy
|
|
50
|
+
if (this.client.strategy === strategy) return;
|
|
51
|
+
// Abort when debugging the telemetry
|
|
52
|
+
if (_env.env.EXPO_NO_TELEMETRY_DETACH && strategy !== 'debug') return;
|
|
53
|
+
debug('Switching strategy from %s to %s', this.client.strategy, strategy);
|
|
54
|
+
// Load and instantiate the correct client, based on strategy
|
|
55
|
+
const client = createClientFromStrategy(strategy);
|
|
56
|
+
// Replace the client, and re-record any pending records
|
|
57
|
+
this.client.abort().forEach((record)=>client.record([
|
|
58
|
+
record
|
|
59
|
+
]));
|
|
60
|
+
this.client = client;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
get isInitialized() {
|
|
64
|
+
return this.actor.userHash !== undefined;
|
|
65
|
+
}
|
|
66
|
+
initialize({ userId }) {
|
|
67
|
+
this.actor.userHash = userId ? hashUserId(userId) : null;
|
|
68
|
+
this.flushEarlyRecords();
|
|
69
|
+
}
|
|
70
|
+
flushEarlyRecords() {
|
|
71
|
+
if (this.earlyRecords.length) {
|
|
72
|
+
this.recordInternal(this.earlyRecords);
|
|
73
|
+
this.earlyRecords = [];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
recordInternal(records) {
|
|
77
|
+
return this.client.record(records.map((record)=>({
|
|
78
|
+
...record,
|
|
79
|
+
type: 'track',
|
|
80
|
+
sentAt: new Date(),
|
|
81
|
+
messageId: createMessageId(record),
|
|
82
|
+
anonymousId: this.actor.anonymousId,
|
|
83
|
+
userHash: this.actor.userHash,
|
|
84
|
+
context: {
|
|
85
|
+
...this.context,
|
|
86
|
+
sessionId: this.actor.sessionId,
|
|
87
|
+
client: {
|
|
88
|
+
mode: this.client.strategy
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
})));
|
|
92
|
+
}
|
|
93
|
+
record(record) {
|
|
94
|
+
const records = Array.isArray(record) ? record : [
|
|
95
|
+
record
|
|
96
|
+
];
|
|
97
|
+
debug('Recording %d event(s)', records.length);
|
|
98
|
+
if (!this.isInitialized) {
|
|
99
|
+
this.earlyRecords.push(...records);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
return this.recordInternal(records);
|
|
103
|
+
}
|
|
104
|
+
flush() {
|
|
105
|
+
debug('Flushing events...');
|
|
106
|
+
this.flushEarlyRecords();
|
|
107
|
+
return this.client.flush();
|
|
108
|
+
}
|
|
109
|
+
flushOnExit() {
|
|
110
|
+
this.setStrategy('detached');
|
|
111
|
+
this.flushEarlyRecords();
|
|
112
|
+
return this.client.flush();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function createClientFromStrategy(strategy) {
|
|
116
|
+
// When debugging, use the actual Rudderstack client, but lazy load it
|
|
117
|
+
if (_env.env.EXPO_NO_TELEMETRY_DETACH || strategy === 'debug' || strategy === 'instant') {
|
|
118
|
+
return new _FetchClient.FetchClient();
|
|
119
|
+
}
|
|
120
|
+
return new _FetchDetachedClient.FetchDetachedClient();
|
|
121
|
+
}
|
|
122
|
+
/** Generate a unique message ID using a random hash and UUID */ function createMessageId(record) {
|
|
123
|
+
const uuid = _nodecrypto().default.randomUUID();
|
|
124
|
+
const md5 = _nodecrypto().default.createHash('md5').update(JSON.stringify(record)).digest('hex');
|
|
125
|
+
return `node-${md5}-${uuid}`;
|
|
126
|
+
}
|
|
127
|
+
/** Hash the user identifier to make it untracable */ function hashUserId(userId) {
|
|
128
|
+
return _nodecrypto().default.createHash('sha256').update(userId).digest('hex');
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=Telemetry.js.map
|
|
@@ -0,0 +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","constructor","anonymousId","getAnonymousId","sessionId","crypto","randomUUID","userId","strategy","context","createContext","client","FetchDetachedClient","earlyRecords","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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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "FetchClient", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return FetchClient;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _nodebuffer() {
|
|
12
|
+
const data = require("node:buffer");
|
|
13
|
+
_nodebuffer = function() {
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
const _fetch = require("../../fetch");
|
|
19
|
+
const _constants = require("../utils/constants");
|
|
20
|
+
class FetchClient {
|
|
21
|
+
constructor({ fetch = createTelemetryFetch(), url = _constants.TELEMETRY_ENDPOINT, target = _constants.TELEMETRY_TARGET } = {}){
|
|
22
|
+
/** This client should be used for long-running commands */ this.strategy = 'instant';
|
|
23
|
+
/** All records that are queued and being sent */ this.entries = new Set();
|
|
24
|
+
this.fetch = fetch;
|
|
25
|
+
this.url = url;
|
|
26
|
+
this.headers = {
|
|
27
|
+
accept: 'application/json',
|
|
28
|
+
'content-type': 'application/json',
|
|
29
|
+
'user-agent': `expo-cli/${"55.0.16"}`,
|
|
30
|
+
authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
queue(records, controller, request) {
|
|
34
|
+
const entry = mutePromise(request);
|
|
35
|
+
entry.finally(()=>this.entries.delete(entry));
|
|
36
|
+
entry.controller = controller;
|
|
37
|
+
entry.records = records;
|
|
38
|
+
this.entries.add(entry);
|
|
39
|
+
return entry;
|
|
40
|
+
}
|
|
41
|
+
record(record) {
|
|
42
|
+
const records = Array.isArray(record) ? record : [
|
|
43
|
+
record
|
|
44
|
+
];
|
|
45
|
+
if (!records.length) return;
|
|
46
|
+
const controller = new AbortController();
|
|
47
|
+
const body = JSON.stringify({
|
|
48
|
+
sentAt: new Date(),
|
|
49
|
+
batch: records
|
|
50
|
+
});
|
|
51
|
+
return this.queue(records, controller, this.fetch(this.url, {
|
|
52
|
+
body,
|
|
53
|
+
method: 'POST',
|
|
54
|
+
signal: controller.signal,
|
|
55
|
+
headers: this.headers
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
flush() {
|
|
59
|
+
return mutePromise(Promise.all(this.entries));
|
|
60
|
+
}
|
|
61
|
+
abort() {
|
|
62
|
+
const records = [];
|
|
63
|
+
this.entries.forEach((entry)=>{
|
|
64
|
+
try {
|
|
65
|
+
entry.controller.abort();
|
|
66
|
+
records.push(...entry.records);
|
|
67
|
+
} catch {
|
|
68
|
+
// Ignore abort errors
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return records;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function createTelemetryFetch() {
|
|
75
|
+
return async function telemetryFetch(info, init) {
|
|
76
|
+
let error;
|
|
77
|
+
for(let attemptCount = 0; attemptCount < 3; attemptCount++){
|
|
78
|
+
try {
|
|
79
|
+
return await (0, _fetch.fetch)(info, init);
|
|
80
|
+
} catch (_error) {
|
|
81
|
+
error = _error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
throw error;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/** Mute a promise by removing the original return type and hide errors */ function mutePromise(promise) {
|
|
88
|
+
return promise.then(()=>{}, ()=>{});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=FetchClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/FetchClient.ts"],"sourcesContent":["import type { RequestInit } from 'fetch-nodeshim';\nimport { Buffer } from 'node:buffer';\n\nimport { fetch } from '../../fetch';\nimport { TelemetryClient, TelemetryClientStrategy, TelemetryRecordInternal } from '../types';\nimport { TELEMETRY_ENDPOINT, TELEMETRY_TARGET } from '../utils/constants';\n\ntype Fetch = typeof fetch;\n\ntype FetchClientOptions = {\n /** The fetch method for sending events, should handle retries and timeouts */\n fetch?: 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: 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 return async function telemetryFetch(info, init) {\n let error: any;\n for (let attemptCount = 0; attemptCount < 3; attemptCount++) {\n try {\n return await fetch(info, init);\n } catch (_error: any) {\n error = _error;\n }\n }\n throw error;\n };\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","constructor","fetch","createTelemetryFetch","url","TELEMETRY_ENDPOINT","target","TELEMETRY_TARGET","strategy","entries","Set","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","telemetryFetch","info","init","error","attemptCount","_error","promise","then"],"mappings":";;;;+BAuBaA;;;eAAAA;;;;yBAtBU;;;;;;uBAED;2BAE+B;AAkB9C,MAAMA;IAYXC,YAAY,EACVC,QAAQC,sBAAsB,EAC9BC,MAAMC,6BAAkB,EACxBC,SAASC,2BAAgB,EACN,GAAG,CAAC,CAAC,CAAE;QAf5B,yDAAyD,QAChDC,WAAoC;QAO7C,+CAA+C,QACvCC,UAAiC,IAAIC;QAO3C,IAAI,CAACR,KAAK,GAAGA;QACb,IAAI,CAACE,GAAG,GAAGA;QACX,IAAI,CAACO,OAAO,GAAG;YACbC,QAAQ;YACR,gBAAgB;YAChB,cAAc,CAAC,SAAS,EAAEC,QAAQC,GAAG,CAACC,cAAc,EAAE;YACtDC,eAAe,WAAWC,oBAAM,CAACC,IAAI,CAAC,GAAGZ,OAAO,CAAC,CAAC,EAAEa,QAAQ,CAAC;QAC/D;IACF;IAEQC,MACNC,OAAkC,EAClCC,UAA2B,EAC3BC,OAAiC,EACjC;QACA,MAAMC,QAA0BC,YAAYF;QAC5CC,MAAME,OAAO,CAAC,IAAM,IAAI,CAACjB,OAAO,CAACkB,MAAM,CAACH;QACxCA,MAAMF,UAAU,GAAGA;QACnBE,MAAMH,OAAO,GAAGA;QAEhB,IAAI,CAACZ,OAAO,CAACmB,GAAG,CAACJ;QAEjB,OAAOA;IACT;IAEAK,OAAOA,MAAiC,EAAE;QACxC,MAAMR,UAAUS,MAAMC,OAAO,CAACF,UAAUA,SAAS;YAACA;SAAO;QAEzD,IAAI,CAACR,QAAQW,MAAM,EAAE;QAErB,MAAMV,aAAa,IAAIW;QACvB,MAAMC,OAAOC,KAAKC,SAAS,CAAC;YAC1BC,QAAQ,IAAIC;YACZC,OAAOlB;QACT;QAEA,OAAO,IAAI,CAACD,KAAK,CACfC,SACAC,YACA,IAAI,CAACpB,KAAK,CAAC,IAAI,CAACE,GAAG,EAAE;YACnB8B;YACAM,QAAQ;YACRC,QAAQnB,WAAWmB,MAAM;YACzB9B,SAAS,IAAI,CAACA,OAAO;QACvB;IAEJ;IAEA+B,QAAQ;QACN,OAAOjB,YAAYkB,QAAQC,GAAG,CAAC,IAAI,CAACnC,OAAO;IAC7C;IAEAoC,QAAQ;QACN,MAAMxB,UAAqC,EAAE;QAE7C,IAAI,CAACZ,OAAO,CAACqC,OAAO,CAAC,CAACtB;YACpB,IAAI;gBACFA,MAAMF,UAAU,CAACuB,KAAK;gBACtBxB,QAAQ0B,IAAI,IAAIvB,MAAMH,OAAO;YAC/B,EAAE,OAAM;YACN,sBAAsB;YACxB;QACF;QAEA,OAAOA;IACT;AACF;AAEA,SAASlB;IACP,OAAO,eAAe6C,eAAeC,IAAI,EAAEC,IAAI;QAC7C,IAAIC;QACJ,IAAK,IAAIC,eAAe,GAAGA,eAAe,GAAGA,eAAgB;YAC3D,IAAI;gBACF,OAAO,MAAMlD,IAAAA,YAAK,EAAC+C,MAAMC;YAC3B,EAAE,OAAOG,QAAa;gBACpBF,QAAQE;YACV;QACF;QACA,MAAMF;IACR;AACF;AAEA,wEAAwE,GACxE,SAAS1B,YAAY6B,OAAqB;IACxC,OAAOA,QAAQC,IAAI,CACjB,KAAO,GACP,KAAO;AAEX"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "FetchDetachedClient", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return FetchDetachedClient;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _nodechild_process() {
|
|
12
|
+
const data = require("node:child_process");
|
|
13
|
+
_nodechild_process = function() {
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
function _nodefs() {
|
|
19
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
|
|
20
|
+
_nodefs = function() {
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
23
|
+
return data;
|
|
24
|
+
}
|
|
25
|
+
function _nodepath() {
|
|
26
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
27
|
+
_nodepath = function() {
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
30
|
+
return data;
|
|
31
|
+
}
|
|
32
|
+
const _createTempPath = require("../../createTempPath");
|
|
33
|
+
function _interop_require_default(obj) {
|
|
34
|
+
return obj && obj.__esModule ? obj : {
|
|
35
|
+
default: obj
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const debug = require('debug')('expo:telemetry:client:detached');
|
|
39
|
+
class FetchDetachedClient {
|
|
40
|
+
abort() {
|
|
41
|
+
return this.records;
|
|
42
|
+
}
|
|
43
|
+
record(record) {
|
|
44
|
+
this.records.push(...record.map((record)=>({
|
|
45
|
+
...record,
|
|
46
|
+
originalTimestamp: record.sentAt
|
|
47
|
+
})));
|
|
48
|
+
}
|
|
49
|
+
async flush() {
|
|
50
|
+
try {
|
|
51
|
+
if (!this.records.length) {
|
|
52
|
+
return debug('No records to flush, skipping...');
|
|
53
|
+
}
|
|
54
|
+
const file = (0, _createTempPath.createTempFilePath)('expo-telemetry.json');
|
|
55
|
+
const data = JSON.stringify({
|
|
56
|
+
records: this.records
|
|
57
|
+
});
|
|
58
|
+
this.records = [];
|
|
59
|
+
await _nodefs().default.promises.mkdir(_nodepath().default.dirname(file), {
|
|
60
|
+
recursive: true
|
|
61
|
+
});
|
|
62
|
+
await _nodefs().default.promises.writeFile(file, data);
|
|
63
|
+
const child = (0, _nodechild_process().spawn)(process.execPath, [
|
|
64
|
+
require.resolve('./flushFetchDetached'),
|
|
65
|
+
file
|
|
66
|
+
], {
|
|
67
|
+
detached: true,
|
|
68
|
+
windowsHide: true,
|
|
69
|
+
shell: false,
|
|
70
|
+
stdio: 'ignore'
|
|
71
|
+
});
|
|
72
|
+
child.unref();
|
|
73
|
+
} catch (error) {
|
|
74
|
+
// This could fail if any direct or indirect imports change during an upgrade to the `expo` dependency via `npx expo install --fix`,
|
|
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('Exception while initiating detached flush:', error);
|
|
77
|
+
}
|
|
78
|
+
debug('Detached flush started');
|
|
79
|
+
}
|
|
80
|
+
constructor(){
|
|
81
|
+
/** This client should be used for short-lived commands */ this.strategy = 'detached';
|
|
82
|
+
/** All recorded telemetry events */ this.records = [];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=FetchDetachedClient.js.map
|
|
@@ -0,0 +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","abort","records","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","strategy"],"mappings":";;;;+BASaA;;;eAAAA;;;;yBATS;;;;;;;gEACP;;;;;;;gEACE;;;;;;gCAEkB;;;;;;AAGnC,MAAMC,QAAQC,QAAQ,SAAS;AAExB,MAAMF;IAMXG,QAAQ;QACN,OAAO,IAAI,CAACC,OAAO;IACrB;IAEAC,OAAOA,MAAiC,EAAE;QACxC,IAAI,CAACD,OAAO,CAACE,IAAI,IACZD,OAAOE,GAAG,CAAC,CAACF,SAAY,CAAA;gBACzB,GAAGA,MAAM;gBACTG,mBAAmBH,OAAOI,MAAM;YAClC,CAAA;IAEJ;IAEA,MAAMC,QAAQ;QACZ,IAAI;YACF,IAAI,CAAC,IAAI,CAACN,OAAO,CAACO,MAAM,EAAE;gBACxB,OAAOV,MAAM;YACf;YAEA,MAAMW,OAAOC,IAAAA,kCAAkB,EAAC;YAChC,MAAMC,OAAOC,KAAKC,SAAS,CAAC;gBAAEZ,SAAS,IAAI,CAACA,OAAO;YAAC;YAEpD,IAAI,CAACA,OAAO,GAAG,EAAE;YAEjB,MAAMa,iBAAE,CAACC,QAAQ,CAACC,KAAK,CAACC,mBAAI,CAACC,OAAO,CAACT,OAAO;gBAAEU,WAAW;YAAK;YAC9D,MAAML,iBAAE,CAACC,QAAQ,CAACK,SAAS,CAACX,MAAME;YAElC,MAAMU,QAAQC,IAAAA,0BAAK,EAACC,QAAQC,QAAQ,EAAE;gBAACzB,QAAQ0B,OAAO,CAAC;gBAAyBhB;aAAK,EAAE;gBACrFiB,UAAU;gBACVC,aAAa;gBACbC,OAAO;gBACPC,OAAO;YACT;YAEAR,MAAMS,KAAK;QACb,EAAE,OAAOC,OAAO;YACd,oIAAoI;YACpI,mIAAmI;YACnIjC,MAAM,8CAA8CiC;QACtD;QAEAjC,MAAM;IACR;;QA/CA,wDAAwD,QAC/CkC,WAAoC;QAC7C,kCAAkC,QAC1B/B,UAAqC,EAAE;;AA6CjD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _nodefs() {
|
|
6
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:fs"));
|
|
7
|
+
_nodefs = function() {
|
|
8
|
+
return data;
|
|
9
|
+
};
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
const _FetchClient = require("./FetchClient");
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const telemetryFile = process.argv[2];
|
|
19
|
+
flush().catch(()=>_nodefs().default.promises.unlink(telemetryFile)).finally(()=>process.exit(0));
|
|
20
|
+
async function flush() {
|
|
21
|
+
if (!telemetryFile) return;
|
|
22
|
+
let json;
|
|
23
|
+
let data;
|
|
24
|
+
try {
|
|
25
|
+
json = await _nodefs().default.promises.readFile(telemetryFile, 'utf8');
|
|
26
|
+
data = JSON.parse(json);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
if (error.code === 'ENOENT') return;
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
if (data.records.length) {
|
|
32
|
+
const client = new _FetchClient.FetchClient();
|
|
33
|
+
await client.record(data.records);
|
|
34
|
+
await client.flush();
|
|
35
|
+
}
|
|
36
|
+
await _nodefs().default.promises.unlink(telemetryFile);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=flushFetchDetached.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/utils/telemetry/clients/flushFetchDetached.ts"],"sourcesContent":["import fs from 'node:fs';\n\nimport { FetchClient } from './FetchClient';\nimport type { TelemetryRecordInternal } from '../types';\n\nconst telemetryFile = process.argv[2];\n\nflush()\n .catch(() => fs.promises.unlink(telemetryFile))\n .finally(() => process.exit(0));\n\nasync function flush() {\n if (!telemetryFile) return;\n\n let json: string;\n let data: { records: TelemetryRecordInternal[] };\n\n try {\n json = await fs.promises.readFile(telemetryFile, 'utf8');\n data = JSON.parse(json) as any;\n } catch (error: any) {\n if (error.code === 'ENOENT') return;\n throw error;\n }\n\n if (data.records.length) {\n const client = new FetchClient();\n await client.record(data.records);\n await client.flush();\n }\n\n await fs.promises.unlink(telemetryFile);\n}\n"],"names":["telemetryFile","process","argv","flush","catch","fs","promises","unlink","finally","exit","json","data","readFile","JSON","parse","error","code","records","length","client","FetchClient","record"],"mappings":";;;;;gEAAe;;;;;;6BAEa;;;;;;AAG5B,MAAMA,gBAAgBC,QAAQC,IAAI,CAAC,EAAE;AAErCC,QACGC,KAAK,CAAC,IAAMC,iBAAE,CAACC,QAAQ,CAACC,MAAM,CAACP,gBAC/BQ,OAAO,CAAC,IAAMP,QAAQQ,IAAI,CAAC;AAE9B,eAAeN;IACb,IAAI,CAACH,eAAe;IAEpB,IAAIU;IACJ,IAAIC;IAEJ,IAAI;QACFD,OAAO,MAAML,iBAAE,CAACC,QAAQ,CAACM,QAAQ,CAACZ,eAAe;QACjDW,OAAOE,KAAKC,KAAK,CAACJ;IACpB,EAAE,OAAOK,OAAY;QACnB,IAAIA,MAAMC,IAAI,KAAK,UAAU;QAC7B,MAAMD;IACR;IAEA,IAAIJ,KAAKM,OAAO,CAACC,MAAM,EAAE;QACvB,MAAMC,SAAS,IAAIC,wBAAW;QAC9B,MAAMD,OAAOE,MAAM,CAACV,KAAKM,OAAO;QAChC,MAAME,OAAOhB,KAAK;IACpB;IAEA,MAAME,iBAAE,CAACC,QAAQ,CAACC,MAAM,CAACP;AAC3B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "commandEvent", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return commandEvent;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function commandEvent(commandName) {
|
|
12
|
+
return {
|
|
13
|
+
event: 'action',
|
|
14
|
+
properties: {
|
|
15
|
+
action: `expo ${commandName}`
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/telemetry/events.ts"],"sourcesContent":["import type { TelemetryRecord } from './types';\n\n/** A single command invocation, with the invoked command name */\nexport function commandEvent(commandName: string): TelemetryRecord {\n return {\n event: 'action',\n properties: {\n action: `expo ${commandName}`,\n },\n };\n}\n"],"names":["commandEvent","commandName","event","properties","action"],"mappings":";;;;+BAGgBA;;;eAAAA;;;AAAT,SAASA,aAAaC,WAAmB;IAC9C,OAAO;QACLC,OAAO;QACPC,YAAY;YACVC,QAAQ,CAAC,KAAK,EAAEH,aAAa;QAC/B;IACF;AACF"}
|