@camera.ui/browser 0.0.110 → 0.0.112

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 (133) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +10 -1
  3. package/dist/index.d.ts +1269 -0
  4. package/dist/index.js +4179 -0
  5. package/package.json +55 -36
  6. package/CHANGELOG.md +0 -8
  7. package/dist/bundle.js +0 -2
  8. package/dist/bundle.js.LICENSE.txt +0 -23
  9. package/dist/types/packages/client/browser/src/api.d.ts +0 -8
  10. package/dist/types/packages/client/browser/src/client.d.ts +0 -23
  11. package/dist/types/packages/client/browser/src/index.d.ts +0 -2
  12. package/dist/types/packages/client/browser/src/proxy/cameraDevice.d.ts +0 -30
  13. package/dist/types/packages/client/browser/src/proxy/coreManager.d.ts +0 -16
  14. package/dist/types/packages/client/browser/src/proxy/deviceManager.d.ts +0 -18
  15. package/dist/types/packages/client/browser/src/proxy/index.d.ts +0 -3
  16. package/dist/types/packages/client/browser/src/socket.d.ts +0 -15
  17. package/dist/types/packages/client/browser/src/streaming/go2rts-session.d.ts +0 -71
  18. package/dist/types/packages/client/browser/src/types.d.ts +0 -58
  19. package/dist/types/packages/client/browser/src/utils.d.ts +0 -12
  20. package/dist/types/packages/common/src/nats/messageQueue.d.ts +0 -48
  21. package/dist/types/packages/common/src/nats/nats.d.ts +0 -30
  22. package/dist/types/packages/common/src/nats/packer.d.ts +0 -2
  23. package/dist/types/packages/common/src/utils/subscribed.d.ts +0 -18
  24. package/dist/types/packages/plugineer/src/polyglot/node/camera/index.d.ts +0 -91
  25. package/dist/types/packages/plugineer/src/polyglot/node/camera/interfaces/camera.d.ts +0 -8
  26. package/dist/types/packages/plugineer/src/polyglot/node/camera/interfaces/ptz.d.ts +0 -11
  27. package/dist/types/packages/plugineer/src/polyglot/node/camera/iou.d.ts +0 -2
  28. package/dist/types/packages/plugineer/src/polyglot/node/camera/polygon.d.ts +0 -4
  29. package/dist/types/packages/plugineer/src/polyglot/node/camera/types.d.ts +0 -18
  30. package/dist/types/packages/plugineer/src/polyglot/node/plugins/schema.d.ts +0 -62
  31. package/dist/types/packages/plugineer/src/polyglot/node/plugins/types.d.ts +0 -135
  32. package/dist/types/packages/plugineer/src/types.d.ts +0 -4
  33. package/dist/types/packages/types/src/index.d.ts +0 -730
  34. package/dist/types/server/src/api/controllers/api.controller.d.ts +0 -7
  35. package/dist/types/server/src/api/controllers/auth.controller.d.ts +0 -16
  36. package/dist/types/server/src/api/controllers/backup.controller.d.ts +0 -10
  37. package/dist/types/server/src/api/controllers/cameras.controller.d.ts +0 -38
  38. package/dist/types/server/src/api/controllers/config.controller.d.ts +0 -14
  39. package/dist/types/server/src/api/controllers/files.controller.d.ts +0 -8
  40. package/dist/types/server/src/api/controllers/frameWorkers.controller.d.ts +0 -11
  41. package/dist/types/server/src/api/controllers/plugins.controller.d.ts +0 -48
  42. package/dist/types/server/src/api/controllers/system.controller.d.ts +0 -23
  43. package/dist/types/server/src/api/controllers/users.controller.d.ts +0 -28
  44. package/dist/types/server/src/api/database/checks.d.ts +0 -55
  45. package/dist/types/server/src/api/database/constants.d.ts +0 -8
  46. package/dist/types/server/src/api/database/index.d.ts +0 -30
  47. package/dist/types/server/src/api/database/migration.d.ts +0 -15
  48. package/dist/types/server/src/api/database/selfcheck.d.ts +0 -48
  49. package/dist/types/server/src/api/database/types.d.ts +0 -88
  50. package/dist/types/server/src/api/go2rtc/api/application.d.ts +0 -9
  51. package/dist/types/server/src/api/go2rtc/api/config.d.ts +0 -8
  52. package/dist/types/server/src/api/go2rtc/api/index.d.ts +0 -1
  53. package/dist/types/server/src/api/go2rtc/api/snapshot.d.ts +0 -8
  54. package/dist/types/server/src/api/go2rtc/api/streams.d.ts +0 -12
  55. package/dist/types/server/src/api/go2rtc/index.d.ts +0 -14
  56. package/dist/types/server/src/api/go2rtc/queue.d.ts +0 -10
  57. package/dist/types/server/src/api/go2rtc/types.d.ts +0 -92
  58. package/dist/types/server/src/api/index.d.ts +0 -22
  59. package/dist/types/server/src/api/middlewares/authPermission.middleware.d.ts +0 -5
  60. package/dist/types/server/src/api/middlewares/authValidation.middleware.d.ts +0 -4
  61. package/dist/types/server/src/api/middlewares/pagination.middleware.d.ts +0 -3
  62. package/dist/types/server/src/api/middlewares/socketAuth.middleware.d.ts +0 -41
  63. package/dist/types/server/src/api/plugins/header.plugin.d.ts +0 -2
  64. package/dist/types/server/src/api/plugins/socket.plugin.d.ts +0 -11
  65. package/dist/types/server/src/api/plugins/system.plugin.d.ts +0 -20
  66. package/dist/types/server/src/api/plugins/useragent.plugin.d.ts +0 -8
  67. package/dist/types/server/src/api/routes/api.routes.d.ts +0 -2
  68. package/dist/types/server/src/api/routes/auth.routes.d.ts +0 -2
  69. package/dist/types/server/src/api/routes/backup.routes.d.ts +0 -2
  70. package/dist/types/server/src/api/routes/cameras.routes.d.ts +0 -2
  71. package/dist/types/server/src/api/routes/config.routes.d.ts +0 -2
  72. package/dist/types/server/src/api/routes/files.routes.d.ts +0 -2
  73. package/dist/types/server/src/api/routes/frameWorkers.routes.d.ts +0 -2
  74. package/dist/types/server/src/api/routes/index.d.ts +0 -6
  75. package/dist/types/server/src/api/routes/plugins.routes.d.ts +0 -2
  76. package/dist/types/server/src/api/routes/system.routes.d.ts +0 -2
  77. package/dist/types/server/src/api/routes/users.routes.d.ts +0 -2
  78. package/dist/types/server/src/api/schemas/backup.schema.d.ts +0 -211
  79. package/dist/types/server/src/api/schemas/cameras.schema.d.ts +0 -980
  80. package/dist/types/server/src/api/schemas/config.schema.d.ts +0 -114
  81. package/dist/types/server/src/api/schemas/go2rtc.schema.d.ts +0 -703
  82. package/dist/types/server/src/api/schemas/plugins.schema.d.ts +0 -72
  83. package/dist/types/server/src/api/schemas/system.schema.d.ts +0 -17
  84. package/dist/types/server/src/api/schemas/users.schema.d.ts +0 -1013
  85. package/dist/types/server/src/api/services/auth.service.d.ts +0 -24
  86. package/dist/types/server/src/api/services/backup.service.d.ts +0 -11
  87. package/dist/types/server/src/api/services/cameras.service.d.ts +0 -54
  88. package/dist/types/server/src/api/services/plugins.service.d.ts +0 -38
  89. package/dist/types/server/src/api/services/system.service.d.ts +0 -13
  90. package/dist/types/server/src/api/services/users.service.d.ts +0 -25
  91. package/dist/types/server/src/api/types/index.d.ts +0 -610
  92. package/dist/types/server/src/api/utils/cameraSource.d.ts +0 -6
  93. package/dist/types/server/src/api/utils/cert.d.ts +0 -11
  94. package/dist/types/server/src/api/utils/constants.d.ts +0 -13
  95. package/dist/types/server/src/api/utils/fetch.d.ts +0 -1
  96. package/dist/types/server/src/api/utils/moveFiles.d.ts +0 -4
  97. package/dist/types/server/src/api/utils/parse.d.ts +0 -2
  98. package/dist/types/server/src/api/websocket/go2rtc.d.ts +0 -21
  99. package/dist/types/server/src/api/websocket/index.d.ts +0 -16
  100. package/dist/types/server/src/api/websocket/nsp/logs.d.ts +0 -19
  101. package/dist/types/server/src/api/websocket/nsp/main.d.ts +0 -9
  102. package/dist/types/server/src/api/websocket/nsp/metrics.d.ts +0 -24
  103. package/dist/types/server/src/api/websocket/nsp/notifications.d.ts +0 -12
  104. package/dist/types/server/src/api/websocket/nsp/plugins.d.ts +0 -13
  105. package/dist/types/server/src/api/websocket/nsp/proxy.d.ts +0 -27
  106. package/dist/types/server/src/api/websocket/nsp/server.d.ts +0 -26
  107. package/dist/types/server/src/api/websocket/nsp/status.d.ts +0 -15
  108. package/dist/types/server/src/api/websocket/types.d.ts +0 -41
  109. package/dist/types/server/src/api.d.ts +0 -29
  110. package/dist/types/server/src/camera/controller.d.ts +0 -61
  111. package/dist/types/server/src/camera/frameWorker.d.ts +0 -45
  112. package/dist/types/server/src/camera/types.d.ts +0 -11
  113. package/dist/types/server/src/go2rtc/index.d.ts +0 -25
  114. package/dist/types/server/src/go2rtc/types.d.ts +0 -14
  115. package/dist/types/server/src/main.d.ts +0 -25
  116. package/dist/types/server/src/nats/index.d.ts +0 -40
  117. package/dist/types/server/src/nats/proxy/cameraDevice.d.ts +0 -22
  118. package/dist/types/server/src/nats/proxy/coreManager.d.ts +0 -14
  119. package/dist/types/server/src/nats/proxy/deviceManager.d.ts +0 -14
  120. package/dist/types/server/src/nats/server.d.ts +0 -38
  121. package/dist/types/server/src/nats/types.d.ts +0 -18
  122. package/dist/types/server/src/nats/utils.d.ts +0 -2
  123. package/dist/types/server/src/plugins/index.d.ts +0 -33
  124. package/dist/types/server/src/plugins/plugin.d.ts +0 -35
  125. package/dist/types/server/src/plugins/schema.d.ts +0 -34
  126. package/dist/types/server/src/plugins/types.d.ts +0 -7
  127. package/dist/types/server/src/plugins/worker.d.ts +0 -55
  128. package/dist/types/server/src/services/config/constants.d.ts +0 -6
  129. package/dist/types/server/src/services/config/index.d.ts +0 -67
  130. package/dist/types/server/src/services/config/types.d.ts +0 -156
  131. package/dist/types/server/src/services/logger/index.d.ts +0 -16
  132. package/dist/types/server/src/types.d.ts +0 -31
  133. package/dist/types/shared/types/index.d.ts +0 -21
@@ -1,9 +0,0 @@
1
- import type { Namespace, Server } from 'socket.io';
2
- import type { SocketNsp } from '../types.js';
3
- export declare class MainNamespace {
4
- nsp: Namespace;
5
- nspName: SocketNsp;
6
- private cameraui;
7
- constructor(io: Server);
8
- getStatus(payload: any, callback?: Function): Promise<'loading' | 'ready'>;
9
- }
@@ -1,24 +0,0 @@
1
- import type { Namespace, Server } from 'socket.io';
2
- import type { ProcessInfo, ServerProcesses, SocketNsp, WorkerProcesses } from '../types.js';
3
- export declare class MetricsNamespace {
4
- nsp: Namespace;
5
- nspName: SocketNsp;
6
- private api;
7
- private pluginManager;
8
- private go2rtc;
9
- private natsServer;
10
- private processServerHistory;
11
- private processGo2RtcHistory;
12
- private processNatHistory;
13
- private processPluginsHistory;
14
- private processFrameWorkerHistory;
15
- private systemHistory;
16
- constructor(io: Server);
17
- getSystemInfos(payload: any, callback?: Function): Promise<ProcessInfo[]>;
18
- getServerProcessesInfos(payload: any, callback?: Function): Promise<ServerProcesses>;
19
- getPluginsProcessesInfo(payload: any, callback?: Function): Promise<WorkerProcesses>;
20
- getFrameWorkerProcessesInfo(payload: any, callback?: Function): Promise<WorkerProcesses>;
21
- private getProcesses;
22
- private getSystemLoad;
23
- private getSystemLoadAlt;
24
- }
@@ -1,12 +0,0 @@
1
- import type { Namespace, Server } from 'socket.io';
2
- import type { UiNotification } from '../../types/index.js';
3
- import type { SocketNsp } from '../types.js';
4
- export declare class NotificationsNamespace {
5
- nsp: Namespace;
6
- nspName: SocketNsp;
7
- private logger;
8
- constructor(io: Server);
9
- clearNotifications(): void;
10
- getNotifications(payload: any, callback?: Function): UiNotification[];
11
- removeNotification(id?: string): void;
12
- }
@@ -1,13 +0,0 @@
1
- import type { PLUGIN_STATUS } from '@camera.ui/plugineer';
2
- import type { Namespace, Server } from 'socket.io';
3
- import type { SocketNsp } from '../types.js';
4
- export declare class PluginsNamespace {
5
- nsp: Namespace;
6
- nspName: SocketNsp;
7
- private pluginManager;
8
- constructor(io: Server);
9
- pluginStatus(pluginName: string, callback?: Function): Promise<void | {
10
- pluginName: string;
11
- status: PLUGIN_STATUS;
12
- }>;
13
- }
@@ -1,27 +0,0 @@
1
- import type { CameraDeviceListenerMessagePayload } from '@camera.ui/plugineer';
2
- import type { StateValues } from '@camera.ui/types';
3
- import type { Namespace, Server } from 'socket.io';
4
- import type { SocketNsp } from '../types.js';
5
- export declare class CameraUiProxy {
6
- nsp: Namespace;
7
- nspName: SocketNsp;
8
- private logger;
9
- private proxyServer;
10
- private configService;
11
- private camerasService;
12
- private bridges;
13
- constructor(io: Server);
14
- init(): void;
15
- publishCameraEvent<K extends keyof StateValues>(cameraId: string, stateName: K, data: {
16
- newEvent: StateValues[K];
17
- oldEvent: StateValues[K];
18
- }): void;
19
- publishCameraEvent(cameraId: string, type: CameraDeviceListenerMessagePayload['type'], data?: any): void;
20
- private setupEventListeners;
21
- private connectBridge;
22
- private closeBridge;
23
- private sendMessage;
24
- private onEnd;
25
- private onDestroy;
26
- private isCameraState;
27
- }
@@ -1,26 +0,0 @@
1
- import type { Namespace, Server } from 'socket.io';
2
- import type { INpmPluginState } from '../../types/index.js';
3
- import type { SocketNsp } from '../types.js';
4
- export declare class ServerNamespace {
5
- nsp: Namespace;
6
- nspName: SocketNsp;
7
- private logger;
8
- private pluginsService;
9
- private serverUpdate;
10
- private pluginUpdates;
11
- private checkPluginUpdateInterval;
12
- private checkServerUpdateInterval;
13
- constructor(io: Server);
14
- getUpdates(payload?: any, callback?: Function): {
15
- server?: INpmPluginState;
16
- plugins: INpmPluginState[];
17
- };
18
- checkPlugins(interval?: boolean): Promise<void>;
19
- checkServer(interval?: boolean): Promise<void>;
20
- private checkServerUpdate;
21
- private checkPluginUpdates;
22
- private getPluginFromNpm;
23
- private getAvailablePluginVersions;
24
- restartPluginInterval(timer?: number): void;
25
- restartServerInterval(timer?: number): void;
26
- }
@@ -1,15 +0,0 @@
1
- import type { Namespace, Server, Socket } from 'socket.io';
2
- import type { ServerRuntime, SocketNsp, WorkerRuntime } from '../types.js';
3
- export declare class StatusNamespace {
4
- nsp: Namespace;
5
- nspName: SocketNsp;
6
- private api;
7
- private configService;
8
- private pluginManager;
9
- private go2rtc;
10
- private natsServer;
11
- constructor(io: Server);
12
- watchStats(socket: Socket, payload: any, callback?: Function): ServerRuntime;
13
- watchPluginStats(socket: Socket, payload: any, callback?: Function): WorkerRuntime;
14
- watchFrameWorkerStats(socket: Socket, payload: any, callback?: Function): WorkerRuntime;
15
- }
@@ -1,41 +0,0 @@
1
- import type { PLUGIN_STATUS } from '@camera.ui/plugineer';
2
- import type { Namespace } from 'socket.io';
3
- import type { RuntimeInfo } from '../../services/config/types.js';
4
- export type SocketNsp = '/camera.ui' | '/metrics' | '/logs' | '/status' | '/notifications' | '/plugins' | '/proxy' | '/server';
5
- export interface SocketNspMap {
6
- nsp: Namespace;
7
- [key: string]: any;
8
- }
9
- export interface ProcessInfo {
10
- name: string;
11
- pid?: number;
12
- cpuLoad: string;
13
- memLoad: string;
14
- timestamp: number;
15
- }
16
- export interface ServerProcessInfo {
17
- 'camera.ui': ProcessInfo;
18
- go2rtc: ProcessInfo;
19
- nats: ProcessInfo;
20
- }
21
- export interface ServerProcesses {
22
- 'camera.ui': ProcessInfo[];
23
- go2rtc: ProcessInfo[];
24
- nats: ProcessInfo[];
25
- }
26
- export type WorkerProcessInfo = Record<string, ProcessInfo>;
27
- export type WorkerProcesses = Record<string, ProcessInfo[]>;
28
- export interface AllProcesses extends ServerProcessInfo {
29
- plugins: WorkerProcessInfo;
30
- workers: WorkerProcessInfo;
31
- }
32
- export interface PluginRuntimeInfo {
33
- name: string;
34
- status: PLUGIN_STATUS;
35
- }
36
- export interface ServerRuntime {
37
- 'camera.ui'?: RuntimeInfo;
38
- go2rtc?: RuntimeInfo;
39
- nats?: RuntimeInfo;
40
- }
41
- export type WorkerRuntime = Record<string, PluginRuntimeInfo>;
@@ -1,29 +0,0 @@
1
- import 'reflect-metadata';
2
- import { EventEmitter } from 'node:events';
3
- import { CameraController } from './camera/controller.js';
4
- import type { Camera, CameraExtension } from '@camera.ui/types';
5
- import type { CameraExtensions } from './api/database/types.js';
6
- export declare enum API_EVENT {
7
- FINISH_LAUNCHING = "finishLaunching",
8
- SHUTDOWN = "shutdown"
9
- }
10
- export declare interface CameraUiAPI {
11
- on(event: 'finishLaunching', listener: () => void): this;
12
- on(event: 'shutdown', listener: () => void): this;
13
- emit(event: 'finishLaunching'): boolean;
14
- emit(event: 'shutdown'): boolean;
15
- }
16
- export declare class CameraUiAPI extends EventEmitter {
17
- private cameraControllers;
18
- constructor();
19
- configureCameras(): Promise<void>;
20
- addCamera(camera: Camera): Promise<CameraController>;
21
- getCamera(cameraIdOrName: string): CameraController | undefined;
22
- getCameras(pluginId?: string): CameraController[];
23
- resetCameraState(cameraId: string, extension: CameraExtension): void;
24
- updateCamera(camera: Camera): void;
25
- removeCamera(camera: Camera, extensions: CameraExtensions): Promise<void>;
26
- selectCamera(pluginId: string, camera: Camera, extension: CameraExtension): void;
27
- deselectCamera(pluginId: string, camera: Camera, extension: CameraExtension): void;
28
- writeCameraLog(cameraId: string, msg: string): void;
29
- }
@@ -1,61 +0,0 @@
1
- import { CameraDevice, CameraPTZInterface } from '@camera.ui/plugineer';
2
- import { FrameWorker } from './frameWorker.js';
3
- import type { Logger } from '@camera.ui/common/logger';
4
- import type { Camera, CameraConfigInputSettings, CameraDelegate, CameraDeviceInternalSource, CameraDeviceSource, MotionFrame, ProbeConfig, ProbeStream, SetValues, VideoFrame } from '@camera.ui/types';
5
- import type { WriteStream } from 'node:fs';
6
- export declare class CameraController extends CameraDevice {
7
- readonly frameWorker: FrameWorker;
8
- readonly streamInfos: Map<string, ProbeStream>;
9
- readonly logStream?: WriteStream;
10
- private motionTimeout?;
11
- private objectTimeout?;
12
- private objectTimeoutDuration;
13
- private audioTimeout?;
14
- private audioTimeoutDuration;
15
- private blockMotionResetEvents;
16
- private proxyServer;
17
- private go2rtcApi;
18
- private configService;
19
- private api;
20
- private truncateInterval?;
21
- private truncateIntervalMs;
22
- protected cameraDelegate: CameraDelegate;
23
- protected ptzDelegate: CameraPTZInterface;
24
- get logPath(): string;
25
- get streamSource(): CameraDeviceSource;
26
- get camera(): Camera;
27
- get sources(): CameraDeviceSource[];
28
- get internalSources(): CameraDeviceInternalSource[];
29
- constructor(camera: Camera, logger: Logger);
30
- setDelegate(): void;
31
- getFrames(): AsyncIterableIterator<VideoFrame>;
32
- getMotionFrames(): AsyncIterableIterator<MotionFrame>;
33
- connect(): Promise<void>;
34
- disconnect(): Promise<void>;
35
- updateState<T extends keyof SetValues>(stateName: T, eventData: SetValues[T], frame?: undefined, override?: boolean): Promise<void>;
36
- probeStream(sourceId: string, probeConfig?: ProbeConfig, refresh?: boolean): Promise<ProbeStream | undefined>;
37
- addCameraSource(source: CameraConfigInputSettings): Promise<void>;
38
- updateCameraSource(sourceId: string, source: Partial<CameraConfigInputSettings>): Promise<void>;
39
- removeCameraSource(sourceId: string): Promise<void>;
40
- updateCamera(updatedCamera: Camera): void;
41
- cleanup(): void;
42
- stop(): void;
43
- writeLog(...args: any[]): void;
44
- private subscribeToCameraState;
45
- private subscribeToCameraChanges;
46
- private subscribeToStateChanges;
47
- private motionStateChange;
48
- private objectStateChange;
49
- private audioStateChange;
50
- private doorbellStateChange;
51
- private triggerProxyEvent;
52
- private proxyRequest;
53
- private isCameraEvent;
54
- private generateAudioStreamInfo;
55
- private generateVideoStreamInfo;
56
- private clearTimers;
57
- private writeHeader;
58
- private closeLogStream;
59
- private removeLogStream;
60
- private truncateLog;
61
- }
@@ -1,45 +0,0 @@
1
- import { Subscribed } from '@camera.ui/common';
2
- import { PLUGIN_STATUS } from '@camera.ui/plugineer';
3
- import type { AuthConfig } from '@camera.ui/common';
4
- import type { CameraController } from './controller.js';
5
- export declare class FrameWorker extends Subscribed {
6
- readonly frameWorkerId: string;
7
- name: string;
8
- private readonly clients;
9
- private subject;
10
- private ipcSubject;
11
- private publisher?;
12
- private subscriber?;
13
- private coreManager;
14
- private frameWorkerLogger;
15
- private processLogger;
16
- private configService;
17
- private socketService;
18
- private cameraController;
19
- private logBuffer;
20
- private frameWorker?;
21
- private initialized;
22
- private stopped;
23
- private restarting;
24
- private auth;
25
- private proxyEndpoints;
26
- private ffmpegArgs;
27
- private py;
28
- private _status;
29
- get status(): PLUGIN_STATUS;
30
- constructor(cameraController: CameraController, proxyEndpoints: string[], auth: AuthConfig);
31
- start(): Promise<void>;
32
- close(): Promise<void>;
33
- restart(): Promise<void>;
34
- getPID(): number;
35
- private startWorker;
36
- private attemptRestart;
37
- private reset;
38
- private killWorker;
39
- private sendMessage;
40
- private onChildMessage;
41
- private setStatus;
42
- private createPythonPath;
43
- private handleLogData;
44
- private writeProcessLog;
45
- }
@@ -1,11 +0,0 @@
1
- import type { FrameData, FrameMetadata, MotionState, SetValues, StateValues } from '@camera.ui/types';
2
- export interface FrameState extends MotionState {
3
- frameData: FrameData;
4
- metadata: FrameMetadata;
5
- }
6
- export type CameraStateCallbacks = {
7
- [K in keyof StateValues]: (event: StateValues[K]) => void;
8
- };
9
- export type StateValue<T extends keyof StateValues> = StateValues[T];
10
- export type SetValue<T extends keyof SetValues> = SetValues[T];
11
- export type OnChangeCallback<T extends keyof StateValues> = (newEvent: StateValues[T], oldEvent: StateValues[T]) => void;
@@ -1,25 +0,0 @@
1
- import { RUNTIME_STATUS } from '../services/config/types.js';
2
- export declare class Go2Rtc {
3
- private go2rtcProcess?;
4
- private api;
5
- private logger;
6
- private configService;
7
- version: string;
8
- os: string;
9
- private started;
10
- private restarting;
11
- private manuallyKilled;
12
- private shuttingDown;
13
- private _status;
14
- get status(): RUNTIME_STATUS;
15
- constructor();
16
- start(): Promise<void>;
17
- stop(): Promise<void>;
18
- restart(): Promise<void>;
19
- getPID(): number;
20
- private kill;
21
- private handleClose;
22
- private setStatus;
23
- private processLogger;
24
- private isIgnorableString;
25
- }
@@ -1,14 +0,0 @@
1
- export declare const sourcePrefixes: readonly ["bubble://", "dvrip://", "echo:", "exec:", "expr:", "ffmpeg:", "gopro://", "hass:", "homekit://", "http://", "https://", "httpx://", "isapi://", "ivideon:", "kasa://", "nest:", "onvif://", "roborock://", "rtmp://", "rtsp://", "rtspx://", "tapo://", "tcp://", "webrtc:", "webtorrent:"];
2
- export declare const rtspPresets: readonly ["#backchannel=0", "#header=", "#media=audio", "#media=video", "#timeout=10", "#timeout=20", "#timeout=30", "#transport="];
3
- export declare const ffmpegPresets: readonly ["#audio=aac", "#audio=aac/16000", "#audio=mp3", "#audio=opus", "#audio=pcm", "#audio=pcm/8000", "#audio=pcm/16000", "#audio=pcm/48000", "#audio=pcma", "#audio=pcma/8000", "#audio=pcma/16000", "#audio=pcma/48000", "#audio=pcml", "#audio=pcml/8000", "#audio=pcml/44100", "#audio=pcmu", "#audio=pcmu/8000", "#audio=pcmu/16000", "#audio=pcmu/48000", "#drawtext", "#hardware", "#hardware=cuda", "#hardware=dxva2", "#hardware=rkmpp", "#hardware=v4l2m2m", "#hardware=vaapi", "#hardware=videotoolbox", "#height=", "#raw=", "#rotate=-90", "#rotate=90", "#rotate=180", "#rotate=270", "#video=copy", "#video=h264", "#video=h265", "#video=mjpeg", "#width="];
4
- export declare const homekitPresets: readonly ["client_id=", "client_private=", "device_id=", "device_public="];
5
- export declare const httpPresets: readonly ["#header="];
6
- export declare const nestPresets: readonly ["client_id=", "client_secret=", "refresh_token=", "project_id=", "device_id="];
7
- export declare const webrtcPreset: readonly ["#client_id=", "#format=openipc", "#format=wyze", "#format=kinesis", "#ice_servers="];
8
- export type SourcePrefixes = (typeof sourcePrefixes)[number];
9
- export type RtspPresets = (typeof rtspPresets)[number];
10
- export type FFmpegPresets = (typeof ffmpegPresets)[number];
11
- export type HomekitPresets = (typeof homekitPresets)[number];
12
- export type HttpPresets = (typeof httpPresets)[number];
13
- export type NestPresets = (typeof nestPresets)[number];
14
- export type WebrtcPresets = (typeof webrtcPreset)[number];
@@ -1,25 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'reflect-metadata';
3
- import type { Logger } from '@camera.ui/common';
4
- declare class CameraUi {
5
- readonly logger: Logger;
6
- private api;
7
- private database;
8
- private configService;
9
- private pluginManager;
10
- private go2rtc;
11
- private go2rtcApi;
12
- private server;
13
- private proxy;
14
- private signalHandler;
15
- private homePath;
16
- status: 'loading' | 'ready';
17
- constructor();
18
- start(): Promise<void>;
19
- close(): Promise<void>;
20
- restart(): Promise<void>;
21
- requestUpdate(version?: string): Promise<AsyncGenerator<string, void, unknown>>;
22
- private initializePlugins;
23
- private setStatus;
24
- }
25
- export type { CameraUi };
@@ -1,40 +0,0 @@
1
- import { ProxyConnection } from '@camera.ui/common';
2
- import { CameraDeviceProxy } from './proxy/cameraDevice.js';
3
- import { CoreManagerProxy } from './proxy/coreManager.js';
4
- import { DeviceManagerProxy } from './proxy/deviceManager.js';
5
- import { NatsServer } from './server.js';
6
- import type { ProxySubscription } from '@camera.ui/common';
7
- import type { CameraDeviceListenerMessagePayload, CoreManagerProxyEvents, DeviceManagerProxyEvents } from '@camera.ui/plugineer';
8
- import type { CameraStorage, StateValues } from '@camera.ui/types';
9
- import type { CameraUiProxy } from '../api/websocket/nsp/proxy.js';
10
- import type { MethodKeys, MethodType } from '../types.js';
11
- import type { PluginMap, ProxyAuth } from './types.js';
12
- export declare class ProxyServer {
13
- private api;
14
- private logger;
15
- coreManagerProxy?: CoreManagerProxy;
16
- deviceManagerProxy?: DeviceManagerProxy;
17
- cameraDeviceProxy?: CameraDeviceProxy;
18
- websocketProxy?: CameraUiProxy;
19
- server: NatsServer;
20
- publisher?: ProxyConnection;
21
- subscriber?: ProxySubscription;
22
- private pluginsService?;
23
- private messageQueue?;
24
- private initialized;
25
- auth: ProxyAuth;
26
- constructor();
27
- initialize(): Promise<void>;
28
- close(): Promise<void>;
29
- publishCoreManagerEvent<K extends keyof CoreManagerProxyEvents>(type: K, data: CoreManagerProxyEvents[K]): void;
30
- publishDeviceManagerEvent<K extends keyof DeviceManagerProxyEvents>(targetId: string, type: K, data: DeviceManagerProxyEvents[K]): void;
31
- publishCameraEvent<K extends keyof StateValues>(cameraId: string, stateName: K, data: {
32
- newEvent: StateValues[K];
33
- oldEvent: StateValues[K];
34
- }, targetId?: string): void;
35
- publishCameraEvent(cameraId: string, type: CameraDeviceListenerMessagePayload['type'], data?: any, targetId?: string): void;
36
- requestPluginFn<T extends keyof PluginMap, K extends MethodKeys<PluginMap[T]>>(pluginType: T, pluginId: string, fn: K, args: Parameters<MethodType<PluginMap[T], K>>, timeout?: number): Promise<Awaited<ReturnType<MethodType<PluginMap[T], K>>>>;
37
- requestStorageFn<T extends MethodKeys<CameraStorage>>(pluginId: string, cameraId: string, fn: T, args: Parameters<MethodType<CameraStorage, T>>, timeout?: number): Promise<Awaited<ReturnType<MethodType<CameraStorage, T>>>>;
38
- private requestHandler;
39
- private isCameraState;
40
- }
@@ -1,22 +0,0 @@
1
- import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/common';
2
- import type { CameraDeviceProxyMethods, CameraInterfaces, RefreshedStates } from '@camera.ui/plugineer';
3
- import type { CameraConfigInputSettings, ProbeConfig, ProbeStream, SetValues } from '@camera.ui/types';
4
- import type { MethodKeys, MethodType } from '../../types.js';
5
- export declare class CameraDeviceProxy implements CameraDeviceProxyMethods {
6
- private api;
7
- private configService;
8
- private camerasService;
9
- private pluginsService;
10
- private messageQueue;
11
- constructor(messageQueue: MessageQueue);
12
- connect(cameraId: string, pluginId: string): void;
13
- disconnect(cameraId: string, pluginId: string): void;
14
- updateState<T extends keyof SetValues>(stateName: T, eventData: SetValues[T], cameraId: string, pluginId: string): Promise<void>;
15
- probeStream(sourceId: string, probeConfig: ProbeConfig | undefined, refresh: boolean, cameraId: string): Promise<ProbeStream | undefined>;
16
- addCameraSource(source: CameraConfigInputSettings, cameraId: string, pluginId: string): Promise<void>;
17
- updateCameraSource(sourceId: string, source: Partial<CameraConfigInputSettings>, cameraId: string, pluginId: string): Promise<void>;
18
- removeCameraSource(sourceId: string, cameraId: string, pluginId: string): Promise<void>;
19
- refreshStates(cameraId: string): RefreshedStates;
20
- onRequest<T extends keyof CameraInterfaces, K extends MethodKeys<CameraInterfaces[T]>>(cameraId: string, client: T, fn: K, ...args: Parameters<MethodType<CameraInterfaces[T], K>>): Promise<Awaited<ReturnType<MethodType<CameraInterfaces[T], K>>> | void>;
21
- requestHandler(message: ProxyMessageStructure): Promise<void | ProxyMessageStructure>;
22
- }
@@ -1,14 +0,0 @@
1
- import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/common';
2
- import type { CoreManager, FfmpegArgs, IceServer } from '@camera.ui/types';
3
- export declare class CoreManagerProxy implements CoreManager {
4
- private configService;
5
- private pluginsService;
6
- private systemService;
7
- private messageQueue;
8
- constructor(messageQueue: MessageQueue);
9
- getFFmpegPath(): Promise<string>;
10
- getHwaccelInfo(targetCodec: 'h264' | 'h265'): Promise<FfmpegArgs>;
11
- getServerAddresses(): Promise<string[]>;
12
- getIceServers(): Promise<IceServer[]>;
13
- requestHandler(message: ProxyMessageStructure): Promise<void | ProxyMessageStructure>;
14
- }
@@ -1,14 +0,0 @@
1
- import type { MessageQueue, ProxyMessageStructure } from '@camera.ui/common';
2
- import type { Camera, CameraConfig, DeviceManager } from '@camera.ui/types';
3
- export declare class DeviceManagerProxy implements DeviceManager {
4
- private camerasService;
5
- private pluginsService;
6
- private messageQueue;
7
- constructor(messageQueue: MessageQueue);
8
- getCameraByName(cameraName: string): Promise<any>;
9
- getCameraById(cameraId: string): Promise<any>;
10
- createCamera(cameraConfig: CameraConfig, pluginId: string): Promise<Camera>;
11
- removeCameraByName(cameraName: string, pluginId: string): Promise<void>;
12
- removeCameraById(cameraId: string, pluginId: string): Promise<void>;
13
- requestHandler(message: ProxyMessageStructure): Promise<void | ProxyMessageStructure>;
14
- }
@@ -1,38 +0,0 @@
1
- import { RUNTIME_STATUS } from '../services/config/types.js';
2
- import type { ProxyAuth } from './types.js';
3
- export declare class NatsServer {
4
- private readonly clusterAmount;
5
- private readonly auth;
6
- private serverPort;
7
- private clusterPort;
8
- private _endpoints;
9
- private serverProcess?;
10
- private clusterProcesses;
11
- private logger;
12
- private configService;
13
- private tmpDir;
14
- private config;
15
- private manuallyKilled;
16
- private shuttingDown;
17
- private _status;
18
- get status(): RUNTIME_STATUS;
19
- get endpoints(): string[];
20
- constructor(auth: ProxyAuth);
21
- start(): Promise<void>;
22
- private configServer;
23
- private configClusters;
24
- stop(): Promise<void>;
25
- restart(): Promise<void>;
26
- getPID(): number;
27
- private startServer;
28
- private startClusterServer;
29
- private setupProcess;
30
- private writeConfigFile;
31
- private stringifyConfig;
32
- private kill;
33
- private handleClose;
34
- private handleCloseCluster;
35
- private setStatus;
36
- private processLogger;
37
- private isIgnorableString;
38
- }
@@ -1,18 +0,0 @@
1
- import type { AuthConfig } from '@camera.ui/common';
2
- import type { AudioDetectionPlugin, BasePlugin, MotionDetectionPlugin, ObjectDetectionPlugin } from '@camera.ui/types';
3
- import type { VideoStreamingMode } from '../api/database/types.js';
4
- export interface ProxyAuth {
5
- cluster: AuthConfig;
6
- server: AuthConfig;
7
- }
8
- export type WebsocketClientProxyEvent = 'updateDevice' | 'updateState';
9
- export interface StreamPayload {
10
- type: Exclude<VideoStreamingMode, 'auto' | 'webrtc' | 'webrtc/tcp'> | 'webrtc/offer' | 'webrtc/candidate';
11
- value: string;
12
- }
13
- export interface PluginMap {
14
- base: BasePlugin;
15
- motionDetection: MotionDetectionPlugin;
16
- objectDetection: ObjectDetectionPlugin;
17
- audioDetection: AudioDetectionPlugin;
18
- }
@@ -1,2 +0,0 @@
1
- import type { AuthConfig } from '@camera.ui/common';
2
- export declare function generateCredentials(): AuthConfig;
@@ -1,33 +0,0 @@
1
- import 'reflect-metadata';
2
- import { Plugin } from './plugin.js';
3
- import type { PluginContract } from '@camera.ui/plugineer';
4
- import type { IPackageJson } from '../api/types/index.js';
5
- export declare class PluginManager {
6
- private logger;
7
- private api;
8
- private configService;
9
- installedPythonVersions: Set<string>;
10
- searchPaths: Set<string>;
11
- plugins: Map<string, Plugin>;
12
- pluginIdentifiers: Set<string>;
13
- constructor();
14
- static isQualifiedPluginIdentifier(pluginName: string): boolean;
15
- static isQualifiedPluginContract(contract?: Partial<PluginContract>): boolean;
16
- static extractPluginScope(pluginName: string): string | undefined;
17
- static extractPluginName(pluginName: string): string;
18
- static transformDisplaName(pluginName: string): string;
19
- static loadPackageJSON(installPath: string): IPackageJson;
20
- static parseContract(pjson: IPackageJson): PluginContract;
21
- initializeInstalledPlugins(): Promise<void>;
22
- initializeInstalledPlugin(plugin: Plugin): Promise<void>;
23
- loadPlugin(absolutePath: string, oldId?: string): Promise<Plugin>;
24
- removePlugin(plugin: Plugin, removeStorage?: boolean): Promise<void>;
25
- startPluginChild(pluginName: string): Promise<void>;
26
- stopPluginChild(pluginName: string): Promise<void>;
27
- initializePlugins(): Promise<void>;
28
- private installRequiredPythonEnvs;
29
- private loadInstalledPlugins;
30
- private restorePlugins;
31
- private removeOrphanedPlugins;
32
- private handleDisabledPlugins;
33
- }
@@ -1,35 +0,0 @@
1
- import { PluginWorker } from './worker.js';
2
- import type { PluginContract } from '@camera.ui/plugineer';
3
- import type { CameraExtension } from '@camera.ui/types';
4
- import type { CameraUiPlugin, IPackageJson } from '../api/types/index.js';
5
- export declare class Plugin {
6
- private logger;
7
- private configService;
8
- private _disabled;
9
- private _info;
10
- private _contract;
11
- private loadContext;
12
- readonly id: string;
13
- readonly main: string;
14
- readonly pluginName: string;
15
- readonly displayName: string;
16
- readonly scope?: string;
17
- readonly isPython: boolean;
18
- readonly isSymLink: boolean;
19
- readonly installPath: string;
20
- readonly configFile: string;
21
- readonly storagePath: string;
22
- readonly logPath: string;
23
- readonly worker: PluginWorker;
24
- get contract(): PluginContract;
25
- get info(): CameraUiPlugin;
26
- set info(value: CameraUiPlugin);
27
- get disabled(): boolean;
28
- set disabled(value: boolean);
29
- get type(): CameraExtension[];
30
- constructor(pluginName: string, installPath: string, packageJSON: IPackageJson, pluginId: string, scope?: string);
31
- load(): Promise<void>;
32
- reparsePackageJson(): void;
33
- private parsePackageJson;
34
- private getMainFile;
35
- }