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