UNPKG

@supernovaio/cli

Version:

Supernova.io Command Line Interface

151 lines 7.16 kB
import { Command } from "@oclif/core"; import { SupernovaApiClient } from "@supernova-studio/client"; import { z } from "zod"; import { SupernovaConfigService } from "../utils/config.service.js"; import { TargetEnv } from "./environment.js"; export declare abstract class BaseCommand<T extends object> extends Command { protected env: TargetEnv; protected configService: SupernovaConfigService; private _apiClient; abstract get commandId(): string; abstract get configSchema(): z.ZodType<T>; protected apiClient(): Promise<SupernovaApiClient>; protected ensureAuthenticated(): Promise<void>; protected performLogin(): Promise<boolean>; protected openBrowser(url: string): Promise<void>; protected promptLoginIfInteractive(): Promise<boolean>; protected init(): Promise<void>; protected promptBrandId(designSystemId: string, versionId?: string): Promise<string>; protected fetchAccessibleDesignSystems(): Promise<{ accessible: { id: string; createdAt: Date; updatedAt: Date; workspaceId: string; meta: { name: string; description?: string | undefined; }; sources: any[]; isPublic: true; docExporterId: string; docSlug: string; docSlugDeprecated: string; isMultibrand: boolean; basePrefixes: string[]; isApprovalFeatureEnabled: boolean; approvalRequiredForPublishing: boolean; accessMode: "Open" | "InviteOnly"; membersGenerated: boolean; sharedDraftId: string; isAvailableToUser: boolean; icon?: { id: string; url: string; name?: string | undefined; source?: { type: "UserUpload"; userId: string; } | { type: "Figma"; renderMode: "Image" | "HTML" | "JSON"; } | undefined; } | undefined; role?: "Owner" | "Admin" | "Creator" | "Viewer" | "Billing" | "Guest" | "Contributor" | undefined; docUserSlug?: string | undefined; docViewUrl?: string | undefined; designSystemSwitcher?: { isEnabled: boolean; designSystemIds: string[]; } | undefined; iconFileId?: string | undefined; effectiveRole?: "Admin" | "Creator" | "Viewer" | "Contributor" | undefined; }[]; workspaceById: Map<string, { id: string; profile: { name: string; color: string; handle: string; avatar?: string | undefined; billingDetails?: { address?: { state?: string | undefined; street1?: string | undefined; street2?: string | undefined; city?: string | undefined; postal?: string | undefined; country?: string | undefined; } | undefined; email?: string | undefined; notes?: string | undefined; companyName?: string | undefined; companyId?: string | undefined; vat?: string | undefined; poNumber?: string | undefined; } | undefined; }; subscription: { product: "company" | "enterprise" | "free" | "team" | "pro"; seats: number; seatLimit: number; planPriceId: string; planInterval: "daily" | "monthly" | "yearly"; status?: NonNullable<"active" | "suspended" | "gracePeriod" | "cancelled" | "downgraded_to_free"> | undefined; card?: { name?: string | null | undefined; cardId?: string | null | undefined; last4?: string | null | undefined; expiryMonth?: string | null | undefined; expiryYear?: string | null | undefined; brand?: string | null | undefined; } | undefined; monthlyCreditGrantAnchor?: string | undefined; monthlyCreditGrantAmount?: number | undefined; builderSeatLimit?: number | undefined; fullSeatLimit?: number | undefined; additionalCredits?: number | undefined; mcpConsumerLimit?: number | undefined; builderSeats?: number | undefined; fullSeats?: number | undefined; subscriptionStatus?: NonNullable<"unknown" | "active" | "trialing" | "past_due" | "canceled" | "unpaid" | "incomplete_expired" | "incomplete"> | undefined; internalStatus?: NonNullable<"active" | "suspended" | "gracePeriod" | "cancelled" | "downgraded_to_free"> | undefined; stripeSubscriptionId?: string | undefined; stripeCustomerId?: string | undefined; stripeScheduleId?: string | undefined; currentPeriodStart?: string | undefined; currentPeriodEnd?: string | undefined; cancelAt?: string | undefined; fullSeatPriceId?: string | undefined; builderSeatPriceId?: string | undefined; additionalCreditsPriceId?: string | undefined; subscriptionStatusUpdatedAt?: string | undefined; }; aiFeaturesEnabled: boolean; projectsEnabled: boolean; defaultProjectAccessMode: "Open" | "InviteOnly" | "Unlisted"; defaultProjectRole: "Builder" | "Viewer"; aiAskFeaturesEnabled: boolean; npmRegistry?: { authType: "Custom" | "None" | "Basic" | "Bearer"; registryType: "Custom" | "NPMJS" | "GitHub" | "AzureDevOps" | "Artifactory"; enabledScopes: string[]; bypassProxy: boolean; registryUrl: string; proxyUrl: string; password?: string | undefined; username?: string | undefined; accessToken?: string | undefined; customRegistryUrl?: string | undefined; } | undefined; aiCustomInstruction?: string | undefined; }>; }>; protected promptDesignSystemFromList(accessible: Awaited<ReturnType<BaseCommand<T>["fetchAccessibleDesignSystems"]>>["accessible"], workspaceById: Awaited<ReturnType<BaseCommand<T>["fetchAccessibleDesignSystems"]>>["workspaceById"]): Promise<string>; protected promptDesignSystemId(): Promise<string>; protected getVersionId(designSystemId: string, versionId?: string): Promise<string>; protected getWorkspaceId(workspaceId?: string): Promise<string>; private prompt; private searchPrompt; } //# sourceMappingURL=base-command.d.ts.map