UNPKG

@capgo/cli

Version:
69 lines (68 loc) • 3.63 kB
import type { AppVersionInsert, AppVersionRow } from '../types/api'; import type { CapgoClient } from '../utils'; import { invokeCapgoCliApi } from '../utils'; interface VersionOptions { silent?: boolean; apikey?: string; apiHost?: string; /** Injectable for unit tests; defaults to invokeCapgoCliApi. */ invoke?: typeof invokeCapgoCliApi; } interface DeleteSpecificVersionOptions extends VersionOptions { autoUnlink?: boolean; } interface CapgoHttpOptions { apikey: string; silent?: boolean; apiHost?: string; } export type BundleVersionLookupRow = Pick<AppVersionRow, 'id' | 'name' | 'checksum' | 'deleted' | 'created_at'>; export declare function fetchBundleVersionRow(apikey: string, appId: string, version: string, options?: VersionOptions & { includeDeleted?: boolean; }): Promise<BundleVersionLookupRow | null>; /** A bundle row without the heavy per-file `manifest` and `native_packages` arrays. */ export type BundleSummaryRow = Omit<AppVersionRow, 'manifest' | 'native_packages'>; export type UpsertAppVersionInput = Pick<AppVersionInsert, 'app_id' | 'name'> & Partial<Omit<AppVersionInsert, 'app_id' | 'name'>>; export declare function upsertAppVersion(apikey: string, versionData: UpsertAppVersionInput, options?: VersionOptions): Promise<number>; export declare function deleteAppVersion(client: CapgoClient | null, appid: string, bundle: string, options?: VersionOptions): Promise<void>; /** * Deletes one bundle with a single DELETE /bundle on the 2026-10-22 contract: the API resolves * the name, reports a missing bundle (`bundle_not_found`) and refuses a linked one * (`bundle_linked`, with the bundle id). Only that linked case does extra work: offer to unlink, * then retry. */ export declare function deleteSpecificVersion(client: CapgoClient, appid: string, bundle: string, options?: DeleteSpecificVersionOptions): Promise<void>; export interface CleanupBundleRow { id: number; name: string; created_at: string | null; linked: boolean; } export interface CleanupBundlesResult { /** Active bundles of the app (placeholders excluded), before the `bundle` range filter. */ active: number; /** Bundles inside the cleanup scope. */ total: number; kept: CleanupBundleRow[]; removed: CleanupBundleRow[]; dry_run: boolean; } /** Server-side cleanup: the API selects and soft-deletes old bundles in one request. */ export declare function cleanupAppVersions(appid: string, body: { keep: number; bundle?: string; ignoreChannel?: boolean; dryRun: boolean; ids?: number[]; }, options: CapgoHttpOptions & Pick<VersionOptions, 'invoke'>): Promise<CleanupBundlesResult>; export declare function displayBundles(data: (Pick<AppVersionRow, 'name' | 'created_at'> & { keep?: string; })[], silent?: boolean): void; export declare function getActiveAppVersions(apikeyOrClient: string | CapgoClient, appid: string, options?: VersionOptions): Promise<BundleSummaryRow[]>; /** Looks up one active bundle by name with a single filtered request. */ export declare function getVersionData(apikeyOrClient: string | CapgoClient, appid: string, bundle: string, options?: VersionOptions): Promise<AppVersionRow>; /** Looks up one active bundle by id with a single filtered request. */ export declare function getVersionDataById(apikey: string, appid: string, id: number, options?: VersionOptions): Promise<AppVersionRow | null>; /** Newest active bundle: a one-row list page. */ export declare function getLatestAppVersion(apikey: string, appid: string, options?: VersionOptions): Promise<AppVersionRow | null>; export {};