@camera.ui/browser 0.0.93 → 0.0.95
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.
- package/dist/bundle.js +1 -1
- package/dist/types/packages/client/browser/src/proxy/cameraDevice.d.ts +3 -1
- package/dist/types/packages/client/browser/src/proxy/coreManager.d.ts +3 -2
- package/dist/types/packages/common/src/utils/subscribed.d.ts +9 -0
- package/dist/types/packages/plugineer/src/polyglot/node/camera/index.d.ts +4 -3
- package/dist/types/packages/plugineer/src/polyglot/node/camera/interfaces/prebuffer.d.ts +1 -2
- package/dist/types/packages/plugineer/src/polyglot/node/camera/types.d.ts +15 -0
- package/dist/types/packages/plugineer/src/polyglot/node/plugins/types.d.ts +136 -0
- package/dist/types/packages/plugineer/src/types.d.ts +4 -0
- package/dist/types/packages/{common/src/messaging/index.d.ts → plugineer/src/utils/messageQueue.d.ts} +3 -3
- package/dist/types/packages/types/src/index.d.ts +657 -0
- package/dist/types/server/src/api/database/types.d.ts +1 -122
- package/dist/types/server/src/api/schemas/cameras.schema.d.ts +89 -69
- package/dist/types/server/src/api/schemas/config.schema.d.ts +6 -6
- package/dist/types/server/src/api/schemas/go2rtc.schema.d.ts +84 -84
- package/dist/types/server/src/api/schemas/plugins.schema.d.ts +5 -5
- package/dist/types/server/src/api/schemas/users.schema.d.ts +48 -48
- package/dist/types/server/src/api/services/cameras.service.d.ts +6 -5
- package/dist/types/server/src/api/types/index.d.ts +3 -3
- package/dist/types/server/src/api/utils/cameraSource.d.ts +2 -0
- package/dist/types/server/src/api/websocket/nsp/plugins.d.ts +1 -1
- package/dist/types/server/src/api/websocket/types.d.ts +1 -1
- package/dist/types/server/src/api.d.ts +2 -2
- package/dist/types/server/src/camera/controller.d.ts +13 -3
- package/dist/types/server/src/camera/types.d.ts +1 -318
- package/dist/types/server/src/decoder/types.d.ts +0 -127
- package/dist/types/server/src/decoder/worker.d.ts +3 -2
- package/dist/types/server/src/nats/index.d.ts +4 -4
- package/dist/types/server/src/nats/proxy/cameraDevice.d.ts +3 -3
- package/dist/types/server/src/nats/proxy/coreManager.d.ts +4 -4
- package/dist/types/server/src/nats/proxy/deviceManager.d.ts +3 -5
- package/dist/types/server/src/nats/types.d.ts +3 -99
- package/dist/types/server/src/nats/utils.d.ts +1 -1
- package/dist/types/server/src/nats/websocket.d.ts +2 -2
- package/dist/types/server/src/plugins/plugin.d.ts +2 -2
- package/dist/types/server/src/plugins/types.d.ts +1 -181
- package/dist/types/server/src/plugins/worker.d.ts +1 -1
- package/dist/types/server/src/services/config/constants.d.ts +2 -1
- package/dist/types/server/src/services/config/types.d.ts +1 -5
- package/dist/types/shared/types/index.d.ts +4 -3
- package/package.json +4 -4
- package/dist/types/server/src/plugins/interfaces/audioDetection.d.ts +0 -7
- package/dist/types/server/src/plugins/interfaces/base.d.ts +0 -6
- package/dist/types/server/src/plugins/interfaces/motionDetection.d.ts +0 -6
- package/dist/types/server/src/plugins/interfaces/objectDetection.d.ts +0 -7
- /package/dist/types/packages/{common/src/nats/index.d.ts → plugineer/src/utils/nats.d.ts} +0 -0
- /package/dist/types/packages/{common/src/packer/index.d.ts → plugineer/src/utils/packer.d.ts} +0 -0
|
@@ -1,328 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Observable, ReplaySubject, Subject, Subscription } from 'rxjs';
|
|
3
|
-
import type { ConnectionState, RTCSessionDescription, RtpPacket, RTCIceCandidate as WeriftRTCICECandidate } from 'werift';
|
|
4
|
-
import type { Camera, CameraActivitySettings, CameraFrameWorkerSettings, CameraInformation, CameraInput, CameraInputSettings, CameraType, Point, ZoneFilter, ZoneType } from '../api/database/types.js';
|
|
5
|
-
import type { DecoderFormat, FrameBuffer, FrameData, FrameImage, FrameMetadata, ImageOptions } from '../decoder/types.js';
|
|
6
|
-
import type { JsonSchema, JsonSchemaForm, SchemaConfig } from '../plugins/types.js';
|
|
7
|
-
export type SpawnInput = string | number;
|
|
8
|
-
export interface FfmpegOptions {
|
|
9
|
-
ffmpegPath: string;
|
|
10
|
-
input?: SpawnInput[];
|
|
11
|
-
video?: SpawnInput[];
|
|
12
|
-
audio?: SpawnInput[];
|
|
13
|
-
output: SpawnInput[];
|
|
14
|
-
}
|
|
15
|
-
export type Container = 'mp4' | 'mpegts';
|
|
16
|
-
export interface BasePrebufferState {
|
|
17
|
-
duration: number;
|
|
18
|
-
}
|
|
19
|
-
export interface PrebufferStateTrue extends BasePrebufferState {
|
|
20
|
-
state: true;
|
|
21
|
-
url: string;
|
|
22
|
-
}
|
|
23
|
-
export interface PrebufferStateFalse extends BasePrebufferState {
|
|
24
|
-
state: false;
|
|
25
|
-
}
|
|
26
|
-
export type PrebufferState = PrebufferStateTrue | PrebufferStateFalse;
|
|
27
|
-
export interface CameraSource extends CameraInput {
|
|
28
|
-
getPrebufferingState(container: Container): Promise<PrebufferState | undefined>;
|
|
29
|
-
getStreamInfo(): Promise<StreamInfo | undefined>;
|
|
30
|
-
}
|
|
31
|
-
export interface StreamInfo {
|
|
32
|
-
audio: AudioStreamOptions;
|
|
33
|
-
video: VideoStreamOptions;
|
|
34
|
-
}
|
|
35
|
-
export interface AudioStreamOptions {
|
|
36
|
-
enabled?: boolean;
|
|
37
|
-
codec?: string;
|
|
38
|
-
bitrate?: number;
|
|
39
|
-
sampleRate?: number;
|
|
40
|
-
}
|
|
41
|
-
export interface VideoStreamOptions {
|
|
42
|
-
codec?: string;
|
|
43
|
-
width?: number;
|
|
44
|
-
height?: number;
|
|
45
|
-
bitrate?: number;
|
|
46
|
-
fps?: number;
|
|
47
|
-
idrInterval?: number;
|
|
48
|
-
}
|
|
49
|
-
export type Sdp = string;
|
|
50
|
-
export type IceCandiate = string;
|
|
51
|
-
export interface Go2RtcOfferMessage {
|
|
52
|
-
type: 'webrtc/offer';
|
|
53
|
-
value: Sdp;
|
|
54
|
-
}
|
|
55
|
-
export interface Go2RtcAnswerMessage {
|
|
56
|
-
type: 'webrtc/answer';
|
|
57
|
-
value: Sdp;
|
|
58
|
-
}
|
|
59
|
-
export interface Go2RtcIceCandidateMessage {
|
|
60
|
-
type: 'webrtc/candidate';
|
|
61
|
-
value: IceCandiate;
|
|
62
|
-
}
|
|
63
|
-
export interface ErrorMessage {
|
|
64
|
-
type: 'error';
|
|
65
|
-
value: string;
|
|
66
|
-
}
|
|
67
|
-
export type Go2RtcIncomingMessage = Go2RtcAnswerMessage | Go2RtcIceCandidateMessage | ErrorMessage;
|
|
68
|
-
export type Go2RtcOutgoingMessage = Go2RtcOfferMessage | Go2RtcIceCandidateMessage;
|
|
69
|
-
export interface BaseCameraConfig {
|
|
70
|
-
name: string;
|
|
71
|
-
nativeId?: string;
|
|
72
|
-
isCloud?: boolean;
|
|
73
|
-
hasLight?: boolean;
|
|
74
|
-
hasSiren?: boolean;
|
|
75
|
-
hasBinarySensor?: boolean;
|
|
76
|
-
hasBattery?: boolean;
|
|
77
|
-
disabled?: boolean;
|
|
78
|
-
info?: Partial<CameraInformation>;
|
|
79
|
-
}
|
|
80
|
-
export interface CameraConfigInputSettings extends Omit<CameraInputSettings, '_id'> {
|
|
81
|
-
}
|
|
82
|
-
export type CameraConfig = BaseCameraConfig & {
|
|
83
|
-
sources: CameraConfigInputSettings[];
|
|
84
|
-
};
|
|
85
|
-
export type BoundingBox = [number, number, number, number];
|
|
86
|
-
export interface Detection {
|
|
87
|
-
id?: string;
|
|
88
|
-
label: ObjectClass;
|
|
89
|
-
confidence: number;
|
|
90
|
-
boundingBox: BoundingBox;
|
|
91
|
-
inputWidth: number;
|
|
92
|
-
inputHeight: number;
|
|
93
|
-
origWidth: number;
|
|
94
|
-
origHeight: number;
|
|
95
|
-
}
|
|
96
|
-
export interface DetectionZone {
|
|
97
|
-
name: string;
|
|
98
|
-
points: Point[];
|
|
99
|
-
type: ZoneType;
|
|
100
|
-
filter: ZoneFilter;
|
|
101
|
-
classes: ObjectClass[];
|
|
102
|
-
isPrivacyMask: boolean;
|
|
103
|
-
}
|
|
104
|
-
export type ObjectClass = 'person' | 'bicycle' | 'car' | 'motorcycle' | 'airplane' | 'bus' | 'train' | 'truck' | 'boat' | 'traffic light' | 'fire hydrant' | 'stop sign' | 'parking meter' | 'bench' | 'bird' | 'cat' | 'dog' | 'horse' | 'sheep' | 'cow' | 'elephant' | 'bear' | 'zebra' | 'giraffe' | 'backpack' | 'umbrella' | 'handbag' | 'tie' | 'suitcase' | 'frisbee' | 'skis' | 'snowboard' | 'sports ball' | 'kite' | 'baseball bat' | 'baseball glove' | 'skateboard' | 'surfboard' | 'tennis racket' | 'bottle' | 'wine glass' | 'cup' | 'fork' | 'knife' | 'spoon' | 'bowl' | 'banana' | 'apple' | 'sandwich' | 'orange' | 'broccoli' | 'carrot' | 'hot dog' | 'pizza' | 'donut' | 'cake' | 'chair' | 'couch' | 'potted plant' | 'bed' | 'dining table' | 'toilet' | 'tv' | 'laptop' | 'mouse' | 'remote' | 'keyboard' | 'cell phone' | 'microwave' | 'oven' | 'toaster' | 'sink' | 'refrigerator' | 'book' | 'clock' | 'vase' | 'scissors' | 'teddy bear' | 'hair drier' | 'toothbrush' | 'motion';
|
|
105
|
-
export interface BaseState<T extends LightState | AudioState | MotionState | ObjectState | SirenState | BatteryState | DoorbellState> {
|
|
106
|
-
timestamp: number;
|
|
107
|
-
lastEvent?: Omit<T, 'lastEvent'>;
|
|
108
|
-
}
|
|
109
|
-
export interface MotionSetEvent {
|
|
110
|
-
state?: boolean;
|
|
111
|
-
detections: Detection[];
|
|
112
|
-
}
|
|
113
|
-
export interface AudioSetEvent {
|
|
114
|
-
state: boolean;
|
|
115
|
-
db?: number;
|
|
116
|
-
}
|
|
117
|
-
export interface ObjectSetEvent {
|
|
118
|
-
detections: Detection[];
|
|
119
|
-
}
|
|
120
|
-
export interface LightSetEvent {
|
|
121
|
-
state: boolean;
|
|
122
|
-
}
|
|
123
|
-
export interface DoorbellSetEvent {
|
|
124
|
-
state: boolean;
|
|
125
|
-
}
|
|
126
|
-
export interface SirenSetEvent {
|
|
127
|
-
state: boolean;
|
|
128
|
-
level?: number;
|
|
129
|
-
}
|
|
130
|
-
export interface BatterySetEvent {
|
|
131
|
-
level: number;
|
|
132
|
-
lowBattery?: boolean;
|
|
133
|
-
charging?: boolean;
|
|
134
|
-
}
|
|
135
|
-
export type LightState = BaseState<LightState> & LightSetEvent;
|
|
136
|
-
export type MotionState = BaseState<MotionState> & MotionSetEvent;
|
|
137
|
-
export type AudioState = BaseState<AudioState> & AudioSetEvent;
|
|
138
|
-
export type DoorbellState = BaseState<DoorbellState> & DoorbellSetEvent;
|
|
139
|
-
export type SirenState = BaseState<SirenState> & SirenSetEvent;
|
|
140
|
-
export type ObjectState = BaseState<ObjectState> & ObjectSetEvent;
|
|
141
|
-
export type BatteryState = BaseState<BatteryState> & BatterySetEvent;
|
|
1
|
+
import type { FrameData, FrameMetadata, MotionState, SetValues, StateValues } from '@camera.ui/types';
|
|
142
2
|
export interface FrameState extends MotionState {
|
|
143
3
|
frameData: FrameData;
|
|
144
4
|
metadata: FrameMetadata;
|
|
145
5
|
}
|
|
146
|
-
export type States = LightState | MotionState | AudioState | ObjectState | DoorbellState | SirenState | BatteryState;
|
|
147
|
-
export type Sets = LightSetEvent | MotionSetEvent | AudioSetEvent | ObjectSetEvent | DoorbellSetEvent | SirenSetEvent | BatterySetEvent;
|
|
148
|
-
export interface StateValues {
|
|
149
|
-
light: LightState;
|
|
150
|
-
motion: MotionState;
|
|
151
|
-
audio: AudioState;
|
|
152
|
-
object: ObjectState;
|
|
153
|
-
doorbell: DoorbellState;
|
|
154
|
-
siren: SirenState;
|
|
155
|
-
battery: BatteryState;
|
|
156
|
-
}
|
|
157
|
-
export interface SetValues {
|
|
158
|
-
light: LightSetEvent;
|
|
159
|
-
motion: MotionSetEvent;
|
|
160
|
-
audio: AudioSetEvent;
|
|
161
|
-
object: ObjectSetEvent;
|
|
162
|
-
doorbell: DoorbellSetEvent;
|
|
163
|
-
siren: SirenSetEvent;
|
|
164
|
-
battery: BatterySetEvent;
|
|
165
|
-
}
|
|
166
6
|
export type CameraStateCallbacks = {
|
|
167
7
|
[K in keyof StateValues]: (event: StateValues[K]) => void;
|
|
168
8
|
};
|
|
169
9
|
export type StateValue<T extends keyof StateValues> = StateValues[T];
|
|
170
10
|
export type SetValue<T extends keyof SetValues> = SetValues[T];
|
|
171
11
|
export type OnChangeCallback<T extends keyof StateValues> = (newEvent: StateValues[T], oldEvent: StateValues[T]) => void;
|
|
172
|
-
export declare abstract class CameraDelegate {
|
|
173
|
-
abstract snapshot(): Promise<ArrayBuffer | undefined>;
|
|
174
|
-
}
|
|
175
|
-
export declare abstract class CameraPrebufferDelegate {
|
|
176
|
-
abstract getStreamInfo(sourceName: string): Promise<StreamInfo | undefined>;
|
|
177
|
-
abstract getPrebufferingState(sourceName: string, container: Container): Promise<PrebufferState | undefined>;
|
|
178
|
-
}
|
|
179
|
-
export declare abstract class CameraPTZDelegate {
|
|
180
|
-
abstract moveAbsolute(pan: number, tilt: number, zoom: number): Promise<void>;
|
|
181
|
-
abstract moveRelative(pan: number, tilt: number, zoom: number): Promise<void>;
|
|
182
|
-
abstract moveContinuous(pan: number, tilt: number, zoom: number): Promise<void>;
|
|
183
|
-
abstract stop(): Promise<void>;
|
|
184
|
-
}
|
|
185
|
-
export interface CameraInterfaces {
|
|
186
|
-
readonly cameraDelegate: CameraInterface;
|
|
187
|
-
readonly prebufferDelegate: CameraPrebufferInterface;
|
|
188
|
-
readonly ptzDelegate: CameraPTZInterface;
|
|
189
|
-
}
|
|
190
|
-
export interface CameraDelegates {
|
|
191
|
-
readonly cameraDelegate: CameraDelegate;
|
|
192
|
-
readonly prebufferDelegate: CameraPrebufferDelegate;
|
|
193
|
-
readonly ptzDelegate: CameraPTZDelegate;
|
|
194
|
-
}
|
|
195
|
-
export interface CameraStorage<T extends Record<string, any> = Record<string, any>> {
|
|
196
|
-
schema: JsonSchemaForm;
|
|
197
|
-
values: T;
|
|
198
|
-
initializeStorage(): void;
|
|
199
|
-
getValue<U = string>(path: string): Promise<U> | undefined;
|
|
200
|
-
getValue<U = string>(path: string, defaultValue: U): Promise<U>;
|
|
201
|
-
setValue<U = string>(path: string, newValue: U): Promise<void>;
|
|
202
|
-
hasValue(path: string): boolean;
|
|
203
|
-
getConfig(): Promise<SchemaConfig>;
|
|
204
|
-
setConfig(newConfig: T): Promise<void>;
|
|
205
|
-
addSchema(schema: JsonSchemaForm): Promise<void>;
|
|
206
|
-
addSchema(path: string, schema: JsonSchema): Promise<void>;
|
|
207
|
-
removeSchema(path: string): void;
|
|
208
|
-
changeSchema(path: string, newSchema: Partial<JsonSchema>): Promise<void>;
|
|
209
|
-
getSchema<U>(path: string): U | undefined;
|
|
210
|
-
hasSchema(path: string): boolean;
|
|
211
|
-
}
|
|
212
|
-
export interface StorageController {
|
|
213
|
-
createCameraStorage<T extends Record<string, any> = Record<string, any>>(instance: any, cameraId: string, schema?: JsonSchemaForm): CameraStorage<T>;
|
|
214
|
-
getCameraStorage<T extends Record<string, any> = Record<string, any>>(cameraId: string): CameraStorage<T> | undefined;
|
|
215
|
-
removeCameraStorage(cameraId: string): void;
|
|
216
|
-
}
|
|
217
|
-
export interface WeriftSession extends Subscribed {
|
|
218
|
-
readonly onCallEnded: ReplaySubject<void>;
|
|
219
|
-
readonly onVideoRtp: Subject<RtpPacket>;
|
|
220
|
-
readonly onAudioRtp: Subject<RtpPacket>;
|
|
221
|
-
readonly isUsingOpus: Promise<boolean>;
|
|
222
|
-
reservePort(bufferPorts?: number): Promise<number>;
|
|
223
|
-
startTranscoding(ffmpegOptions: FfmpegOptions): Promise<void>;
|
|
224
|
-
transcodeReturnAudio(ffmpegOptions: {
|
|
225
|
-
ffmpegPath: string;
|
|
226
|
-
input: SpawnInput[];
|
|
227
|
-
}): Promise<void>;
|
|
228
|
-
stop(): void;
|
|
229
|
-
sendAudioPacket(rtp: RtpPacket): void;
|
|
230
|
-
requestKeyFrame(): void;
|
|
231
|
-
}
|
|
232
|
-
export interface CameraDevice {
|
|
233
|
-
readonly id: string;
|
|
234
|
-
readonly nativeId: string | undefined;
|
|
235
|
-
readonly pluginId: string;
|
|
236
|
-
readonly connected: boolean;
|
|
237
|
-
readonly disabled: boolean;
|
|
238
|
-
readonly name: string;
|
|
239
|
-
readonly type: CameraType;
|
|
240
|
-
readonly info: CameraInformation;
|
|
241
|
-
readonly isCloud: boolean;
|
|
242
|
-
readonly hasLight: boolean;
|
|
243
|
-
readonly hasSiren: boolean;
|
|
244
|
-
readonly hasBinarySensor: boolean;
|
|
245
|
-
readonly hasBattery: boolean;
|
|
246
|
-
readonly hasMotionDetector: boolean;
|
|
247
|
-
readonly hasAudioDetector: boolean;
|
|
248
|
-
readonly hasObjectDetector: boolean;
|
|
249
|
-
readonly hasPtz: boolean;
|
|
250
|
-
readonly hasPrebuffer: boolean;
|
|
251
|
-
readonly activityZones: DetectionZone[];
|
|
252
|
-
readonly activitySettings: CameraActivitySettings;
|
|
253
|
-
readonly frameWorkerSettings: CameraFrameWorkerSettings;
|
|
254
|
-
readonly streamSource: CameraSource;
|
|
255
|
-
readonly snapshotSource: CameraSource | undefined;
|
|
256
|
-
readonly highResolutionSource: CameraSource | undefined;
|
|
257
|
-
readonly midResolutionSource: CameraSource | undefined;
|
|
258
|
-
readonly lowResolutionSource: CameraSource | undefined;
|
|
259
|
-
readonly ptz: CameraPTZDelegate;
|
|
260
|
-
readonly sources: CameraSource[];
|
|
261
|
-
readonly onConnected: Observable<boolean>;
|
|
262
|
-
readonly onLightSwitched: Observable<LightState>;
|
|
263
|
-
readonly onMotionDetected: Observable<MotionState>;
|
|
264
|
-
readonly onAudioDetected: Observable<AudioState>;
|
|
265
|
-
readonly onObjectDetected: Observable<ObjectState>;
|
|
266
|
-
readonly onDoorbellPressed: Observable<DoorbellState>;
|
|
267
|
-
readonly onSirenDetected: Observable<SirenState>;
|
|
268
|
-
readonly onBatteryChanged: Observable<BatteryState>;
|
|
269
|
-
snapshot(forceNew?: boolean): Promise<ArrayBuffer | undefined>;
|
|
270
|
-
onStateChange<T extends keyof StateValues>(stateName: T): Observable<{
|
|
271
|
-
newState: StateValues[T];
|
|
272
|
-
oldState: StateValues[T];
|
|
273
|
-
}>;
|
|
274
|
-
onPropertyChange<T extends keyof Camera>(property: T | T[]): Observable<{
|
|
275
|
-
property: T;
|
|
276
|
-
oldData: Camera[T];
|
|
277
|
-
newData: Camera[T];
|
|
278
|
-
}>;
|
|
279
|
-
getValue<T extends keyof StateValues>(stateName: T): StateValues[T];
|
|
280
|
-
setDelegate<T extends keyof CameraDelegates>(name: T, delegate: CameraDelegates[T]): void;
|
|
281
|
-
connect(): Promise<void>;
|
|
282
|
-
disconnect(): Promise<void>;
|
|
283
|
-
getFrames(prebufferDuration?: number): AsyncIterableIterator<VideoFrame>;
|
|
284
|
-
getMotionFrames(): AsyncIterableIterator<MotionFrame>;
|
|
285
|
-
updateState(stateName: 'light', eventData: LightSetEvent): Promise<void>;
|
|
286
|
-
updateState(stateName: 'motion', eventData: MotionSetEvent, frame?: VideoFrame): Promise<void>;
|
|
287
|
-
updateState(stateName: 'audio', eventData: AudioSetEvent): Promise<void>;
|
|
288
|
-
updateState(stateName: 'object', eventData: ObjectSetEvent): Promise<void>;
|
|
289
|
-
updateState(stateName: 'doorbell', eventData: DoorbellSetEvent): Promise<void>;
|
|
290
|
-
updateState(stateName: 'siren', eventData: SirenSetEvent): Promise<void>;
|
|
291
|
-
updateState(stateName: 'battery', eventData: BatterySetEvent): Promise<void>;
|
|
292
|
-
addCameraSource(source: CameraConfigInputSettings): Promise<void>;
|
|
293
|
-
updateCameraSource(sourceId: string, source: Partial<CameraConfigInputSettings>): Promise<void>;
|
|
294
|
-
removeCameraSource(sourceId: string): Promise<void>;
|
|
295
|
-
createSession(sourceName: string, options?: StreamingConnectionOptions): Promise<WeriftSession>;
|
|
296
|
-
}
|
|
297
|
-
export interface VideoFrame {
|
|
298
|
-
readonly frameData: FrameData;
|
|
299
|
-
readonly metadata: FrameMetadata;
|
|
300
|
-
readonly inputWidth: number;
|
|
301
|
-
readonly inputHeight: number;
|
|
302
|
-
readonly inputFormat: DecoderFormat;
|
|
303
|
-
toBuffer(options?: ImageOptions): Promise<FrameBuffer>;
|
|
304
|
-
toImage(options?: ImageOptions): Promise<FrameImage>;
|
|
305
|
-
save(path: string, options?: ImageOptions): Promise<void>;
|
|
306
|
-
}
|
|
307
|
-
export interface MotionFrame extends VideoFrame {
|
|
308
|
-
readonly motion: MotionState;
|
|
309
|
-
}
|
|
310
|
-
export interface BasicPeerConnection {
|
|
311
|
-
createOffer(): Promise<RTCSessionDescription>;
|
|
312
|
-
acceptAnswer(answer: {
|
|
313
|
-
type: 'answer';
|
|
314
|
-
sdp: string;
|
|
315
|
-
}): Promise<void>;
|
|
316
|
-
addIceCandidate(candidate: Partial<WeriftRTCICECandidate>): Promise<void>;
|
|
317
|
-
onIceCandidate: Subject<WeriftRTCICECandidate>;
|
|
318
|
-
onConnectionState: Observable<ConnectionState>;
|
|
319
|
-
close(): void;
|
|
320
|
-
requestKeyFrame?: () => void;
|
|
321
|
-
}
|
|
322
|
-
interface Subscribed {
|
|
323
|
-
addSubscriptions(...subscriptions: Subscription[]): void;
|
|
324
|
-
addAdditionalSubscriptions(...subscriptions: Subscription[]): void;
|
|
325
|
-
unsubscribe(): void;
|
|
326
|
-
unsubscribeAdditional(): void;
|
|
327
|
-
}
|
|
328
|
-
export {};
|
|
@@ -1,109 +1,3 @@
|
|
|
1
|
-
import type { AuthConfig } from '@camera.ui/common';
|
|
2
|
-
import type { Sharp } from 'sharp';
|
|
3
|
-
export type DecoderFormat = 'yuv' | 'rgb';
|
|
4
|
-
export interface ImageMetadata {
|
|
5
|
-
width: number;
|
|
6
|
-
height: number;
|
|
7
|
-
}
|
|
8
|
-
export interface AudioMetadata {
|
|
9
|
-
mimeType: 'audio/mpeg' | 'audio/wav' | 'audio/ogg';
|
|
10
|
-
}
|
|
11
|
-
export interface FrameMetadata {
|
|
12
|
-
format: DecoderFormat;
|
|
13
|
-
frameSize: number;
|
|
14
|
-
width: number;
|
|
15
|
-
origWidth: number;
|
|
16
|
-
height: number;
|
|
17
|
-
origHeight: number;
|
|
18
|
-
}
|
|
19
|
-
export interface ImageCrop {
|
|
20
|
-
top: number;
|
|
21
|
-
left: number;
|
|
22
|
-
width: number;
|
|
23
|
-
height: number;
|
|
24
|
-
}
|
|
25
|
-
export interface ImageResize {
|
|
26
|
-
width?: number;
|
|
27
|
-
height?: number;
|
|
28
|
-
}
|
|
29
|
-
export interface ImageFormat {
|
|
30
|
-
to: ImageOutputFormat;
|
|
31
|
-
}
|
|
32
|
-
export type ImageInputFormat = 'yuv' | 'rgb' | 'rgba' | 'gray';
|
|
33
|
-
export type ImageOutputFormat = 'rgb' | 'rgba' | 'gray';
|
|
34
|
-
export interface ImageOptions {
|
|
35
|
-
format?: ImageFormat;
|
|
36
|
-
crop?: ImageCrop;
|
|
37
|
-
resize?: ImageResize;
|
|
38
|
-
}
|
|
39
|
-
export interface ProcessPrebufferedImageRequest {
|
|
40
|
-
frameData: FrameData;
|
|
41
|
-
metadata: FrameMetadata;
|
|
42
|
-
options: ImageOptions;
|
|
43
|
-
prebufferDuration: number;
|
|
44
|
-
}
|
|
45
|
-
export interface ImageInformation {
|
|
46
|
-
width: number;
|
|
47
|
-
height: number;
|
|
48
|
-
channels: 1 | 3 | 4;
|
|
49
|
-
format: ImageInputFormat;
|
|
50
|
-
}
|
|
51
|
-
export interface FrameBuffer {
|
|
52
|
-
image: Uint8Array;
|
|
53
|
-
info: ImageInformation;
|
|
54
|
-
}
|
|
55
|
-
export interface FrameImage {
|
|
56
|
-
image: Sharp;
|
|
57
|
-
info: ImageInformation;
|
|
58
|
-
}
|
|
59
|
-
export interface BaseFrameWorkerConfig {
|
|
60
|
-
frameWorkerId: string;
|
|
61
|
-
cameraId: string;
|
|
62
|
-
cameraName: string;
|
|
63
|
-
ffmpegPath: string;
|
|
64
|
-
logLevel: string;
|
|
65
|
-
disableTimestamps: boolean;
|
|
66
|
-
auth: AuthConfig;
|
|
67
|
-
proxyEndpoints: string[];
|
|
68
|
-
fps: number;
|
|
69
|
-
resolution: number;
|
|
70
|
-
}
|
|
71
|
-
export type WorkerMessage = 'started' | 'getFFmpegArgs' | 'updateClient' | 'removeClient';
|
|
72
|
-
export type MainMessage = 'setCameraName' | 'recoverClients';
|
|
73
|
-
export interface MainToWorkerMessage {
|
|
74
|
-
message: MainMessage;
|
|
75
|
-
data: Record<string, any>;
|
|
76
|
-
}
|
|
77
|
-
export interface WorkerToMainResponse {
|
|
78
|
-
response?: Record<string, any>;
|
|
79
|
-
}
|
|
80
|
-
export interface WorkerToMainMessage {
|
|
81
|
-
message: WorkerMessage;
|
|
82
|
-
data: Record<string, any>;
|
|
83
|
-
}
|
|
84
|
-
export interface MainToWorkerResponse {
|
|
85
|
-
response?: Record<string, any>;
|
|
86
|
-
}
|
|
87
|
-
export type SignalingMessageType = 'connect' | 'disconnect' | 'metadata';
|
|
88
|
-
export interface SignalingRequest {
|
|
89
|
-
type: SignalingMessageType;
|
|
90
|
-
pluginId: string;
|
|
91
|
-
cameraId: string;
|
|
92
|
-
requestId: string;
|
|
93
|
-
}
|
|
94
|
-
export interface SignalingResponse {
|
|
95
|
-
type: SignalingMessageType;
|
|
96
|
-
requestId: string;
|
|
97
|
-
metadata?: FrameMetadata;
|
|
98
|
-
}
|
|
99
|
-
export interface PingMessage {
|
|
100
|
-
type: 'ping';
|
|
101
|
-
requestId: string;
|
|
102
|
-
}
|
|
103
|
-
export interface PongMessage {
|
|
104
|
-
type: 'pong';
|
|
105
|
-
requestId: string;
|
|
106
|
-
}
|
|
107
1
|
export interface HardwareSource {
|
|
108
2
|
name: string;
|
|
109
3
|
url: string;
|
|
@@ -111,24 +5,3 @@ export interface HardwareSource {
|
|
|
111
5
|
export interface HardwareResponse {
|
|
112
6
|
sources: HardwareSource[];
|
|
113
7
|
}
|
|
114
|
-
export interface FfmpegArgs {
|
|
115
|
-
hwaccel: string;
|
|
116
|
-
hwaccelArgs: string[];
|
|
117
|
-
hwaccelFilter: string;
|
|
118
|
-
threads: string;
|
|
119
|
-
}
|
|
120
|
-
export interface FrameWorkerClient {
|
|
121
|
-
pluginId: string;
|
|
122
|
-
requestIds: string[];
|
|
123
|
-
}
|
|
124
|
-
export interface RecoveredClient extends FrameWorkerClient {
|
|
125
|
-
}
|
|
126
|
-
export interface PrebufferContainer {
|
|
127
|
-
frameId: string;
|
|
128
|
-
time: number;
|
|
129
|
-
frame: Buffer;
|
|
130
|
-
}
|
|
131
|
-
export interface FrameData {
|
|
132
|
-
frameId: string;
|
|
133
|
-
timestamp: number;
|
|
134
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AuthConfig } from '@camera.ui/common';
|
|
2
1
|
import { Subscribed } from '@camera.ui/common';
|
|
3
|
-
import { PLUGIN_STATUS } from '
|
|
2
|
+
import { PLUGIN_STATUS } from '@camera.ui/plugineer';
|
|
3
|
+
import type { AuthConfig } from '@camera.ui/plugineer';
|
|
4
4
|
import type { CameraController } from '../camera/controller.js';
|
|
5
5
|
export declare class FrameWorker extends Subscribed {
|
|
6
6
|
readonly frameWorkerId: string;
|
|
@@ -10,6 +10,7 @@ export declare class FrameWorker extends Subscribed {
|
|
|
10
10
|
private ipcSubject;
|
|
11
11
|
private publisher?;
|
|
12
12
|
private subscriber?;
|
|
13
|
+
private coreManager;
|
|
13
14
|
private logger;
|
|
14
15
|
private configService;
|
|
15
16
|
private socketService;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ProxyConnection } from '@camera.ui/
|
|
1
|
+
import { ProxyConnection } from '@camera.ui/plugineer';
|
|
2
2
|
import { CameraDeviceProxy } from './proxy/cameraDevice.js';
|
|
3
3
|
import { CoreManagerProxy } from './proxy/coreManager.js';
|
|
4
4
|
import { DeviceManagerProxy } from './proxy/deviceManager.js';
|
|
5
5
|
import { NatsServer } from './server.js';
|
|
6
|
-
import type { ProxySubscription } from '@camera.ui/
|
|
7
|
-
import type { CameraStorage, StateValues } from '
|
|
6
|
+
import type { CameraDeviceListenerMessagePayload, CoreManagerProxyEvents, DeviceManagerProxyEvents, ProxySubscription } from '@camera.ui/plugineer';
|
|
7
|
+
import type { CameraStorage, StateValues } from '@camera.ui/types';
|
|
8
8
|
import type { MethodKeys, MethodType } from '../types.js';
|
|
9
|
-
import type {
|
|
9
|
+
import type { PluginMap, ProxyAuth } from './types.js';
|
|
10
10
|
import type { WebsocketProxy } from './websocket.js';
|
|
11
11
|
export declare class ProxyServer {
|
|
12
12
|
private api;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/
|
|
2
|
-
import type { CameraConfigInputSettings,
|
|
1
|
+
import type { CameraDeviceProxyMethods, CameraInterfaces, MessageQueue, ProxyMessageStructure, RefreshedStates } from '@camera.ui/plugineer';
|
|
2
|
+
import type { CameraConfigInputSettings, ProbeStream, SetValues } from '@camera.ui/types';
|
|
3
3
|
import type { MethodKeys, MethodType } from '../../types.js';
|
|
4
|
-
import type { CameraDeviceProxyMethods, RefreshedStates } from '../types.js';
|
|
5
4
|
export declare class CameraDeviceProxy implements CameraDeviceProxyMethods {
|
|
6
5
|
private api;
|
|
7
6
|
private configService;
|
|
@@ -12,6 +11,7 @@ export declare class CameraDeviceProxy implements CameraDeviceProxyMethods {
|
|
|
12
11
|
connect(cameraId: string, pluginId: string): void;
|
|
13
12
|
disconnect(cameraId: string, pluginId: string): void;
|
|
14
13
|
updateState<T extends keyof SetValues>(stateName: T, eventData: SetValues[T], cameraId: string, pluginId: string): Promise<void>;
|
|
14
|
+
probeStream(sourceId: string, cameraId: string): Promise<ProbeStream | undefined>;
|
|
15
15
|
addCameraSource(source: CameraConfigInputSettings, cameraId: string, pluginId: string): Promise<void>;
|
|
16
16
|
updateCameraSource(sourceId: string, source: Partial<CameraConfigInputSettings>, cameraId: string, pluginId: string): Promise<void>;
|
|
17
17
|
removeCameraSource(sourceId: string, cameraId: string, pluginId: string): Promise<void>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/
|
|
2
|
-
import type { IceServer } from '
|
|
3
|
-
|
|
4
|
-
export declare class CoreManagerProxy implements CoreManagerProxyMethods {
|
|
1
|
+
import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/plugineer';
|
|
2
|
+
import type { CoreManager, FfmpegArgs, IceServer } from '@camera.ui/types';
|
|
3
|
+
export declare class CoreManagerProxy implements CoreManager {
|
|
5
4
|
private configService;
|
|
6
5
|
private pluginsService;
|
|
7
6
|
private systemService;
|
|
8
7
|
private messageQueue;
|
|
9
8
|
constructor(messageQueue: MessageQueue);
|
|
10
9
|
getFFmpegPath(): Promise<string>;
|
|
10
|
+
getHwaccelInfo(): Promise<FfmpegArgs>;
|
|
11
11
|
getServerAddresses(): Promise<string[]>;
|
|
12
12
|
getIceServers(): Promise<IceServer[]>;
|
|
13
13
|
requestHandler(message: ProxyMessageStructure): Promise<void | ProxyMessageStructure>;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/
|
|
2
|
-
import type { Camera } from '
|
|
3
|
-
|
|
4
|
-
import type { DeviceManagerProxyMethods } from '../types.js';
|
|
5
|
-
export declare class DeviceManagerProxy implements DeviceManagerProxyMethods {
|
|
1
|
+
import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/plugineer';
|
|
2
|
+
import type { Camera, CameraConfig, DeviceManager } from '@camera.ui/types';
|
|
3
|
+
export declare class DeviceManagerProxy implements DeviceManager {
|
|
6
4
|
private camerasService;
|
|
7
5
|
private pluginsService;
|
|
8
6
|
private messageQueue;
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import type { AuthConfig } from '@camera.ui/
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { CameraConfig, CameraConfigInputSettings, SetValues, StateValues } from '../camera/types.js';
|
|
5
|
-
import type { AudioDetectionPlugin } from '../plugins/interfaces/audioDetection.js';
|
|
6
|
-
import type { BasePlugin } from '../plugins/interfaces/base.js';
|
|
7
|
-
import type { MotionDetectionPlugin } from '../plugins/interfaces/motionDetection.js';
|
|
8
|
-
import type { ObjectDetectionPlugin } from '../plugins/interfaces/objectDetection.js';
|
|
9
|
-
import type { CameraExtension } from '../plugins/types.js';
|
|
10
|
-
import type { IceServer } from '../services/config/types.js';
|
|
1
|
+
import type { AuthConfig } from '@camera.ui/plugineer';
|
|
2
|
+
import type { AudioDetectionPlugin, BasePlugin, MotionDetectionPlugin, ObjectDetectionPlugin } from '@camera.ui/types';
|
|
3
|
+
import type { VideoStreamingMode } from '../api/database/types.js';
|
|
11
4
|
export interface ProxyAuth {
|
|
12
5
|
cluster: AuthConfig;
|
|
13
6
|
server: AuthConfig;
|
|
@@ -17,95 +10,6 @@ export interface StreamPayload {
|
|
|
17
10
|
type: Exclude<VideoStreamingMode, 'webrtc' | 'webrtc/tcp'> | 'webrtc/offer' | 'webrtc/candidate';
|
|
18
11
|
value: string;
|
|
19
12
|
}
|
|
20
|
-
export interface RefreshedStates {
|
|
21
|
-
camera: Camera;
|
|
22
|
-
states: StateValues;
|
|
23
|
-
cameraState: boolean;
|
|
24
|
-
}
|
|
25
|
-
export interface CameraDeviceProxyMethods {
|
|
26
|
-
connect(): void;
|
|
27
|
-
disconnect(): void;
|
|
28
|
-
updateState<T extends keyof SetValues>(stateName: T, eventData: SetValues[T]): void;
|
|
29
|
-
refreshStates(): RefreshedStates;
|
|
30
|
-
addCameraSource(source: CameraConfigInputSettings): Promise<void>;
|
|
31
|
-
updateCameraSource(sourceId: string, source: Partial<CameraConfigInputSettings>): Promise<void>;
|
|
32
|
-
removeCameraSource(sourceId: string): Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
export interface CameraDeviceListenerStatePayload<K extends keyof StateValues> {
|
|
35
|
-
stateName: K;
|
|
36
|
-
data: {
|
|
37
|
-
newEvent: StateValues[K];
|
|
38
|
-
oldEvent: StateValues[K];
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export interface CameraDeviceListenerMessagePayload {
|
|
42
|
-
type: 'removed' | 'updated' | 'cameraState';
|
|
43
|
-
data?: any;
|
|
44
|
-
}
|
|
45
|
-
export interface DeviceManager extends DeviceManagerProxyMethods {
|
|
46
|
-
on<E extends keyof DeviceManagerProxyEventCallbacks>(event: E, listener: DeviceManagerProxyEventCallbacks[E]): this;
|
|
47
|
-
once<E extends keyof DeviceManagerProxyEventCallbacks>(event: E, listener: DeviceManagerProxyEventCallbacks[E]): this;
|
|
48
|
-
off<E extends keyof DeviceManagerProxyEventCallbacks>(event: E, listener: DeviceManagerProxyEventCallbacks[E]): this;
|
|
49
|
-
removeListener<E extends keyof DeviceManagerProxyEventCallbacks>(event: E, listener: DeviceManagerProxyEventCallbacks[E]): this;
|
|
50
|
-
removeAllListeners<E extends keyof DeviceManagerProxyEventCallbacks>(event?: E): this;
|
|
51
|
-
}
|
|
52
|
-
export interface DeviceManagerProxyMethods {
|
|
53
|
-
createCamera(cameraConfig: CameraConfig): Promise<CameraDevice>;
|
|
54
|
-
getCameraByName(cameraName: string): Promise<CameraDevice | undefined>;
|
|
55
|
-
getCameraById(cameraId: string): Promise<CameraDevice | undefined>;
|
|
56
|
-
removeCameraByName(cameraName: string): Promise<void>;
|
|
57
|
-
removeCameraById(cameraId: string): Promise<void>;
|
|
58
|
-
}
|
|
59
|
-
export interface DeviceManagerListenerMessagePayload {
|
|
60
|
-
type: keyof DeviceManagerProxyEventCallbacks;
|
|
61
|
-
data: DeviceManagerProxyEvents[keyof DeviceManagerProxyEvents];
|
|
62
|
-
}
|
|
63
|
-
export interface DeviceManagerProxyEvents {
|
|
64
|
-
cameraSelected: {
|
|
65
|
-
camera: Camera;
|
|
66
|
-
extension: CameraExtension;
|
|
67
|
-
};
|
|
68
|
-
cameraDeselected: {
|
|
69
|
-
camera: Camera;
|
|
70
|
-
extension: CameraExtension;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
export interface DeviceManagerProxyEventCallbacks {
|
|
74
|
-
cameraSelected: (camera: CameraDevice, extension: CameraExtension) => void;
|
|
75
|
-
cameraDeselected: (cameraId: string, extension: CameraExtension) => void;
|
|
76
|
-
}
|
|
77
|
-
export interface DeviceManagerProxyGenericEvent<K extends keyof DeviceManagerProxyEvents> {
|
|
78
|
-
type: K;
|
|
79
|
-
data: DeviceManagerProxyEvents[K];
|
|
80
|
-
}
|
|
81
|
-
export declare interface CoreManager extends CoreManagerProxyMethods {
|
|
82
|
-
on<E extends keyof CoreManagerProxyEventCallbacks>(event: E, listener: CoreManagerProxyEventCallbacks[E]): this;
|
|
83
|
-
once<E extends keyof CoreManagerProxyEventCallbacks>(event: E, listener: CoreManagerProxyEventCallbacks[E]): this;
|
|
84
|
-
off<E extends keyof CoreManagerProxyEventCallbacks>(event: E, listener: CoreManagerProxyEventCallbacks[E]): this;
|
|
85
|
-
removeListener<E extends keyof CoreManagerProxyEventCallbacks>(event: E, listener: CoreManagerProxyEventCallbacks[E]): this;
|
|
86
|
-
removeAllListeners<E extends keyof CoreManagerProxyEventCallbacks>(event?: E): this;
|
|
87
|
-
}
|
|
88
|
-
export interface CoreManagerProxyMethods {
|
|
89
|
-
getFFmpegPath(): Promise<string>;
|
|
90
|
-
getServerAddresses(): Promise<string[]>;
|
|
91
|
-
getIceServers(): Promise<IceServer[]>;
|
|
92
|
-
}
|
|
93
|
-
export interface CoreManagerListenerMessagePayload {
|
|
94
|
-
type: keyof CoreManagerProxyEventCallbacks;
|
|
95
|
-
data: CoreManagerProxyEvents[keyof CoreManagerProxyEvents];
|
|
96
|
-
}
|
|
97
|
-
export interface CoreManagerProxyEvents {
|
|
98
|
-
systemUpdated: {
|
|
99
|
-
system: DBSystem;
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
export interface CoreManagerProxyEventCallbacks {
|
|
103
|
-
systemUpdated: (system: DBSystem) => void;
|
|
104
|
-
}
|
|
105
|
-
export interface CoreManagerProxyGenericEvent<K extends keyof CoreManagerProxyEvents> {
|
|
106
|
-
type: K;
|
|
107
|
-
data: CoreManagerProxyEvents[K];
|
|
108
|
-
}
|
|
109
13
|
export interface PluginMap {
|
|
110
14
|
base: BasePlugin;
|
|
111
15
|
motionDetection: MotionDetectionPlugin;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { AuthConfig } from '@camera.ui/
|
|
1
|
+
import type { AuthConfig } from '@camera.ui/plugineer';
|
|
2
2
|
export declare function generateCredentials(): AuthConfig;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { CameraDeviceListenerMessagePayload } from '@camera.ui/plugineer';
|
|
2
|
+
import type { StateValues } from '@camera.ui/types';
|
|
1
3
|
import type { Namespace, Server } from 'socket.io';
|
|
2
4
|
import type { SocketNsp } from '../api/websocket/types.js';
|
|
3
|
-
import type { StateValues } from '../camera/types.js';
|
|
4
|
-
import type { CameraDeviceListenerMessagePayload } from './types.js';
|
|
5
5
|
export declare class WebsocketProxy {
|
|
6
6
|
nsp: Namespace;
|
|
7
7
|
nspName: SocketNsp;
|