gristlabs_grist-core/app/server/declarations.d.ts

108 lines
3.7 KiB
TypeScript
Raw Normal View History

declare module "app/server/lib/ActionLog";
declare module "app/server/lib/sandboxUtil";
declare module "app/server/lib/User";
declare module "app/server/lib/Comm" {
import {Client, ClientMethod} from "app/server/lib/Client";
import {ScopedSession} from "app/server/lib/BrowserSession";
import * as http from "http";
class Comm {
constructor(server: http.Server, options: any);
public broadcastMessage(type: string, messageData: any): void;
public destroyAllClients(): void;
public setServerVersion(serverVersion: string|null): void;
public setServerActivation(active: boolean): void;
public getSessionIdFromCookie(gristSidCookie: string): string;
public getOrCreateSession(sessionId: string, req: any): ScopedSession;
public registerMethods(methods: {[name: string]: ClientMethod}): void;
public getClient(clientId: string): Client;
public testServerShutdown(): Promise<void>;
public testServerRestart(): Promise<void>;
public testSetClientPersistence(ttlMs: number): void;
}
namespace Comm {
function sendDocMessage(client: Client, docFD: number, type: string, mesageData: any, fromSelf: boolean): void;
}
export = Comm;
}
declare module "app/server/lib/shutdown" {
export function addCleanupHandler<T>(context: T, method: (this: T) => void, timeout?: number, name?: string): void;
export function removeCleanupHandlers<T>(context: T): void;
export function cleanupOnSignals(...signalNames: string[]): void;
(core) Generic tools for recording pycalls, deterministic mode. Summary: Replaces https://phab.getgrist.com/D2854 Refactoring of NSandbox: - Simplify arguments to NSandbox.spawn. Only half the arguments were used depending on the flavour, adding a layer of confusion. - Ensure the same environment variables are passed to both flavours of sandbox - Simplify passing down environment variables. Implement deterministic mode with libfaketime and a seeded random instance. - Include static prebuilt libfaketime.so.1, may need another solution in future for other platforms. Recording pycalls: - Add script recordDocumentPyCalls.js to open a single document outside of tests. - Refactor out recordPyCalls.ts to support various uses. - Add afterEach hook to save all pycalls from server tests under $PYCALLS_DIR - Make docTools usable without mocha. - Add useLocalDoc and loadLocalDoc for loading non-fixture documents Test Plan: Made a document with formulas NOW() and UUID() Compare two document openings in normal mode: diff <(test/recordDocumentPyCalls.js samples/d4W6NrzCMNVSVD6nWgNrGC.grist /dev/stdout) \ <(test/recordDocumentPyCalls.js samples/d4W6NrzCMNVSVD6nWgNrGC.grist /dev/stdout) Output: < 1623407499.58132, --- > 1623407499.60376, 1195c1195 < "B": "bd2487f6-63c9-4f02-bbbc-5c0d674a2dc6" --- > "B": "22e1a4fd-297f-4b86-91a2-bc42cc6da4b2" `export DETERMINISTIC_MODE=1` and repeat. diff is empty! Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D2857
2021-06-15 16:52:03 +00:00
export function exit(optExitCode?: number): Promise<void>;
}
// There is a @types/bluebird, but it's not great, and breaks for some of our usages.
declare module "bluebird";
// Redlock types refer to bluebird.Disposer.
declare module "bluebird" {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
class Disposer<T> {}
}
// TODO This is a module by Grist Labs; we should add index.d.ts to it.
declare module "@gristlabs/basket-api" {
interface Item { [colId: string]: any; }
interface ColValues { [colId: string]: any[]; }
interface AuthToken { [authProvider: string]: string; }
class Basket {
public static addBasket(login: AuthToken): Promise<string>;
public static getBaskets(login: AuthToken): Promise<string[]>;
public basketId: Readonly<string>;
public apiKey: Readonly<string|undefined>;
constructor(basketId: string, apiKey?: string);
public addTable(optTableId: string): Promise<string>;
public getTable(tableId: string): Promise<Item[]>;
public renameTable(oldTableId: string, newTableId: string): Promise<void>;
public replaceTableData(tableId: string, columnValues: ColValues): Promise<void>;
public deleteTable(tableId: string): Promise<void>;
public getTables(): Promise<string[]>;
public uploadAttachment(attachmentId: string, attachment: Buffer): Promise<void>;
public delete(login: AuthToken): Promise<void>;
}
namespace Basket {}
export = Basket;
}
// Used in one place, and the typings are almost entirely unhelpful.
declare module "multiparty";
// Used in one place, for one call.
declare module "chokidar";
// Used in one place
declare module "mime-types";
// Used in one place
declare module "morgan";
declare module "cookie";
declare module "cookie-parser";
declare module "on-headers";
declare module "@gristlabs/express-session";
// Used for command line path tweaks.
declare module "app-module-path" {
export function addPath(path: string): void;
}
// Used in tests
declare module "ws";
// version of pidusage that has correct ctime on linux
declare module '@gristlabs/pidusage' {
import * as pidusage from 'pidusage';
export = pidusage;
}
declare module "csv";
declare module 'winston/lib/winston/common' {
export function serialize(meta: any): string;
}