smc-hub
Version:
CoCalc: Backend webserver component
247 lines (246 loc) • 6.22 kB
TypeScript
/// <reference types="node" />
import Stripe from "stripe";
import { EventEmitter } from "events";
import { Changes } from "./changefeed";
import { Client } from "pg";
export declare type QuerySelect = object;
export declare type QueryWhere = {
[field: string]: any;
} | {
[field: string]: any;
}[] | string | string[];
export interface QueryOptions {
select?: string | string[];
table?: string;
where?: QueryWhere;
query?: string;
set?: {
[key: string]: any;
};
params?: any[];
values?: {
[key: string]: any;
};
jsonb_set?: object;
jsonb_merge?: object;
cache?: boolean;
retry_until_success?: any;
offset?: number;
limit?: number;
timeout_s?: number;
cb?: Function;
}
export interface AsyncQueryOptions extends Omit<QueryOptions, "cb"> {
}
export declare type QueryResult = {
[key: string]: any;
};
declare type CB = (err: string | Error, result: any) => any;
export interface ChangefeedOptions {
table: string;
select: {
[field: string]: any;
};
where: QueryWhere;
watch: string[];
cb: CB;
}
export interface PostgreSQL extends EventEmitter {
_dbg(desc: string): Function;
_stop_listening(table: string, select: QuerySelect, watch: string[]): any;
_query(opts: QueryOptions): void;
_client(): Client | undefined;
_clients: Client[] | undefined;
is_standby: boolean;
get_site_settings(opts: {
cb: CB;
}): void;
async_query(opts: AsyncQueryOptions): Promise<any>;
_listen(table: string, select: QuerySelect, watch: string[], cb: CB): void;
changefeed(opts: ChangefeedOptions): Changes;
account_ids_to_usernames(opts: {
account_ids: string[];
cb: CB;
}): void;
get_project(opts: {
project_id: string;
columns?: string[];
cb: CB;
}): void;
get_account(opts: {
account_id: string;
columns?: string[];
cb: CB;
}): void;
add_user_to_project(opts: {
account_id: string;
project_id: string;
group?: string;
cb: CB;
}): void;
user_is_in_project_group(opts: {
account_id: string;
project_id: string;
group?: string[];
cache?: boolean;
cb: CB;
}): void;
user_is_collaborator(opts: {
account_id: string;
project_id: string;
cb: CB;
}): any;
get_user_column(column: string, account_id: string, cb: CB): any;
_get_project_column(column: string, project_id: string, cb: CB): any;
do_account_creation_actions(opts: {
email_address: string;
account_id: string;
cb: CB;
}): void;
mark_account_deleted(opts: {
email_address: string;
account_id: string;
cb: CB;
}): void;
count_accounts_created_by(opts: {
ip_address: string;
age_s: number;
cb: CB;
}): void;
account_exists(opts: {
email_address: string;
cb: CB;
}): void;
is_banned_user(opts: {
email_address?: string;
account_id?: string;
cb: CB;
}): void;
get_server_setting(opts: {
name: string;
cb: CB;
}): void;
get_server_settings_cached(opts: {
cb: CB;
}): void;
server_settings_synctable(): any;
create_account(opts: {
first_name: string;
last_name: string;
created_by?: string;
email_address?: string;
password_hash?: string;
passport_strategy?: any;
passport_id?: string;
passport_profile?: any;
usage_intent?: string;
cb: CB;
}): void;
log(opts: {
event: string;
value: any;
cb?: Function;
}): void;
user_is_in_group(opts: {
account_id: string;
group: string;
cb: CB;
}): void;
sha1(...args: any[]): string;
get_project_ids_with_user(opts: {
account_id: string;
is_owner?: boolean;
cb: CB;
}): void;
get_remember_me(opts: {
hash: string;
cb: CB;
}): any;
save_remember_me(opts: {
account_id: string;
hash: string;
value: string;
ttl: number;
cb: CB;
}): any;
passport_exists(opts: {
strategy: string;
id: string;
cb: CB;
}): any;
create_passport(opts: {
account_id: string;
strategy: string;
id: string;
profile: any;
email_address?: string;
first_name?: string;
last_name?: string;
cb: CB;
}): any;
get_passport_settings(opts: {
strategy: string;
cb: CB;
}): any;
get_all_passport_settings(opts: {
cb: CB;
}): any;
get_all_passport_settings_cached(opts: {
cb: CB;
}): any;
change_password(opts: {
account_id: string;
password_hash: string;
invalidate_remember_me?: boolean;
cb: CB;
}): any;
verify_email_check_token(opts: {
email_address: string;
token: string;
}): any;
reset_server_settings_cache(): void;
stripe_update_customer(opts: {
account_id: string;
customer_id: string;
stripe: Stripe;
cb: CB;
}): void;
sync_site_license_subscriptions(account_id?: string): Promise<number>;
get_stripe_customer_id(opts: {
account_id: string;
cb: CB;
}): void;
set_stripe_customer_id(opts: {
account_id: string;
customer_id: string;
cb: CB;
}): void;
update_coupon_history(opts: {
account_id: string;
coupon_history: any;
cb: CB;
}): void;
get_coupon_history(opts: {
account_id: string;
cb: CB;
}): void;
get_user_project_upgrades(opts: {
account_id: string;
cb: CB;
}): void;
remove_all_user_project_upgrades(opts: {
account_id: string;
projects: string[];
cb: CB;
}): void;
_concurrent_warn: number;
concurrent(): number;
register_hub(opts: {
host: string;
port: number;
clients: number;
ttl: number;
cb: CB;
}): void;
}
export {};