From 90ca9f4ca57ce2d7fe1c83132ad6ecbb240b729e Mon Sep 17 00:00:00 2001 From: szdziedzic Date: Wed, 29 Jul 2026 16:36:41 +0200 Subject: [PATCH 1/3] [eas-cli] Make simulator the index command --- .../__tests__/{start.test.ts => index.test.ts} | 10 +++++----- .../eas-cli/src/commands/simulator/availability.ts | 1 - packages/eas-cli/src/commands/simulator/events.ts | 1 - packages/eas-cli/src/commands/simulator/exec.ts | 1 - packages/eas-cli/src/commands/simulator/get.ts | 1 - .../src/commands/simulator/{start.ts => index.ts} | 9 ++++----- packages/eas-cli/src/commands/simulator/list.ts | 1 - packages/eas-cli/src/commands/simulator/stop.ts | 1 - 8 files changed, 9 insertions(+), 16 deletions(-) rename packages/eas-cli/src/commands/simulator/__tests__/{start.test.ts => index.test.ts} (98%) rename packages/eas-cli/src/commands/simulator/{start.ts => index.ts} (98%) diff --git a/packages/eas-cli/src/commands/simulator/__tests__/start.test.ts b/packages/eas-cli/src/commands/simulator/__tests__/index.test.ts similarity index 98% rename from packages/eas-cli/src/commands/simulator/__tests__/start.test.ts rename to packages/eas-cli/src/commands/simulator/__tests__/index.test.ts index 5fe80644a6..9b5fb78b5b 100644 --- a/packages/eas-cli/src/commands/simulator/__tests__/start.test.ts +++ b/packages/eas-cli/src/commands/simulator/__tests__/index.test.ts @@ -22,7 +22,7 @@ import { loadSimulatorEnvAsync, resetSimulatorEnvAsync, } from '../../../simulator/env'; -import SimulatorStart from '../start'; +import Simulator from '../index'; jest.mock('fs-extra'); jest.mock('../../../graphql/mutations/DeviceRunSessionMutation'); @@ -139,7 +139,7 @@ function getMockOclifConfig(): Config { return config; } -describe(SimulatorStart, () => { +describe(Simulator, () => { const mockConfig = getMockOclifConfig(); const previousDeviceRunSessionId = process.env[EAS_SIMULATOR_SESSION_ID]; @@ -162,10 +162,10 @@ describe(SimulatorStart, () => { }); function createCommand(argv: string[]): { - command: SimulatorStart; + command: Simulator; getContextAsync: jest.SpyInstance; } { - const command = new SimulatorStart(argv, mockConfig); + const command = new Simulator(argv, mockConfig); // @ts-expect-error getContextAsync is protected const getContextAsync = jest.spyOn(command, 'getContextAsync').mockResolvedValue({ loggedIn: { graphqlClient }, @@ -185,7 +185,7 @@ describe(SimulatorStart, () => { ]); await command.runAsync(); - expect(getContextAsync).toHaveBeenCalledWith(SimulatorStart, { + expect(getContextAsync).toHaveBeenCalledWith(Simulator, { nonInteractive: true, }); expect(mockCreateDeviceRunSessionAsync).toHaveBeenCalledWith(graphqlClient, { diff --git a/packages/eas-cli/src/commands/simulator/availability.ts b/packages/eas-cli/src/commands/simulator/availability.ts index ee5cb2a8d4..b8ae410c42 100644 --- a/packages/eas-cli/src/commands/simulator/availability.ts +++ b/packages/eas-cli/src/commands/simulator/availability.ts @@ -9,7 +9,6 @@ import { ora } from '../../ora'; import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json'; export default class SimulatorAvailability extends EasCommand { - static override hidden = true; static override description = '[EXPERIMENTAL] check whether EAS Simulator is enabled for the current project account'; diff --git a/packages/eas-cli/src/commands/simulator/events.ts b/packages/eas-cli/src/commands/simulator/events.ts index 4b06ae5fce..2825593ec1 100644 --- a/packages/eas-cli/src/commands/simulator/events.ts +++ b/packages/eas-cli/src/commands/simulator/events.ts @@ -29,7 +29,6 @@ const POLL_INTERVAL_MS = 5_000; const POST_STOP_REFRESH_COUNT = 2; export default class SimulatorEvents extends EasCommand { - static override hidden = true; static override description = '[EXPERIMENTAL] show activity events from a remote simulator session'; diff --git a/packages/eas-cli/src/commands/simulator/exec.ts b/packages/eas-cli/src/commands/simulator/exec.ts index ffb1fece64..afb5770569 100644 --- a/packages/eas-cli/src/commands/simulator/exec.ts +++ b/packages/eas-cli/src/commands/simulator/exec.ts @@ -4,7 +4,6 @@ import EasCommand from '../../commandUtils/EasCommand'; import { SIMULATOR_DOTENV_FILE_NAME, loadSimulatorEnvAsync } from '../../simulator/env'; export default class SimulatorExec extends EasCommand { - static override hidden = true; static override description = `[EXPERIMENTAL] execute a simulator command with ${SIMULATOR_DOTENV_FILE_NAME} environment loaded`; static override strict = false; diff --git a/packages/eas-cli/src/commands/simulator/get.ts b/packages/eas-cli/src/commands/simulator/get.ts index e5e72f08ab..b74de1ed79 100644 --- a/packages/eas-cli/src/commands/simulator/get.ts +++ b/packages/eas-cli/src/commands/simulator/get.ts @@ -27,7 +27,6 @@ type DeviceRunSessionById = DeviceRunSessionByIdQuery['deviceRunSessions']['byId type DeviceRunSessionArtifact = DeviceRunSessionById['artifacts'][number]; export default class SimulatorGet extends EasCommand { - static override hidden = true; static override description = '[EXPERIMENTAL] get info about a remote simulator session on EAS by its simulator session ID'; diff --git a/packages/eas-cli/src/commands/simulator/start.ts b/packages/eas-cli/src/commands/simulator/index.ts similarity index 98% rename from packages/eas-cli/src/commands/simulator/start.ts rename to packages/eas-cli/src/commands/simulator/index.ts index de1e95a36d..ab20303bdd 100644 --- a/packages/eas-cli/src/commands/simulator/start.ts +++ b/packages/eas-cli/src/commands/simulator/index.ts @@ -49,9 +49,8 @@ const APP_PLATFORM_BY_FLAG_VALUE: Record = { ios: AppPlatform.Ios, }; -export default class SimulatorStart extends EasCommand { - static override hidden = true; - static override aliases = ['simulator']; +export default class Simulator extends EasCommand { + static override aliases = ['simulator:start']; static override description = '[EXPERIMENTAL] start a remote simulator session on EAS and get instructions to connect to it'; @@ -100,7 +99,7 @@ export default class SimulatorStart extends EasCommand { }; async runAsync(): Promise { - const { flags } = await this.parse(SimulatorStart); + const { flags } = await this.parse(Simulator); const { json: jsonFlag, nonInteractive } = resolveNonInteractiveAndJsonFlags(flags); if (jsonFlag) { @@ -111,7 +110,7 @@ export default class SimulatorStart extends EasCommand { projectId, projectDir, loggedIn: { graphqlClient }, - } = await this.getContextAsync(SimulatorStart, { + } = await this.getContextAsync(Simulator, { nonInteractive, }); diff --git a/packages/eas-cli/src/commands/simulator/list.ts b/packages/eas-cli/src/commands/simulator/list.ts index 2a92b73f3e..548f4b6a07 100644 --- a/packages/eas-cli/src/commands/simulator/list.ts +++ b/packages/eas-cli/src/commands/simulator/list.ts @@ -49,7 +49,6 @@ const PLATFORM_BY_FLAG_VALUE = Object.fromEntries( ); export default class SimulatorList extends EasCommand { - static override hidden = true; static override description = '[EXPERIMENTAL] list remote simulator sessions for the current project'; diff --git a/packages/eas-cli/src/commands/simulator/stop.ts b/packages/eas-cli/src/commands/simulator/stop.ts index 440d193e15..8beb81081c 100644 --- a/packages/eas-cli/src/commands/simulator/stop.ts +++ b/packages/eas-cli/src/commands/simulator/stop.ts @@ -15,7 +15,6 @@ import { import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json'; export default class SimulatorStop extends EasCommand { - static override hidden = true; static override description = '[EXPERIMENTAL] stop a remote simulator session on EAS by its simulator session ID'; From c391e1e8534c2b240a0a3eedce78e875483c66b4 Mon Sep 17 00:00:00 2001 From: szdziedzic Date: Wed, 29 Jul 2026 16:37:56 +0200 Subject: [PATCH 2/3] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a95050c177..b8d63cabaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🎉 New features +- [eas-cli] Make `eas simulator` the canonical command, keep `eas simulator:start` as an alias, and list all simulator commands in `eas simulator --help`. ([#4112](https://github.com/expo/eas-cli/pull/4112) by [@szdziedzic](https://github.com/szdziedzic)) - [build-tools] Add `ref` input to the `eas/checkout` step to check out a different git ref (branch, tag, or commit SHA) than the one that triggered the job. ([#4035](https://github.com/expo/eas-cli/pull/4035) by [@sswrk](https://github.com/sswrk)) - [build-tools] Load local composite function catalogs at build time so custom builds and generic jobs can resolve local composite functions referenced via `uses:`. ([#3930](https://github.com/expo/eas-cli/pull/3930) by [@sswrk](https://github.com/sswrk)) From 2bdd6312e3e65e09971a515ed9416dde90d0aa76 Mon Sep 17 00:00:00 2001 From: szdziedzic Date: Wed, 29 Jul 2026 18:37:44 +0200 Subject: [PATCH 3/3] [eas-cli] Keep simulator commands hidden --- CHANGELOG.md | 2 +- packages/eas-cli/src/commands/simulator/availability.ts | 1 + packages/eas-cli/src/commands/simulator/events.ts | 1 + packages/eas-cli/src/commands/simulator/exec.ts | 1 + packages/eas-cli/src/commands/simulator/get.ts | 1 + packages/eas-cli/src/commands/simulator/index.ts | 1 + packages/eas-cli/src/commands/simulator/list.ts | 1 + packages/eas-cli/src/commands/simulator/stop.ts | 1 + 8 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8d63cabaa..b4e07c981d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ This is the log of notable changes to EAS CLI and related packages. ### 🎉 New features -- [eas-cli] Make `eas simulator` the canonical command, keep `eas simulator:start` as an alias, and list all simulator commands in `eas simulator --help`. ([#4112](https://github.com/expo/eas-cli/pull/4112) by [@szdziedzic](https://github.com/szdziedzic)) +- [eas-cli] Make `eas simulator` the canonical command and keep `eas simulator:start` as an alias. ([#4112](https://github.com/expo/eas-cli/pull/4112) by [@szdziedzic](https://github.com/szdziedzic)) - [build-tools] Add `ref` input to the `eas/checkout` step to check out a different git ref (branch, tag, or commit SHA) than the one that triggered the job. ([#4035](https://github.com/expo/eas-cli/pull/4035) by [@sswrk](https://github.com/sswrk)) - [build-tools] Load local composite function catalogs at build time so custom builds and generic jobs can resolve local composite functions referenced via `uses:`. ([#3930](https://github.com/expo/eas-cli/pull/3930) by [@sswrk](https://github.com/sswrk)) diff --git a/packages/eas-cli/src/commands/simulator/availability.ts b/packages/eas-cli/src/commands/simulator/availability.ts index b8ae410c42..ee5cb2a8d4 100644 --- a/packages/eas-cli/src/commands/simulator/availability.ts +++ b/packages/eas-cli/src/commands/simulator/availability.ts @@ -9,6 +9,7 @@ import { ora } from '../../ora'; import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json'; export default class SimulatorAvailability extends EasCommand { + static override hidden = true; static override description = '[EXPERIMENTAL] check whether EAS Simulator is enabled for the current project account'; diff --git a/packages/eas-cli/src/commands/simulator/events.ts b/packages/eas-cli/src/commands/simulator/events.ts index 2825593ec1..4b06ae5fce 100644 --- a/packages/eas-cli/src/commands/simulator/events.ts +++ b/packages/eas-cli/src/commands/simulator/events.ts @@ -29,6 +29,7 @@ const POLL_INTERVAL_MS = 5_000; const POST_STOP_REFRESH_COUNT = 2; export default class SimulatorEvents extends EasCommand { + static override hidden = true; static override description = '[EXPERIMENTAL] show activity events from a remote simulator session'; diff --git a/packages/eas-cli/src/commands/simulator/exec.ts b/packages/eas-cli/src/commands/simulator/exec.ts index afb5770569..ffb1fece64 100644 --- a/packages/eas-cli/src/commands/simulator/exec.ts +++ b/packages/eas-cli/src/commands/simulator/exec.ts @@ -4,6 +4,7 @@ import EasCommand from '../../commandUtils/EasCommand'; import { SIMULATOR_DOTENV_FILE_NAME, loadSimulatorEnvAsync } from '../../simulator/env'; export default class SimulatorExec extends EasCommand { + static override hidden = true; static override description = `[EXPERIMENTAL] execute a simulator command with ${SIMULATOR_DOTENV_FILE_NAME} environment loaded`; static override strict = false; diff --git a/packages/eas-cli/src/commands/simulator/get.ts b/packages/eas-cli/src/commands/simulator/get.ts index b74de1ed79..e5e72f08ab 100644 --- a/packages/eas-cli/src/commands/simulator/get.ts +++ b/packages/eas-cli/src/commands/simulator/get.ts @@ -27,6 +27,7 @@ type DeviceRunSessionById = DeviceRunSessionByIdQuery['deviceRunSessions']['byId type DeviceRunSessionArtifact = DeviceRunSessionById['artifacts'][number]; export default class SimulatorGet extends EasCommand { + static override hidden = true; static override description = '[EXPERIMENTAL] get info about a remote simulator session on EAS by its simulator session ID'; diff --git a/packages/eas-cli/src/commands/simulator/index.ts b/packages/eas-cli/src/commands/simulator/index.ts index ab20303bdd..cb9680ec45 100644 --- a/packages/eas-cli/src/commands/simulator/index.ts +++ b/packages/eas-cli/src/commands/simulator/index.ts @@ -50,6 +50,7 @@ const APP_PLATFORM_BY_FLAG_VALUE: Record = { }; export default class Simulator extends EasCommand { + static override hidden = true; static override aliases = ['simulator:start']; static override description = '[EXPERIMENTAL] start a remote simulator session on EAS and get instructions to connect to it'; diff --git a/packages/eas-cli/src/commands/simulator/list.ts b/packages/eas-cli/src/commands/simulator/list.ts index 548f4b6a07..2a92b73f3e 100644 --- a/packages/eas-cli/src/commands/simulator/list.ts +++ b/packages/eas-cli/src/commands/simulator/list.ts @@ -49,6 +49,7 @@ const PLATFORM_BY_FLAG_VALUE = Object.fromEntries( ); export default class SimulatorList extends EasCommand { + static override hidden = true; static override description = '[EXPERIMENTAL] list remote simulator sessions for the current project'; diff --git a/packages/eas-cli/src/commands/simulator/stop.ts b/packages/eas-cli/src/commands/simulator/stop.ts index 8beb81081c..440d193e15 100644 --- a/packages/eas-cli/src/commands/simulator/stop.ts +++ b/packages/eas-cli/src/commands/simulator/stop.ts @@ -15,6 +15,7 @@ import { import { enableJsonOutput, printJsonOnlyOutput } from '../../utils/json'; export default class SimulatorStop extends EasCommand { + static override hidden = true; static override description = '[EXPERIMENTAL] stop a remote simulator session on EAS by its simulator session ID';