/** * Vercel Addon Plugin * * Cloud hosting addon for deploying to Vercel via factiii pipeline. * Uses Vercel REST API exclusively (no CLI required). * * This is an ADDON plugin that extends factiii pipeline. It handles: * - Vercel deployment orchestration * - Project linking and configuration * - Domain management * * ============================================================ * API-Only Architecture * ============================================================ * * All operations use the Vercel REST API: * - Deploying (git-push triggers, status checks) * - Project creation and linking * - Listing projects/deployments * - Token management via Ansible Vault * * No Vercel CLI is required or installed. * * ============================================================ * PLUGIN STRUCTURE STANDARD * ============================================================ * * **scanfix/** - Scan/fix operations organized by concern * - config.ts - Vercel project configuration + framework detection * - token.ts - VERCEL_TOKEN management * * **utils/** - Vercel API helpers * - vercel-api.ts - API client and helpers * * **index.ts** - Main plugin class * - Static metadata (id, name, category, version) * - Imports and combines all scanfix arrays * ============================================================ */ import type { FactiiiConfig, DeployResult, Fix, ServerOS } from '../../../types/index.js'; declare class VercelAddon { static readonly id = "vercel"; static readonly name = "Vercel Addon"; static readonly category: 'addon'; static readonly version = "1.0.0"; /** * Server OS types this pipeline is compatible with * Vercel is serverless, but we support all dev machine types */ static readonly compatibleServers: ServerOS[]; /** * Default server (N/A for Vercel - serverless) */ static readonly defaultServer: ServerOS; static readonly requiredEnvVars: string[]; static readonly configSchema: Record; static readonly autoConfigSchema: Record; /** * Determine if this plugin should be loaded for this project * Loads if vercel config exists (factiii pipeline will use this addon as needed) */ static shouldLoad(_rootDir: string, config: FactiiiConfig): Promise; static helpText: Record; /** * Check if Vercel is configured and available * (Called by factiii pipeline to determine if Vercel deployment is possible) */ static isVercelConfigured(config: FactiiiConfig): boolean; static readonly fixes: Fix[]; /** * Auto-detect Vercel configuration */ static detectConfig(rootDir: string): Promise>; private _config; constructor(config: FactiiiConfig); /** * Deploy to Vercel (called by factiii pipeline) */ static deployToVercel(config: FactiiiConfig, options?: { production?: boolean; branch?: string; commit?: string; }): Promise; /** * Deploy to an environment */ deploy(config: FactiiiConfig, environment: string): Promise; /** * Undeploy is not applicable for Vercel (serverless) */ undeploy(_config: FactiiiConfig, _environment: string): Promise; } export default VercelAddon; //# sourceMappingURL=index.d.ts.map