@scrypted/server 0.6.26 → 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 (48) hide show
  1. package/dist/http-interfaces.js +4 -1
  2. package/dist/http-interfaces.js.map +1 -1
  3. package/dist/plugin/media.js +15 -17
  4. package/dist/plugin/media.js.map +1 -1
  5. package/dist/plugin/plugin-console.js +157 -4
  6. package/dist/plugin/plugin-console.js.map +1 -1
  7. package/dist/plugin/plugin-device.js +2 -0
  8. package/dist/plugin/plugin-device.js.map +1 -1
  9. package/dist/plugin/plugin-host.js +5 -0
  10. package/dist/plugin/plugin-host.js.map +1 -1
  11. package/dist/plugin/plugin-remote-stats.js +30 -0
  12. package/dist/plugin/plugin-remote-stats.js.map +1 -0
  13. package/dist/plugin/plugin-remote-worker.js +69 -149
  14. package/dist/plugin/plugin-remote-worker.js.map +1 -1
  15. package/dist/plugin/plugin-repl.js +4 -1
  16. package/dist/plugin/plugin-repl.js.map +1 -1
  17. package/dist/plugin/runtime/python-worker.js +1 -0
  18. package/dist/plugin/runtime/python-worker.js.map +1 -1
  19. package/dist/plugin/system.js +4 -0
  20. package/dist/plugin/system.js.map +1 -1
  21. package/dist/rpc.js +180 -45
  22. package/dist/rpc.js.map +1 -1
  23. package/dist/runtime.js +3 -0
  24. package/dist/runtime.js.map +1 -1
  25. package/dist/threading.js +1 -0
  26. package/dist/threading.js.map +1 -1
  27. package/package.json +3 -4
  28. package/python/plugin_remote.py +133 -50
  29. package/python/rpc-iterator-test.py +45 -0
  30. package/python/rpc.py +168 -50
  31. package/python/rpc_reader.py +57 -60
  32. package/src/http-interfaces.ts +5 -1
  33. package/src/plugin/media.ts +16 -17
  34. package/src/plugin/plugin-api.ts +4 -1
  35. package/src/plugin/plugin-console.ts +154 -6
  36. package/src/plugin/plugin-device.ts +3 -0
  37. package/src/plugin/plugin-host.ts +5 -0
  38. package/src/plugin/plugin-remote-stats.ts +36 -0
  39. package/src/plugin/plugin-remote-worker.ts +77 -178
  40. package/src/plugin/plugin-remote.ts +1 -1
  41. package/src/plugin/plugin-repl.ts +4 -1
  42. package/src/plugin/runtime/python-worker.ts +2 -0
  43. package/src/plugin/system.ts +6 -0
  44. package/src/rpc.ts +225 -50
  45. package/src/runtime.ts +3 -0
  46. package/src/threading.ts +2 -0
  47. package/test/rpc-iterator-test.ts +46 -0
  48. 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,13 +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();
169
- onSerialization = new Map();
215
+ onProxyTypeSerialization = new Map();
216
+ onProxySerialization;
170
217
  constructorSerializerMap = new Map();
171
218
  transportSafeArgumentTypes = RpcPeer.getDefaultTransportSafeArgumentTypes();
172
219
  killed;
@@ -205,6 +252,33 @@ class RpcPeer {
205
252
  };
206
253
  }
207
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';
208
282
  static PROPERTY_PROXY_ID = '__proxy_id';
209
283
  static PROPERTY_PROXY_ONEWAY_METHODS = '__proxy_oneway_methods';
210
284
  static PROPERTY_JSON_DISABLE_SERIALIZATION = '__json_disable_serialization';
@@ -229,9 +303,15 @@ class RpcPeer {
229
303
  this.killedDeferred = { resolve, reject };
230
304
  }).catch(e => e.message || 'Unknown Error');
231
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));
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 };
@@ -252,7 +332,7 @@ class RpcPeer {
252
332
  this.pendingResults = Object.freeze({});
253
333
  this.params = Object.freeze({});
254
334
  this.remoteWeakProxies = Object.freeze({});
255
- this.localProxyMap = Object.freeze({});
335
+ this.localProxyMap.clear();
256
336
  this.localProxied.clear();
257
337
  }
258
338
  // need a name/constructor map due to babel name mangling? fix somehow?
@@ -296,10 +376,16 @@ class RpcPeer {
296
376
  const value = f(...Object.values(params));
297
377
  return value;
298
378
  }
379
+ /**
380
+ * @deprecated
381
+ * @param result
382
+ * @param e
383
+ */
299
384
  createErrorResult(result, e) {
300
- result.stack = e.stack || 'no stack';
301
- result.result = e.name || 'no name';
385
+ result.result = this.serializeError(e);
386
+ result.throw = true;
302
387
  result.message = e.message || 'no message';
388
+ result.stack = e.stack || 'no stack';
303
389
  }
304
390
  deserialize(value, deserializationContext) {
305
391
  if (!value)
@@ -313,6 +399,8 @@ class RpcPeer {
313
399
  return ret;
314
400
  }
315
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);
316
404
  if (__remote_proxy_id) {
317
405
  let proxy = this.remoteWeakProxies[__remote_proxy_id]?.deref();
318
406
  if (!proxy)
@@ -325,7 +413,7 @@ class RpcPeer {
325
413
  return proxy;
326
414
  }
327
415
  if (__local_proxy_id) {
328
- const ret = this.localProxyMap[__local_proxy_id];
416
+ const ret = this.localProxyMap.get(__local_proxy_id);
329
417
  if (!ret)
330
418
  throw new RPCResultError(this, `invalid local proxy id ${__local_proxy_id}`);
331
419
  return ret;
@@ -336,6 +424,26 @@ class RpcPeer {
336
424
  }
337
425
  return value;
338
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
+ }
339
447
  serialize(value, serializationContext) {
340
448
  if (value?.[RpcPeer.PROPERTY_JSON_COPY_SERIALIZE_CHILDREN] === true) {
341
449
  const ret = {};
@@ -344,11 +452,29 @@ class RpcPeer {
344
452
  }
345
453
  return ret;
346
454
  }
347
- if (!value || (!value[RpcPeer.PROPERTY_JSON_DISABLE_SERIALIZATION] && this.transportSafeArgumentTypes.has(value.constructor?.name))) {
455
+ if (this.isTransportSafe(value)) {
348
456
  return value;
349
457
  }
350
458
  let __remote_constructor_name = value.__proxy_constructor || value.constructor?.name?.toString();
351
- this.onSerialization.get(__remote_constructor_name)?.(value);
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
+ }
352
478
  let proxiedEntry = this.localProxied.get(value);
353
479
  if (proxiedEntry) {
354
480
  const __remote_proxy_finalizer_id = (this.proxyCounter++).toString();
@@ -357,7 +483,7 @@ class RpcPeer {
357
483
  __remote_proxy_id: proxiedEntry.id,
358
484
  __remote_proxy_finalizer_id,
359
485
  __remote_constructor_name,
360
- __remote_proxy_props: value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES],
486
+ __remote_proxy_props: RpcPeer.prepareProxyProperties(value),
361
487
  __remote_proxy_oneway_methods: value?.[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS],
362
488
  };
363
489
  return ret;
@@ -369,35 +495,20 @@ class RpcPeer {
369
495
  };
370
496
  return ret;
371
497
  }
372
- const serializerMapName = this.constructorSerializerMap.get(value.constructor);
373
- if (serializerMapName) {
374
- __remote_constructor_name = serializerMapName;
375
- const serializer = this.nameDeserializerMap.get(serializerMapName);
376
- if (!serializer)
377
- throw new Error('serializer not found for ' + serializerMapName);
378
- const serialized = serializer.serialize(value, serializationContext);
379
- const ret = {
380
- __remote_proxy_id: undefined,
381
- __remote_proxy_finalizer_id: undefined,
382
- __remote_constructor_name,
383
- __remote_proxy_props: value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES],
384
- __remote_proxy_oneway_methods: value?.[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS],
385
- __serialized_value: serialized,
386
- };
387
- return ret;
388
- }
498
+ this.onProxyTypeSerialization.get(__remote_constructor_name)?.(value);
389
499
  const __remote_proxy_id = (this.proxyCounter++).toString();
390
500
  proxiedEntry = {
391
501
  id: __remote_proxy_id,
392
502
  finalizerId: __remote_proxy_id,
393
503
  };
394
504
  this.localProxied.set(value, proxiedEntry);
395
- 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);
396
507
  const ret = {
397
508
  __remote_proxy_id,
398
509
  __remote_proxy_finalizer_id: __remote_proxy_id,
399
510
  __remote_constructor_name,
400
- __remote_proxy_props: value?.[RpcPeer.PROPERTY_PROXY_PROPERTIES],
511
+ __remote_proxy_props,
401
512
  __remote_proxy_oneway_methods: value?.[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS],
402
513
  };
403
514
  return ret;
@@ -434,11 +545,18 @@ class RpcPeer {
434
545
  case 'param': {
435
546
  const rpcParam = message;
436
547
  const serializationContext = {};
437
- const result = {
438
- type: 'result',
439
- id: rpcParam.id,
440
- result: this.serialize(this.params[rpcParam.param], serializationContext)
441
- };
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
+ }
442
560
  this.send(result, undefined, serializationContext);
443
561
  break;
444
562
  }
@@ -450,7 +568,7 @@ class RpcPeer {
450
568
  };
451
569
  const serializationContext = {};
452
570
  try {
453
- const target = this.localProxyMap[rpcApply.proxyId];
571
+ const target = this.localProxyMap.get(rpcApply.proxyId);
454
572
  if (!target)
455
573
  throw new Error(`proxy id ${rpcApply.proxyId} not found`);
456
574
  const args = [];
@@ -463,6 +581,18 @@ class RpcPeer {
463
581
  if (!method)
464
582
  throw new Error(`target ${target?.constructor?.name} does not have method ${rpcApply.method}`);
465
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
+ }
466
596
  }
467
597
  else {
468
598
  value = await target(...args);
@@ -478,12 +608,13 @@ class RpcPeer {
478
608
  break;
479
609
  }
480
610
  case 'result': {
611
+ // console.log(message)
481
612
  const rpcResult = message;
482
613
  const deferred = this.pendingResults[rpcResult.id];
483
614
  delete this.pendingResults[rpcResult.id];
484
615
  if (!deferred)
485
616
  throw new Error(`unknown result ${rpcResult.id}`);
486
- if (rpcResult.message || rpcResult.stack) {
617
+ if ((rpcResult.message || rpcResult.stack) && !rpcResult.throw) {
487
618
  const e = new RPCResultError(this, rpcResult.message || 'no message', undefined, {
488
619
  name: rpcResult.result,
489
620
  stack: rpcResult.stack,
@@ -491,19 +622,23 @@ class RpcPeer {
491
622
  deferred.reject(e);
492
623
  return;
493
624
  }
494
- 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);
495
630
  break;
496
631
  }
497
632
  case 'finalize': {
498
633
  const rpcFinalize = message;
499
- const local = this.localProxyMap[rpcFinalize.__local_proxy_id];
634
+ const local = this.localProxyMap.get(rpcFinalize.__local_proxy_id);
500
635
  if (local) {
501
636
  const localProxiedEntry = this.localProxied.get(local);
502
637
  // if a finalizer id is specified, it must match.
503
638
  if (rpcFinalize.__local_proxy_finalizer_id && rpcFinalize.__local_proxy_finalizer_id !== localProxiedEntry?.finalizerId) {
504
639
  break;
505
640
  }
506
- delete this.localProxyMap[rpcFinalize.__local_proxy_id];
641
+ this.localProxyMap.delete(rpcFinalize.__local_proxy_id);
507
642
  this.localProxied.delete(local);
508
643
  }
509
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 = {};