camstreamerlib 3.5.2 → 4.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CamOverlayAPI.d.ts +11 -28
- package/CamOverlayAPI.js +116 -138
- package/CamOverlayDrawingAPI.js +26 -18
- package/CamOverlayPainter/Frame.js +167 -182
- package/CamOverlayPainter/Painter.js +80 -101
- package/CamOverlayPainter/ResourceManager.js +31 -46
- package/CamScripterAPI.d.ts +19 -0
- package/CamScripterAPI.js +66 -0
- package/CamScripterAPICameraEventsGenerator.js +22 -16
- package/CamStreamerAPI.d.ts +5 -27
- package/CamStreamerAPI.js +45 -71
- package/CamSwitcherAPI.d.ts +38 -71
- package/CamSwitcherAPI.js +329 -91
- package/CamSwitcherEvents.d.ts +15 -33
- package/CamSwitcherEvents.js +53 -97
- package/CreatePackage.js +5 -7
- package/README.md +3 -1
- package/VapixAPI.d.ts +66 -0
- package/VapixAPI.js +454 -0
- package/VapixEvents.js +18 -16
- package/errors/errors.d.ts +34 -0
- package/errors/errors.js +66 -0
- package/events/AxisCameraStationEvents.js +29 -42
- package/events/GenetecAgent.d.ts +14 -15
- package/events/GenetecAgent.js +81 -100
- package/internal/Digest.js +5 -11
- package/internal/ProxyClient.d.ts +11 -0
- package/internal/ProxyClient.js +40 -0
- package/internal/common.d.ts +19 -4
- package/internal/common.js +11 -26
- package/internal/constants.d.ts +1 -0
- package/internal/constants.js +1 -0
- package/internal/transformers.d.ts +5 -0
- package/internal/transformers.js +25 -0
- package/internal/utils.d.ts +11 -0
- package/internal/utils.js +34 -0
- package/internal/versionCompare.d.ts +6 -0
- package/internal/versionCompare.js +44 -0
- package/node/DefaultClient.d.ts +15 -0
- package/node/DefaultClient.js +50 -0
- package/{internal → node}/HttpRequestSender.d.ts +2 -2
- package/node/HttpRequestSender.js +85 -0
- package/{HttpServer.d.ts → node/HttpServer.d.ts} +1 -1
- package/{HttpServer.js → node/HttpServer.js} +22 -24
- package/{internal → node}/WsClient.d.ts +1 -1
- package/{internal → node}/WsClient.js +32 -39
- package/node/WsEventClient.d.ts +13 -0
- package/node/WsEventClient.js +18 -0
- package/package.json +7 -3
- package/types/CamOverlayAPI.d.ts +188 -0
- package/types/CamOverlayAPI.js +44 -0
- package/types/CamScripterAPI.d.ts +67 -0
- package/types/CamScripterAPI.js +17 -0
- package/types/CamStreamerAPI.d.ts +139 -0
- package/types/CamStreamerAPI.js +25 -0
- package/types/CamSwitcherAPI.d.ts +814 -0
- package/types/CamSwitcherAPI.js +134 -0
- package/types/CamswitcherEvents.d.ts +491 -0
- package/types/CamswitcherEvents.js +59 -0
- package/types/VapixAPI.d.ts +1704 -0
- package/types/VapixAPI.js +129 -0
- package/types/common.d.ts +37 -0
- package/types/common.js +11 -0
- package/web/DefaultClient.d.ts +6 -0
- package/web/DefaultClient.js +16 -0
- package/web/WsClient.d.ts +13 -0
- package/web/WsClient.js +58 -0
- package/CameraVapix.d.ts +0 -98
- package/CameraVapix.js +0 -441
- package/DefaultAgent.d.ts +0 -15
- package/DefaultAgent.js +0 -68
- package/internal/HttpRequestSender.js +0 -117
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { toCamelCaseDeep } from '../internal/transformers';
|
|
3
|
+
export const applicationSchema = z.object({
|
|
4
|
+
Name: z.string(),
|
|
5
|
+
NiceName: z.string(),
|
|
6
|
+
Vendor: z.string(),
|
|
7
|
+
Version: z.string(),
|
|
8
|
+
ApplicationID: z.string().optional(),
|
|
9
|
+
License: z.string(),
|
|
10
|
+
Status: z.string(),
|
|
11
|
+
ConfigurationPage: z.string().optional(),
|
|
12
|
+
VendorHomePage: z.string().optional(),
|
|
13
|
+
LicenseName: z.string().optional(),
|
|
14
|
+
});
|
|
15
|
+
export const APP_IDS = [
|
|
16
|
+
'CamStreamer',
|
|
17
|
+
'CamSwitcher',
|
|
18
|
+
'CamOverlay',
|
|
19
|
+
'CamScripter',
|
|
20
|
+
'PlaneTracker',
|
|
21
|
+
'Ndihxplugin',
|
|
22
|
+
];
|
|
23
|
+
export const applicationListSchema = z.object({
|
|
24
|
+
reply: z.object({
|
|
25
|
+
$: z.object({ result: z.string() }),
|
|
26
|
+
application: z.array(z.object({
|
|
27
|
+
$: applicationSchema,
|
|
28
|
+
})),
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
export const guardTourSchema = z.object({
|
|
32
|
+
id: z.string(),
|
|
33
|
+
camNbr: z.unknown(),
|
|
34
|
+
name: z.string(),
|
|
35
|
+
randomEnabled: z.unknown(),
|
|
36
|
+
running: z.string(),
|
|
37
|
+
timeBetweenSequences: z.unknown(),
|
|
38
|
+
tour: z.array(z.object({
|
|
39
|
+
moveSpeed: z.unknown(),
|
|
40
|
+
position: z.unknown(),
|
|
41
|
+
presetNbr: z.unknown(),
|
|
42
|
+
waitTime: z.unknown(),
|
|
43
|
+
waitTimeViewType: z.unknown(),
|
|
44
|
+
})),
|
|
45
|
+
});
|
|
46
|
+
const audioSampleRatesSchema = z.object({
|
|
47
|
+
sample_rate: z.number(),
|
|
48
|
+
bit_rates: z.array(z.number()),
|
|
49
|
+
});
|
|
50
|
+
const audioSampleRatesOutSchema = audioSampleRatesSchema.transform(toCamelCaseDeep);
|
|
51
|
+
export const sdCardWatchedStatuses = ['OK', 'connected', 'disconnected'];
|
|
52
|
+
export const PtzOverviewSchema = z.record(z.number(), z.array(z.object({ id: z.number(), name: z.string() })));
|
|
53
|
+
export const cameraPTZItemDataSchema = z.object({
|
|
54
|
+
pan: z.number().optional(),
|
|
55
|
+
tilt: z.number().optional(),
|
|
56
|
+
zoom: z.number().optional(),
|
|
57
|
+
});
|
|
58
|
+
export const cameraPTZItemSchema = z.object({
|
|
59
|
+
name: z.string(),
|
|
60
|
+
id: z.number(),
|
|
61
|
+
data: cameraPTZItemDataSchema,
|
|
62
|
+
});
|
|
63
|
+
export const audioDeviceSignalingChannelTypeSchema = z.object({
|
|
64
|
+
id: z.string(),
|
|
65
|
+
gain: z.number(),
|
|
66
|
+
mute: z.boolean(),
|
|
67
|
+
});
|
|
68
|
+
export const audioDeviceSignalingTypeSchema = z.object({
|
|
69
|
+
id: z.string(),
|
|
70
|
+
powerType: z.string(),
|
|
71
|
+
channels: z.array(audioDeviceSignalingChannelTypeSchema),
|
|
72
|
+
});
|
|
73
|
+
export const audioDeviceConnectionTypeSchema = z.object({
|
|
74
|
+
id: z.string(),
|
|
75
|
+
signalingTypeSelected: z.string(),
|
|
76
|
+
signalingTypes: z.array(audioDeviceSignalingTypeSchema),
|
|
77
|
+
});
|
|
78
|
+
export const audioDeviceInputOutputSchema = z.object({
|
|
79
|
+
id: z.string(),
|
|
80
|
+
name: z.string(),
|
|
81
|
+
enabled: z.boolean(),
|
|
82
|
+
connectionTypes: z.array(audioDeviceConnectionTypeSchema),
|
|
83
|
+
connectionTypeSelected: z.string(),
|
|
84
|
+
});
|
|
85
|
+
export const audioDeviceSchema = z.object({
|
|
86
|
+
id: z.string(),
|
|
87
|
+
name: z.string(),
|
|
88
|
+
inputs: z.array(audioDeviceInputOutputSchema),
|
|
89
|
+
outputs: z.array(audioDeviceInputOutputSchema),
|
|
90
|
+
});
|
|
91
|
+
const audioDeviceFromRequestSchema = z.object({
|
|
92
|
+
id: z.string(),
|
|
93
|
+
name: z.string(),
|
|
94
|
+
inputs: z.array(audioDeviceInputOutputSchema).optional(),
|
|
95
|
+
outputs: z.array(audioDeviceInputOutputSchema).optional(),
|
|
96
|
+
});
|
|
97
|
+
export const audioDeviceRequestSchema = z.object({ devices: z.array(audioDeviceFromRequestSchema) });
|
|
98
|
+
export const maxFpsResponseSchema = z.object({
|
|
99
|
+
data: z.array(z.object({
|
|
100
|
+
channel: z.number(),
|
|
101
|
+
captureMode: z.array(z.object({
|
|
102
|
+
enabled: z.boolean(),
|
|
103
|
+
maxFPS: z.number().optional(),
|
|
104
|
+
})),
|
|
105
|
+
})),
|
|
106
|
+
});
|
|
107
|
+
export const dateTimeinfoSchema = z.object({
|
|
108
|
+
data: z.object({
|
|
109
|
+
dateTime: z.string(),
|
|
110
|
+
dstEnabled: z.boolean(),
|
|
111
|
+
localDateTime: z.string(),
|
|
112
|
+
posixTimeZone: z.string(),
|
|
113
|
+
timeZone: z.string(),
|
|
114
|
+
}),
|
|
115
|
+
});
|
|
116
|
+
export const audioSampleRatesResponseSchema = z.object({
|
|
117
|
+
data: z.object({
|
|
118
|
+
encoders: z.union([
|
|
119
|
+
z.object({
|
|
120
|
+
aac: z.array(audioSampleRatesSchema),
|
|
121
|
+
AAC: z.undefined(),
|
|
122
|
+
}),
|
|
123
|
+
z.object({
|
|
124
|
+
AAC: z.array(audioSampleRatesSchema),
|
|
125
|
+
aac: z.undefined(),
|
|
126
|
+
}),
|
|
127
|
+
]),
|
|
128
|
+
}),
|
|
129
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const audioChannelSchema: z.ZodUnion<[z.ZodLiteral<"mono">, z.ZodLiteral<"stereo">]>;
|
|
3
|
+
export type TAudioChannel = z.infer<typeof audioChannelSchema>;
|
|
4
|
+
export declare const audioChannelCountSchema: z.ZodUnion<[z.ZodLiteral<1>, z.ZodLiteral<2>]>;
|
|
5
|
+
export type TAudioChannelCount = z.infer<typeof audioChannelCountSchema>;
|
|
6
|
+
export declare const h264ProfileSchema: z.ZodUnion<[z.ZodLiteral<"high">, z.ZodLiteral<"main">, z.ZodLiteral<"baseline">]>;
|
|
7
|
+
export type TH264Profile = z.infer<typeof h264ProfileSchema>;
|
|
8
|
+
export declare const storageTypeSchema: z.ZodUnion<[z.ZodLiteral<"SD_DISK">, z.ZodLiteral<"FLASH">]>;
|
|
9
|
+
export type TStorageType = z.infer<typeof storageTypeSchema>;
|
|
10
|
+
export declare const networkCameraListSchema: z.ZodArray<z.ZodObject<{
|
|
11
|
+
name: z.ZodString;
|
|
12
|
+
ip: z.ZodString;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
ip: string;
|
|
15
|
+
name: string;
|
|
16
|
+
}, {
|
|
17
|
+
ip: string;
|
|
18
|
+
name: string;
|
|
19
|
+
}>, "many">;
|
|
20
|
+
export type TNetworkCamera = z.infer<typeof networkCameraListSchema>[number];
|
|
21
|
+
export declare const keyboardShortcutSchema: z.ZodNullable<z.ZodString>;
|
|
22
|
+
export declare const keyboardShortcutsSchema: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodString>>;
|
|
23
|
+
export type TKeyboardShortcut = z.infer<typeof keyboardShortcutSchema>;
|
|
24
|
+
export type TKeyboardShortcuts = z.infer<typeof keyboardShortcutsSchema>;
|
|
25
|
+
export type TProxyParam = {
|
|
26
|
+
ip: string;
|
|
27
|
+
mdnsName: string;
|
|
28
|
+
port: number;
|
|
29
|
+
user: string;
|
|
30
|
+
pass: string;
|
|
31
|
+
} | null;
|
|
32
|
+
export type TCameraImageConfig = {
|
|
33
|
+
camera?: string;
|
|
34
|
+
resolution?: string;
|
|
35
|
+
compression?: number;
|
|
36
|
+
overlays?: 'off';
|
|
37
|
+
};
|
package/types/common.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const audioChannelSchema = z.union([z.literal('mono'), z.literal('stereo')]);
|
|
3
|
+
export const audioChannelCountSchema = z.union([z.literal(1), z.literal(2)]);
|
|
4
|
+
export const h264ProfileSchema = z.union([z.literal('high'), z.literal('main'), z.literal('baseline')]);
|
|
5
|
+
export const storageTypeSchema = z.union([z.literal('SD_DISK'), z.literal('FLASH')]);
|
|
6
|
+
export const networkCameraListSchema = z.array(z.object({
|
|
7
|
+
name: z.string(),
|
|
8
|
+
ip: z.string(),
|
|
9
|
+
}));
|
|
10
|
+
export const keyboardShortcutSchema = z.string().nullable();
|
|
11
|
+
export const keyboardShortcutsSchema = z.record(keyboardShortcutSchema);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IClient, TParameters } from '../internal/common';
|
|
3
|
+
export declare class DefaultClient implements IClient {
|
|
4
|
+
get(url: string, parameters?: TParameters, headers?: Record<string, string>): Promise<Response>;
|
|
5
|
+
post(url: string, data: string | Buffer | FormData, parameters?: TParameters, headers?: Record<string, string>): Promise<Response>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { addParametersToPath } from '../internal/utils';
|
|
2
|
+
export class DefaultClient {
|
|
3
|
+
get(url, parameters, headers) {
|
|
4
|
+
return fetch(addParametersToPath(url, parameters), {
|
|
5
|
+
method: 'GET',
|
|
6
|
+
headers: headers,
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
post(url, data, parameters, headers) {
|
|
10
|
+
return fetch(addParametersToPath(url, parameters), {
|
|
11
|
+
method: 'POST',
|
|
12
|
+
body: data,
|
|
13
|
+
headers: headers,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class WsClient {
|
|
2
|
+
private getUrl;
|
|
3
|
+
private getAuthToken;
|
|
4
|
+
isDestroyed: boolean;
|
|
5
|
+
private ws;
|
|
6
|
+
private restartTimeout;
|
|
7
|
+
constructor(getUrl: () => string, getAuthToken: () => Promise<string>);
|
|
8
|
+
init(): void;
|
|
9
|
+
send: (msg: string) => void;
|
|
10
|
+
onmessage: (_: MessageEvent) => void;
|
|
11
|
+
destroy: () => void;
|
|
12
|
+
private destroyWebsocket;
|
|
13
|
+
}
|
package/web/WsClient.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const REFRESH_TIMEOUT = 5_000;
|
|
2
|
+
export class WsClient {
|
|
3
|
+
getUrl;
|
|
4
|
+
getAuthToken;
|
|
5
|
+
isDestroyed = false;
|
|
6
|
+
ws = null;
|
|
7
|
+
restartTimeout = null;
|
|
8
|
+
constructor(getUrl, getAuthToken) {
|
|
9
|
+
this.getUrl = getUrl;
|
|
10
|
+
this.getAuthToken = getAuthToken;
|
|
11
|
+
}
|
|
12
|
+
init() {
|
|
13
|
+
if (this.isDestroyed) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
this.destroyWebsocket();
|
|
17
|
+
const ws = new WebSocket(this.getUrl(), 'events');
|
|
18
|
+
ws.onopen = async () => {
|
|
19
|
+
try {
|
|
20
|
+
const token = await this.getAuthToken();
|
|
21
|
+
ws.send(JSON.stringify({ authorization: token }));
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error('Error sending auth token:', error);
|
|
25
|
+
ws.close();
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
ws.onmessage = (e) => this.onmessage(e);
|
|
29
|
+
ws.onclose = () => {
|
|
30
|
+
this.restartTimeout = setTimeout(() => this.init(), REFRESH_TIMEOUT);
|
|
31
|
+
};
|
|
32
|
+
this.ws = ws;
|
|
33
|
+
}
|
|
34
|
+
send = (msg) => {
|
|
35
|
+
this.ws?.send(msg);
|
|
36
|
+
};
|
|
37
|
+
onmessage = (_) => { };
|
|
38
|
+
destroy = () => {
|
|
39
|
+
this.isDestroyed = true;
|
|
40
|
+
this.destroyWebsocket();
|
|
41
|
+
};
|
|
42
|
+
destroyWebsocket() {
|
|
43
|
+
if (this.restartTimeout) {
|
|
44
|
+
clearTimeout(this.restartTimeout);
|
|
45
|
+
this.restartTimeout = null;
|
|
46
|
+
}
|
|
47
|
+
if (!this.ws) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.ws.onmessage = null;
|
|
51
|
+
this.ws.onopen = null;
|
|
52
|
+
this.ws.onclose = null;
|
|
53
|
+
if (this.ws.readyState === this.ws.OPEN) {
|
|
54
|
+
this.ws.close();
|
|
55
|
+
}
|
|
56
|
+
this.ws = null;
|
|
57
|
+
}
|
|
58
|
+
}
|
package/CameraVapix.d.ts
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
import { WritableStream } from 'node:stream/web';
|
|
5
|
-
import { HttpOptions, IClient } from './internal/common';
|
|
6
|
-
export type CameraVapixOptions = HttpOptions;
|
|
7
|
-
export type TApplicationList = {
|
|
8
|
-
reply: {
|
|
9
|
-
$: {
|
|
10
|
-
result: string;
|
|
11
|
-
};
|
|
12
|
-
application: {
|
|
13
|
-
$: TApplication;
|
|
14
|
-
}[];
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export type TApplication = {
|
|
18
|
-
Name: string;
|
|
19
|
-
NiceName: string;
|
|
20
|
-
Vendor: string;
|
|
21
|
-
Version: string;
|
|
22
|
-
ApplicationID?: string;
|
|
23
|
-
License: string;
|
|
24
|
-
Status: string;
|
|
25
|
-
ConfigurationPage?: string;
|
|
26
|
-
VendorHomePage?: string;
|
|
27
|
-
LicenseName?: string;
|
|
28
|
-
};
|
|
29
|
-
export type TGuardTour = {
|
|
30
|
-
id: string;
|
|
31
|
-
camNbr: unknown;
|
|
32
|
-
name: string;
|
|
33
|
-
randomEnabled: unknown;
|
|
34
|
-
running: string;
|
|
35
|
-
timeBetweenSequences: unknown;
|
|
36
|
-
tour: {
|
|
37
|
-
moveSpeed: unknown;
|
|
38
|
-
position: unknown;
|
|
39
|
-
presetNbr: unknown;
|
|
40
|
-
waitTime: unknown;
|
|
41
|
-
waitTimeViewType: unknown;
|
|
42
|
-
}[];
|
|
43
|
-
};
|
|
44
|
-
export type TAudioSampleRates = {
|
|
45
|
-
sampleRate: number;
|
|
46
|
-
bitRates: number[];
|
|
47
|
-
};
|
|
48
|
-
export type TSDCardInfo = {
|
|
49
|
-
available: boolean;
|
|
50
|
-
totalSize: number;
|
|
51
|
-
freeSize: number;
|
|
52
|
-
};
|
|
53
|
-
export type TPtzOverview = Record<number, {
|
|
54
|
-
id: number;
|
|
55
|
-
name: string;
|
|
56
|
-
}[]>;
|
|
57
|
-
export type TCameraPTZItem = {
|
|
58
|
-
name: string;
|
|
59
|
-
id: number;
|
|
60
|
-
data: TCameraPTZItemData;
|
|
61
|
-
};
|
|
62
|
-
export type TCameraPTZItemData = {
|
|
63
|
-
pan?: number;
|
|
64
|
-
tilt?: number;
|
|
65
|
-
zoom?: number;
|
|
66
|
-
};
|
|
67
|
-
export declare class CameraVapix {
|
|
68
|
-
private client;
|
|
69
|
-
constructor(options?: CameraVapixOptions | IClient);
|
|
70
|
-
vapixGet(path: string, parameters?: Record<string, string>): Promise<Response>;
|
|
71
|
-
vapixPost(path: string, data: string | Buffer | FormData, contentType?: string): Promise<Response>;
|
|
72
|
-
getCameraImage(camera: string, compression: string, resolution: string, outputStream: WritableStream): Promise<WritableStream<any>>;
|
|
73
|
-
getEventDeclarations(): Promise<string>;
|
|
74
|
-
getSupportedAudioSampleRate(): Promise<TAudioSampleRates[]>;
|
|
75
|
-
checkSdCard(): Promise<TSDCardInfo>;
|
|
76
|
-
downloadCameraReport(): Promise<Response>;
|
|
77
|
-
getMaxFps(channel: number): Promise<number>;
|
|
78
|
-
getTimezone(): Promise<string>;
|
|
79
|
-
getHeaders(): Promise<Record<string, string>>;
|
|
80
|
-
setHeaders(headers: Record<string, string>): Promise<Response>;
|
|
81
|
-
private parseParameters;
|
|
82
|
-
getParameterGroup(groupNames: string): Promise<Record<string, string>>;
|
|
83
|
-
setParameter(params: Record<string, string>): Promise<Response>;
|
|
84
|
-
getGuardTourList(): Promise<TGuardTour[]>;
|
|
85
|
-
setGuardTourEnabled(guardTourID: string, enable: boolean): Promise<Response>;
|
|
86
|
-
private parsePtz;
|
|
87
|
-
private parseCameraPtzResponse;
|
|
88
|
-
getPTZPresetList(channel: number): Promise<string[]>;
|
|
89
|
-
listPtzVideoSourceOverview(): Promise<TPtzOverview>;
|
|
90
|
-
goToPreset(channel: number, presetName: string): Promise<Response>;
|
|
91
|
-
getPtzPosition(camera: number): Promise<TCameraPTZItemData>;
|
|
92
|
-
getInputState(port: number): Promise<boolean>;
|
|
93
|
-
setOutputState(port: number, active: boolean): Promise<Response>;
|
|
94
|
-
getApplicationList(): Promise<TApplication[]>;
|
|
95
|
-
startApplication(applicationID: string): Promise<void>;
|
|
96
|
-
restartApplication(applicationID: string): Promise<void>;
|
|
97
|
-
stopApplication(applicationID: string): Promise<void>;
|
|
98
|
-
}
|