UNPKG

@stacksjs/stx

Version:

A performant UI Framework. Powered by Bun.

109 lines 3.46 kB
/** * Create a Netlify API client */ export declare function createNetlifyClient(config: NetlifyClientConfig): NetlifyClient; /** * Calculate SHA1 hash of file content */ export declare function calculateSha1(content: ArrayBuffer | Uint8Array): Promise<string>; /** * Collect files from a directory for deployment */ export declare function collectDeployFiles(directory: string, options?: { ignore?: string[] }): Promise<DeployFile[]>; /** * Create file manifest (path -> sha1 hash mapping) */ export declare function createFileManifest(files: DeployFile[]): Record<string, string>; /** * Filter files that need uploading (not already on Netlify) */ export declare function filterRequiredFiles(files: DeployFile[], required: string[]): DeployFile[]; /** * Format file size for display */ export declare function formatSize(bytes: number): string; /** * Get total size of files */ export declare function getTotalSize(files: DeployFile[]): number; // ============================================================================ // Types // ============================================================================ export declare interface NetlifySite { id: string name: string url: string ssl_url: string admin_url: string created_at: string updated_at: string custom_domain?: string default_domain: string deploy_url: string published_deploy?: NetlifyDeploy } export declare interface NetlifyDeploy { id: string site_id: string state: 'new' | 'pending_review' | 'uploading' | 'uploaded' | 'preparing' | 'prepared' | 'processing' | 'ready' | 'error' | 'retrying' name: string url: string ssl_url: string admin_url: string deploy_url: string deploy_ssl_url: string created_at: string updated_at: string published_at?: string title?: string context: string branch?: string commit_ref?: string commit_url?: string review_url?: string error_message?: string required: string[] required_functions?: string[] } export declare interface CreateDeployOptions { title?: string branch?: string draft?: boolean files: Record<string, string> functions?: Record<string, string> async?: boolean } export declare interface DeployFile { path: string content: ArrayBuffer | Uint8Array sha1: string } export declare interface NetlifyClientConfig { token: string baseUrl?: string } export declare interface NetlifyError extends Error { status: number code?: string details?: unknown } // ============================================================================ // Netlify Client // ============================================================================ export declare interface NetlifyClient { getSite(siteId: string): Promise<NetlifySite> listSites(): Promise<NetlifySite[]> createSite(name?: string): Promise<NetlifySite> createDeploy(siteId: string, options: CreateDeployOptions): Promise<NetlifyDeploy> uploadFile(deployId: string, path: string, content: ArrayBuffer | Uint8Array): Promise<void> uploadFiles(deployId: string, files: DeployFile[]): Promise<void> getDeploy(deployId: string): Promise<NetlifyDeploy> waitForDeploy(deployId: string, options?: WaitOptions): Promise<NetlifyDeploy> lockDeploy(deployId: string): Promise<NetlifyDeploy> unlockDeploy(deployId: string): Promise<NetlifyDeploy> } export declare interface WaitOptions { timeout?: number pollInterval?: number onProgress?: (deploy: NetlifyDeploy) => void }