@scrypted/server 0.6.24 → 0.7.2

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 (51) hide show
  1. package/dist/http-interfaces.js +4 -1
  2. package/dist/http-interfaces.js.map +1 -1
  3. package/dist/listen-zero.js +5 -2
  4. package/dist/listen-zero.js.map +1 -1
  5. package/dist/plugin/media.js +25 -20
  6. package/dist/plugin/media.js.map +1 -1
  7. package/dist/plugin/plugin-console.js +157 -4
  8. package/dist/plugin/plugin-console.js.map +1 -1
  9. package/dist/plugin/plugin-device.js +2 -0
  10. package/dist/plugin/plugin-device.js.map +1 -1
  11. package/dist/plugin/plugin-host.js +5 -0
  12. package/dist/plugin/plugin-host.js.map +1 -1
  13. package/dist/plugin/plugin-remote-stats.js +30 -0
  14. package/dist/plugin/plugin-remote-stats.js.map +1 -0
  15. package/dist/plugin/plugin-remote-worker.js +69 -149
  16. package/dist/plugin/plugin-remote-worker.js.map +1 -1
  17. package/dist/plugin/plugin-repl.js +4 -1
  18. package/dist/plugin/plugin-repl.js.map +1 -1
  19. package/dist/plugin/runtime/python-worker.js +1 -0
  20. package/dist/plugin/runtime/python-worker.js.map +1 -1
  21. package/dist/plugin/system.js +4 -0
  22. package/dist/plugin/system.js.map +1 -1
  23. package/dist/rpc.js +183 -45
  24. package/dist/rpc.js.map +1 -1
  25. package/dist/runtime.js +3 -0
  26. package/dist/runtime.js.map +1 -1
  27. package/dist/threading.js +1 -0
  28. package/dist/threading.js.map +1 -1
  29. package/package.json +3 -4
  30. package/python/plugin_remote.py +134 -51
  31. package/python/rpc-iterator-test.py +45 -0
  32. package/python/rpc.py +168 -50
  33. package/python/rpc_reader.py +57 -60
  34. package/src/http-interfaces.ts +5 -1
  35. package/src/listen-zero.ts +6 -2
  36. package/src/plugin/media.ts +38 -35
  37. package/src/plugin/plugin-api.ts +4 -1
  38. package/src/plugin/plugin-console.ts +154 -6
  39. package/src/plugin/plugin-device.ts +3 -0
  40. package/src/plugin/plugin-host.ts +5 -0
  41. package/src/plugin/plugin-remote-stats.ts +36 -0
  42. package/src/plugin/plugin-remote-worker.ts +77 -178
  43. package/src/plugin/plugin-remote.ts +1 -1
  44. package/src/plugin/plugin-repl.ts +4 -1
  45. package/src/plugin/runtime/python-worker.ts +2 -0
  46. package/src/plugin/system.ts +6 -0
  47. package/src/rpc.ts +230 -52
  48. package/src/runtime.ts +3 -0
  49. package/src/threading.ts +2 -0
  50. package/test/rpc-iterator-test.ts +46 -0
  51. package/test/rpc-python-test.ts +44 -0
package/dist/rpc.js CHANGED
@@ -34,6 +34,11 @@ class RpcProxy {
34
34
  constructorName;
35
35
  proxyProps;
36
36
  proxyOneWayMethods;
37
+ static iteratorMethods = new Set([
38
+ 'next',
39
+ 'throw',
40
+ 'return',
41
+ ]);
37
42
  constructor(peer, entry, constructorName, proxyProps, proxyOneWayMethods) {
38
43
  this.peer = peer;
39
44
  this.entry = entry;
@@ -46,6 +51,18 @@ class RpcProxy {
46
51
  return `RpcProxy-${peer.selfName}:${peer.peerName}: ${this.constructorName}`;
47
52
  }
48
53
  get(target, p, receiver) {
54
+ if (p === Symbol.asyncIterator) {
55
+ if (!this.proxyProps?.[Symbol.asyncIterator.toString()])
56
+ return;
57
+ return () => {
58
+ return new Proxy(() => { }, this);
59
+ };
60
+ }
61
+ if (RpcProxy.iteratorMethods.has(p?.toString())) {
62
+ const asyncIteratorMethod = this.proxyProps?.[Symbol.asyncIterator.toString()]?.[p];
63
+ if (asyncIteratorMethod)
64
+ return new Proxy(() => asyncIteratorMethod, this);
65
+ }
49
66
  if (p === RpcPeer.PROPERTY_PROXY_ID)
50
67
  return this.entry.id;
51
68
  if (p === '__proxy_constructor')
@@ -80,12 +97,16 @@ class RpcProxy {
80
97
  return true;
81
98
  }
82
99
  apply(target, thisArg, argArray) {
83
- if (Object.isFrozen(this.peer.pendingResults))
84
- return Promise.reject(new RPCResultError(this.peer, 'RpcPeer has been killed'));
100
+ const method = target() || null;
101
+ const oneway = this.proxyOneWayMethods?.includes?.(method);
102
+ if (Object.isFrozen(this.peer.pendingResults)) {
103
+ if (oneway)
104
+ return Promise.resolve();
105
+ return Promise.reject(new RPCResultError(this.peer, 'RpcPeer has been killed (apply) ' + target()));
106
+ }
85
107
  // rpc objects can be functions. if the function is a oneway method,
86
108
  // it will have a null in the oneway method list. this is because
87
109
  // undefined is not JSON serializable.
88
- const method = target() || null;
89
110
  const args = [];
90
111
  const serializationContext = {};
91
112
  for (const arg of (argArray || [])) {
@@ -98,7 +119,7 @@ class RpcProxy {
98
119
  args,
99
120
  method,
100
121
  };
101
- if (this.proxyOneWayMethods?.includes?.(method)) {
122
+ if (oneway) {
102
123
  rpcApply.oneway = true;
103
124
  // a oneway callable object doesn't need to be in the JSON payload.
104
125
  if (method === null)
@@ -106,10 +127,35 @@ class RpcProxy {
106
127
  this.peer.send(rpcApply, undefined, serializationContext);
107
128
  return Promise.resolve();
108
129
  }
109
- return this.peer.createPendingResult((id, reject) => {
130
+ const pendingResult = this.peer.createPendingResult((id, reject) => {
110
131
  rpcApply.id = id;
111
132
  this.peer.send(rpcApply, reject, serializationContext);
112
133
  });
134
+ const asyncIterator = this.proxyProps?.[Symbol.asyncIterator.toString()];
135
+ if (!asyncIterator || (method !== asyncIterator.next && method !== asyncIterator.return))
136
+ return pendingResult;
137
+ return pendingResult
138
+ .then(value => {
139
+ if (method === asyncIterator.return) {
140
+ return {
141
+ done: true,
142
+ value: undefined,
143
+ };
144
+ }
145
+ return ({
146
+ value,
147
+ done: false,
148
+ });
149
+ })
150
+ .catch(e => {
151
+ if (e.name === 'StopAsyncIteration') {
152
+ return {
153
+ done: true,
154
+ value: undefined,
155
+ };
156
+ }
157
+ throw e;
158
+ });
113
159
  }
114
160
  }
115
161
  // todo: error constructor adds a "cause" variable in Chrome 93, Node v??
@@ -122,7 +168,7 @@ class RPCResultError extends Error {
122
168
  this.name = options?.name;
123
169
  }
124
170
  if (options?.stack) {
125
- this.stack = `${peer.peerName}:${peer.selfName}\n${cause?.stack || options.stack}`;
171
+ this.stack = `${cause?.stack || options.stack}\n${peer.peerName}:${peer.selfName}`;
126
172
  }
127
173
  }
128
174
  }
@@ -160,12 +206,14 @@ class RpcPeer {
160
206
  pendingResults = {};
161
207
  proxyCounter = 1;
162
208
  localProxied = new Map();
163
- localProxyMap = {};
209
+ localProxyMap = new Map();
164
210
  // @ts-ignore
165
211
  remoteWeakProxies = {};
166
212
  // @ts-ignore
167
213
  finalizers = new FinalizationRegistry(entry => this.finalize(entry));
168
214
  nameDeserializerMap = new Map();
215
+ onProxyTypeSerialization = new Map();
216
+ onProxySerialization;
169
217
  constructorSerializerMap = new Map();
170
218
  transportSafeArgumentTypes = RpcPeer.getDefaultTransportSafeArgumentTypes();
171
219
  killed;
@@ -204,6 +252,33 @@ class RpcPeer {
204
252
  };
205
253
  }
206
254
  }
255
+ // static setProxyProperties(value: any, properties: any) {
256
+ // value[RpcPeer.PROPERTY_PROXY_PROPERTIES] = properties;
257
+ // }
258
+ // static getProxyProperties(value: any) {
259
+ // return value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES];
260
+ // }
261
+ static getIteratorNext(target) {
262
+ if (!target[Symbol.asyncIterator])
263
+ return;
264
+ const proxyProps = target[this.PROPERTY_PROXY_PROPERTIES]?.[Symbol.asyncIterator.toString()];
265
+ return proxyProps?.next || 'next';
266
+ }
267
+ static prepareProxyProperties(value) {
268
+ let props = value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES];
269
+ if (!value[Symbol.asyncIterator])
270
+ return props;
271
+ props ||= {};
272
+ if (!props[Symbol.asyncIterator.toString()]) {
273
+ props[Symbol.asyncIterator.toString()] = {
274
+ next: 'next',
275
+ throw: 'throw',
276
+ return: 'return',
277
+ };
278
+ }
279
+ return props;
280
+ }
281
+ static RPC_RESULT_ERROR_NAME = 'RPCResultError';
207
282
  static PROPERTY_PROXY_ID = '__proxy_id';
208
283
  static PROPERTY_PROXY_ONEWAY_METHODS = '__proxy_oneway_methods';
209
284
  static PROPERTY_JSON_DISABLE_SERIALIZATION = '__json_disable_serialization';
@@ -226,12 +301,17 @@ class RpcPeer {
226
301
  this.send = send;
227
302
  this.killed = new Promise((resolve, reject) => {
228
303
  this.killedDeferred = { resolve, reject };
229
- });
230
- this.killed.catch(() => { });
304
+ }).catch(e => e.message || 'Unknown Error');
305
+ }
306
+ static isTransportSafe(value) {
307
+ return !value || (!value[RpcPeer.PROPERTY_JSON_DISABLE_SERIALIZATION] && this.getDefaultTransportSafeArgumentTypes().has(value.constructor?.name));
308
+ }
309
+ isTransportSafe(value) {
310
+ return !value || (!value[RpcPeer.PROPERTY_JSON_DISABLE_SERIALIZATION] && this.transportSafeArgumentTypes.has(value.constructor?.name));
231
311
  }
232
312
  createPendingResult(cb) {
233
313
  if (Object.isFrozen(this.pendingResults))
234
- return Promise.reject(new RPCResultError(this, 'RpcPeer has been killed'));
314
+ return Promise.reject(new RPCResultError(this, 'RpcPeer has been killed (createPendingResult)'));
235
315
  const promise = new Promise((resolve, reject) => {
236
316
  const id = (this.idCounter++).toString();
237
317
  this.pendingResults[id] = { resolve, reject };
@@ -242,6 +322,8 @@ class RpcPeer {
242
322
  return promise;
243
323
  }
244
324
  kill(message) {
325
+ if (Object.isFrozen(this.pendingResults))
326
+ return;
245
327
  const error = new RPCResultError(this, message || 'peer was killed');
246
328
  this.killedDeferred.reject(error);
247
329
  for (const result of Object.values(this.pendingResults)) {
@@ -250,7 +332,7 @@ class RpcPeer {
250
332
  this.pendingResults = Object.freeze({});
251
333
  this.params = Object.freeze({});
252
334
  this.remoteWeakProxies = Object.freeze({});
253
- this.localProxyMap = Object.freeze({});
335
+ this.localProxyMap.clear();
254
336
  this.localProxied.clear();
255
337
  }
256
338
  // need a name/constructor map due to babel name mangling? fix somehow?
@@ -294,10 +376,16 @@ class RpcPeer {
294
376
  const value = f(...Object.values(params));
295
377
  return value;
296
378
  }
379
+ /**
380
+ * @deprecated
381
+ * @param result
382
+ * @param e
383
+ */
297
384
  createErrorResult(result, e) {
298
- result.stack = e.stack || 'no stack';
299
- result.result = e.name || 'no name';
385
+ result.result = this.serializeError(e);
386
+ result.throw = true;
300
387
  result.message = e.message || 'no message';
388
+ result.stack = e.stack || 'no stack';
301
389
  }
302
390
  deserialize(value, deserializationContext) {
303
391
  if (!value)
@@ -311,6 +399,8 @@ class RpcPeer {
311
399
  return ret;
312
400
  }
313
401
  const { __remote_proxy_id, __remote_proxy_finalizer_id, __local_proxy_id, __remote_constructor_name, __serialized_value, __remote_proxy_props, __remote_proxy_oneway_methods } = value;
402
+ if (__remote_constructor_name === RpcPeer.RPC_RESULT_ERROR_NAME)
403
+ return this.deserializeError(__serialized_value);
314
404
  if (__remote_proxy_id) {
315
405
  let proxy = this.remoteWeakProxies[__remote_proxy_id]?.deref();
316
406
  if (!proxy)
@@ -323,7 +413,7 @@ class RpcPeer {
323
413
  return proxy;
324
414
  }
325
415
  if (__local_proxy_id) {
326
- const ret = this.localProxyMap[__local_proxy_id];
416
+ const ret = this.localProxyMap.get(__local_proxy_id);
327
417
  if (!ret)
328
418
  throw new RPCResultError(this, `invalid local proxy id ${__local_proxy_id}`);
329
419
  return ret;
@@ -334,6 +424,26 @@ class RpcPeer {
334
424
  }
335
425
  return value;
336
426
  }
427
+ deserializeError(e) {
428
+ const { name, stack, message } = e;
429
+ return new RPCResultError(this, message, undefined, { name, stack });
430
+ }
431
+ serializeError(e) {
432
+ const __serialized_value = {
433
+ stack: e.stack || '[no stack]',
434
+ name: e.name || '[no name]',
435
+ message: e.message || '[no message]',
436
+ };
437
+ return {
438
+ // probably not safe to use constructor.name
439
+ __remote_constructor_name: RpcPeer.RPC_RESULT_ERROR_NAME,
440
+ __remote_proxy_id: undefined,
441
+ __remote_proxy_finalizer_id: undefined,
442
+ __remote_proxy_oneway_methods: undefined,
443
+ __remote_proxy_props: undefined,
444
+ __serialized_value,
445
+ };
446
+ }
337
447
  serialize(value, serializationContext) {
338
448
  if (value?.[RpcPeer.PROPERTY_JSON_COPY_SERIALIZE_CHILDREN] === true) {
339
449
  const ret = {};
@@ -342,10 +452,29 @@ class RpcPeer {
342
452
  }
343
453
  return ret;
344
454
  }
345
- if (!value || (!value[RpcPeer.PROPERTY_JSON_DISABLE_SERIALIZATION] && this.transportSafeArgumentTypes.has(value.constructor?.name))) {
455
+ if (this.isTransportSafe(value)) {
346
456
  return value;
347
457
  }
348
458
  let __remote_constructor_name = value.__proxy_constructor || value.constructor?.name?.toString();
459
+ if (value instanceof Error)
460
+ return this.serializeError(value);
461
+ const serializerMapName = this.constructorSerializerMap.get(value.constructor);
462
+ if (serializerMapName) {
463
+ __remote_constructor_name = serializerMapName;
464
+ const serializer = this.nameDeserializerMap.get(serializerMapName);
465
+ if (!serializer)
466
+ throw new Error('serializer not found for ' + serializerMapName);
467
+ const serialized = serializer.serialize(value, serializationContext);
468
+ const ret = {
469
+ __remote_proxy_id: undefined,
470
+ __remote_proxy_finalizer_id: undefined,
471
+ __remote_constructor_name,
472
+ __remote_proxy_props: RpcPeer.prepareProxyProperties(value),
473
+ __remote_proxy_oneway_methods: value?.[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS],
474
+ __serialized_value: serialized,
475
+ };
476
+ return ret;
477
+ }
349
478
  let proxiedEntry = this.localProxied.get(value);
350
479
  if (proxiedEntry) {
351
480
  const __remote_proxy_finalizer_id = (this.proxyCounter++).toString();
@@ -354,7 +483,7 @@ class RpcPeer {
354
483
  __remote_proxy_id: proxiedEntry.id,
355
484
  __remote_proxy_finalizer_id,
356
485
  __remote_constructor_name,
357
- __remote_proxy_props: value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES],
486
+ __remote_proxy_props: RpcPeer.prepareProxyProperties(value),
358
487
  __remote_proxy_oneway_methods: value?.[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS],
359
488
  };
360
489
  return ret;
@@ -366,35 +495,20 @@ class RpcPeer {
366
495
  };
367
496
  return ret;
368
497
  }
369
- const serializerMapName = this.constructorSerializerMap.get(value.constructor);
370
- if (serializerMapName) {
371
- __remote_constructor_name = serializerMapName;
372
- const serializer = this.nameDeserializerMap.get(serializerMapName);
373
- if (!serializer)
374
- throw new Error('serializer not found for ' + serializerMapName);
375
- const serialized = serializer.serialize(value, serializationContext);
376
- const ret = {
377
- __remote_proxy_id: undefined,
378
- __remote_proxy_finalizer_id: undefined,
379
- __remote_constructor_name,
380
- __remote_proxy_props: value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES],
381
- __remote_proxy_oneway_methods: value?.[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS],
382
- __serialized_value: serialized,
383
- };
384
- return ret;
385
- }
498
+ this.onProxyTypeSerialization.get(__remote_constructor_name)?.(value);
386
499
  const __remote_proxy_id = (this.proxyCounter++).toString();
387
500
  proxiedEntry = {
388
501
  id: __remote_proxy_id,
389
502
  finalizerId: __remote_proxy_id,
390
503
  };
391
504
  this.localProxied.set(value, proxiedEntry);
392
- this.localProxyMap[__remote_proxy_id] = value;
505
+ this.localProxyMap.set(__remote_proxy_id, value);
506
+ const __remote_proxy_props = this.onProxySerialization ? this.onProxySerialization(value, __remote_proxy_id) : RpcPeer.prepareProxyProperties(value);
393
507
  const ret = {
394
508
  __remote_proxy_id,
395
509
  __remote_proxy_finalizer_id: __remote_proxy_id,
396
510
  __remote_constructor_name,
397
- __remote_proxy_props: value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES],
511
+ __remote_proxy_props,
398
512
  __remote_proxy_oneway_methods: value?.[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS],
399
513
  };
400
514
  return ret;
@@ -431,11 +545,18 @@ class RpcPeer {
431
545
  case 'param': {
432
546
  const rpcParam = message;
433
547
  const serializationContext = {};
434
- const result = {
435
- type: 'result',
436
- id: rpcParam.id,
437
- result: this.serialize(this.params[rpcParam.param], serializationContext)
438
- };
548
+ let result;
549
+ try {
550
+ result = {
551
+ type: 'result',
552
+ id: rpcParam.id,
553
+ result: this.serialize(this.params[rpcParam.param], serializationContext)
554
+ };
555
+ }
556
+ catch (e) {
557
+ // console.error('failure', rpcApply.method, e);
558
+ this.createErrorResult(result, e);
559
+ }
439
560
  this.send(result, undefined, serializationContext);
440
561
  break;
441
562
  }
@@ -447,7 +568,7 @@ class RpcPeer {
447
568
  };
448
569
  const serializationContext = {};
449
570
  try {
450
- const target = this.localProxyMap[rpcApply.proxyId];
571
+ const target = this.localProxyMap.get(rpcApply.proxyId);
451
572
  if (!target)
452
573
  throw new Error(`proxy id ${rpcApply.proxyId} not found`);
453
574
  const args = [];
@@ -460,6 +581,18 @@ class RpcPeer {
460
581
  if (!method)
461
582
  throw new Error(`target ${target?.constructor?.name} does not have method ${rpcApply.method}`);
462
583
  value = await target[rpcApply.method](...args);
584
+ if (RpcPeer.getIteratorNext(target) === rpcApply.method) {
585
+ if (value.done) {
586
+ const errorType = {
587
+ name: 'StopAsyncIteration',
588
+ message: undefined,
589
+ };
590
+ throw errorType;
591
+ }
592
+ else {
593
+ value = value.value;
594
+ }
595
+ }
463
596
  }
464
597
  else {
465
598
  value = await target(...args);
@@ -475,12 +608,13 @@ class RpcPeer {
475
608
  break;
476
609
  }
477
610
  case 'result': {
611
+ // console.log(message)
478
612
  const rpcResult = message;
479
613
  const deferred = this.pendingResults[rpcResult.id];
480
614
  delete this.pendingResults[rpcResult.id];
481
615
  if (!deferred)
482
616
  throw new Error(`unknown result ${rpcResult.id}`);
483
- if (rpcResult.message || rpcResult.stack) {
617
+ if ((rpcResult.message || rpcResult.stack) && !rpcResult.throw) {
484
618
  const e = new RPCResultError(this, rpcResult.message || 'no message', undefined, {
485
619
  name: rpcResult.result,
486
620
  stack: rpcResult.stack,
@@ -488,19 +622,23 @@ class RpcPeer {
488
622
  deferred.reject(e);
489
623
  return;
490
624
  }
491
- deferred.resolve(this.deserialize(rpcResult.result, deserializationContext));
625
+ const deserialized = this.deserialize(rpcResult.result, deserializationContext);
626
+ if (rpcResult.throw)
627
+ deferred.reject(deserialized);
628
+ else
629
+ deferred.resolve(deserialized);
492
630
  break;
493
631
  }
494
632
  case 'finalize': {
495
633
  const rpcFinalize = message;
496
- const local = this.localProxyMap[rpcFinalize.__local_proxy_id];
634
+ const local = this.localProxyMap.get(rpcFinalize.__local_proxy_id);
497
635
  if (local) {
498
636
  const localProxiedEntry = this.localProxied.get(local);
499
637
  // if a finalizer id is specified, it must match.
500
638
  if (rpcFinalize.__local_proxy_finalizer_id && rpcFinalize.__local_proxy_finalizer_id !== localProxiedEntry?.finalizerId) {
501
639
  break;
502
640
  }
503
- delete this.localProxyMap[rpcFinalize.__local_proxy_id];
641
+ this.localProxyMap.delete(rpcFinalize.__local_proxy_id);
504
642
  this.localProxied.delete(local);
505
643
  }
506
644
  break;
package/dist/rpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -59,9 +59,12 @@ const plugin_1 = require("./services/plugin");
59
59
  const service_control_1 = require("./services/service-control");
60
60
  const users_1 = require("./services/users");
61
61
  const state_1 = require("./state");
62
+ const crypto_1 = __importDefault(require("crypto"));
62
63
  const MIN_SCRYPTED_CORE_VERSION = 'v0.1.16';
63
64
  const PLUGIN_DEVICE_STATE_VERSION = 2;
64
65
  class ScryptedRuntime extends plugin_http_1.PluginHttp {
66
+ clusterId = crypto_1.default.randomBytes(3).toString('hex');
67
+ clusterSecret = crypto_1.default.randomBytes(16).toString('hex');
65
68
  datastore;
66
69
  plugins = {};
67
70
  pluginDevices = {};