1 | import { Docker } from 'docker-cli-js';
|
2 | import { CronJob } from 'cron';
|
3 | import { LocalStorage } from './utils';
|
4 | import { nam } from './def';
|
5 | export interface AuthOptions {
|
6 | email: string;
|
7 | password: string;
|
8 | deviceName: string;
|
9 | }
|
10 | export interface AppletManagerOptions {
|
11 | appPath: string;
|
12 | nodesworkServer: string;
|
13 | port: number;
|
14 | debug?: boolean;
|
15 | dev?: boolean;
|
16 | pid?: number;
|
17 | token?: string;
|
18 | }
|
19 | export 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.RouteOptions): 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 ensureMongo(options);
|
61 | private name(options);
|
62 | private installContainerProxy();
|
63 | }
|
64 | export interface Network {
|
65 | subnet: string;
|
66 | gateway: string;
|
67 | containers: object[];
|
68 | }
|
69 | export interface ContainerProxy {
|
70 | version: string;
|
71 | latestVersion: string;
|
72 | }
|
73 | export interface WorkerCronJob {
|
74 | jobUUID: string;
|
75 | userApplet: string;
|
76 | appletId: string;
|
77 | image: nam.AppletImage;
|
78 | worker: nam.Worker;
|
79 | schedule: string;
|
80 | cronJob?: CronJob;
|
81 | }
|