UNPKG

2.27 kBTypeScriptView Raw
1import { Docker } from 'docker-cli-js';
2import { CronJob } from 'cron';
3import { LocalStorage } from './utils';
4import { nam } from './def';
5export interface AuthOptions {
6 email: string;
7 password: string;
8 deviceName: string;
9}
10export interface AppletManagerOptions {
11 appPath: string;
12 nodesworkServer: string;
13 port: number;
14 debug?: boolean;
15 dev?: boolean;
16 pid?: number;
17 token?: string;
18}
19export declare class AppletManager implements nam.INAM {
20 private options;
21 ls: LocalStorage;
22 docker: Docker;
23 network: Network;
24 containerProxy: ContainerProxy;
25 cronJobs: WorkerCronJob[];
26 constructor(options: AppletManagerOptions);
27 authenticated(): boolean;
28 /**
29 * Authenticate the container by email and password.
30 *
31 * @throws UNAUTHENTICATED_ERROR
32 */
33 authenticate(options: AuthOptions): Promise<void>;
34 isStarted(): boolean;
35 /**
36 * Start the container.
37 *
38 * @throws UNAUTHENTICATED_ERROR
39 */
40 startServer(): Promise<void>;
41 /**
42 * Stop the container.
43 *
44 * @throws UNAUTHENTICATED_ERROR
45 */
46 stopServer(): Promise<void>;
47 install(options: nam.AppletImage): Promise<void>;
48 images(): Promise<nam.AppletImage[]>;
49 run(options: nam.AppletRunOptions): Promise<void>;
50 kill(options: nam.AppletImage): Promise<void>;
51 ps(): Promise<nam.AppletStatus[]>;
52 refreshWorkerCrons(): Promise<void>;
53 executeCronJob(job: WorkerCronJob): Promise<any>;
54 work(options: nam.WorkOptions): Promise<any>;
55 request<T>(options: nam.RequestOptions): Promise<nam.RequestResponse | T>;
56 operateAccount(options: nam.AccountOperateOptions): Promise<any>;
57 route(options: nam.RouteOptions): Promise<nam.Route>;
58 updateDevice(): Promise<void>;
59 checkEnvironment(): Promise<void>;
60 private name(options);
61 private installContainerProxy();
62}
63export interface Network {
64 subnet: string;
65 gateway: string;
66 containers: object[];
67}
68export interface ContainerProxy {
69 version: string;
70 latestVersion: string;
71}
72export interface WorkerCronJob {
73 jobUUID: string;
74 userApplet: string;
75 appletId: string;
76 image: nam.AppletImage;
77 worker: nam.Worker;
78 schedule: string;
79 cronJob?: CronJob;
80}