arcstrum-sdk
Version:
Arcstrum SDK for authentication and database management
56 lines (55 loc) • 2.77 kB
TypeScript
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 {};