UNPKG

@liara/cli

Version:

The command line interface for Liara

180 lines (179 loc) 4.86 kB
import WebSocket from 'ws'; import { Ora } from 'ora'; import { Command } from '@oclif/core'; import IBrowserLogin from './types/browser-login.js'; import { IVMOperations, IVMs } from './types/vm.js'; export interface IAccount { email: string; api_token?: string; 'api-token'?: string; region: string; fullname: string; avatar: string; current: boolean; accountName?: string; } export interface IAccounts { [key: string]: IAccount; } export interface IGlobalLiaraConfig { version: string; accounts: IAccounts; } export interface IConfig { 'api-token'?: string; account?: string; region?: string; image?: string; 'team-id'?: string; } export interface IProject { _id: string; planID: string; bundlePlanID: string; scale: number; type: string; status: string; project_id: string; created_at: string; isDeployed: boolean; network?: string; } export interface IGetProjectsResponse { projects: IProject[]; } export interface IDomains { _id: string; name: string; type: string; project: { _id: string; project_id: string; }; status: string; certificatesStatus: string; redirectTo: string; redirectStatus: number; created_at: string; CNameRecord: string; } export interface IGetDomainsResponse { domains: IDomains[]; } export interface IEnvs { key: string; value: string; encrypted: boolean; _id: string; } export interface IProjectDetails { _id: string; project_id: string; type: string; status: string; defaultSubdomain: boolean; zeroDowntime: boolean; scale: number; envs: IEnvs[]; planID: string; bundlePlanID: string; fixedIPStatus: string; created_at: string; node: { _id: string; IP: string; }; hourlyPrice: number; isDeployed: boolean; reservedDiskSpace: number; network: string; } export interface IProjectDetailsResponse { project: IProjectDetails; } export interface IBucket { id: string; name: string; plan: number; status: string; permission: string; project_id: string; createdAt: string; updatedAt: boolean; } export interface IGetBucketsResponse { status: string; buckets: IBucket[]; } export interface IMailboxes { plan: { name: string; }; domain: string; recordsStatus: string; mode: string; status: string; createdAt: string; id: string; smtp_server: string; smtp_port: number; } export interface IGetMailboxesResponse { status: string; data: { mailServers: IMailboxes[]; }; } export interface IMailPlan { available: boolean; maxAccount: number; maxForwarder: number; maxInbound: string; maxInboundMailRetention: number; maxOutboundMailRetention: number; maxOutboundPerDay: number; maxOutboundPerMonth: number; name: string; price: number; } export interface IGetMailsAccounts { name: string; createdAt: string; id: string; } export interface IGetMailsAccountsResponse { status: string; data: { accounts: IGetMailsAccounts[]; domain: string; }; } export interface Files { content_type: string | null; data: string; name: string; } export default abstract class extends Command { static flags: { help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>; dev: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; debug: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>; 'api-token': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; account: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; 'team-id': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>; }; got: import("got").Got; spinner: Ora; readGlobalConfig(): Promise<IGlobalLiaraConfig>; catch(error: any): Promise<void>; setGotConfig(config: IConfig): Promise<void>; createProxiedWebsocket(endpoint: string): WebSocket; promptProject(): Promise<string>; getCurrentAccount(): Promise<IAccount>; getAccount(accountName: string): Promise<IAccount>; browser(browser?: string): Promise<IBrowserLogin[]>; promptNetwork(): Promise<import("./types/network.js").default | undefined>; getNetwork(name: string): Promise<import("./types/network.js").default>; getVms(errorMessage: string, filter?: (vm: IVMs) => any): Promise<IVMs[]>; getVMOperations(vm: IVMs): Promise<IVMOperations[]>; }