@supraio/client-sdk 0.0.1-master.10 → 0.0.1-master.12
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 +8 -7
- package/dist/browser/src/Firebase/collections.js +15 -7
- package/dist/browser/src/Firebase/collections.js.map +1 -1
- package/dist/browser/src/Options.d.ts +55 -0
- package/dist/browser/src/Platform/daemonHelper.d.ts +2 -5
- package/dist/browser/src/Platform/daemonHelper.js +10 -10
- package/dist/browser/src/Platform/daemonHelper.js.map +1 -1
- package/dist/browser/src/Platform/pathHelper.d.ts +3 -3
- package/dist/browser/src/Platform/pathHelper.js +3 -3
- package/dist/browser/src/Platform/pathHelper.js.map +1 -1
- package/dist/browser/src/Platform/sshHelper.js.map +1 -1
- package/dist/browser/src/Process/Options.d.ts +5 -13
- package/dist/browser/src/Process/Process.d.ts +3 -1
- package/dist/browser/src/Process/ProcessSdk.d.ts +16 -12
- package/dist/browser/src/Process/ProcessSdk.js +76 -37
- package/dist/browser/src/Process/ProcessSdk.js.map +1 -1
- package/dist/browser/src/Sdk.js +29 -20
- package/dist/browser/src/Sdk.js.map +1 -1
- package/dist/browser/src/Server/ServerSdk.d.ts +2 -2
- package/dist/browser/src/Server/ServerSdk.js +6 -4
- package/dist/browser/src/Server/ServerSdk.js.map +1 -1
- package/dist/browser/src/Session/FSSessionStorage.js +3 -2
- package/dist/browser/src/Session/FSSessionStorage.js.map +1 -1
- package/dist/browser/src/Session/RemoteSession.d.ts +2 -4
- package/dist/browser/src/Session/SessionSdk.d.ts +2 -2
- package/dist/browser/src/Session/SessionSdk.js +11 -5
- package/dist/browser/src/Session/SessionSdk.js.map +1 -1
- package/dist/browser/src/Session/sessionStorageFactory.js.map +1 -1
- package/dist/browser/src/polyfill.d.ts +0 -1
- package/dist/browser/src/polyfill.js.map +1 -1
- package/dist/node/src/Firebase/collections.d.ts +8 -7
- package/dist/node/src/Firebase/collections.js +25 -17
- package/dist/node/src/Firebase/collections.js.map +1 -1
- package/dist/node/src/Hash/generator.js +4 -5
- package/dist/node/src/Hash/generator.js.map +1 -1
- package/dist/node/src/Options.d.ts +55 -0
- package/dist/node/src/Options.js +2 -2
- package/dist/node/src/Options.js.map +1 -1
- package/dist/node/src/Platform/daemonHelper.d.ts +2 -5
- package/dist/node/src/Platform/daemonHelper.js +16 -16
- package/dist/node/src/Platform/daemonHelper.js.map +1 -1
- package/dist/node/src/Platform/pathHelper.d.ts +3 -3
- package/dist/node/src/Platform/pathHelper.js +15 -16
- package/dist/node/src/Platform/pathHelper.js.map +1 -1
- package/dist/node/src/Platform/sshHelper.js +4 -5
- package/dist/node/src/Platform/sshHelper.js.map +1 -1
- package/dist/node/src/Process/Options.d.ts +5 -13
- package/dist/node/src/Process/Process.d.ts +3 -1
- package/dist/node/src/Process/ProcessSdk.d.ts +16 -12
- package/dist/node/src/Process/ProcessSdk.js +82 -43
- package/dist/node/src/Process/ProcessSdk.js.map +1 -1
- package/dist/node/src/Sdk.js +36 -26
- package/dist/node/src/Sdk.js.map +1 -1
- package/dist/node/src/Server/Server.js +1 -1
- package/dist/node/src/Server/Server.js.map +1 -1
- package/dist/node/src/Server/ServerSdk.d.ts +2 -2
- package/dist/node/src/Server/ServerSdk.js +8 -6
- package/dist/node/src/Server/ServerSdk.js.map +1 -1
- package/dist/node/src/Session/FSSessionStorage.js +3 -2
- package/dist/node/src/Session/FSSessionStorage.js.map +1 -1
- package/dist/node/src/Session/RemoteSession.d.ts +2 -4
- package/dist/node/src/Session/SessionSdk.d.ts +2 -2
- package/dist/node/src/Session/SessionSdk.js +20 -14
- package/dist/node/src/Session/SessionSdk.js.map +1 -1
- package/dist/node/src/Session/sessionStorageFactory.js +1 -2
- package/dist/node/src/Session/sessionStorageFactory.js.map +1 -1
- package/dist/node/src/Timer/wait.js +1 -2
- package/dist/node/src/Timer/wait.js.map +1 -1
- package/dist/node/src/index.js +5 -1
- package/dist/node/src/index.js.map +1 -1
- package/dist/node/src/polyfill.d.ts +0 -1
- package/dist/node/src/polyfill.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MsgType = void 0;
|
|
4
|
+
exports.getServerInfo = getServerInfo;
|
|
5
|
+
exports.invoke = invoke;
|
|
4
6
|
const generator_1 = require("../Hash/generator");
|
|
5
7
|
const Options_1 = require("../Options");
|
|
6
8
|
var MsgType;
|
|
@@ -14,7 +16,7 @@ var MsgType;
|
|
|
14
16
|
MsgType[MsgType["ListProcesses"] = 42] = "ListProcesses";
|
|
15
17
|
MsgType[MsgType["GetProcessInfo"] = 43] = "GetProcessInfo";
|
|
16
18
|
MsgType[MsgType["ListAttachedProcesses"] = 45] = "ListAttachedProcesses";
|
|
17
|
-
})(MsgType
|
|
19
|
+
})(MsgType || (exports.MsgType = MsgType = {}));
|
|
18
20
|
const MSG_TYPE_SIZE = 2;
|
|
19
21
|
const INVOCATION_ID_SIZE = 50;
|
|
20
22
|
const FRAME_END = Buffer.from('\n', 'ascii');
|
|
@@ -22,22 +24,21 @@ const DEFAULT_METADATA_PORT = 6113;
|
|
|
22
24
|
const DEFAULT_METADATA_WS_PORT = 6116;
|
|
23
25
|
const DEFAULT_SCREEN_PORT = 6114;
|
|
24
26
|
const DEFAULT_SCREEN_WS_PORT = 6117;
|
|
25
|
-
function getServerInfo(
|
|
26
|
-
const metadataDriver = options?.
|
|
27
|
-
const screenDriver = options?.
|
|
28
|
-
const metadataPort = getMetadataPortForDriver(
|
|
29
|
-
const screenPort = getScreenPortForDriver(
|
|
27
|
+
function getServerInfo(serverOptions, clientOptions, options) {
|
|
28
|
+
const metadataDriver = options?.metadataDriver ?? Options_1.NetStreamDriver.DriverSimpleTCP;
|
|
29
|
+
const screenDriver = options?.screenDriver ?? Options_1.NetPacketDriver.DriverSimpleUDP;
|
|
30
|
+
const metadataPort = getMetadataPortForDriver(serverOptions, metadataDriver);
|
|
31
|
+
const screenPort = getScreenPortForDriver(serverOptions, screenDriver);
|
|
30
32
|
return {
|
|
31
|
-
ClientID:
|
|
32
|
-
ClientSecret:
|
|
33
|
+
ClientID: clientOptions.id,
|
|
34
|
+
ClientSecret: clientOptions.secret,
|
|
33
35
|
MetadataDriver: metadataDriver,
|
|
34
|
-
MetadataHost:
|
|
36
|
+
MetadataHost: serverOptions.hostname + ':' + metadataPort,
|
|
35
37
|
ScreenDriver: screenDriver,
|
|
36
|
-
ScreenHost:
|
|
37
|
-
Secure:
|
|
38
|
+
ScreenHost: serverOptions.hostname + ':' + screenPort,
|
|
39
|
+
Secure: serverOptions.secure ?? false,
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
|
-
exports.getServerInfo = getServerInfo;
|
|
41
42
|
function getMetadataPortForDriver(server, driver) {
|
|
42
43
|
if (driver === Options_1.NetStreamDriver.DriverJSWebsocket) {
|
|
43
44
|
return server.metadataWSPort ?? DEFAULT_METADATA_WS_PORT;
|
|
@@ -83,7 +84,7 @@ const BROWSER_TYPE_DATA = 'supra.data';
|
|
|
83
84
|
const BROWSER_TYPE_RESPONSE = 'supra.response';
|
|
84
85
|
function createBrowserSocket(sockPath, connectionListener) {
|
|
85
86
|
const closeListeners = [];
|
|
86
|
-
const connId = generator_1.generateUniqueHash(10) + '_' + sockPath;
|
|
87
|
+
const connId = (0, generator_1.generateUniqueHash)(10) + '_' + sockPath;
|
|
87
88
|
const connectMessage = {
|
|
88
89
|
type: BROWSER_TYPE_CONNECT,
|
|
89
90
|
id: connId,
|
|
@@ -129,7 +130,7 @@ function createBrowserSocket(sockPath, connectionListener) {
|
|
|
129
130
|
function invoke(sockPath, msgType, msgData) {
|
|
130
131
|
return new Promise((resolve, reject) => {
|
|
131
132
|
const socket = createSocket(sockPath, () => {
|
|
132
|
-
const requestId = generator_1.generateUniqueHash(INVOCATION_ID_SIZE);
|
|
133
|
+
const requestId = (0, generator_1.generateUniqueHash)(INVOCATION_ID_SIZE);
|
|
133
134
|
const msgTypeData = Buffer.alloc(MSG_TYPE_SIZE);
|
|
134
135
|
msgTypeData.writeUInt16BE(msgType);
|
|
135
136
|
const data = Buffer.concat([
|
|
@@ -213,5 +214,4 @@ function invoke(sockPath, msgType, msgData) {
|
|
|
213
214
|
}, 5e3);
|
|
214
215
|
});
|
|
215
216
|
}
|
|
216
|
-
exports.invoke = invoke;
|
|
217
217
|
//# sourceMappingURL=daemonHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemonHelper.js","sourceRoot":"","sources":["../../../../src/Platform/daemonHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"daemonHelper.js","sourceRoot":"","sources":["../../../../src/Platform/daemonHelper.ts"],"names":[],"mappings":";;;AAoDA,sCAgBC;AA6FD,wBAgGC;AAjQD,iDAAuD;AAEvD,wCAA4G;AAE5G,IAAY,OAUX;AAVD,WAAY,OAAO;IAClB,wDAAkB,CAAA;IAClB,4DAAoB,CAAA;IACpB,wDAAkB,CAAA;IAClB,sDAAiB,CAAA;IACjB,oDAAgB,CAAA;IAChB,wDAAkB,CAAA;IAClB,wDAAkB,CAAA;IAClB,0DAAmB,CAAA;IACnB,wEAA0B,CAAA;AAC3B,CAAC,EAVW,OAAO,uBAAP,OAAO,QAUlB;AA6BD,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE7C,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAEpC,SAAgB,aAAa,CAAC,aAA4B,EAAE,aAA4B,EAAE,OAAmC;IAC5H,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,yBAAe,CAAC,eAAe,CAAC;IAClF,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,yBAAe,CAAC,eAAe,CAAC;IAE9E,MAAM,YAAY,GAAG,wBAAwB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,sBAAsB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAEvE,OAAO;QACN,QAAQ,EAAE,aAAa,CAAC,EAAE;QAC1B,YAAY,EAAE,aAAa,CAAC,MAAM;QAClC,cAAc,EAAE,cAAc;QAC9B,YAAY,EAAE,aAAa,CAAC,QAAQ,GAAG,GAAG,GAAG,YAAY;QACzD,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,aAAa,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU;QACrD,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,KAAK;KACrC,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAqB,EAAE,MAAuB;IAC/E,IAAI,MAAM,KAAK,yBAAe,CAAC,iBAAiB,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAC1D,CAAC;IACD,IAAI,MAAM,KAAK,yBAAe,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACrD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAqB,EAAE,MAAuB;IAC7E,IAAI,MAAM,KAAK,yBAAe,CAAC,iBAAiB,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,YAAY,IAAI,sBAAsB,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,KAAK,yBAAe,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAC;IACjD,CAAC;IACD,IAAI,MAAM,KAAK,yBAAe,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,kBAA8B;IACrE,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAmB,CAAC,CAAC,kCAAkC;QACxF,OAAO,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,oEAAoE;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,oEAAoE;QACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAmB,CAAC,CAAC,kCAAkC;QACxF,OAAO,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;AACF,CAAC;AAED,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAC7C,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AACnD,MAAM,iBAAiB,GAAG,YAAY,CAAC;AACvC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAE/C,SAAS,mBAAmB,CAAC,QAAgB,EAAE,kBAA8B;IAC5E,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC;IACvD,MAAM,cAAc,GAAG;QACtB,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EAAE,MAAM;KACV,CAAC;IACF,MAAM,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG;QACd,KAAK,CAAC,MAA2B,EAAE,QAAgC;YAClE,MAAM,OAAO,GAAG;gBACf,IAAI,EAAE,iBAAiB;gBACvB,EAAE,EAAE,MAAM;gBACV,OAAO,EAAE,MAAM;aACf,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,EAAE,CAAC,KAA+B,EAAE,QAAiC;YACpE,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBAC1C,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC7B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC5C,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;wBAC7G,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3C,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QACD,GAAG;YACF,MAAM,iBAAiB,GAAG;gBACzB,IAAI,EAAE,uBAAuB;gBAC7B,EAAE,EAAE,MAAM;aACV,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAC3C,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;gBACvC,QAAQ,EAAE,CAAC;YACZ,CAAC;QACF,CAAC;KACD,CAAC;IACF,UAAU,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,MAAM,CAAC,QAAgB,EAAE,OAAgB,EAAE,OAAe;IACzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC1C,MAAM,SAAS,GAAG,IAAA,8BAAkB,EAAC,kBAAkB,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1B,WAAW;gBACX,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;gBAC/B,OAAO;aACP,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACpC,SAAS;aACT,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,GAAG,CAAC,CAAA;gBACZ,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,SAAS,WAAW,CAAC,IAAY;gBAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,YAAY,EAAE,CAAC;gBAChE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;gBAC7E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC9B,6CAA6C;oBAC7C,wDAAwD;oBACxD,OAAO;gBACR,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,kBAAkB,CAAC,CAAC;gBACpE,IAAI,WAAW,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC7C,OAAO,CAAC,YAAY,CAAC,CAAC;gBACvB,CAAC;qBAAM,IAAI,WAAW,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;oBAClD,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,WAAW,kBAAkB,UAAU,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9H,CAAC;YACF,CAAC;YAED,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,SAAS,YAAY;gBACpB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACtC,OAAO;gBACR,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;gBACjF,CAAC;gBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;gBAC/E,CAAC;gBACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC5B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACF,CAAC;YAED,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACrB,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBAClC,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;gBAEvD,IAAI,aAAqB,CAAC;gBAC1B,GAAG,CAAC;oBACH,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC/C,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC1B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;wBACjD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnB,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;oBACtE,CAAC;gBACF,CAAC,QAAQ,aAAa,KAAK,CAAC,CAAC,EAAE;gBAE/B,aAAa,GAAG,WAAW,CAAC;gBAE5B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,YAAY,EAAE,CAAC;oBACf,MAAM,CAAC,GAAG,EAAE,CAAC;oBACb,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,UAAU,CAChC,GAAG,EAAE;YACJ,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,GAAG,EAAE,CAAC;QACd,CAAC,EACD,GAAG,CACH,CAAA;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Options } from "../Options";
|
|
2
|
-
export declare function getRunPath(options?:
|
|
1
|
+
import { Options, ServiceOptions } from "../Options";
|
|
2
|
+
export declare function getRunPath(options?: ServiceOptions): string;
|
|
3
3
|
export declare function getLogPath(options?: Options): string;
|
|
4
4
|
export declare function getClientDaemonBinPath(options?: Options): string;
|
|
5
|
-
export declare function getSockPath(options?:
|
|
5
|
+
export declare function getSockPath(options?: ServiceOptions): string;
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getRunPath = getRunPath;
|
|
4
|
+
exports.getLogPath = getLogPath;
|
|
5
|
+
exports.getClientDaemonBinPath = getClientDaemonBinPath;
|
|
6
|
+
exports.getSockPath = getSockPath;
|
|
4
7
|
const os_1 = require("os");
|
|
5
8
|
const path_1 = require("path");
|
|
6
|
-
const RUN_RELATIVE_DIR = path_1.join('.supra', 'client', 'run');
|
|
7
|
-
const LOG_RELATIVE_DIR = path_1.join('.supra', 'client', 'log');
|
|
9
|
+
const RUN_RELATIVE_DIR = (0, path_1.join)('.supra', 'client', 'run');
|
|
10
|
+
const LOG_RELATIVE_DIR = (0, path_1.join)('.supra', 'client', 'log');
|
|
8
11
|
const SOCK_FILENAME = 'daemon.sock';
|
|
9
12
|
const SOCK_HOST = 'localhost:6115';
|
|
10
13
|
const CLIENT_DAEMON_BIN = 'supra-client-daemon';
|
|
11
|
-
const IS_WINDOWS = ['win32', 'cygwin'].includes(os_1.platform());
|
|
14
|
+
const IS_WINDOWS = ['win32', 'cygwin'].includes((0, os_1.platform)());
|
|
12
15
|
const PATH_ENV_DELIMITER = IS_WINDOWS ? ';' : ':';
|
|
13
16
|
function getRunPath(options) {
|
|
14
|
-
const runPath = options?.
|
|
17
|
+
const runPath = options?.runPath ?? (0, path_1.join)((0, os_1.homedir)(), RUN_RELATIVE_DIR);
|
|
15
18
|
return runPath;
|
|
16
19
|
}
|
|
17
|
-
exports.getRunPath = getRunPath;
|
|
18
20
|
function getLogPath(options) {
|
|
19
|
-
const runPath = options?.service?.logPath ?? path_1.join(os_1.homedir(), LOG_RELATIVE_DIR);
|
|
21
|
+
const runPath = options?.service?.logPath ?? (0, path_1.join)((0, os_1.homedir)(), LOG_RELATIVE_DIR);
|
|
20
22
|
return runPath;
|
|
21
23
|
}
|
|
22
|
-
exports.getLogPath = getLogPath;
|
|
23
24
|
function getClientDaemonBinPath(options) {
|
|
24
25
|
const which = eval('require')('which'); // TODO make it better than eval()
|
|
25
26
|
if (options?.service?.clientDaemonBinPath) {
|
|
@@ -31,28 +32,26 @@ function getClientDaemonBinPath(options) {
|
|
|
31
32
|
catch (error) {
|
|
32
33
|
// continue detecting
|
|
33
34
|
}
|
|
34
|
-
const globalPaths = [path_1.join(os_1.homedir(), '.local', 'bin')];
|
|
35
|
+
const globalPaths = [(0, path_1.join)((0, os_1.homedir)(), '.local', 'bin')];
|
|
35
36
|
if (IS_WINDOWS) {
|
|
36
|
-
const root = path_1.parse(process.cwd()).root;
|
|
37
|
-
globalPaths.push(path_1.join(root, `Program Files (x86)`, 'supra', 'client-daemon'));
|
|
38
|
-
globalPaths.push(path_1.join(root, `Program Files`, 'supra', 'client-daemon'));
|
|
37
|
+
const root = (0, path_1.parse)(process.cwd()).root;
|
|
38
|
+
globalPaths.push((0, path_1.join)(root, `Program Files (x86)`, 'supra', 'client-daemon'));
|
|
39
|
+
globalPaths.push((0, path_1.join)(root, `Program Files`, 'supra', 'client-daemon'));
|
|
39
40
|
}
|
|
40
41
|
return which.sync(CLIENT_DAEMON_BIN, {
|
|
41
42
|
path: globalPaths.join(PATH_ENV_DELIMITER),
|
|
42
43
|
});
|
|
43
44
|
}
|
|
44
|
-
exports.getClientDaemonBinPath = getClientDaemonBinPath;
|
|
45
45
|
function getSockPath(options) {
|
|
46
46
|
if (IS_WINDOWS) {
|
|
47
47
|
// Windows doesn' support UNIX socket
|
|
48
|
-
const runPath = options?.
|
|
48
|
+
const runPath = options?.sockPath ?? SOCK_HOST;
|
|
49
49
|
return runPath;
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
52
|
const runPath = getRunPath(options);
|
|
53
|
-
const sockPath = options?.
|
|
53
|
+
const sockPath = options?.sockPath ?? (0, path_1.join)(runPath, SOCK_FILENAME);
|
|
54
54
|
return sockPath;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
exports.getSockPath = getSockPath;
|
|
58
57
|
//# sourceMappingURL=pathHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathHelper.js","sourceRoot":"","sources":["../../../../src/Platform/pathHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pathHelper.js","sourceRoot":"","sources":["../../../../src/Platform/pathHelper.ts"],"names":[],"mappings":";;AAaA,gCAGC;AAED,gCAGC;AAED,wDAqBC;AAED,kCAUC;AAxDD,2BAAuC;AACvC,+BAAmC;AAInC,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzD,MAAM,aAAa,GAAG,aAAa,CAAC;AACpC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AACnC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAChD,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAA,aAAQ,GAAE,CAAC,CAAC;AAC5D,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAElD,SAAgB,UAAU,CAAC,OAAwB;IAClD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,gBAAgB,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAgB,UAAU,CAAC,OAAiB;IAC3C,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,gBAAgB,CAAC,CAAC;IAC/E,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAiB;IACvD,MAAM,KAAK,GAAqB,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;IAC5F,IAAI,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAC3C,OAAO,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,qBAAqB;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACvD,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,IAAA,YAAK,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC;QACvC,WAAW,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QAC9E,WAAW,CAAC,IAAI,CAAC,IAAA,WAAI,EAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE;QACpC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC;KAC1C,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAC,OAAwB;IACnD,IAAI,UAAU,EAAE,CAAC;QAChB,qCAAqC;QACrC,MAAM,OAAO,GAAG,OAAO,EAAE,QAAQ,IAAI,SAAS,CAAC;QAC/C,OAAO,OAAO,CAAC;IAChB,CAAC;SAAM,CAAC;QACP,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAA,WAAI,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC;IACjB,CAAC;AACF,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getLocalSshPublicKey =
|
|
3
|
+
exports.getLocalSshPublicKey = getLocalSshPublicKey;
|
|
4
4
|
const os_1 = require("os");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
require("js-keygen/bundle");
|
|
7
7
|
const SSH_DIRNAME = '.ssh';
|
|
8
8
|
const DEFAULT_PUBLIC_KEY_FILENAME = 'id_rsa.pub'; // TODO only RSA supported now
|
|
9
9
|
const DEFAULT_PRIVATE_KEY_FILENAME = 'id_rsa'; // TODO only RSA supported now
|
|
10
|
-
const DEFAULT_PUBLIC_KEY_PATH = path_1.join(os_1.homedir(), SSH_DIRNAME, DEFAULT_PUBLIC_KEY_FILENAME);
|
|
11
|
-
const DEFAULT_PRIVATE_KEY_PATH = path_1.join(os_1.homedir(), SSH_DIRNAME, DEFAULT_PRIVATE_KEY_FILENAME);
|
|
10
|
+
const DEFAULT_PUBLIC_KEY_PATH = (0, path_1.join)((0, os_1.homedir)(), SSH_DIRNAME, DEFAULT_PUBLIC_KEY_FILENAME);
|
|
11
|
+
const DEFAULT_PRIVATE_KEY_PATH = (0, path_1.join)((0, os_1.homedir)(), SSH_DIRNAME, DEFAULT_PRIVATE_KEY_FILENAME);
|
|
12
12
|
const PUBLIC_KEY_KEY = 'supra.publicKey';
|
|
13
13
|
const PRIVATE_KEY_KEY = 'supra.privateKey';
|
|
14
14
|
function generateKeyPair(sshKeyName) {
|
|
@@ -57,7 +57,7 @@ async function getLocalSshPublicKey(options) {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
if (publicKey === null) {
|
|
60
|
-
const sshKeyName = options?.ssh?.keyName ?? os_1.userInfo().username;
|
|
60
|
+
const sshKeyName = options?.ssh?.keyName ?? (0, os_1.userInfo)().username;
|
|
61
61
|
const [privateKey, generatedPublicKey] = await generateKeyPair(sshKeyName);
|
|
62
62
|
publicKey = generatedPublicKey;
|
|
63
63
|
if (process.env.TARGET === 'browser') {
|
|
@@ -74,5 +74,4 @@ async function getLocalSshPublicKey(options) {
|
|
|
74
74
|
}
|
|
75
75
|
return publicKey;
|
|
76
76
|
}
|
|
77
|
-
exports.getLocalSshPublicKey = getLocalSshPublicKey;
|
|
78
77
|
//# sourceMappingURL=sshHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sshHelper.js","sourceRoot":"","sources":["../../../../src/Platform/sshHelper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sshHelper.js","sourceRoot":"","sources":["../../../../src/Platform/sshHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,18 @@
|
|
|
1
|
-
export interface OpenOptions {
|
|
2
|
-
/** Identify server where the process will be running */
|
|
3
|
-
serverUid: string;
|
|
4
|
-
/** Name of application which creating the process */
|
|
5
|
-
appName: string;
|
|
6
|
-
/** array of args passed to program process when is started */
|
|
7
|
-
appArgs: string[];
|
|
8
|
-
/** Whether to create new process even if another already running */
|
|
9
|
-
createNew?: boolean;
|
|
10
|
-
/** If this option is specified, it will fail when process of application not running */
|
|
11
|
-
runningOnly?: boolean;
|
|
1
|
+
export interface OpenOptions extends StartOptions {
|
|
12
2
|
}
|
|
13
3
|
export interface StartOptions {
|
|
14
4
|
/** Identify server where the process will be running */
|
|
15
|
-
serverUid
|
|
5
|
+
serverUid?: string;
|
|
16
6
|
/** Name of application which creating the process */
|
|
17
7
|
appName: string;
|
|
18
8
|
/** array of args passed to program process when is started */
|
|
19
9
|
appArgs: string[];
|
|
10
|
+
/** Whether to create new process even if another already running */
|
|
11
|
+
createNew?: boolean;
|
|
20
12
|
}
|
|
21
13
|
export interface CloseOptions {
|
|
22
14
|
/** Identify server where the process will be stopped */
|
|
23
|
-
serverUid
|
|
15
|
+
serverUid?: string;
|
|
24
16
|
/** Name of application which closing the process */
|
|
25
17
|
appName: string;
|
|
26
18
|
}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { OpenOptions, CloseOptions, StartOptions, GetProcessesOptions } from "./Options";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ProcessWithServerUid } from './Process';
|
|
3
|
+
import { ServiceOptions } from '../Options';
|
|
4
4
|
import { SessionSdk } from '../Session/SessionSdk';
|
|
5
5
|
import { ServerSdk } from '../Server/ServerSdk';
|
|
6
6
|
export declare class ProcessSdk {
|
|
7
|
-
private
|
|
8
|
-
private sessionSdk
|
|
9
|
-
private serverSdk
|
|
7
|
+
private serviceOptions;
|
|
8
|
+
private sessionSdk?;
|
|
9
|
+
private serverSdk?;
|
|
10
10
|
private sockPath;
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(serviceOptions: ServiceOptions | undefined, sessionSdk?: SessionSdk | undefined, serverSdk?: ServerSdk | undefined);
|
|
12
12
|
/**
|
|
13
|
-
* Open process with given options.
|
|
13
|
+
* Open process with given options. It will start process if it's not running and open it in foreground.
|
|
14
14
|
* It can open existing process or create new process based on options.
|
|
15
|
-
*
|
|
15
|
+
* It does the same as `start` but also opens the process in foreground.
|
|
16
16
|
*/
|
|
17
17
|
open(openOptions: OpenOptions): Promise<void>;
|
|
18
18
|
/**
|
|
19
|
-
* Start process with given options.
|
|
20
|
-
* It
|
|
19
|
+
* Start process if it's not running with given options.
|
|
20
|
+
* It can start existing process or create new process based on options.
|
|
21
|
+
* Unlike `open`, it only starts the process and doesn't open it in foreground.
|
|
21
22
|
*/
|
|
22
23
|
start(startOptions: StartOptions): Promise<{
|
|
23
24
|
screenDriver: import("../Options").NetPacketDriver;
|
|
@@ -37,10 +38,13 @@ export declare class ProcessSdk {
|
|
|
37
38
|
/**
|
|
38
39
|
* Returns all currently running processes remotely
|
|
39
40
|
*/
|
|
40
|
-
getProcesses(getProcessesOptions?: GetProcessesOptions): Promise<
|
|
41
|
+
getProcesses(getProcessesOptions?: GetProcessesOptions): Promise<ProcessWithServerUid[]>;
|
|
42
|
+
private getServers;
|
|
41
43
|
/**
|
|
42
44
|
* Returns all currently running processes locally attached to this computer
|
|
43
45
|
*/
|
|
44
|
-
getAttachedProcesses(getProcessesOptions?: GetProcessesOptions): Promise<
|
|
46
|
+
getAttachedProcesses(getProcessesOptions?: GetProcessesOptions): Promise<ProcessWithServerUid[]>;
|
|
47
|
+
private getServerOptions;
|
|
48
|
+
private getClientOptions;
|
|
45
49
|
private getServerProcesses;
|
|
46
50
|
}
|
|
@@ -5,53 +5,54 @@ const daemonHelper_1 = require("../Platform/daemonHelper");
|
|
|
5
5
|
const pathHelper_1 = require("../Platform/pathHelper");
|
|
6
6
|
const SCREEN_ID_SIZE = 40;
|
|
7
7
|
class ProcessSdk {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
serviceOptions;
|
|
9
|
+
sessionSdk;
|
|
10
|
+
serverSdk;
|
|
11
|
+
sockPath;
|
|
12
|
+
constructor(serviceOptions, sessionSdk, serverSdk) {
|
|
13
|
+
this.serviceOptions = serviceOptions;
|
|
10
14
|
this.sessionSdk = sessionSdk;
|
|
11
15
|
this.serverSdk = serverSdk;
|
|
12
|
-
this.sockPath = pathHelper_1.getSockPath(
|
|
16
|
+
this.sockPath = (0, pathHelper_1.getSockPath)(serviceOptions);
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
|
-
* Open process with given options.
|
|
19
|
+
* Open process with given options. It will start process if it's not running and open it in foreground.
|
|
16
20
|
* It can open existing process or create new process based on options.
|
|
17
|
-
*
|
|
21
|
+
* It does the same as `start` but also opens the process in foreground.
|
|
18
22
|
*/
|
|
19
23
|
async open(openOptions) {
|
|
20
|
-
const
|
|
21
|
-
const serverInfo = daemonHelper_1.getServerInfo(server, await this.sessionSdk.getRemote(), this.options);
|
|
22
|
-
const processes = await this.getServerProcesses(server);
|
|
23
|
-
const runningProcess = processes.find((process) => process.appName === openOptions.appName);
|
|
24
|
-
if (!runningProcess) {
|
|
25
|
-
const startInfo = {
|
|
26
|
-
...serverInfo,
|
|
27
|
-
AppName: openOptions.appName,
|
|
28
|
-
AppArgs: openOptions.appArgs,
|
|
29
|
-
};
|
|
30
|
-
await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.StartProcess, Buffer.from(JSON.stringify(startInfo), 'utf8'));
|
|
31
|
-
}
|
|
24
|
+
const serverInfo = await this.start(openOptions);
|
|
32
25
|
const attachInfo = {
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
MetadataDriver: serverInfo.metadataDriver,
|
|
27
|
+
MetadataHost: serverInfo.metadataHost,
|
|
28
|
+
ScreenDriver: serverInfo.screenDriver,
|
|
29
|
+
ScreenHost: serverInfo.screenHost,
|
|
30
|
+
ClientID: serverInfo.clientID,
|
|
31
|
+
ClientSecret: serverInfo.clientSecret,
|
|
32
|
+
Secure: serverInfo.secure,
|
|
33
|
+
AppName: openOptions.appName, // TODO it should use rather processId instead of appName because of possible name conflicts
|
|
35
34
|
};
|
|
36
|
-
await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.AttachProcess, Buffer.from(JSON.stringify(attachInfo), 'ascii'));
|
|
35
|
+
await (0, daemonHelper_1.invoke)(this.sockPath, daemonHelper_1.MsgType.AttachProcess, Buffer.from(JSON.stringify(attachInfo), 'ascii'));
|
|
37
36
|
}
|
|
38
37
|
/**
|
|
39
|
-
* Start process with given options.
|
|
40
|
-
* It
|
|
38
|
+
* Start process if it's not running with given options.
|
|
39
|
+
* It can start existing process or create new process based on options.
|
|
40
|
+
* Unlike `open`, it only starts the process and doesn't open it in foreground.
|
|
41
41
|
*/
|
|
42
42
|
async start(startOptions) {
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
43
|
+
const serverOptions = await this.getServerOptions(startOptions);
|
|
44
|
+
const clientOptions = await this.getClientOptions();
|
|
45
|
+
const serverInfo = (0, daemonHelper_1.getServerInfo)(serverOptions, clientOptions, this.serviceOptions);
|
|
46
|
+
const processes = await this.getServerProcesses(serverOptions, clientOptions);
|
|
46
47
|
const runningProcess = processes.find((process) => process.appName === startOptions.appName);
|
|
47
48
|
let screenID;
|
|
48
|
-
if (!runningProcess) {
|
|
49
|
+
if (!runningProcess || startOptions.createNew) {
|
|
49
50
|
const startInfo = {
|
|
50
51
|
...serverInfo,
|
|
51
52
|
AppName: startOptions.appName,
|
|
52
53
|
AppArgs: startOptions.appArgs,
|
|
53
54
|
};
|
|
54
|
-
const screenIDBuffer = await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.StartProcess, Buffer.from(JSON.stringify(startInfo), 'utf8'));
|
|
55
|
+
const screenIDBuffer = await (0, daemonHelper_1.invoke)(this.sockPath, daemonHelper_1.MsgType.StartProcess, Buffer.from(JSON.stringify(startInfo), 'utf8'));
|
|
55
56
|
screenID = screenIDBuffer.toString('ascii');
|
|
56
57
|
}
|
|
57
58
|
else {
|
|
@@ -73,15 +74,16 @@ class ProcessSdk {
|
|
|
73
74
|
* It closes the given process remotely and locally as well.
|
|
74
75
|
*/
|
|
75
76
|
async close(closeOptions) {
|
|
76
|
-
const
|
|
77
|
-
const
|
|
77
|
+
const serverOptions = await this.getServerOptions(closeOptions);
|
|
78
|
+
const clientOptions = await this.getClientOptions();
|
|
79
|
+
const processes = await this.getServerProcesses(serverOptions, clientOptions);
|
|
78
80
|
const runningProcess = processes.find((process) => process.appName === closeOptions.appName);
|
|
79
81
|
if (runningProcess) {
|
|
80
82
|
const stopInfo = {
|
|
81
|
-
...daemonHelper_1.getServerInfo(
|
|
83
|
+
...(0, daemonHelper_1.getServerInfo)(serverOptions, clientOptions, this.serviceOptions),
|
|
82
84
|
AppName: runningProcess.appName,
|
|
83
85
|
};
|
|
84
|
-
await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.StopProcess, Buffer.from(JSON.stringify(stopInfo), 'ascii'));
|
|
86
|
+
await (0, daemonHelper_1.invoke)(this.sockPath, daemonHelper_1.MsgType.StopProcess, Buffer.from(JSON.stringify(stopInfo), 'ascii'));
|
|
85
87
|
}
|
|
86
88
|
else {
|
|
87
89
|
throw new Error(`Given process is currently not running. So, it cannot be closed: ${closeOptions.appName}`);
|
|
@@ -91,24 +93,42 @@ class ProcessSdk {
|
|
|
91
93
|
* Returns all currently running processes remotely
|
|
92
94
|
*/
|
|
93
95
|
async getProcesses(getProcessesOptions) {
|
|
94
|
-
const
|
|
96
|
+
const clientOptions = await this.getClientOptions();
|
|
97
|
+
const getServerOptions = {};
|
|
95
98
|
if (getProcessesOptions?.serverUid) {
|
|
96
|
-
|
|
99
|
+
getServerOptions.serverUids = [getProcessesOptions.serverUid];
|
|
97
100
|
}
|
|
98
|
-
const servers = await this.
|
|
101
|
+
const servers = await this.getServers(getServerOptions);
|
|
99
102
|
const processes = [];
|
|
100
103
|
for (const server of servers) {
|
|
101
|
-
const serverProcesses = await this.getServerProcesses(server);
|
|
102
|
-
|
|
104
|
+
const serverProcesses = await this.getServerProcesses(server, clientOptions);
|
|
105
|
+
for (const process of serverProcesses) {
|
|
106
|
+
processes.push({
|
|
107
|
+
...process,
|
|
108
|
+
serverUid: 'serverUid' in server ? server.serverUid : undefined,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
103
111
|
}
|
|
104
112
|
return processes;
|
|
105
113
|
}
|
|
114
|
+
async getServers(serverOptions) {
|
|
115
|
+
if (this.serviceOptions?.server) {
|
|
116
|
+
if (serverOptions.serverUids) {
|
|
117
|
+
throw new Error(`Cannot get servers by uids when serviceOptions.server is set. It's a single server API.`);
|
|
118
|
+
}
|
|
119
|
+
return [this.serviceOptions.server];
|
|
120
|
+
}
|
|
121
|
+
if (!this.serverSdk) {
|
|
122
|
+
throw new Error(`Server SDK is not set. It requires a service.server options to work with processes`);
|
|
123
|
+
}
|
|
124
|
+
return await this.serverSdk.getServers(serverOptions);
|
|
125
|
+
}
|
|
106
126
|
/**
|
|
107
127
|
* Returns all currently running processes locally attached to this computer
|
|
108
128
|
*/
|
|
109
129
|
async getAttachedProcesses(getProcessesOptions) {
|
|
110
130
|
const processes = await this.getProcesses(getProcessesOptions);
|
|
111
|
-
const attachedScreenIdsData = await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.ListAttachedProcesses, Buffer.from(JSON.stringify({})));
|
|
131
|
+
const attachedScreenIdsData = await (0, daemonHelper_1.invoke)(this.sockPath, daemonHelper_1.MsgType.ListAttachedProcesses, Buffer.from(JSON.stringify({})));
|
|
112
132
|
const attachedScreenIds = [];
|
|
113
133
|
for (let i = 0; i < attachedScreenIdsData.byteLength; i += SCREEN_ID_SIZE) {
|
|
114
134
|
const screenId = attachedScreenIdsData.slice(i, i + SCREEN_ID_SIZE).toString('ascii');
|
|
@@ -119,9 +139,29 @@ class ProcessSdk {
|
|
|
119
139
|
.filter((process) => !getProcessesOptions?.serverUid || getProcessesOptions.serverUid === process.serverUid);
|
|
120
140
|
return attachedProcesses;
|
|
121
141
|
}
|
|
122
|
-
async
|
|
123
|
-
|
|
124
|
-
|
|
142
|
+
async getServerOptions(findServerOptions) {
|
|
143
|
+
if (this.serviceOptions?.server) {
|
|
144
|
+
return this.serviceOptions?.server;
|
|
145
|
+
}
|
|
146
|
+
if (!this.serverSdk) {
|
|
147
|
+
throw new Error(`Server SDK is not set. It requires a service.server options to work with processes`);
|
|
148
|
+
}
|
|
149
|
+
const server = await this.serverSdk.findServer(findServerOptions);
|
|
150
|
+
return server;
|
|
151
|
+
}
|
|
152
|
+
async getClientOptions() {
|
|
153
|
+
if (this.serviceOptions?.client) {
|
|
154
|
+
return this.serviceOptions?.client;
|
|
155
|
+
}
|
|
156
|
+
if (!this.sessionSdk) {
|
|
157
|
+
throw new Error(`Session SDK is not set. It requires a service.client options to work with processes`);
|
|
158
|
+
}
|
|
159
|
+
const remoteSession = await this.sessionSdk.getRemote();
|
|
160
|
+
return remoteSession.client;
|
|
161
|
+
}
|
|
162
|
+
async getServerProcesses(serverOptions, clientOptions) {
|
|
163
|
+
const serverInfo = (0, daemonHelper_1.getServerInfo)(serverOptions, clientOptions, this.serviceOptions);
|
|
164
|
+
const screenIdsData = await (0, daemonHelper_1.invoke)(this.sockPath, daemonHelper_1.MsgType.ListProcesses, Buffer.from(JSON.stringify(serverInfo)));
|
|
125
165
|
const screenIds = [];
|
|
126
166
|
for (let i = 0; i < screenIdsData.byteLength; i += SCREEN_ID_SIZE) {
|
|
127
167
|
const screenId = screenIdsData.slice(i, i + SCREEN_ID_SIZE).toString('ascii');
|
|
@@ -131,14 +171,13 @@ class ProcessSdk {
|
|
|
131
171
|
for (const screenId of screenIds) {
|
|
132
172
|
try {
|
|
133
173
|
const getInfo = {
|
|
134
|
-
...daemonHelper_1.getServerInfo(
|
|
174
|
+
...(0, daemonHelper_1.getServerInfo)(serverOptions, clientOptions, this.serviceOptions),
|
|
135
175
|
ScreenID: screenId,
|
|
136
176
|
};
|
|
137
|
-
const processInfoData = await daemonHelper_1.invoke(this.sockPath, daemonHelper_1.MsgType.GetProcessInfo, Buffer.from(JSON.stringify(getInfo), 'ascii'));
|
|
177
|
+
const processInfoData = await (0, daemonHelper_1.invoke)(this.sockPath, daemonHelper_1.MsgType.GetProcessInfo, Buffer.from(JSON.stringify(getInfo), 'ascii'));
|
|
138
178
|
const process = {
|
|
139
179
|
appName: processInfoData.toString('ascii'),
|
|
140
180
|
screenId,
|
|
141
|
-
serverUid: server.serverUid,
|
|
142
181
|
};
|
|
143
182
|
processes.push(process);
|
|
144
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessSdk.js","sourceRoot":"","sources":["../../../../src/Process/ProcessSdk.ts"],"names":[],"mappings":";;;AACA,2DAQkC;
|
|
1
|
+
{"version":3,"file":"ProcessSdk.js","sourceRoot":"","sources":["../../../../src/Process/ProcessSdk.ts"],"names":[],"mappings":"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"}
|