UNPKG

arcstrum-sdk

Version:

Arcstrum SDK for authentication and database management

56 lines (55 loc) 2.77 kB
import { Request, Response, NextFunction } from 'express'; interface MiddlewareOptions { userId: string; token?: string; apiBase?: string; mediaApiBase?: string; } export declare function ArcstrumMiddleware({ userId, token, apiBase, mediaApiBase }: MiddlewareOptions): (req: Request, res: Response, next: NextFunction) => Promise<void>; declare global { namespace Express { interface Request { arcstrum: { listDatabases: () => Promise<string[]>; createDatabase: (dbFile: string) => Promise<void>; deleteDatabase: (dbFile: string) => Promise<void>; renameDatabase: (oldName: string, newName: string) => Promise<void>; getTables: (dbFile: string) => Promise<string[]>; queryTable: (dbFile: string, table: string) => Promise<any[]>; insertRow: (dbFile: string, table: string, row: Record<string, any>) => Promise<void>; deleteRow: (dbFile: string, table: string, row: Record<string, any>) => Promise<void>; execSql: (dbFile: string, sql: string) => Promise<void>; validateSql: (sql: string) => Promise<{ type: string; valid: boolean; }>; getUsageAnalytics: () => Promise<Record<string, Record<string, number>>>; getTableSchema: (dbFile: string, table: string) => Promise<any[]>; getDbStats: (dbFile: string) => Promise<{ size_bytes: number; last_modified: number; }>; getPreviewRows: (dbFile: string, table: string, limit?: number) => Promise<any[]>; getColumnInfo: (dbFile: string, table: string) => Promise<any[]>; searchTable: (dbFile: string, table: string, filters: { column: string; op: string; value: string; }[]) => Promise<any[]>; getDbMetadata: (dbFile: string) => Promise<Record<string, any>>; updateDbMetadata: (dbFile: string, metadata: Record<string, any>) => Promise<void>; deleteDbMetadata: (dbFile: string) => Promise<void>; query: (dbFile: string, sql: string) => Promise<any[]>; uploadMediaFile: (file: File) => Promise<string>; listMediaFiles: () => Promise<{ filename: string; url: string; uploadedAt?: string; }[]>; getMediaFileUrl: (filename: string) => string; deleteMediaFile: (filename: string) => Promise<void>; }; } } } export {};