@scrypted/server 0.0.71 → 0.0.78

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.

Files changed (42) hide show
  1. package/.vscode/settings.json +2 -1
  2. package/dist/cert.js +75 -0
  3. package/dist/cert.js.map +1 -0
  4. package/dist/plugin/media.js +50 -14
  5. package/dist/plugin/media.js.map +1 -1
  6. package/dist/plugin/plugin-device.js +11 -1
  7. package/dist/plugin/plugin-device.js.map +1 -1
  8. package/dist/plugin/plugin-host-api.js +7 -3
  9. package/dist/plugin/plugin-host-api.js.map +1 -1
  10. package/dist/plugin/plugin-host.js +66 -45
  11. package/dist/plugin/plugin-host.js.map +1 -1
  12. package/dist/plugin/plugin-npm-dependencies.js +53 -0
  13. package/dist/plugin/plugin-npm-dependencies.js.map +1 -0
  14. package/dist/plugin/plugin-remote.js +5 -5
  15. package/dist/plugin/plugin-remote.js.map +1 -1
  16. package/dist/plugin/plugin-volume.js +20 -0
  17. package/dist/plugin/plugin-volume.js.map +1 -0
  18. package/dist/plugin/system.js +9 -3
  19. package/dist/plugin/system.js.map +1 -1
  20. package/dist/rpc.js +32 -12
  21. package/dist/rpc.js.map +1 -1
  22. package/dist/runtime.js +20 -27
  23. package/dist/runtime.js.map +1 -1
  24. package/dist/scrypted-main.js +4 -19
  25. package/dist/scrypted-main.js.map +1 -1
  26. package/package.json +4 -3
  27. package/python/media.py +40 -0
  28. package/python/plugin-remote.py +67 -30
  29. package/python/rpc.py +24 -81
  30. package/src/cert.ts +74 -0
  31. package/src/plugin/media.ts +53 -14
  32. package/src/plugin/plugin-api.ts +0 -1
  33. package/src/plugin/plugin-device.ts +13 -2
  34. package/src/plugin/plugin-host-api.ts +15 -3
  35. package/src/plugin/plugin-host.ts +69 -49
  36. package/src/plugin/plugin-npm-dependencies.ts +55 -0
  37. package/src/plugin/plugin-remote.ts +8 -7
  38. package/src/plugin/plugin-volume.ts +13 -0
  39. package/src/plugin/system.ts +11 -3
  40. package/src/rpc.ts +35 -12
  41. package/src/runtime.ts +24 -30
  42. package/src/scrypted-main.ts +5 -24
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "python.analysis.extraPaths": [
3
- "./node_modules/@scrypted/sdk"
3
+ "./node_modules/@scrypted/sdk",
4
+ "./python",
4
5
  ]
5
6
  }
package/dist/cert.js ADDED
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSelfSignedCertificate = exports.CURRENT_SELF_SIGNED_CERTIFICATE_VERSION = void 0;
7
+ // import libraries
8
+ const node_forge_1 = __importDefault(require("node-forge"));
9
+ const crypto_1 = __importDefault(require("crypto"));
10
+ const { pki } = node_forge_1.default;
11
+ exports.CURRENT_SELF_SIGNED_CERTIFICATE_VERSION = 'v2';
12
+ function createSelfSignedCertificate() {
13
+ // generate a keypair and create an X.509v3 certificate
14
+ const keys = pki.rsa.generateKeyPair(2048);
15
+ const cert = pki.createCertificate();
16
+ cert.publicKey = keys.publicKey;
17
+ // NOTE: serialNumber is the hex encoded value of an ASN.1 INTEGER.
18
+ // Conforming CAs should ensure serialNumber is:
19
+ // - no more than 20 octets
20
+ // - non-negative (prefix a '00' if your value starts with a '1' bit)
21
+ cert.serialNumber = '01' + crypto_1.default.randomBytes(19).toString("hex"); // 1 octet = 8 bits = 1 byte = 2 hex chars
22
+ cert.validity.notBefore = new Date();
23
+ cert.validity.notAfter = new Date();
24
+ cert.validity.notAfter.setFullYear(cert.validity.notBefore.getFullYear() + 1); // adding 1 year of validity from now
25
+ const attrs = [{
26
+ name: 'commonName',
27
+ value: 'localhost'
28
+ }];
29
+ cert.setSubject(attrs);
30
+ cert.setIssuer(attrs);
31
+ cert.setExtensions([{
32
+ name: 'basicConstraints',
33
+ cA: true
34
+ }, {
35
+ name: 'keyUsage',
36
+ keyCertSign: true,
37
+ digitalSignature: true,
38
+ nonRepudiation: true,
39
+ keyEncipherment: true,
40
+ dataEncipherment: true
41
+ }, {
42
+ name: 'extKeyUsage',
43
+ serverAuth: true,
44
+ clientAuth: true,
45
+ codeSigning: true,
46
+ emailProtection: true,
47
+ timeStamping: true
48
+ }, {
49
+ name: 'nsCertType',
50
+ client: true,
51
+ server: true,
52
+ email: true,
53
+ objsign: true,
54
+ sslCA: true,
55
+ emailCA: true,
56
+ objCA: true
57
+ }, {
58
+ name: 'subjectAltName',
59
+ altNames: [{
60
+ type: 7,
61
+ ip: '127.0.0.1'
62
+ }]
63
+ }, {
64
+ name: 'subjectKeyIdentifier'
65
+ }]);
66
+ // self-sign certificate
67
+ cert.sign(keys.privateKey);
68
+ return {
69
+ serviceKey: pki.privateKeyToPem(keys.privateKey),
70
+ certificate: pki.certificateToPem(cert),
71
+ version: exports.CURRENT_SELF_SIGNED_CERTIFICATE_VERSION,
72
+ };
73
+ }
74
+ exports.createSelfSignedCertificate = createSelfSignedCertificate;
75
+ //# sourceMappingURL=cert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cert.js","sourceRoot":"","sources":["../src/cert.ts"],"names":[],"mappings":";;;;;;AAAA,mBAAmB;AACnB,4DAA+B;AAC/B,oDAA4B;AAE5B,MAAM,EAAE,GAAG,EAAE,GAAG,oBAAK,CAAC;AAGT,QAAA,uCAAuC,GAAG,IAAI,CAAC;AAE5D,SAAgB,2BAA2B;IAEvC,uDAAuD;IACvD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAEhC,mEAAmE;IACnE,gDAAgD;IAChD,2BAA2B;IAC3B,qEAAqE;IACrE,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,0CAA0C;IAC7G,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,qCAAqC;IACpH,MAAM,KAAK,GAAG,CAAC;YACX,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;SACrB,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,aAAa,CAAC,CAAC;YAChB,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,IAAI;SACX,EAAE;YACC,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;SACzB,EAAE;YACC,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI;SACrB,EAAE;YACC,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACd,EAAE;YACC,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,CAAC;oBACP,IAAI,EAAE,CAAC;oBACP,EAAE,EAAE,WAAW;iBAClB,CAAC;SACL,EAAE;YACC,IAAI,EAAE,sBAAsB;SAC/B,CAAC,CAAC,CAAC;IAEJ,wBAAwB;IACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,OAAO;QACH,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;QAChD,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACvC,OAAO,EAAE,+CAAuC;KACnD,CAAC;AACN,CAAC;AAhED,kEAgEC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MediaManagerImpl = void 0;
6
+ exports.MediaManagerHostImpl = exports.MediaManagerImpl = exports.MediaManagerBase = void 0;
7
7
  const types_1 = require("@scrypted/sdk/types");
8
8
  const convert_1 = require("../convert");
9
9
  const mime_1 = __importDefault(require("mime"));
@@ -19,12 +19,24 @@ function addBuiltins(console, mediaManager) {
19
19
  fromMimeType: types_1.ScryptedMimeTypes.Url + ';' + types_1.ScryptedMimeTypes.AcceptUrlParameter,
20
20
  toMimeType: types_1.ScryptedMimeTypes.FFmpegInput,
21
21
  async convert(data, fromMimeType) {
22
+ const url = data.toString();
22
23
  const args = {
23
- inputArguments: ['-i', data.toString()]
24
+ url,
25
+ inputArguments: [
26
+ '-i',
27
+ url,
28
+ ],
24
29
  };
25
30
  return Buffer.from(JSON.stringify(args));
26
31
  }
27
32
  });
33
+ mediaManager.builtinConverters.push({
34
+ fromMimeType: types_1.ScryptedMimeTypes.FFmpegInput,
35
+ toMimeType: types_1.ScryptedMimeTypes.MediaStreamUrl,
36
+ async convert(data, fromMimeType) {
37
+ return data;
38
+ }
39
+ });
28
40
  mediaManager.builtinConverters.push({
29
41
  fromMimeType: types_1.ScryptedMimeTypes.MediaStreamUrl,
30
42
  toMimeType: types_1.ScryptedMimeTypes.FFmpegInput,
@@ -46,10 +58,9 @@ function addBuiltins(console, mediaManager) {
46
58
  // 10 second delay
47
59
  "10000000");
48
60
  }
49
- const ret = {
61
+ const ret = Object.assign({
50
62
  inputArguments,
51
- mediaStreamOptions: mediaUrl.mediaStreamOptions,
52
- };
63
+ }, mediaUrl);
53
64
  return Buffer.from(JSON.stringify(ret));
54
65
  }
55
66
  });
@@ -75,13 +86,11 @@ function addBuiltins(console, mediaManager) {
75
86
  }
76
87
  });
77
88
  }
78
- class MediaManagerImpl {
89
+ class MediaManagerBase {
79
90
  console;
80
- systemManager;
81
91
  builtinConverters = [];
82
- constructor(systemManager, console) {
92
+ constructor(console) {
83
93
  this.console = console;
84
- this.systemManager = systemManager;
85
94
  addBuiltins(this.console, this);
86
95
  }
87
96
  async getFFmpegPath() {
@@ -104,9 +113,9 @@ class MediaManagerImpl {
104
113
  return ffmpeg_for_homebridge_1.default || defaultPath;
105
114
  }
106
115
  getConverters() {
107
- const devices = Object.keys(this.systemManager.getSystemState()).map(id => this.systemManager.getDeviceById(id));
108
- const converters = Object.values(devices).filter(device => device.interfaces?.includes(types_1.ScryptedInterface.BufferConverter))
109
- .map(device => device);
116
+ const converters = Object.entries(this.getSystemState())
117
+ .filter(([id, state]) => state[types_1.ScryptedInterfaceProperty.interfaces]?.value?.includes(types_1.ScryptedInterface.BufferConverter))
118
+ .map(([id]) => this.getDeviceById(id));
110
119
  converters.push(...this.builtinConverters);
111
120
  return converters;
112
121
  }
@@ -162,10 +171,10 @@ class MediaManagerImpl {
162
171
  const path = url.pathname.split('/')[1];
163
172
  let mo;
164
173
  if (path === types_1.ScryptedInterface.VideoCamera) {
165
- mo = await this.systemManager.getDeviceById(id).getVideoStream();
174
+ mo = await this.getDeviceById(id).getVideoStream();
166
175
  }
167
176
  else if (path === types_1.ScryptedInterface.Camera) {
168
- mo = await this.systemManager.getDeviceById(id).takePicture();
177
+ mo = await this.getDeviceById(id).takePicture();
169
178
  }
170
179
  else {
171
180
  throw new Error('Unrecognized Scrypted Media interface.');
@@ -173,5 +182,32 @@ class MediaManagerImpl {
173
182
  return mo;
174
183
  }
175
184
  }
185
+ exports.MediaManagerBase = MediaManagerBase;
186
+ class MediaManagerImpl extends MediaManagerBase {
187
+ systemManager;
188
+ constructor(systemManager, console) {
189
+ super(console);
190
+ this.systemManager = systemManager;
191
+ }
192
+ getSystemState() {
193
+ return this.systemManager.getSystemState();
194
+ }
195
+ getDeviceById(id) {
196
+ return this.systemManager.getDeviceById(id);
197
+ }
198
+ }
176
199
  exports.MediaManagerImpl = MediaManagerImpl;
200
+ class MediaManagerHostImpl extends MediaManagerBase {
201
+ systemState;
202
+ getDeviceById;
203
+ constructor(systemState, getDeviceById, console) {
204
+ super(console);
205
+ this.systemState = systemState;
206
+ this.getDeviceById = getDeviceById;
207
+ }
208
+ getSystemState() {
209
+ return this.systemState;
210
+ }
211
+ }
212
+ exports.MediaManagerHostImpl = MediaManagerHostImpl;
177
213
  //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/plugin/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/plugin/media.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ class PluginDeviceProxyHandler {
30
30
  })().catch(() => { });
31
31
  ;
32
32
  }
33
+ // this must not be async, because it potentially changes execution order.
33
34
  ensureProxy() {
34
35
  const pluginDevice = this.scrypted.findPluginDeviceById(this.id);
35
36
  if (!pluginDevice)
@@ -93,7 +94,7 @@ class PluginDeviceProxyHandler {
93
94
  this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.interfaces, mixinInterfaces);
94
95
  return mixinTable;
95
96
  })();
96
- return this.mixinTable.then(mixinTable => pluginDevice);
97
+ return this.mixinTable.then(_ => pluginDevice);
97
98
  }
98
99
  get(target, p, receiver) {
99
100
  if (p === 'constructor')
@@ -134,6 +135,15 @@ class PluginDeviceProxyHandler {
134
135
  this.scrypted.stateManager.setPluginDeviceState(device, types_1.ScryptedInterfaceProperty.type, type);
135
136
  this.scrypted.stateManager.updateDescriptor(device);
136
137
  }
138
+ async probe() {
139
+ try {
140
+ await this.ensureProxy();
141
+ return true;
142
+ }
143
+ catch (e) {
144
+ return false;
145
+ }
146
+ }
137
147
  async applyMixin(method, argArray) {
138
148
  const iface = descriptor_1.methodInterfaces[method];
139
149
  if (!iface)
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-device.js","sourceRoot":"","sources":["../../src/plugin/plugin-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-device.js","sourceRoot":"","sources":["../../src/plugin/plugin-device.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,13 @@ const db_types_1 = require("../db-types");
9
9
  const plugin_api_1 = require("./plugin-api");
10
10
  const state_1 = require("../state");
11
11
  const debounce_1 = __importDefault(require("lodash/debounce"));
12
+ const rpc_1 = require("../rpc");
12
13
  class PluginHostAPI extends plugin_api_1.PluginAPIManagedListeners {
13
14
  scrypted;
14
15
  pluginHost;
16
+ mediaManager;
15
17
  pluginId;
18
+ [rpc_1.PROPERTY_PROXY_ONEWAY_METHODS];
16
19
  restartDebounced = (0, debounce_1.default)(async () => {
17
20
  const host = this.scrypted.plugins[this.pluginId];
18
21
  const logger = await this.getLogger(undefined);
@@ -23,10 +26,11 @@ class PluginHostAPI extends plugin_api_1.PluginAPIManagedListeners {
23
26
  const plugin = await this.scrypted.datastore.tryGet(db_types_1.Plugin, this.pluginId);
24
27
  this.scrypted.runPlugin(plugin);
25
28
  }, 15000);
26
- constructor(scrypted, plugin, pluginHost) {
29
+ constructor(scrypted, plugin, pluginHost, mediaManager) {
27
30
  super();
28
31
  this.scrypted = scrypted;
29
32
  this.pluginHost = pluginHost;
33
+ this.mediaManager = mediaManager;
30
34
  this.pluginId = plugin._id;
31
35
  }
32
36
  async onMixinEvent(id, nativeId, eventInterface, eventData) {
@@ -40,8 +44,8 @@ class PluginHostAPI extends plugin_api_1.PluginAPIManagedListeners {
40
44
  throw new Error(`${mixinProvider._id} does not mixin ${eventInterface} for ${id}`);
41
45
  this.scrypted.stateManager.notifyInterfaceEvent(device, eventInterface, eventData);
42
46
  }
43
- getMediaManager() {
44
- return null;
47
+ async getMediaManager() {
48
+ return this.mediaManager;
45
49
  }
46
50
  async deliverPush(endpoint, httpRequest) {
47
51
  return this.scrypted.deliverPush(endpoint, httpRequest);
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-host-api.js","sourceRoot":"","sources":["../../src/plugin/plugin-host-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-host-api.js","sourceRoot":"","sources":["../../src/plugin/plugin-host-api.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.startPluginClusterWorker = exports.PluginHost = exports.ensurePluginVolume = void 0;
6
+ exports.startPluginClusterWorker = exports.PluginHost = void 0;
7
7
  const rpc_1 = require("../rpc");
8
8
  const adm_zip_1 = __importDefault(require("adm-zip"));
9
9
  const types_1 = require("@scrypted/sdk/types");
@@ -20,23 +20,13 @@ const stream_1 = require("stream");
20
20
  const console_1 = require("console");
21
21
  const sleep_1 = require("../sleep");
22
22
  const plugin_host_api_1 = require("./plugin-host-api");
23
- const mkdirp_1 = __importDefault(require("mkdirp"));
24
23
  const path_1 = __importDefault(require("path"));
25
24
  const source_map_support_1 = require("source-map-support");
26
25
  const net_2 = __importDefault(require("net"));
27
26
  const child_process_1 = __importDefault(require("child_process"));
28
27
  const readline_1 = __importDefault(require("readline"));
29
- function ensurePluginVolume(pluginId) {
30
- const volume = path_1.default.join(process.cwd(), 'volume');
31
- const pluginVolume = path_1.default.join(volume, 'plugins', pluginId);
32
- try {
33
- mkdirp_1.default.sync(pluginVolume);
34
- }
35
- catch (e) {
36
- }
37
- return pluginVolume;
38
- }
39
- exports.ensurePluginVolume = ensurePluginVolume;
28
+ const plugin_volume_1 = require("./plugin-volume");
29
+ const plugin_npm_dependencies_1 = require("./plugin-npm-dependencies");
40
30
  class PluginHost {
41
31
  pluginDebug;
42
32
  worker;
@@ -55,7 +45,9 @@ class PluginHost {
55
45
  packageJson;
56
46
  listener;
57
47
  stats;
48
+ killed = false;
58
49
  kill() {
50
+ this.killed = true;
59
51
  this.listener.removeListener();
60
52
  this.api.removeListeners();
61
53
  this.worker.kill();
@@ -93,7 +85,7 @@ class PluginHost {
93
85
  this.packageJson = plugin.packageJson;
94
86
  const logger = scrypted.getDeviceLogger(scrypted.findPluginDevice(plugin._id));
95
87
  const volume = path_1.default.join(process.cwd(), 'volume');
96
- const cwd = ensurePluginVolume(this.pluginId);
88
+ const cwd = (0, plugin_volume_1.ensurePluginVolume)(this.pluginId);
97
89
  this.startPluginClusterHost(logger, {
98
90
  NODE_PATH: path_1.default.join(cwd, 'node_modules'),
99
91
  SCRYPTED_PLUGIN_VOLUME: cwd,
@@ -116,7 +108,11 @@ class PluginHost {
116
108
  }
117
109
  });
118
110
  const self = this;
119
- this.api = new plugin_host_api_1.PluginHostAPI(scrypted, plugin, this);
111
+ const { runtime } = this.packageJson.scrypted;
112
+ const mediaManager = runtime === 'python'
113
+ ? new media_1.MediaManagerHostImpl(scrypted.stateManager.getSystemState(), id => scrypted.getDevice(id), console)
114
+ : undefined;
115
+ this.api = new plugin_host_api_1.PluginHostAPI(scrypted, plugin, this, mediaManager);
120
116
  const zipBuffer = Buffer.from(plugin.zip, 'base64');
121
117
  this.zip = new adm_zip_1.default(zipBuffer);
122
118
  logger.log('i', `loading ${this.pluginName}`);
@@ -140,7 +136,6 @@ class PluginHost {
140
136
  console.error('debugger failed', e);
141
137
  }
142
138
  }
143
- const { runtime } = this.packageJson.scrypted;
144
139
  const fail = 'Plugin failed to load. Console for more information.';
145
140
  try {
146
141
  const loadZipOptions = {
@@ -166,7 +161,6 @@ class PluginHost {
166
161
  throw e;
167
162
  }
168
163
  })();
169
- init.catch(e => console.error('plugin failed to load', e));
170
164
  this.module = init.then(({ module }) => module);
171
165
  this.remote = new LazyRemote(remotePromise, init.then(({ remote }) => remote));
172
166
  this.listener = scrypted.stateManager.listen((id, eventDetails, eventData) => {
@@ -178,11 +172,17 @@ class PluginHost {
178
172
  this.remote.notify(id, eventDetails.eventTime, eventDetails.eventInterface, eventDetails.property, eventData, eventDetails.changed);
179
173
  }
180
174
  });
175
+ init.catch(e => {
176
+ console.error('plugin failed to load', e);
177
+ this.listener.removeListener();
178
+ });
181
179
  }
182
180
  startPluginClusterHost(logger, env, runtime) {
183
181
  let connected = true;
184
182
  if (runtime === 'python') {
185
- const args = [];
183
+ const args = [
184
+ '-u',
185
+ ];
186
186
  if (this.pluginDebug) {
187
187
  args.push('-m', 'debugpy', '--listen', `0.0.0.0:${this.pluginDebug.inspectPort}`, '--wait-for-client');
188
188
  }
@@ -194,6 +194,8 @@ class PluginHost {
194
194
  });
195
195
  const peerin = this.worker.stdio[3];
196
196
  const peerout = this.worker.stdio[4];
197
+ peerin.on('error', e => connected = false);
198
+ peerout.on('error', e => connected = false);
197
199
  this.peer = new rpc_1.RpcPeer('host', this.pluginId, (message, reject) => {
198
200
  if (connected) {
199
201
  peerin.write(JSON.stringify(message) + '\n', e => e && reject?.(e));
@@ -235,10 +237,8 @@ class PluginHost {
235
237
  this.peer.transportSafeArgumentTypes.add(Buffer.name);
236
238
  this.worker.on('message', message => this.peer.handleMessage(message));
237
239
  }
238
- this.worker.stdout.on('data', data => {
239
- process.stdout.write(data);
240
- });
241
- this.worker.stderr.on('data', data => process.stderr.write(data));
240
+ this.worker.stdout.on('data', data => console.log(data.toString()));
241
+ this.worker.stderr.on('data', data => console.error(data.toString()));
242
242
  this.worker.on('disconnect', () => {
243
243
  connected = false;
244
244
  logger.log('e', `${this.pluginName} disconnected`);
@@ -394,25 +394,6 @@ function startPluginClusterWorker() {
394
394
  peer.transportSafeArgumentTypes.add(Buffer.name);
395
395
  process.on('message', message => peer.handleMessage(message));
396
396
  const events = new ws_1.EventEmitter();
397
- events.once('zip', (zip, pluginId) => {
398
- peer.selfName = pluginId;
399
- (0, source_map_support_1.install)({
400
- environment: 'node',
401
- retrieveSourceMap(source) {
402
- if (source === '/plugin/main.nodejs.js' || source === `/${pluginId}/main.nodejs.js`) {
403
- const entry = zip.getEntry('main.nodejs.js.map');
404
- const map = entry?.getData().toString();
405
- if (!map)
406
- return null;
407
- return {
408
- url: '/plugin/main.nodejs.js',
409
- map,
410
- };
411
- }
412
- return null;
413
- }
414
- });
415
- });
416
397
  let systemManager;
417
398
  let deviceManager;
418
399
  function idForNativeId(nativeId) {
@@ -526,6 +507,36 @@ function startPluginClusterWorker() {
526
507
  if (name === 'console-writer')
527
508
  return (await consolePorts)[1];
528
509
  throw new Error(`unknown service ${name}`);
510
+ },
511
+ async beforeLoadZip(zip, packageJson) {
512
+ const pluginId = packageJson.name;
513
+ peer.selfName = pluginId;
514
+ (0, source_map_support_1.install)({
515
+ environment: 'node',
516
+ retrieveSourceMap(source) {
517
+ if (source === '/plugin/main.nodejs.js' || source === `/${pluginId}/main.nodejs.js`) {
518
+ const entry = zip.getEntry('main.nodejs.js.map');
519
+ const map = entry?.getData().toString();
520
+ if (!map)
521
+ return null;
522
+ return {
523
+ url: '/plugin/main.nodejs.js',
524
+ map,
525
+ };
526
+ }
527
+ return null;
528
+ }
529
+ });
530
+ const cp = await consolePorts;
531
+ const writer = cp[1];
532
+ const socket = net_2.default.connect(writer);
533
+ await (0, events_1.once)(socket, 'connect');
534
+ try {
535
+ await (0, plugin_npm_dependencies_1.installOptionalDependencies)(pluginConsole, socket, packageJson);
536
+ }
537
+ finally {
538
+ socket.destroy();
539
+ }
529
540
  }
530
541
  }).then(scrypted => {
531
542
  systemManager = scrypted.systemManager;
@@ -554,6 +565,16 @@ class LazyRemote {
554
565
  return this.remote;
555
566
  })();
556
567
  }
568
+ async ensureRemote() {
569
+ try {
570
+ if (!this.remote)
571
+ await this.remoteReadyPromise;
572
+ }
573
+ catch (e) {
574
+ return;
575
+ }
576
+ return true;
577
+ }
557
578
  async loadZip(packageJson, zipData, options) {
558
579
  if (!this.remote)
559
580
  await this.remoteReadyPromise;
@@ -570,13 +591,13 @@ class LazyRemote {
570
591
  return this.remote.setNativeId(nativeId, id, storage);
571
592
  }
572
593
  async updateDeviceState(id, state) {
573
- if (!this.remote)
574
- await this.remoteReadyPromise;
594
+ if (!await this.ensureRemote())
595
+ return;
575
596
  return this.remote.updateDeviceState(id, state);
576
597
  }
577
598
  async notify(id, eventTime, eventInterface, property, propertyState, changed) {
578
- if (!this.remote)
579
- await this.remoteReadyPromise;
599
+ if (!await this.ensureRemote())
600
+ return;
580
601
  return this.remote.notify(id, eventTime, eventInterface, property, propertyState, changed);
581
602
  }
582
603
  async ioEvent(id, event, message) {