@expo/cli 0.19.6 → 0.19.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/bin/cli CHANGED
@@ -120,7 +120,7 @@ const args = (0, _arg().default)({
120
120
  });
121
121
  if (args["--version"]) {
122
122
  // Version is added in the build script.
123
- console.log("0.19.6");
123
+ console.log("0.19.7");
124
124
  process.exit(0);
125
125
  }
126
126
  if (args["--non-interactive"]) {
@@ -40,13 +40,24 @@ async function openJsInspector(metroBaseUrl, app) {
40
40
  url.searchParams.set("appId", app.description);
41
41
  url.searchParams.set("device", app.reactNative.logicalDeviceId);
42
42
  url.searchParams.set("target", app.id);
43
+ // Request to open the React Native DevTools, but limit it to 1s
44
+ // This is a workaround as this endpoint might not respond on some devices
43
45
  const response = await fetch(url, {
44
- method: "POST"
46
+ method: "POST",
47
+ signal: AbortSignal.timeout(1000)
48
+ }).catch((error)=>{
49
+ // Only swallow timeout errors
50
+ if (error.name === "TimeoutError") {
51
+ return null;
52
+ }
53
+ throw error;
45
54
  });
46
- if (!response.ok) {
55
+ if (!response) {
56
+ debug(`No response received from the React Native DevTools.`);
57
+ } else if (response.ok === false) {
47
58
  debug("Failed to open React Native DevTools, received response:", response.status);
48
59
  }
49
- return response.ok;
60
+ return (response == null ? void 0 : response.ok) ?? true;
50
61
  }
51
62
  async function queryInspectorAppAsync(metroServerOrigin, appId) {
52
63
  const apps = await queryAllInspectorAppsAsync(metroServerOrigin);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/JsInspector.ts"],"sourcesContent":["import type { CustomMessageHandlerConnection } from '@react-native/dev-middleware';\nimport chalk from 'chalk';\n\nimport { evaluateJsFromCdpAsync } from './CdpClient';\nimport { selectAsync } from '../../../../utils/prompts';\nimport { pageIsSupported } from '../../metro/debugging/pageIsSupported';\n\nconst debug = require('debug')(\n 'expo:start:server:middleware:inspector:jsInspector'\n) as typeof console.log;\n\nexport interface MetroInspectorProxyApp {\n /** Unique device ID combined with the page ID */\n id: string;\n /** Information about the underlying CDP implementation, e.g. \"React Native Bridgeless [C++ connection]\" */\n title: string;\n /** The application ID that is currently running on the device, e.g. \"dev.expo.bareexpo\" */\n description: string;\n /** The CDP debugger type, which should always be \"node\" */\n type: 'node';\n /** The internal `devtools://..` URL for the debugger to connect to */\n devtoolsFrontendUrl: string;\n /** The websocket URL for the debugger to connect to */\n webSocketDebuggerUrl: string;\n /**\n * Human-readable device name\n * @since react-native@0.73\n */\n deviceName: string;\n /**\n * React Native specific information, like the unique device ID and native capabilities\n * @since react-native@0.74\n */\n reactNative?: {\n /** The unique device ID */\n logicalDeviceId: string;\n /** All supported native capabilities */\n capabilities: CustomMessageHandlerConnection['page']['capabilities'];\n };\n}\n\n/**\n * Launch the React Native DevTools by executing the `POST /open-debugger` request.\n * This endpoint is handled through `@react-native/dev-middleware`.\n */\nexport async function openJsInspector(metroBaseUrl: string, app: MetroInspectorProxyApp) {\n if (!app.reactNative?.logicalDeviceId) {\n debug('Failed to open React Native DevTools, target is missing device ID');\n return false;\n }\n\n const url = new URL('/open-debugger', metroBaseUrl);\n url.searchParams.set('appId', app.description);\n url.searchParams.set('device', app.reactNative.logicalDeviceId);\n url.searchParams.set('target', app.id);\n\n const response = await fetch(url, { method: 'POST' });\n if (!response.ok) {\n debug('Failed to open React Native DevTools, received response:', response.status);\n }\n\n return response.ok;\n}\n\nexport async function queryInspectorAppAsync(\n metroServerOrigin: string,\n appId: string\n): Promise<MetroInspectorProxyApp | null> {\n const apps = await queryAllInspectorAppsAsync(metroServerOrigin);\n return apps.find((app) => app.description === appId) ?? null;\n}\n\nexport async function queryAllInspectorAppsAsync(\n metroServerOrigin: string\n): Promise<MetroInspectorProxyApp[]> {\n const resp = await fetch(`${metroServerOrigin}/json/list`);\n const apps: MetroInspectorProxyApp[] = transformApps(await resp.json());\n const results: MetroInspectorProxyApp[] = [];\n for (const app of apps) {\n // Only use targets with better reloading support\n if (!pageIsSupported(app)) {\n continue;\n }\n // Hide targets that are marked as hidden from the inspector, e.g. instances from expo-dev-menu and expo-dev-launcher.\n if (await appShouldBeIgnoredAsync(app)) {\n continue;\n }\n results.push(app);\n }\n return results;\n}\n\nexport async function promptInspectorAppAsync(apps: MetroInspectorProxyApp[]) {\n if (apps.length === 1) {\n return apps[0];\n }\n\n // Check if multiple devices are connected with the same device names\n // In this case, append the actual app id (device ID + page number) to the prompt\n const hasDuplicateNames = apps.some(\n (app, index) => index !== apps.findIndex((other) => app.deviceName === other.deviceName)\n );\n\n const choices = apps.map((app) => {\n const name = app.deviceName ?? 'Unknown device';\n return {\n title: hasDuplicateNames ? chalk`${name}{dim - ${app.id}}` : name,\n value: app.id,\n app,\n };\n });\n\n const value = await selectAsync(chalk`Debug target {dim (Hermes only)}`, choices);\n\n return choices.find((item) => item.value === value)?.app;\n}\n\n// The description of `React Native Experimental (Improved Chrome Reloads)` target is `don't use` from metro.\n// This function tries to transform the unmeaningful description to appId\nfunction transformApps(apps: MetroInspectorProxyApp[]): MetroInspectorProxyApp[] {\n const deviceIdToAppId: Record<string, string> = {};\n\n for (const app of apps) {\n if (app.description !== \"don't use\") {\n const deviceId = app.reactNative?.logicalDeviceId ?? app.id.split('-')[0];\n const appId = app.description;\n deviceIdToAppId[deviceId] = appId;\n }\n }\n\n return apps.map((app) => {\n if (app.description === \"don't use\") {\n const deviceId = app.reactNative?.logicalDeviceId ?? app.id.split('-')[0];\n app.description = deviceIdToAppId[deviceId] ?? app.description;\n }\n return app;\n });\n}\n\nconst HIDE_FROM_INSPECTOR_ENV = 'globalThis.__expo_hide_from_inspector__';\n\nasync function appShouldBeIgnoredAsync(app: MetroInspectorProxyApp): Promise<boolean> {\n const hideFromInspector = await evaluateJsFromCdpAsync(\n app.webSocketDebuggerUrl,\n HIDE_FROM_INSPECTOR_ENV\n );\n debug(\n `[appShouldBeIgnoredAsync] webSocketDebuggerUrl[${app.webSocketDebuggerUrl}] hideFromInspector[${hideFromInspector}]`\n );\n return hideFromInspector !== undefined;\n}\n"],"names":["openJsInspector","queryInspectorAppAsync","queryAllInspectorAppsAsync","promptInspectorAppAsync","debug","require","metroBaseUrl","app","reactNative","logicalDeviceId","url","URL","searchParams","set","description","id","response","fetch","method","ok","status","metroServerOrigin","appId","apps","find","resp","transformApps","json","results","pageIsSupported","appShouldBeIgnoredAsync","push","choices","length","hasDuplicateNames","some","index","findIndex","other","deviceName","map","name","title","chalk","value","selectAsync","item","deviceIdToAppId","deviceId","split","HIDE_FROM_INSPECTOR_ENV","hideFromInspector","evaluateJsFromCdpAsync","webSocketDebuggerUrl","undefined"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/start/server/middleware/inspector/JsInspector.ts"],"sourcesContent":["import type { CustomMessageHandlerConnection } from '@react-native/dev-middleware';\nimport chalk from 'chalk';\n\nimport { evaluateJsFromCdpAsync } from './CdpClient';\nimport { selectAsync } from '../../../../utils/prompts';\nimport { pageIsSupported } from '../../metro/debugging/pageIsSupported';\n\nconst debug = require('debug')(\n 'expo:start:server:middleware:inspector:jsInspector'\n) as typeof console.log;\n\nexport interface MetroInspectorProxyApp {\n /** Unique device ID combined with the page ID */\n id: string;\n /** Information about the underlying CDP implementation, e.g. \"React Native Bridgeless [C++ connection]\" */\n title: string;\n /** The application ID that is currently running on the device, e.g. \"dev.expo.bareexpo\" */\n description: string;\n /** The CDP debugger type, which should always be \"node\" */\n type: 'node';\n /** The internal `devtools://..` URL for the debugger to connect to */\n devtoolsFrontendUrl: string;\n /** The websocket URL for the debugger to connect to */\n webSocketDebuggerUrl: string;\n /**\n * Human-readable device name\n * @since react-native@0.73\n */\n deviceName: string;\n /**\n * React Native specific information, like the unique device ID and native capabilities\n * @since react-native@0.74\n */\n reactNative?: {\n /** The unique device ID */\n logicalDeviceId: string;\n /** All supported native capabilities */\n capabilities: CustomMessageHandlerConnection['page']['capabilities'];\n };\n}\n\n/**\n * Launch the React Native DevTools by executing the `POST /open-debugger` request.\n * This endpoint is handled through `@react-native/dev-middleware`.\n */\nexport async function openJsInspector(metroBaseUrl: string, app: MetroInspectorProxyApp) {\n if (!app.reactNative?.logicalDeviceId) {\n debug('Failed to open React Native DevTools, target is missing device ID');\n return false;\n }\n\n const url = new URL('/open-debugger', metroBaseUrl);\n url.searchParams.set('appId', app.description);\n url.searchParams.set('device', app.reactNative.logicalDeviceId);\n url.searchParams.set('target', app.id);\n\n // Request to open the React Native DevTools, but limit it to 1s\n // This is a workaround as this endpoint might not respond on some devices\n const response = await fetch(url, {\n method: 'POST',\n signal: AbortSignal.timeout(1000),\n }).catch((error) => {\n // Only swallow timeout errors\n if (error.name === 'TimeoutError') {\n return null;\n }\n\n throw error;\n });\n\n if (!response) {\n debug(`No response received from the React Native DevTools.`);\n } else if (response.ok === false) {\n debug('Failed to open React Native DevTools, received response:', response.status);\n }\n\n return response?.ok ?? true;\n}\n\nexport async function queryInspectorAppAsync(\n metroServerOrigin: string,\n appId: string\n): Promise<MetroInspectorProxyApp | null> {\n const apps = await queryAllInspectorAppsAsync(metroServerOrigin);\n return apps.find((app) => app.description === appId) ?? null;\n}\n\nexport async function queryAllInspectorAppsAsync(\n metroServerOrigin: string\n): Promise<MetroInspectorProxyApp[]> {\n const resp = await fetch(`${metroServerOrigin}/json/list`);\n const apps: MetroInspectorProxyApp[] = transformApps(await resp.json());\n const results: MetroInspectorProxyApp[] = [];\n for (const app of apps) {\n // Only use targets with better reloading support\n if (!pageIsSupported(app)) {\n continue;\n }\n // Hide targets that are marked as hidden from the inspector, e.g. instances from expo-dev-menu and expo-dev-launcher.\n if (await appShouldBeIgnoredAsync(app)) {\n continue;\n }\n results.push(app);\n }\n return results;\n}\n\nexport async function promptInspectorAppAsync(apps: MetroInspectorProxyApp[]) {\n if (apps.length === 1) {\n return apps[0];\n }\n\n // Check if multiple devices are connected with the same device names\n // In this case, append the actual app id (device ID + page number) to the prompt\n const hasDuplicateNames = apps.some(\n (app, index) => index !== apps.findIndex((other) => app.deviceName === other.deviceName)\n );\n\n const choices = apps.map((app) => {\n const name = app.deviceName ?? 'Unknown device';\n return {\n title: hasDuplicateNames ? chalk`${name}{dim - ${app.id}}` : name,\n value: app.id,\n app,\n };\n });\n\n const value = await selectAsync(chalk`Debug target {dim (Hermes only)}`, choices);\n\n return choices.find((item) => item.value === value)?.app;\n}\n\n// The description of `React Native Experimental (Improved Chrome Reloads)` target is `don't use` from metro.\n// This function tries to transform the unmeaningful description to appId\nfunction transformApps(apps: MetroInspectorProxyApp[]): MetroInspectorProxyApp[] {\n const deviceIdToAppId: Record<string, string> = {};\n\n for (const app of apps) {\n if (app.description !== \"don't use\") {\n const deviceId = app.reactNative?.logicalDeviceId ?? app.id.split('-')[0];\n const appId = app.description;\n deviceIdToAppId[deviceId] = appId;\n }\n }\n\n return apps.map((app) => {\n if (app.description === \"don't use\") {\n const deviceId = app.reactNative?.logicalDeviceId ?? app.id.split('-')[0];\n app.description = deviceIdToAppId[deviceId] ?? app.description;\n }\n return app;\n });\n}\n\nconst HIDE_FROM_INSPECTOR_ENV = 'globalThis.__expo_hide_from_inspector__';\n\nasync function appShouldBeIgnoredAsync(app: MetroInspectorProxyApp): Promise<boolean> {\n const hideFromInspector = await evaluateJsFromCdpAsync(\n app.webSocketDebuggerUrl,\n HIDE_FROM_INSPECTOR_ENV\n );\n debug(\n `[appShouldBeIgnoredAsync] webSocketDebuggerUrl[${app.webSocketDebuggerUrl}] hideFromInspector[${hideFromInspector}]`\n );\n return hideFromInspector !== undefined;\n}\n"],"names":["openJsInspector","queryInspectorAppAsync","queryAllInspectorAppsAsync","promptInspectorAppAsync","debug","require","metroBaseUrl","app","reactNative","logicalDeviceId","url","URL","searchParams","set","description","id","response","fetch","method","signal","AbortSignal","timeout","catch","error","name","ok","status","metroServerOrigin","appId","apps","find","resp","transformApps","json","results","pageIsSupported","appShouldBeIgnoredAsync","push","choices","length","hasDuplicateNames","some","index","findIndex","other","deviceName","map","title","chalk","value","selectAsync","item","deviceIdToAppId","deviceId","split","HIDE_FROM_INSPECTOR_ENV","hideFromInspector","evaluateJsFromCdpAsync","webSocketDebuggerUrl","undefined"],"mappings":"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"}
@@ -31,7 +31,7 @@ class FetchClient {
31
31
  this.headers = {
32
32
  accept: "application/json",
33
33
  "content-type": "application/json",
34
- "user-agent": `expo-cli/${"0.19.6"}`,
34
+ "user-agent": `expo-cli/${"0.19.7"}`,
35
35
  authorization: "Basic " + _nodeBuffer().Buffer.from(`${target}:`).toString("base64")
36
36
  };
37
37
  }
@@ -79,7 +79,7 @@ function createContext() {
79
79
  cpu: summarizeCpuInfo(),
80
80
  app: {
81
81
  name: "expo/cli",
82
- version: "0.19.6"
82
+ version: "0.19.7"
83
83
  },
84
84
  ci: _ciInfo().isCI ? {
85
85
  name: _ciInfo().name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/cli",
3
- "version": "0.19.6",
3
+ "version": "0.19.7",
4
4
  "description": "The Expo CLI",
5
5
  "main": "build/bin/cli",
6
6
  "bin": {
@@ -55,7 +55,7 @@
55
55
  "@expo/rudder-sdk-node": "^1.1.1",
56
56
  "@expo/spawn-async": "^1.7.2",
57
57
  "@expo/xcpretty": "^4.3.0",
58
- "@react-native/dev-middleware": "0.76.0",
58
+ "@react-native/dev-middleware": "0.76.1",
59
59
  "@urql/core": "^2.3.6",
60
60
  "@urql/exchange-retry": "0.3.0",
61
61
  "accepts": "^1.3.8",
@@ -167,5 +167,5 @@
167
167
  "tree-kill": "^1.2.2",
168
168
  "tsd": "^0.28.1"
169
169
  },
170
- "gitHead": "773bd27c48c487920314d9c5faa4760ddbc4cb75"
170
+ "gitHead": "71f25de1d8fe12c0b91242fd6e882ccfb4698e17"
171
171
  }