@scrypted/server 0.5.5 → 0.5.7

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.

@@ -165,9 +165,24 @@ class PluginDeviceProxyHandler {
165
165
  });
166
166
  }
167
167
  return this.mixinTable[0].entry.then(entry => {
168
- const changed = this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.interfaces, PluginDeviceProxyHandler.sortInterfaces(entry.allInterfaces));
169
- if (changed)
170
- this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
168
+ let persist = !entry.error;
169
+ if (entry.error) {
170
+ console.error('Mixin device creation completed with error.');
171
+ const allInterfaces = new Set(entry.allInterfaces);
172
+ const previousInterfaces = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.interfaces) || [];
173
+ let containsAll = true;
174
+ while (containsAll && previousInterfaces.length) {
175
+ containsAll &&= allInterfaces.has(previousInterfaces.pop());
176
+ }
177
+ persist = containsAll;
178
+ if (persist)
179
+ console.log('Mixin device completed with interface same set or super set of previous set. Persisting.');
180
+ }
181
+ if (persist) {
182
+ const changed = this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.interfaces, PluginDeviceProxyHandler.sortInterfaces(entry.allInterfaces));
183
+ if (changed)
184
+ this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
185
+ }
171
186
  return pluginDevice;
172
187
  });
173
188
  }
@@ -175,29 +190,35 @@ class PluginDeviceProxyHandler {
175
190
  const wrappedMixinTable = await wrappedMixinTablePromise;
176
191
  const previousEntry = wrappedMixinTable[0].entry;
177
192
  const type = (0, infer_defaults_1.getDisplayType)(pluginDevice);
178
- let { allInterfaces } = await previousEntry;
193
+ let { allInterfaces, error } = await previousEntry;
179
194
  try {
180
195
  const mixinProvider = this.scrypted.getDevice(mixinId);
181
196
  const isMixinProvider = mixinProvider?.interfaces?.includes(types_1.ScryptedInterface.MixinProvider);
182
197
  const interfaces = isMixinProvider && await mixinProvider?.canMixin(type, allInterfaces);
183
198
  if (!interfaces) {
184
- // this is not an error
185
- // do not advertise interfaces so it is skipped during
186
- // vtable lookup.
187
- if (!mixinProvider || (isMixinProvider && !interfaces)) {
188
- console.log(`Mixin provider ${mixinId} can no longer mixin ${this.id}. Removing.`, {
189
- mixinProvider: !!mixinProvider,
190
- interfaces,
191
- });
192
- const mixins = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.mixins) || [];
193
- this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.mixins, mixins.filter(mid => mid !== mixinId));
194
- this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
195
- this.scrypted.datastore.upsert(pluginDevice);
199
+ console.log(`Mixin provider ${mixinId} can no longer mixin ${this.id}.`, {
200
+ mixinProvider: !!mixinProvider,
201
+ interfaces,
202
+ });
203
+ if (!error) {
204
+ if (!mixinProvider || (isMixinProvider && !interfaces)) {
205
+ const mixins = (0, state_1.getState)(pluginDevice, types_1.ScryptedInterfaceProperty.mixins) || [];
206
+ this.scrypted.stateManager.setPluginDeviceState(pluginDevice, types_1.ScryptedInterfaceProperty.mixins, mixins.filter(mid => mid !== mixinId));
207
+ this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
208
+ this.scrypted.datastore.upsert(pluginDevice);
209
+ }
210
+ else {
211
+ console.log(`Mixin provider ${mixinId} can not mixin ${this.id}. It is no longer a MixinProvider. This may be temporary. Passing through.`);
212
+ }
196
213
  }
197
214
  else {
198
- console.log(`Mixin provider ${mixinId} can not mixin ${this.id}. It is no longer a MixinProvider. This may be temporary. Passing through.`);
215
+ console.error(`Error encountered in previous mixin entry may have caused mixin error. Ignoring.`);
199
216
  }
217
+ // this is not an error
218
+ // do not advertise interfaces so it is skipped during
219
+ // vtable lookup.
200
220
  return {
221
+ error,
201
222
  passthrough: true,
202
223
  allInterfaces,
203
224
  interfaces: new Set(),
@@ -226,6 +247,7 @@ class PluginDeviceProxyHandler {
226
247
  // better to be explicit here about interface differences.
227
248
  const passthrough = wrappedProxy === mixinProxy && previousInterfaces.length === combinedInterfaces.length;
228
249
  return {
250
+ error,
229
251
  passthrough,
230
252
  interfaces: new Set(interfaces),
231
253
  allInterfaces: combinedInterfaces,
@@ -238,7 +260,7 @@ class PluginDeviceProxyHandler {
238
260
  // this has been the behavior for a while,
239
261
  // but maybe interfaces implemented by that mixin
240
262
  // should rethrow the error caught here in applyMixin.
241
- console.warn('mixin error', e);
263
+ console.error('Mixin error', e);
242
264
  return {
243
265
  passthrough: false,
244
266
  allInterfaces,
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-device.js","sourceRoot":"","sources":["../../src/plugin/plugin-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-device.js","sourceRoot":"","sources":["../../src/plugin/plugin-device.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrypted/server",
3
- "version": "0.5.5",
3
+ "version": "0.5.7",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "@ffmpeg-installer/ffmpeg": "^1.1.0",
@@ -203,9 +203,27 @@ export class PluginDeviceProxyHandler implements PrimitiveProxyHandler<any>, Scr
203
203
  }
204
204
 
205
205
  return this.mixinTable[0].entry.then(entry => {
206
- const changed = this.scrypted.stateManager.setPluginDeviceState(pluginDevice, ScryptedInterfaceProperty.interfaces, PluginDeviceProxyHandler.sortInterfaces(entry.allInterfaces));
207
- if (changed)
208
- this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
206
+ let persist = !entry.error;
207
+ if (entry.error) {
208
+ console.error('Mixin device creation completed with error.');
209
+ const allInterfaces = new Set(entry.allInterfaces);
210
+ const previousInterfaces = getState(pluginDevice, ScryptedInterfaceProperty.interfaces) as string[] || [];
211
+
212
+ let containsAll = true;
213
+ while (containsAll && previousInterfaces.length) {
214
+ containsAll &&= allInterfaces.has(previousInterfaces.pop());
215
+ }
216
+
217
+ persist = containsAll;
218
+ if (persist)
219
+ console.log('Mixin device completed with interface same set or super set of previous set. Persisting.')
220
+ }
221
+
222
+ if (persist) {
223
+ const changed = this.scrypted.stateManager.setPluginDeviceState(pluginDevice, ScryptedInterfaceProperty.interfaces, PluginDeviceProxyHandler.sortInterfaces(entry.allInterfaces));
224
+ if (changed)
225
+ this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
226
+ }
209
227
  return pluginDevice;
210
228
  });
211
229
  }
@@ -216,29 +234,35 @@ export class PluginDeviceProxyHandler implements PrimitiveProxyHandler<any>, Scr
216
234
 
217
235
  const type = getDisplayType(pluginDevice);
218
236
 
219
- let { allInterfaces } = await previousEntry;
237
+ let { allInterfaces, error } = await previousEntry;
220
238
  try {
221
239
  const mixinProvider = this.scrypted.getDevice(mixinId) as ScryptedDevice & MixinProvider;
222
240
  const isMixinProvider = mixinProvider?.interfaces?.includes(ScryptedInterface.MixinProvider);
223
241
  const interfaces = isMixinProvider && await mixinProvider?.canMixin(type, allInterfaces) as any as ScryptedInterface[];
224
242
  if (!interfaces) {
225
- // this is not an error
226
- // do not advertise interfaces so it is skipped during
227
- // vtable lookup.
228
- if (!mixinProvider || (isMixinProvider && !interfaces)) {
229
- console.log(`Mixin provider ${mixinId} can no longer mixin ${this.id}. Removing.`, {
230
- mixinProvider: !!mixinProvider,
231
- interfaces,
232
- });
233
- const mixins: string[] = getState(pluginDevice, ScryptedInterfaceProperty.mixins) || [];
234
- this.scrypted.stateManager.setPluginDeviceState(pluginDevice, ScryptedInterfaceProperty.mixins, mixins.filter(mid => mid !== mixinId));
235
- this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
236
- this.scrypted.datastore.upsert(pluginDevice);
243
+ console.log(`Mixin provider ${mixinId} can no longer mixin ${this.id}.`, {
244
+ mixinProvider: !!mixinProvider,
245
+ interfaces,
246
+ });
247
+ if (!error) {
248
+ if (!mixinProvider || (isMixinProvider && !interfaces)) {
249
+ const mixins: string[] = getState(pluginDevice, ScryptedInterfaceProperty.mixins) || [];
250
+ this.scrypted.stateManager.setPluginDeviceState(pluginDevice, ScryptedInterfaceProperty.mixins, mixins.filter(mid => mid !== mixinId));
251
+ this.scrypted.notifyPluginDeviceDescriptorChanged(pluginDevice);
252
+ this.scrypted.datastore.upsert(pluginDevice);
253
+ }
254
+ else {
255
+ console.log(`Mixin provider ${mixinId} can not mixin ${this.id}. It is no longer a MixinProvider. This may be temporary. Passing through.`);
256
+ }
237
257
  }
238
258
  else {
239
- console.log(`Mixin provider ${mixinId} can not mixin ${this.id}. It is no longer a MixinProvider. This may be temporary. Passing through.`);
259
+ console.error(`Error encountered in previous mixin entry may have caused mixin error. Ignoring.`);
240
260
  }
261
+ // this is not an error
262
+ // do not advertise interfaces so it is skipped during
263
+ // vtable lookup.
241
264
  return {
265
+ error,
242
266
  passthrough: true,
243
267
  allInterfaces,
244
268
  interfaces: new Set<string>(),
@@ -273,6 +297,7 @@ export class PluginDeviceProxyHandler implements PrimitiveProxyHandler<any>, Scr
273
297
  const passthrough = wrappedProxy === mixinProxy && previousInterfaces.length === combinedInterfaces.length;
274
298
 
275
299
  return {
300
+ error,
276
301
  passthrough,
277
302
  interfaces: new Set<string>(interfaces),
278
303
  allInterfaces: combinedInterfaces,
@@ -285,7 +310,7 @@ export class PluginDeviceProxyHandler implements PrimitiveProxyHandler<any>, Scr
285
310
  // this has been the behavior for a while,
286
311
  // but maybe interfaces implemented by that mixin
287
312
  // should rethrow the error caught here in applyMixin.
288
- console.warn('mixin error', e);
313
+ console.error('Mixin error', e);
289
314
  return {
290
315
  passthrough: false,
291
316
  allInterfaces,