@camera.ui/browser 0.0.5 → 0.0.6

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.
@@ -4,6 +4,8 @@ export declare class CameraUiClient {
4
4
  private api;
5
5
  private socketService?;
6
6
  private config;
7
+ private logger;
8
+ private ffmpegPath;
7
9
  private token?;
8
10
  private deviceManager?;
9
11
  private pluginsManager?;
@@ -1,6 +1,6 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import type { SocketService } from '../../socket';
3
- import type { Camera, CameraDevice, StateValue, StateValues, OnSetEvent, CameraInput, LightState, MotionState, AudioState, ObjectState, DoorbellState, SirenState } from '../../../../../shared/types';
3
+ import type { Camera, CameraDevice, StateValue, StateValues, OnSetEvent, CameraInput, LightState, MotionState, AudioState, ObjectState, DoorbellState, SirenState, BaseLogger } from '../../../../../shared/types';
4
4
  export declare interface CameraDeviceClient {
5
5
  createSession(cameraInput: CameraInput, options?: {}): Promise<any>;
6
6
  streamVideo(cameraInput: CameraInput, options: {}): Promise<any>;
@@ -8,6 +8,7 @@ export declare interface CameraDeviceClient {
8
8
  }
9
9
  export declare class CameraDeviceClient implements CameraDevice {
10
10
  private socketService;
11
+ private logger;
11
12
  private cameraSubject;
12
13
  private lightState;
13
14
  private motionState;
@@ -28,7 +29,7 @@ export declare class CameraDeviceClient implements CameraDevice {
28
29
  get type(): string;
29
30
  get model(): string;
30
31
  get sources(): CameraInput[];
31
- constructor(camera: Camera, socketService: SocketService);
32
+ constructor(camera: Camera, socketService: SocketService, logger: BaseLogger);
32
33
  getValue<T extends keyof StateValues>(stateName: T): StateValue<T>;
33
34
  updateState<T extends keyof StateValues>(stateName: T, eventData: OnSetEvent<T>, isRemote?: boolean): Promise<void>;
34
35
  onStateChange<T extends keyof StateValues>(stateName: T): Observable<{
@@ -1,9 +1,9 @@
1
1
  import { CameraDeviceHub } from '../../../../../src/camera';
2
2
  import type { SocketService } from '../../socket';
3
- import type { Camera, StateValues, OnSetEvent } from '../../../../../shared/types';
3
+ import type { Camera, StateValues, OnSetEvent, BaseLogger } from '../../../../../shared/types';
4
4
  export declare class CameraDeviceClient extends CameraDeviceHub {
5
5
  private socketService;
6
- constructor(camera: Camera, socketService: SocketService);
6
+ constructor(camera: Camera, socketService: SocketService, logger: BaseLogger, ffmpegPath: string);
7
7
  updateState<T extends keyof StateValues>(stateName: T, eventData: OnSetEvent<T>): Promise<void>;
8
8
  refreshStates(): Promise<void>;
9
9
  removeAllListeners(): void;
@@ -1,9 +1,11 @@
1
1
  import type { SocketService } from '../socket';
2
- import type { DeviceManagerProxyMethods, DeviceManagerProxyEventCallbacks, CameraConfig, CameraDevice } from '../../../../shared/types';
2
+ import type { DeviceManagerProxyMethods, DeviceManagerProxyEventCallbacks, CameraConfig, CameraDevice, BaseLogger } from '../../../../shared/types';
3
3
  export declare class DeviceManagerClient implements DeviceManagerProxyMethods {
4
4
  private socketService;
5
5
  private devices;
6
- constructor(socketService: SocketService);
6
+ private logger;
7
+ private ffmpegPath;
8
+ constructor(socketService: SocketService, logger: BaseLogger, ffmpegPath: string);
7
9
  getCameraByName(name: string): Promise<CameraDevice | undefined>;
8
10
  getCameraById(id: string): Promise<CameraDevice | undefined>;
9
11
  createCamera(camera: CameraConfig): Promise<CameraDevice>;
@@ -1,22 +1,25 @@
1
1
  import type { DeviceManagerClient, PluginsManagerClient, SystemManagerClient } from './proxy';
2
- export type { BasicPeerConnection, CameraConfig, CameraDevice, Camera, CameraInput, Go2RtcIceCandidateMessage, Go2RtcOfferMessage, Go2RtcAnswerMessage, Go2RtcIncomingMessage, Go2RtcOutgoingMessage, LightState, MotionState, AudioState, ObjectState, DoorbellState, SirenState, } from '../../../shared/types';
2
+ import type { BaseLogger } from '../../../shared/types';
3
+ export type { BaseLogger, BasicPeerConnection, CameraConfig, CameraDevice, Camera, CameraInput, Go2RtcIceCandidateMessage, Go2RtcOfferMessage, Go2RtcAnswerMessage, Go2RtcIncomingMessage, Go2RtcOutgoingMessage, LightState, MotionState, AudioState, ObjectState, DoorbellState, SirenState, } from '../../../shared/types';
3
4
  export type CameraUiClientConfig = WithCredentials | WithToken;
4
5
  export interface API {
5
6
  deviceManager: DeviceManagerClient;
6
7
  pluginsManager: PluginsManagerClient;
7
8
  systemManager: SystemManagerClient;
8
9
  }
9
- type WithCredentials = {
10
+ interface BaseConfig {
10
11
  endpoint: string;
11
12
  skipCheck?: boolean;
13
+ logger?: BaseLogger;
14
+ ffmpegPath?: string;
15
+ }
16
+ interface WithCredentials extends BaseConfig {
12
17
  username: string;
13
18
  password: string;
14
19
  token?: never;
15
- };
16
- type WithToken = {
17
- endpoint: string;
18
- skipCheck?: boolean;
20
+ }
21
+ interface WithToken extends BaseConfig {
19
22
  username?: never;
20
23
  password?: never;
21
24
  token: string;
22
- };
25
+ }
@@ -1,12 +1,10 @@
1
- import 'reflect-metadata';
2
1
  import { Observable } from 'rxjs';
3
2
  import { StreamingSession } from './streaming/streaming-session';
4
3
  import type { Camera, CameraInput } from '../api/database/types';
4
+ import type { ProxyServer } from '../proxy';
5
5
  import type { StateValues, OnSetEvent, LightState, MotionState, AudioState, ObjectState, DoorbellState, SirenState, StreamingConnectionOptions, FfmpegOptions } from './types';
6
- import type { CameraDevice } from './types';
7
- import type { Logger, PluginLogger } from '../services/logger';
6
+ import type { CameraDevice, BaseLogger } from './types';
8
7
  export declare class CameraDeviceHub implements CameraDevice {
9
- private isWorker;
10
8
  private ffmpegPath;
11
9
  private logger;
12
10
  private proxy?;
@@ -30,7 +28,7 @@ export declare class CameraDeviceHub implements CameraDevice {
30
28
  get type(): string;
31
29
  get model(): string;
32
30
  get sources(): CameraInput[];
33
- constructor(camera: Camera, logger: Logger | PluginLogger | Console);
31
+ constructor(camera: Camera, logger: BaseLogger, ffmpegPath: string, proxy?: ProxyServer);
34
32
  getValue<T extends keyof StateValues>(stateName: T): StateValues[T];
35
33
  createSession(cameraInput: CameraInput, options?: StreamingConnectionOptions): Promise<StreamingSession>;
36
34
  streamVideo(cameraInput: CameraInput, options: FfmpegOptions): Promise<StreamingSession>;
@@ -3,22 +3,21 @@ import { MediaStreamTrack } from 'werift';
3
3
  import { Subscribed } from '../subscribed';
4
4
  import type { WebSocket } from 'ws';
5
5
  import type { RtpPacket, RtcpPacket, RTCIceCandidate } from 'werift';
6
- import type { BasicPeerConnection } from '../types';
7
- import type { Logger, PluginLogger } from '../../services/logger';
6
+ import type { BasicPeerConnection, BaseLogger } from '../types';
8
7
  export declare class WeriftPeerConnection extends Subscribed implements BasicPeerConnection {
9
8
  onAudioRtp: Subject<RtpPacket>;
10
9
  onAudioRtcp: Subject<RtcpPacket>;
11
10
  onVideoRtp: Subject<RtpPacket>;
12
11
  onVideoRtcp: Subject<RtcpPacket>;
13
12
  onIceCandidate: Subject<RTCIceCandidate>;
14
- onConnectionState: ReplaySubject<"closed" | "connected" | "disconnected" | "connecting" | "failed" | "new">;
13
+ onConnectionState: ReplaySubject<"closed" | "failed" | "disconnected" | "new" | "connecting" | "connected">;
15
14
  returnAudioTrack: MediaStreamTrack;
16
15
  private pc;
17
16
  private ws?;
18
17
  private cameraName;
19
18
  private logger;
20
19
  private onRequestKeyFrame;
21
- constructor(cameraName: string, logger: Logger | PluginLogger | Console, ws?: WebSocket);
20
+ constructor(cameraName: string, logger: BaseLogger, ws?: WebSocket);
22
21
  createOffer(): Promise<import("werift").RTCSessionDescription>;
23
22
  acceptAnswer(answer: {
24
23
  type: 'answer';
@@ -2,8 +2,7 @@ import { RtpPacket } from 'werift';
2
2
  import { ReplaySubject, Subject } from 'rxjs';
3
3
  import { Subscribed } from '../subscribed';
4
4
  import type { WebrtcConnection } from './webrtc-connection';
5
- import type { Logger, PluginLogger } from '../../services/logger';
6
- import type { FfmpegOptions, SpawnInput } from '../types';
5
+ import type { FfmpegOptions, SpawnInput, BaseLogger } from '../types';
7
6
  export declare class StreamingSession extends Subscribed {
8
7
  readonly onCallEnded: ReplaySubject<void>;
9
8
  readonly onVideoRtp: Subject<RtpPacket>;
@@ -18,7 +17,7 @@ export declare class StreamingSession extends Subscribed {
18
17
  private connection;
19
18
  private logger;
20
19
  get isUsingOpus(): Promise<boolean>;
21
- constructor(cameraName: string, ffmpegPath: string, connection: WebrtcConnection, logger: Logger | PluginLogger | Console);
20
+ constructor(cameraName: string, ffmpegPath: string, connection: WebrtcConnection, logger: BaseLogger);
22
21
  private bindToConnection;
23
22
  reservePort(bufferPorts?: number): Promise<number>;
24
23
  startTranscoding(ffmpegOptions: FfmpegOptions): Promise<void>;
@@ -1,9 +1,8 @@
1
1
  import { ReplaySubject, Subject, type Observable } from 'rxjs';
2
2
  import { Subscribed } from '../subscribed';
3
3
  import type { RtpPacket } from 'werift';
4
- import type { Logger, PluginLogger } from '../../services/logger';
5
4
  import type { CameraInput } from '../../api/database/types';
6
- import type { StreamingConnectionOptions } from '../types';
5
+ import type { StreamingConnectionOptions, BaseLogger } from '../types';
7
6
  export declare class WebrtcConnection extends Subscribed {
8
7
  readonly onCameraConnected: ReplaySubject<void>;
9
8
  readonly onCallAnswered: ReplaySubject<string>;
@@ -22,7 +21,7 @@ export declare class WebrtcConnection extends Subscribed {
22
21
  private logger;
23
22
  private cameraName;
24
23
  private cameraInput;
25
- constructor(cameraName: string, cameraInput: CameraInput, options: StreamingConnectionOptions, logger: Logger | PluginLogger | Console);
24
+ constructor(cameraName: string, cameraInput: CameraInput, options: StreamingConnectionOptions, logger: BaseLogger);
26
25
  private initiateCall;
27
26
  private handleMessage;
28
27
  private sendMessage;
@@ -3,6 +3,12 @@ import type { ConnectionState, RTCIceCandidate } from 'werift';
3
3
  import type { CameraInputSettings, CameraInput, Camera } from '../api/database/types';
4
4
  import type { StreamingSession } from './streaming/streaming-session';
5
5
  export type SpawnInput = string | number;
6
+ export interface BaseLogger {
7
+ log: (...args: any[]) => void;
8
+ error: (...args: any[]) => void;
9
+ warn: (...args: any[]) => void;
10
+ debug: (...args: any[]) => void;
11
+ }
6
12
  export interface FfmpegOptions {
7
13
  input?: SpawnInput[];
8
14
  video?: SpawnInput[] | false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camera.ui/browser",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "camera.ui browser client",
5
5
  "author": "seydx (https://github.com/seydx/camera.ui)",
6
6
  "main": "./dist/bundle.browser.js",
@@ -29,7 +29,7 @@
29
29
  "ts-loader": "^9.5.1",
30
30
  "typescript": "^5.3.3",
31
31
  "updates": "^15.1.1",
32
- "utf-8-validate": "^5.0.10",
32
+ "utf-8-validate": "^6.0.3",
33
33
  "webpack": "^5.89.0",
34
34
  "webpack-cli": "^5.1.4"
35
35
  },