smc-hub
Version:
CoCalc: Backend webserver component
38 lines (37 loc) • 1.58 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from "events";
import * as immutable from "immutable";
import { Database } from "./types";
export declare type HostInfo = immutable.Map<string, any>;
export declare class PublicPaths extends EventEmitter {
is_ready: boolean;
private synctable;
private vhosts;
private public_paths_in_project;
private last_public_paths?;
private _order?;
private database;
constructor(database: Database);
private do_init;
get(id: string | string[]): HostInfo | immutable.Map<string, HostInfo> | undefined;
get_all(): immutable.Map<string, any>;
private add_vhost;
private delete_vhost;
get_vhost(hostname: string): HostInfo | undefined;
private init_public_paths;
private update_public_paths;
get_id(project_id: string, path: string): string;
get_info(project_id: string, path: string): HostInfo | undefined;
required_token(project_id: string, path: string): string | undefined;
public_path(project_id: string, path: string): string | undefined;
is_public(project_id: string, path: string): boolean;
is_access_allowed(project_id: string, // the project_id
path: string, // a path of an actual share.
token: string | undefined): boolean;
get_views(project_id: string, path: string): number | undefined;
increment_view_counter(project_id: string, // the project_id
path: string): Promise<void>;
order(): immutable.List<string>;
private init;
}
export declare function get_public_paths(database: Database): Promise<PublicPaths>;