sdk: update

This commit is contained in:
Koushik Dutta
2022-08-20 14:45:32 -07:00
parent 51c5798d41
commit 4c50bc169a
9 changed files with 158 additions and 58 deletions

View File

@@ -1225,6 +1225,8 @@ export interface Device {
*/
providerNativeId?: ScryptedNativeId;
room?: string;
internal?: boolean;
}
/**
* DeviceManifest is passed to DeviceManager.onDevicesChanged to sync a full list of devices from the controller/hub (Hue, SmartThings, etc)
@@ -1570,6 +1572,14 @@ export interface RTCSignalingOptions {
};
}
/**
* A flexible RTC signaling endpoint, typically a browser, that can handle offer and answer.
* Like Chromecast, etc, which has a Chromecast AppId that can connect to Scrypted.
*/
export interface RTCSignalingClient {
createRTCSignalingSession(): Promise<RTCSignalingSession>;
}
export interface RTCSessionControl {
getRefreshAt(): Promise<number | void>;
extendSession(): Promise<void>;
@@ -1580,12 +1590,19 @@ export interface RTCSessionControl {
}): Promise<void>;
}
/**
* A flexible RTC signaling endpoint, typically a browser, that can handle offer and answer.
* Like Chromecast, etc, which has a Chromecast AppId that can connect to Scrypted.
*/
export interface RTCSignalingClient {
createRTCSignalingSession(): Promise<RTCSignalingSession>;
export interface RTCMediaObjectTrack {
replace(mediaObject: MediaObject): Promise<void>;
remove(): Promise<void>;
setPlayback(options: {
audio: boolean,
video: boolean,
}): Promise<void>;
}
export interface RTCConnectionManagement {
negotiateRTCSignalingSession(): Promise<void>;
addTrack(mediaObject: MediaObject): Promise<RTCMediaObjectTrack>;
close(): Promise<void>;
}
/**
@@ -1597,6 +1614,10 @@ export interface RTCSignalingChannel {
startRTCSignalingSession(session: RTCSignalingSession): Promise<RTCSessionControl | undefined>;
}
export interface ScryptedRTCSignalingChannel {
startRTCSignalingSession(session: RTCSignalingSession): Promise<RTCConnectionManagement | undefined>;
}
export interface RTCAVSignalingSetup {
/**
* Mechanism to allow configuration of TURN/STUN servers, etc.
@@ -1615,14 +1636,23 @@ export enum ScryptedMimeTypes {
Url = 'text/x-uri',
InsecureLocalUrl = 'text/x-insecure-local-uri',
LocalUrl = 'text/x-local-uri',
PushEndpoint = 'text/x-push-endpoint',
MediaStreamUrl = 'text/x-media-url',
FFmpegInput = 'x-scrypted/x-ffmpeg-input',
FFmpegTranscodeStream = 'x-scrypted/x-ffmpeg-transcode-stream',
RTCSignalingChannel = 'x-scrypted/x-scrypted-rtc-signaling-channel',
SchemePrefix = 'x-scrypted/x-scrypted-scheme-',
MediaStreamUrl = 'text/x-media-url',
MediaObject = 'x-scrypted/x-scrypted-media-object',
RequestMediaStream = 'x-scrypted/x-scrypted-request-stream',
ScryptedDevice = 'x-scrypted/x-scrypted-device',
ScryptedDeviceId = 'x-scrypted/x-scrypted-device-id',
FFmpegInput = 'x-scrypted/x-ffmpeg-input',
FFmpegTranscodeStream = 'x-scrypted/x-ffmpeg-transcode-stream',
RTCSignalingChannel = 'x-scrypted/x-scrypted-rtc-signaling-channel',
RTCSignalingSession = 'x-scrypted/x-scrypted-rtc-signaling-session',
RTCConnectionManagement = 'x-scrypted/x-scrypted-rtc-connection-management',
}
export type RequestMediaStream = (options?: RequestMediaStreamOptions) => Promise<MediaObject>;
@@ -1634,6 +1664,13 @@ export interface FFmpegTranscode {
}
export type FFmpegTranscodeStream = (options: FFmpegTranscode) => Promise<void>;
export interface PluginFork<T> {
result: Promise<T>;
worker: {
terminate(): Promise<number>;
};
}
export interface ScryptedStatic {
/**
* @deprecated
@@ -1648,12 +1685,7 @@ export interface ScryptedStatic {
pluginHostAPI: any;
pluginRemoteAPI: any;
fork?<T>(): {
result: Promise<T>;
worker: {
terminate(): Promise<number>;
};
};
fork?<T>(): PluginFork<T>;
}
export declare interface DeviceState {

View File

@@ -5,7 +5,7 @@
"main": "index.js",
"scripts": {
"prepublishOnly": "npm run build && cd types && npm version patch && npm publish",
"prebuild": "typedoc && ts-node gen/build && cd types && npm run build",
"prebuild": "cd types && npm run build",
"build": "tsc",
"webpack": "webpack-cli --config webpack.config.js",
"test": "echo \"Error: no test specified\" && exit 1"

View File

@@ -149,9 +149,13 @@ class ScryptedMimeTypes(Enum):
MediaObject = "x-scrypted/x-scrypted-media-object"
MediaStreamUrl = "text/x-media-url"
PushEndpoint = "text/x-push-endpoint"
RTCConnectionManagement = "x-scrypted/x-scrypted-rtc-connection-management"
RTCSignalingChannel = "x-scrypted/x-scrypted-rtc-signaling-channel"
RTCSignalingSession = "x-scrypted/x-scrypted-rtc-signaling-session"
RequestMediaStream = "x-scrypted/x-scrypted-request-stream"
SchemePrefix = "x-scrypted/x-scrypted-scheme-"
ScryptedDevice = "x-scrypted/x-scrypted-device"
ScryptedDeviceId = "x-scrypted/x-scrypted-device-id"
Url = "text/x-uri"
class SecuritySystemMode(Enum):
@@ -265,6 +269,7 @@ class ColorRgb(TypedDict):
class Device(TypedDict):
info: DeviceInformation
interfaces: list[str]
internal: bool
name: str
nativeId: str
providerNativeId: str

54
sdk/types/index.d.ts vendored
View File

@@ -1,5 +1,5 @@
/// <reference types="node" />
export declare const TYPES_VERSION = "0.0.70";
export declare const TYPES_VERSION = "0.0.81";
export interface DeviceState {
id?: string;
info?: DeviceInformation;
@@ -1286,6 +1286,7 @@ export interface Device {
*/
providerNativeId?: ScryptedNativeId;
room?: string;
internal?: boolean;
}
/**
* DeviceManifest is passed to DeviceManager.onDevicesChanged to sync a full list of devices from the controller/hub (Hue, SmartThings, etc)
@@ -1600,6 +1601,13 @@ export interface RTCSignalingOptions {
height: number;
};
}
/**
* A flexible RTC signaling endpoint, typically a browser, that can handle offer and answer.
* Like Chromecast, etc, which has a Chromecast AppId that can connect to Scrypted.
*/
export interface RTCSignalingClient {
createRTCSignalingSession(): Promise<RTCSignalingSession>;
}
export interface RTCSessionControl {
getRefreshAt(): Promise<number | void>;
extendSession(): Promise<void>;
@@ -1609,12 +1617,18 @@ export interface RTCSessionControl {
video: boolean;
}): Promise<void>;
}
/**
* A flexible RTC signaling endpoint, typically a browser, that can handle offer and answer.
* Like Chromecast, etc, which has a Chromecast AppId that can connect to Scrypted.
*/
export interface RTCSignalingClient {
createRTCSignalingSession(): Promise<RTCSignalingSession>;
export interface RTCMediaObjectTrack {
replace(mediaObject: MediaObject): Promise<void>;
remove(): Promise<void>;
setPlayback(options: {
audio: boolean;
video: boolean;
}): Promise<void>;
}
export interface RTCConnectionManagement {
negotiateRTCSignalingSession(): Promise<void>;
addTrack(mediaObject: MediaObject): Promise<RTCMediaObjectTrack>;
close(): Promise<void>;
}
/**
* An inflexible RTC Signaling channel, typically a vendor, like Nest or Ring.
@@ -1624,6 +1638,9 @@ export interface RTCSignalingClient {
export interface RTCSignalingChannel {
startRTCSignalingSession(session: RTCSignalingSession): Promise<RTCSessionControl | undefined>;
}
export interface ScryptedRTCSignalingChannel {
startRTCSignalingSession(session: RTCSignalingSession): Promise<RTCConnectionManagement | undefined>;
}
export interface RTCAVSignalingSetup {
/**
* Mechanism to allow configuration of TURN/STUN servers, etc.
@@ -1642,13 +1659,17 @@ export declare enum ScryptedMimeTypes {
InsecureLocalUrl = "text/x-insecure-local-uri",
LocalUrl = "text/x-local-uri",
PushEndpoint = "text/x-push-endpoint",
SchemePrefix = "x-scrypted/x-scrypted-scheme-",
MediaStreamUrl = "text/x-media-url",
MediaObject = "x-scrypted/x-scrypted-media-object",
RequestMediaStream = "x-scrypted/x-scrypted-request-stream",
ScryptedDevice = "x-scrypted/x-scrypted-device",
ScryptedDeviceId = "x-scrypted/x-scrypted-device-id",
FFmpegInput = "x-scrypted/x-ffmpeg-input",
FFmpegTranscodeStream = "x-scrypted/x-ffmpeg-transcode-stream",
RTCSignalingChannel = "x-scrypted/x-scrypted-rtc-signaling-channel",
SchemePrefix = "x-scrypted/x-scrypted-scheme-",
MediaObject = "x-scrypted/x-scrypted-media-object",
RequestMediaStream = "x-scrypted/x-scrypted-request-stream"
RTCSignalingSession = "x-scrypted/x-scrypted-rtc-signaling-session",
RTCConnectionManagement = "x-scrypted/x-scrypted-rtc-connection-management"
}
export declare type RequestMediaStream = (options?: RequestMediaStreamOptions) => Promise<MediaObject>;
export interface FFmpegTranscode {
@@ -1657,6 +1678,12 @@ export interface FFmpegTranscode {
audioTranscodeArguments?: string[];
}
export declare type FFmpegTranscodeStream = (options: FFmpegTranscode) => Promise<void>;
export interface PluginFork<T> {
result: Promise<T>;
worker: {
terminate(): Promise<number>;
};
}
export interface ScryptedStatic {
/**
* @deprecated
@@ -1668,12 +1695,7 @@ export interface ScryptedStatic {
systemManager: SystemManager;
pluginHostAPI: any;
pluginRemoteAPI: any;
fork?<T>(): {
result: Promise<T>;
worker: {
terminate(): Promise<number>;
};
};
fork?<T>(): PluginFork<T>;
}
export declare interface DeviceState {
id?: string;

View File

@@ -1,7 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ScryptedMimeTypes = exports.ScryptedInterface = exports.MediaPlayerState = exports.SecuritySystemObstruction = exports.SecuritySystemMode = exports.AirQuality = exports.LockState = exports.ThermostatMode = exports.TemperatureUnit = exports.FanMode = exports.HumidityMode = exports.ScryptedDeviceType = exports.ScryptedInterfaceDescriptors = exports.ScryptedInterfaceProperty = exports.DeviceBase = exports.TYPES_VERSION = void 0;
exports.TYPES_VERSION = "0.0.70";
exports.TYPES_VERSION = "0.0.81";
class DeviceBase {
}
exports.DeviceBase = DeviceBase;
@@ -843,12 +843,16 @@ var ScryptedMimeTypes;
ScryptedMimeTypes["InsecureLocalUrl"] = "text/x-insecure-local-uri";
ScryptedMimeTypes["LocalUrl"] = "text/x-local-uri";
ScryptedMimeTypes["PushEndpoint"] = "text/x-push-endpoint";
ScryptedMimeTypes["SchemePrefix"] = "x-scrypted/x-scrypted-scheme-";
ScryptedMimeTypes["MediaStreamUrl"] = "text/x-media-url";
ScryptedMimeTypes["MediaObject"] = "x-scrypted/x-scrypted-media-object";
ScryptedMimeTypes["RequestMediaStream"] = "x-scrypted/x-scrypted-request-stream";
ScryptedMimeTypes["ScryptedDevice"] = "x-scrypted/x-scrypted-device";
ScryptedMimeTypes["ScryptedDeviceId"] = "x-scrypted/x-scrypted-device-id";
ScryptedMimeTypes["FFmpegInput"] = "x-scrypted/x-ffmpeg-input";
ScryptedMimeTypes["FFmpegTranscodeStream"] = "x-scrypted/x-ffmpeg-transcode-stream";
ScryptedMimeTypes["RTCSignalingChannel"] = "x-scrypted/x-scrypted-rtc-signaling-channel";
ScryptedMimeTypes["SchemePrefix"] = "x-scrypted/x-scrypted-scheme-";
ScryptedMimeTypes["MediaObject"] = "x-scrypted/x-scrypted-media-object";
ScryptedMimeTypes["RequestMediaStream"] = "x-scrypted/x-scrypted-request-stream";
ScryptedMimeTypes["RTCSignalingSession"] = "x-scrypted/x-scrypted-rtc-signaling-session";
ScryptedMimeTypes["RTCConnectionManagement"] = "x-scrypted/x-scrypted-rtc-connection-management";
})(ScryptedMimeTypes = exports.ScryptedMimeTypes || (exports.ScryptedMimeTypes = {}));
//# sourceMappingURL=index.js.map

View File

@@ -1,5 +1,5 @@
export const TYPES_VERSION = "0.0.70";
export const TYPES_VERSION = "0.0.81";
export interface DeviceState {
@@ -2001,6 +2001,8 @@ export interface Device {
*/
providerNativeId?: ScryptedNativeId;
room?: string;
internal?: boolean;
}
/**
* DeviceManifest is passed to DeviceManager.onDevicesChanged to sync a full list of devices from the controller/hub (Hue, SmartThings, etc)
@@ -2346,6 +2348,14 @@ export interface RTCSignalingOptions {
};
}
/**
* A flexible RTC signaling endpoint, typically a browser, that can handle offer and answer.
* Like Chromecast, etc, which has a Chromecast AppId that can connect to Scrypted.
*/
export interface RTCSignalingClient {
createRTCSignalingSession(): Promise<RTCSignalingSession>;
}
export interface RTCSessionControl {
getRefreshAt(): Promise<number | void>;
extendSession(): Promise<void>;
@@ -2356,12 +2366,19 @@ export interface RTCSessionControl {
}): Promise<void>;
}
/**
* A flexible RTC signaling endpoint, typically a browser, that can handle offer and answer.
* Like Chromecast, etc, which has a Chromecast AppId that can connect to Scrypted.
*/
export interface RTCSignalingClient {
createRTCSignalingSession(): Promise<RTCSignalingSession>;
export interface RTCMediaObjectTrack {
replace(mediaObject: MediaObject): Promise<void>;
remove(): Promise<void>;
setPlayback(options: {
audio: boolean,
video: boolean,
}): Promise<void>;
}
export interface RTCConnectionManagement {
negotiateRTCSignalingSession(): Promise<void>;
addTrack(mediaObject: MediaObject): Promise<RTCMediaObjectTrack>;
close(): Promise<void>;
}
/**
@@ -2373,6 +2390,10 @@ export interface RTCSignalingChannel {
startRTCSignalingSession(session: RTCSignalingSession): Promise<RTCSessionControl | undefined>;
}
export interface ScryptedRTCSignalingChannel {
startRTCSignalingSession(session: RTCSignalingSession): Promise<RTCConnectionManagement | undefined>;
}
export interface RTCAVSignalingSetup {
/**
* Mechanism to allow configuration of TURN/STUN servers, etc.
@@ -2391,14 +2412,23 @@ export enum ScryptedMimeTypes {
Url = 'text/x-uri',
InsecureLocalUrl = 'text/x-insecure-local-uri',
LocalUrl = 'text/x-local-uri',
PushEndpoint = 'text/x-push-endpoint',
MediaStreamUrl = 'text/x-media-url',
FFmpegInput = 'x-scrypted/x-ffmpeg-input',
FFmpegTranscodeStream = 'x-scrypted/x-ffmpeg-transcode-stream',
RTCSignalingChannel = 'x-scrypted/x-scrypted-rtc-signaling-channel',
SchemePrefix = 'x-scrypted/x-scrypted-scheme-',
MediaStreamUrl = 'text/x-media-url',
MediaObject = 'x-scrypted/x-scrypted-media-object',
RequestMediaStream = 'x-scrypted/x-scrypted-request-stream',
ScryptedDevice = 'x-scrypted/x-scrypted-device',
ScryptedDeviceId = 'x-scrypted/x-scrypted-device-id',
FFmpegInput = 'x-scrypted/x-ffmpeg-input',
FFmpegTranscodeStream = 'x-scrypted/x-ffmpeg-transcode-stream',
RTCSignalingChannel = 'x-scrypted/x-scrypted-rtc-signaling-channel',
RTCSignalingSession = 'x-scrypted/x-scrypted-rtc-signaling-session',
RTCConnectionManagement = 'x-scrypted/x-scrypted-rtc-connection-management',
}
export type RequestMediaStream = (options?: RequestMediaStreamOptions) => Promise<MediaObject>;
@@ -2410,6 +2440,13 @@ export interface FFmpegTranscode {
}
export type FFmpegTranscodeStream = (options: FFmpegTranscode) => Promise<void>;
export interface PluginFork<T> {
result: Promise<T>;
worker: {
terminate(): Promise<number>;
};
}
export interface ScryptedStatic {
/**
* @deprecated
@@ -2424,12 +2461,7 @@ export interface ScryptedStatic {
pluginHostAPI: any;
pluginRemoteAPI: any;
fork?<T>(): {
result: Promise<T>;
worker: {
terminate(): Promise<number>;
};
};
fork?<T>(): PluginFork<T>;
}
export declare interface DeviceState {

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/types",
"version": "0.0.71",
"version": "0.0.81",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@scrypted/types",
"version": "0.0.71",
"version": "0.0.81",
"license": "ISC",
"devDependencies": {}
}

View File

@@ -1,13 +1,13 @@
{
"name": "@scrypted/types",
"version": "0.0.71",
"version": "0.0.81",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"scripts": {
"prepublishOnly": "npm run build",
"build": "tsc"
"build": "cd .. && typedoc && cd types && ts-node ../gen/build && tsc"
},
"dependencies": {},
"devDependencies": {},

View File

@@ -149,9 +149,13 @@ class ScryptedMimeTypes(Enum):
MediaObject = "x-scrypted/x-scrypted-media-object"
MediaStreamUrl = "text/x-media-url"
PushEndpoint = "text/x-push-endpoint"
RTCConnectionManagement = "x-scrypted/x-scrypted-rtc-connection-management"
RTCSignalingChannel = "x-scrypted/x-scrypted-rtc-signaling-channel"
RTCSignalingSession = "x-scrypted/x-scrypted-rtc-signaling-session"
RequestMediaStream = "x-scrypted/x-scrypted-request-stream"
SchemePrefix = "x-scrypted/x-scrypted-scheme-"
ScryptedDevice = "x-scrypted/x-scrypted-device"
ScryptedDeviceId = "x-scrypted/x-scrypted-device-id"
Url = "text/x-uri"
class SecuritySystemMode(Enum):
@@ -265,6 +269,7 @@ class ColorRgb(TypedDict):
class Device(TypedDict):
info: DeviceInformation
interfaces: list[str]
internal: bool
name: str
nativeId: str
providerNativeId: str