@scrypted/server 0.1.13 → 0.1.14

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.

@@ -12,6 +12,7 @@ const events_1 = require("events");
12
12
  const process_1 = __importDefault(require("process"));
13
13
  const mkdirp_1 = __importDefault(require("mkdirp"));
14
14
  const semver_1 = __importDefault(require("semver"));
15
+ const os_1 = __importDefault(require("os"));
15
16
  function getPluginNodePath(name) {
16
17
  const pluginVolume = (0, plugin_volume_1.ensurePluginVolume)(name);
17
18
  const nodeMajorVersion = semver_1.default.parse(process_1.default.version).major;
@@ -46,7 +47,10 @@ async function installOptionalDependencies(console, packageJson) {
46
47
  delete reduced.devDependencies;
47
48
  mkdirp_1.default.sync(nodePrefix);
48
49
  fs_1.default.writeFileSync(packageJsonPath, JSON.stringify(reduced));
49
- const cp = child_process_1.default.spawn('npm', ['--prefix', nodePrefix, 'install'], {
50
+ let npm = 'npm';
51
+ if (os_1.default.platform() === 'win32')
52
+ npm += '.cmd';
53
+ const cp = child_process_1.default.spawn(npm, ['--prefix', nodePrefix, 'install'], {
50
54
  cwd: nodePrefix,
51
55
  stdio: 'inherit',
52
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-npm-dependencies.js","sourceRoot":"","sources":["../../src/plugin/plugin-npm-dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-npm-dependencies.js","sourceRoot":"","sources":["../../src/plugin/plugin-npm-dependencies.ts"],"names":[],"mappings":";;;;;;AAAA,mDAAqD;AACrD,4CAAoB;AACpB,kEAA0C;AAC1C,gDAAwB;AACxB,mCAA8B;AAC9B,sDAA8B;AAC9B,oDAA4B;AAC5B,oDAA4B;AAC5B,4CAAoB;AAEpB,SAAgB,iBAAiB,CAAC,IAAY;IAC1C,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,gBAAM,CAAC,KAAK,CAAC,iBAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;IAC7D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAO,CAAC,QAAQ,IAAI,iBAAO,CAAC,IAAI,IAAI,gBAAgB,EAAE,CAAC,CAAC;IACtG,OAAO,UAAU,CAAC;AACtB,CAAC;AALD,8CAKC;AAEM,KAAK,UAAU,2BAA2B,CAAC,OAAgB,EAAE,WAAgB;IAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,+BAA+B,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAExF,IAAI,kBAAuB,CAAC;IAC5B,IAAI;QACA,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KAChG;IACD,OAAO,CAAC,EAAE;KACT;IAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,WAAW,CAAC;IAC7C,IAAI,CAAC,oBAAoB;QACrB,OAAO;IACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM;QACzC,OAAO;IACX,MAAM,2BAA2B,GAAG,kBAAkB,EAAE,YAAY,IAAI,EAAE,CAAC;IAE3E,IAAI,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE;QACtF,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACvF,OAAO;KACV;IAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEpF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/C,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACpD,OAAO,OAAO,CAAC,oBAAoB,CAAC;IACpC,OAAO,OAAO,CAAC,eAAe,CAAC;IAE/B,gBAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,YAAE,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3D,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,YAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;QACzB,GAAG,IAAI,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,uBAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;QACrE,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,MAAM,IAAA,aAAI,EAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,QAAQ,KAAK,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE7E,YAAE,CAAC,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAClD,CAAC;AAhDD,kEAgDC"}
@@ -35,7 +35,8 @@ class PythonRuntimeWorker extends child_process_worker_1.ChildProcessWorker {
35
35
  }
36
36
  }
37
37
  }
38
- this.worker = child_process_1.default.spawn('python3', args, {
38
+ const pythonPath = os_1.default.platform() === 'win32' ? 'py.exe' : 'python3';
39
+ this.worker = child_process_1.default.spawn(pythonPath, args, {
39
40
  // stdin, stdout, stderr, peer in, peer out
40
41
  stdio: ['pipe', 'pipe', 'pipe', 'pipe', 'pipe'],
41
42
  env: Object.assign({
@@ -1 +1 @@
1
- {"version":3,"file":"python-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/python-worker.ts"],"names":[],"mappings":";;;;;;AAAA,kEAA0C;AAC1C,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,wDAAgC;AAGhC,iEAA4D;AAG5D,MAAa,mBAAoB,SAAQ,yCAAkB;IAEvD,YAAY,QAAgB,EAAE,OAA6B;QACvD,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACrC,MAAM,IAAI,GAAa;YACnB,IAAI;SACP,CAAC;QACF,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,IAAI,CACL,IAAI,EACJ,SAAS,EACT,UAAU,EACV,WAAW,WAAW,CAAC,WAAW,EAAE,EACpC,mBAAmB,CACtB,CAAA;SACJ;QACD,IAAI,CAAC,IAAI,CACL,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAC9D,CAAA;QAED,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,+CAA+C;QAC/C,IAAI,YAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;YAC5B,MAAM,QAAQ,GAAG;gBACb,iCAAiC;gBACjC,8BAA8B;aACjC,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC5B,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,EAAE;oBACvD,MAAM,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;oBACpC,MAAM;iBACT;aACJ;SACJ;QAED,IAAI,CAAC,MAAM,GAAG,uBAAa,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;YAC/C,2CAA2C;YAC3C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/C,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;gBACf,UAAU,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,8BAA8B,CAAC;aACvE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,YAAY,CAAC,IAAa;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAa,CAAC;QAEjD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAEhD,MAAM,aAAa,GAAG,kBAAQ,CAAC,eAAe,CAAC;YAC3C,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC,OAAmB,EAAE,MAA2B;QACjD,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAc,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACnG;QACD,OAAO,CAAC,EAAE;YACN,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACf;IACL,CAAC;CACJ;AAxED,kDAwEC"}
1
+ {"version":3,"file":"python-worker.js","sourceRoot":"","sources":["../../../src/plugin/runtime/python-worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrypted/server",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "@mapbox/node-pre-gyp": "^1.0.8",
@@ -6,7 +6,6 @@ import gc
6
6
  import json
7
7
  import os
8
8
  import platform
9
- import resource
10
9
  import shutil
11
10
  import subprocess
12
11
  import threading
@@ -21,7 +20,6 @@ from os import sys
21
20
  from typing import Any, Optional, Set, Tuple
22
21
 
23
22
  import aiofiles
24
- import gi
25
23
  import scrypted_python.scrypted_sdk.types
26
24
  from scrypted_python.scrypted_sdk.types import (Device, DeviceManifest,
27
25
  MediaManager,
@@ -31,12 +29,6 @@ from typing_extensions import TypedDict
31
29
 
32
30
  import rpc
33
31
 
34
- gi.require_version('Gst', '1.0')
35
-
36
- from gi.repository import GLib, Gst
37
-
38
- Gst.init(None)
39
-
40
32
  class SystemDeviceState(TypedDict):
41
33
  lastEventTime: int
42
34
  stateTime: int
@@ -227,9 +219,9 @@ class PluginRemote:
227
219
  if not os.path.exists(python_prefix):
228
220
  os.makedirs(python_prefix)
229
221
 
230
- python = 'python%s' % str(
222
+ python_version = 'python%s' % str(
231
223
  sys.version_info[0])+"."+str(sys.version_info[1])
232
- print('python:', python)
224
+ print('python version:', python_version)
233
225
 
234
226
  if 'requirements.txt' in zip.namelist():
235
227
  requirements = zip.open('requirements.txt').read()
@@ -254,7 +246,7 @@ class PluginRemote:
254
246
  f.write(requirements)
255
247
  f.close()
256
248
 
257
- p = subprocess.Popen([python, '-m', 'pip', 'install', '-r', requirementstxt,
249
+ p = subprocess.Popen([sys.executable, '-m', 'pip', 'install', '-r', requirementstxt,
258
250
  '--prefix', python_prefix], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
259
251
  while True:
260
252
  line = p.stdout.readline()
@@ -275,8 +267,13 @@ class PluginRemote:
275
267
  print(str_requirements)
276
268
 
277
269
  sys.path.insert(0, zipPath)
278
- site_packages = os.path.join(
279
- python_prefix, 'lib/%s/site-packages' % python)
270
+ if platform.system() != 'Windows':
271
+ site_packages = os.path.join(
272
+ python_prefix, 'lib', python_version, 'site-packages')
273
+ else:
274
+ site_packages = os.path.join(
275
+ python_prefix, 'Lib', 'site-packages')
276
+ print('site-packages: %s' % site_packages)
280
277
  sys.path.insert(0, site_packages)
281
278
  from scrypted_sdk import sdk_init # type: ignore
282
279
  self.systemManager = SystemManager(self.api, self.systemState)
@@ -366,7 +363,11 @@ async def async_main(loop: AbstractEventLoop):
366
363
 
367
364
  def stats_runner():
368
365
  ptime = round(time.process_time() * 1000000)
369
- heapTotal = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
366
+ try:
367
+ import resource
368
+ heapTotal = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
369
+ except:
370
+ heapTotal = 0
370
371
  stats = {
371
372
  'type': 'stats',
372
373
  'cpuUsage': {
@@ -399,8 +400,16 @@ def main():
399
400
 
400
401
 
401
402
  if __name__ == "__main__":
402
- worker = threading.Thread(target=main)
403
- worker.start()
404
-
405
- loop = GLib.MainLoop()
406
- loop.run()
403
+ try:
404
+ import gi
405
+ gi.require_version('Gst', '1.0')
406
+ from gi.repository import GLib, Gst
407
+ Gst.init(None)
408
+
409
+ worker = threading.Thread(target=main)
410
+ worker.start()
411
+
412
+ loop = GLib.MainLoop()
413
+ loop.run()
414
+ except:
415
+ main()
@@ -6,6 +6,7 @@ import { once } from 'events';
6
6
  import process from 'process';
7
7
  import mkdirp from "mkdirp";
8
8
  import semver from 'semver';
9
+ import os from 'os';
9
10
 
10
11
  export function getPluginNodePath(name: string) {
11
12
  const pluginVolume = ensurePluginVolume(name);
@@ -48,7 +49,10 @@ export async function installOptionalDependencies(console: Console, packageJson:
48
49
  mkdirp.sync(nodePrefix);
49
50
  fs.writeFileSync(packageJsonPath, JSON.stringify(reduced));
50
51
 
51
- const cp = child_process.spawn('npm', ['--prefix', nodePrefix, 'install'], {
52
+ let npm = 'npm';
53
+ if (os.platform() === 'win32')
54
+ npm += '.cmd';
55
+ const cp = child_process.spawn(npm, ['--prefix', nodePrefix, 'install'], {
52
56
  cwd: nodePrefix,
53
57
  stdio: 'inherit',
54
58
  });
@@ -45,7 +45,9 @@ export class PythonRuntimeWorker extends ChildProcessWorker {
45
45
  }
46
46
  }
47
47
 
48
- this.worker = child_process.spawn('python3', args, {
48
+ const pythonPath = os.platform() === 'win32' ? 'py.exe' : 'python3';
49
+
50
+ this.worker = child_process.spawn(pythonPath, args, {
49
51
  // stdin, stdout, stderr, peer in, peer out
50
52
  stdio: ['pipe', 'pipe', 'pipe', 'pipe', 'pipe'],
51
53
  env: Object.assign({