@scrypted/server 0.0.105 → 0.0.109
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/http-interfaces.js +2 -2
- package/dist/http-interfaces.js.map +1 -1
- package/dist/plugin/listen-zero.js +13 -1
- package/dist/plugin/listen-zero.js.map +1 -1
- package/dist/plugin/plugin-device.js +11 -2
- package/dist/plugin/plugin-device.js.map +1 -1
- package/dist/plugin/plugin-host-api.js +8 -7
- package/dist/plugin/plugin-host-api.js.map +1 -1
- package/dist/plugin/plugin-host.js +36 -87
- package/dist/plugin/plugin-host.js.map +1 -1
- package/dist/plugin/plugin-http.js +100 -0
- package/dist/plugin/plugin-http.js.map +1 -0
- package/dist/plugin/plugin-lazy-remote.js +73 -0
- package/dist/plugin/plugin-lazy-remote.js.map +1 -0
- package/dist/plugin/plugin-npm-dependencies.js +16 -16
- package/dist/plugin/plugin-npm-dependencies.js.map +1 -1
- package/dist/plugin/plugin-remote-websocket.js +40 -34
- package/dist/plugin/plugin-remote-websocket.js.map +1 -1
- package/dist/plugin/plugin-remote.js +35 -26
- package/dist/plugin/plugin-remote.js.map +1 -1
- package/dist/rpc.js +53 -26
- package/dist/rpc.js.map +1 -1
- package/dist/runtime.js +45 -111
- package/dist/runtime.js.map +1 -1
- package/dist/scrypted-main.js +3 -0
- package/dist/scrypted-main.js.map +1 -1
- package/dist/services/plugin.js +2 -2
- package/dist/services/plugin.js.map +1 -1
- package/dist/state.js +2 -8
- package/dist/state.js.map +1 -1
- package/package.json +2 -2
- package/python/plugin-remote.py +4 -4
- package/python/rpc.py +68 -26
- package/src/http-interfaces.ts +3 -3
- package/src/plugin/listen-zero.ts +13 -0
- package/src/plugin/plugin-api.ts +1 -1
- package/src/plugin/plugin-device.ts +11 -2
- package/src/plugin/plugin-host-api.ts +9 -8
- package/src/plugin/plugin-host.ts +40 -95
- package/src/plugin/plugin-http.ts +117 -0
- package/src/plugin/plugin-lazy-remote.ts +70 -0
- package/src/plugin/plugin-npm-dependencies.ts +19 -18
- package/src/plugin/plugin-remote-websocket.ts +55 -60
- package/src/plugin/plugin-remote.ts +45 -38
- package/src/rpc.ts +62 -25
- package/src/runtime.ts +55 -128
- package/src/scrypted-main.ts +4 -0
- package/src/services/plugin.ts +2 -2
- package/src/state.ts +2 -10
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LazyRemote = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This remote is necessary as the host needs to create a remote synchronously
|
|
6
|
+
* in the constructor and immediately begin queueing commands.
|
|
7
|
+
* Warning: do not await in any of these methods unless necessary, otherwise
|
|
8
|
+
* execution order of state reporting may fail.
|
|
9
|
+
*/
|
|
10
|
+
class LazyRemote {
|
|
11
|
+
remotePromise;
|
|
12
|
+
remoteReadyPromise;
|
|
13
|
+
remote;
|
|
14
|
+
constructor(remotePromise, remoteReadyPromise) {
|
|
15
|
+
this.remotePromise = remotePromise;
|
|
16
|
+
this.remoteReadyPromise = remoteReadyPromise;
|
|
17
|
+
this.remoteReadyPromise = (async () => {
|
|
18
|
+
this.remote = await remoteReadyPromise;
|
|
19
|
+
return this.remote;
|
|
20
|
+
})();
|
|
21
|
+
}
|
|
22
|
+
async loadZip(packageJson, zipData, options) {
|
|
23
|
+
if (!this.remote)
|
|
24
|
+
await this.remoteReadyPromise;
|
|
25
|
+
return this.remote.loadZip(packageJson, zipData, options);
|
|
26
|
+
}
|
|
27
|
+
async setSystemState(state) {
|
|
28
|
+
if (!this.remote)
|
|
29
|
+
await this.remoteReadyPromise;
|
|
30
|
+
return this.remote.setSystemState(state);
|
|
31
|
+
}
|
|
32
|
+
async setNativeId(nativeId, id, storage) {
|
|
33
|
+
if (!this.remote)
|
|
34
|
+
await this.remoteReadyPromise;
|
|
35
|
+
return this.remote.setNativeId(nativeId, id, storage);
|
|
36
|
+
}
|
|
37
|
+
async updateDeviceState(id, state) {
|
|
38
|
+
try {
|
|
39
|
+
if (!this.remote)
|
|
40
|
+
await this.remoteReadyPromise;
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
return this.remote.updateDeviceState(id, state);
|
|
46
|
+
}
|
|
47
|
+
async notify(id, eventTime, eventInterface, property, propertyState, changed) {
|
|
48
|
+
try {
|
|
49
|
+
if (!this.remote)
|
|
50
|
+
await this.remoteReadyPromise;
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
return this.remote.notify(id, eventTime, eventInterface, property, propertyState, changed);
|
|
56
|
+
}
|
|
57
|
+
async ioEvent(id, event, message) {
|
|
58
|
+
if (!this.remote)
|
|
59
|
+
await this.remoteReadyPromise;
|
|
60
|
+
return this.remote.ioEvent(id, event, message);
|
|
61
|
+
}
|
|
62
|
+
async createDeviceState(id, setState) {
|
|
63
|
+
if (!this.remote)
|
|
64
|
+
await this.remoteReadyPromise;
|
|
65
|
+
return this.remote.createDeviceState(id, setState);
|
|
66
|
+
}
|
|
67
|
+
async getServicePort(name, ...args) {
|
|
68
|
+
const remote = await this.remotePromise;
|
|
69
|
+
return remote.getServicePort(name, ...args);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.LazyRemote = LazyRemote;
|
|
73
|
+
//# sourceMappingURL=plugin-lazy-remote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-lazy-remote.js","sourceRoot":"","sources":["../../src/plugin/plugin-lazy-remote.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACF,MAAa,UAAU;IAGD;IAA6C;IAFhE,MAAM,CAAe;IAErB,YAAmB,aAAoC,EAAS,kBAAyC;QAAtF,kBAAa,GAAb,aAAa,CAAuB;QAAS,uBAAkB,GAAlB,kBAAkB,CAAuB;QACrG,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;YAClC,IAAI,CAAC,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACvC,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAgB,EAAE,OAAe,EAAE,OAAoC;QACjF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,KAAoE;QACrF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,QAA0B,EAAE,EAAU,EAAE,OAAgC;QACtF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,KAAiD;QACjF,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;SACrC;QACD,OAAO,CAAC,EAAE;YACN,OAAO;SACV;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAiB,EAAE,cAAsB,EAAE,QAAgB,EAAE,aAAgC,EAAE,OAAiB;QACrI,IAAI;YACA,IAAI,CAAC,IAAI,CAAC,MAAM;gBACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;SACrC;QACD,OAAO,CAAC,EAAE;YACN,OAAO;SACV;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,KAAa,EAAE,OAAa;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,QAAyD;QACzF,IAAI,CAAC,IAAI,CAAC,MAAM;YACZ,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,GAAG,IAAW;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;QACxC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;CACJ;AA5DA,gCA4DA"}
|
|
@@ -9,12 +9,16 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
9
9
|
const child_process_1 = __importDefault(require("child_process"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const events_1 = require("events");
|
|
12
|
+
const process_1 = __importDefault(require("process"));
|
|
13
|
+
const mkdirp_1 = __importDefault(require("mkdirp"));
|
|
12
14
|
async function installOptionalDependencies(console, packageJson) {
|
|
13
15
|
const pluginVolume = (0, plugin_volume_1.ensurePluginVolume)(packageJson.name);
|
|
14
|
-
const
|
|
16
|
+
const nodePrefix = path_1.default.join(pluginVolume, `${process_1.default.platform}-${process_1.default.arch}`);
|
|
17
|
+
const packageJsonPath = path_1.default.join(nodePrefix, 'package.json');
|
|
18
|
+
const currentInstalledPackageJsonPath = path_1.default.join(nodePrefix, 'package.installed.json');
|
|
15
19
|
let currentPackageJson;
|
|
16
20
|
try {
|
|
17
|
-
currentPackageJson = JSON.parse(fs_1.default.readFileSync(
|
|
21
|
+
currentPackageJson = JSON.parse(fs_1.default.readFileSync(currentInstalledPackageJsonPath).toString());
|
|
18
22
|
}
|
|
19
23
|
catch (e) {
|
|
20
24
|
}
|
|
@@ -33,20 +37,16 @@ async function installOptionalDependencies(console, packageJson) {
|
|
|
33
37
|
reduced.dependencies = reduced.optionalDependencies;
|
|
34
38
|
delete reduced.optionalDependencies;
|
|
35
39
|
delete reduced.devDependencies;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
catch (e) {
|
|
47
|
-
fs_1.default.rmSync(optPj);
|
|
48
|
-
throw e;
|
|
49
|
-
}
|
|
40
|
+
mkdirp_1.default.sync(nodePrefix);
|
|
41
|
+
fs_1.default.writeFileSync(packageJsonPath, JSON.stringify(reduced));
|
|
42
|
+
const cp = child_process_1.default.spawn('npm', ['--prefix', nodePrefix, 'install'], {
|
|
43
|
+
cwd: nodePrefix,
|
|
44
|
+
stdio: 'inherit',
|
|
45
|
+
});
|
|
46
|
+
await (0, events_1.once)(cp, 'exit');
|
|
47
|
+
if (cp.exitCode !== 0)
|
|
48
|
+
throw new Error('npm installation failed with exit code ' + cp.exitCode);
|
|
49
|
+
fs_1.default.writeFileSync(currentInstalledPackageJsonPath, JSON.stringify(reduced));
|
|
50
50
|
console.log('native dependencies installed.');
|
|
51
51
|
}
|
|
52
52
|
exports.installOptionalDependencies = installOptionalDependencies;
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAErB,KAAK,UAAU,2BAA2B,CAAC,OAAgB,EAAE,WAAgB;IAChF,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAO,CAAC,QAAQ,IAAI,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,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,MAAM,EAAE,GAAG,uBAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;QACvE,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;AA9CD,kEA8CC"}
|
|
@@ -47,59 +47,65 @@ function createWebSocketClass(__websocketConnect) {
|
|
|
47
47
|
_url;
|
|
48
48
|
_protocols;
|
|
49
49
|
readyState;
|
|
50
|
-
send;
|
|
51
50
|
_ws;
|
|
52
51
|
constructor(url, protocols) {
|
|
53
52
|
super();
|
|
54
53
|
this._url = url;
|
|
55
54
|
this._protocols = protocols;
|
|
56
55
|
this.readyState = 0;
|
|
57
|
-
__websocketConnect(url, protocols,
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
__websocketConnect(url, protocols, {
|
|
57
|
+
connect: (e, ws) => {
|
|
58
|
+
// connect
|
|
59
|
+
if (e != null) {
|
|
60
|
+
this.dispatchEvent({
|
|
61
|
+
type: 'error',
|
|
62
|
+
message: e.toString(),
|
|
63
|
+
});
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
this._ws = ws;
|
|
67
|
+
this.readyState = 1;
|
|
68
|
+
this.dispatchEvent({
|
|
69
|
+
type: 'open',
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
end: () => {
|
|
73
|
+
// end
|
|
74
|
+
this.readyState = 3;
|
|
75
|
+
this.dispatchEvent({
|
|
76
|
+
type: 'close',
|
|
77
|
+
reason: 'closed',
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
error: (e) => {
|
|
81
|
+
// error
|
|
82
|
+
this.readyState = 3;
|
|
60
83
|
this.dispatchEvent({
|
|
61
84
|
type: 'error',
|
|
62
85
|
message: e.toString(),
|
|
63
86
|
});
|
|
64
|
-
|
|
87
|
+
},
|
|
88
|
+
data: (data) => {
|
|
89
|
+
// data
|
|
90
|
+
this.dispatchEvent({
|
|
91
|
+
type: 'message',
|
|
92
|
+
data: data,
|
|
93
|
+
source: this,
|
|
94
|
+
});
|
|
65
95
|
}
|
|
66
|
-
this._ws = ws;
|
|
67
|
-
this.send = send;
|
|
68
|
-
this.readyState = 1;
|
|
69
|
-
this.dispatchEvent({
|
|
70
|
-
type: 'open',
|
|
71
|
-
});
|
|
72
|
-
}, () => {
|
|
73
|
-
// end
|
|
74
|
-
this.readyState = 3;
|
|
75
|
-
this.dispatchEvent({
|
|
76
|
-
type: 'close',
|
|
77
|
-
reason: 'closed',
|
|
78
|
-
});
|
|
79
|
-
}, (e) => {
|
|
80
|
-
// error
|
|
81
|
-
this.readyState = 3;
|
|
82
|
-
this.dispatchEvent({
|
|
83
|
-
type: 'error',
|
|
84
|
-
message: e.toString(),
|
|
85
|
-
});
|
|
86
|
-
}, (data) => {
|
|
87
|
-
// data
|
|
88
|
-
this.dispatchEvent({
|
|
89
|
-
type: 'message',
|
|
90
|
-
data: data,
|
|
91
|
-
source: this,
|
|
92
|
-
});
|
|
93
96
|
});
|
|
94
97
|
}
|
|
98
|
+
send(message) {
|
|
99
|
+
this._ws.send(message);
|
|
100
|
+
}
|
|
95
101
|
get url() {
|
|
96
102
|
return this._url;
|
|
97
103
|
}
|
|
98
104
|
get extensions() {
|
|
99
105
|
return "";
|
|
100
106
|
}
|
|
101
|
-
close() {
|
|
102
|
-
this._ws.close();
|
|
107
|
+
close(reason) {
|
|
108
|
+
this._ws.close(reason);
|
|
103
109
|
}
|
|
104
110
|
}
|
|
105
111
|
defineEventAttribute(WebSocket.prototype, "close");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-remote-websocket.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-websocket.ts"],"names":[],"mappings":";;;AAYA,aAAa;AACb,MAAM,oBAAoB;IACtB,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin-remote-websocket.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote-websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -249,7 +249,7 @@ class StorageImpl {
|
|
|
249
249
|
this.api.setStorage(this.nativeId, this.storage);
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
|
-
async function setupPluginRemote(peer, api, pluginId) {
|
|
252
|
+
async function setupPluginRemote(peer, api, pluginId, getSystemState) {
|
|
253
253
|
try {
|
|
254
254
|
// the host/remote connection can be from server to plugin (node to node),
|
|
255
255
|
// core plugin to web (node to browser).
|
|
@@ -257,7 +257,29 @@ async function setupPluginRemote(peer, api, pluginId) {
|
|
|
257
257
|
// but in plugin-host, mark Buffer as transport safe.
|
|
258
258
|
peer.addSerializer(Buffer, 'Buffer', new buffer_serializer_1.BufferSerializer());
|
|
259
259
|
const getRemote = await peer.getParam('getRemote');
|
|
260
|
-
|
|
260
|
+
const remote = await getRemote(api, pluginId);
|
|
261
|
+
await remote.setSystemState(getSystemState());
|
|
262
|
+
api.listen((id, eventDetails, eventData) => {
|
|
263
|
+
// ScryptedDevice events will be handled specially and repropagated by the remote.
|
|
264
|
+
if (eventDetails.eventInterface === types_1.ScryptedInterface.ScryptedDevice) {
|
|
265
|
+
if (eventDetails.property === types_1.ScryptedInterfaceProperty.id) {
|
|
266
|
+
// a change on the id property means device was deleted
|
|
267
|
+
remote.updateDeviceState(eventData, undefined);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
// a change on anything else is a descriptor update
|
|
271
|
+
remote.updateDeviceState(id, getSystemState()[id]);
|
|
272
|
+
}
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (eventDetails.property) {
|
|
276
|
+
remote.notify(id, eventDetails.eventTime, eventDetails.eventInterface, eventDetails.property, getSystemState()[id]?.[eventDetails.property], eventDetails.changed);
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
remote.notify(id, eventDetails.eventTime, eventDetails.eventInterface, eventDetails.property, eventData, eventDetails.changed);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
return remote;
|
|
261
283
|
}
|
|
262
284
|
catch (e) {
|
|
263
285
|
throw new rpc_1.RPCResultError(peer, 'error while retrieving PluginRemote', e);
|
|
@@ -274,8 +296,9 @@ function attachPluginRemote(peer, options) {
|
|
|
274
296
|
const systemManager = new system_1.SystemManagerImpl();
|
|
275
297
|
const deviceManager = new DeviceManagerImpl(systemManager, getDeviceConsole, getMixinConsole);
|
|
276
298
|
const endpointManager = new EndpointManagerImpl();
|
|
277
|
-
const ioSockets = {};
|
|
278
299
|
const mediaManager = await api.getMediaManager() || await createMediaManager(systemManager);
|
|
300
|
+
peer.params['mediaManager'] = mediaManager;
|
|
301
|
+
const ioSockets = {};
|
|
279
302
|
systemManager.api = api;
|
|
280
303
|
deviceManager.api = api;
|
|
281
304
|
const log = deviceManager.getDeviceLogger(undefined);
|
|
@@ -339,11 +362,11 @@ function attachPluginRemote(peer, options) {
|
|
|
339
362
|
async updateDeviceState(id, state) {
|
|
340
363
|
if (!state) {
|
|
341
364
|
delete systemManager.state[id];
|
|
342
|
-
systemManager.events.notify(
|
|
365
|
+
systemManager.events.notify(undefined, undefined, types_1.ScryptedInterface.ScryptedDevice, types_1.ScryptedInterfaceProperty.id, id, true);
|
|
343
366
|
}
|
|
344
367
|
else {
|
|
345
368
|
systemManager.state[id] = state;
|
|
346
|
-
systemManager.events.notify(id,
|
|
369
|
+
systemManager.events.notify(id, undefined, types_1.ScryptedInterface.ScryptedDevice, undefined, state, true);
|
|
347
370
|
}
|
|
348
371
|
},
|
|
349
372
|
async notify(id, eventTime, eventInterface, property, value, changed) {
|
|
@@ -383,28 +406,14 @@ function attachPluginRemote(peer, options) {
|
|
|
383
406
|
volume.mkdirpSync(path_1.default.dirname(name));
|
|
384
407
|
volume.writeFileSync(name, entry.getData());
|
|
385
408
|
}
|
|
386
|
-
function websocketConnect(url, protocols,
|
|
387
|
-
if (url.startsWith('io://')) {
|
|
388
|
-
const id = url.substring('
|
|
389
|
-
ioSockets[id] =
|
|
390
|
-
|
|
391
|
-
error,
|
|
392
|
-
end
|
|
393
|
-
};
|
|
394
|
-
connect(undefined, {
|
|
395
|
-
close: () => api.ioClose(id),
|
|
396
|
-
}, (message) => api.ioSend(id, message));
|
|
397
|
-
}
|
|
398
|
-
else if (url.startsWith('ws://')) {
|
|
399
|
-
const id = url.substring('ws://'.length);
|
|
400
|
-
ioSockets[id] = {
|
|
401
|
-
data,
|
|
402
|
-
error,
|
|
403
|
-
end
|
|
404
|
-
};
|
|
405
|
-
connect(undefined, {
|
|
409
|
+
function websocketConnect(url, protocols, callbacks) {
|
|
410
|
+
if (url.startsWith('io://') || url.startsWith('ws://')) {
|
|
411
|
+
const id = url.substring('xx://'.length);
|
|
412
|
+
ioSockets[id] = callbacks;
|
|
413
|
+
callbacks.connect(undefined, {
|
|
406
414
|
close: () => api.ioClose(id),
|
|
407
|
-
|
|
415
|
+
send: (message) => api.ioSend(id, message),
|
|
416
|
+
});
|
|
408
417
|
}
|
|
409
418
|
else {
|
|
410
419
|
throw new Error('unsupported websocket');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-remote.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-remote.js","sourceRoot":"","sources":["../../src/plugin/plugin-remote.ts"],"names":[],"mappings":"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"}
|
package/dist/rpc.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.RpcPeer = exports.RPCResultError = exports.PROPERTY_JSON_COPY_SERIALIZE_CHILDREN = exports.PROPERTY_PROXY_PROPERTIES = exports.PROPERTY_JSON_DISABLE_SERIALIZATION = exports.PROPERTY_PROXY_ONEWAY_METHODS = exports.handleFunctionInvocations = void 0;
|
|
7
7
|
const vm_1 = __importDefault(require("vm"));
|
|
8
|
+
const finalizerIdSymbol = Symbol('rpcFinalizerId');
|
|
8
9
|
function getDefaultTransportSafeArgumentTypes() {
|
|
9
10
|
const jsonSerializable = new Set();
|
|
10
11
|
jsonSerializable.add(Number.name);
|
|
@@ -33,24 +34,20 @@ exports.PROPERTY_PROXY_PROPERTIES = '__proxy_props';
|
|
|
33
34
|
exports.PROPERTY_JSON_COPY_SERIALIZE_CHILDREN = '__json_copy_serialize_children';
|
|
34
35
|
class RpcProxy {
|
|
35
36
|
peer;
|
|
36
|
-
|
|
37
|
+
entry;
|
|
37
38
|
constructorName;
|
|
38
39
|
proxyProps;
|
|
39
40
|
proxyOneWayMethods;
|
|
40
|
-
constructor(peer,
|
|
41
|
+
constructor(peer, entry, constructorName, proxyProps, proxyOneWayMethods) {
|
|
41
42
|
this.peer = peer;
|
|
42
|
-
this.
|
|
43
|
+
this.entry = entry;
|
|
43
44
|
this.constructorName = constructorName;
|
|
44
45
|
this.proxyProps = proxyProps;
|
|
45
46
|
this.proxyOneWayMethods = proxyOneWayMethods;
|
|
46
|
-
this.peer = peer;
|
|
47
|
-
this.id = id;
|
|
48
|
-
this.constructorName = constructorName;
|
|
49
|
-
this.proxyProps = proxyProps;
|
|
50
47
|
}
|
|
51
48
|
get(target, p, receiver) {
|
|
52
49
|
if (p === '__proxy_id')
|
|
53
|
-
return this.id;
|
|
50
|
+
return this.entry.id;
|
|
54
51
|
if (p === '__proxy_constructor')
|
|
55
52
|
return this.constructorName;
|
|
56
53
|
if (p === '__proxy_peer')
|
|
@@ -72,6 +69,11 @@ class RpcProxy {
|
|
|
72
69
|
return handled;
|
|
73
70
|
return new Proxy(() => p, this);
|
|
74
71
|
}
|
|
72
|
+
set(target, p, value, receiver) {
|
|
73
|
+
if (p === finalizerIdSymbol)
|
|
74
|
+
this.entry.finalizerId = value;
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
75
77
|
apply(target, thisArg, argArray) {
|
|
76
78
|
const method = target();
|
|
77
79
|
const args = [];
|
|
@@ -81,7 +83,7 @@ class RpcProxy {
|
|
|
81
83
|
const rpcApply = {
|
|
82
84
|
type: "apply",
|
|
83
85
|
id: undefined,
|
|
84
|
-
proxyId: this.id,
|
|
86
|
+
proxyId: this.entry.id,
|
|
85
87
|
args,
|
|
86
88
|
method,
|
|
87
89
|
};
|
|
@@ -146,7 +148,7 @@ class RpcPeer {
|
|
|
146
148
|
localProxied = new Map();
|
|
147
149
|
localProxyMap = {};
|
|
148
150
|
remoteWeakProxies = {};
|
|
149
|
-
finalizers = new FinalizationRegistry(
|
|
151
|
+
finalizers = new FinalizationRegistry(entry => this.finalize(entry));
|
|
150
152
|
nameDeserializerMap = new Map();
|
|
151
153
|
constructorSerializerMap = new Map();
|
|
152
154
|
transportSafeArgumentTypes = getDefaultTransportSafeArgumentTypes();
|
|
@@ -182,10 +184,11 @@ class RpcPeer {
|
|
|
182
184
|
this.nameDeserializerMap.set(name, serializer);
|
|
183
185
|
this.constructorSerializerMap.set(ctr, name);
|
|
184
186
|
}
|
|
185
|
-
finalize(
|
|
186
|
-
delete this.remoteWeakProxies[id];
|
|
187
|
+
finalize(entry) {
|
|
188
|
+
delete this.remoteWeakProxies[entry.id];
|
|
187
189
|
const rpcFinalize = {
|
|
188
|
-
__local_proxy_id: id,
|
|
190
|
+
__local_proxy_id: entry.id,
|
|
191
|
+
__local_proxy_finalizer_id: entry.finalizerId,
|
|
189
192
|
type: 'finalize',
|
|
190
193
|
};
|
|
191
194
|
this.send(rpcFinalize);
|
|
@@ -230,9 +233,12 @@ class RpcPeer {
|
|
|
230
233
|
}
|
|
231
234
|
return ret;
|
|
232
235
|
}
|
|
233
|
-
const { __remote_proxy_id, __local_proxy_id, __remote_constructor_name, __serialized_value, __remote_proxy_props, __remote_proxy_oneway_methods } = value;
|
|
236
|
+
const { __remote_proxy_id, __remote_proxy_finalizer_id, __local_proxy_id, __remote_constructor_name, __serialized_value, __remote_proxy_props, __remote_proxy_oneway_methods } = value;
|
|
234
237
|
if (__remote_proxy_id) {
|
|
235
|
-
|
|
238
|
+
let proxy = this.remoteWeakProxies[__remote_proxy_id]?.deref();
|
|
239
|
+
if (!proxy)
|
|
240
|
+
proxy = this.newProxy(__remote_proxy_id, __remote_constructor_name, __remote_proxy_props, __remote_proxy_oneway_methods);
|
|
241
|
+
proxy[finalizerIdSymbol] = __remote_proxy_finalizer_id;
|
|
236
242
|
return proxy;
|
|
237
243
|
}
|
|
238
244
|
if (__local_proxy_id) {
|
|
@@ -258,10 +264,13 @@ class RpcPeer {
|
|
|
258
264
|
return value;
|
|
259
265
|
}
|
|
260
266
|
let __remote_constructor_name = value.__proxy_constructor || value.constructor?.name?.toString();
|
|
261
|
-
let
|
|
262
|
-
if (
|
|
267
|
+
let proxiedEntry = this.localProxied.get(value);
|
|
268
|
+
if (proxiedEntry) {
|
|
269
|
+
const __remote_proxy_finalizer_id = (this.proxyCounter++).toString();
|
|
270
|
+
proxiedEntry.finalizerId = __remote_proxy_finalizer_id;
|
|
263
271
|
const ret = {
|
|
264
|
-
__remote_proxy_id:
|
|
272
|
+
__remote_proxy_id: proxiedEntry.id,
|
|
273
|
+
__remote_proxy_finalizer_id,
|
|
265
274
|
__remote_constructor_name,
|
|
266
275
|
__remote_proxy_props: value?.[exports.PROPERTY_PROXY_PROPERTIES],
|
|
267
276
|
__remote_proxy_oneway_methods: value?.[exports.PROPERTY_PROXY_ONEWAY_METHODS],
|
|
@@ -282,6 +291,7 @@ class RpcPeer {
|
|
|
282
291
|
const serialized = serializer.serialize(value);
|
|
283
292
|
const ret = {
|
|
284
293
|
__remote_proxy_id: undefined,
|
|
294
|
+
__remote_proxy_finalizer_id: undefined,
|
|
285
295
|
__remote_constructor_name,
|
|
286
296
|
__remote_proxy_props: value?.[exports.PROPERTY_PROXY_PROPERTIES],
|
|
287
297
|
__remote_proxy_oneway_methods: value?.[exports.PROPERTY_PROXY_ONEWAY_METHODS],
|
|
@@ -289,11 +299,16 @@ class RpcPeer {
|
|
|
289
299
|
};
|
|
290
300
|
return ret;
|
|
291
301
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
302
|
+
const __remote_proxy_id = (this.proxyCounter++).toString();
|
|
303
|
+
proxiedEntry = {
|
|
304
|
+
id: __remote_proxy_id,
|
|
305
|
+
finalizerId: __remote_proxy_id,
|
|
306
|
+
};
|
|
307
|
+
this.localProxied.set(value, proxiedEntry);
|
|
308
|
+
this.localProxyMap[__remote_proxy_id] = value;
|
|
295
309
|
const ret = {
|
|
296
|
-
__remote_proxy_id
|
|
310
|
+
__remote_proxy_id,
|
|
311
|
+
__remote_proxy_finalizer_id: __remote_proxy_id,
|
|
297
312
|
__remote_constructor_name,
|
|
298
313
|
__remote_proxy_props: value?.[exports.PROPERTY_PROXY_PROPERTIES],
|
|
299
314
|
__remote_proxy_oneway_methods: value?.[exports.PROPERTY_PROXY_ONEWAY_METHODS],
|
|
@@ -301,12 +316,16 @@ class RpcPeer {
|
|
|
301
316
|
return ret;
|
|
302
317
|
}
|
|
303
318
|
newProxy(proxyId, proxyConstructorName, proxyProps, proxyOneWayMethods) {
|
|
304
|
-
const
|
|
319
|
+
const localProxiedEntry = {
|
|
320
|
+
id: proxyId,
|
|
321
|
+
finalizerId: undefined,
|
|
322
|
+
};
|
|
323
|
+
const rpc = new RpcProxy(this, localProxiedEntry, proxyConstructorName, proxyProps, proxyOneWayMethods);
|
|
305
324
|
const target = proxyConstructorName === 'Function' || proxyConstructorName === 'AsyncFunction' ? function () { } : rpc;
|
|
306
325
|
const proxy = new Proxy(target, rpc);
|
|
307
326
|
const weakref = new WeakRef(proxy);
|
|
308
327
|
this.remoteWeakProxies[proxyId] = weakref;
|
|
309
|
-
this.finalizers.register(rpc,
|
|
328
|
+
this.finalizers.register(rpc, localProxiedEntry);
|
|
310
329
|
global.gc?.();
|
|
311
330
|
return proxy;
|
|
312
331
|
}
|
|
@@ -377,8 +396,16 @@ class RpcPeer {
|
|
|
377
396
|
case 'finalize': {
|
|
378
397
|
const rpcFinalize = message;
|
|
379
398
|
const local = this.localProxyMap[rpcFinalize.__local_proxy_id];
|
|
380
|
-
|
|
381
|
-
|
|
399
|
+
if (local) {
|
|
400
|
+
const localProxiedEntry = this.localProxied.get(local);
|
|
401
|
+
// if a finalizer id is specified, it must match.
|
|
402
|
+
if (rpcFinalize.__local_proxy_finalizer_id && rpcFinalize.__local_proxy_finalizer_id !== localProxiedEntry?.finalizerId) {
|
|
403
|
+
console.error(this.selfName, this.peerName, 'finalizer mismatch');
|
|
404
|
+
break;
|
|
405
|
+
}
|
|
406
|
+
delete this.localProxyMap[rpcFinalize.__local_proxy_id];
|
|
407
|
+
this.localProxied.delete(local);
|
|
408
|
+
}
|
|
382
409
|
break;
|
|
383
410
|
}
|
|
384
411
|
case 'oob': {
|