UNPKG

thebe-core

Version:

Typescript based core functionality for Thebe

85 lines (84 loc) 3.28 kB
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;