@supraio/client-sdk 0.0.1-mz-warmup.0 → 0.0.1-mz-warmup.4
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/dist/browser/src/Firebase/collections.d.ts +1 -1
- package/dist/browser/src/Platform/daemonHelper.d.ts +1 -1
- package/dist/browser/src/Process/Options.d.ts +12 -0
- package/dist/browser/src/Process/ProcessSdk.d.ts +22 -10
- package/dist/browser/src/Process/ProcessSdk.js +52 -37
- package/dist/browser/src/Process/ProcessSdk.js.map +1 -1
- package/dist/browser/src/Sdk.d.ts +2 -0
- package/dist/browser/src/Sdk.js +3 -1
- package/dist/browser/src/Sdk.js.map +1 -1
- package/dist/browser/src/Server/Options.d.ts +8 -0
- package/dist/browser/src/Server/Options.js +2 -0
- package/dist/browser/src/Server/Options.js.map +1 -0
- package/dist/browser/src/{Process → Server}/Server.d.ts +0 -0
- package/dist/browser/src/{Process → Server}/Server.js +0 -0
- package/dist/browser/src/Server/Server.js.map +1 -0
- package/dist/browser/src/Server/ServerSdk.d.ts +8 -0
- package/dist/browser/src/Server/ServerSdk.js +27 -0
- package/dist/browser/src/Server/ServerSdk.js.map +1 -0
- package/dist/node/src/Firebase/collections.d.ts +1 -1
- package/dist/node/src/Platform/daemonHelper.d.ts +1 -1
- package/dist/node/src/Process/Options.d.ts +12 -0
- package/dist/node/src/Process/ProcessSdk.d.ts +22 -10
- package/dist/node/src/Process/ProcessSdk.js +52 -37
- package/dist/node/src/Process/ProcessSdk.js.map +1 -1
- package/dist/node/src/Sdk.d.ts +2 -0
- package/dist/node/src/Sdk.js +3 -1
- package/dist/node/src/Sdk.js.map +1 -1
- package/dist/node/src/Server/Options.d.ts +8 -0
- package/dist/node/src/Server/Options.js +3 -0
- package/dist/node/src/Server/Options.js.map +1 -0
- package/dist/node/src/{Process → Server}/Server.d.ts +0 -0
- package/dist/node/src/{Process → Server}/Server.js +0 -0
- package/dist/node/src/Server/Server.js.map +1 -0
- package/dist/node/src/Server/ServerSdk.d.ts +8 -0
- package/dist/node/src/Server/ServerSdk.js +31 -0
- package/dist/node/src/Server/ServerSdk.js.map +1 -0
- package/package.json +1 -1
- package/dist/browser/src/Process/Server.js.map +0 -1
- package/dist/node/src/Process/Server.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import firebase from 'firebase';
|
|
2
2
|
import { ServerApp } from '../Process/App/App';
|
|
3
|
-
import { Server } from '../
|
|
3
|
+
import { Server } from '../Server/Server';
|
|
4
4
|
import { ServerVolume } from '../Process/Volume/Volume';
|
|
5
5
|
import { RemoteSession } from '../Session/RemoteSession';
|
|
6
6
|
import { User } from '../User/User';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Server } from '../
|
|
2
|
+
import { Server } from '../Server/Server';
|
|
3
3
|
import { RemoteSession } from '../Session/RemoteSession';
|
|
4
4
|
import { NetPacketDriver, NetStreamDriver, Options } from '../Options';
|
|
5
5
|
export declare enum MsgType {
|
|
@@ -10,9 +10,21 @@ export interface OpenOptions {
|
|
|
10
10
|
/** If this option is specified, it will fail when process of application not running */
|
|
11
11
|
runningOnly?: boolean;
|
|
12
12
|
}
|
|
13
|
+
export interface StartOptions {
|
|
14
|
+
/** Identify server where the process will be running */
|
|
15
|
+
serverUid: string;
|
|
16
|
+
/** Name of application which creating the process */
|
|
17
|
+
appName: string;
|
|
18
|
+
/** array of args passed to program process when is started */
|
|
19
|
+
appArgs: string[];
|
|
20
|
+
}
|
|
13
21
|
export interface CloseOptions {
|
|
14
22
|
/** Identify server where the process will be stopped */
|
|
15
23
|
serverUid: string;
|
|
16
24
|
/** Name of application which closing the process */
|
|
17
25
|
appName: string;
|
|
18
26
|
}
|
|
27
|
+
export interface GetProcessesOptions {
|
|
28
|
+
/** Identify server where the process will be listed */
|
|
29
|
+
serverUid: string;
|
|
30
|
+
}
|
|
@@ -1,34 +1,46 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { OpenOptions, CloseOptions } from "./Options";
|
|
1
|
+
import { OpenOptions, CloseOptions, StartOptions, GetProcessesOptions } from "./Options";
|
|
3
2
|
import { Process } from './Process';
|
|
4
3
|
import { Options } from '../Options';
|
|
5
4
|
import { SessionSdk } from '../Session/SessionSdk';
|
|
5
|
+
import { ServerSdk } from '../Server/ServerSdk';
|
|
6
6
|
export declare class ProcessSdk {
|
|
7
7
|
private options;
|
|
8
8
|
private sessionSdk;
|
|
9
|
-
private
|
|
9
|
+
private serverSdk;
|
|
10
10
|
private sockPath;
|
|
11
|
-
constructor(options: Options | undefined, sessionSdk: SessionSdk,
|
|
11
|
+
constructor(options: Options | undefined, sessionSdk: SessionSdk, serverSdk: ServerSdk);
|
|
12
12
|
/**
|
|
13
13
|
* Open process with given options.
|
|
14
14
|
* It can open existing process or create new process based on options.
|
|
15
15
|
* If not special options specified, try to reuse existing process of app.
|
|
16
16
|
*/
|
|
17
17
|
open(openOptions: OpenOptions): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Start process with given options.
|
|
20
|
+
* It's not starting new, when app is already running
|
|
21
|
+
*/
|
|
22
|
+
start(startOptions: StartOptions): Promise<{
|
|
23
|
+
screenDriver: import("../Options").NetPacketDriver;
|
|
24
|
+
metadataDriver: import("../Options").NetStreamDriver;
|
|
25
|
+
screenID: string;
|
|
26
|
+
screenHost: string;
|
|
27
|
+
metadataHost: string;
|
|
28
|
+
clientID: string;
|
|
29
|
+
clientSecret: string;
|
|
30
|
+
secure: boolean;
|
|
31
|
+
}>;
|
|
18
32
|
/**
|
|
19
33
|
* Close process with given options.
|
|
20
|
-
* It closes the given process
|
|
34
|
+
* It closes the given process remotely and locally as well.
|
|
21
35
|
*/
|
|
22
36
|
close(closeOptions: CloseOptions): Promise<void>;
|
|
23
37
|
/**
|
|
24
|
-
* Returns all currently running processes
|
|
38
|
+
* Returns all currently running processes remotely
|
|
25
39
|
*/
|
|
26
|
-
getProcesses(): Promise<Process[]>;
|
|
40
|
+
getProcesses(getProcessesOptions?: GetProcessesOptions): Promise<Process[]>;
|
|
27
41
|
/**
|
|
28
42
|
* Returns all currently running processes locally attached to this computer
|
|
29
43
|
*/
|
|
30
|
-
getAttachedProcesses(): Promise<Process[]>;
|
|
31
|
-
private getServers;
|
|
32
|
-
private findServer;
|
|
44
|
+
getAttachedProcesses(getProcessesOptions?: GetProcessesOptions): Promise<Process[]>;
|
|
33
45
|
private getServerProcesses;
|
|
34
46
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { getServerInfo, invoke, MsgType, } from '../Platform/daemonHelper';
|
|
2
|
-
import { getServerCollection } from '../Firebase/collections';
|
|
3
2
|
import { getSockPath } from '../Platform/pathHelper';
|
|
4
3
|
const SCREEN_ID_SIZE = 40;
|
|
5
4
|
export class ProcessSdk {
|
|
6
|
-
constructor(options, sessionSdk,
|
|
5
|
+
constructor(options, sessionSdk, serverSdk) {
|
|
7
6
|
this.options = options;
|
|
8
7
|
this.sessionSdk = sessionSdk;
|
|
9
|
-
this.
|
|
8
|
+
this.serverSdk = serverSdk;
|
|
10
9
|
this.sockPath = getSockPath(options);
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
@@ -15,7 +14,7 @@ export class ProcessSdk {
|
|
|
15
14
|
* If not special options specified, try to reuse existing process of app.
|
|
16
15
|
*/
|
|
17
16
|
async open(openOptions) {
|
|
18
|
-
const server = await this.findServer(openOptions);
|
|
17
|
+
const server = await this.serverSdk.findServer(openOptions);
|
|
19
18
|
const serverInfo = getServerInfo(server, await this.sessionSdk.getRemote(), this.options);
|
|
20
19
|
const processes = await this.getServerProcesses(server);
|
|
21
20
|
const runningProcess = processes.find((process) => process.appName === openOptions.appName);
|
|
@@ -33,12 +32,45 @@ export class ProcessSdk {
|
|
|
33
32
|
};
|
|
34
33
|
await invoke(this.sockPath, MsgType.AttachProcess, Buffer.from(JSON.stringify(attachInfo), 'ascii'));
|
|
35
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Start process with given options.
|
|
37
|
+
* It's not starting new, when app is already running
|
|
38
|
+
*/
|
|
39
|
+
async start(startOptions) {
|
|
40
|
+
const server = await this.serverSdk.findServer(startOptions);
|
|
41
|
+
const serverInfo = getServerInfo(server, await this.sessionSdk.getRemote(), this.options);
|
|
42
|
+
const processes = await this.getServerProcesses(server);
|
|
43
|
+
const runningProcess = processes.find((process) => process.appName === startOptions.appName);
|
|
44
|
+
let screenID;
|
|
45
|
+
if (!runningProcess) {
|
|
46
|
+
const startInfo = {
|
|
47
|
+
...serverInfo,
|
|
48
|
+
AppName: startOptions.appName,
|
|
49
|
+
AppArgs: startOptions.appArgs,
|
|
50
|
+
};
|
|
51
|
+
const screenIDBuffer = await invoke(this.sockPath, MsgType.StartProcess, Buffer.from(JSON.stringify(startInfo), 'utf8'));
|
|
52
|
+
screenID = screenIDBuffer.toString('ascii');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
screenID = runningProcess.screenId;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
screenDriver: serverInfo.ScreenDriver,
|
|
59
|
+
metadataDriver: serverInfo.MetadataDriver,
|
|
60
|
+
screenID: screenID,
|
|
61
|
+
screenHost: serverInfo.ScreenHost,
|
|
62
|
+
metadataHost: serverInfo.MetadataHost,
|
|
63
|
+
clientID: serverInfo.ClientID,
|
|
64
|
+
clientSecret: serverInfo.ClientSecret,
|
|
65
|
+
secure: serverInfo.Secure,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
36
68
|
/**
|
|
37
69
|
* Close process with given options.
|
|
38
|
-
* It closes the given process
|
|
70
|
+
* It closes the given process remotely and locally as well.
|
|
39
71
|
*/
|
|
40
72
|
async close(closeOptions) {
|
|
41
|
-
const server = await this.findServer(closeOptions);
|
|
73
|
+
const server = await this.serverSdk.findServer(closeOptions);
|
|
42
74
|
const processes = await this.getServerProcesses(server);
|
|
43
75
|
const runningProcess = processes.find((process) => process.appName === closeOptions.appName);
|
|
44
76
|
if (runningProcess) {
|
|
@@ -53,54 +85,37 @@ export class ProcessSdk {
|
|
|
53
85
|
}
|
|
54
86
|
}
|
|
55
87
|
/**
|
|
56
|
-
* Returns all currently running processes
|
|
88
|
+
* Returns all currently running processes remotely
|
|
57
89
|
*/
|
|
58
|
-
async getProcesses() {
|
|
59
|
-
const
|
|
90
|
+
async getProcesses(getProcessesOptions) {
|
|
91
|
+
const serverOptions = {};
|
|
92
|
+
if (getProcessesOptions?.serverUid) {
|
|
93
|
+
serverOptions.serverUids = [getProcessesOptions.serverUid];
|
|
94
|
+
}
|
|
95
|
+
const servers = await this.serverSdk.getServers(serverOptions);
|
|
60
96
|
const processes = [];
|
|
61
97
|
for (const server of servers) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
processes.push(...serverProcesses);
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
console.error(error);
|
|
68
|
-
}
|
|
98
|
+
const serverProcesses = await this.getServerProcesses(server);
|
|
99
|
+
processes.push(...serverProcesses);
|
|
69
100
|
}
|
|
70
101
|
return processes;
|
|
71
102
|
}
|
|
72
103
|
/**
|
|
73
104
|
* Returns all currently running processes locally attached to this computer
|
|
74
105
|
*/
|
|
75
|
-
async getAttachedProcesses() {
|
|
76
|
-
const processes = await this.getProcesses();
|
|
106
|
+
async getAttachedProcesses(getProcessesOptions) {
|
|
107
|
+
const processes = await this.getProcesses(getProcessesOptions);
|
|
77
108
|
const attachedScreenIdsData = await invoke(this.sockPath, MsgType.ListAttachedProcesses, Buffer.from(JSON.stringify({})));
|
|
78
109
|
const attachedScreenIds = [];
|
|
79
110
|
for (let i = 0; i < attachedScreenIdsData.byteLength; i += SCREEN_ID_SIZE) {
|
|
80
111
|
const screenId = attachedScreenIdsData.slice(i, i + SCREEN_ID_SIZE).toString('ascii');
|
|
81
112
|
attachedScreenIds.push(screenId);
|
|
82
113
|
}
|
|
83
|
-
const attachedProcesses = processes
|
|
114
|
+
const attachedProcesses = processes
|
|
115
|
+
.filter((process) => attachedScreenIds.includes(process.screenId))
|
|
116
|
+
.filter((process) => !getProcessesOptions?.serverUid || getProcessesOptions.serverUid === process.serverUid);
|
|
84
117
|
return attachedProcesses;
|
|
85
118
|
}
|
|
86
|
-
async getServers() {
|
|
87
|
-
const firebaseApp = await this.firebaseApp();
|
|
88
|
-
const serversCol = await getServerCollection(firebaseApp);
|
|
89
|
-
const serversDocument = await serversCol.get();
|
|
90
|
-
return serversDocument.docs.map((doc) => doc.data());
|
|
91
|
-
}
|
|
92
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
93
|
-
async findServer(processOptions) {
|
|
94
|
-
const firebaseApp = await this.firebaseApp();
|
|
95
|
-
const serversCol = await getServerCollection(firebaseApp);
|
|
96
|
-
const serversDocument = await serversCol.get();
|
|
97
|
-
const firstServerDocument = serversDocument.docs.find((s) => s.data().serverUid === processOptions.serverUid);
|
|
98
|
-
if (!firstServerDocument) {
|
|
99
|
-
throw new Error(`No servers found for user`);
|
|
100
|
-
}
|
|
101
|
-
const firstServer = firstServerDocument.data();
|
|
102
|
-
return firstServer;
|
|
103
|
-
}
|
|
104
119
|
async getServerProcesses(server) {
|
|
105
120
|
const serverInfo = getServerInfo(server, await this.sessionSdk.getRemote(), this.options);
|
|
106
121
|
const screenIdsData = await invoke(this.sockPath, MsgType.ListProcesses, Buffer.from(JSON.stringify(serverInfo)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessSdk.js","sourceRoot":"","sources":["../../../../src/Process/ProcessSdk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProcessSdk.js","sourceRoot":"","sources":["../../../../src/Process/ProcessSdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,11 @@ import { Options } from "./Options";
|
|
|
2
2
|
import { ProcessSdk } from "./Process/ProcessSdk";
|
|
3
3
|
import { ConnectOptions } from './Session/Options';
|
|
4
4
|
import { SessionSdk } from "./Session/SessionSdk";
|
|
5
|
+
import { ServerSdk } from './Server/ServerSdk';
|
|
5
6
|
export declare class Sdk {
|
|
6
7
|
private readonly options?;
|
|
7
8
|
readonly session: SessionSdk;
|
|
9
|
+
readonly server: ServerSdk;
|
|
8
10
|
readonly process: ProcessSdk;
|
|
9
11
|
private readonly firebaseApp;
|
|
10
12
|
constructor(options?: Options | undefined);
|
package/dist/browser/src/Sdk.js
CHANGED
|
@@ -4,6 +4,7 @@ import { SessionSdk } from "./Session/SessionSdk";
|
|
|
4
4
|
import * as defaultFirebaseOptions from '../firebase.json';
|
|
5
5
|
import { createSessionStorage } from './Session/sessionStorageFactory';
|
|
6
6
|
import { wait } from './Timer/wait';
|
|
7
|
+
import { ServerSdk } from './Server/ServerSdk';
|
|
7
8
|
const FIREBASE_APP_NAME = 'sdk';
|
|
8
9
|
export class Sdk {
|
|
9
10
|
constructor(options) {
|
|
@@ -28,7 +29,8 @@ export class Sdk {
|
|
|
28
29
|
: firebase.app(FIREBASE_APP_NAME);
|
|
29
30
|
const sessionStorage = createSessionStorage(this.options);
|
|
30
31
|
this.session = new SessionSdk(this.options, this.getAuthenticatedFirebaseApp, sessionStorage);
|
|
31
|
-
this.
|
|
32
|
+
this.server = new ServerSdk(this.getAuthenticatedFirebaseApp);
|
|
33
|
+
this.process = new ProcessSdk(this.options, this.session, this.server);
|
|
32
34
|
}
|
|
33
35
|
/**
|
|
34
36
|
* @alias sdk.session.connect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sdk.js","sourceRoot":"","sources":["../../../src/Sdk.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,sBAAsB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Sdk.js","sourceRoot":"","sources":["../../../src/Sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../../../src/Server/Options.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Server/Server.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,+BAAmB,CAAA;AACpB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import firebase from 'firebase';
|
|
2
|
+
import { FindServerOptions, GetServersOptions } from './Options';
|
|
3
|
+
export declare class ServerSdk {
|
|
4
|
+
private firebaseApp;
|
|
5
|
+
constructor(firebaseApp: () => Promise<firebase.app.App>);
|
|
6
|
+
getServers(options?: GetServersOptions): Promise<import("./Server").Server[]>;
|
|
7
|
+
findServer(processOptions: FindServerOptions): Promise<import("./Server").Server>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getServerCollection } from '../Firebase/collections';
|
|
2
|
+
export class ServerSdk {
|
|
3
|
+
constructor(firebaseApp) {
|
|
4
|
+
this.firebaseApp = firebaseApp;
|
|
5
|
+
}
|
|
6
|
+
async getServers(options) {
|
|
7
|
+
const firebaseApp = await this.firebaseApp();
|
|
8
|
+
const serversCol = await getServerCollection(firebaseApp);
|
|
9
|
+
const query = options?.serverUids
|
|
10
|
+
? serversCol.where('serverUid', 'in', options.serverUids)
|
|
11
|
+
: serversCol;
|
|
12
|
+
const serversDocument = await query.get();
|
|
13
|
+
return serversDocument.docs.map((doc) => doc.data());
|
|
14
|
+
}
|
|
15
|
+
async findServer(processOptions) {
|
|
16
|
+
const firebaseApp = await this.firebaseApp();
|
|
17
|
+
const serversCol = await getServerCollection(firebaseApp);
|
|
18
|
+
const serversDocument = await serversCol.get();
|
|
19
|
+
const firstServerDocument = serversDocument.docs.find((s) => s.data().serverUid === processOptions.serverUid);
|
|
20
|
+
if (!firstServerDocument) {
|
|
21
|
+
throw new Error(`No servers found for user`);
|
|
22
|
+
}
|
|
23
|
+
const firstServer = firstServerDocument.data();
|
|
24
|
+
return firstServer;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ServerSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerSdk.js","sourceRoot":"","sources":["../../../../src/Server/ServerSdk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,MAAM,OAAO,SAAS;IAErB,YACS,WAA4C;QAA5C,gBAAW,GAAX,WAAW,CAAiC;IAClD,CAAC;IAEG,KAAK,CAAC,UAAU,CAAC,OAA2B;QAClD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,OAAO,EAAE,UAAU;YAChC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;YACzD,CAAC,CAAC,UAAU,CAAC;QACd,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,cAAiC;QACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9G,IAAI,CAAC,mBAAmB,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC7C;QACD,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,WAAW,CAAC;IACpB,CAAC;CACD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import firebase from 'firebase';
|
|
2
2
|
import { ServerApp } from '../Process/App/App';
|
|
3
|
-
import { Server } from '../
|
|
3
|
+
import { Server } from '../Server/Server';
|
|
4
4
|
import { ServerVolume } from '../Process/Volume/Volume';
|
|
5
5
|
import { RemoteSession } from '../Session/RemoteSession';
|
|
6
6
|
import { User } from '../User/User';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Server } from '../
|
|
2
|
+
import { Server } from '../Server/Server';
|
|
3
3
|
import { RemoteSession } from '../Session/RemoteSession';
|
|
4
4
|
import { NetPacketDriver, NetStreamDriver, Options } from '../Options';
|
|
5
5
|
export declare enum MsgType {
|
|
@@ -10,9 +10,21 @@ export interface OpenOptions {
|
|
|
10
10
|
/** If this option is specified, it will fail when process of application not running */
|
|
11
11
|
runningOnly?: boolean;
|
|
12
12
|
}
|
|
13
|
+
export interface StartOptions {
|
|
14
|
+
/** Identify server where the process will be running */
|
|
15
|
+
serverUid: string;
|
|
16
|
+
/** Name of application which creating the process */
|
|
17
|
+
appName: string;
|
|
18
|
+
/** array of args passed to program process when is started */
|
|
19
|
+
appArgs: string[];
|
|
20
|
+
}
|
|
13
21
|
export interface CloseOptions {
|
|
14
22
|
/** Identify server where the process will be stopped */
|
|
15
23
|
serverUid: string;
|
|
16
24
|
/** Name of application which closing the process */
|
|
17
25
|
appName: string;
|
|
18
26
|
}
|
|
27
|
+
export interface GetProcessesOptions {
|
|
28
|
+
/** Identify server where the process will be listed */
|
|
29
|
+
serverUid: string;
|
|
30
|
+
}
|
|
@@ -1,34 +1,46 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { OpenOptions, CloseOptions } from "./Options";
|
|
1
|
+
import { OpenOptions, CloseOptions, StartOptions, GetProcessesOptions } from "./Options";
|
|
3
2
|
import { Process } from './Process';
|
|
4
3
|
import { Options } from '../Options';
|
|
5
4
|
import { SessionSdk } from '../Session/SessionSdk';
|
|
5
|
+
import { ServerSdk } from '../Server/ServerSdk';
|
|
6
6
|
export declare class ProcessSdk {
|
|
7
7
|
private options;
|
|
8
8
|
private sessionSdk;
|
|
9
|
-
private
|
|
9
|
+
private serverSdk;
|
|
10
10
|
private sockPath;
|
|
11
|
-
constructor(options: Options | undefined, sessionSdk: SessionSdk,
|
|
11
|
+
constructor(options: Options | undefined, sessionSdk: SessionSdk, serverSdk: ServerSdk);
|
|
12
12
|
/**
|
|
13
13
|
* Open process with given options.
|
|
14
14
|
* It can open existing process or create new process based on options.
|
|
15
15
|
* If not special options specified, try to reuse existing process of app.
|
|
16
16
|
*/
|
|
17
17
|
open(openOptions: OpenOptions): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Start process with given options.
|
|
20
|
+
* It's not starting new, when app is already running
|
|
21
|
+
*/
|
|
22
|
+
start(startOptions: StartOptions): Promise<{
|
|
23
|
+
screenDriver: import("../Options").NetPacketDriver;
|
|
24
|
+
metadataDriver: import("../Options").NetStreamDriver;
|
|
25
|
+
screenID: string;
|
|
26
|
+
screenHost: string;
|
|
27
|
+
metadataHost: string;
|
|
28
|
+
clientID: string;
|
|
29
|
+
clientSecret: string;
|
|
30
|
+
secure: boolean;
|
|
31
|
+
}>;
|
|
18
32
|
/**
|
|
19
33
|
* Close process with given options.
|
|
20
|
-
* It closes the given process
|
|
34
|
+
* It closes the given process remotely and locally as well.
|
|
21
35
|
*/
|
|
22
36
|
close(closeOptions: CloseOptions): Promise<void>;
|
|
23
37
|
/**
|
|
24
|
-
* Returns all currently running processes
|
|
38
|
+
* Returns all currently running processes remotely
|
|
25
39
|
*/
|
|
26
|
-
getProcesses(): Promise<Process[]>;
|
|
40
|
+
getProcesses(getProcessesOptions?: GetProcessesOptions): Promise<Process[]>;
|
|
27
41
|
/**
|
|
28
42
|
* Returns all currently running processes locally attached to this computer
|
|
29
43
|
*/
|
|
30
|
-
getAttachedProcesses(): Promise<Process[]>;
|
|
31
|
-
private getServers;
|
|
32
|
-
private findServer;
|
|
44
|
+
getAttachedProcesses(getProcessesOptions?: GetProcessesOptions): Promise<Process[]>;
|
|
33
45
|
private getServerProcesses;
|
|
34
46
|
}
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProcessSdk = void 0;
|
|
4
4
|
const daemonHelper_1 = require("../Platform/daemonHelper");
|
|
5
|
-
const collections_1 = require("../Firebase/collections");
|
|
6
5
|
const pathHelper_1 = require("../Platform/pathHelper");
|
|
7
6
|
const SCREEN_ID_SIZE = 40;
|
|
8
7
|
class ProcessSdk {
|
|
9
|
-
constructor(options, sessionSdk,
|
|
8
|
+
constructor(options, sessionSdk, serverSdk) {
|
|
10
9
|
this.options = options;
|
|
11
10
|
this.sessionSdk = sessionSdk;
|
|
12
|
-
this.
|
|
11
|
+
this.serverSdk = serverSdk;
|
|
13
12
|
this.sockPath = pathHelper_1.getSockPath(options);
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
@@ -18,7 +17,7 @@ class ProcessSdk {
|
|
|
18
17
|
* If not special options specified, try to reuse existing process of app.
|
|
19
18
|
*/
|
|
20
19
|
async open(openOptions) {
|
|
21
|
-
const server = await this.findServer(openOptions);
|
|
20
|
+
const server = await this.serverSdk.findServer(openOptions);
|
|
22
21
|
const serverInfo = daemonHelper_1.getServerInfo(server, await this.sessionSdk.getRemote(), this.options);
|
|
23
22
|
const processes = await this.getServerProcesses(server);
|
|
24
23
|
const runningProcess = processes.find((process) => process.appName === openOptions.appName);
|
|
@@ -36,12 +35,45 @@ class ProcessSdk {
|
|
|
36
35
|
};
|
|
37
36
|
await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.AttachProcess, Buffer.from(JSON.stringify(attachInfo), 'ascii'));
|
|
38
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Start process with given options.
|
|
40
|
+
* It's not starting new, when app is already running
|
|
41
|
+
*/
|
|
42
|
+
async start(startOptions) {
|
|
43
|
+
const server = await this.serverSdk.findServer(startOptions);
|
|
44
|
+
const serverInfo = daemonHelper_1.getServerInfo(server, await this.sessionSdk.getRemote(), this.options);
|
|
45
|
+
const processes = await this.getServerProcesses(server);
|
|
46
|
+
const runningProcess = processes.find((process) => process.appName === startOptions.appName);
|
|
47
|
+
let screenID;
|
|
48
|
+
if (!runningProcess) {
|
|
49
|
+
const startInfo = {
|
|
50
|
+
...serverInfo,
|
|
51
|
+
AppName: startOptions.appName,
|
|
52
|
+
AppArgs: startOptions.appArgs,
|
|
53
|
+
};
|
|
54
|
+
const screenIDBuffer = await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.StartProcess, Buffer.from(JSON.stringify(startInfo), 'utf8'));
|
|
55
|
+
screenID = screenIDBuffer.toString('ascii');
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
screenID = runningProcess.screenId;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
screenDriver: serverInfo.ScreenDriver,
|
|
62
|
+
metadataDriver: serverInfo.MetadataDriver,
|
|
63
|
+
screenID: screenID,
|
|
64
|
+
screenHost: serverInfo.ScreenHost,
|
|
65
|
+
metadataHost: serverInfo.MetadataHost,
|
|
66
|
+
clientID: serverInfo.ClientID,
|
|
67
|
+
clientSecret: serverInfo.ClientSecret,
|
|
68
|
+
secure: serverInfo.Secure,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
39
71
|
/**
|
|
40
72
|
* Close process with given options.
|
|
41
|
-
* It closes the given process
|
|
73
|
+
* It closes the given process remotely and locally as well.
|
|
42
74
|
*/
|
|
43
75
|
async close(closeOptions) {
|
|
44
|
-
const server = await this.findServer(closeOptions);
|
|
76
|
+
const server = await this.serverSdk.findServer(closeOptions);
|
|
45
77
|
const processes = await this.getServerProcesses(server);
|
|
46
78
|
const runningProcess = processes.find((process) => process.appName === closeOptions.appName);
|
|
47
79
|
if (runningProcess) {
|
|
@@ -56,54 +88,37 @@ class ProcessSdk {
|
|
|
56
88
|
}
|
|
57
89
|
}
|
|
58
90
|
/**
|
|
59
|
-
* Returns all currently running processes
|
|
91
|
+
* Returns all currently running processes remotely
|
|
60
92
|
*/
|
|
61
|
-
async getProcesses() {
|
|
62
|
-
const
|
|
93
|
+
async getProcesses(getProcessesOptions) {
|
|
94
|
+
const serverOptions = {};
|
|
95
|
+
if (getProcessesOptions?.serverUid) {
|
|
96
|
+
serverOptions.serverUids = [getProcessesOptions.serverUid];
|
|
97
|
+
}
|
|
98
|
+
const servers = await this.serverSdk.getServers(serverOptions);
|
|
63
99
|
const processes = [];
|
|
64
100
|
for (const server of servers) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
processes.push(...serverProcesses);
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.error(error);
|
|
71
|
-
}
|
|
101
|
+
const serverProcesses = await this.getServerProcesses(server);
|
|
102
|
+
processes.push(...serverProcesses);
|
|
72
103
|
}
|
|
73
104
|
return processes;
|
|
74
105
|
}
|
|
75
106
|
/**
|
|
76
107
|
* Returns all currently running processes locally attached to this computer
|
|
77
108
|
*/
|
|
78
|
-
async getAttachedProcesses() {
|
|
79
|
-
const processes = await this.getProcesses();
|
|
109
|
+
async getAttachedProcesses(getProcessesOptions) {
|
|
110
|
+
const processes = await this.getProcesses(getProcessesOptions);
|
|
80
111
|
const attachedScreenIdsData = await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.ListAttachedProcesses, Buffer.from(JSON.stringify({})));
|
|
81
112
|
const attachedScreenIds = [];
|
|
82
113
|
for (let i = 0; i < attachedScreenIdsData.byteLength; i += SCREEN_ID_SIZE) {
|
|
83
114
|
const screenId = attachedScreenIdsData.slice(i, i + SCREEN_ID_SIZE).toString('ascii');
|
|
84
115
|
attachedScreenIds.push(screenId);
|
|
85
116
|
}
|
|
86
|
-
const attachedProcesses = processes
|
|
117
|
+
const attachedProcesses = processes
|
|
118
|
+
.filter((process) => attachedScreenIds.includes(process.screenId))
|
|
119
|
+
.filter((process) => !getProcessesOptions?.serverUid || getProcessesOptions.serverUid === process.serverUid);
|
|
87
120
|
return attachedProcesses;
|
|
88
121
|
}
|
|
89
|
-
async getServers() {
|
|
90
|
-
const firebaseApp = await this.firebaseApp();
|
|
91
|
-
const serversCol = await collections_1.getServerCollection(firebaseApp);
|
|
92
|
-
const serversDocument = await serversCol.get();
|
|
93
|
-
return serversDocument.docs.map((doc) => doc.data());
|
|
94
|
-
}
|
|
95
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
96
|
-
async findServer(processOptions) {
|
|
97
|
-
const firebaseApp = await this.firebaseApp();
|
|
98
|
-
const serversCol = await collections_1.getServerCollection(firebaseApp);
|
|
99
|
-
const serversDocument = await serversCol.get();
|
|
100
|
-
const firstServerDocument = serversDocument.docs.find((s) => s.data().serverUid === processOptions.serverUid);
|
|
101
|
-
if (!firstServerDocument) {
|
|
102
|
-
throw new Error(`No servers found for user`);
|
|
103
|
-
}
|
|
104
|
-
const firstServer = firstServerDocument.data();
|
|
105
|
-
return firstServer;
|
|
106
|
-
}
|
|
107
122
|
async getServerProcesses(server) {
|
|
108
123
|
const serverInfo = daemonHelper_1.getServerInfo(server, await this.sessionSdk.getRemote(), this.options);
|
|
109
124
|
const screenIdsData = await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.ListProcesses, Buffer.from(JSON.stringify(serverInfo)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessSdk.js","sourceRoot":"","sources":["../../../../src/Process/ProcessSdk.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ProcessSdk.js","sourceRoot":"","sources":["../../../../src/Process/ProcessSdk.ts"],"names":[],"mappings":"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"}
|
package/dist/node/src/Sdk.d.ts
CHANGED
|
@@ -2,9 +2,11 @@ import { Options } from "./Options";
|
|
|
2
2
|
import { ProcessSdk } from "./Process/ProcessSdk";
|
|
3
3
|
import { ConnectOptions } from './Session/Options';
|
|
4
4
|
import { SessionSdk } from "./Session/SessionSdk";
|
|
5
|
+
import { ServerSdk } from './Server/ServerSdk';
|
|
5
6
|
export declare class Sdk {
|
|
6
7
|
private readonly options?;
|
|
7
8
|
readonly session: SessionSdk;
|
|
9
|
+
readonly server: ServerSdk;
|
|
8
10
|
readonly process: ProcessSdk;
|
|
9
11
|
private readonly firebaseApp;
|
|
10
12
|
constructor(options?: Options | undefined);
|
package/dist/node/src/Sdk.js
CHANGED
|
@@ -29,6 +29,7 @@ const SessionSdk_1 = require("./Session/SessionSdk");
|
|
|
29
29
|
const defaultFirebaseOptions = __importStar(require("../firebase.json"));
|
|
30
30
|
const sessionStorageFactory_1 = require("./Session/sessionStorageFactory");
|
|
31
31
|
const wait_1 = require("./Timer/wait");
|
|
32
|
+
const ServerSdk_1 = require("./Server/ServerSdk");
|
|
32
33
|
const FIREBASE_APP_NAME = 'sdk';
|
|
33
34
|
class Sdk {
|
|
34
35
|
constructor(options) {
|
|
@@ -53,7 +54,8 @@ class Sdk {
|
|
|
53
54
|
: firebase_1.default.app(FIREBASE_APP_NAME);
|
|
54
55
|
const sessionStorage = sessionStorageFactory_1.createSessionStorage(this.options);
|
|
55
56
|
this.session = new SessionSdk_1.SessionSdk(this.options, this.getAuthenticatedFirebaseApp, sessionStorage);
|
|
56
|
-
this.
|
|
57
|
+
this.server = new ServerSdk_1.ServerSdk(this.getAuthenticatedFirebaseApp);
|
|
58
|
+
this.process = new ProcessSdk_1.ProcessSdk(this.options, this.session, this.server);
|
|
57
59
|
}
|
|
58
60
|
/**
|
|
59
61
|
* @alias sdk.session.connect
|
package/dist/node/src/Sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sdk.js","sourceRoot":"","sources":["../../../src/Sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAgC;AAEhC,qDAAkD;AAElD,qDAAkD;AAClD,yEAA2D;AAC3D,2EAAuE;AACvE,uCAAoC;
|
|
1
|
+
{"version":3,"file":"Sdk.js","sourceRoot":"","sources":["../../../src/Sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAgC;AAEhC,qDAAkD;AAElD,qDAAkD;AAClD,yEAA2D;AAC3D,2EAAuE;AACvE,uCAAoC;AACpC,kDAA+C;AAE/C,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,MAAa,GAAG;IAQf,YACkB,OAAiB;QAAjB,YAAO,GAAP,OAAO,CAAU;QAoB3B,gCAA2B,GAAG,KAAK,IAAI,EAAE;YAChD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;gBACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;gBACnD,IAAI,CAAC,gBAAgB,EAAE;oBACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;iBACrD;gBACD,MAAM,eAAe,GAAG,kBAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAChF,IAAI,CAAC,eAAe,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;iBACjE;gBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;aACrC;YAED,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC,CAAA;QAhCA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,sBAAsB,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,CAAC,kBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC;YAC1E,CAAC,CAAC,kBAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,iBAAiB,CAAC;YAC5D,CAAC,CAAC,kBAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAEnC,MAAM,cAAc,GAAG,4CAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,2BAA2B,EAAE,cAAc,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,cAA+B;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAkBO,KAAK,CAAC,QAAQ,CAAC,eAA6C;QACnE,IAAI,SAA4B,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI;gBACH,iFAAiF;gBACjF,iGAAiG;gBACjG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;gBACpE,OAAO;aACP;YAAC,OAAO,KAAK,EAAE;gBACf,SAAS,GAAG,KAAK,CAAA;gBACjB,MAAM,WAAI,CAAC,GAAG,CAAC,CAAC;aAChB;SACD;QACD,MAAM,SAAS,CAAC;IACjB,CAAC;CACD;AA5DD,kBA4DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../../../src/Server/Options.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Server/Server.ts"],"names":[],"mappings":";;;AACA,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,+BAAmB,CAAA;AACpB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import firebase from 'firebase';
|
|
2
|
+
import { FindServerOptions, GetServersOptions } from './Options';
|
|
3
|
+
export declare class ServerSdk {
|
|
4
|
+
private firebaseApp;
|
|
5
|
+
constructor(firebaseApp: () => Promise<firebase.app.App>);
|
|
6
|
+
getServers(options?: GetServersOptions): Promise<import("./Server").Server[]>;
|
|
7
|
+
findServer(processOptions: FindServerOptions): Promise<import("./Server").Server>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServerSdk = void 0;
|
|
4
|
+
const collections_1 = require("../Firebase/collections");
|
|
5
|
+
class ServerSdk {
|
|
6
|
+
constructor(firebaseApp) {
|
|
7
|
+
this.firebaseApp = firebaseApp;
|
|
8
|
+
}
|
|
9
|
+
async getServers(options) {
|
|
10
|
+
const firebaseApp = await this.firebaseApp();
|
|
11
|
+
const serversCol = await collections_1.getServerCollection(firebaseApp);
|
|
12
|
+
const query = options?.serverUids
|
|
13
|
+
? serversCol.where('serverUid', 'in', options.serverUids)
|
|
14
|
+
: serversCol;
|
|
15
|
+
const serversDocument = await query.get();
|
|
16
|
+
return serversDocument.docs.map((doc) => doc.data());
|
|
17
|
+
}
|
|
18
|
+
async findServer(processOptions) {
|
|
19
|
+
const firebaseApp = await this.firebaseApp();
|
|
20
|
+
const serversCol = await collections_1.getServerCollection(firebaseApp);
|
|
21
|
+
const serversDocument = await serversCol.get();
|
|
22
|
+
const firstServerDocument = serversDocument.docs.find((s) => s.data().serverUid === processOptions.serverUid);
|
|
23
|
+
if (!firstServerDocument) {
|
|
24
|
+
throw new Error(`No servers found for user`);
|
|
25
|
+
}
|
|
26
|
+
const firstServer = firstServerDocument.data();
|
|
27
|
+
return firstServer;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.ServerSdk = ServerSdk;
|
|
31
|
+
//# sourceMappingURL=ServerSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerSdk.js","sourceRoot":"","sources":["../../../../src/Server/ServerSdk.ts"],"names":[],"mappings":";;;AACA,yDAA8D;AAG9D,MAAa,SAAS;IAErB,YACS,WAA4C;QAA5C,gBAAW,GAAX,WAAW,CAAiC;IAClD,CAAC;IAEG,KAAK,CAAC,UAAU,CAAC,OAA2B;QAClD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,iCAAmB,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,OAAO,EAAE,UAAU;YAChC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;YACzD,CAAC,CAAC,UAAU,CAAC;QACd,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;QAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,cAAiC;QACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,iCAAmB,CAAC,WAAW,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9G,IAAI,CAAC,mBAAmB,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAC7C;QACD,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,WAAW,CAAC;IACpB,CAAC;CACD;AA3BD,8BA2BC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Process/Server.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,+BAAmB,CAAA;AACpB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../../../src/Process/Server.ts"],"names":[],"mappings":";;;AACA,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,2BAAe,CAAA;IACf,+BAAmB,CAAA;AACpB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB"}
|