@snapcall/stream-ui 1.26.1 → 1.28.0

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.
@@ -6,10 +6,10 @@
6
6
  let $7df5a1066adc9830$var$interval;
7
7
  self.onmessage = (event)=>{
8
8
  const { action: action, params: params } = event.data;
9
- if (action === "start") {
9
+ if (action === 'start') {
10
10
  if ($7df5a1066adc9830$var$interval) clearInterval($7df5a1066adc9830$var$interval);
11
11
  $7df5a1066adc9830$var$interval = self.setInterval(()=>{
12
- self.postMessage("time");
12
+ self.postMessage('time');
13
13
  }, 1000 / params);
14
14
  }
15
15
  };
@@ -5,10 +5,10 @@
5
5
  let $febe13af234b7734$var$interval;
6
6
  self.onmessage = (event)=>{
7
7
  const { action: action, params: params } = event.data;
8
- if (action === "start") {
8
+ if (action === 'start') {
9
9
  if ($febe13af234b7734$var$interval) clearInterval($febe13af234b7734$var$interval);
10
10
  $febe13af234b7734$var$interval = self.setInterval(()=>{
11
- self.postMessage("time");
11
+ self.postMessage('time');
12
12
  }, 1000 / params);
13
13
  }
14
14
  };
package/dist/types.d.ts CHANGED
@@ -15,8 +15,10 @@ interface Step {
15
15
  default_type: 'video' | 'audio' | 'screen' | 'image';
16
16
  token: string;
17
17
  title: string;
18
- description: string;
19
- image_url: string;
18
+ config?: {
19
+ description: string;
20
+ image_url: string;
21
+ };
20
22
  translation: {
21
23
  title?: string;
22
24
  description?: string;
@@ -213,12 +215,30 @@ declare class AudioRenderer {
213
215
  getSink(): string;
214
216
  play(): Promise<void>;
215
217
  }
218
+ interface Media {
219
+ stream: MediaStream | undefined;
220
+ track: MediaStreamTrack | undefined;
221
+ }
222
+ declare class MediaTracksHandler {
223
+ audio: Media;
224
+ video: Media;
225
+ constructor();
226
+ getAudioTrack(): MediaStreamTrack | undefined;
227
+ getVideoTrack(): MediaStreamTrack | undefined;
228
+ requestMediaPermissions(constraints?: MediaStreamConstraints): Promise<void | never>;
229
+ cleanAllStreams(options?: {
230
+ audio: boolean;
231
+ video: boolean;
232
+ }): void;
233
+ printState(): void;
234
+ }
216
235
  interface MediapipeOptions {
217
236
  type: 'blur' | 'background';
218
237
  fillColor?: string;
219
238
  background?: CanvasImageSource;
220
239
  blurLevel?: number;
221
240
  }
241
+ type MediaType = 'image' | 'video' | 'audio' | 'screenshare';
222
242
  interface DeviceRequest {
223
243
  requestId: string;
224
244
  deviceType: DeviceType;
@@ -232,7 +252,7 @@ interface CustomMessage {
232
252
  }
233
253
  declare global {
234
254
  export namespace SnapCall {
235
- export { Permissions, Permission };
255
+ export { Permissions, Permission, MediaType };
236
256
  export type SnapcallEvent<T> = CustomEvent<T>;
237
257
  export type PeersInfoEvent = SnapcallEvent<{
238
258
  videoRecordStarted: boolean;
@@ -316,8 +336,10 @@ declare global {
316
336
  avatarUrl?: string;
317
337
  }>;
318
338
  export type RecordStoppedEvent = SnapcallEvent<{
319
- url: string;
320
- assetId: number;
339
+ filename: string;
340
+ durationMs?: number;
341
+ sizeInBytes?: number;
342
+ success: boolean;
321
343
  }>;
322
344
  export type AudioLevelEvent = SnapcallEvent<{
323
345
  audioLevel: number;
@@ -342,8 +364,8 @@ declare global {
342
364
  }
343
365
  interface StreamerEventMap {
344
366
  audioLevel: SnapCall.AudioLevelEvent['detail'];
345
- localStartSpeak?: SnapCall.BaseEvent['detail'];
346
- localStopSpeak?: SnapCall.BaseEvent['detail'];
367
+ localStartSpeak: SnapCall.BaseEvent['detail'];
368
+ localStopSpeak: SnapCall.BaseEvent['detail'];
347
369
  leaveRoom: SnapCall.BaseEvent['detail'];
348
370
  terminateRoom: SnapCall.BaseEvent['detail'];
349
371
  invalidRoom: SnapCall.BaseEvent['detail'];
@@ -403,6 +425,7 @@ declare const StreamerEventTargetType: {
403
425
  prototype: StreamerEventTarget;
404
426
  };
405
427
  declare class StreamerClient extends StreamerEventTargetType implements AudioLevelListener {
428
+ tracksHandler: MediaTracksHandler;
406
429
  peers: Map<PeerId, PeerInfo>;
407
430
  consumers: Map<ConsumerId, ConsumerData>;
408
431
  webcams: Map<string, MediaDeviceInfo>;
@@ -478,6 +501,7 @@ declare class StreamerClient extends StreamerEventTargetType implements AudioLev
478
501
  terminateRoom(): void;
479
502
  updateWebcams(): Promise<void>;
480
503
  isVideoZoomAvailable(): boolean;
504
+ processMediaPermissionsAndResolveRequests(constraints: MediaStreamConstraints): Promise<void>;
481
505
  handleGetUserMediaError(deviceType: DeviceType, getUserMediaPromise: Promise<MediaStream>): Promise<MediaStream>;
482
506
  restartIce(transport: Transport): Promise<void>;
483
507
  setVideoBackground(options: MediapipeOptions): void;
@@ -514,14 +538,20 @@ declare class StreamerClient extends StreamerEventTargetType implements AudioLev
514
538
  }): void;
515
539
  saveCapture(base64Image: string): Promise<{
516
540
  url: string;
517
- assetId: number;
541
+ filename: string;
518
542
  }>;
519
- uploadEvent(file: any): Promise<{
543
+ uploadAsset(file: any): Promise<{
520
544
  url?: string;
521
- id?: number;
522
- success: boolean;
545
+ filename: string;
523
546
  }>;
524
- deleteCapture(assetId: number): Promise<number>;
547
+ createEvents(assets: Array<{
548
+ filename: string;
549
+ type: MediaType;
550
+ }>): Promise<{
551
+ success: boolean;
552
+ filename: string;
553
+ id: number;
554
+ }[]>;
525
555
  captureVideo(videoElement?: HTMLVideoElement): Promise<string>;
526
556
  requestLocalVideo(element: HTMLVideoElement): {
527
557
  facingMode: string;
@@ -552,7 +582,7 @@ declare class StreamerClient extends StreamerEventTargetType implements AudioLev
552
582
  device: MediaDeviceInfo | null;
553
583
  resolution: VideoResolution;
554
584
  };
555
- getCurrentMicrophoneId(): string | MediaTrackSettings | undefined;
585
+ getCurrentMicrophoneId(): string | undefined;
556
586
  getCurrentSpeakerId(): string;
557
587
  setWebcamResolution(resolution: VideoResolution): Promise<void>;
558
588
  createAudioRenderer(consumerId: string): AudioRenderer;
@@ -566,6 +596,13 @@ declare class StreamerClient extends StreamerEventTargetType implements AudioLev
566
596
  stopRecord(): Promise<void>;
567
597
  getPublicPage(token: string): Promise<PublicPage>;
568
598
  getWaitingRequests(): Promise<WaitingRequests>;
599
+ readAsset(file: string): Promise<{
600
+ url: string;
601
+ thumbnailUrl?: string;
602
+ }>;
603
+ deleteAsset(file: string): Promise<{
604
+ status: boolean;
605
+ }>;
569
606
  }
570
607
  declare const streamerClient: StreamerClient;
571
608
  interface NotificationOptions {
@@ -663,6 +700,7 @@ interface StreamUIBaseOptions {
663
700
  apiUrl?: string;
664
701
  tracking?: boolean;
665
702
  language?: string;
703
+ disableSessionFetching?: boolean;
666
704
  }
667
705
  interface StreamUIInitOptions extends StreamUIBaseOptions {
668
706
  element: HTMLElement;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snapcall/stream-ui",
3
- "version": "1.26.1",
3
+ "version": "1.28.0",
4
4
  "description": "",
5
5
  "source": "src/index.tsx",
6
6
  "main": "dist/stream-ui.js",
@@ -29,6 +29,9 @@
29
29
  "source": "html/index.html"
30
30
  }
31
31
  },
32
+ "@parcel/resolver-default": {
33
+ "packageExports": true
34
+ },
32
35
  "publishConfig": {
33
36
  "access": "public"
34
37
  },
@@ -38,6 +41,7 @@
38
41
  "scripts": {
39
42
  "dev": "npm run serve",
40
43
  "serve": "APP_ENV=local parcel serve --https --host 0.0.0.0 --target html",
44
+ "servewin": "parcel serve --https --host 0.0.0.0 --target html",
41
45
  "build": "parcel build",
42
46
  "build:npm": "parcel build --no-source-maps --target main --target module --target types",
43
47
  "build:s3": "parcel build --no-source-maps --target umd --target html",
@@ -67,9 +71,9 @@
67
71
  },
68
72
  "devDependencies": {
69
73
  "@localazy/cli": "^1.7.10",
70
- "@parcel/packager-ts": "^2.12.0",
71
- "@parcel/transformer-inline-string": "^2.12.0",
72
- "@parcel/transformer-typescript-types": "^2.12.0",
74
+ "@parcel/packager-ts": "^2.13.0",
75
+ "@parcel/transformer-inline-string": "^2.13.0",
76
+ "@parcel/transformer-typescript-types": "^2.13.0",
73
77
  "@types/protoo-client": "^4.0.1",
74
78
  "@types/qrcode": "^1.4.2",
75
79
  "@types/react": "^18.3.2",
@@ -82,7 +86,7 @@
82
86
  "eslint": "^8.16.0",
83
87
  "eslint-config-prettier": "^8.5.0",
84
88
  "eslint-config-react-app": "^7.0.1",
85
- "parcel": "^2.12.0",
89
+ "parcel": "^2.13.0",
86
90
  "postcss": "^8.4.38",
87
91
  "posthtml": "^0.16.6",
88
92
  "posthtml-expressions": "^1.11.3",
@@ -96,7 +100,8 @@
96
100
  "@lottiefiles/react-lottie-player": "^3.5.3",
97
101
  "@mediapipe/selfie_segmentation": "^0.1.1632777926",
98
102
  "@sentry/browser": "^7.0.0",
99
- "@snapcall/design-system": "^1.19.1",
103
+ "@snapcall/design-system": "^1.20.0",
104
+ "@tanstack/react-query": "^5.59.0",
100
105
  "@types/youtube": "^0.0.50",
101
106
  "bowser": "^2.11.0",
102
107
  "classnames": "^2.3.2",
@@ -105,7 +110,6 @@
105
110
  "qrcode": "^1.5.0",
106
111
  "react-hook-form": "^7.51.5",
107
112
  "react-hot-toast": "^2.2.0",
108
- "react-query": "^3.39.3",
109
113
  "react-stately": "^3.31.1",
110
114
  "styled-components": "^5.3.3",
111
115
  "uuid": "^9.0.0"