From fbbb9163d71444f449b6170858e9b3ca52ab0354 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Fri, 3 Mar 2023 14:56:40 -0800 Subject: [PATCH] sdk: add ipcObject --- sdk/package-lock.json | 4 ++-- sdk/package.json | 2 +- sdk/types/package-lock.json | 4 ++-- sdk/types/package.json | 2 +- sdk/types/scrypted_python/scrypted_sdk/types.py | 13 +++++-------- sdk/types/src/types.input.ts | 16 ++++++++++------ 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/sdk/package-lock.json b/sdk/package-lock.json index 3050b1dc3a..a071efd71a 100644 --- a/sdk/package-lock.json +++ b/sdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/sdk", - "version": "0.2.71", + "version": "0.2.73", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/sdk", - "version": "0.2.71", + "version": "0.2.73", "license": "ISC", "dependencies": { "@babel/preset-typescript": "^7.18.6", diff --git a/sdk/package.json b/sdk/package.json index 97c1ca8738..762f10361d 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/sdk", - "version": "0.2.71", + "version": "0.2.73", "description": "", "main": "dist/src/index.js", "exports": { diff --git a/sdk/types/package-lock.json b/sdk/types/package-lock.json index 5b9253c37d..7a83e91e17 100644 --- a/sdk/types/package-lock.json +++ b/sdk/types/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/types", - "version": "0.2.66", + "version": "0.2.67", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/types", - "version": "0.2.66", + "version": "0.2.67", "license": "ISC", "devDependencies": { "@types/rimraf": "^3.0.2", diff --git a/sdk/types/package.json b/sdk/types/package.json index a366f891e9..6f65d88b85 100644 --- a/sdk/types/package.json +++ b/sdk/types/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/types", - "version": "0.2.66", + "version": "0.2.67", "description": "", "main": "dist/index.js", "author": "", diff --git a/sdk/types/scrypted_python/scrypted_sdk/types.py b/sdk/types/scrypted_python/scrypted_sdk/types.py index 8ef729bde1..5ea15aa7f4 100644 --- a/sdk/types/scrypted_python/scrypted_sdk/types.py +++ b/sdk/types/scrypted_python/scrypted_sdk/types.py @@ -285,10 +285,6 @@ class AdoptDevice(TypedDict): settings: DeviceCreatorSettings pass -class BufferConvertorOptions(TypedDict): - sourceId: str - pass - class ColorHsv(TypedDict): h: float s: float @@ -423,6 +419,7 @@ class LauncherApplicationInfo(TypedDict): pass class MediaObjectOptions(TypedDict): + metadata: Any sourceId: str pass @@ -698,7 +695,7 @@ async def setBrightness(self, brightness: float) -> None: class BufferConverter: fromMimeType: str toMimeType: str - async def convert(self, data: Any, fromMimeType: str, toMimeType: str, options: BufferConvertorOptions = None) -> Any: + async def convert(self, data: Any, fromMimeType: str, toMimeType: str, options: MediaObjectOptions = None) -> Any: pass pass @@ -782,7 +779,7 @@ async def openEntry(self) -> None: pass class EntrySensor: - entryOpen: bool + entryOpen: bool | Any pass class EventRecorder: @@ -1559,10 +1556,10 @@ def lockState(self, value: LockState): self.setScryptedProperty("lockState", value) @property - def entryOpen(self) -> bool: + def entryOpen(self) -> bool | Any: return self.getScryptedProperty("entryOpen") @entryOpen.setter - def entryOpen(self, value: bool): + def entryOpen(self, value: bool | Any): self.setScryptedProperty("entryOpen", value) @property diff --git a/sdk/types/src/types.input.ts b/sdk/types/src/types.input.ts index b23b6cc3e9..5e9dceab9c 100644 --- a/sdk/types/src/types.input.ts +++ b/sdk/types/src/types.input.ts @@ -827,7 +827,7 @@ export interface Entry { } export interface EntrySensor { - entryOpen?: boolean; + entryOpen?: boolean | 'jammed'; } /** * DeviceManager is the interface used by DeviceProvider to report new devices, device states, and device events to Scrypted. @@ -1054,16 +1054,12 @@ export interface Scriptable { eval(source: ScriptSource, variables?: { [name: string]: any }): Promise; } -export interface BufferConvertorOptions { - sourceId?: string; -} - /** * Add a converter to be used by Scrypted to convert buffers from one mime type to another mime type. * May optionally accept string urls if accept-url is a fromMimeType parameter. */ export interface BufferConverter { - convert(data: string | Buffer | any, fromMimeType: string, toMimeType: string, options?: BufferConvertorOptions): Promise; + convert(data: string | Buffer | any, fromMimeType: string, toMimeType: string, options?: MediaObjectOptions): Promise; fromMimeType?: string; toMimeType?: string; @@ -1347,6 +1343,7 @@ export interface MediaObjectOptions { * The device id of the source of the MediaObject. */ sourceId?: string; + metadata?: any; } /** @@ -2088,4 +2085,11 @@ export interface ScryptedStatic { * @param options */ connect?(socket: NodeNetSocket, options?: ConnectOptions): void; + /** + * Attempt to retrieve an IPC object by directly connecting to the plugin + * that owns the object. All operations on this object will bypass routing + * through the Scrypted Server which typically manages plugin communication. + * This is ideal for sending large amounts of data via IPC. + */ + ipcObject?(value: T): Promise; }