vxrn 1.27.1 → 2.0.0-beta.45.1
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/dist/cli.mjs +212 -261
- package/dist/cli.mjs.map +1 -1
- package/dist/cli.native.js +216 -265
- package/dist/cli.native.js.map +1 -1
- package/dist/config/getAdditionalViteConfig.mjs +33 -62
- package/dist/config/getAdditionalViteConfig.mjs.map +1 -1
- package/dist/config/getAdditionalViteConfig.native.js +33 -62
- package/dist/config/getAdditionalViteConfig.native.js.map +1 -1
- package/dist/config/getBaseViteConfigOnly.mjs +84 -77
- package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
- package/dist/config/getBaseViteConfigOnly.native.js +86 -79
- package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
- package/dist/config/getBaseViteConfigWithPlugins.mjs +6 -4
- package/dist/config/getBaseViteConfigWithPlugins.mjs.map +1 -1
- package/dist/config/getBaseViteConfigWithPlugins.native.js +6 -4
- package/dist/config/getBaseViteConfigWithPlugins.native.js.map +1 -1
- package/dist/config/getBaseVitePlugins.mjs +102 -130
- package/dist/config/getBaseVitePlugins.mjs.map +1 -1
- package/dist/config/getBaseVitePlugins.native.js +123 -152
- package/dist/config/getBaseVitePlugins.native.js.map +1 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.mjs +3 -3
- package/dist/config/getNonCliModeOnlyVitePlugins.mjs.map +1 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.native.js +3 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.native.js.map +1 -1
- package/dist/config/getOptimizeDeps.mjs +138 -42
- package/dist/config/getOptimizeDeps.mjs.map +1 -1
- package/dist/config/getOptimizeDeps.native.js +138 -42
- package/dist/config/getOptimizeDeps.native.js.map +1 -1
- package/dist/config/getOptionsFilled.mjs +48 -52
- package/dist/config/getOptionsFilled.mjs.map +1 -1
- package/dist/config/getOptionsFilled.native.js +51 -55
- package/dist/config/getOptionsFilled.native.js.map +1 -1
- package/dist/config/getReactNativePlugins.mjs +23 -15
- package/dist/config/getReactNativePlugins.mjs.map +1 -1
- package/dist/config/getReactNativePlugins.native.js +25 -16
- package/dist/config/getReactNativePlugins.native.js.map +1 -1
- package/dist/config/getServerOptionsFilled.mjs +33 -35
- package/dist/config/getServerOptionsFilled.mjs.map +1 -1
- package/dist/config/getServerOptionsFilled.native.js +35 -38
- package/dist/config/getServerOptionsFilled.native.js.map +1 -1
- package/dist/config/getViteServerConfig.mjs +34 -45
- package/dist/config/getViteServerConfig.mjs.map +1 -1
- package/dist/config/getViteServerConfig.native.js +35 -46
- package/dist/config/getViteServerConfig.native.js.map +1 -1
- package/dist/config/mergeUserConfig.mjs +50 -28
- package/dist/config/mergeUserConfig.mjs.map +1 -1
- package/dist/config/mergeUserConfig.native.js +60 -38
- package/dist/config/mergeUserConfig.native.js.map +1 -1
- package/dist/constants/defaults.mjs +29 -12
- package/dist/constants/defaults.mjs.map +1 -1
- package/dist/constants/defaults.native.js +29 -12
- package/dist/constants/defaults.native.js.map +1 -1
- package/dist/constants.mjs +41 -6
- package/dist/constants.mjs.map +1 -1
- package/dist/constants.native.js +41 -6
- package/dist/constants.native.js.map +1 -1
- package/dist/exports/build.mjs +218 -270
- package/dist/exports/build.mjs.map +1 -1
- package/dist/exports/build.native.js +226 -283
- package/dist/exports/build.native.js.map +1 -1
- package/dist/exports/clean.mjs +71 -78
- package/dist/exports/clean.mjs.map +1 -1
- package/dist/exports/clean.native.js +76 -90
- package/dist/exports/clean.native.js.map +1 -1
- package/dist/exports/createServer.mjs +43 -46
- package/dist/exports/createServer.mjs.map +1 -1
- package/dist/exports/createServer.native.js +45 -48
- package/dist/exports/createServer.native.js.map +1 -1
- package/dist/exports/dev.mjs +177 -201
- package/dist/exports/dev.mjs.map +1 -1
- package/dist/exports/dev.native.js +191 -215
- package/dist/exports/dev.native.js.map +1 -1
- package/dist/exports/loadEnv.mjs +51 -48
- package/dist/exports/loadEnv.mjs.map +1 -1
- package/dist/exports/loadEnv.native.js +59 -57
- package/dist/exports/loadEnv.native.js.map +1 -1
- package/dist/exports/patch.mjs +9 -7
- package/dist/exports/patch.mjs.map +1 -1
- package/dist/exports/patch.native.js +9 -7
- package/dist/exports/patch.native.js.map +1 -1
- package/dist/exports/prebuild.mjs +177 -157
- package/dist/exports/prebuild.mjs.map +1 -1
- package/dist/exports/prebuild.native.js +197 -160
- package/dist/exports/prebuild.native.js.map +1 -1
- package/dist/exports/prebuildWithoutExpo.mjs +46 -44
- package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
- package/dist/exports/prebuildWithoutExpo.native.js +48 -46
- package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
- package/dist/exports/runAndroid.mjs +9 -10
- package/dist/exports/runAndroid.mjs.map +1 -1
- package/dist/exports/runAndroid.native.js +10 -11
- package/dist/exports/runAndroid.native.js.map +1 -1
- package/dist/exports/runIos.mjs +9 -10
- package/dist/exports/runIos.mjs.map +1 -1
- package/dist/exports/runIos.native.js +10 -11
- package/dist/exports/runIos.native.js.map +1 -1
- package/dist/exports/serve.mjs +23 -31
- package/dist/exports/serve.mjs.map +1 -1
- package/dist/exports/serve.native.js +26 -34
- package/dist/exports/serve.native.js.map +1 -1
- package/dist/exports/serveStaticAssets.mjs +109 -113
- package/dist/exports/serveStaticAssets.mjs.map +1 -1
- package/dist/exports/serveStaticAssets.native.js +180 -192
- package/dist/exports/serveStaticAssets.native.js.map +1 -1
- package/dist/index.js +25 -14
- package/dist/index.mjs +25 -14
- package/dist/index.native.js +25 -14
- package/dist/patches/builtInDepPatches.mjs +346 -435
- package/dist/patches/builtInDepPatches.mjs.map +1 -1
- package/dist/patches/builtInDepPatches.native.js +349 -438
- package/dist/patches/builtInDepPatches.native.js.map +1 -1
- package/dist/plugins/applyBuiltInPatchesPlugin.mjs +11 -11
- package/dist/plugins/applyBuiltInPatchesPlugin.mjs.map +1 -1
- package/dist/plugins/applyBuiltInPatchesPlugin.native.js +11 -11
- package/dist/plugins/applyBuiltInPatchesPlugin.native.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.mjs +87 -90
- package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.native.js +99 -102
- package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/clientInjectPlugin.mjs +13 -11
- package/dist/plugins/clientInjectPlugin.mjs.map +1 -1
- package/dist/plugins/clientInjectPlugin.native.js +13 -11
- package/dist/plugins/clientInjectPlugin.native.js.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.mjs +15 -23
- package/dist/plugins/defaultDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.native.js +15 -23
- package/dist/plugins/defaultDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs +163 -179
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs.map +1 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js +169 -191
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.mjs +6 -5
- package/dist/plugins/getResolvedConfigSubset.mjs.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.native.js +6 -5
- package/dist/plugins/getResolvedConfigSubset.native.js.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.mjs +210 -178
- package/dist/plugins/reactNativeCommonJsPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.native.js +283 -259
- package/dist/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.mjs +72 -83
- package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.native.js +75 -92
- package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevServer.mjs +283 -328
- package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
- package/dist/plugins/reactNativeDevServer.native.js +332 -391
- package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
- package/dist/plugins/rnCodegenPlugin.mjs +13 -12
- package/dist/plugins/rnCodegenPlugin.mjs.map +1 -1
- package/dist/plugins/rnCodegenPlugin.native.js +13 -12
- package/dist/plugins/rnCodegenPlugin.native.js.map +1 -1
- package/dist/plugins/rollupRemoveUnusedImports.mjs +8 -7
- package/dist/plugins/rollupRemoveUnusedImports.mjs.map +1 -1
- package/dist/plugins/rollupRemoveUnusedImports.native.js +8 -7
- package/dist/plugins/rollupRemoveUnusedImports.native.js.map +1 -1
- package/dist/plugins/workletImportsPlugin.mjs +127 -132
- package/dist/plugins/workletImportsPlugin.mjs.map +1 -1
- package/dist/plugins/workletImportsPlugin.native.js +192 -203
- package/dist/plugins/workletImportsPlugin.native.js.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.mjs +45 -79
- package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.native.js +45 -85
- package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/runtime/hmr-client.mjs +133 -140
- package/dist/runtime/hmr-client.mjs.map +1 -1
- package/dist/runtime/hmr-client.native.js +223 -222
- package/dist/runtime/hmr-client.native.js.map +1 -1
- package/dist/runtime/hmr-runtime.mjs +192 -194
- package/dist/runtime/hmr-runtime.mjs.map +1 -1
- package/dist/runtime/hmr-runtime.native.js +424 -411
- package/dist/runtime/hmr-runtime.native.js.map +1 -1
- package/dist/runtime/hmr-types.mjs +0 -2
- package/dist/runtime/hmr-types.native.js +0 -2
- package/dist/runtime/native-prelude.mjs +2 -1
- package/dist/runtime/native-prelude.mjs.map +1 -1
- package/dist/runtime/native-prelude.native.js +2 -1
- package/dist/runtime/native-prelude.native.js.map +1 -1
- package/dist/runtime/react-refresh-utils.mjs +23 -22
- package/dist/runtime/react-refresh-utils.mjs.map +1 -1
- package/dist/runtime/react-refresh-utils.native.js +23 -27
- package/dist/runtime/react-refresh-utils.native.js.map +1 -1
- package/dist/serve/node.mjs +49 -49
- package/dist/serve/node.mjs.map +1 -1
- package/dist/serve/node.native.js +92 -96
- package/dist/serve/node.native.js.map +1 -1
- package/dist/types.mjs +0 -2
- package/dist/types.native.js +0 -2
- package/dist/user-interface/index.mjs +245 -262
- package/dist/user-interface/index.mjs.map +1 -1
- package/dist/user-interface/index.native.js +274 -298
- package/dist/user-interface/index.native.js.map +1 -1
- package/dist/utils/assert.mjs +7 -6
- package/dist/utils/assert.mjs.map +1 -1
- package/dist/utils/assert.native.js +7 -18
- package/dist/utils/assert.native.js.map +1 -1
- package/dist/utils/bindKeypressInput.mjs +36 -38
- package/dist/utils/bindKeypressInput.mjs.map +1 -1
- package/dist/utils/bindKeypressInput.native.js +36 -38
- package/dist/utils/bindKeypressInput.native.js.map +1 -1
- package/dist/utils/coerceToArray.mjs +2 -1
- package/dist/utils/coerceToArray.mjs.map +1 -1
- package/dist/utils/coerceToArray.native.js +2 -1
- package/dist/utils/coerceToArray.native.js.map +1 -1
- package/dist/utils/connectedNativeClients.mjs +3 -2
- package/dist/utils/connectedNativeClients.mjs.map +1 -1
- package/dist/utils/connectedNativeClients.native.js +3 -2
- package/dist/utils/connectedNativeClients.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +992 -966
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +1184 -1179
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/dist/utils/dispose.mjs +4 -3
- package/dist/utils/dispose.mjs.map +1 -1
- package/dist/utils/dispose.native.js +6 -5
- package/dist/utils/dispose.native.js.map +1 -1
- package/dist/utils/environmentUtils.mjs +5 -4
- package/dist/utils/environmentUtils.mjs.map +1 -1
- package/dist/utils/environmentUtils.native.js +5 -4
- package/dist/utils/environmentUtils.native.js.map +1 -1
- package/dist/utils/execSync.mjs +7 -5
- package/dist/utils/execSync.mjs.map +1 -1
- package/dist/utils/execSync.native.js +8 -6
- package/dist/utils/execSync.native.js.map +1 -1
- package/dist/utils/expoRun.mjs +27 -35
- package/dist/utils/expoRun.mjs.map +1 -1
- package/dist/utils/expoRun.native.js +27 -35
- package/dist/utils/expoRun.native.js.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.mjs +24 -22
- package/dist/utils/filterViteServerResolvedUrls.mjs.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.native.js +61 -63
- package/dist/utils/filterViteServerResolvedUrls.native.js.map +1 -1
- package/dist/utils/getBoundPort.mjs +6 -5
- package/dist/utils/getBoundPort.mjs.map +1 -1
- package/dist/utils/getBoundPort.native.js +8 -12
- package/dist/utils/getBoundPort.native.js.map +1 -1
- package/dist/utils/getCacheDir.mjs +3 -1
- package/dist/utils/getCacheDir.mjs.map +1 -1
- package/dist/utils/getCacheDir.native.js +3 -1
- package/dist/utils/getCacheDir.native.js.map +1 -1
- package/dist/utils/getServerEntry.mjs +6 -4
- package/dist/utils/getServerEntry.mjs.map +1 -1
- package/dist/utils/getServerEntry.native.js +8 -11
- package/dist/utils/getServerEntry.native.js.map +1 -1
- package/dist/utils/getVitePath.mjs +42 -42
- package/dist/utils/getVitePath.mjs.map +1 -1
- package/dist/utils/getVitePath.native.js +43 -41
- package/dist/utils/getVitePath.native.js.map +1 -1
- package/dist/utils/globDir.mjs +7 -11
- package/dist/utils/globDir.mjs.map +1 -1
- package/dist/utils/globDir.native.js +10 -14
- package/dist/utils/globDir.native.js.map +1 -1
- package/dist/utils/isWithin.mjs +4 -2
- package/dist/utils/isWithin.mjs.map +1 -1
- package/dist/utils/isWithin.native.js +4 -2
- package/dist/utils/isWithin.native.js.map +1 -1
- package/dist/utils/patches.mjs +233 -255
- package/dist/utils/patches.mjs.map +1 -1
- package/dist/utils/patches.native.js +415 -460
- package/dist/utils/patches.native.js.map +1 -1
- package/dist/utils/printServerUrls.mjs +9 -7
- package/dist/utils/printServerUrls.mjs.map +1 -1
- package/dist/utils/printServerUrls.native.js +48 -51
- package/dist/utils/printServerUrls.native.js.map +1 -1
- package/dist/utils/removeUndefined.mjs +8 -7
- package/dist/utils/removeUndefined.mjs.map +1 -1
- package/dist/utils/removeUndefined.native.js +8 -7
- package/dist/utils/removeUndefined.native.js.map +1 -1
- package/dist/utils/scanDepsToOptimize.mjs +194 -161
- package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
- package/dist/utils/scanDepsToOptimize.native.js +227 -197
- package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
- package/dist/utils/state.mjs +18 -18
- package/dist/utils/state.mjs.map +1 -1
- package/dist/utils/state.native.js +18 -18
- package/dist/utils/state.native.js.map +1 -1
- package/dist/utils/symbolicateNativeStack.mjs +54 -54
- package/dist/utils/symbolicateNativeStack.mjs.map +1 -1
- package/dist/utils/symbolicateNativeStack.native.js +58 -58
- package/dist/utils/symbolicateNativeStack.native.js.map +1 -1
- package/dist/utils/uniq.mjs +2 -1
- package/dist/utils/uniq.mjs.map +1 -1
- package/dist/utils/uniq.native.js +2 -1
- package/dist/utils/uniq.native.js.map +1 -1
- package/dist/utils/utils.mjs +19 -19
- package/dist/utils/utils.mjs.map +1 -1
- package/dist/utils/utils.native.js +38 -40
- package/dist/utils/utils.native.js.map +1 -1
- package/dist/vendor/debugger-app/index.mjs +0 -2
- package/dist/vendor/debugger-app/index.native.js +0 -2
- package/dist/vendor/debugger-app/src/debuggerWorker.mjs +0 -2
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js +0 -2
- package/dist/vendor/debugger-app/src/index.mjs +0 -2
- package/dist/vendor/debugger-app/src/index.native.js +0 -2
- package/dist/vxrn-vite-plugin.mjs +34 -33
- package/dist/vxrn-vite-plugin.mjs.map +1 -1
- package/dist/vxrn-vite-plugin.native.js +35 -34
- package/dist/vxrn-vite-plugin.native.js.map +1 -1
- package/expo-plugin.cjs +12 -6
- package/package.json +12 -13
- package/src/config/getBaseViteConfigOnly.ts +6 -0
- package/src/exports/prebuild.ts +40 -12
- package/src/patches/builtInDepPatches.ts +24 -48
- package/src/utils/createNativeDevEngine.test.ts +1 -1
- package/src/utils/createNativeDevEngine.ts +15 -9
- package/src/utils/scanDepsToOptimize.ts +0 -3
- package/types/config/getBaseViteConfigOnly.d.ts.map +1 -1
- package/types/config/getOptimizeDeps.d.ts.map +1 -1
- package/types/config/getOptionsFilled.d.ts +15 -15
- package/types/config/getOptionsFilled.d.ts.map +1 -1
- package/types/exports/build.d.ts +11 -11
- package/types/exports/build.d.ts.map +1 -1
- package/types/exports/clean.d.ts +1 -1
- package/types/exports/clean.d.ts.map +1 -1
- package/types/exports/createServer.d.ts.map +1 -1
- package/types/exports/dev.d.ts.map +1 -1
- package/types/exports/patch.d.ts.map +1 -1
- package/types/exports/prebuild.d.ts +3 -3
- package/types/exports/prebuild.d.ts.map +1 -1
- package/types/exports/prebuildWithoutExpo.d.ts +1 -1
- package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
- package/types/exports/runAndroid.d.ts.map +1 -1
- package/types/exports/runIos.d.ts.map +1 -1
- package/types/exports/serve.d.ts.map +1 -1
- package/types/patches/builtInDepPatches.d.ts.map +1 -1
- package/types/plugins/autoDepOptimizePlugin.d.ts.map +1 -1
- package/types/plugins/rollupRemoveUnusedImports.d.ts.map +1 -1
- package/types/runtime/hmr-client.d.ts.map +1 -1
- package/types/runtime/hmr-runtime.d.ts.map +1 -1
- package/types/runtime/hmr-types.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts +1 -1
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
- package/types/utils/execSync.d.ts.map +1 -1
- package/types/utils/getServerEntry.d.ts.map +1 -1
- package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
- package/types/vxrn-vite-plugin.d.ts.map +1 -1
- package/dist/config/getOptimizeDeps.test.mjs +0 -20
- package/dist/config/getOptimizeDeps.test.mjs.map +0 -1
- package/dist/config/getOptimizeDeps.test.native.js +0 -39
- package/dist/config/getOptimizeDeps.test.native.js.map +0 -1
- package/dist/config/getServerOptionsFilled.test.mjs +0 -20
- package/dist/config/getServerOptionsFilled.test.mjs.map +0 -1
- package/dist/config/getServerOptionsFilled.test.native.js +0 -20
- package/dist/config/getServerOptionsFilled.test.native.js.map +0 -1
- package/dist/config/getViteServerConfig.test.mjs +0 -26
- package/dist/config/getViteServerConfig.test.mjs.map +0 -1
- package/dist/config/getViteServerConfig.test.native.js +0 -26
- package/dist/config/getViteServerConfig.test.native.js.map +0 -1
- package/dist/config/mergeUserConfig.test.mjs +0 -108
- package/dist/config/mergeUserConfig.test.mjs.map +0 -1
- package/dist/config/mergeUserConfig.test.native.js +0 -108
- package/dist/config/mergeUserConfig.test.native.js.map +0 -1
- package/dist/exports/clean.test.mjs +0 -81
- package/dist/exports/clean.test.mjs.map +0 -1
- package/dist/exports/clean.test.native.js +0 -88
- package/dist/exports/clean.test.native.js.map +0 -1
- package/dist/exports/loadEnv.test.mjs +0 -65
- package/dist/exports/loadEnv.test.mjs.map +0 -1
- package/dist/exports/loadEnv.test.native.js +0 -65
- package/dist/exports/loadEnv.test.native.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/index.native.js.map +0 -1
- package/dist/plugins/autoDepOptimizePlugin.test.mjs +0 -31
- package/dist/plugins/autoDepOptimizePlugin.test.mjs.map +0 -1
- package/dist/plugins/autoDepOptimizePlugin.test.native.js +0 -39
- package/dist/plugins/autoDepOptimizePlugin.test.native.js.map +0 -1
- package/dist/plugins/resolveIdScan.test.mjs +0 -31
- package/dist/plugins/resolveIdScan.test.mjs.map +0 -1
- package/dist/plugins/resolveIdScan.test.native.js +0 -38
- package/dist/plugins/resolveIdScan.test.native.js.map +0 -1
- package/dist/plugins/rnCodegenPlugin.test.mjs +0 -239
- package/dist/plugins/rnCodegenPlugin.test.mjs.map +0 -1
- package/dist/plugins/rnCodegenPlugin.test.native.js +0 -242
- package/dist/plugins/rnCodegenPlugin.test.native.js.map +0 -1
- package/dist/plugins/serverExtensions.test.mjs +0 -106
- package/dist/plugins/serverExtensions.test.mjs.map +0 -1
- package/dist/plugins/serverExtensions.test.native.js +0 -117
- package/dist/plugins/serverExtensions.test.native.js.map +0 -1
- package/dist/runtime/hmr-types.mjs.map +0 -1
- package/dist/runtime/hmr-types.native.js.map +0 -1
- package/dist/serve/node.test.mjs +0 -60
- package/dist/serve/node.test.mjs.map +0 -1
- package/dist/serve/node.test.native.js +0 -72
- package/dist/serve/node.test.native.js.map +0 -1
- package/dist/types.mjs.map +0 -1
- package/dist/types.native.js.map +0 -1
- package/dist/utils/bindKeypressInput.test.mjs +0 -48
- package/dist/utils/bindKeypressInput.test.mjs.map +0 -1
- package/dist/utils/bindKeypressInput.test.native.js +0 -48
- package/dist/utils/bindKeypressInput.test.native.js.map +0 -1
- package/dist/utils/createNativeDevEngine.test.mjs +0 -1788
- package/dist/utils/createNativeDevEngine.test.mjs.map +0 -1
- package/dist/utils/createNativeDevEngine.test.native.js +0 -1942
- package/dist/utils/createNativeDevEngine.test.native.js.map +0 -1
- package/dist/utils/createNativeDevEngineFailure.test.mjs +0 -44
- package/dist/utils/createNativeDevEngineFailure.test.mjs.map +0 -1
- package/dist/utils/createNativeDevEngineFailure.test.native.js +0 -54
- package/dist/utils/createNativeDevEngineFailure.test.native.js.map +0 -1
- package/dist/utils/getBoundPort.test.mjs +0 -71
- package/dist/utils/getBoundPort.test.mjs.map +0 -1
- package/dist/utils/getBoundPort.test.native.js +0 -82
- package/dist/utils/getBoundPort.test.native.js.map +0 -1
- package/dist/utils/imageSizePatch.test.mjs +0 -29
- package/dist/utils/imageSizePatch.test.mjs.map +0 -1
- package/dist/utils/imageSizePatch.test.native.js +0 -30
- package/dist/utils/imageSizePatch.test.native.js.map +0 -1
- package/dist/utils/patches.test.mjs +0 -242
- package/dist/utils/patches.test.mjs.map +0 -1
- package/dist/utils/patches.test.native.js +0 -271
- package/dist/utils/patches.test.native.js.map +0 -1
- package/dist/utils/symbolicateNativeStack.test.mjs +0 -96
- package/dist/utils/symbolicateNativeStack.test.mjs.map +0 -1
- package/dist/utils/symbolicateNativeStack.test.native.js +0 -96
- package/dist/utils/symbolicateNativeStack.test.native.js.map +0 -1
- package/dist/vendor/debugger-app/index.mjs.map +0 -1
- package/dist/vendor/debugger-app/index.native.js.map +0 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.mjs.map +0 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js.map +0 -1
- package/dist/vendor/debugger-app/src/index.mjs.map +0 -1
- package/dist/vendor/debugger-app/src/index.native.js.map +0 -1
- package/types/config/getOptimizeDeps.test.d.ts +0 -2
- package/types/config/getOptimizeDeps.test.d.ts.map +0 -1
- package/types/config/getServerOptionsFilled.test.d.ts +0 -2
- package/types/config/getServerOptionsFilled.test.d.ts.map +0 -1
- package/types/config/getViteServerConfig.test.d.ts +0 -2
- package/types/config/getViteServerConfig.test.d.ts.map +0 -1
- package/types/config/mergeUserConfig.test.d.ts +0 -2
- package/types/config/mergeUserConfig.test.d.ts.map +0 -1
- package/types/exports/clean.test.d.ts +0 -2
- package/types/exports/clean.test.d.ts.map +0 -1
- package/types/exports/loadEnv.test.d.ts +0 -2
- package/types/exports/loadEnv.test.d.ts.map +0 -1
- package/types/plugins/autoDepOptimizePlugin.test.d.ts +0 -2
- package/types/plugins/autoDepOptimizePlugin.test.d.ts.map +0 -1
- package/types/plugins/resolveIdScan.test.d.ts +0 -2
- package/types/plugins/resolveIdScan.test.d.ts.map +0 -1
- package/types/plugins/rnCodegenPlugin.test.d.ts +0 -2
- package/types/plugins/rnCodegenPlugin.test.d.ts.map +0 -1
- package/types/plugins/serverExtensions.test.d.ts +0 -2
- package/types/plugins/serverExtensions.test.d.ts.map +0 -1
- package/types/serve/node.test.d.ts +0 -2
- package/types/serve/node.test.d.ts.map +0 -1
- package/types/utils/bindKeypressInput.test.d.ts +0 -2
- package/types/utils/bindKeypressInput.test.d.ts.map +0 -1
- package/types/utils/createNativeDevEngine.test.d.ts +0 -2
- package/types/utils/createNativeDevEngine.test.d.ts.map +0 -1
- package/types/utils/createNativeDevEngineFailure.test.d.ts +0 -2
- package/types/utils/createNativeDevEngineFailure.test.d.ts.map +0 -1
- package/types/utils/getBoundPort.test.d.ts +0 -2
- package/types/utils/getBoundPort.test.d.ts.map +0 -1
- package/types/utils/imageSizePatch.test.d.ts +0 -2
- package/types/utils/imageSizePatch.test.d.ts.map +0 -1
- package/types/utils/patches.test.d.ts +0 -2
- package/types/utils/patches.test.d.ts.map +0 -1
- package/types/utils/symbolicateNativeStack.test.d.ts +0 -2
- package/types/utils/symbolicateNativeStack.test.d.ts.map +0 -1
|
@@ -3,310 +3,293 @@ import module from "node:module";
|
|
|
3
3
|
import { pathToFileURL } from "node:url";
|
|
4
4
|
import { filterViteServerResolvedUrls } from "../utils/filterViteServerResolvedUrls.mjs";
|
|
5
5
|
import { getBoundPort } from "../utils/getBoundPort.mjs";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
6
|
+
|
|
7
|
+
const COMMANDS = [
|
|
8
|
+
{
|
|
9
|
+
keys: "ow",
|
|
10
|
+
label: "open web",
|
|
11
|
+
terminalLabel: "\x1B[1mo\x1B[0mpen \x1B[1mw\x1B[0meb",
|
|
12
|
+
action: (ctx) => {
|
|
13
|
+
const url = ctx.server.resolvedUrls?.local[0];
|
|
14
|
+
if (!url) {
|
|
15
|
+
console.warn("Cannot get the local server URL.");
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
nativeOpen(url);
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
keys: "oi",
|
|
23
|
+
label: "open app in iOS Simulator",
|
|
24
|
+
terminalLabel: "\x1B[1mo\x1B[0mpen app in \x1B[1mi\x1B[0mOS Simulator",
|
|
25
|
+
action: (ctx) => {
|
|
26
|
+
openIos(ctx);
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
keys: "oa",
|
|
31
|
+
label: "open app in Android Emulator",
|
|
32
|
+
terminalLabel: "\x1B[1mo\x1B[0mpen app in \x1B[1mA\x1B[0mndroid Emulator",
|
|
33
|
+
action: (ctx) => {
|
|
34
|
+
openAndroid(ctx);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
keys: "oe",
|
|
39
|
+
label: "open editor",
|
|
40
|
+
terminalLabel: "\x1B[1mo\x1B[0mpen \x1B[1me\x1B[0mditor",
|
|
41
|
+
action: async (ctx) => {
|
|
42
|
+
const { defaultEditor } = await import("env-editor");
|
|
43
|
+
exec(`${defaultEditor().binary} .`);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
keys: "qr",
|
|
48
|
+
label: "show Expo Go QR code",
|
|
49
|
+
terminalLabel: "show Expo Go \x1B[1mQR\x1B[0m code",
|
|
50
|
+
action: (ctx) => {
|
|
51
|
+
const url = getExpoGoUrl(ctx);
|
|
52
|
+
if (!url) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
printNativeQrCodeAndInstructions(url);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
keys: "dt",
|
|
60
|
+
label: "open React Native DevTools",
|
|
61
|
+
terminalLabel: "open React Native \x1B[1mD\x1B[0mev\x1B[1mT\x1B[0mools",
|
|
62
|
+
action: (ctx) => {
|
|
63
|
+
const { host, port } = ctx.server.config.server;
|
|
64
|
+
const serverUrl = `http://${typeof host === "string" && !!host ? host : "localhost"}:${port}`;
|
|
65
|
+
const url = new URL("/open-debugger", serverUrl);
|
|
66
|
+
(async () => {
|
|
67
|
+
const response = await fetch(url, {
|
|
68
|
+
method: "POST",
|
|
69
|
+
signal: AbortSignal.timeout(3e3)
|
|
70
|
+
}).catch((error) => {
|
|
71
|
+
if (error.name === "TimeoutError") {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
throw error;
|
|
75
|
+
});
|
|
76
|
+
if (!response) {} else if (response.ok === false) {
|
|
77
|
+
const responseText = await response.text();
|
|
78
|
+
if (responseText.includes("Unable to find debugger target")) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
console.warn(`Failed to open React Native DevTools, ${url} returns ${response.status}: ${responseText}.`);
|
|
82
|
+
}
|
|
83
|
+
})();
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
keys: "?",
|
|
88
|
+
label: "open editor",
|
|
89
|
+
terminalLabel: "show this menu",
|
|
90
|
+
action: async (ctx) => {}
|
|
91
|
+
}
|
|
92
|
+
];
|
|
91
93
|
async function startUserInterface(context) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
if (!supportsKeyboardCommands()) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
printCommandsTable(context);
|
|
98
|
+
startInterceptingKeyStrokes(context);
|
|
97
99
|
}
|
|
98
100
|
function printCommandsTable(context) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
})).join("\n");
|
|
103
|
-
console.info(`
|
|
101
|
+
const longestKeyLength = COMMANDS.reduce((max, command) => Math.max(max, command.keys.length), 0);
|
|
102
|
+
const commandsInfo = COMMANDS.map((cmd) => getCommandInfoInTerminal(cmd, { longestKeyLength })).join("\n");
|
|
103
|
+
console.info(`
|
|
104
104
|
${commandsInfo}
|
|
105
105
|
`);
|
|
106
106
|
}
|
|
107
|
-
function getCommandInfoInTerminal(command, {
|
|
108
|
-
|
|
109
|
-
} = {}) {
|
|
110
|
-
return `\x1B[90m\u203A\x1B[0m Press \x1B[1m${longestKeyLength ? command.keys.padEnd(longestKeyLength, " ") : command.keys}\x1B[0m \x1B[90m\u2502\x1B[0m ${command.terminalLabel}`;
|
|
107
|
+
function getCommandInfoInTerminal(command, { longestKeyLength = 0 } = {}) {
|
|
108
|
+
return `\x1B[90m\u203A\x1B[0m Press \x1B[1m${longestKeyLength ? command.keys.padEnd(longestKeyLength, " ") : command.keys}\x1B[0m \x1B[90m\u2502\x1B[0m ${command.terminalLabel}`;
|
|
111
109
|
}
|
|
112
110
|
function restoreTerminal() {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
process.stdout.write("\x1B[0m");
|
|
111
|
+
const { stdin } = process;
|
|
112
|
+
if (stdin.isTTY && stdin.setRawMode) {
|
|
113
|
+
try {
|
|
114
|
+
stdin.setRawMode(false);
|
|
115
|
+
} catch {}
|
|
116
|
+
}
|
|
117
|
+
process.stdout.write("\x1B[0m");
|
|
122
118
|
}
|
|
123
119
|
function supportsKeyboardCommands() {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
} = process;
|
|
127
|
-
return Boolean(stdin.isTTY && stdin.setRawMode);
|
|
120
|
+
const { stdin } = process;
|
|
121
|
+
return Boolean(stdin.isTTY && stdin.setRawMode);
|
|
128
122
|
}
|
|
129
123
|
function startInterceptingKeyStrokes(context) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
process.exit(0);
|
|
149
|
-
});
|
|
124
|
+
const { stdin } = process;
|
|
125
|
+
if (!supportsKeyboardCommands()) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
stdin.setRawMode(true);
|
|
129
|
+
stdin.resume();
|
|
130
|
+
stdin.setEncoding("utf8");
|
|
131
|
+
stdin.on("data", handleKeypress.bind(null, context));
|
|
132
|
+
stdin.unref();
|
|
133
|
+
process.on("exit", restoreTerminal);
|
|
134
|
+
process.on("SIGINT", () => {
|
|
135
|
+
restoreTerminal();
|
|
136
|
+
process.exit(0);
|
|
137
|
+
});
|
|
138
|
+
process.on("SIGTERM", () => {
|
|
139
|
+
restoreTerminal();
|
|
140
|
+
process.exit(0);
|
|
141
|
+
});
|
|
150
142
|
}
|
|
151
143
|
let pressedKeys = "";
|
|
152
144
|
let clearPressedKeysTimer = null;
|
|
153
145
|
function clearPressedKeys() {
|
|
154
|
-
|
|
155
|
-
|
|
146
|
+
pressedKeys = "";
|
|
147
|
+
clearPrintedInfo();
|
|
156
148
|
}
|
|
157
149
|
function resetClearPressedKeysTimer() {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
150
|
+
if (clearPressedKeysTimer) {
|
|
151
|
+
clearTimeout(clearPressedKeysTimer);
|
|
152
|
+
}
|
|
153
|
+
clearPressedKeysTimer = setTimeout(clearPressedKeys, 3e3);
|
|
154
|
+
clearPressedKeysTimer.unref();
|
|
163
155
|
}
|
|
164
156
|
function handleKeypress(context, key) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
157
|
+
if (key === "\x1B") {
|
|
158
|
+
clearPrintedInfo();
|
|
159
|
+
pressedKeys = "";
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (key === "?" || key === "/") {
|
|
163
|
+
clearPrintedInfo();
|
|
164
|
+
console.info("> ?\n⇒ Available commands:");
|
|
165
|
+
printCommandsTable(context);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
resetClearPressedKeysTimer();
|
|
169
|
+
if (key === "") {
|
|
170
|
+
pressedKeys = pressedKeys.slice(0, -1);
|
|
171
|
+
} else {
|
|
172
|
+
key = key.toLowerCase();
|
|
173
|
+
if (/^[a-z]$/.test(key)) {
|
|
174
|
+
pressedKeys += key;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (pressedKeys.length === 0) {
|
|
178
|
+
clearPrintedInfo();
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const matchedCommand = COMMANDS.find((command) => command.keys === pressedKeys);
|
|
182
|
+
if (matchedCommand) {
|
|
183
|
+
clearPrintedInfo();
|
|
184
|
+
console.info(`> ${matchedCommand.keys}
|
|
193
185
|
\u21D2 ${matchedCommand.label}...`);
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
186
|
+
pressedKeys = "";
|
|
187
|
+
setTimeout(() => matchedCommand.action?.(context), 500);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (pressedKeys.length >= 3) {
|
|
191
|
+
clearPrintedInfo();
|
|
192
|
+
console.info(`> ${pressedKeys}
|
|
201
193
|
No matching command for "${pressedKeys}"! Press "?" for help.`);
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
194
|
+
pressedKeys = "";
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const possibleCommands = COMMANDS.filter((command) => command.keys.startsWith(pressedKeys));
|
|
198
|
+
const commandsInfo = possibleCommands.map((command) => {
|
|
199
|
+
const matchedPart = command.keys.slice(0, pressedKeys.length);
|
|
200
|
+
const remainingPart = command.keys.slice(pressedKeys.length);
|
|
201
|
+
return ` \x1B[4m${matchedPart}\x1B[0m\x1B[1m${remainingPart}\x1B[0m\x1B[90m - \x1B[0m${command.terminalLabel}`;
|
|
202
|
+
}).join("\n");
|
|
203
|
+
const infoToPrint = `
|
|
212
204
|
${commandsInfo}
|
|
213
205
|
> ${pressedKeys}`;
|
|
214
|
-
|
|
206
|
+
printInfo(infoToPrint);
|
|
215
207
|
}
|
|
216
208
|
let lastPrintedInfo = "";
|
|
217
209
|
function printInfo(info) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
210
|
+
clearPrintedInfo();
|
|
211
|
+
lastPrintedInfo = info;
|
|
212
|
+
process.stdout.write(info);
|
|
221
213
|
}
|
|
222
214
|
function clearPrintedInfo() {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
215
|
+
if (lastPrintedInfo) {
|
|
216
|
+
process.stdout.write("\x1B[2K");
|
|
217
|
+
process.stdout.write("\x1B[1A\x1B[2K".repeat(lastPrintedInfo.split("\n").length - 1));
|
|
218
|
+
process.stdout.write("\x1B[2K");
|
|
219
|
+
process.stdout.write("\x1B[G");
|
|
220
|
+
}
|
|
221
|
+
lastPrintedInfo = "";
|
|
230
222
|
}
|
|
231
223
|
async function printNativeQrCodeAndInstructions(url) {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}, code => {
|
|
236
|
-
console.info(`To open the app on your iPhone, install the Expo Go app and scan the QR code below with your iPhone camera:
|
|
224
|
+
const qrcode = await import("qrcode-terminal");
|
|
225
|
+
(qrcode.default || qrcode).generate(url, { small: true }, (code) => {
|
|
226
|
+
console.info(`To open the app on your iPhone, install the Expo Go app and scan the QR code below with your iPhone camera:
|
|
237
227
|
${code}`);
|
|
238
|
-
|
|
228
|
+
});
|
|
239
229
|
}
|
|
240
230
|
function nativeOpen(url) {
|
|
241
|
-
|
|
242
|
-
|
|
231
|
+
const start = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
232
|
+
exec(`${start} ${url}`);
|
|
243
233
|
}
|
|
244
234
|
async function openIos(ctx) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
});
|
|
267
|
-
} catch (e) {
|
|
268
|
-
const stack = e instanceof Error ? e.stack : null;
|
|
269
|
-
console.error(`Failed to open app in iOS Simulator: ${e}${stack ? `
|
|
235
|
+
const projectRoot = ctx.server.config.root;
|
|
236
|
+
const port = getBoundPort(ctx.server);
|
|
237
|
+
try {
|
|
238
|
+
const require2 = module.createRequire(projectRoot);
|
|
239
|
+
const applePlatformManagerModuleImportPath = require2.resolve("@expo/cli/build/src/start/platforms/ios/ApplePlatformManager.js", { paths: [projectRoot] });
|
|
240
|
+
const applePlatformManagerModule = await import(pathToFileURL(applePlatformManagerModuleImportPath).href);
|
|
241
|
+
const PlatformManager = applePlatformManagerModule.default.ApplePlatformManager;
|
|
242
|
+
const platformManager = new PlatformManager(projectRoot, port, {
|
|
243
|
+
/** Expo Go URL. */
|
|
244
|
+
getExpoGoUrl: () => getExpoGoUrl(ctx),
|
|
245
|
+
/** Get the base URL for the dev server hosting this platform manager. */
|
|
246
|
+
getDevServerUrl: () => null,
|
|
247
|
+
/** Get redirect URL for native disambiguation. */
|
|
248
|
+
getRedirectUrl: () => null,
|
|
249
|
+
/** Dev Client */
|
|
250
|
+
getCustomRuntimeUrl: (props) => null
|
|
251
|
+
});
|
|
252
|
+
await platformManager.openAsync({ runtime: "expo" });
|
|
253
|
+
} catch (e) {
|
|
254
|
+
const stack = e instanceof Error ? e.stack : null;
|
|
255
|
+
console.error(`Failed to open app in iOS Simulator: ${e}${stack ? `
|
|
270
256
|
${stack}` : ""}`);
|
|
271
|
-
|
|
257
|
+
}
|
|
272
258
|
}
|
|
273
259
|
async function openAndroid(ctx) {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
});
|
|
296
|
-
} catch (e) {
|
|
297
|
-
const stack = e instanceof Error ? e.stack : null;
|
|
298
|
-
console.error(`Failed to open app in Android Emulator: ${e}${stack ? `
|
|
260
|
+
const projectRoot = ctx.server.config.root;
|
|
261
|
+
const port = getBoundPort(ctx.server);
|
|
262
|
+
try {
|
|
263
|
+
const require2 = module.createRequire(projectRoot);
|
|
264
|
+
const androidPlatformManagerModuleImportPath = require2.resolve("@expo/cli/build/src/start/platforms/android/AndroidPlatformManager.js", { paths: [projectRoot] });
|
|
265
|
+
const androidPlatformManagerModule = await import(pathToFileURL(androidPlatformManagerModuleImportPath).href);
|
|
266
|
+
const PlatformManager = androidPlatformManagerModule.default.AndroidPlatformManager;
|
|
267
|
+
const platformManager = new PlatformManager(projectRoot, port, {
|
|
268
|
+
/** Expo Go URL. */
|
|
269
|
+
getExpoGoUrl: () => getExpoGoUrl(ctx),
|
|
270
|
+
/** Get the base URL for the dev server hosting this platform manager. */
|
|
271
|
+
getDevServerUrl: () => null,
|
|
272
|
+
/** Get redirect URL for native disambiguation. */
|
|
273
|
+
getRedirectUrl: () => null,
|
|
274
|
+
/** Dev Client */
|
|
275
|
+
getCustomRuntimeUrl: (props) => null
|
|
276
|
+
});
|
|
277
|
+
await platformManager.openAsync({ runtime: "expo" });
|
|
278
|
+
} catch (e) {
|
|
279
|
+
const stack = e instanceof Error ? e.stack : null;
|
|
280
|
+
console.error(`Failed to open app in Android Emulator: ${e}${stack ? `
|
|
299
281
|
${stack}` : ""}`);
|
|
300
|
-
|
|
282
|
+
}
|
|
301
283
|
}
|
|
302
284
|
function getExpoGoUrl(ctx) {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
285
|
+
const urls = filterViteServerResolvedUrls(ctx.server.resolvedUrls)?.network;
|
|
286
|
+
const url = urls?.[urls.length - 1];
|
|
287
|
+
if (!url) {
|
|
288
|
+
console.warn("Cannot get the local server URL.");
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
return url.replace(/^https?/, "exp");
|
|
310
292
|
}
|
|
293
|
+
|
|
311
294
|
export { startUserInterface };
|
|
312
295
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["exec","module","pathToFileURL","filterViteServerResolvedUrls","getBoundPort","COMMANDS","keys","label","terminalLabel","action","ctx","url","server","resolvedUrls","local","console","warn","nativeOpen","openIos","openAndroid","defaultEditor","binary","getExpoGoUrl","printNativeQrCodeAndInstructions","host","port","config","serverUrl","URL","response","fetch","method","signal","AbortSignal","timeout","catch","error","name","ok","responseText","text","includes","status","startUserInterface","context","supportsKeyboardCommands","printCommandsTable","startInterceptingKeyStrokes","longestKeyLength","reduce","max","command","Math","length","commandsInfo","map","cmd","getCommandInfoInTerminal","join","info","padEnd","restoreTerminal","stdin","process","isTTY","setRawMode","stdout","write","Boolean","resume","setEncoding","on","handleKeypress","bind","unref","exit","pressedKeys","clearPressedKeysTimer","clearPressedKeys","clearPrintedInfo","resetClearPressedKeysTimer","clearTimeout","setTimeout","key","slice","toLowerCase","test","matchedCommand","find","possibleCommands","filter","startsWith","matchedPart","remainingPart","infoToPrint","printInfo","lastPrintedInfo","repeat","split","qrcode","default","generate","small","code","start","platform","projectRoot","root","require","createRequire","applePlatformManagerModuleImportPath","resolve","paths","applePlatformManagerModule","href","PlatformManager","ApplePlatformManager","platformManager","getDevServerUrl","getRedirectUrl","getCustomRuntimeUrl","props","openAsync","runtime","e","stack","Error","androidPlatformManagerModuleImportPath","androidPlatformManagerModule","AndroidPlatformManager","urls","network","replace"],"sources":["../../src/user-interface/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["user-interface/index.js"],"sourcesContent":["import { exec } from \"node:child_process\";\nimport module from \"node:module\";\nimport { pathToFileURL } from \"node:url\";\nimport { filterViteServerResolvedUrls } from \"../utils/filterViteServerResolvedUrls\";\nimport { getBoundPort } from \"../utils/getBoundPort\";\nconst COMMANDS = [\n {\n keys: \"ow\",\n label: \"open web\",\n terminalLabel: \"\\x1B[1mo\\x1B[0mpen \\x1B[1mw\\x1B[0meb\",\n action: (ctx) => {\n const url = ctx.server.resolvedUrls?.local[0];\n if (!url) {\n console.warn(\"Cannot get the local server URL.\");\n return;\n }\n nativeOpen(url);\n }\n },\n {\n keys: \"oi\",\n label: \"open app in iOS Simulator\",\n terminalLabel: \"\\x1B[1mo\\x1B[0mpen app in \\x1B[1mi\\x1B[0mOS Simulator\",\n action: (ctx) => {\n openIos(ctx);\n }\n },\n {\n keys: \"oa\",\n label: \"open app in Android Emulator\",\n terminalLabel: \"\\x1B[1mo\\x1B[0mpen app in \\x1B[1mA\\x1B[0mndroid Emulator\",\n action: (ctx) => {\n openAndroid(ctx);\n }\n },\n {\n keys: \"oe\",\n label: \"open editor\",\n terminalLabel: \"\\x1B[1mo\\x1B[0mpen \\x1B[1me\\x1B[0mditor\",\n action: async (ctx) => {\n const { defaultEditor } = await import(\"env-editor\");\n exec(`${defaultEditor().binary} .`);\n }\n },\n {\n keys: \"qr\",\n label: \"show Expo Go QR code\",\n terminalLabel: \"show Expo Go \\x1B[1mQR\\x1B[0m code\",\n action: (ctx) => {\n const url = getExpoGoUrl(ctx);\n if (!url) {\n return;\n }\n printNativeQrCodeAndInstructions(url);\n }\n },\n // TODO this would need to be per-platform\n {\n keys: \"dt\",\n label: \"open React Native DevTools\",\n terminalLabel: \"open React Native \\x1B[1mD\\x1B[0mev\\x1B[1mT\\x1B[0mools\",\n action: (ctx) => {\n const { host, port } = ctx.server.config.server;\n const serverUrl = `http://${typeof host === \"string\" && !!host ? host : \"localhost\"}:${port}`;\n const url = new URL(\"/open-debugger\", serverUrl);\n (async () => {\n const response = await fetch(url, {\n method: \"POST\",\n signal: AbortSignal.timeout(3e3)\n }).catch((error) => {\n if (error.name === \"TimeoutError\") {\n return null;\n }\n throw error;\n });\n if (!response) {\n } else if (response.ok === false) {\n const responseText = await response.text();\n if (responseText.includes(\"Unable to find debugger target\")) {\n return;\n }\n console.warn(\n `Failed to open React Native DevTools, ${url} returns ${response.status}: ${responseText}.`\n );\n }\n })();\n }\n },\n {\n keys: \"?\",\n label: \"open editor\",\n terminalLabel: \"show this menu\",\n action: async (ctx) => {\n }\n }\n];\nasync function startUserInterface(context) {\n if (!supportsKeyboardCommands()) {\n return;\n }\n printCommandsTable(context);\n startInterceptingKeyStrokes(context);\n}\nfunction printCommandsTable(context) {\n const longestKeyLength = COMMANDS.reduce(\n (max, command) => Math.max(max, command.keys.length),\n 0\n );\n const commandsInfo = COMMANDS.map(\n (cmd) => getCommandInfoInTerminal(cmd, { longestKeyLength })\n ).join(\"\\n\");\n console.info(`\n${commandsInfo}\n`);\n}\nfunction getCommandInfoInTerminal(command, { longestKeyLength = 0 } = {}) {\n return `\\x1B[90m\\u203A\\x1B[0m Press \\x1B[1m${longestKeyLength ? command.keys.padEnd(longestKeyLength, \" \") : command.keys}\\x1B[0m \\x1B[90m\\u2502\\x1B[0m ${command.terminalLabel}`;\n}\nfunction restoreTerminal() {\n const { stdin } = process;\n if (stdin.isTTY && stdin.setRawMode) {\n try {\n stdin.setRawMode(false);\n } catch {\n }\n }\n process.stdout.write(\"\\x1B[0m\");\n}\nfunction supportsKeyboardCommands() {\n const { stdin } = process;\n return Boolean(stdin.isTTY && stdin.setRawMode);\n}\nfunction startInterceptingKeyStrokes(context) {\n const { stdin } = process;\n if (!supportsKeyboardCommands()) {\n return;\n }\n stdin.setRawMode(true);\n stdin.resume();\n stdin.setEncoding(\"utf8\");\n stdin.on(\"data\", handleKeypress.bind(null, context));\n stdin.unref();\n process.on(\"exit\", restoreTerminal);\n process.on(\"SIGINT\", () => {\n restoreTerminal();\n process.exit(0);\n });\n process.on(\"SIGTERM\", () => {\n restoreTerminal();\n process.exit(0);\n });\n}\nlet pressedKeys = \"\";\nlet clearPressedKeysTimer = null;\nfunction clearPressedKeys() {\n pressedKeys = \"\";\n clearPrintedInfo();\n}\nfunction resetClearPressedKeysTimer() {\n if (clearPressedKeysTimer) {\n clearTimeout(clearPressedKeysTimer);\n }\n clearPressedKeysTimer = setTimeout(clearPressedKeys, 3e3);\n clearPressedKeysTimer.unref();\n}\nfunction handleKeypress(context, key) {\n if (key === \"\\x1B\") {\n clearPrintedInfo();\n pressedKeys = \"\";\n return;\n }\n if (key === \"?\" || key === \"/\") {\n clearPrintedInfo();\n console.info(\"> ?\\n\\u21D2 Available commands:\");\n printCommandsTable(context);\n return;\n }\n resetClearPressedKeysTimer();\n if (key === \"\\x7F\") {\n pressedKeys = pressedKeys.slice(0, -1);\n } else {\n key = key.toLowerCase();\n if (/^[a-z]$/.test(key)) {\n pressedKeys += key;\n }\n }\n if (pressedKeys.length === 0) {\n clearPrintedInfo();\n return;\n }\n const matchedCommand = COMMANDS.find((command) => command.keys === pressedKeys);\n if (matchedCommand) {\n clearPrintedInfo();\n console.info(`> ${matchedCommand.keys}\n\\u21D2 ${matchedCommand.label}...`);\n pressedKeys = \"\";\n setTimeout(() => matchedCommand.action?.(context), 500);\n return;\n }\n if (pressedKeys.length >= 3) {\n clearPrintedInfo();\n console.info(\n `> ${pressedKeys}\nNo matching command for \"${pressedKeys}\"! Press \"?\" for help.`\n );\n pressedKeys = \"\";\n return;\n }\n const possibleCommands = COMMANDS.filter(\n (command) => command.keys.startsWith(pressedKeys)\n );\n const commandsInfo = possibleCommands.map((command) => {\n const matchedPart = command.keys.slice(0, pressedKeys.length);\n const remainingPart = command.keys.slice(pressedKeys.length);\n return ` \\x1B[4m${matchedPart}\\x1B[0m\\x1B[1m${remainingPart}\\x1B[0m\\x1B[90m - \\x1B[0m${command.terminalLabel}`;\n }).join(\"\\n\");\n const infoToPrint = `\n${commandsInfo}\n> ${pressedKeys}`;\n printInfo(infoToPrint);\n}\nlet lastPrintedInfo = \"\";\nfunction printInfo(info) {\n clearPrintedInfo();\n lastPrintedInfo = info;\n process.stdout.write(info);\n}\nfunction clearPrintedInfo() {\n if (lastPrintedInfo) {\n process.stdout.write(\"\\x1B[2K\");\n process.stdout.write(\"\\x1B[1A\\x1B[2K\".repeat(lastPrintedInfo.split(\"\\n\").length - 1));\n process.stdout.write(\"\\x1B[2K\");\n process.stdout.write(\"\\x1B[G\");\n }\n lastPrintedInfo = \"\";\n}\nasync function printNativeQrCodeAndInstructions(url) {\n const qrcode = await import(\"qrcode-terminal\");\n (qrcode.default || qrcode).generate(url, { small: true }, (code) => {\n console.info(\n `To open the app on your iPhone, install the Expo Go app and scan the QR code below with your iPhone camera:\n${code}`\n );\n });\n}\nfunction nativeOpen(url) {\n const start = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"start\" : \"xdg-open\";\n exec(`${start} ${url}`);\n}\nasync function openIos(ctx) {\n const projectRoot = ctx.server.config.root;\n const port = getBoundPort(ctx.server);\n try {\n const require2 = module.createRequire(projectRoot);\n const applePlatformManagerModuleImportPath = require2.resolve(\n \"@expo/cli/build/src/start/platforms/ios/ApplePlatformManager.js\",\n {\n paths: [projectRoot]\n }\n );\n const applePlatformManagerModule = await import(pathToFileURL(applePlatformManagerModuleImportPath).href);\n const PlatformManager = applePlatformManagerModule.default.ApplePlatformManager;\n const platformManager = new PlatformManager(projectRoot, port, {\n /** Expo Go URL. */\n getExpoGoUrl: () => getExpoGoUrl(ctx),\n /** Get the base URL for the dev server hosting this platform manager. */\n getDevServerUrl: () => null,\n /** Get redirect URL for native disambiguation. */\n getRedirectUrl: () => null,\n /** Dev Client */\n getCustomRuntimeUrl: (props) => null\n });\n await platformManager.openAsync({ runtime: \"expo\" });\n } catch (e) {\n const stack = e instanceof Error ? e.stack : null;\n console.error(`Failed to open app in iOS Simulator: ${e}${stack ? `\n${stack}` : \"\"}`);\n }\n}\nasync function openAndroid(ctx) {\n const projectRoot = ctx.server.config.root;\n const port = getBoundPort(ctx.server);\n try {\n const require2 = module.createRequire(projectRoot);\n const androidPlatformManagerModuleImportPath = require2.resolve(\n \"@expo/cli/build/src/start/platforms/android/AndroidPlatformManager.js\",\n {\n paths: [projectRoot]\n }\n );\n const androidPlatformManagerModule = await import(pathToFileURL(androidPlatformManagerModuleImportPath).href);\n const PlatformManager = androidPlatformManagerModule.default.AndroidPlatformManager;\n const platformManager = new PlatformManager(projectRoot, port, {\n /** Expo Go URL. */\n getExpoGoUrl: () => getExpoGoUrl(ctx),\n /** Get the base URL for the dev server hosting this platform manager. */\n getDevServerUrl: () => null,\n /** Get redirect URL for native disambiguation. */\n getRedirectUrl: () => null,\n /** Dev Client */\n getCustomRuntimeUrl: (props) => null\n });\n await platformManager.openAsync({ runtime: \"expo\" });\n } catch (e) {\n const stack = e instanceof Error ? e.stack : null;\n console.error(\n `Failed to open app in Android Emulator: ${e}${stack ? `\n${stack}` : \"\"}`\n );\n }\n}\nfunction getExpoGoUrl(ctx) {\n const urls = filterViteServerResolvedUrls(ctx.server.resolvedUrls)?.network;\n const url = urls?.[urls.length - 1];\n if (!url) {\n console.warn(\"Cannot get the local server URL.\");\n return;\n }\n return url.replace(/^https?/, \"exp\");\n}\nexport {\n startUserInterface\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}
|