@expo/cli 58.0.8 → 58.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.
@@ -25,7 +25,7 @@ function wrapFetchWithUserAgent(fetch) {
25
25
  return (url, init = {})=>{
26
26
  const headers = new _fetch.Headers(init.headers);
27
27
  // Version is added in the build script
28
- headers.append('User-Agent', `expo-cli/${"58.0.8"}`);
28
+ headers.append('User-Agent', `expo-cli/${"58.0.9"}`);
29
29
  init.headers = headers;
30
30
  return fetch(url, init);
31
31
  };
@@ -89,11 +89,11 @@ const commandArgs = isSubcommand ? args._.slice(1) : args._;
89
89
  // LOG_EVENTS targets, parent IPC, and bounded command sessions in 2g's precedence order.
90
90
  (0, _2g().installEventLogger)({
91
91
  command: args['--version'] ? 'expo --version' : args['--help'] && !isSubcommand ? 'expo --help' : `expo ${command}`,
92
- version: "58.0.8"
92
+ version: "58.0.9"
93
93
  });
94
94
  if (args['--version']) {
95
95
  // Version is added in the build script.
96
- console.log("58.0.8");
96
+ console.log("58.0.9");
97
97
  process.exit(0);
98
98
  }
99
99
  if (args['--non-interactive']) {
@@ -29,7 +29,7 @@ class FetchClient {
29
29
  this.headers = {
30
30
  accept: 'application/json',
31
31
  'content-type': 'application/json',
32
- 'user-agent': `expo-cli/${"58.0.8"}`,
32
+ 'user-agent': `expo-cli/${"58.0.9"}`,
33
33
  authorization: 'Basic ' + _nodebuffer().Buffer.from(`${target}:`).toString('base64')
34
34
  };
35
35
  }
@@ -83,7 +83,7 @@ function createContext() {
83
83
  cpu: summarizeCpuInfo(),
84
84
  app: {
85
85
  name: 'expo/cli',
86
- version: "58.0.8"
86
+ version: "58.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": "58.0.8",
3
+ "version": "58.0.9",
4
4
  "description": "The Expo CLI",
5
5
  "keywords": [
6
6
  "cli",
@@ -42,30 +42,30 @@
42
42
  "dependencies": {
43
43
  "2g": "^0.4.3",
44
44
  "@expo/code-signing-certificates": "^0.0.6",
45
- "@expo/config": "~58.0.0",
46
- "@expo/config-plugins": "~58.0.3",
45
+ "@expo/config": "~58.0.1",
46
+ "@expo/config-plugins": "~58.0.4",
47
47
  "@expo/devcert": "^1.2.1",
48
- "@expo/env": "~2.5.0",
49
- "@expo/image-utils": "^0.12.1",
50
- "@expo/inline-modules": "^0.2.0",
51
- "@expo/json-file": "^11.2.0",
52
- "@expo/log-box": "^58.0.6",
53
- "@expo/log-box-utils": "^58.0.0",
48
+ "@expo/env": "~2.5.1",
49
+ "@expo/image-utils": "^0.12.2",
50
+ "@expo/inline-modules": "^0.2.1",
51
+ "@expo/json-file": "^11.2.1",
52
+ "@expo/log-box": "^58.0.7",
53
+ "@expo/log-box-utils": "^58.0.1",
54
54
  "@expo/metro": "~58.0.0-rc.0",
55
- "@expo/metro-config": "58.0.5",
56
- "@expo/metro-file-map": "^58.0.2",
57
- "@expo/osascript": "^2.8.0",
58
- "@expo/package-manager": "^1.14.0",
59
- "@expo/plist": "^0.10.0",
60
- "@expo/prebuild-config": "^58.0.5",
61
- "@expo/require-utils": "^58.0.1",
62
- "@expo/router-server": "^58.0.3",
63
- "@expo/schema-utils": "^58.0.0",
55
+ "@expo/metro-config": "58.0.6",
56
+ "@expo/metro-file-map": "^58.0.3",
57
+ "@expo/osascript": "^2.8.1",
58
+ "@expo/package-manager": "^1.14.1",
59
+ "@expo/plist": "^0.10.1",
60
+ "@expo/prebuild-config": "^58.0.6",
61
+ "@expo/require-utils": "^58.0.2",
62
+ "@expo/router-server": "^58.0.4",
63
+ "@expo/schema-utils": "^58.0.1",
64
64
  "@expo/spawn-async": "^1.8.0",
65
65
  "@expo/ws-tunnel": "^2.0.0",
66
66
  "@expo/xcpretty": "^4.4.4",
67
- "@react-native/dev-middleware": "0.88.0-rc.2",
68
- "@react-native/js-polyfills": "0.88.0-rc.2",
67
+ "@react-native/dev-middleware": "0.88.0-rc.3",
68
+ "@react-native/js-polyfills": "0.88.0-rc.3",
69
69
  "accepts": "^1.3.8",
70
70
  "agent-cli-detector": "0.1.7",
71
71
  "arg": "^5.0.2",
@@ -76,7 +76,7 @@
76
76
  "compression": "^1.7.4",
77
77
  "connect": "^3.7.0",
78
78
  "dnssd-advertise": "^1.1.6",
79
- "expo-server": "^58.0.1",
79
+ "expo-server": "^58.0.2",
80
80
  "fetch-nodeshim": "^0.4.10",
81
81
  "getenv": "^2.0.0",
82
82
  "glob": "^13.0.0",
@@ -104,7 +104,7 @@
104
104
  },
105
105
  "devDependencies": {
106
106
  "@babel/core": "^7.20.0",
107
- "@expo/fingerprint": "0.21.1",
107
+ "@expo/fingerprint": "0.21.2",
108
108
  "@expo/mcp-tunnel": "~0.2.3",
109
109
  "@expo/ngrok": "^4.1.3",
110
110
  "@jest/globals": "^29.7.0",
@@ -136,9 +136,9 @@
136
136
  "eslint": "^9.18.0",
137
137
  "expect": "^29.7.0",
138
138
  "expo-atlas": "^0.4.1",
139
- "expo-module-scripts": "56.0.3",
140
- "expo-modules-autolinking": "58.0.5",
141
- "expo-router": "58.0.9",
139
+ "expo-module-scripts": "56.0.4",
140
+ "expo-modules-autolinking": "58.0.6",
141
+ "expo-router": "58.0.10",
142
142
  "find-process": "^1.4.7",
143
143
  "jest-matcher-utils": "^29.7.0",
144
144
  "klaw-sync": "^6.0.0",
@@ -164,7 +164,6 @@
164
164
  "optional": true
165
165
  }
166
166
  },
167
- "gitHead": "74f6d2b90bc50bd8df7b160d6e6b2204b37a8ce7",
168
167
  "scripts": {
169
168
  "build": "pnpm run build:cli && pnpm run build:metro-require",
170
169
  "build:cli": "expo-build cjs:src=build/src",
package/build/bin/cli DELETED
@@ -1,278 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _arg() {
7
- const data = /*#__PURE__*/ _interop_require_default(require("arg"));
8
- _arg = function() {
9
- return data;
10
- };
11
- return data;
12
- }
13
- function _chalk() {
14
- const data = /*#__PURE__*/ _interop_require_default(require("chalk"));
15
- _chalk = function() {
16
- return data;
17
- };
18
- return data;
19
- }
20
- function _debug() {
21
- const data = /*#__PURE__*/ _interop_require_default(require("debug"));
22
- _debug = function() {
23
- return data;
24
- };
25
- return data;
26
- }
27
- function _getenv() {
28
- const data = require("getenv");
29
- _getenv = function() {
30
- return data;
31
- };
32
- return data;
33
- }
34
- const _events = require("../src/events");
35
- function _interop_require_default(obj) {
36
- return obj && obj.__esModule ? obj : {
37
- default: obj
38
- };
39
- }
40
- function _getRequireWildcardCache(nodeInterop) {
41
- if (typeof WeakMap !== "function") return null;
42
- var cacheBabelInterop = new WeakMap();
43
- var cacheNodeInterop = new WeakMap();
44
- return (_getRequireWildcardCache = function(nodeInterop) {
45
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
46
- })(nodeInterop);
47
- }
48
- function _interop_require_wildcard(obj, nodeInterop) {
49
- if (!nodeInterop && obj && obj.__esModule) {
50
- return obj;
51
- }
52
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
53
- return {
54
- default: obj
55
- };
56
- }
57
- var cache = _getRequireWildcardCache(nodeInterop);
58
- if (cache && cache.has(obj)) {
59
- return cache.get(obj);
60
- }
61
- var newObj = {
62
- __proto__: null
63
- };
64
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
65
- for(var key in obj){
66
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
67
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
68
- if (desc && (desc.get || desc.set)) {
69
- Object.defineProperty(newObj, key, desc);
70
- } else {
71
- newObj[key] = obj[key];
72
- }
73
- }
74
- }
75
- newObj.default = obj;
76
- if (cache) {
77
- cache.set(obj, newObj);
78
- }
79
- return newObj;
80
- }
81
- var _process_version;
82
- // Setup event logger output
83
- // NOTE: Done before any console output
84
- (0, _events.installEventLogger)();
85
- // Check Node.js version and issue a loud warning if it's too outdated
86
- // This is sent to stderr (console.error) so it doesn't interfere with programmatic commands
87
- const NODE_MIN = [
88
- 20,
89
- 19,
90
- 4
91
- ];
92
- const nodeVersion = (_process_version = process.version) == null ? void 0 : _process_version.slice(1).split('.', 3).map(Number);
93
- if (nodeVersion[0] < NODE_MIN[0] || nodeVersion[0] === NODE_MIN[0] && nodeVersion[1] < NODE_MIN[1]) {
94
- console.error(_chalk().default.red`{bold Node.js (${process.version}) is outdated and unsupported.}` + _chalk().default.red` Please update to a newer Node.js LTS version (required: >=${NODE_MIN.join('.')})\n` + _chalk().default.red`Go to: https://nodejs.org/en/download\n`);
95
- }
96
- // Setup before requiring `debug`.
97
- if ((0, _getenv().boolish)('EXPO_DEBUG', false)) {
98
- _debug().default.enable('expo:*');
99
- } else if (_debug().default.enabled('expo:')) {
100
- process.env.EXPO_DEBUG = '1';
101
- }
102
- const defaultCmd = 'start';
103
- const commands = {
104
- // Add a new command here
105
- // NOTE(EvanBacon): Ensure every bundler-related command sets `NODE_ENV` as expected for the command.
106
- run: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/run/index.js"))).then((i)=>i.expoRun),
107
- 'run:ios': ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/run/ios/index.js"))).then((i)=>i.expoRunIos),
108
- 'run:android': ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/run/android/index.js"))).then((i)=>i.expoRunAndroid),
109
- start: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/start/index.js"))).then((i)=>i.expoStart),
110
- prebuild: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/prebuild/index.js"))).then((i)=>i.expoPrebuild),
111
- config: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/config/index.js"))).then((i)=>i.expoConfig),
112
- export: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/export/index.js"))).then((i)=>i.expoExport),
113
- 'export:web': ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/export/web/index.js"))).then((i)=>i.expoExportWeb),
114
- 'export:embed': ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/export/embed/index.js"))).then((i)=>i.expoExportEmbed),
115
- serve: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/serve/index.js"))).then((i)=>i.expoServe),
116
- // Auxiliary commands
117
- install: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/install/index.js"))).then((i)=>i.expoInstall),
118
- add: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/install/index.js"))).then((i)=>i.expoInstall),
119
- customize: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/customize/index.js"))).then((i)=>i.expoCustomize),
120
- lint: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/lint/index.js"))).then((i)=>i.expoLint),
121
- // Auth
122
- login: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/login/index.js"))).then((i)=>i.expoLogin),
123
- logout: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/logout/index.js"))).then((i)=>i.expoLogout),
124
- register: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/register/index.js"))).then((i)=>i.expoRegister),
125
- whoami: ()=>Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard(require("../src/whoami/index.js"))).then((i)=>i.expoWhoami)
126
- };
127
- const args = (0, _arg().default)({
128
- // Types
129
- '--version': Boolean,
130
- '--help': Boolean,
131
- // NOTE(EvanBacon): This is here to silence warnings from processes that
132
- // expect the global expo-cli.
133
- '--non-interactive': Boolean,
134
- // Aliases
135
- '-v': '--version',
136
- '-h': '--help'
137
- }, {
138
- permissive: true
139
- });
140
- if (args['--version']) {
141
- // Version is added in the build script.
142
- console.log("57.0.27");
143
- process.exit(0);
144
- }
145
- if (args['--non-interactive']) {
146
- console.warn(_chalk().default.yellow` {bold --non-interactive} is not supported, use {bold $CI=1} instead`);
147
- }
148
- // Check if we are running `npx expo <subcommand>` or `npx expo`
149
- const isSubcommand = !!(args._[0] && commands[args._[0]]);
150
- // Handle `--help` flag
151
- if (!isSubcommand && args['--help']) {
152
- const { login, logout, whoami, register, start, install, add, export: _export, config, customize, prebuild, 'run:ios': runIos, 'run:android': runAndroid, // NOTE(EvanBacon): Don't document this command as it's a temporary
153
- // workaround until we can use `expo export` for all production bundling.
154
- // https://github.com/expo/expo/pull/21396/files#r1121025873
155
- 'export:embed': exportEmbed_unused, // The export:web command is deprecated. Hide it from the help prompt.
156
- 'export:web': exportWeb_unused, // Other ignored commands, these are intentially not listed in the `--help` output
157
- run: _run, // NOTE(cedric): Still pending the migration to ESLint's flat config
158
- lint: _lint, serve, // All other commands
159
- ...others } = commands;
160
- console.log((0, _chalk().default)`
161
- {bold Usage}
162
- {dim $} npx expo <command>
163
-
164
- {bold Commands}
165
- ${Object.keys({
166
- start,
167
- export: _export,
168
- ...others
169
- }).join(', ')}
170
- ${Object.keys({
171
- 'run:ios': runIos,
172
- 'run:android': runAndroid,
173
- prebuild
174
- }).join(', ')}
175
- ${Object.keys({
176
- install,
177
- customize,
178
- config,
179
- serve
180
- }).join(', ')}
181
- {dim ${Object.keys({
182
- login,
183
- logout,
184
- whoami,
185
- register
186
- }).join(', ')}}
187
-
188
- {bold Options}
189
- --version, -v Version number
190
- --help, -h Usage info
191
-
192
- For more info run a command with the {bold --help} flag
193
- {dim $} npx expo start --help
194
- `);
195
- process.exit(0);
196
- }
197
- // NOTE(EvanBacon): Squat some directory names to help with migration,
198
- // users can still use folders named "send" or "eject" by using the fully qualified `npx expo start ./send`.
199
- if (!isSubcommand) {
200
- const migrationMap = {
201
- init: 'npx create-expo-app',
202
- eject: 'npx expo prebuild',
203
- web: 'npx expo start --web',
204
- 'start:web': 'npx expo start --web',
205
- 'build:ios': 'eas build -p ios',
206
- 'build:android': 'eas build -p android',
207
- 'client:install:ios': 'npx expo start --ios',
208
- 'client:install:android': 'npx expo start --android',
209
- doctor: 'npx expo-doctor',
210
- upgrade: 'https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/',
211
- 'customize:web': 'npx expo customize',
212
- publish: 'eas update',
213
- 'publish:set': 'eas update',
214
- 'publish:rollback': 'eas update',
215
- 'publish:history': 'eas update',
216
- 'publish:details': 'eas update',
217
- 'build:web': 'npx expo export:web',
218
- 'credentials:manager': `eas credentials`,
219
- 'fetch:ios:certs': `eas credentials`,
220
- 'fetch:android:keystore': `eas credentials`,
221
- 'fetch:android:hashes': `eas credentials`,
222
- 'fetch:android:upload-cert': `eas credentials`,
223
- 'push:android:upload': `eas credentials`,
224
- 'push:android:show': `eas credentials`,
225
- 'push:android:clear': `eas credentials`,
226
- url: `eas build:list`,
227
- 'url:ipa': `eas build:list`,
228
- 'url:apk': `eas build:list`,
229
- webhooks: `eas webhook`,
230
- 'webhooks:add': `eas webhook:create`,
231
- 'webhooks:remove': `eas webhook:delete`,
232
- 'webhooks:update': `eas webhook:update`,
233
- 'build:status': `eas build:list`,
234
- 'upload:android': `eas submit -p android`,
235
- 'upload:ios': `eas submit -p ios`
236
- };
237
- // TODO: Log telemetry about invalid command used.
238
- const subcommand = args._[0];
239
- if (subcommand && subcommand in migrationMap) {
240
- const replacement = migrationMap[subcommand];
241
- console.log();
242
- const instruction = subcommand === 'upgrade' ? 'follow this guide' : 'use';
243
- console.log(_chalk().default.yellow` {gray $} {bold expo ${subcommand}} is not supported in the local CLI, please ${instruction} {bold ${replacement}} instead`);
244
- console.log();
245
- process.exit(1);
246
- }
247
- const deprecated = [
248
- 'send',
249
- 'client:ios'
250
- ];
251
- if (subcommand && deprecated.includes(subcommand)) {
252
- console.log();
253
- console.log(_chalk().default.yellow` {gray $} {bold expo ${subcommand}} is deprecated`);
254
- console.log();
255
- process.exit(1);
256
- }
257
- }
258
- const command = isSubcommand ? args._[0] : defaultCmd;
259
- const commandArgs = isSubcommand ? args._.slice(1) : args._;
260
- // Push the help flag to the subcommand args.
261
- if (args['--help']) {
262
- commandArgs.push('--help');
263
- }
264
- // Install exit hooks
265
- process.on('SIGINT', ()=>process.exit(0));
266
- process.on('SIGTERM', ()=>process.exit(0));
267
- commands[command]().then((exec)=>{
268
- exec(commandArgs);
269
- // NOTE(EvanBacon): Track some basic telemetry events indicating the command
270
- // that was run. This can be disabled with the $EXPO_NO_TELEMETRY environment variable.
271
- // We do this to determine how well deprecations are going before removing a command.
272
- if (!(0, _getenv().boolish)('EXPO_NO_TELEMETRY', false)) {
273
- const { recordCommand } = require('../src/utils/telemetry');
274
- recordCommand(command);
275
- }
276
- });
277
-
278
- //# sourceMappingURL=cli.map
package/build/bin/cli.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport Debug from 'debug';\nimport { boolish } from 'getenv';\n\nimport { installEventLogger } from '../src/events';\n\n// Setup event logger output\n// NOTE: Done before any console output\ninstallEventLogger();\n\n// Check Node.js version and issue a loud warning if it's too outdated\n// This is sent to stderr (console.error) so it doesn't interfere with programmatic commands\nconst NODE_MIN = [20, 19, 4] as const;\nconst nodeVersion = process.version?.slice(1).split('.', 3).map(Number);\nif (nodeVersion[0]! < NODE_MIN[0] || (nodeVersion[0] === NODE_MIN[0] && nodeVersion[1]! < NODE_MIN[1])) {\n console.error(\n chalk.red`{bold Node.js (${process.version}) is outdated and unsupported.}`\n + chalk.red` Please update to a newer Node.js LTS version (required: >=${NODE_MIN.join('.')})\\n`\n + chalk.red`Go to: https://nodejs.org/en/download\\n`\n );\n}\n\n// Setup before requiring `debug`.\nif (boolish('EXPO_DEBUG', false)) {\n Debug.enable('expo:*');\n} else if (Debug.enabled('expo:')) {\n process.env.EXPO_DEBUG = '1';\n}\n\nconst defaultCmd = 'start';\n\nexport type Command = (argv?: string[]) => void;\n\nconst commands: { [command: string]: () => Promise<Command> } = {\n // Add a new command here\n // NOTE(EvanBacon): Ensure every bundler-related command sets `NODE_ENV` as expected for the command.\n run: () => import('../src/run/index.js').then((i) => i.expoRun),\n 'run:ios': () => import('../src/run/ios/index.js').then((i) => i.expoRunIos),\n 'run:android': () => import('../src/run/android/index.js').then((i) => i.expoRunAndroid),\n start: () => import('../src/start/index.js').then((i) => i.expoStart),\n prebuild: () => import('../src/prebuild/index.js').then((i) => i.expoPrebuild),\n config: () => import('../src/config/index.js').then((i) => i.expoConfig),\n export: () => import('../src/export/index.js').then((i) => i.expoExport),\n 'export:web': () => import('../src/export/web/index.js').then((i) => i.expoExportWeb),\n 'export:embed': () => import('../src/export/embed/index.js').then((i) => i.expoExportEmbed),\n\n serve: () => import('../src/serve/index.js').then((i) => i.expoServe),\n\n // Auxiliary commands\n install: () => import('../src/install/index.js').then((i) => i.expoInstall),\n add: () => import('../src/install/index.js').then((i) => i.expoInstall),\n customize: () => import('../src/customize/index.js').then((i) => i.expoCustomize),\n lint: () => import('../src/lint/index.js').then((i) => i.expoLint),\n\n // Auth\n login: () => import('../src/login/index.js').then((i) => i.expoLogin),\n logout: () => import('../src/logout/index.js').then((i) => i.expoLogout),\n register: () => import('../src/register/index.js').then((i) => i.expoRegister),\n whoami: () => import('../src/whoami/index.js').then((i) => i.expoWhoami),\n};\n\nconst args = arg(\n {\n // Types\n '--version': Boolean,\n '--help': Boolean,\n // NOTE(EvanBacon): This is here to silence warnings from processes that\n // expect the global expo-cli.\n '--non-interactive': Boolean,\n\n // Aliases\n '-v': '--version',\n '-h': '--help',\n },\n {\n permissive: true,\n }\n);\n\nif (args['--version']) {\n // Version is added in the build script.\n console.log(process.env.__EXPO_VERSION);\n process.exit(0);\n}\n\nif (args['--non-interactive']) {\n console.warn(chalk.yellow` {bold --non-interactive} is not supported, use {bold $CI=1} instead`);\n}\n\n// Check if we are running `npx expo <subcommand>` or `npx expo`\nconst isSubcommand = !!(args._[0] && commands[args._[0]]);\n\n// Handle `--help` flag\nif (!isSubcommand && args['--help']) {\n const {\n login,\n logout,\n whoami,\n register,\n start,\n install,\n add,\n export: _export,\n config,\n customize,\n prebuild,\n 'run:ios': runIos,\n 'run:android': runAndroid,\n // NOTE(EvanBacon): Don't document this command as it's a temporary\n // workaround until we can use `expo export` for all production bundling.\n // https://github.com/expo/expo/pull/21396/files#r1121025873\n 'export:embed': exportEmbed_unused,\n // The export:web command is deprecated. Hide it from the help prompt.\n 'export:web': exportWeb_unused,\n // Other ignored commands, these are intentially not listed in the `--help` output\n run: _run,\n // NOTE(cedric): Still pending the migration to ESLint's flat config\n lint: _lint,\n serve,\n // All other commands\n ...others\n } = commands;\n\n console.log(chalk`\n {bold Usage}\n {dim $} npx expo <command>\n\n {bold Commands}\n ${Object.keys({ start, export: _export, ...others }).join(', ')}\n ${Object.keys({ 'run:ios': runIos, 'run:android': runAndroid, prebuild }).join(', ')}\n ${Object.keys({ install, customize, config, serve }).join(', ')}\n {dim ${Object.keys({ login, logout, whoami, register }).join(', ')}}\n\n {bold Options}\n --version, -v Version number\n --help, -h Usage info\n\n For more info run a command with the {bold --help} flag\n {dim $} npx expo start --help\n`);\n\n process.exit(0);\n}\n\n// NOTE(EvanBacon): Squat some directory names to help with migration,\n// users can still use folders named \"send\" or \"eject\" by using the fully qualified `npx expo start ./send`.\nif (!isSubcommand) {\n const migrationMap: Record<string, string> = {\n init: 'npx create-expo-app',\n eject: 'npx expo prebuild',\n web: 'npx expo start --web',\n 'start:web': 'npx expo start --web',\n 'build:ios': 'eas build -p ios',\n 'build:android': 'eas build -p android',\n 'client:install:ios': 'npx expo start --ios',\n 'client:install:android': 'npx expo start --android',\n doctor: 'npx expo-doctor',\n upgrade: 'https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/',\n 'customize:web': 'npx expo customize',\n\n publish: 'eas update',\n 'publish:set': 'eas update',\n 'publish:rollback': 'eas update',\n 'publish:history': 'eas update',\n 'publish:details': 'eas update',\n\n 'build:web': 'npx expo export:web',\n\n 'credentials:manager': `eas credentials`,\n 'fetch:ios:certs': `eas credentials`,\n 'fetch:android:keystore': `eas credentials`,\n 'fetch:android:hashes': `eas credentials`,\n 'fetch:android:upload-cert': `eas credentials`,\n 'push:android:upload': `eas credentials`,\n 'push:android:show': `eas credentials`,\n 'push:android:clear': `eas credentials`,\n url: `eas build:list`,\n 'url:ipa': `eas build:list`,\n 'url:apk': `eas build:list`,\n webhooks: `eas webhook`,\n 'webhooks:add': `eas webhook:create`,\n 'webhooks:remove': `eas webhook:delete`,\n 'webhooks:update': `eas webhook:update`,\n\n 'build:status': `eas build:list`,\n 'upload:android': `eas submit -p android`,\n 'upload:ios': `eas submit -p ios`,\n };\n\n // TODO: Log telemetry about invalid command used.\n const subcommand = args._[0];\n if (subcommand && subcommand in migrationMap) {\n const replacement = migrationMap[subcommand];\n console.log();\n const instruction = subcommand === 'upgrade' ? 'follow this guide' : 'use';\n console.log(\n chalk.yellow` {gray $} {bold expo ${subcommand}} is not supported in the local CLI, please ${instruction} {bold ${replacement}} instead`\n );\n console.log();\n process.exit(1);\n }\n const deprecated = ['send', 'client:ios'];\n if (subcommand && deprecated.includes(subcommand)) {\n console.log();\n console.log(chalk.yellow` {gray $} {bold expo ${subcommand}} is deprecated`);\n console.log();\n process.exit(1);\n }\n}\n\nconst command = isSubcommand ? args._[0]! : defaultCmd;\nconst commandArgs = isSubcommand ? args._.slice(1) : args._;\n\n// Push the help flag to the subcommand args.\nif (args['--help']) {\n commandArgs.push('--help');\n}\n\n// Install exit hooks\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\ncommands[command]!().then((exec) => {\n exec(commandArgs);\n\n // NOTE(EvanBacon): Track some basic telemetry events indicating the command\n // that was run. This can be disabled with the $EXPO_NO_TELEMETRY environment variable.\n // We do this to determine how well deprecations are going before removing a command.\n if (!boolish('EXPO_NO_TELEMETRY', false)) {\n const { recordCommand } =\n require('../src/utils/telemetry') as typeof import('../src/utils/telemetry');\n recordCommand(command);\n }\n});\n"],"names":["process","installEventLogger","NODE_MIN","nodeVersion","version","slice","split","map","Number","console","error","chalk","red","join","boolish","Debug","enable","enabled","env","EXPO_DEBUG","defaultCmd","commands","run","then","i","expoRun","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","expoExportWeb","expoExportEmbed","serve","expoServe","install","expoInstall","add","customize","expoCustomize","lint","expoLint","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","log","__EXPO_VERSION","exit","warn","yellow","isSubcommand","_","_export","runIos","runAndroid","exportEmbed_unused","exportWeb_unused","_run","_lint","others","Object","keys","migrationMap","init","eject","web","doctor","upgrade","publish","url","webhooks","subcommand","replacement","instruction","deprecated","includes","command","commandArgs","push","on","exec","recordCommand","require"],"mappings":"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"}