@camera.ui/browser 0.0.101 → 0.0.103

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.
Files changed (40) hide show
  1. package/dist/bundle.js +1 -1
  2. package/dist/types/packages/client/browser/src/types.d.ts +1 -0
  3. package/dist/types/packages/plugineer/src/polyglot/node/camera/index.d.ts +2 -1
  4. package/dist/types/packages/plugineer/src/polyglot/node/camera/polygon.d.ts +1 -2
  5. package/dist/types/packages/plugineer/src/polyglot/node/plugins/types.d.ts +4 -0
  6. package/dist/types/packages/types/src/index.d.ts +5 -1
  7. package/dist/types/server/src/api/database/checks.d.ts +55 -0
  8. package/dist/types/server/src/api/database/index.d.ts +2 -1
  9. package/dist/types/server/src/api/database/migration.d.ts +1 -0
  10. package/dist/types/server/src/api/database/selfcheck.d.ts +48 -0
  11. package/dist/types/server/src/api/schemas/cameras.schema.d.ts +37 -37
  12. package/dist/types/server/src/api/schemas/users.schema.d.ts +48 -48
  13. package/dist/types/server/src/api/services/cameras.service.d.ts +1 -0
  14. package/dist/types/server/src/api/services/plugins.service.d.ts +1 -0
  15. package/dist/types/server/src/api/types/index.d.ts +2 -6
  16. package/dist/types/server/src/api/websocket/nsp/logs.d.ts +7 -1
  17. package/dist/types/server/src/api/websocket/nsp/metrics.d.ts +1 -1
  18. package/dist/types/server/src/api/websocket/nsp/status.d.ts +1 -1
  19. package/dist/types/server/src/api.d.ts +5 -14
  20. package/dist/types/server/src/camera/controller.d.ts +16 -3
  21. package/dist/types/server/src/{decoder/worker.d.ts → camera/frameWorker.d.ts} +9 -6
  22. package/dist/types/server/src/nats/index.d.ts +3 -2
  23. package/dist/types/server/src/nats/proxy/cameraDevice.d.ts +2 -1
  24. package/dist/types/server/src/nats/proxy/coreManager.d.ts +1 -1
  25. package/dist/types/server/src/nats/proxy/deviceManager.d.ts +1 -1
  26. package/dist/types/server/src/nats/types.d.ts +1 -1
  27. package/dist/types/server/src/nats/utils.d.ts +1 -1
  28. package/dist/types/server/src/plugins/index.d.ts +2 -4
  29. package/dist/types/server/src/plugins/plugin.d.ts +5 -0
  30. package/dist/types/server/src/plugins/worker.d.ts +20 -2
  31. package/dist/types/server/src/services/config/constants.d.ts +1 -0
  32. package/dist/types/server/src/services/config/index.d.ts +11 -2
  33. package/dist/types/server/src/services/config/types.d.ts +7 -0
  34. package/dist/types/shared/types/index.d.ts +1 -2
  35. package/package.json +3 -3
  36. package/dist/types/server/src/decoder/index.d.ts +0 -11
  37. package/dist/types/server/src/decoder/types.d.ts +0 -7
  38. /package/dist/types/packages/{plugineer/src/utils → common/src/nats}/messageQueue.d.ts +0 -0
  39. /package/dist/types/packages/{plugineer/src/utils → common/src/nats}/nats.d.ts +0 -0
  40. /package/dist/types/packages/{plugineer/src/utils → common/src/nats}/packer.d.ts +0 -0
@@ -35,6 +35,7 @@ export interface BaseLogger {
35
35
  log: (...args: any[]) => void;
36
36
  error: (...args: any[]) => void;
37
37
  warn: (...args: any[]) => void;
38
+ success: (...args: any[]) => void;
38
39
  debug: (...args: any[]) => void;
39
40
  trace: (...args: any[]) => void;
40
41
  attention: (...args: any[]) => void;
@@ -4,7 +4,7 @@ import { BehaviorSubject } from 'rxjs';
4
4
  import type { AudioSetEvent, AudioState, BatterySetEvent, BatteryState, Camera, CameraActivitySettings, CameraDelegate, CameraFrameWorkerSettings, CameraInformation, CameraPTZDelegate, CameraPrebufferDelegate, CameraSource, CameraType, DetectionZone, DoorbellSetEvent, DoorbellState, LightSetEvent, LightState, LoggerService, MotionSetEvent, MotionState, ObjectSetEvent, ObjectState, SetValues, SirenSetEvent, SirenState, StateValues } from '@camera.ui/types';
5
5
  import type { Observable } from 'rxjs';
6
6
  export declare abstract class BaseCameraDevice extends Subscribed {
7
- protected logger: LoggerService;
7
+ readonly logger: LoggerService;
8
8
  protected snapshotCache: TTLCache<string, ArrayBuffer>;
9
9
  protected cameraSubject: BehaviorSubject<Camera>;
10
10
  protected cameraState: BehaviorSubject<boolean>;
@@ -41,6 +41,7 @@ export declare abstract class BaseCameraDevice extends Subscribed {
41
41
  get hasBinarySensor(): boolean;
42
42
  get hasBattery(): boolean;
43
43
  get hasMotionDetector(): boolean;
44
+ get extendedMotionDetector(): boolean;
44
45
  get hasAudioDetector(): boolean;
45
46
  get hasObjectDetector(): boolean;
46
47
  get hasPtz(): boolean;
@@ -1,5 +1,4 @@
1
1
  import type { CameraActivitySettings, Detection, DetectionZone } from '@camera.ui/types';
2
2
  export declare const convertZonePointsToPixels: (zone: DetectionZone, detection: Detection) => DetectionZone;
3
3
  export declare const convertBoundingBoxToPixels: (detection: Detection) => Detection;
4
- export declare const areMotionDetectionsValid: (detections: Detection[], zones: DetectionZone[], activitySettings: CameraActivitySettings) => Detection[];
5
- export declare const areObjectDetectionsValid: (detections: Detection[], zones: DetectionZone[], activitySettings: CameraActivitySettings) => Detection[];
4
+ export declare const areDetectionsValid: (detections: Detection[], zones: DetectionZone[], activitySettings: CameraActivitySettings) => Detection[];
@@ -47,8 +47,12 @@ export type ExtensionOrSupport = {
47
47
  extension?: never;
48
48
  supportAdditionalCameras?: boolean;
49
49
  };
50
+ export interface PluginOptions {
51
+ extendedMotionDetection?: boolean;
52
+ }
50
53
  export interface PluginContractBase {
51
54
  builtIns?: CameraExtensionWithoutHub[];
55
+ options?: PluginOptions;
52
56
  dependencies?: string[];
53
57
  pythonVersion?: string;
54
58
  }
@@ -18,7 +18,7 @@ export type DecoderFormat = 'yuv' | 'rgb';
18
18
  export type ImageInputFormat = 'yuv' | 'rgb' | 'rgba' | 'gray';
19
19
  export type ImageOutputFormat = 'rgb' | 'rgba' | 'gray';
20
20
  export type CameraExtension = 'hub' | 'prebuffer' | 'motionDetection' | 'objectDetection' | 'audioDetection' | 'ptz';
21
- export type CameraFrameWorkerDecoder = 'pillow' | 'wasm';
21
+ export type CameraFrameWorkerDecoder = 'pillow' | 'wasm' | 'rust';
22
22
  export type CameraFrameWorkerResolution = '3840x2160' | '3072x1728' | '2560x1440' | '1920x1080' | '1440x1080' | '1280x720' | '960x540' | '640x480' | '640x360' | '320x240' | '320x180';
23
23
  export type AudioCodec = 'PCMU' | 'PCMA' | 'MPEG4-GENERIC' | 'opus' | 'G722' | 'MPA' | 'PCM' | 'FLAC';
24
24
  export type AudioFFmpegCodec = 'pcm_mulaw' | 'pcm_alaw' | 'aac' | 'libopus' | 'g722' | 'mp3' | 'pcm_s16be' | 'pcm_s16le' | 'flac';
@@ -386,6 +386,7 @@ export interface Camera extends Omit<BaseCamera, 'activityZones'> {
386
386
  hasAudioDetector: boolean;
387
387
  hasMotionDetector: boolean;
388
388
  hasObjectDetector: boolean;
389
+ extendedMotionDetector: boolean;
389
390
  hasPtz: boolean;
390
391
  hasPrebuffer: boolean;
391
392
  sources: CameraInput[];
@@ -407,6 +408,7 @@ export interface CameraDevice {
407
408
  readonly hasBinarySensor: boolean;
408
409
  readonly hasBattery: boolean;
409
410
  readonly hasMotionDetector: boolean;
411
+ readonly extendedMotionDetector: boolean;
410
412
  readonly hasAudioDetector: boolean;
411
413
  readonly hasObjectDetector: boolean;
412
414
  readonly hasPtz: boolean;
@@ -430,6 +432,7 @@ export interface CameraDevice {
430
432
  readonly onDoorbellPressed: Observable<DoorbellState>;
431
433
  readonly onSirenDetected: Observable<SirenState>;
432
434
  readonly onBatteryChanged: Observable<BatteryState>;
435
+ readonly logger: LoggerService;
433
436
  snapshot(forceNew?: boolean): Promise<ArrayBuffer | undefined>;
434
437
  onStateChange<T extends keyof StateValues>(stateName: T): Observable<{
435
438
  newState: StateValues[T];
@@ -602,6 +605,7 @@ export interface LoggerService {
602
605
  log: (...args: any[]) => void;
603
606
  error: (...args: any[]) => void;
604
607
  warn: (...args: any[]) => void;
608
+ success: (...args: any[]) => void;
605
609
  debug: (...args: any[]) => void;
606
610
  trace: (...args: any[]) => void;
607
611
  attention: (...args: any[]) => void;
@@ -0,0 +1,55 @@
1
+ export interface PathExistenceResult {
2
+ path: string;
3
+ exists: boolean;
4
+ }
5
+ export interface FFmpegExistenceResult {
6
+ path: string;
7
+ exists: boolean;
8
+ hasPermissions: boolean;
9
+ error?: Error;
10
+ }
11
+ export interface PathPermissionsResult {
12
+ path: string;
13
+ hasPermissions: boolean;
14
+ error?: Error;
15
+ }
16
+ export interface CleanedUpFilesResult {
17
+ path: string;
18
+ wasCleaned: boolean;
19
+ error?: Error;
20
+ }
21
+ export interface DatabaseCorruptionResult {
22
+ dbPath: string;
23
+ isCorrupt: boolean;
24
+ error?: Error;
25
+ }
26
+ export interface PortAvailabilityResult {
27
+ port: number;
28
+ isAvailable: boolean;
29
+ }
30
+ export interface OrphanedProcessesResult {
31
+ processInfo: ProcInfo;
32
+ killed?: boolean;
33
+ wasOrphaned?: boolean;
34
+ error?: Error;
35
+ }
36
+ export interface PathPermission {
37
+ path: string;
38
+ mode: number;
39
+ }
40
+ export interface ProcInfo {
41
+ pid: number;
42
+ startTime: number;
43
+ command: string;
44
+ args: string[];
45
+ titles?: string[];
46
+ uniqueId?: string;
47
+ }
48
+ export declare function checkPathsExist(pathsToCheck: string[]): Promise<PathExistenceResult[]>;
49
+ export declare function checkPathPermissions(pathsWithPermissionsToCheck: PathPermission[]): Promise<PathPermissionsResult[]>;
50
+ export declare function cleanUpFiles(filesToClean: string[]): Promise<CleanedUpFilesResult[]>;
51
+ export declare function checkDatabaseCorruption(dbPath: string): Promise<DatabaseCorruptionResult>;
52
+ export declare function checkPortAvailability(portsToCheck: number[]): Promise<PortAvailabilityResult[]>;
53
+ export declare function checkFfmpegBinary(ffmpegPaths: string[]): Promise<PathExistenceResult[]>;
54
+ export declare function checkOrphanedProcesses(processInfos: ProcInfo[]): Promise<OrphanedProcessesResult[]>;
55
+ export declare function checkInstalledFFmpegs(): Promise<FFmpegExistenceResult[]>;
@@ -2,7 +2,7 @@ import type { FastifyInstance } from 'fastify';
2
2
  import type { Database as DB, RootDatabase as RootDB } from 'lmdb';
3
3
  import type { DBAuth, DBCamera, DBPlugin, DBSettings, DBSystem, DBUser } from './types.js';
4
4
  export declare class Database {
5
- static readonly VERSION = "1.0.3";
5
+ static readonly VERSION = "1.0.5";
6
6
  authDB: RootDB<DBAuth, 'auth'>;
7
7
  camerasDB: DB<DBCamera[], 'cameras'>;
8
8
  pluginsDB: DB<DBPlugin[], 'plugins'>;
@@ -11,6 +11,7 @@ export declare class Database {
11
11
  systemDB: DB<DBSystem, 'system'>;
12
12
  private lowdb;
13
13
  private databaseMigration;
14
+ private selfCheck;
14
15
  private databases;
15
16
  private app;
16
17
  private configService;
@@ -2,6 +2,7 @@ import type { CameraUiDatabase } from './types.js';
2
2
  export declare class DatabaseMigrationTable {
3
3
  private db;
4
4
  private logger;
5
+ private configService;
5
6
  private get camerasDB();
6
7
  private get pluginsDB();
7
8
  private get settingsDB();
@@ -0,0 +1,48 @@
1
+ import type { CleanedUpFilesResult, DatabaseCorruptionResult, FFmpegExistenceResult, OrphanedProcessesResult, PathExistenceResult, PathPermissionsResult, PortAvailabilityResult } from './checks.js';
2
+ export interface SelfCheckConfig {
3
+ enabled: boolean;
4
+ checks: {
5
+ pathsExistence: boolean;
6
+ pathsPermissions: boolean;
7
+ cleanupFiles: boolean;
8
+ databaseCorruption: boolean;
9
+ portAvailability: boolean;
10
+ ffmpegBinaries: boolean;
11
+ orphanedProcesses: boolean;
12
+ };
13
+ }
14
+ export interface SelfCheckResults {
15
+ status: 'success' | 'error' | 'disabled';
16
+ error?: string;
17
+ pathsExistence?: PathExistenceResult[];
18
+ pathsPermissions?: PathPermissionsResult[];
19
+ cleanedUpFiles?: CleanedUpFilesResult[];
20
+ databaseCorruption?: DatabaseCorruptionResult;
21
+ portAvailability?: PortAvailabilityResult[];
22
+ installedFFmpegs?: FFmpegExistenceResult[];
23
+ orphanedProcesses?: OrphanedProcessesResult[];
24
+ }
25
+ export declare class SelfCheck {
26
+ private logger;
27
+ private configService;
28
+ private config;
29
+ constructor(config?: Partial<SelfCheckConfig>);
30
+ run(): Promise<void>;
31
+ private performChecks;
32
+ private checkForCriticalIssues;
33
+ private checkForNonCriticalIssues;
34
+ private saveCheckReport;
35
+ private generateCheckReport;
36
+ private formatIssues;
37
+ private formatPathsExistence;
38
+ private formatPathsPermissions;
39
+ private formatCleanedUpFiles;
40
+ private formatDatabaseCorruption;
41
+ private formatPortAvailability;
42
+ private formatFfmpegBinaries;
43
+ private formatOrphanedProcesses;
44
+ private sanitizeDetails;
45
+ private serializeError;
46
+ private getPathName;
47
+ private isCriticalPath;
48
+ }
@@ -35,8 +35,8 @@ export declare const regionsSchema: zod.ZodObject<{
35
35
  isPrivacyMask: zod.ZodDefault<zod.ZodBoolean>;
36
36
  }, "strict", zod.ZodTypeAny, {
37
37
  filter: "include" | "exclude";
38
- type: "intersect" | "contain";
39
38
  _id: string;
39
+ type: "intersect" | "contain";
40
40
  coords: {
41
41
  _id: string;
42
42
  points: [number, number];
@@ -50,8 +50,8 @@ export declare const regionsSchema: zod.ZodObject<{
50
50
  }[];
51
51
  classes: ("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")[];
52
52
  filter?: "include" | "exclude" | undefined;
53
- type?: "intersect" | "contain" | undefined;
54
53
  _id?: string | undefined;
54
+ type?: "intersect" | "contain" | undefined;
55
55
  isPrivacyMask?: boolean | undefined;
56
56
  }>;
57
57
  export declare const cameraZonesSchema: zod.ZodObject<{
@@ -74,8 +74,8 @@ export declare const cameraZonesSchema: zod.ZodObject<{
74
74
  isPrivacyMask: zod.ZodDefault<zod.ZodBoolean>;
75
75
  }, "strict", zod.ZodTypeAny, {
76
76
  filter: "include" | "exclude";
77
- type: "intersect" | "contain";
78
77
  _id: string;
78
+ type: "intersect" | "contain";
79
79
  coords: {
80
80
  _id: string;
81
81
  points: [number, number];
@@ -89,16 +89,16 @@ export declare const cameraZonesSchema: zod.ZodObject<{
89
89
  }[];
90
90
  classes: ("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")[];
91
91
  filter?: "include" | "exclude" | undefined;
92
- type?: "intersect" | "contain" | undefined;
93
92
  _id?: string | undefined;
93
+ type?: "intersect" | "contain" | undefined;
94
94
  isPrivacyMask?: boolean | undefined;
95
95
  }>, "many">;
96
96
  }, "strip", zod.ZodTypeAny, {
97
97
  name: string;
98
98
  regions: {
99
99
  filter: "include" | "exclude";
100
- type: "intersect" | "contain";
101
100
  _id: string;
101
+ type: "intersect" | "contain";
102
102
  coords: {
103
103
  _id: string;
104
104
  points: [number, number];
@@ -115,8 +115,8 @@ export declare const cameraZonesSchema: zod.ZodObject<{
115
115
  }[];
116
116
  classes: ("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")[];
117
117
  filter?: "include" | "exclude" | undefined;
118
- type?: "intersect" | "contain" | undefined;
119
118
  _id?: string | undefined;
119
+ type?: "intersect" | "contain" | undefined;
120
120
  isPrivacyMask?: boolean | undefined;
121
121
  }[];
122
122
  }>;
@@ -218,15 +218,15 @@ export declare const extensionsSettingsSchema: zod.ZodObject<{
218
218
  }>;
219
219
  export declare const streamingModeSchema: zod.ZodUnion<[zod.ZodLiteral<"mse">, zod.ZodLiteral<"webrtc">, zod.ZodLiteral<"webrtc/tcp">, zod.ZodLiteral<"mjpeg">, zod.ZodLiteral<"hls">, zod.ZodLiteral<"mp4">]>;
220
220
  export declare const frameWorkerSettingsSchema: zod.ZodObject<{
221
- decoder: zod.ZodUnion<[zod.ZodLiteral<"pillow">, zod.ZodLiteral<"wasm">]>;
221
+ decoder: zod.ZodUnion<[zod.ZodLiteral<"pillow">, zod.ZodLiteral<"wasm">, zod.ZodLiteral<"rust">]>;
222
222
  fps: zod.ZodNumber;
223
223
  resolution: zod.ZodUnion<[zod.ZodLiteral<"3840x2160">, zod.ZodLiteral<"3072x1728">, zod.ZodLiteral<"2560x1440">, zod.ZodLiteral<"1920x1080">, zod.ZodLiteral<"1440x1080">, zod.ZodLiteral<"1280x720">, zod.ZodLiteral<"960x540">, zod.ZodLiteral<"640x480">, zod.ZodLiteral<"640x360">, zod.ZodLiteral<"320x240">, zod.ZodLiteral<"320x180">]>;
224
224
  }, "strip", zod.ZodTypeAny, {
225
- decoder: "pillow" | "wasm";
225
+ decoder: "pillow" | "wasm" | "rust";
226
226
  fps: number;
227
227
  resolution: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180";
228
228
  }, {
229
- decoder: "pillow" | "wasm";
229
+ decoder: "pillow" | "wasm" | "rust";
230
230
  fps: number;
231
231
  resolution: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180";
232
232
  }>;
@@ -391,8 +391,8 @@ export declare const createCameraSchema: zod.ZodObject<{
391
391
  isPrivacyMask: zod.ZodDefault<zod.ZodBoolean>;
392
392
  }, "strict", zod.ZodTypeAny, {
393
393
  filter: "include" | "exclude";
394
- type: "intersect" | "contain";
395
394
  _id: string;
395
+ type: "intersect" | "contain";
396
396
  coords: {
397
397
  _id: string;
398
398
  points: [number, number];
@@ -406,16 +406,16 @@ export declare const createCameraSchema: zod.ZodObject<{
406
406
  }[];
407
407
  classes: ("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")[];
408
408
  filter?: "include" | "exclude" | undefined;
409
- type?: "intersect" | "contain" | undefined;
410
409
  _id?: string | undefined;
410
+ type?: "intersect" | "contain" | undefined;
411
411
  isPrivacyMask?: boolean | undefined;
412
412
  }>, "many">;
413
413
  }, "strip", zod.ZodTypeAny, {
414
414
  name: string;
415
415
  regions: {
416
416
  filter: "include" | "exclude";
417
- type: "intersect" | "contain";
418
417
  _id: string;
418
+ type: "intersect" | "contain";
419
419
  coords: {
420
420
  _id: string;
421
421
  points: [number, number];
@@ -432,8 +432,8 @@ export declare const createCameraSchema: zod.ZodObject<{
432
432
  }[];
433
433
  classes: ("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")[];
434
434
  filter?: "include" | "exclude" | undefined;
435
- type?: "intersect" | "contain" | undefined;
436
435
  _id?: string | undefined;
436
+ type?: "intersect" | "contain" | undefined;
437
437
  isPrivacyMask?: boolean | undefined;
438
438
  }[];
439
439
  }>, "many">>;
@@ -468,21 +468,19 @@ export declare const createCameraSchema: zod.ZodObject<{
468
468
  };
469
469
  }>>;
470
470
  frameWorkerSettings: zod.ZodDefault<zod.ZodObject<{
471
- decoder: zod.ZodUnion<[zod.ZodLiteral<"pillow">, zod.ZodLiteral<"wasm">]>;
471
+ decoder: zod.ZodUnion<[zod.ZodLiteral<"pillow">, zod.ZodLiteral<"wasm">, zod.ZodLiteral<"rust">]>;
472
472
  fps: zod.ZodNumber;
473
473
  resolution: zod.ZodUnion<[zod.ZodLiteral<"3840x2160">, zod.ZodLiteral<"3072x1728">, zod.ZodLiteral<"2560x1440">, zod.ZodLiteral<"1920x1080">, zod.ZodLiteral<"1440x1080">, zod.ZodLiteral<"1280x720">, zod.ZodLiteral<"960x540">, zod.ZodLiteral<"640x480">, zod.ZodLiteral<"640x360">, zod.ZodLiteral<"320x240">, zod.ZodLiteral<"320x180">]>;
474
474
  }, "strip", zod.ZodTypeAny, {
475
- decoder: "pillow" | "wasm";
475
+ decoder: "pillow" | "wasm" | "rust";
476
476
  fps: number;
477
477
  resolution: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180";
478
478
  }, {
479
- decoder: "pillow" | "wasm";
479
+ decoder: "pillow" | "wasm" | "rust";
480
480
  fps: number;
481
481
  resolution: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180";
482
482
  }>>;
483
483
  }, "strict", zod.ZodTypeAny, {
484
- pluginId: string;
485
- type: "camera" | "doorbell";
486
484
  disabled: boolean;
487
485
  _id: string;
488
486
  name: string;
@@ -490,8 +488,8 @@ export declare const createCameraSchema: zod.ZodObject<{
490
488
  name: string;
491
489
  regions: {
492
490
  filter: "include" | "exclude";
493
- type: "intersect" | "contain";
494
491
  _id: string;
492
+ type: "intersect" | "contain";
495
493
  coords: {
496
494
  _id: string;
497
495
  points: [number, number];
@@ -500,6 +498,7 @@ export declare const createCameraSchema: zod.ZodObject<{
500
498
  isPrivacyMask: boolean;
501
499
  }[];
502
500
  }[];
501
+ pluginId: string;
503
502
  isCloud: boolean;
504
503
  hasLight: boolean;
505
504
  hasSiren: boolean;
@@ -513,6 +512,7 @@ export declare const createCameraSchema: zod.ZodObject<{
513
512
  firmwareVersion?: string | undefined;
514
513
  supportUrl?: string | undefined;
515
514
  };
515
+ type: "doorbell" | "camera";
516
516
  snapshotTTL: number;
517
517
  activitySettings: {
518
518
  object: {
@@ -523,7 +523,7 @@ export declare const createCameraSchema: zod.ZodObject<{
523
523
  };
524
524
  };
525
525
  frameWorkerSettings: {
526
- decoder: "pillow" | "wasm";
526
+ decoder: "pillow" | "wasm" | "rust";
527
527
  fps: number;
528
528
  resolution: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180";
529
529
  };
@@ -560,8 +560,6 @@ export declare const createCameraSchema: zod.ZodObject<{
560
560
  _id?: string | undefined;
561
561
  internal?: boolean | undefined;
562
562
  }[];
563
- pluginId?: string | undefined;
564
- type?: "camera" | "doorbell" | undefined;
565
563
  disabled?: boolean | undefined;
566
564
  _id?: string | undefined;
567
565
  activityZones?: {
@@ -573,12 +571,13 @@ export declare const createCameraSchema: zod.ZodObject<{
573
571
  }[];
574
572
  classes: ("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")[];
575
573
  filter?: "include" | "exclude" | undefined;
576
- type?: "intersect" | "contain" | undefined;
577
574
  _id?: string | undefined;
575
+ type?: "intersect" | "contain" | undefined;
578
576
  isPrivacyMask?: boolean | undefined;
579
577
  }[];
580
578
  }[] | undefined;
581
579
  nativeId?: string | undefined;
580
+ pluginId?: string | undefined;
582
581
  isCloud?: boolean | undefined;
583
582
  hasLight?: boolean | undefined;
584
583
  hasSiren?: boolean | undefined;
@@ -592,6 +591,7 @@ export declare const createCameraSchema: zod.ZodObject<{
592
591
  firmwareVersion?: string | undefined;
593
592
  supportUrl?: string | undefined;
594
593
  } | undefined;
594
+ type?: "doorbell" | "camera" | undefined;
595
595
  snapshotTTL?: number | undefined;
596
596
  activitySettings?: {
597
597
  object: {
@@ -602,7 +602,7 @@ export declare const createCameraSchema: zod.ZodObject<{
602
602
  };
603
603
  } | undefined;
604
604
  frameWorkerSettings?: {
605
- decoder: "pillow" | "wasm";
605
+ decoder: "pillow" | "wasm" | "rust";
606
606
  fps: number;
607
607
  resolution: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180";
608
608
  } | undefined;
@@ -743,8 +743,8 @@ export declare const patchCameraSchema: zod.ZodObject<{
743
743
  isPrivacyMask: zod.ZodDefault<zod.ZodBoolean>;
744
744
  }, "strict", zod.ZodTypeAny, {
745
745
  filter: "include" | "exclude";
746
- type: "intersect" | "contain";
747
746
  _id: string;
747
+ type: "intersect" | "contain";
748
748
  coords: {
749
749
  _id: string;
750
750
  points: [number, number];
@@ -758,16 +758,16 @@ export declare const patchCameraSchema: zod.ZodObject<{
758
758
  }[];
759
759
  classes: ("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")[];
760
760
  filter?: "include" | "exclude" | undefined;
761
- type?: "intersect" | "contain" | undefined;
762
761
  _id?: string | undefined;
762
+ type?: "intersect" | "contain" | undefined;
763
763
  isPrivacyMask?: boolean | undefined;
764
764
  }>, "many">;
765
765
  }, "strip", zod.ZodTypeAny, {
766
766
  name: string;
767
767
  regions: {
768
768
  filter: "include" | "exclude";
769
- type: "intersect" | "contain";
770
769
  _id: string;
770
+ type: "intersect" | "contain";
771
771
  coords: {
772
772
  _id: string;
773
773
  points: [number, number];
@@ -784,8 +784,8 @@ export declare const patchCameraSchema: zod.ZodObject<{
784
784
  }[];
785
785
  classes: ("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")[];
786
786
  filter?: "include" | "exclude" | undefined;
787
- type?: "intersect" | "contain" | undefined;
788
787
  _id?: string | undefined;
788
+ type?: "intersect" | "contain" | undefined;
789
789
  isPrivacyMask?: boolean | undefined;
790
790
  }[];
791
791
  }>, "many">>;
@@ -820,28 +820,27 @@ export declare const patchCameraSchema: zod.ZodObject<{
820
820
  } | undefined;
821
821
  }>>;
822
822
  frameWorkerSettings: zod.ZodOptional<zod.ZodObject<{
823
- decoder: zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"pillow">, zod.ZodLiteral<"wasm">]>>;
823
+ decoder: zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"pillow">, zod.ZodLiteral<"wasm">, zod.ZodLiteral<"rust">]>>;
824
824
  fps: zod.ZodOptional<zod.ZodNumber>;
825
825
  resolution: zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"3840x2160">, zod.ZodLiteral<"3072x1728">, zod.ZodLiteral<"2560x1440">, zod.ZodLiteral<"1920x1080">, zod.ZodLiteral<"1440x1080">, zod.ZodLiteral<"1280x720">, zod.ZodLiteral<"960x540">, zod.ZodLiteral<"640x480">, zod.ZodLiteral<"640x360">, zod.ZodLiteral<"320x240">, zod.ZodLiteral<"320x180">]>>;
826
826
  }, "strip", zod.ZodTypeAny, {
827
- decoder?: "pillow" | "wasm" | undefined;
827
+ decoder?: "pillow" | "wasm" | "rust" | undefined;
828
828
  fps?: number | undefined;
829
829
  resolution?: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180" | undefined;
830
830
  }, {
831
- decoder?: "pillow" | "wasm" | undefined;
831
+ decoder?: "pillow" | "wasm" | "rust" | undefined;
832
832
  fps?: number | undefined;
833
833
  resolution?: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180" | undefined;
834
834
  }>>;
835
835
  }, "strict", zod.ZodTypeAny, {
836
- type?: "camera" | "doorbell" | undefined;
837
836
  disabled?: boolean | undefined;
838
837
  name?: string | undefined;
839
838
  activityZones?: {
840
839
  name: string;
841
840
  regions: {
842
841
  filter: "include" | "exclude";
843
- type: "intersect" | "contain";
844
842
  _id: string;
843
+ type: "intersect" | "contain";
845
844
  coords: {
846
845
  _id: string;
847
846
  points: [number, number];
@@ -858,6 +857,7 @@ export declare const patchCameraSchema: zod.ZodObject<{
858
857
  firmwareVersion?: string | undefined;
859
858
  supportUrl?: string | undefined;
860
859
  } | undefined;
860
+ type?: "doorbell" | "camera" | undefined;
861
861
  snapshotTTL?: number | undefined;
862
862
  activitySettings?: {
863
863
  object?: {
@@ -868,7 +868,7 @@ export declare const patchCameraSchema: zod.ZodObject<{
868
868
  } | undefined;
869
869
  } | undefined;
870
870
  frameWorkerSettings?: {
871
- decoder?: "pillow" | "wasm" | undefined;
871
+ decoder?: "pillow" | "wasm" | "rust" | undefined;
872
872
  fps?: number | undefined;
873
873
  resolution?: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180" | undefined;
874
874
  } | undefined;
@@ -896,7 +896,6 @@ export declare const patchCameraSchema: zod.ZodObject<{
896
896
  streamingSource?: "high-resolution" | "mid-resolution" | "low-resolution" | undefined;
897
897
  } | undefined;
898
898
  }, {
899
- type?: "camera" | "doorbell" | undefined;
900
899
  disabled?: boolean | undefined;
901
900
  name?: string | undefined;
902
901
  activityZones?: {
@@ -908,8 +907,8 @@ export declare const patchCameraSchema: zod.ZodObject<{
908
907
  }[];
909
908
  classes: ("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")[];
910
909
  filter?: "include" | "exclude" | undefined;
911
- type?: "intersect" | "contain" | undefined;
912
910
  _id?: string | undefined;
911
+ type?: "intersect" | "contain" | undefined;
913
912
  isPrivacyMask?: boolean | undefined;
914
913
  }[];
915
914
  }[] | undefined;
@@ -921,6 +920,7 @@ export declare const patchCameraSchema: zod.ZodObject<{
921
920
  firmwareVersion?: string | undefined;
922
921
  supportUrl?: string | undefined;
923
922
  } | undefined;
923
+ type?: "doorbell" | "camera" | undefined;
924
924
  snapshotTTL?: number | undefined;
925
925
  activitySettings?: {
926
926
  object?: {
@@ -931,7 +931,7 @@ export declare const patchCameraSchema: zod.ZodObject<{
931
931
  } | undefined;
932
932
  } | undefined;
933
933
  frameWorkerSettings?: {
934
- decoder?: "pillow" | "wasm" | undefined;
934
+ decoder?: "pillow" | "wasm" | "rust" | undefined;
935
935
  fps?: number | undefined;
936
936
  resolution?: "3840x2160" | "3072x1728" | "2560x1440" | "1920x1080" | "1440x1080" | "1280x720" | "960x540" | "640x480" | "640x360" | "320x240" | "320x180" | undefined;
937
937
  } | undefined;