@scrypted/server 0.0.181 → 0.1.1
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.
Potentially problematic release.
This version of @scrypted/server might be problematic. Click here for more details.
- package/dist/io.js +3 -0
- package/dist/io.js.map +1 -0
- package/dist/plugin/buffer-serializer.js +18 -1
- package/dist/plugin/buffer-serializer.js.map +1 -1
- package/dist/plugin/media.js +4 -3
- package/dist/plugin/media.js.map +1 -1
- package/dist/plugin/plugin-host-api.js +2 -0
- package/dist/plugin/plugin-host-api.js.map +1 -1
- package/dist/plugin/plugin-host.js +83 -14
- package/dist/plugin/plugin-host.js.map +1 -1
- package/dist/plugin/plugin-http.js +7 -5
- package/dist/plugin/plugin-http.js.map +1 -1
- package/dist/plugin/plugin-remote-websocket.js +0 -2
- package/dist/plugin/plugin-remote-websocket.js.map +1 -1
- package/dist/plugin/plugin-remote-worker.js +12 -10
- package/dist/plugin/plugin-remote-worker.js.map +1 -1
- package/dist/plugin/plugin-remote.js +4 -2
- package/dist/plugin/plugin-remote.js.map +1 -1
- package/dist/rpc.js +18 -27
- package/dist/rpc.js.map +1 -1
- package/dist/runtime.js +95 -2
- package/dist/runtime.js.map +1 -1
- package/dist/scrypted-server-main.js +20 -21
- package/dist/scrypted-server-main.js.map +1 -1
- package/dist/server-settings.js +67 -15
- package/dist/server-settings.js.map +1 -1
- package/dist/services/cors.js +17 -0
- package/dist/services/cors.js.map +1 -0
- package/package.json +6 -4
- package/python/plugin-remote.py +22 -17
- package/python/rpc.py +0 -6
- package/src/io.ts +25 -0
- package/src/plugin/buffer-serializer.ts +19 -0
- package/src/plugin/media.ts +5 -4
- package/src/plugin/plugin-host-api.ts +2 -0
- package/src/plugin/plugin-host.ts +70 -17
- package/src/plugin/plugin-http.ts +11 -8
- package/src/plugin/plugin-remote-websocket.ts +0 -2
- package/src/plugin/plugin-remote-worker.ts +12 -10
- package/src/plugin/plugin-remote.ts +4 -2
- package/src/rpc.ts +22 -36
- package/src/runtime.ts +86 -3
- package/src/scrypted-server-main.ts +24 -27
- package/src/server-settings.ts +54 -16
- package/src/services/cors.ts +19 -0
- package/dist/addresses.js +0 -12
- package/dist/addresses.js.map +0 -1
- package/src/addresses.ts +0 -5
@@ -25,7 +25,6 @@ const source_map_support_1 = require("source-map-support");
|
|
25
25
|
const http_auth_1 = __importDefault(require("http-auth"));
|
26
26
|
const semver_1 = __importDefault(require("semver"));
|
27
27
|
const info_1 = require("./services/info");
|
28
|
-
const addresses_1 = require("./addresses");
|
29
28
|
const sleep_1 = require("./sleep");
|
30
29
|
const cert_1 = require("./cert");
|
31
30
|
const plugin_error_1 = require("./plugin/plugin-error");
|
@@ -159,6 +158,7 @@ async function start() {
|
|
159
158
|
// return next();
|
160
159
|
// }
|
161
160
|
res.locals.username = username;
|
161
|
+
req.username = username;
|
162
162
|
}
|
163
163
|
next();
|
164
164
|
});
|
@@ -167,6 +167,7 @@ async function start() {
|
|
167
167
|
if (req.protocol === 'https' && req.headers.authorization && req.headers.authorization.toLowerCase()?.indexOf('basic') !== -1) {
|
168
168
|
const basicChecker = basicAuth.check((req) => {
|
169
169
|
res.locals.username = req.user;
|
170
|
+
req.username = req.user;
|
170
171
|
next();
|
171
172
|
});
|
172
173
|
// this automatically handles unauthorized.
|
@@ -195,7 +196,7 @@ async function start() {
|
|
195
196
|
});
|
196
197
|
console.log('#######################################################');
|
197
198
|
console.log(`Scrypted Server (Local) : https://localhost:${server_settings_1.SCRYPTED_SECURE_PORT}/`);
|
198
|
-
for (const address of (0,
|
199
|
+
for (const address of (0, server_settings_1.getHostAddresses)(true, true)) {
|
199
200
|
console.log(`Scrypted Server (Remote) : https://${address}:${server_settings_1.SCRYPTED_SECURE_PORT}/`);
|
200
201
|
}
|
201
202
|
console.log(`Version: : ${await new info_1.Info().getVersion()}`);
|
@@ -309,10 +310,18 @@ async function start() {
|
|
309
310
|
res.send({});
|
310
311
|
});
|
311
312
|
let hasLogin = await db.getCount(db_types_1.ScryptedUser) > 0;
|
313
|
+
app.options('/login', (req, res) => {
|
314
|
+
scrypted.addAccessControlHeaders(req, res);
|
315
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
316
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
|
317
|
+
res.send(200);
|
318
|
+
});
|
312
319
|
app.post('/login', async (req, res) => {
|
320
|
+
scrypted.addAccessControlHeaders(req, res);
|
313
321
|
const { username, password, change_password } = req.body;
|
314
322
|
const timestamp = Date.now();
|
315
323
|
const maxAge = 86400000;
|
324
|
+
const addresses = (0, server_settings_1.getHostAddresses)(true, true).map(address => `https://${address}:${server_settings_1.SCRYPTED_SECURE_PORT}`);
|
316
325
|
if (hasLogin) {
|
317
326
|
const user = await db.tryGet(db_types_1.ScryptedUser, username);
|
318
327
|
if (!user) {
|
@@ -339,6 +348,7 @@ async function start() {
|
|
339
348
|
secure: true,
|
340
349
|
signed: true,
|
341
350
|
httpOnly: true,
|
351
|
+
sameSite: 'none',
|
342
352
|
});
|
343
353
|
if (change_password) {
|
344
354
|
user.salt = crypto_1.default.randomBytes(64).toString('base64');
|
@@ -349,6 +359,7 @@ async function start() {
|
|
349
359
|
res.send({
|
350
360
|
username,
|
351
361
|
expiration: maxAge,
|
362
|
+
addresses,
|
352
363
|
});
|
353
364
|
return;
|
354
365
|
}
|
@@ -364,6 +375,7 @@ async function start() {
|
|
364
375
|
user.salt = crypto_1.default.randomBytes(64).toString('base64');
|
365
376
|
user.passwordHash = crypto_1.default.createHash('sha256').update(user.salt + password).digest().toString('hex');
|
366
377
|
user.passwordDate = timestamp;
|
378
|
+
user.token = crypto_1.default.randomBytes(16).toString('hex');
|
367
379
|
await db.upsert(user);
|
368
380
|
hasLogin = true;
|
369
381
|
const login_user_token = `${username}#${timestamp}`;
|
@@ -372,13 +384,18 @@ async function start() {
|
|
372
384
|
secure: true,
|
373
385
|
signed: true,
|
374
386
|
httpOnly: true,
|
387
|
+
sameSite: 'none',
|
375
388
|
});
|
376
389
|
res.send({
|
377
390
|
username,
|
391
|
+
token: user.token,
|
378
392
|
expiration: maxAge,
|
393
|
+
addresses,
|
379
394
|
});
|
380
395
|
});
|
381
396
|
app.get('/login', async (req, res) => {
|
397
|
+
scrypted.addAccessControlHeaders(req, res);
|
398
|
+
const addresses = (0, server_settings_1.getHostAddresses)(true, true).map(address => `https://${address}:${server_settings_1.SCRYPTED_SECURE_PORT}`);
|
382
399
|
if (req.protocol === 'https' && req.headers.authorization) {
|
383
400
|
const username = await new Promise(resolve => {
|
384
401
|
const basicChecker = basicAuth.check((req) => {
|
@@ -416,28 +433,10 @@ async function start() {
|
|
416
433
|
});
|
417
434
|
return;
|
418
435
|
}
|
419
|
-
// this database lookup on every web request is not necessary, the cookie
|
420
|
-
// itself is the auth, and is signed. furthermore, this is currently
|
421
|
-
// a single user setup anywyas. revisit this at some point when
|
422
|
-
// multiple users are implemented.
|
423
|
-
// const user = await db.tryGet(ScryptedUser, username);
|
424
|
-
// if (!user) {
|
425
|
-
// res.send({
|
426
|
-
// error: 'User not found.',
|
427
|
-
// hasLogin,
|
428
|
-
// })
|
429
|
-
// return;
|
430
|
-
// }
|
431
|
-
// if (timestamp < user.passwordDate) {
|
432
|
-
// res.send({
|
433
|
-
// error: 'Login invalid. Password has changed.',
|
434
|
-
// hasLogin,
|
435
|
-
// })
|
436
|
-
// return;
|
437
|
-
// }
|
438
436
|
res.send({
|
439
437
|
expiration: 86400000 - (Date.now() - timestamp),
|
440
438
|
username,
|
439
|
+
addresses,
|
441
440
|
});
|
442
441
|
});
|
443
442
|
app.get('/', (_req, res) => res.redirect('/endpoint/@scrypted/core/public/'));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scrypted-server-main.js","sourceRoot":"","sources":["../src/scrypted-server-main.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"scrypted-server-main.js","sourceRoot":"","sources":["../src/scrypted-server-main.ts"],"names":[],"mappings":"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"}
|
package/dist/server-settings.js
CHANGED
@@ -1,28 +1,80 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
5
|
+
}) : (function(o, m, k, k2) {
|
6
|
+
if (k2 === undefined) k2 = k;
|
7
|
+
o[k2] = m[k];
|
8
|
+
}));
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
11
|
+
}) : function(o, v) {
|
12
|
+
o["default"] = v;
|
13
|
+
});
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
15
|
+
if (mod && mod.__esModule) return mod;
|
16
|
+
var result = {};
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
18
|
+
__setModuleDefault(result, mod);
|
19
|
+
return result;
|
20
|
+
};
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
23
|
};
|
5
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.getIpAddress = exports.SCRYPTED_DEBUG_PORT = exports.SCRYPTED_SECURE_PORT = exports.SCRYPTED_INSECURE_PORT = void 0;
|
25
|
+
exports.getHostAddresses = exports.getIpAddress = exports.SCRYPTED_DEBUG_PORT = exports.SCRYPTED_SECURE_PORT = exports.SCRYPTED_INSECURE_PORT = void 0;
|
7
26
|
const os_1 = __importDefault(require("os"));
|
27
|
+
const nodeIp = __importStar(require("ip"));
|
8
28
|
exports.SCRYPTED_INSECURE_PORT = parseInt(process.env.SCRYPTED_INSECURE_PORT) || 11080;
|
9
29
|
exports.SCRYPTED_SECURE_PORT = parseInt(process.env.SCRYPTED_SECURE_PORT) || 10443;
|
10
30
|
exports.SCRYPTED_DEBUG_PORT = parseInt(process.env.SCRYPTED_DEBUG_PORT) || 10081;
|
11
31
|
function getIpAddress() {
|
12
|
-
|
13
|
-
for (const i of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) {
|
14
|
-
let ipv4;
|
15
|
-
let ipv6;
|
16
|
-
for (const en of (ni[`en${i}`] || [])) {
|
17
|
-
if (en.family === 'IPv4')
|
18
|
-
ipv4 = en;
|
19
|
-
else if (en.family === 'IPv6')
|
20
|
-
ipv6 = en;
|
21
|
-
}
|
22
|
-
if (ipv4 || ipv6)
|
23
|
-
return (ipv4 || ipv6).address;
|
24
|
-
}
|
25
|
-
return '127.0.0.1';
|
32
|
+
return nodeIp.address();
|
26
33
|
}
|
27
34
|
exports.getIpAddress = getIpAddress;
|
35
|
+
function nodeIpAddress(family) {
|
36
|
+
// https://chromium.googlesource.com/external/webrtc/+/master/rtc_base/network.cc#236
|
37
|
+
const costlyNetworks = ["ipsec", "tun", "utun", "tap"];
|
38
|
+
const ignoreNetworks = [
|
39
|
+
// seen these on macos
|
40
|
+
'llw',
|
41
|
+
'awdl',
|
42
|
+
...costlyNetworks,
|
43
|
+
];
|
44
|
+
const interfaces = os_1.default.networkInterfaces();
|
45
|
+
const all = Object.keys(interfaces)
|
46
|
+
.map((nic) => {
|
47
|
+
for (const costly of ignoreNetworks) {
|
48
|
+
if (nic.startsWith(costly)) {
|
49
|
+
return {
|
50
|
+
nic,
|
51
|
+
addresses: [],
|
52
|
+
};
|
53
|
+
}
|
54
|
+
}
|
55
|
+
const addresses = interfaces[nic].filter((details) => details.family.toLowerCase() === family
|
56
|
+
&& !nodeIp.isLoopback(details.address));
|
57
|
+
return {
|
58
|
+
nic,
|
59
|
+
addresses: addresses.map((address) => address.address),
|
60
|
+
};
|
61
|
+
})
|
62
|
+
.filter((address) => !!address);
|
63
|
+
// os.networkInterfaces doesn't actually return addresses in a good order.
|
64
|
+
// have seen instances where en0 (ethernet) is after en1 (wlan), etc.
|
65
|
+
// eth0 > eth1
|
66
|
+
all.sort((a, b) => a.nic.localeCompare(b.nic));
|
67
|
+
return Object.values(all)
|
68
|
+
.map((entry) => entry.addresses)
|
69
|
+
.flat();
|
70
|
+
}
|
71
|
+
function getHostAddresses(useIpv4, useIpv6) {
|
72
|
+
const address = [];
|
73
|
+
if (useIpv4)
|
74
|
+
address.push(...nodeIpAddress("ipv4"));
|
75
|
+
if (useIpv6)
|
76
|
+
address.push(...nodeIpAddress("ipv6"));
|
77
|
+
return address;
|
78
|
+
}
|
79
|
+
exports.getHostAddresses = getHostAddresses;
|
28
80
|
//# sourceMappingURL=server-settings.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"server-settings.js","sourceRoot":"","sources":["../src/server-settings.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"server-settings.js","sourceRoot":"","sources":["../src/server-settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,2CAA6B;AAEhB,QAAA,sBAAsB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC;AAC/E,QAAA,oBAAoB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC;AAC3E,QAAA,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC;AAEtF,SAAgB,YAAY;IACxB,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC;AAFD,oCAEC;AAED,SAAS,aAAa,CAAC,MAAc;IACjC,qFAAqF;IACrF,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG;QACnB,sBAAsB;QACtB,KAAK;QACL,MAAM;QAEN,GAAG,cAAc;KACpB,CAAC;IAEF,MAAM,UAAU,GAAG,YAAE,CAAC,iBAAiB,EAAE,CAAC;IAE1C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACT,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE;YACjC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACxB,OAAO;oBACH,GAAG;oBACH,SAAS,EAAE,EAAE;iBAChB,CAAC;aACL;SACJ;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC,MAAM,CACrC,CAAC,OAAO,EAAE,EAAE,CACR,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM;eACpC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAC7C,CAAC;QACF,OAAO;YACH,GAAG;YACH,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SACzD,CAAC;IACN,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEpC,0EAA0E;IAC1E,qEAAqE;IACrE,cAAc;IACd,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;SAC/B,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAgB,EAAE,OAAgB;IAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,OAAO,CAAC;AACnB,CAAC;AALD,4CAKC"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CORSControl = void 0;
|
4
|
+
class CORSControl {
|
5
|
+
runtime;
|
6
|
+
constructor(runtime) {
|
7
|
+
this.runtime = runtime;
|
8
|
+
}
|
9
|
+
async getCORS() {
|
10
|
+
return this.runtime.cors;
|
11
|
+
}
|
12
|
+
async setCORS(servers) {
|
13
|
+
this.runtime.cors = servers;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
exports.CORSControl = CORSControl;
|
17
|
+
//# sourceMappingURL=cors.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/services/cors.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IACD;IAAnB,YAAmB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAqB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;IAChC,CAAC;CACJ;AAXD,kCAWC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@scrypted/server",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.1.1",
|
4
4
|
"description": "",
|
5
5
|
"dependencies": {
|
6
6
|
"@mapbox/node-pre-gyp": "^1.0.8",
|
@@ -11,9 +11,10 @@
|
|
11
11
|
"body-parser": "^1.19.0",
|
12
12
|
"cookie-parser": "^1.4.5",
|
13
13
|
"debug": "^4.3.1",
|
14
|
-
"engine.io": "^
|
14
|
+
"engine.io": "^6.2.0",
|
15
15
|
"express": "^4.17.2",
|
16
16
|
"http-auth": "^4.1.9",
|
17
|
+
"ip": "^1.1.8",
|
17
18
|
"level": "^6.0.1",
|
18
19
|
"linkfs": "^2.1.0",
|
19
20
|
"lodash": "^4.17.21",
|
@@ -44,9 +45,9 @@
|
|
44
45
|
"@types/adm-zip": "^0.4.33",
|
45
46
|
"@types/cookie-parser": "^1.4.2",
|
46
47
|
"@types/debug": "^4.1.5",
|
47
|
-
"@types/engine.io": "^3.1.5",
|
48
48
|
"@types/express": "^4.17.11",
|
49
49
|
"@types/http-auth": "^4.1.1",
|
50
|
+
"@types/ip": "^1.1.0",
|
50
51
|
"@types/lodash": "^4.14.168",
|
51
52
|
"@types/mkdirp": "^1.0.2",
|
52
53
|
"@types/node-dijkstra": "^2.5.1",
|
@@ -58,7 +59,8 @@
|
|
58
59
|
"@types/tar": "^4.0.5",
|
59
60
|
"@types/tmp": "^0.2.0",
|
60
61
|
"@types/whatwg-mimetype": "^2.1.0",
|
61
|
-
"@types/ws": "^7.4.7"
|
62
|
+
"@types/ws": "^7.4.7",
|
63
|
+
"engine.io-client": "^6.2.2"
|
62
64
|
},
|
63
65
|
"bin": {
|
64
66
|
"scrypted-serve": "bin/scrypted-serve"
|
package/python/plugin-remote.py
CHANGED
@@ -361,26 +361,31 @@ async def async_main(loop: AbstractEventLoop):
|
|
361
361
|
peer.params['getRemote'] = lambda api, pluginId: PluginRemote(
|
362
362
|
api, pluginId, loop)
|
363
363
|
|
364
|
-
def
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
'
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
364
|
+
async def get_update_stats():
|
365
|
+
update_stats = await peer.getParam('updateStats')
|
366
|
+
|
367
|
+
def stats_runner():
|
368
|
+
ptime = round(time.process_time() * 1000000)
|
369
|
+
heapTotal = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
|
370
|
+
stats = {
|
371
|
+
'type': 'stats',
|
372
|
+
'cpuUsage': {
|
373
|
+
'user': ptime,
|
374
|
+
'system': 0,
|
375
|
+
},
|
376
|
+
'memoryUsage': {
|
377
|
+
'heapTotal': heapTotal,
|
378
|
+
},
|
379
|
+
}
|
380
|
+
asyncio.run_coroutine_threadsafe(update_stats(stats), loop)
|
381
|
+
loop.call_later(10, stats_runner)
|
382
|
+
|
383
|
+
stats_runner()
|
384
|
+
|
385
|
+
asyncio.run_coroutine_threadsafe(get_update_stats(), loop)
|
380
386
|
|
381
387
|
await readLoop(loop, peer, reader)
|
382
388
|
|
383
|
-
|
384
389
|
def main():
|
385
390
|
loop = asyncio.new_event_loop()
|
386
391
|
|
package/python/rpc.py
CHANGED
package/src/io.ts
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
import type { Server, Socket as ServerSocket } from "engine.io";
|
2
|
+
|
3
|
+
export type IOServer = {
|
4
|
+
on(ev: 'connection' | 'drain', fn: (socket: IOServerSocket & IOServerSocket) => void): IOServer;
|
5
|
+
} & Server;
|
6
|
+
|
7
|
+
export type IOServerSocket = ServerSocket & IOSocket;
|
8
|
+
|
9
|
+
export interface IOSocket {
|
10
|
+
send(data: any, options?: any, callback?: any): this;
|
11
|
+
|
12
|
+
on(ev: "close", fn: (reason: string, description?: Error) => void): this;
|
13
|
+
/**
|
14
|
+
* Fired when the client sends a message.
|
15
|
+
*/
|
16
|
+
on(ev: "message", fn: (data: string | Buffer) => void): this;
|
17
|
+
/**
|
18
|
+
* Fired when an error occurs.
|
19
|
+
*/
|
20
|
+
on(ev: "error", fn: (err: Error) => void): this;
|
21
|
+
/**
|
22
|
+
* Called when the write buffer is drained
|
23
|
+
*/
|
24
|
+
on(ev: "drain", fn: () => void): this;
|
25
|
+
}
|
@@ -8,3 +8,22 @@ export class BufferSerializer implements RpcSerializer {
|
|
8
8
|
return Buffer.from(serialized, 'base64');
|
9
9
|
}
|
10
10
|
}
|
11
|
+
|
12
|
+
export class SidebandBufferSerializer implements RpcSerializer {
|
13
|
+
bufferSerializer = new BufferSerializer();
|
14
|
+
|
15
|
+
serialize(value: any, serializationContext?: any) {
|
16
|
+
if (!serializationContext)
|
17
|
+
return this.bufferSerializer.serialize(value);
|
18
|
+
const buffers: Buffer[] = serializationContext.buffers = serializationContext.buffers || [];
|
19
|
+
buffers.push(value);
|
20
|
+
return buffers.length - 1;
|
21
|
+
}
|
22
|
+
|
23
|
+
deserialize(serialized: any, serializationContext?: any) {
|
24
|
+
if (!serializationContext?.buffers)
|
25
|
+
return this.bufferSerializer.deserialize(serialized);
|
26
|
+
const buffers: Buffer[] = serializationContext.buffers;
|
27
|
+
return buffers[serialized];
|
28
|
+
}
|
29
|
+
}
|
package/src/plugin/media.ts
CHANGED
@@ -96,16 +96,17 @@ export abstract class MediaManagerBase implements MediaManager {
|
|
96
96
|
'-i', mediaUrl.url,
|
97
97
|
];
|
98
98
|
|
99
|
+
const ret: FFmpegInput = Object.assign({
|
100
|
+
inputArguments,
|
101
|
+
}, mediaUrl);
|
102
|
+
|
99
103
|
if (mediaUrl.url.startsWith('rtsp')) {
|
104
|
+
ret.container = 'rtsp';
|
100
105
|
inputArguments.unshift(
|
101
106
|
"-rtsp_transport", "tcp",
|
102
107
|
);
|
103
108
|
}
|
104
109
|
|
105
|
-
const ret: FFmpegInput = Object.assign({
|
106
|
-
inputArguments,
|
107
|
-
}, mediaUrl);
|
108
|
-
|
109
110
|
return Buffer.from(JSON.stringify(ret));
|
110
111
|
}
|
111
112
|
});
|
@@ -103,11 +103,13 @@ export class PluginHostAPI extends PluginAPIManagedListeners implements PluginAP
|
|
103
103
|
}
|
104
104
|
|
105
105
|
async ioClose(id: string) {
|
106
|
+
// @ts-expect-error
|
106
107
|
this.pluginHost.io.clients[id]?.close();
|
107
108
|
this.pluginHost.ws[id]?.close();
|
108
109
|
}
|
109
110
|
|
110
111
|
async ioSend(id: string, message: string) {
|
112
|
+
// @ts-expect-error
|
111
113
|
this.pluginHost.io.clients[id]?.send(message);
|
112
114
|
this.pluginHost.ws[id]?.send(message);
|
113
115
|
}
|