@camera.ui/browser 0.0.37 → 0.0.39

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.
@@ -60,7 +60,7 @@ export declare class CameraDeviceClient implements CameraDevice {
60
60
  getFfmpegPath(): Promise<string>;
61
61
  getIceServers(): Promise<IceServer[]>;
62
62
  createSession(): Promise<any>;
63
- createBrowserSession(sourceName: string): Promise<BrowserStreamingSession>;
63
+ createBrowserSession(sourceName: string, videoElement: HTMLVideoElement): Promise<BrowserStreamingSession>;
64
64
  streamVideo(sourceName: string, options: FfmpegOptions): Promise<any>;
65
65
  recordToFile(sourceName: string, outputPath: string, duration?: number): Promise<void>;
66
66
  getValue<T extends keyof StateValues>(stateName: T): StateValue<T>;
@@ -1,6 +1,7 @@
1
1
  import type { DeviceManagerClient, PluginsManagerClient, SystemManagerClient } from './proxy';
2
2
  import type { BaseLogger, CameraDevice } from '../../../shared/types';
3
3
  export type { BaseLogger, BasicPeerConnection, CameraConfig, CameraDevice, Camera, CameraInput, FfmpegOptions, Go2RtcIceCandidateMessage, Go2RtcOfferMessage, Go2RtcAnswerMessage, Go2RtcIncomingMessage, Go2RtcOutgoingMessage, LightState, MotionState, AudioState, ObjectState, DoorbellState, SirenState, } from '../../../shared/types';
4
+ export { BrowserStreamingSession } from '../../../shared/types';
4
5
  export interface ICameraDeviceClient extends CameraDevice {
5
6
  refreshStates(): Promise<void>;
6
7
  }
@@ -65,7 +65,7 @@ export declare class CameraController implements CameraDevice {
65
65
  getFfmpegPath(): Promise<string>;
66
66
  getIceServers(): Promise<IceServer[]>;
67
67
  createSession(sourceName: string, options?: StreamingConnectionOptions): Promise<StreamingSession>;
68
- createBrowserSession(): Promise<BrowserStreamingSession>;
68
+ createBrowserSession(sourceName: string, videoElement: HTMLVideoElement): Promise<BrowserStreamingSession>;
69
69
  streamVideo(sourceName: string, options: FfmpegOptions): Promise<StreamingSession>;
70
70
  recordToFile(sourceName: string, outputPath: string, duration?: number): Promise<void>;
71
71
  getValue<T extends keyof StateValues>(stateName: T): StateValues[T];
@@ -10,7 +10,10 @@ export declare class BrowserPeerConnection extends Subscribed implements BasicBr
10
10
  private cameraDevice;
11
11
  private logger;
12
12
  private pc;
13
- constructor(cameraDevice: CameraDevice, iceServers: IceServer[], logger: BaseLogger);
13
+ private videoElement;
14
+ constructor(cameraDevice: CameraDevice, videoElement: HTMLVideoElement, iceServers: IceServer[], logger: BaseLogger);
15
+ enableMicrophone(track: MediaStreamTrack): void;
16
+ disableMicrophone(): void;
14
17
  createOffer(): Promise<RTCSessionDescriptionInit>;
15
18
  acceptAnswer(answer: {
16
19
  type: 'answer';
@@ -18,5 +21,4 @@ export declare class BrowserPeerConnection extends Subscribed implements BasicBr
18
21
  }): Promise<void>;
19
22
  addIceCandidate(candidate: RTCIceCandidateInit): Promise<void>;
20
23
  close(): void;
21
- private createPeerCoonection;
22
24
  }
@@ -1,17 +1,23 @@
1
- import { ReplaySubject } from 'rxjs';
1
+ import { ReplaySubject, Observable } from 'rxjs';
2
2
  import { Subscribed } from '../../utils/subscribed';
3
3
  import type { BaseLogger, CameraDevice } from '../../types';
4
4
  import type { WebrtcBrowserConnection } from './webrtc-browser-connection';
5
5
  export declare class BrowserStreamingSession extends Subscribed {
6
+ readonly onCallAnswered: ReplaySubject<void>;
6
7
  readonly onCallEnded: ReplaySubject<void>;
7
- private readonly onUsingOpus;
8
+ private onUsingOpus;
9
+ private micState;
8
10
  private hasEnded;
9
11
  private cameraDevice;
10
12
  private connection;
11
13
  private logger;
14
+ isMicEnabled: Observable<boolean>;
12
15
  get isUsingOpus(): Promise<boolean>;
13
16
  constructor(cameraDevice: CameraDevice, logger: BaseLogger, connection: WebrtcBrowserConnection);
17
+ enableMicrophone(track: MediaStreamTrack): void;
18
+ disableMicrophone(): void;
14
19
  stop(): void;
20
+ private createStateObservable;
15
21
  private bindToConnection;
16
22
  private callEnded;
17
23
  }
@@ -1,9 +1,9 @@
1
1
  import { ReplaySubject, type Observable } from 'rxjs';
2
2
  import { Subscribed } from '../../utils/subscribed';
3
+ import { BrowserPeerConnection } from './browser-peer-connection';
3
4
  import type { CameraDevice, BaseLogger } from '../../types';
4
5
  import type { IceServer } from '../../../services/config/types';
5
6
  export declare class WebrtcBrowserConnection extends Subscribed {
6
- readonly onCameraConnected: ReplaySubject<void>;
7
7
  readonly onCallAnswered: ReplaySubject<string>;
8
8
  readonly onCallEnded: ReplaySubject<void>;
9
9
  readonly onError: ReplaySubject<void>;
@@ -11,13 +11,13 @@ export declare class WebrtcBrowserConnection extends Subscribed {
11
11
  method: string;
12
12
  }>;
13
13
  readonly onWsOpen: Observable<unknown>;
14
- private readonly pc;
14
+ readonly pc: BrowserPeerConnection;
15
15
  private readonly ws;
16
16
  private readonly onOfferSent;
17
17
  private hasEnded;
18
18
  private cameraDevice;
19
19
  private logger;
20
- constructor(cameraDevice: CameraDevice, sourceName: string, iceServers: IceServer[], logger: BaseLogger);
20
+ constructor(cameraDevice: CameraDevice, sourceName: string, videoElement: HTMLVideoElement, iceServers: IceServer[], logger: BaseLogger);
21
21
  stop(): void;
22
22
  private initiateCall;
23
23
  private handleMessage;
@@ -42,6 +42,8 @@ export interface BasicPeerConnection {
42
42
  requestKeyFrame?: () => void;
43
43
  }
44
44
  export interface BasicBrowserPeerConnection {
45
+ enableMicrophone(track: MediaStreamTrack): void;
46
+ disableMicrophone(): void;
45
47
  createOffer(): Promise<RTCSessionDescriptionInit>;
46
48
  acceptAnswer(answer: {
47
49
  type: 'answer';
@@ -94,7 +96,7 @@ export interface CameraDevice {
94
96
  getIceServers(): Promise<IceServer[]>;
95
97
  snapshot(forceNew?: boolean): Promise<ArrayBuffer>;
96
98
  createSession(sourceName: string, options?: StreamingConnectionOptions): Promise<StreamingSession>;
97
- createBrowserSession(sourceName: string): Promise<BrowserStreamingSession>;
99
+ createBrowserSession(sourceName: string, videoElement: HTMLVideoElement): Promise<BrowserStreamingSession>;
98
100
  streamVideo(sourceName: string, options: FfmpegOptions): Promise<StreamingSession>;
99
101
  recordToFile(sourceName: string, outputPath: string, duration?: number): Promise<void>;
100
102
  getValue<T extends keyof StateValues>(stateName: T): StateValue<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camera.ui/browser",
3
- "version": "0.0.37",
3
+ "version": "0.0.39",
4
4
  "description": "camera.ui browser client",
5
5
  "author": "seydx (https://github.com/seydx/camera.ui)",
6
6
  "main": "./dist/bundle.js",
package/webpack.config.ts DELETED
@@ -1,43 +0,0 @@
1
- import path from 'path';
2
- import webpack, { type Configuration } from 'webpack';
3
-
4
- const webpackConfiguration: Configuration = {
5
- mode: 'production',
6
- entry: '../node/src/index.ts',
7
- output: {
8
- path: path.resolve(__dirname, 'dist'),
9
- filename: 'bundle.js',
10
- library: {
11
- name: 'CameraUiClient',
12
- type: 'umd',
13
- },
14
- },
15
- performance: {
16
- hints: false,
17
- maxEntrypointSize: 512000,
18
- maxAssetSize: 512000,
19
- },
20
- optimization: {
21
- splitChunks: {
22
- minSize: 10000,
23
- maxSize: 250000,
24
- },
25
- },
26
- devtool: false,
27
- resolve: {
28
- extensions: ['.ts', '.js'],
29
- },
30
- target: 'web',
31
- module: {
32
- rules: [
33
- {
34
- test: /\.ts$/,
35
- use: 'ts-loader',
36
- exclude: /node_modules/,
37
- },
38
- ],
39
- },
40
- plugins: [new webpack.NormalModuleReplacementPlugin(/cameraDevice\.node/, path.resolve(__dirname, '../node/src/proxy/cameraDevice/cameraDevice.mock.ts'))],
41
- };
42
-
43
- export default webpackConfiguration;