From 7e349d39b0a2116f740dee3304100908d3f54700 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 26 Nov 2025 17:20:53 +0100 Subject: [PATCH] fix: password question hided behind spinner on download snapshot Signed-off-by: David Dal Busco --- src/commands/status.ts | 12 ++++-- .../snapshot/snapshot.orbiter.services.ts | 10 +++-- src/services/modules/start-stop.services.ts | 12 ++++-- .../upgrade/upgrade.orbiter.services.ts | 10 +++-- src/types/satellite.ts | 6 ++- src/utils/juno.config.utils.ts | 39 ++++++++++++++----- 6 files changed, 65 insertions(+), 24 deletions(-) diff --git a/src/commands/status.ts b/src/commands/status.ts index 3c8240d..760fde9 100644 --- a/src/commands/status.ts +++ b/src/commands/status.ts @@ -17,8 +17,8 @@ import type {AssetKey} from '../types/asset-key'; import {toAssetKeys} from '../utils/asset-key.utils'; import {orbiterKey, satelliteKey} from '../utils/cli.config.utils'; import { - assertConfigAndLoadSatelliteContext, - assertConfigAndReadOrbiterId + assertConfigAndLoadOrbiterContext, + assertConfigAndLoadSatelliteContext } from '../utils/juno.config.utils'; import {lastRelease} from '../utils/upgrade.utils'; @@ -96,9 +96,9 @@ const satelliteVersion = async () => { }; const orbitersVersion = async () => { - const {orbiterId} = await assertConfigAndReadOrbiterId(); + const orbiter = await assertConfigAndLoadOrbiterContext(); - if (isNullish(orbiterId)) { + if (isNullish(orbiter)) { return; } @@ -137,6 +137,10 @@ const orbitersVersion = async () => { }); }; + const { + orbiter: {orbiterId} + } = orbiter; + await checkOrbiterVersion(orbiterId); }; diff --git a/src/services/modules/snapshot/snapshot.orbiter.services.ts b/src/services/modules/snapshot/snapshot.orbiter.services.ts index 9f7853a..6081150 100644 --- a/src/services/modules/snapshot/snapshot.orbiter.services.ts +++ b/src/services/modules/snapshot/snapshot.orbiter.services.ts @@ -1,6 +1,6 @@ import {isNullish} from '@dfinity/utils'; import type {AssetKey} from '../../../types/asset-key'; -import {assertConfigAndReadOrbiterId} from '../../../utils/juno.config.utils'; +import {assertConfigAndLoadOrbiterContext} from '../../../utils/juno.config.utils'; import { createSnapshot, deleteSnapshot, @@ -53,12 +53,16 @@ const executeSnapshotFn = async ({ }: { fn: (params: {canisterId: string; segment: AssetKey}) => Promise; }) => { - const {orbiterId} = await assertConfigAndReadOrbiterId(); + const orbiter = await assertConfigAndLoadOrbiterContext(); - if (isNullish(orbiterId)) { + if (isNullish(orbiter)) { return; } + const { + orbiter: {orbiterId} + } = orbiter; + await fn({ canisterId: orbiterId, segment: 'orbiter' diff --git a/src/services/modules/start-stop.services.ts b/src/services/modules/start-stop.services.ts index f6bb625..4e9dc27 100644 --- a/src/services/modules/start-stop.services.ts +++ b/src/services/modules/start-stop.services.ts @@ -7,8 +7,8 @@ import {getCliMissionControl} from '../../configs/cli.config'; import type {AssetKey} from '../../types/asset-key'; import type {StartStopAction} from '../../types/start-stop'; import { - assertConfigAndLoadSatelliteContext, - assertConfigAndReadOrbiterId + assertConfigAndLoadOrbiterContext, + assertConfigAndLoadSatelliteContext } from '../../utils/juno.config.utils'; export const startStopMissionControl = async ({ @@ -32,12 +32,16 @@ export const startStopMissionControl = async ({ }; export const startStopOrbiter = async ({action}: {args?: string[]; action: StartStopAction}) => { - const {orbiterId} = await assertConfigAndReadOrbiterId(); + const orbiter = await assertConfigAndLoadOrbiterContext(); - if (isNullish(orbiterId)) { + if (isNullish(orbiter)) { return; } + const { + orbiter: {orbiterId} + } = orbiter; + await startStop({ action, segment: 'orbiter', diff --git a/src/services/modules/upgrade/upgrade.orbiter.services.ts b/src/services/modules/upgrade/upgrade.orbiter.services.ts index 65070e8..9000220 100644 --- a/src/services/modules/upgrade/upgrade.orbiter.services.ts +++ b/src/services/modules/upgrade/upgrade.orbiter.services.ts @@ -8,7 +8,7 @@ import {actorParameters} from '../../../api/actor.api'; import {ORBITER_WASM_NAME} from '../../../constants/constants'; import type {UpgradeWasmModule} from '../../../types/upgrade'; import {orbiterKey} from '../../../utils/cli.config.utils'; -import {assertConfigAndReadOrbiterId} from '../../../utils/juno.config.utils'; +import {assertConfigAndLoadOrbiterContext} from '../../../utils/juno.config.utils'; import {NEW_CMD_LINE} from '../../../utils/prompt.utils'; import {logUpgradeResult, readUpgradeOptions} from '../../../utils/upgrade.utils'; import { @@ -21,9 +21,9 @@ import { type Orbiter = Omit & {orbiterId: PrincipalText}; export const upgradeOrbiters = async (args?: string[]) => { - const {orbiterId} = await assertConfigAndReadOrbiterId(); + const orbiter = await assertConfigAndLoadOrbiterContext(); - if (isNullish(orbiterId)) { + if (isNullish(orbiter)) { return; } @@ -51,6 +51,10 @@ export const upgradeOrbiters = async (args?: string[]) => { logResult(result); }; + const { + orbiter: {orbiterId} + } = orbiter; + await upgradeOrbiter(orbiterId); }; diff --git a/src/types/satellite.ts b/src/types/satellite.ts index f5b4121..86ab814 100644 --- a/src/types/satellite.ts +++ b/src/types/satellite.ts @@ -1,6 +1,10 @@ import type {PrincipalText} from '@dfinity/zod-schemas'; -import type {SatelliteParameters} from '@junobuild/ic-client/actor'; +import type {OrbiterParameters, SatelliteParameters} from '@junobuild/ic-client/actor'; export type SatelliteParametersWithId = Omit & { satelliteId: PrincipalText; }; + +export type OrbiterParametersWithId = Omit & { + orbiterId: PrincipalText; +}; diff --git a/src/utils/juno.config.utils.ts b/src/utils/juno.config.utils.ts index 3be464b..3296511 100644 --- a/src/utils/juno.config.utils.ts +++ b/src/utils/juno.config.utils.ts @@ -5,7 +5,7 @@ import {red} from 'kleur'; import {actorParameters} from '../api/actor.api'; import {noJunoConfig, readJunoConfig} from '../configs/juno.config'; import {ENV} from '../env'; -import type {SatelliteParametersWithId} from '../types/satellite'; +import type {OrbiterParametersWithId, SatelliteParametersWithId} from '../types/satellite'; import {consoleNoConfigFound} from './msg.utils'; interface SatelliteConfigEnv { @@ -33,6 +33,35 @@ export const assertConfigAndLoadSatelliteContext = async (): Promise<{ return {satellite, satelliteConfig}; }; +export const assertConfigAndLoadOrbiterContext = async (): Promise< + | { + orbiter: OrbiterParametersWithId; + orbiterConfig: OrbiterConfig; + } + | undefined +> => { + const {orbiter: orbiterConfig} = await assertAndReadJunoConfig(); + + if (isNullish(orbiterConfig)) { + return undefined; + } + + const {orbiterId} = readOrbiterId({orbiter: orbiterConfig, env: ENV}); + + // Unlikely + if (isNullish(orbiterId)) { + return undefined; + } + + return { + orbiter: { + orbiterId, + ...(await actorParameters()) + }, + orbiterConfig + }; +}; + // Useful for reading the configuration without initializing an actor. // For example, during the authentication flow when no identity is defined yet, // or in other cases where we want to avoid waiting for the actor initialization timeout. @@ -42,14 +71,6 @@ export const assertConfigAndReadSatelliteId = async (): Promise<{satelliteId: Pr return assertAndReadSatelliteId({satellite: satelliteConfig, env: ENV}); }; -export const assertConfigAndReadOrbiterId = async (): Promise<{ - orbiterId: PrincipalText | undefined; -}> => { - const {orbiter: orbiterConfig} = await assertAndReadJunoConfig(); - - return readOrbiterId({orbiter: orbiterConfig, env: ENV}); -}; - const assertAndReadJunoConfig = async (): Promise => { if (await noJunoConfig()) { consoleNoConfigFound();