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.

212 lines (211 loc) 7.5 kB
import { Storage, type Models } from "node-appwrite"; import { type AppwriteConfig } from "appwrite-utils"; import type { DatabaseAdapter } from "../adapters/DatabaseAdapter.js"; import type { DatabaseSelection, BucketSelection } from "../shared/selectionDialogs.js"; export declare class AppwriteToX { config: AppwriteConfig; storage: Storage; updatedConfig: AppwriteConfig; collToAttributeMap: Map<string, ({ key: string; required: boolean; type: "string"; size: number; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; xdefault?: string | null | undefined; encrypt?: boolean | undefined; } | { key: string; required: boolean; type: "integer"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; min?: number | undefined; max?: number | undefined; xdefault?: number | null | undefined; } | { key: string; required: boolean; type: "double"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; min?: number | undefined; max?: number | undefined; xdefault?: number | null | undefined; } | { key: string; required: boolean; type: "float"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; min?: number | undefined; max?: number | undefined; xdefault?: number | null | undefined; } | { key: string; required: boolean; type: "boolean"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; xdefault?: boolean | null | undefined; } | { key: string; required: boolean; type: "datetime"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; xdefault?: string | null | undefined; } | { key: string; required: boolean; type: "email"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; xdefault?: string | null | undefined; } | { key: string; required: boolean; type: "ip"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; xdefault?: string | null | undefined; } | { key: string; required: boolean; type: "url"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; xdefault?: string | null | undefined; } | { key: string; required: boolean; type: "enum"; elements: string[]; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; xdefault?: string | null | undefined; } | { key: string; required: boolean; type: "relationship"; relatedCollection: string; relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany"; twoWay: boolean; onDelete: "setNull" | "cascade" | "restrict"; array?: boolean | undefined; format?: string | undefined; status?: string | undefined; attributes?: string[] | undefined; orders?: string[] | undefined; $createdAt?: string | undefined; $updatedAt?: string | undefined; error?: string | undefined; twoWayKey?: string | undefined; side?: "parent" | "child" | undefined; importMapping?: { originalIdField: string; targetField?: string | undefined; } | undefined; })[]>; appwriteFolderPath: string; adapter?: DatabaseAdapter; apiMode?: 'legacy' | 'tablesdb'; databaseApiModes: Map<string, "legacy" | "tablesdb">; constructor(config: AppwriteConfig, appwriteFolderPath: string, storage: Storage); /** * Initialize adapter for database operations with API mode detection */ private initializeAdapter; private ensureClientInitialized; parsePermissionString: (permissionString: string) => { permission: string; target: string; }; parsePermissionsArray: (permissions: string[]) => ({ permission: string; target: string; } | { permission: string; target: string; })[]; updateCollectionConfigAttributes: (collection: Models.Collection) => void; /** * Fetch collections/tables using the appropriate adapter or legacy client */ private fetchCollectionsOrTables; /** * Get collection/table using the appropriate adapter or legacy client */ private getCollectionOrTable; /** * Detect API mode for a specific database by testing adapter capabilities */ private detectDatabaseApiMode; /** * Get API mode context for schema generation */ private getSchemaGeneratorApiContext; appwriteSync(config: AppwriteConfig, databases?: Models.Database[], databaseSelections?: DatabaseSelection[], bucketSelections?: BucketSelection[]): Promise<void>; toSchemas(databases?: Models.Database[], databaseSelections?: DatabaseSelection[], bucketSelections?: BucketSelection[]): Promise<void>; }