thebe-core
Version:
Typescript based core functionality for Thebe
85 lines (84 loc) • 3.28 kB
TypeScript
import type { BinderUrlSet, KernelOptions, RepoProviderSpec, RestAPIContentsResponse, ServerRestAPI, ServerRuntime, ServerSettings, SessionIModel } from './types';
import type { Config } from './config';
import type { ServiceManager, Session } from '@jupyterlab/services';
import type { LiteServerConfig } from 'thebe-lite';
import type { IRenderMimeRegistry } from '@jupyterlab/rendermime';
import { KernelSpecAPI, ServerConnection } from '@jupyterlab/services';
import ThebeSession from './session';
declare class ThebeServer implements ServerRuntime, ServerRestAPI {
readonly id: string;
readonly config: Config;
readonly ready: Promise<ThebeServer>;
sessionManager?: Session.IManager;
serviceManager?: ServiceManager;
repoProviders?: RepoProviderSpec[];
binderUrls?: BinderUrlSet;
userServerUrl?: string;
private resolveReadyFn?;
private rejectReadyFn?;
private _isDisposed;
private events;
constructor(config: Config);
get isBinder(): boolean;
get isReady(): boolean;
get isDisposed(): boolean;
get settings(): ServerConnection.ISettings | undefined;
shutdownSession(id: string): Promise<void | undefined>;
shutdownAllSessions(): Promise<void | undefined>;
check(): Promise<boolean>;
dispose(): void;
startNewSession(rendermime: IRenderMimeRegistry, kernelOptions?: KernelOptions): Promise<ThebeSession | null>;
listRunningSessions(): Promise<SessionIModel[]>;
refreshRunningSessions(): Promise<SessionIModel[]>;
connectToExistingSession(model: SessionIModel, rendermime: IRenderMimeRegistry): Promise<ThebeSession>;
clearSavedBinderSessions(): Promise<void>;
/**
* Connect to a Jupyter server directly
*
*/
connectToJupyterServer(): Promise<void>;
/**
* Connect to Jupyterlite Server
*/
connectToJupyterLiteServer(config?: LiteServerConfig): Promise<void>;
makeBinderUrls(): BinderUrlSet;
checkForSavedBinderSession(): Promise<import("./types").SavedSessionInfo | null>;
/**
* Connect to a Binder instance in order to
* access a Jupyter server that can provide kernels
*
* @param ctx
* @param opts
* @returns
*/
connectToServerViaBinder(customProviders?: RepoProviderSpec[]): Promise<void>;
getFetchUrl(relativeUrl: string): URL;
static status(serverSettings: ServerSettings): Promise<Response>;
getKernelSpecs(): Promise<KernelSpecAPI.ISpecModels>;
getContents(opts: {
path: string;
type?: 'notebook' | 'file' | 'directory';
format?: 'text' | 'base64';
returnContent?: boolean;
}): Promise<RestAPIContentsResponse>;
duplicateFile(opts: {
path: string;
copy_from: string;
ext?: string;
type?: 'notebook' | 'file';
}): Promise<RestAPIContentsResponse>;
createDirectory(opts: {
path: string;
}): Promise<RestAPIContentsResponse>;
renameContents(opts: {
path: string;
newPath: string;
}): Promise<RestAPIContentsResponse>;
uploadFile(opts: {
path: string;
content: string;
format?: 'json' | 'text' | 'base64';
type?: 'notebook' | 'file';
}): Promise<RestAPIContentsResponse>;
}
export default ThebeServer;