@dataroadinc/setup-auth
Version:
CLI tool and programmatic API for automated OAuth setup across cloud platforms
97 lines (96 loc) • 2.87 kB
TypeScript
export interface VercelEnvVariable {
key: string;
value: string;
targets?: string[];
scope?: string;
}
export interface EnvVariable {
id: string;
key: string;
value: string;
target: string[];
type: string;
gitBranch: string | null;
createdAt: number;
updatedAt: number;
}
export interface VercelProject {
id: string;
name: string;
accountId: string;
}
export interface VercelTeam {
id: string;
name: string;
slug: string;
}
export interface VercelApiResponse<T = unknown> {
data?: T;
error?: {
message: string;
status: string;
code: string;
details?: unknown;
};
}
export interface VercelClientInterface {
getToken(): Promise<string | null>;
getTeamId(): Promise<string | null>;
getProjectName(): Promise<string | null>;
getProjectId(): Promise<string | null>;
getProject(name: string): Promise<VercelProject>;
getEnvVariables(): Promise<EnvVariable[]>;
createEnvVariable(envVar: VercelEnvVariable): Promise<EnvVariable>;
updateEnvVariable(envId: string, envVar: VercelEnvVariable): Promise<EnvVariable>;
removeEnvVariable(envId: string): Promise<void>;
getDeployments(): Promise<string[]>;
getTeams(): Promise<VercelTeam[]>;
getProjects(): Promise<VercelProject[]>;
}
interface VercelJson {
version?: number;
name?: string;
scope?: string;
alias?: string[];
builds?: BuildConfiguration[];
routes?: RouteConfiguration[];
rewrites?: RewriteRule[];
redirects?: RedirectRule[];
headers?: HeaderRule[];
cleanUrls?: boolean;
trailingSlash?: boolean;
}
interface BuildConfiguration {
src: string;
use: string;
config?: Record<string, unknown>;
}
interface RouteConfiguration {
src: string;
dest?: string;
methods?: string[];
headers?: Record<string, string>;
}
interface RewriteRule {
source: string;
destination: string;
}
interface RedirectRule {
source: string;
destination: string;
statusCode?: number;
}
interface HeaderRule {
source: string;
headers: Array<{
key: string;
value: string;
}>;
}
export declare function getVercelJsonPath(): Promise<string | null>;
export declare function getVercelJson(): Promise<VercelJson | null>;
export declare function updateVercelWithOAuthCredentials(vercelClient: VercelClientInterface, clientId: string, clientSecret: string | undefined, allowedDomains?: string | undefined): Promise<void>;
export declare function getVercelClient(): Promise<VercelClientInterface>;
export declare function updateVercelEnvVarWithRetry(client: VercelClientInterface, key: string, value: string, scope?: string | null | undefined, maxRetries?: number): Promise<boolean>;
export declare function _getVercelTokenFromEnvironment(): Promise<string | null>;
export {};