@scrypted/server 0.7.92 → 0.7.93
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/package.json +1 -1
- package/dist/asynciterable-utils.d.ts +0 -2
- package/dist/asynciterable-utils.js +0 -24
- package/dist/asynciterable-utils.js.map +0 -1
- package/dist/cert.d.ts +0 -6
- package/dist/cert.js +0 -75
- package/dist/cert.js.map +0 -1
- package/dist/collection.d.ts +0 -1
- package/dist/collection.js +0 -16
- package/dist/collection.js.map +0 -1
- package/dist/db-types.d.ts +0 -38
- package/dist/db-types.js +0 -45
- package/dist/db-types.js.map +0 -1
- package/dist/event-registry.d.ts +0 -19
- package/dist/event-registry.js +0 -92
- package/dist/event-registry.js.map +0 -1
- package/dist/http-interfaces.d.ts +0 -3
- package/dist/http-interfaces.js +0 -73
- package/dist/http-interfaces.js.map +0 -1
- package/dist/infer-defaults.d.ts +0 -11
- package/dist/infer-defaults.js +0 -119
- package/dist/infer-defaults.js.map +0 -1
- package/dist/io.d.ts +0 -22
- package/dist/io.js +0 -3
- package/dist/io.js.map +0 -1
- package/dist/level.d.ts +0 -110
- package/dist/level.js +0 -135
- package/dist/level.js.map +0 -1
- package/dist/listen-zero.d.ts +0 -13
- package/dist/listen-zero.js +0 -48
- package/dist/listen-zero.js.map +0 -1
- package/dist/logger.d.ts +0 -29
- package/dist/logger.js +0 -78
- package/dist/logger.js.map +0 -1
- package/dist/media-helpers.d.ts +0 -5
- package/dist/media-helpers.js +0 -89
- package/dist/media-helpers.js.map +0 -1
- package/dist/mixin/mixin-cycle.d.ts +0 -3
- package/dist/mixin/mixin-cycle.js +0 -32
- package/dist/mixin/mixin-cycle.js.map +0 -1
- package/dist/plugin/acl.d.ts +0 -16
- package/dist/plugin/acl.js +0 -83
- package/dist/plugin/acl.js.map +0 -1
- package/dist/plugin/descriptor.d.ts +0 -22
- package/dist/plugin/descriptor.js +0 -35
- package/dist/plugin/descriptor.js.map +0 -1
- package/dist/plugin/media.d.ts +0 -71
- package/dist/plugin/media.js +0 -420
- package/dist/plugin/media.js.map +0 -1
- package/dist/plugin/mediaobject.d.ts +0 -10
- package/dist/plugin/mediaobject.js +0 -26
- package/dist/plugin/mediaobject.js.map +0 -1
- package/dist/plugin/plugin-api.d.ts +0 -106
- package/dist/plugin/plugin-api.js +0 -120
- package/dist/plugin/plugin-api.js.map +0 -1
- package/dist/plugin/plugin-console.d.ts +0 -28
- package/dist/plugin/plugin-console.js +0 -291
- package/dist/plugin/plugin-console.js.map +0 -1
- package/dist/plugin/plugin-debug.d.ts +0 -4
- package/dist/plugin/plugin-debug.js +0 -3
- package/dist/plugin/plugin-debug.js.map +0 -1
- package/dist/plugin/plugin-device.d.ts +0 -54
- package/dist/plugin/plugin-device.js +0 -413
- package/dist/plugin/plugin-device.js.map +0 -1
- package/dist/plugin/plugin-error.d.ts +0 -2
- package/dist/plugin/plugin-error.js +0 -7
- package/dist/plugin/plugin-error.js.map +0 -1
- package/dist/plugin/plugin-host-api.d.ts +0 -43
- package/dist/plugin/plugin-host-api.js +0 -177
- package/dist/plugin/plugin-host-api.js.map +0 -1
- package/dist/plugin/plugin-host.d.ts +0 -45
- package/dist/plugin/plugin-host.js +0 -398
- package/dist/plugin/plugin-host.js.map +0 -1
- package/dist/plugin/plugin-http.d.ts +0 -18
- package/dist/plugin/plugin-http.js +0 -120
- package/dist/plugin/plugin-http.js.map +0 -1
- package/dist/plugin/plugin-lazy-remote.d.ts +0 -31
- package/dist/plugin/plugin-lazy-remote.js +0 -75
- package/dist/plugin/plugin-lazy-remote.js.map +0 -1
- package/dist/plugin/plugin-npm-dependencies.d.ts +0 -8
- package/dist/plugin/plugin-npm-dependencies.js +0 -103
- package/dist/plugin/plugin-npm-dependencies.js.map +0 -1
- package/dist/plugin/plugin-remote-stats.d.ts +0 -8
- package/dist/plugin/plugin-remote-stats.js +0 -30
- package/dist/plugin/plugin-remote-stats.js.map +0 -1
- package/dist/plugin/plugin-remote-websocket.d.ts +0 -29
- package/dist/plugin/plugin-remote-websocket.js +0 -152
- package/dist/plugin/plugin-remote-websocket.js.map +0 -1
- package/dist/plugin/plugin-remote-worker.d.ts +0 -5
- package/dist/plugin/plugin-remote-worker.js +0 -348
- package/dist/plugin/plugin-remote-worker.js.map +0 -1
- package/dist/plugin/plugin-remote.d.ts +0 -75
- package/dist/plugin/plugin-remote.js +0 -598
- package/dist/plugin/plugin-remote.js.map +0 -1
- package/dist/plugin/plugin-repl.d.ts +0 -2
- package/dist/plugin/plugin-repl.js +0 -74
- package/dist/plugin/plugin-repl.js.map +0 -1
- package/dist/plugin/plugin-state-check.d.ts +0 -1
- package/dist/plugin/plugin-state-check.js +0 -27
- package/dist/plugin/plugin-state-check.js.map +0 -1
- package/dist/plugin/plugin-volume.d.ts +0 -3
- package/dist/plugin/plugin-volume.js +0 -31
- package/dist/plugin/plugin-volume.js.map +0 -1
- package/dist/plugin/runtime/child-process-worker.d.ts +0 -20
- package/dist/plugin/runtime/child-process-worker.js +0 -42
- package/dist/plugin/runtime/child-process-worker.js.map +0 -1
- package/dist/plugin/runtime/node-fork-worker.d.ts +0 -9
- package/dist/plugin/runtime/node-fork-worker.js +0 -67
- package/dist/plugin/runtime/node-fork-worker.js.map +0 -1
- package/dist/plugin/runtime/node-thread-worker.d.ts +0 -20
- package/dist/plugin/runtime/node-thread-worker.js +0 -73
- package/dist/plugin/runtime/node-thread-worker.js.map +0 -1
- package/dist/plugin/runtime/python-worker.d.ts +0 -10
- package/dist/plugin/runtime/python-worker.js +0 -91
- package/dist/plugin/runtime/python-worker.js.map +0 -1
- package/dist/plugin/runtime/runtime-worker.d.ts +0 -26
- package/dist/plugin/runtime/runtime-worker.js +0 -3
- package/dist/plugin/runtime/runtime-worker.js.map +0 -1
- package/dist/plugin/socket-serializer.d.ts +0 -5
- package/dist/plugin/socket-serializer.js +0 -17
- package/dist/plugin/socket-serializer.js.map +0 -1
- package/dist/plugin/system.d.ts +0 -39
- package/dist/plugin/system.js +0 -216
- package/dist/plugin/system.js.map +0 -1
- package/dist/rpc-buffer-serializer.d.ts +0 -11
- package/dist/rpc-buffer-serializer.js +0 -30
- package/dist/rpc-buffer-serializer.js.map +0 -1
- package/dist/rpc-serializer.d.ts +0 -24
- package/dist/rpc-serializer.js +0 -144
- package/dist/rpc-serializer.js.map +0 -1
- package/dist/rpc.d.ts +0 -147
- package/dist/rpc.js +0 -689
- package/dist/rpc.js.map +0 -1
- package/dist/runtime.d.ts +0 -103
- package/dist/runtime.js +0 -815
- package/dist/runtime.js.map +0 -1
- package/dist/scrypted-main-exports.d.ts +0 -6
- package/dist/scrypted-main-exports.js +0 -57
- package/dist/scrypted-main-exports.js.map +0 -1
- package/dist/scrypted-main.d.ts +0 -1
- package/dist/scrypted-main.js +0 -8
- package/dist/scrypted-main.js.map +0 -1
- package/dist/scrypted-plugin-main.d.ts +0 -2
- package/dist/scrypted-plugin-main.js +0 -43
- package/dist/scrypted-plugin-main.js.map +0 -1
- package/dist/scrypted-server-main.d.ts +0 -6
- package/dist/scrypted-server-main.js +0 -559
- package/dist/scrypted-server-main.js.map +0 -1
- package/dist/server-settings.d.ts +0 -5
- package/dist/server-settings.js +0 -91
- package/dist/server-settings.js.map +0 -1
- package/dist/services/addresses.d.ts +0 -7
- package/dist/services/addresses.js +0 -41
- package/dist/services/addresses.js.map +0 -1
- package/dist/services/alerts.d.ts +0 -9
- package/dist/services/alerts.js +0 -27
- package/dist/services/alerts.js.map +0 -1
- package/dist/services/cors.d.ts +0 -18
- package/dist/services/cors.js +0 -18
- package/dist/services/cors.js.map +0 -1
- package/dist/services/info.d.ts +0 -5
- package/dist/services/info.js +0 -18
- package/dist/services/info.js.map +0 -1
- package/dist/services/plugin.d.ts +0 -46
- package/dist/services/plugin.js +0 -172
- package/dist/services/plugin.js.map +0 -1
- package/dist/services/service-control.d.ts +0 -8
- package/dist/services/service-control.js +0 -39
- package/dist/services/service-control.js.map +0 -1
- package/dist/services/users.d.ts +0 -19
- package/dist/services/users.js +0 -75
- package/dist/services/users.js.map +0 -1
- package/dist/sleep.d.ts +0 -1
- package/dist/sleep.js +0 -8
- package/dist/sleep.js.map +0 -1
- package/dist/state.d.ts +0 -39
- package/dist/state.js +0 -247
- package/dist/state.js.map +0 -1
- package/dist/threading.d.ts +0 -3
- package/dist/threading.js +0 -93
- package/dist/threading.js.map +0 -1
- package/dist/usertoken.d.ts +0 -11
- package/dist/usertoken.js +0 -52
- package/dist/usertoken.js.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"plugin-debug.js","sourceRoot":"","sources":["../../src/plugin/plugin-debug.ts"],"names":[],"mappings":""}
|
@@ -1,54 +0,0 @@
|
|
1
|
-
import { EventListener, EventListenerOptions, EventListenerRegister, ScryptedDevice, ScryptedDeviceType } from "@scrypted/types";
|
2
|
-
import { PluginDevice } from "../db-types";
|
3
|
-
import { PrimitiveProxyHandler } from "../rpc";
|
4
|
-
import { ScryptedRuntime } from "../runtime";
|
5
|
-
interface MixinTable {
|
6
|
-
mixinProviderId: string;
|
7
|
-
entry: Promise<MixinTableEntry>;
|
8
|
-
}
|
9
|
-
interface MixinTableEntry {
|
10
|
-
interfaces: Set<string>;
|
11
|
-
methods?: Set<string>;
|
12
|
-
allInterfaces: string[];
|
13
|
-
proxy: any;
|
14
|
-
error?: Error;
|
15
|
-
passthrough: boolean;
|
16
|
-
}
|
17
|
-
export declare const RefreshSymbol: unique symbol;
|
18
|
-
export declare const QueryInterfaceSymbol: unique symbol;
|
19
|
-
export declare class PluginDeviceProxyHandler implements PrimitiveProxyHandler<any>, ScryptedDevice {
|
20
|
-
scrypted: ScryptedRuntime;
|
21
|
-
id: string;
|
22
|
-
mixinTable: MixinTable[];
|
23
|
-
releasing: Set<any>;
|
24
|
-
static sortInterfaces(interfaces: string[]): string[];
|
25
|
-
constructor(scrypted: ScryptedRuntime, id: string);
|
26
|
-
toPrimitive(): string;
|
27
|
-
invalidateEntry(mixinEntry: MixinTable): void;
|
28
|
-
getMixinProviderId(id: string, mixinDevice: any): Promise<string | true>;
|
29
|
-
invalidate(): void;
|
30
|
-
/**
|
31
|
-
* Rebuild the mixin table with any currently missing mixins.
|
32
|
-
*/
|
33
|
-
rebuildMixinTable(): void;
|
34
|
-
ensureProxy(lastValidMixinId?: string): Promise<PluginDevice>;
|
35
|
-
rebuildEntry(pluginDevice: PluginDevice, mixinId: string, wrappedMixinTablePromise: Promise<MixinTable[]>): Promise<MixinTableEntry>;
|
36
|
-
get(target: any, p: PropertyKey, receiver: any): any;
|
37
|
-
listen(event: string | EventListenerOptions, callback: EventListener): EventListenerRegister;
|
38
|
-
setName(name: string): Promise<void>;
|
39
|
-
setRoom(room: string): Promise<void>;
|
40
|
-
setType(type: ScryptedDeviceType): Promise<void>;
|
41
|
-
setMixins(mixins: string[]): Promise<void>;
|
42
|
-
probe(): Promise<boolean>;
|
43
|
-
applyMixin(method: string, argArray?: any): Promise<any>;
|
44
|
-
findMethod(method: string): Promise<{
|
45
|
-
mixin: MixinTable;
|
46
|
-
entry: MixinTableEntry;
|
47
|
-
}>;
|
48
|
-
findMixin(iface: string): Promise<{
|
49
|
-
mixin: MixinTable;
|
50
|
-
entry: MixinTableEntry;
|
51
|
-
}>;
|
52
|
-
apply(target: any, thisArg: any, argArray?: any): Promise<any>;
|
53
|
-
}
|
54
|
-
export {};
|
@@ -1,413 +0,0 @@
|
|
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.PluginDeviceProxyHandler = exports.QueryInterfaceSymbol = exports.RefreshSymbol = void 0;
|
7
|
-
const types_1 = require("@scrypted/types");
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
9
|
-
const path_1 = __importDefault(require("path"));
|
10
|
-
const infer_defaults_1 = require("../infer-defaults");
|
11
|
-
const rpc_1 = require("../rpc");
|
12
|
-
const sleep_1 = require("../sleep");
|
13
|
-
const state_1 = require("../state");
|
14
|
-
const descriptor_1 = require("./descriptor");
|
15
|
-
const plugin_error_1 = require("./plugin-error");
|
16
|
-
exports.RefreshSymbol = Symbol('ScryptedDeviceRefresh');
|
17
|
-
exports.QueryInterfaceSymbol = Symbol("ScryptedPluginDeviceQueryInterface");
|
18
|
-
class PluginDeviceProxyHandler {
|
19
|
-
scrypted;
|
20
|
-
id;
|
21
|
-
mixinTable;
|
22
|
-
releasing = new Set();
|
23
|
-
static sortInterfaces(interfaces) {
|
24
|
-
return [...new Set(interfaces || [])].sort();
|
25
|
-
}
|
26
|
-
constructor(scrypted, id) {
|
27
|
-
this.scrypted = scrypted;
|
28
|
-
this.id = id;
|
29
|
-
}
|
30
|
-
toPrimitive() {
|
31
|
-
return `PluginDevice-${this.id}`;
|
32
|
-
}
|
33
|
-
invalidateEntry(mixinEntry) {
|
34
|
-
if (!mixinEntry?.mixinProviderId)
|
35
|
-
return;
|
36
|
-
(async () => {
|
37
|
-
const mixinProvider = this.scrypted.getDevice(mixinEntry.mixinProviderId);
|
38
|
-
const { proxy } = await mixinEntry.entry;
|
39
|
-
// allow mixins in the process of being released to manage final
|
40
|
-
// events, etc, before teardown.
|
41
|
-
this.releasing.add(proxy);
|
42
|
-
mixinProvider?.releaseMixin(this.id, proxy).catch(() => { });
|
43
|
-
await (0, sleep_1.sleep)(1000);
|
44
|
-
this.releasing.delete(proxy);
|
45
|
-
})().catch(() => { });
|
46
|
-
}
|
47
|
-
async getMixinProviderId(id, mixinDevice) {
|
48
|
-
if (this.releasing.has(mixinDevice))
|
49
|
-
return true;
|
50
|
-
await this.scrypted.devices[id].handler.ensureProxy();
|
51
|
-
for (const mixin of this.scrypted.devices[id].handler.mixinTable) {
|
52
|
-
const { proxy } = await mixin.entry;
|
53
|
-
if (proxy === mixinDevice) {
|
54
|
-
return mixin.mixinProviderId || id;
|
55
|
-
}
|
56
|
-
}
|
57
|
-
return undefined;
|
58
|
-
}
|
59
|
-
// should this be async?
|
60
|
-
invalidate() {
|
61
|
-
const mixinTable = this.mixinTable;
|
62
|
-
this.mixinTable = undefined;
|
63
|
-
for (const mixinEntry of (mixinTable || [])) {
|
64
|
-
this.invalidateEntry(mixinEntry);
|
65
|
-
}
|
66
|
-
}
|
67
|
-
/**
|
68
|
-
* Rebuild the mixin table with any currently missing mixins.
|
69
|
-
*/
|
70
|
-
rebuildMixinTable() {
|
71
|
-
if (!this.mixinTable)
|
72
|
-
return this.invalidate();
|
73
|
-
let previousMixinIds = this.mixinTable?.map(entry => entry.mixinProviderId) || [];
|
74
|
-
previousMixinIds.pop();
|
75
|
-
previousMixinIds = previousMixinIds.reverse();
|
76
|
-
const pluginDevice = this.scrypted.findPluginDeviceById(this.id);
|
77
|
-
if (!pluginDevice)
|
78
|
-
return this.invalidate();
|
79
|
-
const mixins = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.mixins) || [];
|
80
|
-
// iterate the new mixin table to find the last good mixin,
|
81
|
-
// and resume creation from there.
|
82
|
-
let lastValidMixinId;
|
83
|
-
for (const mixinId of mixins) {
|
84
|
-
if (!previousMixinIds.length) {
|
85
|
-
// reached of the previous mixin table, meaning
|
86
|
-
// mixins were added.
|
87
|
-
break;
|
88
|
-
}
|
89
|
-
const check = previousMixinIds.shift();
|
90
|
-
if (check !== mixinId)
|
91
|
-
break;
|
92
|
-
lastValidMixinId = mixinId;
|
93
|
-
}
|
94
|
-
if (!lastValidMixinId)
|
95
|
-
return this.invalidate();
|
96
|
-
// invalidate and remove everything up to lastValidMixinId
|
97
|
-
while (true) {
|
98
|
-
const entry = this.mixinTable[0];
|
99
|
-
if (entry.mixinProviderId === lastValidMixinId)
|
100
|
-
break;
|
101
|
-
this.mixinTable.shift();
|
102
|
-
this.invalidateEntry(entry);
|
103
|
-
console.log('invalidating mixin', this.id, entry.mixinProviderId);
|
104
|
-
}
|
105
|
-
this.ensureProxy(lastValidMixinId);
|
106
|
-
}
|
107
|
-
// this must not be async, because it potentially changes execution order.
|
108
|
-
ensureProxy(lastValidMixinId) {
|
109
|
-
const pluginDevice = this.scrypted.findPluginDeviceById(this.id);
|
110
|
-
if (!pluginDevice)
|
111
|
-
throw new plugin_error_1.PluginError(`device ${this.id} does not exist`);
|
112
|
-
if (!lastValidMixinId) {
|
113
|
-
if (this.mixinTable)
|
114
|
-
return Promise.resolve(pluginDevice);
|
115
|
-
this.mixinTable = [];
|
116
|
-
const entry = (async () => {
|
117
|
-
let proxy;
|
118
|
-
try {
|
119
|
-
if (!pluginDevice.nativeId) {
|
120
|
-
const plugin = this.scrypted.plugins[pluginDevice.pluginId];
|
121
|
-
proxy = await plugin.module;
|
122
|
-
}
|
123
|
-
else {
|
124
|
-
const providerId = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.providerId);
|
125
|
-
const provider = this.scrypted.getDevice(providerId);
|
126
|
-
proxy = await provider.getDevice(pluginDevice.nativeId);
|
127
|
-
}
|
128
|
-
if (!proxy)
|
129
|
-
console.warn('no device was returned by the plugin', this.id);
|
130
|
-
}
|
131
|
-
catch (e) {
|
132
|
-
console.error('error occured retrieving device from plugin', e);
|
133
|
-
}
|
134
|
-
const interfaces = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.providedInterfaces) || [];
|
135
|
-
return {
|
136
|
-
passthrough: false,
|
137
|
-
proxy,
|
138
|
-
interfaces: new Set(interfaces),
|
139
|
-
allInterfaces: interfaces,
|
140
|
-
};
|
141
|
-
})();
|
142
|
-
this.mixinTable.unshift({
|
143
|
-
mixinProviderId: undefined,
|
144
|
-
entry,
|
145
|
-
});
|
146
|
-
}
|
147
|
-
else {
|
148
|
-
if (!this.mixinTable)
|
149
|
-
throw new plugin_error_1.PluginError('mixin table partial invalidation was called with empty mixin table');
|
150
|
-
const prevTable = this.mixinTable.find(table => table.mixinProviderId === lastValidMixinId);
|
151
|
-
if (!prevTable)
|
152
|
-
throw new plugin_error_1.PluginError('mixin table partial invalidation was called with invalid lastValidMixinId');
|
153
|
-
}
|
154
|
-
for (const mixinId of (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.mixins) || []) {
|
155
|
-
if (lastValidMixinId) {
|
156
|
-
if (mixinId === lastValidMixinId)
|
157
|
-
lastValidMixinId = undefined;
|
158
|
-
continue;
|
159
|
-
}
|
160
|
-
const wrappedMixinTable = this.mixinTable.slice();
|
161
|
-
const entry = this.rebuildEntry(pluginDevice, mixinId, Promise.resolve(wrappedMixinTable));
|
162
|
-
this.mixinTable.unshift({
|
163
|
-
mixinProviderId: mixinId,
|
164
|
-
entry,
|
165
|
-
});
|
166
|
-
}
|
167
|
-
return this.mixinTable[0].entry.then(entry => {
|
168
|
-
if (entry.error) {
|
169
|
-
console.error('Mixin device creation completed with error. Merging with previous interface set to retain device descriptor.');
|
170
|
-
const previousInterfaces = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.interfaces) || [];
|
171
|
-
const allInterfaces = new Set([...entry.allInterfaces, ...previousInterfaces]);
|
172
|
-
entry.allInterfaces = [...allInterfaces];
|
173
|
-
}
|
174
|
-
const changed = this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.interfaces, PluginDeviceProxyHandler.sortInterfaces(entry.allInterfaces));
|
175
|
-
if (changed)
|
176
|
-
this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
|
177
|
-
return pluginDevice;
|
178
|
-
});
|
179
|
-
}
|
180
|
-
async rebuildEntry(pluginDevice, mixinId, wrappedMixinTablePromise) {
|
181
|
-
const wrappedMixinTable = await wrappedMixinTablePromise;
|
182
|
-
const previousEntry = wrappedMixinTable[0].entry;
|
183
|
-
const type = (0, infer_defaults_1.getDisplayType)(pluginDevice);
|
184
|
-
let { allInterfaces, error } = await previousEntry;
|
185
|
-
try {
|
186
|
-
const mixinProvider = this.scrypted.getDevice(mixinId);
|
187
|
-
const isMixinProvider = mixinProvider?.interfaces?.includes(types_1.ScryptedInterface.MixinProvider);
|
188
|
-
const interfaces = isMixinProvider && await mixinProvider?.canMixin(type, allInterfaces);
|
189
|
-
if (!interfaces) {
|
190
|
-
console.log(`Mixin provider ${mixinId} can no longer mixin ${this.id}.`, {
|
191
|
-
mixinProvider: !!mixinProvider,
|
192
|
-
interfaces,
|
193
|
-
});
|
194
|
-
if (!error) {
|
195
|
-
if (!mixinProvider || (isMixinProvider && !interfaces)) {
|
196
|
-
const mixins = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.mixins) || [];
|
197
|
-
this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.mixins, mixins.filter(mid => mid !== mixinId));
|
198
|
-
this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
|
199
|
-
this.scrypted.datastore.upsert(pluginDevice);
|
200
|
-
}
|
201
|
-
else {
|
202
|
-
console.log(`Mixin provider ${mixinId} can not mixin ${this.id}. It is no longer a MixinProvider. This may be temporary. Passing through.`);
|
203
|
-
}
|
204
|
-
}
|
205
|
-
else {
|
206
|
-
console.error(`Error encountered in previous mixin entry may have caused mixin error. Ignoring.`);
|
207
|
-
}
|
208
|
-
// this is not an error
|
209
|
-
// do not advertise interfaces so it is skipped during
|
210
|
-
// vtable lookup.
|
211
|
-
return {
|
212
|
-
error,
|
213
|
-
passthrough: true,
|
214
|
-
allInterfaces,
|
215
|
-
interfaces: new Set(),
|
216
|
-
proxy: undefined,
|
217
|
-
};
|
218
|
-
}
|
219
|
-
const previousInterfaces = allInterfaces;
|
220
|
-
allInterfaces = previousInterfaces.slice();
|
221
|
-
allInterfaces.push(...interfaces);
|
222
|
-
const combinedInterfaces = [...new Set(allInterfaces)];
|
223
|
-
const wrappedHandler = new PluginDeviceProxyHandler(this.scrypted, this.id);
|
224
|
-
wrappedHandler.mixinTable = wrappedMixinTable;
|
225
|
-
const wrappedProxy = new Proxy(wrappedHandler, wrappedHandler);
|
226
|
-
const implementer = await mixinProvider[exports.QueryInterfaceSymbol](types_1.ScryptedInterface.MixinProvider);
|
227
|
-
const host = this.scrypted.getPluginHostForDeviceId(implementer);
|
228
|
-
const propertyInterfaces = (0, descriptor_1.getPropertyInterfaces)(host.api.descriptors || types_1.ScryptedInterfaceDescriptors);
|
229
|
-
// todo: remove this and pass the setter directly.
|
230
|
-
const deviceState = await host.remote.createDeviceState(this.id, async (property, value) => this.scrypted.stateManager.setPluginDeviceStateFromMixin(pluginDevice, property, value, propertyInterfaces[property], mixinId));
|
231
|
-
const mixinProxy = await mixinProvider.getMixin(wrappedProxy, previousInterfaces, deviceState);
|
232
|
-
if (!mixinProxy)
|
233
|
-
throw new plugin_error_1.PluginError(`mixin provider ${mixinId} did not return mixin for ${this.id}`);
|
234
|
-
// mixin is a passthrough of no interfaces changed, and the proxy is the same
|
235
|
-
// a mixin can be a passthrough even if it implements an interface (like Settings),
|
236
|
-
// so long as the wrapped proxy also implements that interface.
|
237
|
-
// techically it is a passthrough if the proxies are the same instance, but
|
238
|
-
// better to be explicit here about interface differences.
|
239
|
-
const passthrough = wrappedProxy === mixinProxy && previousInterfaces.length === combinedInterfaces.length;
|
240
|
-
return {
|
241
|
-
error,
|
242
|
-
passthrough,
|
243
|
-
interfaces: new Set(interfaces),
|
244
|
-
allInterfaces: combinedInterfaces,
|
245
|
-
proxy: mixinProxy,
|
246
|
-
};
|
247
|
-
}
|
248
|
-
catch (e) {
|
249
|
-
// on any error, do not advertise interfaces
|
250
|
-
// on this mixin, so as to prevent total failure?
|
251
|
-
// this has been the behavior for a while,
|
252
|
-
// but maybe interfaces implemented by that mixin
|
253
|
-
// should rethrow the error caught here in applyMixin.
|
254
|
-
console.error('Mixin error', e);
|
255
|
-
return {
|
256
|
-
passthrough: false,
|
257
|
-
allInterfaces,
|
258
|
-
interfaces: new Set(),
|
259
|
-
error: e,
|
260
|
-
proxy: undefined,
|
261
|
-
};
|
262
|
-
}
|
263
|
-
}
|
264
|
-
get(target, p, receiver) {
|
265
|
-
if (rpc_1.RpcPeer.PROBED_PROPERTIES.has(p))
|
266
|
-
return;
|
267
|
-
const handled = rpc_1.RpcPeer.handleFunctionInvocations(this, target, p, receiver);
|
268
|
-
if (handled)
|
269
|
-
return handled;
|
270
|
-
const pluginDevice = this.scrypted.findPluginDeviceById(this.id);
|
271
|
-
// device may be deleted.
|
272
|
-
if (!pluginDevice)
|
273
|
-
return;
|
274
|
-
const prop = p.toString();
|
275
|
-
if (descriptor_1.allInterfaceProperties.includes(prop))
|
276
|
-
return (0, state_1.getState)(pluginDevice, prop);
|
277
|
-
if (p === exports.RefreshSymbol || p === exports.QueryInterfaceSymbol)
|
278
|
-
return new Proxy(() => p, this);
|
279
|
-
if (types_1.ScryptedInterfaceDescriptors[types_1.ScryptedInterface.ScryptedDevice].methods.includes(prop))
|
280
|
-
return this[p].bind(this);
|
281
|
-
return new Proxy(() => prop, this);
|
282
|
-
}
|
283
|
-
listen(event, callback) {
|
284
|
-
return this.scrypted.stateManager.listenDevice(this.id, event, (eventDetails, eventData) => callback(this.scrypted.getDevice(this.id), eventDetails, eventData));
|
285
|
-
}
|
286
|
-
async setName(name) {
|
287
|
-
const device = this.scrypted.findPluginDeviceById(this.id);
|
288
|
-
this.scrypted.stateManager.setPluginDeviceState(device, types_1.ScryptedInterfaceProperty.name, name);
|
289
|
-
this.scrypted.stateManager.updateDescriptor(device);
|
290
|
-
}
|
291
|
-
async setRoom(room) {
|
292
|
-
const device = this.scrypted.findPluginDeviceById(this.id);
|
293
|
-
this.scrypted.stateManager.setPluginDeviceState(device, types_1.ScryptedInterfaceProperty.room, room);
|
294
|
-
this.scrypted.stateManager.updateDescriptor(device);
|
295
|
-
}
|
296
|
-
async setType(type) {
|
297
|
-
const device = this.scrypted.findPluginDeviceById(this.id);
|
298
|
-
this.scrypted.stateManager.setPluginDeviceState(device, types_1.ScryptedInterfaceProperty.type, type);
|
299
|
-
this.scrypted.stateManager.updateDescriptor(device);
|
300
|
-
}
|
301
|
-
async setMixins(mixins) {
|
302
|
-
}
|
303
|
-
async probe() {
|
304
|
-
try {
|
305
|
-
await this.ensureProxy();
|
306
|
-
return true;
|
307
|
-
}
|
308
|
-
catch (e) {
|
309
|
-
return false;
|
310
|
-
}
|
311
|
-
}
|
312
|
-
async applyMixin(method, argArray) {
|
313
|
-
const found = await this.findMethod(method);
|
314
|
-
if (found) {
|
315
|
-
const { mixin, entry } = found;
|
316
|
-
const { proxy } = entry;
|
317
|
-
if (!proxy)
|
318
|
-
throw new plugin_error_1.PluginError(`device is unavailable ${this.id} (mixin ${mixin.mixinProviderId})`);
|
319
|
-
return proxy[method](...argArray);
|
320
|
-
}
|
321
|
-
throw new plugin_error_1.PluginError(`${method} not implemented`);
|
322
|
-
}
|
323
|
-
async findMethod(method) {
|
324
|
-
for (const mixin of this.mixinTable) {
|
325
|
-
const entry = await mixin.entry;
|
326
|
-
if (!entry.methods) {
|
327
|
-
if (entry.interfaces.size) {
|
328
|
-
const pluginDevice = this.scrypted.findPluginDeviceById(mixin.mixinProviderId || this.id);
|
329
|
-
const plugin = this.scrypted.plugins[pluginDevice.pluginId];
|
330
|
-
let methods = new Set((0, descriptor_1.getInterfaceMethods)(types_1.ScryptedInterfaceDescriptors, entry.interfaces));
|
331
|
-
if (plugin?.api.descriptors)
|
332
|
-
methods = new Set([...methods, ...(0, descriptor_1.getInterfaceMethods)(plugin.api.descriptors, entry.interfaces)]);
|
333
|
-
entry.methods = methods;
|
334
|
-
}
|
335
|
-
else {
|
336
|
-
entry.methods = new Set();
|
337
|
-
}
|
338
|
-
}
|
339
|
-
if (entry.methods.has(method)) {
|
340
|
-
return { mixin, entry };
|
341
|
-
}
|
342
|
-
}
|
343
|
-
}
|
344
|
-
async findMixin(iface) {
|
345
|
-
for (const mixin of this.mixinTable) {
|
346
|
-
const entry = await mixin.entry;
|
347
|
-
const { interfaces } = entry;
|
348
|
-
if (interfaces.has(iface)) {
|
349
|
-
return { mixin, entry };
|
350
|
-
}
|
351
|
-
}
|
352
|
-
}
|
353
|
-
async apply(target, thisArg, argArray) {
|
354
|
-
const method = target();
|
355
|
-
const { activeRpcPeer } = rpc_1.RpcPeer;
|
356
|
-
const acl = activeRpcPeer?.tags?.acl;
|
357
|
-
if (acl?.shouldRejectMethod(this.id, method))
|
358
|
-
acl.deny();
|
359
|
-
this.ensureProxy();
|
360
|
-
const pluginDevice = this.scrypted.findPluginDeviceById(this.id);
|
361
|
-
if (method === exports.RefreshSymbol)
|
362
|
-
return this.applyMixin('refresh', argArray);
|
363
|
-
if (method === exports.QueryInterfaceSymbol) {
|
364
|
-
const iface = argArray[0];
|
365
|
-
if (iface === types_1.ScryptedInterface.ScryptedDevice)
|
366
|
-
return this.id;
|
367
|
-
const found = await this.findMixin(iface);
|
368
|
-
if (found?.entry.interfaces.has(iface)) {
|
369
|
-
return found.mixin.mixinProviderId || this.id;
|
370
|
-
}
|
371
|
-
throw new plugin_error_1.PluginError(`${iface} not implemented`);
|
372
|
-
}
|
373
|
-
if (method === 'getReadmeMarkdown') {
|
374
|
-
const pluginDevice = this.scrypted.findPluginDeviceById(this.id);
|
375
|
-
if (pluginDevice && !pluginDevice.nativeId) {
|
376
|
-
const plugin = this.scrypted.plugins[pluginDevice.pluginId];
|
377
|
-
if (!plugin.packageJson.scrypted.interfaces.includes(types_1.ScryptedInterface.Readme)) {
|
378
|
-
const readmePath = path_1.default.join(plugin.unzippedPath, 'README.md');
|
379
|
-
if (fs_1.default.existsSync(readmePath)) {
|
380
|
-
try {
|
381
|
-
return fs_1.default.readFileSync(readmePath).toString();
|
382
|
-
}
|
383
|
-
catch (e) {
|
384
|
-
return "# Error loading Readme:\n\n" + e;
|
385
|
-
}
|
386
|
-
}
|
387
|
-
}
|
388
|
-
}
|
389
|
-
}
|
390
|
-
if (method === 'getPluginJson'
|
391
|
-
&& (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.providedInterfaces)?.includes(types_1.ScryptedInterface.ScryptedPlugin)) {
|
392
|
-
return this.scrypted.getPackageJson(pluginDevice.pluginId);
|
393
|
-
}
|
394
|
-
if (method === 'refresh') {
|
395
|
-
const refreshInterface = argArray[0];
|
396
|
-
const userInitiated = argArray[1];
|
397
|
-
return this.scrypted.stateManager.refresh(this.id, refreshInterface, userInitiated);
|
398
|
-
}
|
399
|
-
if (method === 'createDevice') {
|
400
|
-
const idOrNativeId = await this.applyMixin(method, argArray);
|
401
|
-
// TODO: 2/17/2023 deprecate this old code path
|
402
|
-
let newDevice = this.scrypted.findPluginDevice(pluginDevice.pluginId, idOrNativeId);
|
403
|
-
if (newDevice) {
|
404
|
-
console.warn(`${pluginDevice.pluginId} is returning legacy nativeId value from createDevice.`);
|
405
|
-
return newDevice._id;
|
406
|
-
}
|
407
|
-
return idOrNativeId;
|
408
|
-
}
|
409
|
-
return this.applyMixin(method, argArray);
|
410
|
-
}
|
411
|
-
}
|
412
|
-
exports.PluginDeviceProxyHandler = PluginDeviceProxyHandler;
|
413
|
-
//# sourceMappingURL=plugin-device.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"plugin-device.js","sourceRoot":"","sources":["../../src/plugin/plugin-device.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"plugin-error.js","sourceRoot":"","sources":["../../src/plugin/plugin-error.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAY,SAAQ,KAAK;CACrC;AADD,kCACC"}
|
@@ -1,43 +0,0 @@
|
|
1
|
-
/// <reference types="lodash" />
|
2
|
-
import { Device, DeviceManifest, EventDetails, EventListenerOptions, EventListenerRegister, MediaManager, ScryptedDevice, ScryptedInterfaceDescriptor, ScryptedInterfaceProperty, ScryptedNativeId } from '@scrypted/types';
|
3
|
-
import { Logger } from '../logger';
|
4
|
-
import { RpcPeer } from '../rpc';
|
5
|
-
import { ScryptedRuntime } from '../runtime';
|
6
|
-
import { getPropertyInterfaces } from './descriptor';
|
7
|
-
import { PluginAPI, PluginAPIManagedListeners } from './plugin-api';
|
8
|
-
import { PluginHost } from './plugin-host';
|
9
|
-
export declare class PluginHostAPI extends PluginAPIManagedListeners implements PluginAPI {
|
10
|
-
scrypted: ScryptedRuntime;
|
11
|
-
pluginHost: PluginHost;
|
12
|
-
mediaManager: MediaManager;
|
13
|
-
pluginId: string;
|
14
|
-
typesVersion: string;
|
15
|
-
descriptors: {
|
16
|
-
[scryptedInterface: string]: ScryptedInterfaceDescriptor;
|
17
|
-
};
|
18
|
-
propertyInterfaces: ReturnType<typeof getPropertyInterfaces>;
|
19
|
-
[RpcPeer.PROPERTY_PROXY_ONEWAY_METHODS]: string[];
|
20
|
-
restartDebounced: import("lodash").DebouncedFunc<() => Promise<void>>;
|
21
|
-
constructor(scrypted: ScryptedRuntime, pluginId: string, pluginHost: PluginHost, mediaManager: MediaManager);
|
22
|
-
onMixinEvent(id: string, nativeIdOrMixinDevice: ScryptedNativeId | any, eventInterface: string, eventData?: any): Promise<void>;
|
23
|
-
getMediaManager(): Promise<MediaManager>;
|
24
|
-
getLogger(nativeId: ScryptedNativeId): Promise<Logger>;
|
25
|
-
getComponent(id: string): Promise<any>;
|
26
|
-
setDeviceProperty(id: string, property: ScryptedInterfaceProperty, value: any): Promise<void>;
|
27
|
-
setState(nativeId: ScryptedNativeId, key: string, value: any): Promise<void>;
|
28
|
-
setStorage(nativeId: ScryptedNativeId, storage: {
|
29
|
-
[key: string]: string;
|
30
|
-
}): Promise<void>;
|
31
|
-
onDevicesChanged(deviceManifest: DeviceManifest): Promise<void>;
|
32
|
-
onDeviceDiscovered(device: Device): Promise<string>;
|
33
|
-
onDeviceRemoved(nativeId: string): Promise<void>;
|
34
|
-
onDeviceEvent(nativeId: any, eventInterface: any, eventData?: any): Promise<void>;
|
35
|
-
getDeviceById<T>(id: string): Promise<T & ScryptedDevice>;
|
36
|
-
listen(callback: (id: string, eventDetails: EventDetails, eventData: any) => void): Promise<EventListenerRegister>;
|
37
|
-
listenDevice(id: string, event: string | EventListenerOptions, callback: (eventDetails: EventDetails, eventData: any) => void): Promise<EventListenerRegister>;
|
38
|
-
removeDevice(id: string): Promise<void>;
|
39
|
-
requestRestart(): Promise<void>;
|
40
|
-
setScryptedInterfaceDescriptors(typesVersion: string, descriptors: {
|
41
|
-
[scryptedInterface: string]: ScryptedInterfaceDescriptor;
|
42
|
-
}): Promise<void>;
|
43
|
-
}
|