@depup/expo__cli 55.0.23-depup.0 → 57.0.9-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/LICENSE +21 -0
- package/README.md +13 -15
- package/build/bin/cli +4 -4
- package/build/bin/cli.map +1 -1
- package/build/src/api/endpoint.js +4 -4
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoSchema.js +3 -3
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/graphql/client.js +26 -14
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/mutations/TunnelMutation.js +31 -0
- package/build/src/api/graphql/mutations/TunnelMutation.js.map +1 -0
- package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -1
- package/build/src/api/rest/cache/ResponseCache.js +5 -5
- package/build/src/api/rest/cache/ResponseCache.js.map +1 -1
- package/build/src/api/rest/client.js +35 -20
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +6 -5
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +28 -15
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +10 -3
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +76 -24
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +4 -4
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +19 -7
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +3 -3
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +7 -4
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/templates.js +4 -6
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/events/index.js +19 -15
- package/build/src/events/index.js.map +1 -1
- package/build/src/events/stream.js +94 -24
- package/build/src/events/stream.js.map +1 -1
- package/build/src/expoUpdatesExports.js +4 -4
- package/build/src/expoUpdatesExports.js.map +1 -1
- package/build/src/export/createMetadataJson.js +2 -1
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +45 -20
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/exportServer.js +1 -1
- package/build/src/export/embed/exportServer.js.map +1 -1
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +7 -6
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +7 -7
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +32 -28
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +5 -5
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportDomComponents.js +5 -5
- package/build/src/export/exportDomComponents.js.map +1 -1
- package/build/src/export/exportHermes.js +23 -13
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +30 -21
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +26 -34
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +3 -3
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +2 -0
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +4 -4
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +6 -6
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +16 -4
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +12 -13
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +3 -3
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/static.js +6 -0
- package/build/src/export/static.js.map +1 -0
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/install/checkPackages.js +1 -28
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +3 -3
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +3 -3
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/install/utils/checkPackagesCompatibility.js +32 -16
- package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -1
- package/build/src/lint/ESlintPrerequisite.js.map +1 -1
- package/build/src/log.js +32 -14
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +25 -5
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +49 -14
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +3 -3
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +3 -2
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +31 -6
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +8 -5
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -1
- package/build/src/prebuild/resolveOptions.js +7 -7
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +10 -5
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +3 -3
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +7 -7
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js.map +1 -1
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +3 -4
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -1
- package/build/src/run/android/resolveInstallApkName.js +48 -1
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +4 -1
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +4 -4
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +163 -23
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +6 -5
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +10 -16
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +2 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +3 -3
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +3 -3
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +16 -13
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +6 -6
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +5 -5
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +7 -7
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +5 -5
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +8 -8
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +5 -3
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +7 -5
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +3 -3
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +4 -4
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +8 -1
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +3 -3
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/appleDestinations.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +3 -3
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +8 -3
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +4 -4
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +9 -4
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +39 -0
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/ios/validateExternalBinary.js.map +1 -1
- package/build/src/run/startBundler.js +4 -0
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/serve/index.js +4 -1
- package/build/src/serve/index.js.map +1 -1
- package/build/src/serve/serveAsync.js +23 -11
- package/build/src/serve/serveAsync.js.map +1 -1
- package/build/src/serve/static.js +69 -0
- package/build/src/serve/static.js.map +1 -0
- package/build/src/start/checkDependenciesOnStart.js +131 -0
- package/build/src/start/checkDependenciesOnStart.js.map +1 -0
- package/build/src/start/detectDevClient.js +3 -3
- package/build/src/start/detectDevClient.js.map +1 -1
- package/build/src/start/doctor/Prerequisite.js +4 -4
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +53 -91
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +3 -3
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +3 -3
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +5 -5
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +5 -5
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/reactNativeTv.js +149 -0
- package/build/src/start/doctor/dependencies/reactNativeTv.js.map +1 -0
- package/build/src/start/doctor/dependencies/resolvePackages.js +4 -4
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +33 -8
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +3 -3
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +3 -3
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +3 -3
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +5 -12
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +2 -0
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/cliExtensionMenuItemHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +6 -6
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/createDevToolsMenuItems.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +49 -6
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +13 -4
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +4 -0
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +13 -4
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +36 -34
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +4 -4
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +5 -5
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +5 -5
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +3 -3
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +20 -6
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/ApplePlatformManager.js +11 -0
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
- package/build/src/start/platforms/ios/devicectl.js +7 -7
- package/build/src/start/platforms/ios/devicectl.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +26 -11
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +5 -5
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +5 -4
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +25 -19
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +3 -3
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +3 -3
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +6 -6
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +4 -3
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/resolveOptions.js +7 -7
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +1 -1
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/AsyncWsTunnel.js +120 -35
- package/build/src/start/server/AsyncWsTunnel.js.map +1 -1
- package/build/src/start/server/Bonjour.js +8 -3
- package/build/src/start/server/Bonjour.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +23 -9
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPlugin.js +63 -3
- package/build/src/start/server/DevToolsPlugin.js.map +1 -1
- package/build/src/start/server/DevToolsPlugin.schema.js +8 -3
- package/build/src/start/server/DevToolsPlugin.schema.js.map +1 -1
- package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js +58 -23
- package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js.map +1 -1
- package/build/src/start/server/DevToolsPluginCliExtensionResults.js +29 -0
- package/build/src/start/server/DevToolsPluginCliExtensionResults.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +20 -6
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginServerHelpers.js +83 -0
- package/build/src/start/server/DevToolsPluginServerHelpers.js.map +1 -0
- package/build/src/start/server/DevelopmentSession.js +41 -24
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/MCP.js +10 -3
- package/build/src/start/server/MCP.js.map +1 -1
- package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js +15 -5
- package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +14 -1
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/createMCPDevToolsExtensionSchema.js +18 -4
- package/build/src/start/server/createMCPDevToolsExtensionSchema.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +13 -24
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +239 -108
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +67 -16
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +22 -4
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/createExpoAutolinkingResolver.js +25 -12
- package/build/src/start/server/metro/createExpoAutolinkingResolver.js.map +1 -1
- package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -1
- package/build/src/start/server/metro/createFileMap-fork.js +196 -0
- package/build/src/start/server/metro/createFileMap-fork.js.map +1 -0
- package/build/src/start/server/metro/createServerComponentsMiddleware.js +22 -22
- package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/createTypescriptResolver.js +410 -0
- package/build/src/start/server/metro/createTypescriptResolver.js.map +1 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -1
- package/build/src/start/server/metro/debugging/attachAtlas.js +3 -3
- package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -1
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +6 -5
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -1
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +20 -4
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -1
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -1
- package/build/src/start/server/metro/dev-server/compression.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMessageSocket.js +13 -2
- package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -1
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +9 -2
- package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js +3 -3
- package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -1
- package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js.map +1 -1
- package/build/src/start/server/metro/externals.js +4 -4
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +3 -3
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +3 -3
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +141 -57
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -1
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +4 -4
- package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js +3 -3
- package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +16 -13
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +3 -3
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +48 -16
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/resolveLoader.js +3 -3
- package/build/src/start/server/metro/resolveLoader.js.map +1 -1
- package/build/src/start/server/metro/router.js +23 -14
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +13 -10
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +29 -13
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +36 -34
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroErrorReportingResolver.js +53 -30
- package/build/src/start/server/metro/withMetroErrorReportingResolver.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +187 -126
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +4 -4
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +3 -3
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +60 -9
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DomComponentsMiddleware.js +16 -12
- package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +6 -4
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +3 -3
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +13 -8
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +15 -6
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/OpenMiddleware.js +150 -0
- package/build/src/start/server/middleware/OpenMiddleware.js.map +1 -0
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +13 -4
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +2 -9
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/domPolyfills.js +60 -0
- package/build/src/start/server/middleware/domPolyfills.js.map +1 -0
- package/build/src/start/server/middleware/inspector/JsInspector.js +6 -31
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +14 -24
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +3 -3
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +15 -14
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +3 -3
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/openHandlers.js +157 -0
- package/build/src/start/server/middleware/openHandlers.js.map +1 -0
- package/build/src/start/server/middleware/resolveAssets.js +4 -4
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +9 -7
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -1
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +3 -1
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +13 -36
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +3 -3
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +14 -55
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +5 -5
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +12 -10
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +3 -3
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +4 -4
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +3 -3
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +21 -11
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/types.d.ts +2 -0
- package/build/src/utils/FileNotifier.js +1 -1
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/args.js +5 -5
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +8 -8
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/build-cache-providers/helpers.js +4 -4
- package/build/src/utils/build-cache-providers/helpers.js.map +1 -1
- package/build/src/utils/build-cache-providers/index.js +5 -5
- package/build/src/utils/build-cache-providers/index.js.map +1 -1
- package/build/src/utils/cocoapods.js +5 -5
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +12 -6
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/composeMetroIgnorePatterns.js +69 -0
- package/build/src/utils/composeMetroIgnorePatterns.js.map +1 -0
- package/build/src/utils/createTempPath.js +3 -3
- package/build/src/utils/createTempPath.js.map +1 -1
- package/build/src/utils/delay.js +4 -4
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +21 -11
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +4 -4
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +4 -4
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +39 -13
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +6 -6
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +15 -19
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/expoUpdatesCli.js +5 -5
- package/build/src/utils/expoUpdatesCli.js.map +1 -1
- package/build/src/utils/fetch.js +4 -4
- package/build/src/utils/fetch.js.map +1 -1
- package/build/src/utils/findUp.js +3 -3
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +3 -3
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/freeport.js +3 -3
- package/build/src/utils/freeport.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +3 -5
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +5 -5
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +3 -3
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +3 -3
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/ip.js +4 -4
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/link.js +3 -3
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +10 -10
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +3 -3
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/net.js +23 -4
- package/build/src/utils/net.js.map +1 -1
- package/build/src/utils/nodeEnv.js +6 -6
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/npm.js +10 -9
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +4 -4
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +240 -11
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +4 -4
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +5 -4
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +12 -5
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/progress.js +4 -4
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +11 -11
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/qr.js +5 -4
- package/build/src/utils/qr.js.map +1 -1
- package/build/src/utils/resolveArgs.js +10 -9
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +4 -4
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +8 -7
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/Telemetry.js +5 -0
- package/build/src/utils/telemetry/Telemetry.js.map +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
- package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -1
- package/build/src/utils/telemetry/clients/flushFetchDetached.js +5 -1
- package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -1
- package/build/src/utils/telemetry/index.js +4 -4
- package/build/src/utils/telemetry/index.js.map +1 -1
- package/build/src/utils/telemetry/utils/agent.js +42 -0
- package/build/src/utils/telemetry/utils/agent.js.map +1 -0
- package/build/src/utils/telemetry/utils/constants.js +3 -3
- package/build/src/utils/telemetry/utils/constants.js.map +1 -1
- package/build/src/utils/telemetry/utils/context.js +3 -2
- package/build/src/utils/telemetry/utils/context.js.map +1 -1
- package/build/src/utils/url.js +5 -17
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +12 -12
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +4 -4
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js.map +1 -1
- package/changes.json +18 -26
- package/main.js +3 -0
- package/package.json +88 -80
- package/static/loading-page/index.html +45 -3
- package/static/template/+html.tsx +14 -5
- package/add-module.js +0 -8
- package/build/src/start/server/middleware/inspector/CdpClient.js +0 -81
- package/build/src/start/server/middleware/inspector/CdpClient.js.map +0 -1
- package/build/src/utils/resolveWatchFolders.js +0 -67
- package/build/src/utils/resolveWatchFolders.js.map +0 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +0 -87
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +0 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +0 -84
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +0 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +0 -94
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +0 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +0 -62
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/customize/templates.ts"],"sourcesContent":["import chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/customize/templates.ts"],"sourcesContent":["import chalk from 'chalk';\nimport fs from 'fs';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport type { ExpoChoice } from '../utils/prompts';\nimport prompt from '../utils/prompts';\n\nconst debug = require('debug')('expo:customize:templates');\n\nexport type DestinationResolutionProps = {\n /** Web 'public' folder path (defaults to `/web`). This technically can be changed but shouldn't be. */\n webStaticPath: string;\n /** The Expo Router app directory. */\n appDirPath: string;\n};\n\nfunction importFromExpoWebpackConfig(projectRoot: string, folder: string, moduleId: string) {\n try {\n const filePath = resolveFrom(projectRoot, `@expo/webpack-config/${folder}/${moduleId}`);\n debug(`Using @expo/webpack-config template for \"${moduleId}\": ${filePath}`);\n return filePath;\n } catch {\n debug(`@expo/webpack-config template for \"${moduleId}\" not found, falling back on @expo/cli`);\n }\n return importFromVendor(projectRoot, moduleId);\n}\n\nfunction importFromVendor(projectRoot: string, moduleId: string) {\n try {\n const filePath = resolveFrom(projectRoot, '@expo/cli/static/template/' + moduleId);\n debug(`Using @expo/cli template for \"${moduleId}\": ${filePath}`);\n return filePath;\n } catch {\n // For dev mode, testing and other cases where @expo/cli is not installed\n const filePath = require.resolve(`@expo/cli/static/template/${moduleId}`);\n debug(\n `Local @expo/cli template for \"${moduleId}\" not found, falling back on template relative to @expo/cli: ${filePath}`\n );\n\n return filePath;\n }\n}\n\nexport const TEMPLATES: {\n /** Unique ID for easily indexing. */\n id: string;\n /** Template file path to copy into the project. */\n file: (projectRoot: string) => string;\n /** Output location for the file in the user project. */\n destination: (props: DestinationResolutionProps) => string;\n /** List of dependencies to install in the project. These are used inside of the template file. */\n dependencies: string[];\n\n /** Custom step for configuring the file. Return true to exit early. */\n configureAsync?: (projectRoot: string) => Promise<boolean>;\n}[] = [\n {\n id: 'babel.config.js',\n file: (projectRoot) => importFromVendor(projectRoot, 'babel.config.js'),\n destination: () => 'babel.config.js',\n dependencies: [\n // Even though this is installed in `expo`, we should add it for now.\n 'babel-preset-expo',\n ],\n },\n {\n id: 'metro.config.js',\n dependencies: [],\n destination: () => 'metro.config.js',\n file: (projectRoot) => importFromVendor(projectRoot, 'metro.config.js'),\n },\n {\n // `tsconfig.json` is special-cased and doesn't follow the template.\n id: 'tsconfig.json',\n dependencies: [],\n destination: () => 'tsconfig.json',\n file: () => '',\n configureAsync: async (projectRoot) => {\n const { typescript } = require('./typescript') as typeof import('./typescript');\n await typescript(projectRoot);\n return true;\n },\n },\n {\n id: '.eslintrc.js',\n dependencies: [],\n destination: () => '.eslintrc.js (deprecated)',\n file: (projectRoot) => importFromVendor(projectRoot, '.eslintrc.js'),\n configureAsync: async (projectRoot) => {\n const { ESLintProjectPrerequisite } =\n require('../lint/ESlintPrerequisite') as typeof import('../lint/ESlintPrerequisite.js');\n const prerequisite = new ESLintProjectPrerequisite(projectRoot);\n if (!(await prerequisite.assertAsync())) {\n await prerequisite.bootstrapAsync();\n }\n return false;\n },\n },\n {\n id: 'eslint.config.js',\n dependencies: [],\n destination: () => 'eslint.config.js',\n file: (projectRoot) => importFromVendor(projectRoot, 'eslint.config.js'),\n configureAsync: async (projectRoot) => {\n const { ESLintProjectPrerequisite } =\n require('../lint/ESlintPrerequisite') as typeof import('../lint/ESlintPrerequisite.js');\n const prerequisite = new ESLintProjectPrerequisite(projectRoot);\n if (!(await prerequisite.assertAsync())) {\n await prerequisite.bootstrapAsync();\n }\n return false;\n },\n },\n {\n id: 'index.html',\n file: (projectRoot) => importFromExpoWebpackConfig(projectRoot, 'web-default', 'index.html'),\n // web/index.html\n destination: ({ webStaticPath }) => webStaticPath + '/index.html',\n dependencies: [],\n },\n {\n id: 'webpack.config.js',\n file: (projectRoot) =>\n importFromExpoWebpackConfig(projectRoot, 'template', 'webpack.config.js'),\n destination: () => 'webpack.config.js',\n dependencies: ['@expo/webpack-config'],\n },\n {\n id: '+html.tsx',\n file: (projectRoot) => importFromVendor(projectRoot, '+html.tsx'),\n destination: ({ appDirPath }) => path.join(appDirPath, '+html.tsx'),\n dependencies: [],\n },\n {\n id: '+native-intent.ts',\n file: (projectRoot) => importFromVendor(projectRoot, '+native-intent.ts'),\n destination: ({ appDirPath }) => path.join(appDirPath, '+native-intent.ts'),\n dependencies: [],\n },\n];\n\n/** Generate the prompt choices. */\nfunction createChoices(\n projectRoot: string,\n props: DestinationResolutionProps\n): ExpoChoice<number>[] {\n return TEMPLATES.map((template, index) => {\n const destination = template.destination(props);\n const localProjectFile = path.resolve(projectRoot, destination);\n const exists = fs.existsSync(localProjectFile);\n\n return {\n title: destination,\n value: index,\n description: exists ? chalk.red('This will overwrite the existing file') : undefined,\n };\n });\n}\n\n/** Prompt to select templates to add. */\nexport async function selectTemplatesAsync(projectRoot: string, props: DestinationResolutionProps) {\n const options = createChoices(projectRoot, props);\n\n const { answer } = await prompt({\n type: 'multiselect',\n name: 'answer',\n message: 'Which files would you like to generate?',\n hint: '- Space to select. Return to submit',\n warn: 'File already exists.',\n limit: options.length,\n instructions: '',\n choices: options,\n });\n return answer;\n}\n"],"names":["TEMPLATES","selectTemplatesAsync","debug","require","importFromExpoWebpackConfig","projectRoot","folder","moduleId","filePath","resolveFrom","importFromVendor","resolve","id","file","destination","dependencies","configureAsync","typescript","ESLintProjectPrerequisite","prerequisite","assertAsync","bootstrapAsync","webStaticPath","appDirPath","path","join","createChoices","props","map","template","index","localProjectFile","exists","fs","existsSync","title","value","description","chalk","red","undefined","options","answer","prompt","type","name","message","hint","warn","limit","length","instructions","choices"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/customize/typescript.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\n\nimport { Log } from '../log';\n\nexport async function typescript(projectRoot: string) {\n const { TypeScriptProjectPrerequisite }
|
|
1
|
+
{"version":3,"sources":["../../../src/customize/typescript.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\n\nimport { Log } from '../log';\n\nexport async function typescript(projectRoot: string) {\n const { TypeScriptProjectPrerequisite } =\n await import('../start/doctor/typescript/TypeScriptProjectPrerequisite.js');\n const { MetroBundlerDevServer } = await import('../start/server/metro/MetroBundlerDevServer.js');\n const { getPlatformBundlers } = await import('../start/server/platformBundlers.js');\n\n try {\n await new TypeScriptProjectPrerequisite(projectRoot).bootstrapAsync();\n } catch (error: any) {\n // Ensure the process doesn't fail if the TypeScript check fails.\n // This could happen during the install.\n Log.log();\n Log.exception(error);\n return;\n }\n\n const { exp } = getConfig(projectRoot, { skipSDKVersionRequirement: true });\n await new MetroBundlerDevServer(projectRoot, getPlatformBundlers(projectRoot, exp), {\n isDevClient: true,\n }).startTypeScriptServices();\n}\n"],"names":["typescript","projectRoot","TypeScriptProjectPrerequisite","MetroBundlerDevServer","getPlatformBundlers","bootstrapAsync","error","Log","log","exception","exp","getConfig","skipSDKVersionRequirement","isDevClient","startTypeScriptServices"],"mappings":";;;;+BAIsBA;;;eAAAA;;;;yBAJI;;;;;;qBAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,eAAeA,WAAWC,WAAmB;IAClD,MAAM,EAAEC,6BAA6B,EAAE,GACrC,MAAM,mEAAA,QAAO;IACf,MAAM,EAAEC,qBAAqB,EAAE,GAAG,MAAM,mEAAA,QAAO;IAC/C,MAAM,EAAEC,mBAAmB,EAAE,GAAG,MAAM,mEAAA,QAAO;IAE7C,IAAI;QACF,MAAM,IAAIF,8BAA8BD,aAAaI,cAAc;IACrE,EAAE,OAAOC,OAAY;QACnB,iEAAiE;QACjE,wCAAwC;QACxCC,QAAG,CAACC,GAAG;QACPD,QAAG,CAACE,SAAS,CAACH;QACd;IACF;IAEA,MAAM,EAAEI,GAAG,EAAE,GAAGC,IAAAA,mBAAS,EAACV,aAAa;QAAEW,2BAA2B;IAAK;IACzE,MAAM,IAAIT,sBAAsBF,aAAaG,oBAAoBH,aAAaS,MAAM;QAClFG,aAAa;IACf,GAAGC,uBAAuB;AAC5B"}
|
|
@@ -5,23 +5,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
function _export(target, all) {
|
|
6
6
|
for(var name in all)Object.defineProperty(target, name, {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: all
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
events
|
|
12
|
+
get events () {
|
|
13
13
|
return events;
|
|
14
14
|
},
|
|
15
|
-
|
|
15
|
+
get getLogFile () {
|
|
16
|
+
return getLogFile;
|
|
17
|
+
},
|
|
18
|
+
get getWellKnownTemporaryLogFile () {
|
|
19
|
+
return getWellKnownTemporaryLogFile;
|
|
20
|
+
},
|
|
21
|
+
get installEventLogger () {
|
|
16
22
|
return installEventLogger;
|
|
17
23
|
},
|
|
18
|
-
isEventLoggerActive
|
|
24
|
+
get isEventLoggerActive () {
|
|
19
25
|
return isEventLoggerActive;
|
|
20
26
|
},
|
|
21
|
-
rootEvent
|
|
27
|
+
get rootEvent () {
|
|
22
28
|
return rootEvent;
|
|
23
29
|
},
|
|
24
|
-
shouldReduceLogs
|
|
30
|
+
get shouldReduceLogs () {
|
|
25
31
|
return shouldReduceLogs;
|
|
26
32
|
}
|
|
27
33
|
});
|
|
@@ -70,10 +76,14 @@ function getInitMetadata() {
|
|
|
70
76
|
return {
|
|
71
77
|
format: 'v0-jsonl',
|
|
72
78
|
// Version is added in the build script.
|
|
73
|
-
version: "
|
|
79
|
+
version: "57.0.9" ?? 'UNVERSIONED'
|
|
74
80
|
};
|
|
75
81
|
}
|
|
82
|
+
function getWellKnownTemporaryLogFile(projectRoot, command) {
|
|
83
|
+
return _nodepath().default.join(projectRoot, '.expo', 'dev', 'logs', `${command}.log`);
|
|
84
|
+
}
|
|
76
85
|
function installEventLogger(env = process.env.LOG_EVENTS) {
|
|
86
|
+
if (logStream) return;
|
|
77
87
|
const eventLogDestination = parseLogTarget(env);
|
|
78
88
|
if (eventLogDestination) {
|
|
79
89
|
if (eventLogDestination === 1) {
|
|
@@ -96,18 +106,12 @@ function installEventLogger(env = process.env.LOG_EVENTS) {
|
|
|
96
106
|
}
|
|
97
107
|
}
|
|
98
108
|
const isEventLoggerActive = ()=>!!(logStream == null ? void 0 : logStream.writable);
|
|
109
|
+
const getLogFile = ()=>(logStream == null ? void 0 : logStream.file) ?? undefined;
|
|
99
110
|
const shouldReduceLogs = ()=>!!logStream && _env.env.EXPO_UNSTABLE_HEADLESS;
|
|
100
111
|
const events = (category, _fn)=>{
|
|
101
112
|
function log(event, data) {
|
|
102
113
|
if (logStream) {
|
|
103
|
-
|
|
104
|
-
const _t = Date.now();
|
|
105
|
-
const payload = JSON.stringify({
|
|
106
|
-
_e,
|
|
107
|
-
_t,
|
|
108
|
-
...data
|
|
109
|
-
});
|
|
110
|
-
logStream._write(payload + '\n');
|
|
114
|
+
(0, _stream.writeEvent)(logStream, category, event, data);
|
|
111
115
|
}
|
|
112
116
|
}
|
|
113
117
|
log.category = category;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/events/index.ts"],"sourcesContent":["import { Console } from 'node:console';\nimport path from 'node:path';\n\nimport type { EventBuilder, EventLoggerBuilder, EventShape } from './builder';\nimport { LogStream } from './stream';\nimport { env } from '../utils/env';\n\ninterface InitMetadata {\n format: 'v0-jsonl' | (string & {});\n version: string;\n}\n\nlet logPath = process.cwd();\nlet logStream: LogStream | undefined;\n\nfunction parseLogTarget(env: string | undefined) {\n let logDestination: string | number | undefined;\n if (env) {\n const fd = parseInt(env, 10);\n if (fd > 0 && Number.isSafeInteger(fd)) {\n logDestination = fd;\n } else {\n try {\n const parsedPath = path.parse(env);\n logDestination = path.format(parsedPath);\n logPath = parsedPath.dir;\n } catch {\n logDestination = undefined;\n }\n }\n }\n return logDestination;\n}\n\nfunction getInitMetadata(): InitMetadata {\n return {\n format: 'v0-jsonl',\n // Version is added in the build script.\n version: process.env.__EXPO_VERSION ?? 'UNVERSIONED',\n };\n}\n\n/** Activates the event logger
|
|
1
|
+
{"version":3,"sources":["../../../src/events/index.ts"],"sourcesContent":["import { Console } from 'node:console';\nimport path from 'node:path';\n\nimport type { EventBuilder, EventLoggerBuilder, EventShape } from './builder';\nimport { LogStream, writeEvent } from './stream';\nimport { env } from '../utils/env';\n\ninterface InitMetadata {\n format: 'v0-jsonl' | (string & {});\n version: string;\n}\n\nlet logPath = process.cwd();\nlet logStream: LogStream | undefined;\n\nfunction parseLogTarget(env: string | undefined) {\n let logDestination: string | number | undefined;\n if (env) {\n const fd = parseInt(env, 10);\n if (fd > 0 && Number.isSafeInteger(fd)) {\n logDestination = fd;\n } else {\n try {\n const parsedPath = path.parse(env);\n logDestination = path.format(parsedPath);\n logPath = parsedPath.dir;\n } catch {\n logDestination = undefined;\n }\n }\n }\n return logDestination;\n}\n\nfunction getInitMetadata(): InitMetadata {\n return {\n format: 'v0-jsonl',\n // Version is added in the build script.\n version: process.env.__EXPO_VERSION ?? 'UNVERSIONED',\n };\n}\n\nexport function getWellKnownTemporaryLogFile(projectRoot: string, command: string): string {\n return path.join(projectRoot, '.expo', 'dev', 'logs', `${command}.log`);\n}\n\n/** Activates the event logger.\n *\n * Accepts either a log target string (file path, fd number, or `$LOG_EVENTS`),\n * or a `projectRoot` + `command` pair to log to `.expo/dev/logs/<command>.log`.\n * Subsequent calls are no-ops — the first activated destination wins.\n */\nexport function installEventLogger(env: string | undefined = process.env.LOG_EVENTS) {\n if (logStream) return;\n const eventLogDestination = parseLogTarget(env);\n if (eventLogDestination) {\n if (eventLogDestination === 1) {\n // Reuse Node's existing stdio streams so redirected or piped terminals don't\n // attempt TTY-only initialization when LOG_EVENTS swaps console output.\n const output = process.stderr;\n Object.defineProperty(process, 'stdout', { get: () => output });\n globalThis.console = new Console(output, output);\n } else if (eventLogDestination === 2) {\n const output = process.stdout;\n Object.defineProperty(process, 'stderr', { get: () => output });\n globalThis.console = new Console(output, output);\n }\n logStream = new LogStream(eventLogDestination);\n rootEvent('init', getInitMetadata());\n }\n}\n\n/** Returns whether the event logger is active */\nexport const isEventLoggerActive = () => !!logStream?.writable;\n\n/** Returns the file path of the active event log, if any */\nexport const getLogFile = () => logStream?.file ?? undefined;\n\n/** Whether logs shown in the terminal should be reduced.\n * @remarks\n * We indicate that we're in an automated tool (e.g. E2E tests) with `EXPO_UNSTABLE_HEADLESS`.\n * If the event logger is activate and we're running in a headless tool, we should reduce\n * interactive or noisy logs, in favour of the event logger.\n */\nexport const shouldReduceLogs = () => !!logStream && env.EXPO_UNSTABLE_HEADLESS;\n\n/** Used to create an event logger for structured JSONL logs activated with the `LOG_EVENTS` environment variable.\n *\n * @remarks\n * Structured logs are streamed to a JSONL output file or file descriptor, and are meant for automated tooling\n * or normal usage to document what happened during a user session. When creating a module that outputs errors,\n * events, or captures what the user was doing, create a new event logger category for them and add structured\n * log events.\n * For example, `../start/server/metro/MetroTerminalReporter` captures most of Metro's logged events.\n * Structured JSONL logs don't have a large performance impact, unlike `DEBUG` logs, and are easily parseable\n * and filterable, including by wrapper processes.\n *\n * After adding a new event category, don't forget to add it to `./types.ts` to collect all event shape types\n * in one place.\n *\n * @example\n * ```ts\n * export const event = events('test', (t) => [\n * t.event<'my_event', {\n * myValue: string | null;\n * }>(),\n * ]);\n *\n * event('my_event', { myValue: 'test' });\n * ```\n *\n * This will log a `{ _e: 'test:my_event', _t: 0, myValue: 'test' }` entry in the event log.\n */\nexport const events: EventLoggerBuilder = ((\n category: string,\n _fn: (builder: EventBuilder) => readonly EventShape<string>[]\n) => {\n function log(event: string, data: any) {\n if (logStream) {\n writeEvent(logStream, category, event, data);\n }\n }\n log.category = category;\n\n log.path = function relativePath(target: string | undefined | null): string | null {\n try {\n return target != null && path.isAbsolute(target)\n ? path.relative(logPath, target).replace(/\\\\/, '/') || '.'\n : (target ?? null);\n } catch {\n return target || null;\n }\n };\n\n return log;\n}) as EventLoggerBuilder;\n\n// These are built-in events: We choose an ambiguous name on purpose,\n// since we don't assume this implementation will necessarily only be in `@expo/cli`\nexport const rootEvent = events('root', (t) => [t.event<'init', InitMetadata>()]);\n\nexport type { EventLogger } from './builder';\n"],"names":["events","getLogFile","getWellKnownTemporaryLogFile","installEventLogger","isEventLoggerActive","rootEvent","shouldReduceLogs","logPath","process","cwd","logStream","parseLogTarget","env","logDestination","fd","parseInt","Number","isSafeInteger","parsedPath","path","parse","format","dir","undefined","getInitMetadata","version","__EXPO_VERSION","projectRoot","command","join","LOG_EVENTS","eventLogDestination","output","stderr","Object","defineProperty","get","globalThis","console","Console","stdout","LogStream","writable","file","EXPO_UNSTABLE_HEADLESS","category","_fn","log","event","data","writeEvent","relativePath","target","isAbsolute","relative","replace","t"],"mappings":";;;;;;;;;;;QAiHaA;eAAAA;;QArCAC;eAAAA;;QAlCGC;eAAAA;;QAUAC;eAAAA;;QAqBHC;eAAAA;;QAkEAC;eAAAA;;QAvDAC;eAAAA;;;;yBApFW;;;;;;;gEACP;;;;;;wBAGqB;qBAClB;;;;;;AAOpB,IAAIC,UAAUC,QAAQC,GAAG;AACzB,IAAIC;AAEJ,SAASC,eAAeC,GAAuB;IAC7C,IAAIC;IACJ,IAAID,KAAK;QACP,MAAME,KAAKC,SAASH,KAAK;QACzB,IAAIE,KAAK,KAAKE,OAAOC,aAAa,CAACH,KAAK;YACtCD,iBAAiBC;QACnB,OAAO;YACL,IAAI;gBACF,MAAMI,aAAaC,mBAAI,CAACC,KAAK,CAACR;gBAC9BC,iBAAiBM,mBAAI,CAACE,MAAM,CAACH;gBAC7BX,UAAUW,WAAWI,GAAG;YAC1B,EAAE,OAAM;gBACNT,iBAAiBU;YACnB;QACF;IACF;IACA,OAAOV;AACT;AAEA,SAASW;IACP,OAAO;QACLH,QAAQ;QACR,wCAAwC;QACxCI,SAASjB,QAAQI,GAAG,CAACc,cAAc,IAAI;IACzC;AACF;AAEO,SAASxB,6BAA6ByB,WAAmB,EAAEC,OAAe;IAC/E,OAAOT,mBAAI,CAACU,IAAI,CAACF,aAAa,SAAS,OAAO,QAAQ,GAAGC,QAAQ,IAAI,CAAC;AACxE;AAQO,SAASzB,mBAAmBS,MAA0BJ,QAAQI,GAAG,CAACkB,UAAU;IACjF,IAAIpB,WAAW;IACf,MAAMqB,sBAAsBpB,eAAeC;IAC3C,IAAImB,qBAAqB;QACvB,IAAIA,wBAAwB,GAAG;YAC7B,6EAA6E;YAC7E,wEAAwE;YACxE,MAAMC,SAASxB,QAAQyB,MAAM;YAC7BC,OAAOC,cAAc,CAAC3B,SAAS,UAAU;gBAAE4B,KAAK,IAAMJ;YAAO;YAC7DK,WAAWC,OAAO,GAAG,IAAIC,CAAAA,cAAM,SAAC,CAACP,QAAQA;QAC3C,OAAO,IAAID,wBAAwB,GAAG;YACpC,MAAMC,SAASxB,QAAQgC,MAAM;YAC7BN,OAAOC,cAAc,CAAC3B,SAAS,UAAU;gBAAE4B,KAAK,IAAMJ;YAAO;YAC7DK,WAAWC,OAAO,GAAG,IAAIC,CAAAA,cAAM,SAAC,CAACP,QAAQA;QAC3C;QACAtB,YAAY,IAAI+B,iBAAS,CAACV;QAC1B1B,UAAU,QAAQmB;IACpB;AACF;AAGO,MAAMpB,sBAAsB,IAAM,CAAC,EAACM,6BAAAA,UAAWgC,QAAQ;AAGvD,MAAMzC,aAAa,IAAMS,CAAAA,6BAAAA,UAAWiC,IAAI,KAAIpB;AAQ5C,MAAMjB,mBAAmB,IAAM,CAAC,CAACI,aAAaE,QAAG,CAACgC,sBAAsB;AA6BxE,MAAM5C,SAA8B,CACzC6C,UACAC;IAEA,SAASC,IAAIC,KAAa,EAAEC,IAAS;QACnC,IAAIvC,WAAW;YACbwC,IAAAA,kBAAU,EAACxC,WAAWmC,UAAUG,OAAOC;QACzC;IACF;IACAF,IAAIF,QAAQ,GAAGA;IAEfE,IAAI5B,IAAI,GAAG,SAASgC,aAAaC,MAAiC;QAChE,IAAI;YACF,OAAOA,UAAU,QAAQjC,mBAAI,CAACkC,UAAU,CAACD,UACrCjC,mBAAI,CAACmC,QAAQ,CAAC/C,SAAS6C,QAAQG,OAAO,CAAC,MAAM,QAAQ,MACpDH,UAAU;QACjB,EAAE,OAAM;YACN,OAAOA,UAAU;QACnB;IACF;IAEA,OAAOL;AACT;AAIO,MAAM1C,YAAYL,OAAO,QAAQ,CAACwD,IAAM;QAACA,EAAER,KAAK;KAAyB"}
|
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get LogStream () {
|
|
8
13
|
return LogStream;
|
|
14
|
+
},
|
|
15
|
+
get writeEvent () {
|
|
16
|
+
return writeEvent;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
11
19
|
function _nodebuffer() {
|
|
@@ -43,6 +51,12 @@ function _interop_require_default(obj) {
|
|
|
43
51
|
}
|
|
44
52
|
const BUSY_WRITE_TIMEOUT = 100;
|
|
45
53
|
const HIGH_WATER_MARK = 16387; /*16KB*/
|
|
54
|
+
function writeEvent(dest, category, kind, payload) {
|
|
55
|
+
const timestamp = Date.now();
|
|
56
|
+
const rest = JSON.stringify(payload).slice(1);
|
|
57
|
+
const line = rest.length > 1 ? `{"_e":"${category}:${kind}","_t":${timestamp},${rest}\n` : `{"_e":"${category}:${kind}","_t":${timestamp}}\n`;
|
|
58
|
+
dest._writeln(line);
|
|
59
|
+
}
|
|
46
60
|
class LogStream extends _nodeevents().EventEmitter {
|
|
47
61
|
#fd;
|
|
48
62
|
#file;
|
|
@@ -54,9 +68,11 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
54
68
|
#output;
|
|
55
69
|
#len;
|
|
56
70
|
#lines;
|
|
71
|
+
#head;
|
|
57
72
|
#partialLine;
|
|
73
|
+
#onRelease;
|
|
58
74
|
constructor(dest){
|
|
59
|
-
super(), this.#fd = -1, this.#file = null, this.#writing = false, this.#ending = false, this.#flushPending = false, this.#destroyed = false, this.#opening = false, this.#output = '', this.#len = 0, this.#lines = [], this.#partialLine = 0;
|
|
75
|
+
super(), this.#fd = -1, this.#file = null, this.#writing = false, this.#ending = false, this.#flushPending = false, this.#destroyed = false, this.#opening = false, this.#output = '', this.#len = 0, this.#lines = [], this.#head = 0, this.#partialLine = 0, this.#onRelease = (err, written)=>this.#release(err, written);
|
|
60
76
|
if (typeof dest === 'number') {
|
|
61
77
|
_nodefs().default.fsyncSync(dest);
|
|
62
78
|
this.#fd = dest;
|
|
@@ -87,23 +103,43 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
87
103
|
}
|
|
88
104
|
} else {
|
|
89
105
|
this.emit('write', written);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const output = _nodebuffer().Buffer.from(this.#output).subarray(written).toString();
|
|
93
|
-
this.#len -= this.#output.length - output.length;
|
|
94
|
-
this.#output = output;
|
|
95
|
-
} else {
|
|
106
|
+
if (written === this.#output.length) {
|
|
107
|
+
// Fast path: complete write (exact for ASCII, the common case for JSONL)
|
|
96
108
|
this.#len -= this.#output.length;
|
|
97
109
|
this.#output = '';
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.#
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
110
|
+
if (this.#lines.length - this.#head > this.#partialLine) {
|
|
111
|
+
this.#writeLine();
|
|
112
|
+
} else if (this.#ending) {
|
|
113
|
+
this.#writing = false;
|
|
114
|
+
this.#close();
|
|
115
|
+
} else {
|
|
116
|
+
this.#writing = false;
|
|
117
|
+
if (this.#flushPending) {
|
|
118
|
+
this.emit('drain');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
104
121
|
} else {
|
|
105
|
-
|
|
106
|
-
|
|
122
|
+
// Multi-byte complete write (written > length) or partial write (written < length)
|
|
123
|
+
const outputLength = _nodebuffer().Buffer.byteLength(this.#output);
|
|
124
|
+
if (outputLength > written) {
|
|
125
|
+
const output = _nodebuffer().Buffer.from(this.#output).toString('utf8', written);
|
|
126
|
+
this.#len -= this.#output.length - output.length;
|
|
127
|
+
this.#output = output;
|
|
128
|
+
} else {
|
|
129
|
+
this.#len -= this.#output.length;
|
|
130
|
+
this.#output = '';
|
|
131
|
+
}
|
|
132
|
+
if (this.#output || this.#lines.length - this.#head > this.#partialLine) {
|
|
133
|
+
this.#writeLine();
|
|
134
|
+
} else if (this.#ending) {
|
|
135
|
+
this.#writing = false;
|
|
136
|
+
this.#close();
|
|
137
|
+
} else {
|
|
138
|
+
this.#writing = false;
|
|
139
|
+
if (this.#flushPending) {
|
|
140
|
+
this.emit('drain');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
107
143
|
}
|
|
108
144
|
}
|
|
109
145
|
}
|
|
@@ -123,7 +159,7 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
123
159
|
this.emit('ready');
|
|
124
160
|
if (this.#destroyed) {
|
|
125
161
|
// do nothing when we're already closing the file
|
|
126
|
-
} else if (!this.writing && this.#lines.length > this.#partialLine || this.#flushPending) {
|
|
162
|
+
} else if (!this.writing && this.#lines.length - this.#head > this.#partialLine || this.#flushPending) {
|
|
127
163
|
this.#writeLine();
|
|
128
164
|
}
|
|
129
165
|
}
|
|
@@ -143,6 +179,7 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
143
179
|
this.#destroyed = true;
|
|
144
180
|
this.#partialLine = 0;
|
|
145
181
|
this.#lines.length = 0;
|
|
182
|
+
this.#head = 0;
|
|
146
183
|
const onClose = (error)=>{
|
|
147
184
|
if (error) {
|
|
148
185
|
this.emit('error', error);
|
|
@@ -162,8 +199,22 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
162
199
|
}
|
|
163
200
|
#writeLine() {
|
|
164
201
|
this.#writing = true;
|
|
165
|
-
this.#output
|
|
166
|
-
|
|
202
|
+
if (!this.#output) {
|
|
203
|
+
const end = this.#lines.length - this.#partialLine;
|
|
204
|
+
if (end > this.#head) {
|
|
205
|
+
this.#output = this.#lines[this.#head++] || '';
|
|
206
|
+
// Batch multiple lines into one write call below HWM, to avoid
|
|
207
|
+
// excessive syscalls after when lines accumulated during a previous write
|
|
208
|
+
while(this.#head < end && this.#output.length < HIGH_WATER_MARK){
|
|
209
|
+
this.#output += this.#lines[this.#head++];
|
|
210
|
+
}
|
|
211
|
+
if (this.#head === this.#lines.length) {
|
|
212
|
+
this.#lines.length = 0;
|
|
213
|
+
this.#head = 0;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
_nodefs().default.write(this.#fd, this.#output, this.#onRelease);
|
|
167
218
|
}
|
|
168
219
|
_end() {
|
|
169
220
|
if (!this.#destroyed && !this.#ending) {
|
|
@@ -171,7 +222,7 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
171
222
|
if (this.#opening) {
|
|
172
223
|
this.once('ready', ()=>this._end());
|
|
173
224
|
} else if (!this.#writing && this.#fd >= 0) {
|
|
174
|
-
if (this.#lines.length > this.#partialLine) {
|
|
225
|
+
if (this.#lines.length - this.#head > this.#partialLine) {
|
|
175
226
|
this.#writeLine();
|
|
176
227
|
} else {
|
|
177
228
|
this.#close();
|
|
@@ -225,7 +276,7 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
225
276
|
this.once('drain', onDrain);
|
|
226
277
|
this.once('error', onError);
|
|
227
278
|
if (!this.#writing) {
|
|
228
|
-
if (this.#lines.length > this.#partialLine || this.#output) {
|
|
279
|
+
if (this.#lines.length - this.#head > this.#partialLine || this.#output) {
|
|
229
280
|
// There are complete lines or remaining output to write
|
|
230
281
|
this.#writeLine();
|
|
231
282
|
} else {
|
|
@@ -235,10 +286,29 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
235
286
|
}
|
|
236
287
|
}
|
|
237
288
|
}
|
|
289
|
+
_writeln(data) {
|
|
290
|
+
this.#len += data.length;
|
|
291
|
+
if (!this.#writing && this.#lines.length === this.#head && !this.#output) {
|
|
292
|
+
// Fast path: When no write is pending, directly write the line
|
|
293
|
+
this.#writing = true;
|
|
294
|
+
this.#output = data;
|
|
295
|
+
_nodefs().default.write(this.#fd, data, this.#onRelease);
|
|
296
|
+
} else {
|
|
297
|
+
this.#lines.push(data);
|
|
298
|
+
if (!this.#writing) {
|
|
299
|
+
this.#writeLine();
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return this.#len < HIGH_WATER_MARK;
|
|
303
|
+
}
|
|
238
304
|
_write(data) {
|
|
239
305
|
if (this.#destroyed) {
|
|
240
306
|
return false;
|
|
241
307
|
}
|
|
308
|
+
// Fast path: For complete lines with no pending partial we can skip the work below
|
|
309
|
+
if (this.#partialLine === 0 && data.charCodeAt(data.length - 1) === 10 /*'\n'*/ ) {
|
|
310
|
+
return this._writeln(data);
|
|
311
|
+
}
|
|
242
312
|
this.#len += data.length;
|
|
243
313
|
let startIdx = 0;
|
|
244
314
|
let endIdx = -1;
|
|
@@ -261,7 +331,7 @@ class LogStream extends _nodeevents().EventEmitter {
|
|
|
261
331
|
}
|
|
262
332
|
this.#partialLine = 1;
|
|
263
333
|
}
|
|
264
|
-
if (!this.#writing && this.#lines.length > this.#partialLine) {
|
|
334
|
+
if (!this.#writing && this.#lines.length - this.#head > this.#partialLine) {
|
|
265
335
|
this.#writeLine();
|
|
266
336
|
}
|
|
267
337
|
return this.#len < HIGH_WATER_MARK;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/events/stream.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\nimport { EventEmitter } from 'node:events';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst BUSY_WRITE_TIMEOUT = 100;\nconst HIGH_WATER_MARK = 16_387; /*16KB*/\n\nexport class LogStream extends EventEmitter implements NodeJS.WritableStream {\n #fd = -1;\n #file: string | null = null;\n\n #writing = false;\n #ending = false;\n #flushPending = false;\n #destroyed = false;\n #opening = false;\n\n #output = '';\n #len = 0;\n #lines: string[] = [];\n #partialLine = 0;\n\n constructor(dest: string | number) {\n super();\n if (typeof dest === 'number') {\n fs.fsyncSync(dest);\n this.#fd = dest;\n process.nextTick(() => this.emit('ready'));\n } else if (typeof dest === 'string') {\n this.#openFile(dest);\n }\n }\n\n get file(): string | null {\n return this.#file;\n }\n\n get fd(): number {\n return this.#fd;\n }\n\n get writing(): boolean {\n return this.#writing;\n }\n\n get writable(): boolean {\n return !this.#destroyed && !this.#ending;\n }\n\n #release(error: NodeJS.ErrnoException | null, written: number) {\n if (error) {\n if (error.code === 'EAGAIN' || error.code === 'EBUSY') {\n setTimeout(() => this.#writeLine(), BUSY_WRITE_TIMEOUT);\n } else {\n this.#writing = false;\n this.emit('error', error);\n }\n } else {\n this.emit('write', written);\n\n const outputLength = Buffer.byteLength(this.#output);\n if (outputLength > written) {\n const output = Buffer.from(this.#output).subarray(written).toString();\n this.#len -= this.#output.length - output.length;\n this.#output = output;\n } else {\n this.#len -= this.#output.length;\n this.#output = '';\n }\n\n if (this.#output || this.#lines.length > this.#partialLine) {\n this.#writeLine();\n } else if (this.#ending) {\n this.#writing = false;\n this.#close();\n } else {\n this.#writing = false;\n this.emit('drain');\n }\n }\n }\n\n #openFile(file: string) {\n this.#opening = true;\n this.#writing = true;\n\n const onOpened = (error: Error | null, fd?: number | null) => {\n if (error) {\n this.#writing = false;\n this.#opening = false;\n this.emit('error', error);\n } else {\n this.#fd = fd!;\n this.#file = file;\n this.#opening = false;\n this.#writing = false;\n this.emit('ready');\n if (this.#destroyed) {\n // do nothing when we're already closing the file\n } else if (\n (!this.writing && this.#lines.length > this.#partialLine) ||\n this.#flushPending\n ) {\n this.#writeLine();\n }\n }\n };\n\n fs.mkdir(path.dirname(file), { recursive: true }, (err) => {\n if (err) return onOpened(err);\n fs.open(file, 'a', 0o666, onOpened);\n });\n }\n\n #close() {\n if (this.#fd === -1) {\n this.once('ready', () => this.#close());\n return;\n }\n\n this.#destroyed = true;\n this.#partialLine = 0;\n this.#lines.length = 0;\n\n const onClose = (error?: NodeJS.ErrnoException | null) => {\n if (error) {\n this.emit('error', error);\n this.emit('close', error);\n } else {\n if (this.#ending && !this.#writing) this.emit('finish');\n this.emit('close');\n }\n };\n\n fsFsync(this.#fd, (error) => {\n if (!error && !isStdFd(this.#fd)) {\n fs.close(this.#fd, onClose);\n } else {\n onClose(); // Error intentionally ignored, assume closed\n }\n });\n }\n\n #writeLine() {\n this.#writing = true;\n this.#output ||= this.#lines.length > this.#partialLine ? this.#lines.shift() || '' : '';\n fs.write(this.#fd, this.#output, (err, written) => this.#release(err, written));\n }\n\n _end() {\n if (!this.#destroyed && !this.#ending) {\n this.#ending = true;\n if (this.#opening) {\n this.once('ready', () => this._end());\n } else if (!this.#writing && this.#fd >= 0) {\n if (this.#lines.length > this.#partialLine) {\n this.#writeLine();\n } else {\n this.#close();\n }\n }\n }\n return this;\n }\n\n end(cb?: () => void): this;\n end(data: string | Uint8Array, cb?: () => void): this;\n end(str: string, encoding?: BufferEncoding, cb?: () => void): this;\n\n end(\n arg1?: Uint8Array | string | (() => void),\n arg2?: BufferEncoding | (() => void),\n arg3?: () => void\n ) {\n const maybeCb = arg3 || arg2 || arg1;\n const input = typeof arg1 !== 'function' ? arg1 : undefined;\n const encoding = typeof arg2 === 'string' ? arg2 : 'utf8';\n const cb = typeof maybeCb === 'function' ? maybeCb : undefined;\n if (typeof input === 'string') {\n this.write(input, encoding);\n } else if (input != null) {\n this.write(input);\n }\n if (cb) this.once('close', cb);\n return this._end();\n }\n\n destroy() {\n if (!this.#destroyed) this.#close();\n }\n\n flush(cb?: (error?: Error | null) => void) {\n if (this.#destroyed) {\n cb?.();\n } else {\n const onDrain = () => {\n if (!this.#destroyed) {\n fsFsync(this.#fd, (error) => {\n this.#flushPending = false;\n if (error?.code === 'EBADF') {\n cb?.(); // If fd is closed, ignore the error\n } else {\n cb?.(error);\n }\n });\n } else {\n this.#flushPending = false;\n cb?.();\n }\n this.off('error', onError);\n };\n\n const onError = (err: Error) => {\n this.#flushPending = false;\n this.off('drain', onDrain);\n cb?.(err);\n };\n\n this.#flushPending = true;\n this.once('drain', onDrain);\n this.once('error', onError);\n\n if (!this.#writing) {\n if (this.#lines.length > this.#partialLine || this.#output) {\n // There are complete lines or remaining output to write\n this.#writeLine();\n } else {\n // Nothing complete to write, emit drain immediately\n process.nextTick(() => this.emit('drain'));\n }\n }\n }\n }\n\n _write(data: string): boolean {\n if (this.#destroyed) {\n return false;\n }\n\n this.#len += data.length;\n\n let startIdx = 0;\n let endIdx = -1;\n while ((endIdx = data.indexOf('\\n', startIdx)) > -1) {\n const line = data.slice(startIdx, endIdx + 1);\n if (this.#partialLine > 0) {\n this.#lines[this.#lines.length - 1] += line;\n } else {\n this.#lines.push(line);\n }\n this.#partialLine = 0;\n startIdx = ++endIdx;\n }\n\n if (startIdx < data.length) {\n const line = data.slice(startIdx);\n if (this.#partialLine > 0) {\n this.#lines[this.#lines.length - 1] += line;\n } else {\n this.#lines.push(data.slice(startIdx));\n }\n this.#partialLine = 1;\n }\n\n if (!this.#writing && this.#lines.length > this.#partialLine) {\n this.#writeLine();\n }\n\n return this.#len < HIGH_WATER_MARK;\n }\n\n write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean;\n write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean;\n\n write(\n input: Uint8Array | string,\n arg2?: BufferEncoding | ((err?: Error | null) => void),\n arg3?: (err?: Error | null) => void\n ): boolean {\n const maybeCb = arg3 || arg2;\n const encoding = typeof arg2 === 'string' ? arg2 : 'utf8';\n const data = typeof input === 'string' ? input : Buffer.from(input).toString(encoding);\n const cb = typeof maybeCb === 'function' ? maybeCb : undefined;\n try {\n return this._write(data);\n } finally {\n cb?.();\n }\n }\n\n [Symbol.dispose]() {\n this.destroy();\n }\n}\n\nconst isStdFd = (fd: number) => {\n switch (fd) {\n case 1:\n case 2:\n case process.stdout.fd:\n case process.stderr.fd:\n return true;\n default:\n return false;\n }\n};\n\nconst fsFsync = (fd: number, cb: (error?: NodeJS.ErrnoException | null) => void) => {\n try {\n fs.fsync(fd, cb);\n } catch (error: any) {\n cb(error);\n }\n};\n"],"names":["LogStream","BUSY_WRITE_TIMEOUT","HIGH_WATER_MARK","EventEmitter","constructor","dest","fs","fsyncSync","process","nextTick","emit","file","fd","writing","writable","error","written","code","setTimeout","outputLength","Buffer","byteLength","output","from","subarray","toString","length","onOpened","mkdir","path","dirname","recursive","err","open","once","onClose","fsFsync","isStdFd","close","shift","write","_end","end","arg1","arg2","arg3","maybeCb","input","undefined","encoding","cb","destroy","flush","onDrain","off","onError","_write","data","startIdx","endIdx","indexOf","line","slice","push","Symbol","dispose","stdout","stderr","fsync"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/events/stream.ts"],"sourcesContent":["import { Buffer } from 'node:buffer';\nimport { EventEmitter } from 'node:events';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nconst BUSY_WRITE_TIMEOUT = 100;\nconst HIGH_WATER_MARK = 16_387; /*16KB*/\n\nexport function writeEvent(dest: LogStream, category: string, kind: string, payload: any) {\n const timestamp = Date.now();\n const rest = JSON.stringify(payload).slice(1);\n const line =\n rest.length > 1\n ? `{\"_e\":\"${category}:${kind}\",\"_t\":${timestamp},${rest}\\n`\n : `{\"_e\":\"${category}:${kind}\",\"_t\":${timestamp}}\\n`;\n dest._writeln(line);\n}\n\nexport class LogStream extends EventEmitter implements NodeJS.WritableStream {\n #fd = -1;\n #file: string | null = null;\n\n #writing = false;\n #ending = false;\n #flushPending = false;\n #destroyed = false;\n #opening = false;\n\n #output = '';\n #len = 0;\n #lines: string[] = [];\n #head = 0;\n #partialLine = 0;\n #onRelease = (err: NodeJS.ErrnoException | null, written: number) => this.#release(err, written);\n\n constructor(dest: string | number) {\n super();\n if (typeof dest === 'number') {\n fs.fsyncSync(dest);\n this.#fd = dest;\n process.nextTick(() => this.emit('ready'));\n } else if (typeof dest === 'string') {\n this.#openFile(dest);\n }\n }\n\n get file(): string | null {\n return this.#file;\n }\n\n get fd(): number {\n return this.#fd;\n }\n\n get writing(): boolean {\n return this.#writing;\n }\n\n get writable(): boolean {\n return !this.#destroyed && !this.#ending;\n }\n\n #release(error: NodeJS.ErrnoException | null, written: number) {\n if (error) {\n if (error.code === 'EAGAIN' || error.code === 'EBUSY') {\n setTimeout(() => this.#writeLine(), BUSY_WRITE_TIMEOUT);\n } else {\n this.#writing = false;\n this.emit('error', error);\n }\n } else {\n this.emit('write', written);\n\n if (written === this.#output.length) {\n // Fast path: complete write (exact for ASCII, the common case for JSONL)\n this.#len -= this.#output.length;\n this.#output = '';\n\n if (this.#lines.length - this.#head > this.#partialLine) {\n this.#writeLine();\n } else if (this.#ending) {\n this.#writing = false;\n this.#close();\n } else {\n this.#writing = false;\n if (this.#flushPending) {\n this.emit('drain');\n }\n }\n } else {\n // Multi-byte complete write (written > length) or partial write (written < length)\n const outputLength = Buffer.byteLength(this.#output);\n if (outputLength > written) {\n const output = Buffer.from(this.#output).toString('utf8', written);\n this.#len -= this.#output.length - output.length;\n this.#output = output;\n } else {\n this.#len -= this.#output.length;\n this.#output = '';\n }\n\n if (this.#output || this.#lines.length - this.#head > this.#partialLine) {\n this.#writeLine();\n } else if (this.#ending) {\n this.#writing = false;\n this.#close();\n } else {\n this.#writing = false;\n if (this.#flushPending) {\n this.emit('drain');\n }\n }\n }\n }\n }\n\n #openFile(file: string) {\n this.#opening = true;\n this.#writing = true;\n\n const onOpened = (error: Error | null, fd?: number | null) => {\n if (error) {\n this.#writing = false;\n this.#opening = false;\n this.emit('error', error);\n } else {\n this.#fd = fd!;\n this.#file = file;\n this.#opening = false;\n this.#writing = false;\n this.emit('ready');\n if (this.#destroyed) {\n // do nothing when we're already closing the file\n } else if (\n (!this.writing && this.#lines.length - this.#head > this.#partialLine) ||\n this.#flushPending\n ) {\n this.#writeLine();\n }\n }\n };\n\n fs.mkdir(path.dirname(file), { recursive: true }, (err) => {\n if (err) return onOpened(err);\n fs.open(file, 'a', 0o666, onOpened);\n });\n }\n\n #close() {\n if (this.#fd === -1) {\n this.once('ready', () => this.#close());\n return;\n }\n\n this.#destroyed = true;\n this.#partialLine = 0;\n this.#lines.length = 0;\n this.#head = 0;\n\n const onClose = (error?: NodeJS.ErrnoException | null) => {\n if (error) {\n this.emit('error', error);\n this.emit('close', error);\n } else {\n if (this.#ending && !this.#writing) this.emit('finish');\n this.emit('close');\n }\n };\n\n fsFsync(this.#fd, (error) => {\n if (!error && !isStdFd(this.#fd)) {\n fs.close(this.#fd, onClose);\n } else {\n onClose(); // Error intentionally ignored, assume closed\n }\n });\n }\n\n #writeLine() {\n this.#writing = true;\n if (!this.#output) {\n const end = this.#lines.length - this.#partialLine;\n if (end > this.#head) {\n this.#output = this.#lines[this.#head++] || '';\n // Batch multiple lines into one write call below HWM, to avoid\n // excessive syscalls after when lines accumulated during a previous write\n while (this.#head < end && this.#output.length < HIGH_WATER_MARK) {\n this.#output += this.#lines[this.#head++];\n }\n if (this.#head === this.#lines.length) {\n this.#lines.length = 0;\n this.#head = 0;\n }\n }\n }\n fs.write(this.#fd, this.#output, this.#onRelease);\n }\n\n _end() {\n if (!this.#destroyed && !this.#ending) {\n this.#ending = true;\n if (this.#opening) {\n this.once('ready', () => this._end());\n } else if (!this.#writing && this.#fd >= 0) {\n if (this.#lines.length - this.#head > this.#partialLine) {\n this.#writeLine();\n } else {\n this.#close();\n }\n }\n }\n return this;\n }\n\n end(cb?: () => void): this;\n end(data: string | Uint8Array, cb?: () => void): this;\n end(str: string, encoding?: BufferEncoding, cb?: () => void): this;\n\n end(\n arg1?: Uint8Array | string | (() => void),\n arg2?: BufferEncoding | (() => void),\n arg3?: () => void\n ) {\n const maybeCb = arg3 || arg2 || arg1;\n const input = typeof arg1 !== 'function' ? arg1 : undefined;\n const encoding = typeof arg2 === 'string' ? arg2 : 'utf8';\n const cb = typeof maybeCb === 'function' ? maybeCb : undefined;\n if (typeof input === 'string') {\n this.write(input, encoding);\n } else if (input != null) {\n this.write(input);\n }\n if (cb) this.once('close', cb);\n return this._end();\n }\n\n destroy() {\n if (!this.#destroyed) this.#close();\n }\n\n flush(cb?: (error?: Error | null) => void) {\n if (this.#destroyed) {\n cb?.();\n } else {\n const onDrain = () => {\n if (!this.#destroyed) {\n fsFsync(this.#fd, (error) => {\n this.#flushPending = false;\n if (error?.code === 'EBADF') {\n cb?.(); // If fd is closed, ignore the error\n } else {\n cb?.(error);\n }\n });\n } else {\n this.#flushPending = false;\n cb?.();\n }\n this.off('error', onError);\n };\n\n const onError = (err: Error) => {\n this.#flushPending = false;\n this.off('drain', onDrain);\n cb?.(err);\n };\n\n this.#flushPending = true;\n this.once('drain', onDrain);\n this.once('error', onError);\n\n if (!this.#writing) {\n if (this.#lines.length - this.#head > this.#partialLine || this.#output) {\n // There are complete lines or remaining output to write\n this.#writeLine();\n } else {\n // Nothing complete to write, emit drain immediately\n process.nextTick(() => this.emit('drain'));\n }\n }\n }\n }\n\n _writeln(data: string): boolean {\n this.#len += data.length;\n if (!this.#writing && this.#lines.length === this.#head && !this.#output) {\n // Fast path: When no write is pending, directly write the line\n this.#writing = true;\n this.#output = data;\n fs.write(this.#fd, data, this.#onRelease);\n } else {\n this.#lines.push(data);\n if (!this.#writing) {\n this.#writeLine();\n }\n }\n return this.#len < HIGH_WATER_MARK;\n }\n\n _write(data: string): boolean {\n if (this.#destroyed) {\n return false;\n }\n\n // Fast path: For complete lines with no pending partial we can skip the work below\n if (this.#partialLine === 0 && data.charCodeAt(data.length - 1) === 10 /*'\\n'*/) {\n return this._writeln(data);\n }\n\n this.#len += data.length;\n\n let startIdx = 0;\n let endIdx = -1;\n while ((endIdx = data.indexOf('\\n', startIdx)) > -1) {\n const line = data.slice(startIdx, endIdx + 1);\n if (this.#partialLine > 0) {\n this.#lines[this.#lines.length - 1] += line;\n } else {\n this.#lines.push(line);\n }\n this.#partialLine = 0;\n startIdx = ++endIdx;\n }\n\n if (startIdx < data.length) {\n const line = data.slice(startIdx);\n if (this.#partialLine > 0) {\n this.#lines[this.#lines.length - 1] += line;\n } else {\n this.#lines.push(data.slice(startIdx));\n }\n this.#partialLine = 1;\n }\n\n if (!this.#writing && this.#lines.length - this.#head > this.#partialLine) {\n this.#writeLine();\n }\n\n return this.#len < HIGH_WATER_MARK;\n }\n\n write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean;\n write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean;\n\n write(\n input: Uint8Array | string,\n arg2?: BufferEncoding | ((err?: Error | null) => void),\n arg3?: (err?: Error | null) => void\n ): boolean {\n const maybeCb = arg3 || arg2;\n const encoding = typeof arg2 === 'string' ? arg2 : 'utf8';\n const data = typeof input === 'string' ? input : Buffer.from(input).toString(encoding);\n const cb = typeof maybeCb === 'function' ? maybeCb : undefined;\n try {\n return this._write(data);\n } finally {\n cb?.();\n }\n }\n\n [Symbol.dispose]() {\n this.destroy();\n }\n}\n\nconst isStdFd = (fd: number) => {\n switch (fd) {\n case 1:\n case 2:\n case process.stdout.fd:\n case process.stderr.fd:\n return true;\n default:\n return false;\n }\n};\n\nconst fsFsync = (fd: number, cb: (error?: NodeJS.ErrnoException | null) => void) => {\n try {\n fs.fsync(fd, cb);\n } catch (error: any) {\n cb(error);\n }\n};\n"],"names":["LogStream","writeEvent","BUSY_WRITE_TIMEOUT","HIGH_WATER_MARK","dest","category","kind","payload","timestamp","Date","now","rest","JSON","stringify","slice","line","length","_writeln","EventEmitter","err","written","fs","fsyncSync","process","nextTick","emit","file","fd","writing","writable","error","code","setTimeout","outputLength","Buffer","byteLength","output","from","toString","onOpened","mkdir","path","dirname","recursive","open","once","onClose","fsFsync","isStdFd","close","end","write","_end","arg1","arg2","arg3","maybeCb","input","undefined","encoding","cb","destroy","flush","onDrain","off","onError","data","push","_write","charCodeAt","startIdx","endIdx","indexOf","Symbol","dispose","stdout","stderr","fsync"],"mappings":"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"}
|
|
@@ -7,17 +7,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
function _export(target, all) {
|
|
8
8
|
for(var name in all)Object.defineProperty(target, name, {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: all
|
|
10
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
13
|
_export(exports, {
|
|
14
|
-
createMetroServerAndBundleRequestAsync
|
|
14
|
+
get createMetroServerAndBundleRequestAsync () {
|
|
15
15
|
return createMetroServerAndBundleRequestAsync;
|
|
16
16
|
},
|
|
17
|
-
drawableFileTypes
|
|
17
|
+
get drawableFileTypes () {
|
|
18
18
|
return _metroAssetLocalPath.drawableFileTypes;
|
|
19
19
|
},
|
|
20
|
-
exportEmbedAssetsAsync
|
|
20
|
+
get exportEmbedAssetsAsync () {
|
|
21
21
|
return _exportEmbedAsync.exportEmbedAssetsAsync;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/expoUpdatesExports.ts"],"sourcesContent":["// NOTE(@kitten): These are currently only used by expo-updates (expo-updates/utols/src/createManifestForBuildAsync)\n// They're re-exported via `expo/internal/cli-unstable-expo-updates-exports` to establish a valid dependency chain\n\nimport { getMetroServerRoot } from '@expo/config/paths';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createMetroServerAndBundleRequestAsync as internal_createMetroServerAndBundleRequestAsync } from './export/embed/exportEmbedAsync';\n\n// NOTE for Expo Maintainers: Do not add to this file. We want to remove this\nexport { drawableFileTypes } from './export/metroAssetLocalPath';\nexport { exportEmbedAssetsAsync } from './export/embed/exportEmbedAsync';\n\n/** Older versions of expo-updates may pass a path relative to the server root. But relative paths are expected to be relative to `projectRoot`, so we turn them into absolute paths */\nfunction fixupServerRelativePath(projectRoot: string, entryFile: string) {\n const serverRoot = getMetroServerRoot(projectRoot);\n if (!path.isAbsolute(entryFile)) {\n let candidate: string;\n if (fs.existsSync((candidate = path.resolve(serverRoot, entryFile)))) {\n entryFile = candidate;\n } else if (\n !entryFile.endsWith('.js') &&\n fs.existsSync((candidate = path.resolve(serverRoot, entryFile + '.js')))\n ) {\n entryFile = candidate;\n }\n }\n return entryFile;\n}\n\nexport const createMetroServerAndBundleRequestAsync: typeof internal_createMetroServerAndBundleRequestAsync =\n async (projectRoot, options) => {\n return await internal_createMetroServerAndBundleRequestAsync(projectRoot, {\n ...options,\n entryFile: fixupServerRelativePath(projectRoot, options.entryFile),\n });\n };\n"],"names":["createMetroServerAndBundleRequestAsync","drawableFileTypes","exportEmbedAssetsAsync","fixupServerRelativePath","projectRoot","entryFile","serverRoot","getMetroServerRoot","path","isAbsolute","candidate","fs","existsSync","resolve","endsWith","options","internal_createMetroServerAndBundleRequestAsync"],"mappings":"AAAA,oHAAoH;AACpH,kHAAkH;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/expoUpdatesExports.ts"],"sourcesContent":["// NOTE(@kitten): These are currently only used by expo-updates (expo-updates/utols/src/createManifestForBuildAsync)\n// They're re-exported via `expo/internal/cli-unstable-expo-updates-exports` to establish a valid dependency chain\n\nimport { getMetroServerRoot } from '@expo/config/paths';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { createMetroServerAndBundleRequestAsync as internal_createMetroServerAndBundleRequestAsync } from './export/embed/exportEmbedAsync';\n\n// NOTE for Expo Maintainers: Do not add to this file. We want to remove this\nexport { drawableFileTypes } from './export/metroAssetLocalPath';\nexport { exportEmbedAssetsAsync } from './export/embed/exportEmbedAsync';\n\n/** Older versions of expo-updates may pass a path relative to the server root. But relative paths are expected to be relative to `projectRoot`, so we turn them into absolute paths */\nfunction fixupServerRelativePath(projectRoot: string, entryFile: string) {\n const serverRoot = getMetroServerRoot(projectRoot);\n if (!path.isAbsolute(entryFile)) {\n let candidate: string;\n if (fs.existsSync((candidate = path.resolve(serverRoot, entryFile)))) {\n entryFile = candidate;\n } else if (\n !entryFile.endsWith('.js') &&\n fs.existsSync((candidate = path.resolve(serverRoot, entryFile + '.js')))\n ) {\n entryFile = candidate;\n }\n }\n return entryFile;\n}\n\nexport const createMetroServerAndBundleRequestAsync: typeof internal_createMetroServerAndBundleRequestAsync =\n async (projectRoot, options) => {\n return await internal_createMetroServerAndBundleRequestAsync(projectRoot, {\n ...options,\n entryFile: fixupServerRelativePath(projectRoot, options.entryFile),\n });\n };\n"],"names":["createMetroServerAndBundleRequestAsync","drawableFileTypes","exportEmbedAssetsAsync","fixupServerRelativePath","projectRoot","entryFile","serverRoot","getMetroServerRoot","path","isAbsolute","candidate","fs","existsSync","resolve","endsWith","options","internal_createMetroServerAndBundleRequestAsync"],"mappings":"AAAA,oHAAoH;AACpH,kHAAkH;;;;;;;;;;;;QA6BrGA;eAAAA;;QApBJC;eAAAA,sCAAiB;;QACjBC;eAAAA,wCAAsB;;;;yBARI;;;;;;;gEACpB;;;;;;;gEACE;;;;;;kCAEyF;qCAGxE;;;;;;AAGlC,qLAAqL,GACrL,SAASC,wBAAwBC,WAAmB,EAAEC,SAAiB;IACrE,MAAMC,aAAaC,IAAAA,2BAAkB,EAACH;IACtC,IAAI,CAACI,mBAAI,CAACC,UAAU,CAACJ,YAAY;QAC/B,IAAIK;QACJ,IAAIC,iBAAE,CAACC,UAAU,CAAEF,YAAYF,mBAAI,CAACK,OAAO,CAACP,YAAYD,aAAc;YACpEA,YAAYK;QACd,OAAO,IACL,CAACL,UAAUS,QAAQ,CAAC,UACpBH,iBAAE,CAACC,UAAU,CAAEF,YAAYF,mBAAI,CAACK,OAAO,CAACP,YAAYD,YAAY,SAChE;YACAA,YAAYK;QACd;IACF;IACA,OAAOL;AACT;AAEO,MAAML,yCACX,OAAOI,aAAaW;IAClB,OAAO,MAAMC,IAAAA,wDAA+C,EAACZ,aAAa;QACxE,GAAGW,OAAO;QACVV,WAAWF,wBAAwBC,aAAaW,QAAQV,SAAS;IACnE;AACF"}
|
|
@@ -26,6 +26,7 @@ function createMetadataJson({ bundles, fileNames, embeddedHashSet, domComponentA
|
|
|
26
26
|
version: 0,
|
|
27
27
|
bundler: 'metro',
|
|
28
28
|
fileMetadata: Object.entries(bundles).reduce((metadata, [platform, bundle])=>{
|
|
29
|
+
var _fileNames_platform;
|
|
29
30
|
if (platform === 'web') return metadata;
|
|
30
31
|
// Collect all of the assets and convert them to the serial format, deduplicating by path.
|
|
31
32
|
const seen = new Set();
|
|
@@ -49,7 +50,7 @@ function createMetadataJson({ bundles, fileNames, embeddedHashSet, domComponentA
|
|
|
49
50
|
[platform]: {
|
|
50
51
|
// Get the filename for each platform's bundle.
|
|
51
52
|
// TODO: Add multi-bundle support to EAS Update!!
|
|
52
|
-
bundle: fileNames[platform][0],
|
|
53
|
+
bundle: (_fileNames_platform = fileNames[platform]) == null ? void 0 : _fileNames_platform[0],
|
|
53
54
|
assets
|
|
54
55
|
}
|
|
55
56
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/export/createMetadataJson.ts"],"sourcesContent":["import path from 'path';\n\nimport type { BundleOutput } from './saveAssets';\n\nexport type BundlePlatform =
|
|
1
|
+
{"version":3,"sources":["../../../src/export/createMetadataJson.ts"],"sourcesContent":["import type { NativePlatform } from '@expo/config';\nimport path from 'path';\n\nimport type { BundleOutput } from './saveAssets';\n\n/** Native platforms that produce a bundle in `metadata.json` (web is handled separately). */\nexport type BundlePlatform = NativePlatform;\n\ntype PlatformMetadataAsset = { path: string; ext: string };\n\nexport type PlatformMetadata = { bundle: string; assets: PlatformMetadataAsset[] };\n\ntype FileMetadata = {\n [key in BundlePlatform]: PlatformMetadata;\n};\n\nexport function createMetadataJson({\n bundles,\n fileNames,\n embeddedHashSet,\n domComponentAssetsMetadata,\n}: {\n bundles: Partial<Record<BundlePlatform, Pick<BundleOutput, 'assets'>>>;\n fileNames: Record<string, string[]>;\n embeddedHashSet?: Set<string>;\n domComponentAssetsMetadata?: Record<string, PlatformMetadataAsset[]>;\n}): {\n version: 0;\n bundler: 'metro';\n fileMetadata: FileMetadata;\n} {\n // Build metadata.json\n return {\n version: 0,\n bundler: 'metro',\n fileMetadata: Object.entries(bundles).reduce<Record<string, Partial<PlatformMetadata>>>(\n (metadata, [platform, bundle]) => {\n if (platform === 'web') return metadata;\n\n // Collect all of the assets and convert them to the serial format, deduplicating by path.\n const seen = new Set<string>();\n const assets = bundle.assets\n .filter((asset) => !embeddedHashSet || !embeddedHashSet.has(asset.hash))\n .map((asset) =>\n // Each asset has multiple hashes which we convert and then flatten.\n asset.fileHashes?.map((hash) => ({\n path: path.join('assets', hash),\n ext: asset.type,\n }))\n )\n .filter(Boolean)\n .flat()\n .filter((a) => {\n if (seen.has(a.path)) return false;\n seen.add(a.path);\n return true;\n });\n\n if (domComponentAssetsMetadata?.[platform] != null) {\n assets.push(...domComponentAssetsMetadata?.[platform]);\n }\n\n return {\n ...metadata,\n [platform]: {\n // Get the filename for each platform's bundle.\n // TODO: Add multi-bundle support to EAS Update!!\n bundle: fileNames[platform]?.[0],\n assets,\n },\n };\n },\n {}\n ) as FileMetadata,\n };\n}\n"],"names":["createMetadataJson","bundles","fileNames","embeddedHashSet","domComponentAssetsMetadata","version","bundler","fileMetadata","Object","entries","reduce","metadata","platform","bundle","seen","Set","assets","filter","asset","has","hash","map","fileHashes","path","join","ext","type","Boolean","flat","a","add","push"],"mappings":";;;;+BAgBgBA;;;eAAAA;;;;gEAfC;;;;;;;;;;;AAeV,SAASA,mBAAmB,EACjCC,OAAO,EACPC,SAAS,EACTC,eAAe,EACfC,0BAA0B,EAM3B;IAKC,sBAAsB;IACtB,OAAO;QACLC,SAAS;QACTC,SAAS;QACTC,cAAcC,OAAOC,OAAO,CAACR,SAASS,MAAM,CAC1C,CAACC,UAAU,CAACC,UAAUC,OAAO;gBA+BfX;YA9BZ,IAAIU,aAAa,OAAO,OAAOD;YAE/B,0FAA0F;YAC1F,MAAMG,OAAO,IAAIC;YACjB,MAAMC,SAASH,OAAOG,MAAM,CACzBC,MAAM,CAAC,CAACC,QAAU,CAACf,mBAAmB,CAACA,gBAAgBgB,GAAG,CAACD,MAAME,IAAI,GACrEC,GAAG,CAAC,CAACH;oBACJ,oEAAoE;gBACpEA;wBAAAA,oBAAAA,MAAMI,UAAU,qBAAhBJ,kBAAkBG,GAAG,CAAC,CAACD,OAAU,CAAA;wBAC/BG,MAAMA,eAAI,CAACC,IAAI,CAAC,UAAUJ;wBAC1BK,KAAKP,MAAMQ,IAAI;oBACjB,CAAA;eAEDT,MAAM,CAACU,SACPC,IAAI,GACJX,MAAM,CAAC,CAACY;gBACP,IAAIf,KAAKK,GAAG,CAACU,EAAEN,IAAI,GAAG,OAAO;gBAC7BT,KAAKgB,GAAG,CAACD,EAAEN,IAAI;gBACf,OAAO;YACT;YAEF,IAAInB,CAAAA,8CAAAA,0BAA4B,CAACQ,SAAS,KAAI,MAAM;gBAClDI,OAAOe,IAAI,IAAI3B,8CAAAA,0BAA4B,CAACQ,SAAS;YACvD;YAEA,OAAO;gBACL,GAAGD,QAAQ;gBACX,CAACC,SAAS,EAAE;oBACV,+CAA+C;oBAC/C,iDAAiD;oBACjDC,MAAM,GAAEX,sBAAAA,SAAS,CAACU,SAAS,qBAAnBV,mBAAqB,CAAC,EAAE;oBAChCc;gBACF;YACF;QACF,GACA,CAAC;IAEL;AACF"}
|