@expo/cli 55.0.7 → 55.0.9

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.
Files changed (69) hide show
  1. package/build/bin/cli +13 -1
  2. package/build/bin/cli.map +1 -1
  3. package/build/src/config/configAsync.js +1 -1
  4. package/build/src/config/configAsync.js.map +1 -1
  5. package/build/src/customize/customizeAsync.js +1 -1
  6. package/build/src/customize/customizeAsync.js.map +1 -1
  7. package/build/src/export/embed/exportEmbedAsync.js +1 -1
  8. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  9. package/build/src/export/exportApp.js +1 -1
  10. package/build/src/export/exportApp.js.map +1 -1
  11. package/build/src/export/exportStaticAsync.js +7 -11
  12. package/build/src/export/exportStaticAsync.js.map +1 -1
  13. package/build/src/export/web/exportWebAsync.js +1 -1
  14. package/build/src/export/web/exportWebAsync.js.map +1 -1
  15. package/build/src/install/installAsync.js +1 -1
  16. package/build/src/install/installAsync.js.map +1 -1
  17. package/build/src/lint/lintAsync.js +1 -1
  18. package/build/src/lint/lintAsync.js.map +1 -1
  19. package/build/src/prebuild/prebuildAsync.js +1 -1
  20. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  21. package/build/src/run/android/runAndroidAsync.js +1 -1
  22. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  23. package/build/src/run/ios/runIosAsync.js +1 -1
  24. package/build/src/run/ios/runIosAsync.js.map +1 -1
  25. package/build/src/serve/serveAsync.js +1 -1
  26. package/build/src/serve/serveAsync.js.map +1 -1
  27. package/build/src/start/interface/commandsTable.js +89 -69
  28. package/build/src/start/interface/commandsTable.js.map +1 -1
  29. package/build/src/start/interface/interactiveActions.js +29 -14
  30. package/build/src/start/interface/interactiveActions.js.map +1 -1
  31. package/build/src/start/server/BundlerDevServer.js +16 -9
  32. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  33. package/build/src/start/server/DevServerManager.js +5 -1
  34. package/build/src/start/server/DevServerManager.js.map +1 -1
  35. package/build/src/start/server/UrlCreator.js +17 -7
  36. package/build/src/start/server/UrlCreator.js.map +1 -1
  37. package/build/src/start/server/getStaticRenderFunctions.js +8 -8
  38. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  39. package/build/src/start/server/metro/MetroBundlerDevServer.js +20 -20
  40. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  41. package/build/src/start/server/metro/MetroTerminalReporter.js +1 -1
  42. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  43. package/build/src/start/server/metro/createServerComponentsMiddleware.js +1 -1
  44. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -1
  45. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +18 -18
  46. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -1
  47. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +5 -1
  48. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -1
  49. package/build/src/start/server/metro/resolveLoader.js +2 -0
  50. package/build/src/start/server/metro/resolveLoader.js.map +1 -1
  51. package/build/src/start/server/metro/runServer-fork.js +6 -5
  52. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  53. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +4 -4
  54. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  55. package/build/src/utils/editor.js +404 -31
  56. package/build/src/utils/editor.js.map +1 -1
  57. package/build/src/utils/getRunningProcess.js +80 -41
  58. package/build/src/utils/getRunningProcess.js.map +1 -1
  59. package/build/src/utils/ip.js +44 -8
  60. package/build/src/utils/ip.js.map +1 -1
  61. package/build/src/utils/nodeEnv.js +66 -1
  62. package/build/src/utils/nodeEnv.js.map +1 -1
  63. package/build/src/utils/port.js +2 -2
  64. package/build/src/utils/port.js.map +1 -1
  65. package/build/src/utils/qr.js +186 -0
  66. package/build/src/utils/qr.js.map +1 -0
  67. package/build/src/utils/telemetry/clients/FetchClient.js +1 -1
  68. package/build/src/utils/telemetry/utils/context.js +1 -1
  69. package/package.json +16 -17
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/qr.ts"],"sourcesContent":["import tty from 'node:tty';\nimport { toQR } from 'toqr';\n\nimport { env } from './env';\nimport * as Log from '../log';\n\nexport interface QROutput {\n lines: number;\n print(): void;\n}\n\n/** Print the world famous 'Expo QR Code'. */\nexport function printQRCode(url: string): QROutput {\n const qr = toQR(url);\n const output = supportsSextants() ? createSextantOutput(qr) : createHalfblockOutput(qr);\n return {\n lines: output.split('\\n').length,\n print() {\n Log.log(output);\n },\n };\n}\n\n/** On specific terminals we can print a smaller QR code */\nfunction supportsSextants() {\n if (env.CI || !tty.isatty(1) || !tty.isatty(2)) {\n return false;\n } else if (process.env.COLOR === '0' || process.env.COLOR === 'false') {\n return false;\n }\n const isWindowsTerminal = process.platform === 'win32' && !!process.env.WT_SESSION?.length;\n const isGhostty = process.env.TERM_PROGRAM === 'ghostty';\n const isWezterm = process.env.TERM_PROGRAM === 'WezTerm';\n const isKitty = !!process.env.KITTY_WINDOW_ID?.length;\n const isAlacritty = !!process.env.ALACRITTY_WINDOW_ID?.length;\n return isWindowsTerminal || isGhostty || isWezterm || isKitty || isAlacritty;\n}\n\n/** ANSI QR code output by using half-blocks (1x2-sized unicode blocks) */\nfunction createHalfblockOutput(data: Uint8Array): string {\n const extent = Math.sqrt(data.byteLength) | 0;\n const CHAR_00 = '\\u2588';\n const CHAR_10 = '\\u2584';\n const CHAR_01 = '\\u2580';\n const CHAR_11 = ' ';\n let output = '';\n output += CHAR_10.repeat(extent + 2);\n for (let row = 0; row < extent; row += 2) {\n output += '\\n' + CHAR_00;\n for (let col = 0; col < extent; col++) {\n const value = (data[row * extent + col] << 1) | data[(row + 1) * extent + col];\n switch (value) {\n case 0b00:\n output += CHAR_00;\n break;\n case 0b01:\n output += CHAR_01;\n break;\n case 0b10:\n output += CHAR_10;\n break;\n case 0b11:\n output += CHAR_11;\n break;\n }\n }\n output += CHAR_00;\n }\n if (extent % 2 === 0) {\n output += '\\n' + CHAR_01.repeat(extent + 2);\n }\n output += '\\n';\n return output;\n}\n\n/** ANSI QR code output by using sextant-blocks (2x3-sized unicode blocks) */\nfunction createSextantOutput(data: Uint8Array): string {\n const getChar = (p: number): string => {\n // Invert then reverse\n let char = p ^ 0b111111;\n char = ((char & 0xaa) >> 1) | ((char & 0x55) << 1);\n char = ((char & 0xcc) >> 2) | ((char & 0x33) << 2);\n char = (char >> 4) | (char << 4);\n char = (char >> 2) & 63;\n switch (char) {\n case 0:\n return ' ';\n case 63:\n return '\\u2588';\n case 21:\n return '\\u258C';\n case 42:\n return '\\u2590';\n default:\n return String.fromCodePoint(0x1fb00 + char - 1 - (char > 21 ? 1 : 0) - (char > 42 ? 1 : 0));\n }\n };\n const extent = Math.sqrt(data.byteLength) | 0;\n const padded = extent + 2;\n let output = '';\n for (let baseRow = 0; baseRow < padded; baseRow += 3) {\n if (baseRow) output += '\\n';\n for (let baseCol = 0; baseCol < padded; baseCol += 2) {\n let p = 0;\n for (let dr = 0; dr < 3; dr++) {\n for (let dc = 0; dc < 2; dc++) {\n const r = baseRow + dr;\n const c = baseCol + dc;\n const bit = 5 - (dr * 2 + dc);\n let cell = 1; // default empty (out of bounds)\n if (r < padded && c < padded) {\n if (r === 0 || c === 0 || r === padded - 1 || c === padded - 1) {\n cell = 0; // border is filled\n } else if (r <= extent && c <= extent) {\n cell = data[(r - 1) * extent + (c - 1)];\n }\n }\n p |= (cell & 1) << bit;\n }\n }\n output += getChar(p);\n }\n }\n if (padded % 3 === 0) {\n // Only add newline if the padded output lines up with a newline exactly\n output += '\\n';\n }\n return output;\n}\n"],"names":["printQRCode","url","qr","toQR","output","supportsSextants","createSextantOutput","createHalfblockOutput","lines","split","length","print","Log","log","process","env","CI","tty","isatty","COLOR","isWindowsTerminal","platform","WT_SESSION","isGhostty","TERM_PROGRAM","isWezterm","isKitty","KITTY_WINDOW_ID","isAlacritty","ALACRITTY_WINDOW_ID","data","extent","Math","sqrt","byteLength","CHAR_00","CHAR_10","CHAR_01","CHAR_11","repeat","row","col","value","getChar","p","char","String","fromCodePoint","padded","baseRow","baseCol","dr","dc","r","c","bit","cell"],"mappings":"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"}
@@ -26,7 +26,7 @@ class FetchClient {
26
26
  this.headers = {
27
27
  accept: 'application/json',
28
28
  'content-type': 'application/json',
29
- 'user-agent': `expo-cli/${"55.0.7"}`,
29
+ 'user-agent': `expo-cli/${"55.0.9"}`,
30
30
  authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
31
31
  };
32
32
  }
@@ -83,7 +83,7 @@ function createContext() {
83
83
  cpu: summarizeCpuInfo(),
84
84
  app: {
85
85
  name: 'expo/cli',
86
- version: "55.0.7"
86
+ version: "55.0.9"
87
87
  },
88
88
  ci: _ciinfo().isCI ? {
89
89
  name: _ciinfo().name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/cli",
3
- "version": "55.0.7",
3
+ "version": "55.0.9",
4
4
  "description": "The Expo CLI",
5
5
  "main": "build/bin/cli",
6
6
  "bin": {
@@ -41,25 +41,26 @@
41
41
  "homepage": "https://github.com/expo/expo/tree/main/packages/@expo/cli",
42
42
  "dependencies": {
43
43
  "@expo/code-signing-certificates": "^0.0.6",
44
- "@expo/config": "~55.0.4",
45
- "@expo/config-plugins": "~55.0.4",
44
+ "@expo/config": "~55.0.6",
45
+ "@expo/config-plugins": "~55.0.5",
46
46
  "@expo/devcert": "^1.2.1",
47
- "@expo/env": "~2.1.0",
47
+ "@expo/env": "~2.1.1",
48
48
  "@expo/image-utils": "^0.8.12",
49
49
  "@expo/json-file": "^10.0.12",
50
- "@expo/log-box": "55.0.6",
50
+ "@expo/log-box": "55.0.7",
51
51
  "@expo/metro": "~54.2.0",
52
- "@expo/metro-config": "~55.0.5",
52
+ "@expo/metro-config": "~55.0.6",
53
53
  "@expo/osascript": "^2.4.2",
54
54
  "@expo/package-manager": "^1.10.3",
55
55
  "@expo/plist": "^0.5.2",
56
- "@expo/prebuild-config": "^55.0.4",
57
- "@expo/router-server": "^55.0.5",
56
+ "@expo/prebuild-config": "^55.0.5",
57
+ "@expo/require-utils": "^55.0.0",
58
+ "@expo/router-server": "^55.0.6",
58
59
  "@expo/schema-utils": "^55.0.2",
59
60
  "@expo/spawn-async": "^1.7.2",
60
61
  "@expo/ws-tunnel": "^1.0.1",
61
62
  "@expo/xcpretty": "^4.4.0",
62
- "@react-native/dev-middleware": "0.83.1",
63
+ "@react-native/dev-middleware": "0.83.2",
63
64
  "accepts": "^1.3.8",
64
65
  "arg": "^5.0.2",
65
66
  "better-opn": "~3.0.2",
@@ -70,13 +71,12 @@
70
71
  "compression": "^1.7.4",
71
72
  "connect": "^3.7.0",
72
73
  "debug": "^4.3.4",
73
- "dnssd-advertise": "^1.1.1",
74
- "env-editor": "^0.4.1",
75
- "expo-server": "^55.0.3",
76
- "fetch-nodeshim": "^0.4.5",
74
+ "dnssd-advertise": "^1.1.3",
75
+ "expo-server": "^55.0.4",
76
+ "fetch-nodeshim": "^0.4.6",
77
77
  "getenv": "^2.0.0",
78
78
  "glob": "^13.0.0",
79
- "lan-network": "^0.1.6",
79
+ "lan-network": "^0.2.0",
80
80
  "minimatch": "^9.0.0",
81
81
  "multitars": "^0.2.3",
82
82
  "node-forge": "^1.3.3",
@@ -86,8 +86,6 @@
86
86
  "pretty-format": "^29.7.0",
87
87
  "progress": "^2.0.3",
88
88
  "prompts": "^2.3.2",
89
- "qrcode-terminal": "0.11.0",
90
- "require-from-string": "^2.0.2",
91
89
  "resolve-from": "^5.0.0",
92
90
  "semver": "^7.6.0",
93
91
  "send": "^0.19.0",
@@ -96,6 +94,7 @@
96
94
  "stacktrace-parser": "^0.1.10",
97
95
  "structured-headers": "^0.4.1",
98
96
  "terminal-link": "^2.1.1",
97
+ "toqr": "^0.1.1",
99
98
  "wrap-ansi": "^7.0.0",
100
99
  "ws": "^8.12.1",
101
100
  "zod": "^3.25.76"
@@ -160,5 +159,5 @@
160
159
  "tree-kill": "^1.2.2",
161
160
  "tsd": "^0.28.1"
162
161
  },
163
- "gitHead": "cd3638bb85f9560392acfd5160a266cf97880b3b"
162
+ "gitHead": "aeb65063e482533ed1119f736555bcca5af2af94"
164
163
  }