UNPKG

appwrite-utils-cli

Version:

Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.

123 lines (122 loc) 3.73 kB
import type { AppwriteConfig } from "appwrite-utils"; export interface AppwriteProjectConfig { projectId: string; endpoint?: string; projectName?: string; settings?: { services?: Record<string, boolean>; auth?: { methods?: Record<string, boolean>; security?: Record<string, any>; }; }; functions?: Array<{ $id: string; name: string; runtime: string; entrypoint?: string; path?: string; commands?: string; events?: string[]; }>; databases?: Array<{ $id: string; name: string; enabled?: boolean; }>; collections?: Array<{ $id: string; $permissions?: string[]; databaseId: string; name: string; enabled?: boolean; documentSecurity?: boolean; attributes: Array<{ key: string; type: string; required?: boolean; array?: boolean; size?: number; default?: any; encrypt?: boolean; [key: string]: any; }>; indexes?: Array<{ key: string; type: string; attributes: string[]; orders?: string[]; }>; }>; tablesDB?: Array<{ $id: string; name: string; enabled?: boolean; }>; tables?: Array<{ $id: string; $permissions?: string[]; databaseId: string; name: string; enabled?: boolean; rowSecurity?: boolean; columns: Array<{ key: string; type: string; required?: boolean; array?: boolean; size?: number; default?: any; encrypt?: boolean; unique?: boolean; [key: string]: any; }>; indexes?: Array<{ key: string; type: string; attributes: string[]; orders?: string[]; }>; }>; buckets?: Array<{ bucketId?: string; $id?: string; name: string; maximumFileSize?: number; allowedFileExtensions?: string[]; encryption?: boolean; antiVirus?: boolean; [key: string]: any; }>; } /** * Find appwrite.json or appwrite.config.json in current directory or parents */ export declare function findAppwriteProjectConfig(startDir?: string): string | null; /** * Load and parse appwrite project configuration */ export declare function loadAppwriteProjectConfig(configPath?: string): AppwriteProjectConfig | null; /** * Detect API mode from project configuration */ export declare function detectApiModeFromProject(projectConfig: AppwriteProjectConfig): "legacy" | "tablesdb" | "auto"; /** * Convert project config to AppwriteConfig format * @param projectConfig The project config to convert * @param configPath Optional path to the config file (for resolving relative paths) * @param existingConfig Optional existing config to merge with */ export declare function projectConfigToAppwriteConfig(projectConfig: AppwriteProjectConfig, configPath?: string, existingConfig?: Partial<AppwriteConfig>): Partial<AppwriteConfig>; /** * Get collection/table definitions from project config */ export declare function getCollectionsFromProject(projectConfig: AppwriteProjectConfig): any[]; /** * Check if project config indicates TablesDB usage */ export declare function isTablesDBProject(projectConfig: AppwriteProjectConfig): boolean; /** * Get the appropriate directory name based on project config */ export declare function getProjectDirectoryName(projectConfig: AppwriteProjectConfig): "tables" | "collections";