longcelot-sheet-db
Version:
Google Sheets-backed staging database adapter for Node.js with schema-first design
36 lines • 1.57 kB
TypeScript
import { SheetAdapter } from '../../adapter/sheetAdapter';
import { ActorConfig, TableSchema } from '../../schema/types';
export interface CLIConfig {
actors: ActorConfig[];
projectName?: string;
schemasDir?: string;
}
export declare function loadCLIConfig(): CLIConfig;
/**
* Sets up a fully-wired SheetAdapter (env checks, OAuth, admin context) with the given schemas
* registered — shared by drop-table/drop-column/rename-column, which each also need direct
* SheetClient access (via adapter.getClient()) alongside normal table() CRUD for reading the
* admin `users` table on --all-users.
*/
export declare function buildAdminAdapter(params: {
config: CLIConfig;
schemas: TableSchema[];
tokenFile?: string;
}): Promise<{
adapter: SheetAdapter;
adminCtx: SheetAdapter;
adminSheetId: string;
}>;
export interface SheetTarget {
sheetId: string;
/** Human-readable label for status output, e.g. 'admin', 'seller (dev/shared)', 'seller:user_123'. */
label: string;
}
/**
* Resolves which live Google Sheets a change to an actor's table should apply to: the admin
* sheet for actor:'admin', or the actor's configured dev/shared sheet plus (with --all-users)
* every registered user's personal actor sheet, read from the admin `users` table exactly like
* sync.ts's --all-users flow does.
*/
export declare function resolveSheetTargets(adminCtx: SheetAdapter, actor: string, adminSheetId: string, actorCfg: ActorConfig | undefined, allUsers: boolean): Promise<SheetTarget[]>;
//# sourceMappingURL=adminAdapter.d.ts.map