livekit-client 0.14.2 → 0.15.2

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 (108) hide show
  1. package/.github/workflows/{lint.yaml → test.yaml} +7 -4
  2. package/.gitmodules +3 -0
  3. package/README.md +46 -14
  4. package/dist/api/SignalClient.d.ts +7 -32
  5. package/dist/api/SignalClient.js +37 -8
  6. package/dist/api/SignalClient.js.map +1 -1
  7. package/dist/connect.d.ts +1 -1
  8. package/dist/connect.js +71 -73
  9. package/dist/connect.js.map +1 -1
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.js +4 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/logger.d.ts +10 -0
  14. package/dist/logger.js +15 -0
  15. package/dist/logger.js.map +1 -1
  16. package/dist/options.d.ts +83 -19
  17. package/dist/options.js +0 -10
  18. package/dist/options.js.map +1 -1
  19. package/dist/proto/livekit_models.d.ts +42 -1
  20. package/dist/proto/livekit_models.js +292 -4
  21. package/dist/proto/livekit_models.js.map +1 -1
  22. package/dist/proto/livekit_rtc.d.ts +115 -7
  23. package/dist/proto/livekit_rtc.js +810 -30
  24. package/dist/proto/livekit_rtc.js.map +1 -1
  25. package/dist/room/RTCEngine.d.ts +4 -2
  26. package/dist/room/RTCEngine.js +31 -35
  27. package/dist/room/RTCEngine.js.map +1 -1
  28. package/dist/room/Room.d.ts +16 -17
  29. package/dist/room/Room.js +125 -77
  30. package/dist/room/Room.js.map +1 -1
  31. package/dist/room/events.d.ts +115 -6
  32. package/dist/room/events.js +114 -5
  33. package/dist/room/events.js.map +1 -1
  34. package/dist/room/participant/LocalParticipant.d.ts +29 -11
  35. package/dist/room/participant/LocalParticipant.js +209 -160
  36. package/dist/room/participant/LocalParticipant.js.map +1 -1
  37. package/dist/room/participant/Participant.d.ts +2 -0
  38. package/dist/room/participant/Participant.js +3 -1
  39. package/dist/room/participant/Participant.js.map +1 -1
  40. package/dist/room/participant/RemoteParticipant.d.ts +1 -1
  41. package/dist/room/participant/RemoteParticipant.js +6 -5
  42. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  43. package/dist/room/participant/publishUtils.d.ts +11 -0
  44. package/dist/room/participant/publishUtils.js +148 -0
  45. package/dist/room/participant/publishUtils.js.map +1 -0
  46. package/dist/room/participant/publishUtils.test.d.ts +1 -0
  47. package/dist/room/participant/publishUtils.test.js +79 -0
  48. package/dist/room/participant/publishUtils.test.js.map +1 -0
  49. package/dist/room/stats.d.ts +21 -6
  50. package/dist/room/stats.js +22 -1
  51. package/dist/room/stats.js.map +1 -1
  52. package/dist/room/track/LocalAudioTrack.d.ts +8 -3
  53. package/dist/room/track/LocalAudioTrack.js +49 -3
  54. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  55. package/dist/room/track/LocalTrack.d.ts +4 -3
  56. package/dist/room/track/LocalTrack.js +6 -48
  57. package/dist/room/track/LocalTrack.js.map +1 -1
  58. package/dist/room/track/LocalVideoTrack.d.ts +14 -5
  59. package/dist/room/track/LocalVideoTrack.js +154 -62
  60. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  61. package/dist/room/track/LocalVideoTrack.test.d.ts +1 -0
  62. package/dist/room/track/LocalVideoTrack.test.js +68 -0
  63. package/dist/room/track/LocalVideoTrack.test.js.map +1 -0
  64. package/dist/room/track/RemoteAudioTrack.d.ts +7 -0
  65. package/dist/room/track/RemoteAudioTrack.js +61 -0
  66. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  67. package/dist/room/track/RemoteTrackPublication.d.ts +2 -3
  68. package/dist/room/track/RemoteTrackPublication.js +12 -10
  69. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  70. package/dist/room/track/RemoteVideoTrack.d.ts +10 -6
  71. package/dist/room/track/RemoteVideoTrack.js +97 -44
  72. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  73. package/dist/room/track/Track.d.ts +10 -2
  74. package/dist/room/track/Track.js +29 -2
  75. package/dist/room/track/Track.js.map +1 -1
  76. package/dist/room/track/TrackPublication.d.ts +2 -0
  77. package/dist/room/track/TrackPublication.js +1 -0
  78. package/dist/room/track/TrackPublication.js.map +1 -1
  79. package/dist/room/track/create.d.ts +4 -6
  80. package/dist/room/track/create.js +10 -57
  81. package/dist/room/track/create.js.map +1 -1
  82. package/dist/room/track/defaults.d.ts +4 -0
  83. package/dist/room/track/defaults.js +21 -0
  84. package/dist/room/track/defaults.js.map +1 -0
  85. package/dist/room/track/options.d.ts +15 -65
  86. package/dist/room/track/options.js +14 -13
  87. package/dist/room/track/options.js.map +1 -1
  88. package/dist/room/track/utils.d.ts +3 -0
  89. package/dist/room/track/utils.js +68 -0
  90. package/dist/room/track/utils.js.map +1 -0
  91. package/dist/room/track/utils.test.d.ts +1 -0
  92. package/dist/room/track/utils.test.js +85 -0
  93. package/dist/room/track/utils.test.js.map +1 -0
  94. package/dist/room/utils.d.ts +7 -1
  95. package/dist/room/utils.js +29 -6
  96. package/dist/room/utils.js.map +1 -1
  97. package/dist/version.d.ts +1 -1
  98. package/dist/version.js +1 -1
  99. package/example/index.html +194 -178
  100. package/example/sample.ts +454 -325
  101. package/example/styles.css +144 -0
  102. package/example/webpack.config.js +1 -1
  103. package/jest.config.js +6 -0
  104. package/package.json +9 -6
  105. package/tsconfig.eslint.json +8 -1
  106. package/dist/room/defaults.d.ts +0 -5
  107. package/dist/room/defaults.js +0 -32
  108. package/dist/room/defaults.js.map +0 -1
@@ -12,23 +12,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.createLocalScreenTracks = exports.createLocalAudioTrack = exports.createLocalVideoTrack = exports.createLocalTracks = exports.getLastVideoCreateError = exports.getLastAudioCreateError = void 0;
15
+ exports.createLocalScreenTracks = exports.createLocalAudioTrack = exports.createLocalVideoTrack = exports.createLocalTracks = void 0;
16
16
  const errors_1 = require("../errors");
17
+ const publishUtils_1 = require("../participant/publishUtils");
18
+ const defaults_1 = require("./defaults");
17
19
  const LocalAudioTrack_1 = __importDefault(require("./LocalAudioTrack"));
18
- const LocalTrack_1 = __importDefault(require("./LocalTrack"));
19
20
  const LocalVideoTrack_1 = __importDefault(require("./LocalVideoTrack"));
20
21
  const options_1 = require("./options");
21
22
  const Track_1 = require("./Track");
22
- let audioError;
23
- function getLastAudioCreateError() {
24
- return audioError;
25
- }
26
- exports.getLastAudioCreateError = getLastAudioCreateError;
27
- let videoError;
28
- function getLastVideoCreateError() {
29
- return videoError;
30
- }
31
- exports.getLastVideoCreateError = getLastVideoCreateError;
23
+ const utils_1 = require("./utils");
32
24
  /**
33
25
  * Creates a local video and audio track at the same time. When acquiring both
34
26
  * audio and video tracks together, it'll display a single permission prompt to
@@ -37,34 +29,9 @@ exports.getLastVideoCreateError = getLastVideoCreateError;
37
29
  */
38
30
  function createLocalTracks(options) {
39
31
  return __awaiter(this, void 0, void 0, function* () {
40
- if (!options)
41
- options = {};
42
- if (options.audio === true)
43
- options.audio = {};
44
- if (options.video === true)
45
- options.video = {};
46
- const constraints = LocalTrack_1.default.constraintsForOptions(options);
47
- let stream;
48
- try {
49
- stream = yield navigator.mediaDevices.getUserMedia(constraints);
50
- }
51
- catch (err) {
52
- if (err instanceof Error) {
53
- if (constraints.audio) {
54
- audioError = err;
55
- }
56
- if (constraints.video) {
57
- videoError = err;
58
- }
59
- }
60
- throw err;
61
- }
62
- if (constraints.audio) {
63
- audioError = undefined;
64
- }
65
- if (constraints.video) {
66
- videoError = undefined;
67
- }
32
+ const opts = utils_1.mergeDefaultOptions(options, defaults_1.audioDefaults, defaults_1.videoDefaults);
33
+ const constraints = utils_1.constraintsForOptions(opts);
34
+ const stream = yield navigator.mediaDevices.getUserMedia(constraints);
68
35
  return stream.getTracks().map((mediaStreamTrack) => {
69
36
  const isAudio = mediaStreamTrack.kind === 'audio';
70
37
  let trackOptions = isAudio ? options.audio : options.video;
@@ -76,7 +43,7 @@ function createLocalTracks(options) {
76
43
  if (typeof conOrBool !== 'boolean') {
77
44
  trackConstraints = conOrBool;
78
45
  }
79
- const track = createLocalTrack(mediaStreamTrack, trackOptions === null || trackOptions === void 0 ? void 0 : trackOptions.name, trackConstraints);
46
+ const track = publishUtils_1.mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints);
80
47
  if (track.kind === Track_1.Track.Kind.Video) {
81
48
  track.source = Track_1.Track.Source.Camera;
82
49
  }
@@ -123,9 +90,6 @@ function createLocalScreenTracks(options) {
123
90
  if (options === undefined) {
124
91
  options = {};
125
92
  }
126
- if (options.name === undefined) {
127
- options.name = 'screen';
128
- }
129
93
  if (options.resolution === undefined) {
130
94
  options.resolution = options_1.VideoPresets.fhd.resolution;
131
95
  }
@@ -146,11 +110,11 @@ function createLocalScreenTracks(options) {
146
110
  if (tracks.length === 0) {
147
111
  throw new errors_1.TrackInvalidError('no video track found');
148
112
  }
149
- const screenVideo = new LocalVideoTrack_1.default(tracks[0], options.name);
113
+ const screenVideo = new LocalVideoTrack_1.default(tracks[0]);
150
114
  screenVideo.source = Track_1.Track.Source.ScreenShare;
151
115
  const localTracks = [screenVideo];
152
116
  if (stream.getAudioTracks().length > 0) {
153
- const screenAudio = new LocalAudioTrack_1.default(stream.getAudioTracks()[0], options.name);
117
+ const screenAudio = new LocalAudioTrack_1.default(stream.getAudioTracks()[0]);
154
118
  screenAudio.source = Track_1.Track.Source.ScreenShareAudio;
155
119
  localTracks.push(screenAudio);
156
120
  }
@@ -158,15 +122,4 @@ function createLocalScreenTracks(options) {
158
122
  });
159
123
  }
160
124
  exports.createLocalScreenTracks = createLocalScreenTracks;
161
- /** @internal */
162
- function createLocalTrack(mediaStreamTrack, name, constraints) {
163
- switch (mediaStreamTrack.kind) {
164
- case 'audio':
165
- return new LocalAudioTrack_1.default(mediaStreamTrack, name, constraints);
166
- case 'video':
167
- return new LocalVideoTrack_1.default(mediaStreamTrack, name, constraints);
168
- default:
169
- throw new errors_1.TrackInvalidError(`unsupported track type: ${mediaStreamTrack.kind}`);
170
- }
171
- }
172
125
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/room/track/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/room/track/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AudioCaptureOptions, TrackPublishDefaults, VideoCaptureOptions } from './options';
2
+ export declare const publishDefaults: TrackPublishDefaults;
3
+ export declare const audioDefaults: AudioCaptureOptions;
4
+ export declare const videoDefaults: VideoCaptureOptions;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.videoDefaults = exports.audioDefaults = exports.publishDefaults = void 0;
4
+ const options_1 = require("./options");
5
+ exports.publishDefaults = {
6
+ audioBitrate: options_1.AudioPresets.speech.maxBitrate,
7
+ dtx: true,
8
+ simulcast: true,
9
+ screenShareEncoding: options_1.ScreenSharePresets.hd_15.encoding,
10
+ stopMicTrackOnMute: false,
11
+ };
12
+ exports.audioDefaults = {
13
+ autoGainControl: true,
14
+ channelCount: 1,
15
+ echoCancellation: true,
16
+ noiseSuppression: true,
17
+ };
18
+ exports.videoDefaults = {
19
+ resolution: options_1.VideoPresets.qhd.resolution,
20
+ };
21
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/room/track/defaults.ts"],"names":[],"mappings":";;;AAAA,uCAGmB;AAEN,QAAA,eAAe,GAAyB;IACnD,YAAY,EAAE,sBAAY,CAAC,MAAM,CAAC,UAAU;IAC5C,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,IAAI;IACf,mBAAmB,EAAE,4BAAkB,CAAC,KAAK,CAAC,QAAQ;IACtD,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEW,QAAA,aAAa,GAAwB;IAChD,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEW,QAAA,aAAa,GAAwB;IAChD,UAAU,EAAE,sBAAY,CAAC,GAAG,CAAC,UAAU;CACxC,CAAC"}
@@ -17,12 +17,12 @@ export interface TrackPublishDefaults {
17
17
  */
18
18
  audioBitrate?: number;
19
19
  /**
20
- * dtx (Discontinuous Tranmission of audio), defaults to true
20
+ * dtx (Discontinuous Transmission of audio), defaults to true
21
21
  */
22
22
  dtx?: boolean;
23
23
  /**
24
- * use simulcast, defaults to false.
25
- * When using simulcast, LiveKit will publish up to three version of the stream
24
+ * use simulcast, defaults to true.
25
+ * When using simulcast, LiveKit will publish up to three versions of the stream
26
26
  * at various resolutions.
27
27
  */
28
28
  simulcast?: boolean;
@@ -36,40 +36,6 @@ export interface TrackPublishDefaults {
36
36
  */
37
37
  stopMicTrackOnMute?: boolean;
38
38
  }
39
- export interface TrackCaptureDefaults {
40
- /**
41
- * default device to use for microphone capture
42
- */
43
- audioDeviceId?: string;
44
- /**
45
- * specifies whether automatic gain control is preferred, defaults to true
46
- */
47
- autoGainControl?: boolean;
48
- /**
49
- * the channel count or range of channel counts which are acceptable and/or required
50
- */
51
- channelCount?: number;
52
- /**
53
- * whether or not echo cancellation is preferred, defaults to true
54
- */
55
- echoCancellation?: boolean;
56
- /**
57
- * whether noise suppression is preferred, defaults to true
58
- */
59
- noiseSuppression?: boolean;
60
- /**
61
- * set if a particular video facing mode is preferred
62
- */
63
- videoFacingMode?: 'user' | 'environment' | 'left' | 'right';
64
- /**
65
- * default device to use for camera capture
66
- */
67
- videoDeviceId?: string;
68
- /**
69
- * default video capture resolution
70
- */
71
- videoResolution?: VideoResolution;
72
- }
73
39
  /**
74
40
  * Options when publishing tracks
75
41
  */
@@ -88,33 +54,26 @@ export interface CreateLocalTracksOptions {
88
54
  * audio track options, true to create with defaults. false if audio shouldn't be created
89
55
  * default true
90
56
  */
91
- audio?: boolean | CreateAudioTrackOptions;
57
+ audio?: boolean | AudioCaptureOptions;
92
58
  /**
93
59
  * video track options, true to create with defaults. false if video shouldn't be created
94
60
  * default true
95
61
  */
96
- video?: boolean | CreateVideoTrackOptions;
62
+ video?: boolean | VideoCaptureOptions;
97
63
  }
98
- export interface CreateLocalTrackOptions {
99
- /** name of track */
100
- name?: string;
64
+ export interface VideoCaptureOptions {
101
65
  /**
102
66
  * A ConstrainDOMString object specifying a device ID or an array of device
103
67
  * IDs which are acceptable and/or required.
104
68
  */
105
69
  deviceId?: ConstrainDOMString;
106
- }
107
- export interface CreateVideoTrackOptions extends CreateLocalTrackOptions {
108
70
  /**
109
71
  * a facing or an array of facings which are acceptable and/or required.
110
- * [valid options](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/facingMode)
111
72
  */
112
- facingMode?: ConstrainDOMString;
73
+ facingMode?: 'user' | 'environment' | 'left' | 'right';
113
74
  resolution?: VideoResolution;
114
75
  }
115
- export interface CreateScreenTrackOptions {
116
- /** name of track, defaults to "screen" */
117
- name?: string;
76
+ export interface ScreenShareCaptureOptions {
118
77
  /**
119
78
  * true to capture audio shared. browser support for audio capturing in
120
79
  * screenshare is limited: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#browser_compatibility
@@ -123,7 +82,7 @@ export interface CreateScreenTrackOptions {
123
82
  /** capture resolution, defaults to full HD */
124
83
  resolution?: VideoResolution;
125
84
  }
126
- export interface CreateAudioTrackOptions extends CreateLocalTrackOptions {
85
+ export interface AudioCaptureOptions {
127
86
  /**
128
87
  * specifies whether automatic gain control is preferred and/or required
129
88
  */
@@ -132,6 +91,11 @@ export interface CreateAudioTrackOptions extends CreateLocalTrackOptions {
132
91
  * the channel count or range of channel counts which are acceptable and/or required
133
92
  */
134
93
  channelCount?: ConstrainULong;
94
+ /**
95
+ * A ConstrainDOMString object specifying a device ID or an array of device
96
+ * IDs which are acceptable and/or required.
97
+ */
98
+ deviceId?: ConstrainDOMString;
135
99
  /**
136
100
  * whether or not echo cancellation is preferred and/or required
137
101
  */
@@ -153,20 +117,6 @@ export interface CreateAudioTrackOptions extends CreateLocalTrackOptions {
153
117
  */
154
118
  sampleSize?: ConstrainULong;
155
119
  }
156
- /**
157
- * example
158
- *
159
- * ```typescript
160
- * {
161
- * width: 960,
162
- * height: 540,
163
- * frameRate: {
164
- * ideal: 30,
165
- * max: 60,
166
- * },
167
- * }
168
- * ```
169
- */
170
120
  export interface VideoResolution {
171
121
  width: number;
172
122
  height: number;
@@ -181,7 +131,7 @@ export declare class VideoPreset {
181
131
  encoding: VideoEncoding;
182
132
  width: number;
183
133
  height: number;
184
- constructor(width: number, height: number, maxBitrate: number, maxFramerate: number);
134
+ constructor(width: number, height: number, maxBitrate: number, maxFramerate?: number);
185
135
  get resolution(): VideoResolution;
186
136
  }
187
137
  export interface AudioPreset {
@@ -15,6 +15,7 @@ class VideoPreset {
15
15
  width: this.width,
16
16
  height: this.height,
17
17
  frameRate: this.encoding.maxFramerate,
18
+ aspectRatio: this.width / this.height,
18
19
  };
19
20
  }
20
21
  }
@@ -35,27 +36,27 @@ var AudioPresets;
35
36
  * Sane presets for video resolution/encoding
36
37
  */
37
38
  exports.VideoPresets = {
38
- qvga: new VideoPreset(320, 180, 125000, 15),
39
- vga: new VideoPreset(640, 360, 400000, 30),
40
- qhd: new VideoPreset(960, 540, 800000, 30),
41
- hd: new VideoPreset(1280, 720, 2500000, 30),
42
- fhd: new VideoPreset(1920, 1080, 4000000, 30),
39
+ qvga: new VideoPreset(320, 180, 120000, 10),
40
+ vga: new VideoPreset(640, 360, 300000, 20),
41
+ qhd: new VideoPreset(960, 540, 600000, 25),
42
+ hd: new VideoPreset(1280, 720, 2000000, 30),
43
+ fhd: new VideoPreset(1920, 1080, 3000000, 30),
43
44
  };
44
45
  /**
45
46
  * Four by three presets
46
47
  */
47
48
  exports.VideoPresets43 = {
48
- qvga: new VideoPreset(240, 180, 100000, 15),
49
- vga: new VideoPreset(480, 360, 320000, 30),
50
- qhd: new VideoPreset(720, 540, 640000, 30),
51
- hd: new VideoPreset(960, 720, 2000000, 30),
52
- fhd: new VideoPreset(1440, 1080, 3200000, 30),
49
+ qvga: new VideoPreset(240, 180, 90000, 10),
50
+ vga: new VideoPreset(480, 360, 225000, 20),
51
+ qhd: new VideoPreset(720, 540, 450000, 25),
52
+ hd: new VideoPreset(960, 720, 1500000, 30),
53
+ fhd: new VideoPreset(1440, 1080, 2800000, 30),
53
54
  };
54
55
  exports.ScreenSharePresets = {
55
56
  vga: new VideoPreset(640, 360, 200000, 3),
56
57
  hd_8: new VideoPreset(1280, 720, 400000, 5),
57
- hd_15: new VideoPreset(1280, 720, 1250000, 15),
58
- fhd_15: new VideoPreset(1920, 1080, 2000000, 15),
59
- fhd_30: new VideoPreset(1920, 1080, 4000000, 30),
58
+ hd_15: new VideoPreset(1280, 720, 1000000, 15),
59
+ fhd_15: new VideoPreset(1920, 1080, 1500000, 15),
60
+ fhd_30: new VideoPreset(1920, 1080, 3000000, 30),
60
61
  };
61
62
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/room/track/options.ts"],"names":[],"mappings":";;;AAwNA,MAAa,WAAW;IAOtB,YAAY,KAAa,EAAE,MAAc,EAAE,UAAkB,EAAE,YAAoB;QACjF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG;YACd,UAAU;YACV,YAAY;SACb,CAAC;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;SACtC,CAAC;IACJ,CAAC;CACF;AAvBD,kCAuBC;AAQD,IAAiB,YAAY,CAU5B;AAVD,WAAiB,YAAY;IACd,sBAAS,GAAgB;QACpC,UAAU,EAAE,KAAM;KACnB,CAAC;IACW,mBAAM,GAAgB;QACjC,UAAU,EAAE,KAAM;KACnB,CAAC;IACW,kBAAK,GAAgB;QAChC,UAAU,EAAE,KAAM;KACnB,CAAC;AACJ,CAAC,EAVgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU5B;AAED;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC5C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,EAAE,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAC7C,GAAG,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CAChD,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC5C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAC5C,GAAG,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CAChD,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAChC,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,MAAO,EAAE,CAAC,CAAC;IAC5C,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAChD,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;IAClD,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CACnD,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/room/track/options.ts"],"names":[],"mappings":";;;AA4JA,MAAa,WAAW;IAOtB,YAAY,KAAa,EAAE,MAAc,EAAE,UAAkB,EAAE,YAAqB;QAClF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG;YACd,UAAU;YACV,YAAY;SACb,CAAC;IACJ,CAAC;IAED,IAAI,UAAU;QACZ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;YACrC,WAAW,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM;SACtC,CAAC;IACJ,CAAC;CACF;AAxBD,kCAwBC;AAQD,IAAiB,YAAY,CAU5B;AAVD,WAAiB,YAAY;IACd,sBAAS,GAAgB;QACpC,UAAU,EAAE,KAAM;KACnB,CAAC;IACW,mBAAM,GAAgB;QACjC,UAAU,EAAE,KAAM;KACnB,CAAC;IACW,kBAAK,GAAgB;QAChC,UAAU,EAAE,KAAM;KACnB,CAAC;AACJ,CAAC,EAVgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAU5B;AAED;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC5C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,EAAE,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAC7C,GAAG,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CAChD,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAM,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,EAAE,CAAC;IAC3C,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAC5C,GAAG,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CAChD,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAChC,GAAG,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAO,EAAE,CAAC,CAAC;IAC1C,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,MAAO,EAAE,CAAC,CAAC;IAC5C,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAS,EAAE,EAAE,CAAC;IAChD,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;IAClD,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAS,EAAE,EAAE,CAAC;CACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AudioCaptureOptions, CreateLocalTracksOptions, VideoCaptureOptions } from './options';
2
+ export declare function mergeDefaultOptions(options?: CreateLocalTracksOptions, audioDefaults?: AudioCaptureOptions, videoDefaults?: VideoCaptureOptions): CreateLocalTracksOptions;
3
+ export declare function constraintsForOptions(options: CreateLocalTracksOptions): MediaStreamConstraints;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.constraintsForOptions = exports.mergeDefaultOptions = void 0;
4
+ function mergeDefaultOptions(options, audioDefaults, videoDefaults) {
5
+ const opts = Object.assign({}, options);
6
+ if (opts.audio === true)
7
+ opts.audio = {};
8
+ if (opts.video === true)
9
+ opts.video = {};
10
+ // use defaults
11
+ if (opts.audio) {
12
+ mergeObjectWithoutOverwriting(opts.audio, audioDefaults);
13
+ }
14
+ if (opts.video) {
15
+ mergeObjectWithoutOverwriting(opts.video, videoDefaults);
16
+ }
17
+ return opts;
18
+ }
19
+ exports.mergeDefaultOptions = mergeDefaultOptions;
20
+ function mergeObjectWithoutOverwriting(mainObject, objectToMerge) {
21
+ Object.keys(objectToMerge).forEach((key) => {
22
+ if (mainObject[key] === undefined)
23
+ mainObject[key] = objectToMerge[key];
24
+ });
25
+ return mainObject;
26
+ }
27
+ function constraintsForOptions(options) {
28
+ const constraints = {};
29
+ if (options.video) {
30
+ // default video options
31
+ if (typeof options.video === 'object') {
32
+ const videoOptions = {};
33
+ const target = videoOptions;
34
+ const source = options.video;
35
+ Object.keys(source).forEach((key) => {
36
+ switch (key) {
37
+ case 'resolution':
38
+ // flatten VideoResolution fields
39
+ mergeObjectWithoutOverwriting(target, source.resolution);
40
+ break;
41
+ default:
42
+ target[key] = source[key];
43
+ }
44
+ });
45
+ constraints.video = videoOptions;
46
+ }
47
+ else {
48
+ constraints.video = options.video;
49
+ }
50
+ }
51
+ else {
52
+ constraints.video = false;
53
+ }
54
+ if (options.audio) {
55
+ if (typeof options.audio === 'object') {
56
+ constraints.audio = options.audio;
57
+ }
58
+ else {
59
+ constraints.audio = true;
60
+ }
61
+ }
62
+ else {
63
+ constraints.audio = false;
64
+ }
65
+ return constraints;
66
+ }
67
+ exports.constraintsForOptions = constraintsForOptions;
68
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/room/track/utils.ts"],"names":[],"mappings":";;;AAKA,SAAgB,mBAAmB,CACjC,OAAkC,EAClC,aAAmC,EACnC,aAAmC;IAEnC,MAAM,IAAI,qBACL,OAAO,CACX,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;QAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;QAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAEzC,eAAe;IACf,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,6BAA6B,CAAC,IAAI,CAAC,KAAgC,EACjE,aAAwC,CAAC,CAAC;KAC7C;IACD,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,6BAA6B,CAAC,IAAI,CAAC,KAAgC,EACjE,aAAwC,CAAC,CAAC;KAC7C;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AArBD,kDAqBC;AAED,SAAS,6BAA6B,CACpC,UAAmC,EACnC,aAAsC;IAEtC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAiC;IACrE,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,wBAAwB;QACxB,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,MAAM,YAAY,GAA0B,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,YAAuC,CAAC;YACvD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAgC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,QAAQ,GAAG,EAAE;oBACX,KAAK,YAAY;wBACf,iCAAiC;wBACjC,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,UAAqC,CAAC,CAAC;wBACpF,MAAM;oBACR;wBACE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;iBAC7B;YACH,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,KAAK,GAAG,YAAY,CAAC;SAClC;aAAM;YACL,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SACnC;KACF;SAAM;QACL,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;KAC3B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE;QACjB,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SACnC;aAAM;YACL,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;SAC1B;KACF;SAAM;QACL,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;KAC3B;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AArCD,sDAqCC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const options_1 = require("./options");
4
+ const utils_1 = require("./utils");
5
+ describe('mergeDefaultOptions', () => {
6
+ const audioDefaults = {
7
+ autoGainControl: true,
8
+ channelCount: 2,
9
+ };
10
+ const videoDefaults = {
11
+ deviceId: 'video123',
12
+ resolution: options_1.VideoPresets.fhd.resolution,
13
+ };
14
+ it('does not enable undefined options', () => {
15
+ const opts = utils_1.mergeDefaultOptions(undefined, audioDefaults, videoDefaults);
16
+ expect(opts.audio).toEqual(undefined);
17
+ expect(opts.video).toEqual(undefined);
18
+ });
19
+ it('does not enable explicitly disabled', () => {
20
+ const opts = utils_1.mergeDefaultOptions({
21
+ video: false,
22
+ });
23
+ expect(opts.audio).toEqual(undefined);
24
+ expect(opts.video).toEqual(false);
25
+ });
26
+ it('accepts true for options', () => {
27
+ const opts = utils_1.mergeDefaultOptions({
28
+ audio: true,
29
+ }, audioDefaults, videoDefaults);
30
+ expect(opts.audio).toEqual(audioDefaults);
31
+ expect(opts.video).toEqual(undefined);
32
+ });
33
+ it('enables overriding specific fields', () => {
34
+ const opts = utils_1.mergeDefaultOptions({
35
+ audio: { channelCount: 1 },
36
+ }, audioDefaults, videoDefaults);
37
+ const audioOpts = opts.audio;
38
+ expect(audioOpts.channelCount).toEqual(1);
39
+ expect(audioOpts.autoGainControl).toEqual(true);
40
+ });
41
+ it('does not override explicit false', () => {
42
+ const opts = utils_1.mergeDefaultOptions({
43
+ audio: { autoGainControl: false },
44
+ }, audioDefaults, videoDefaults);
45
+ const audioOpts = opts.audio;
46
+ expect(audioOpts.autoGainControl).toEqual(false);
47
+ });
48
+ });
49
+ describe('constraintsForOptions', () => {
50
+ it('correctly enables audio bool', () => {
51
+ const constraints = utils_1.constraintsForOptions({
52
+ audio: true,
53
+ });
54
+ expect(constraints.audio).toEqual(true);
55
+ expect(constraints.video).toEqual(false);
56
+ });
57
+ it('converts audio options correctly', () => {
58
+ const constraints = utils_1.constraintsForOptions({
59
+ audio: {
60
+ noiseSuppression: true,
61
+ echoCancellation: false,
62
+ },
63
+ });
64
+ const audioOpts = constraints.audio;
65
+ expect(Object.keys(audioOpts)).toEqual(['noiseSuppression', 'echoCancellation']);
66
+ expect(audioOpts.noiseSuppression).toEqual(true);
67
+ expect(audioOpts.echoCancellation).toEqual(false);
68
+ });
69
+ it('converts video options correctly', () => {
70
+ const constraints = utils_1.constraintsForOptions({
71
+ video: {
72
+ resolution: options_1.VideoPresets.hd.resolution,
73
+ facingMode: 'user',
74
+ deviceId: 'video123',
75
+ },
76
+ });
77
+ const videoOpts = constraints.video;
78
+ expect(Object.keys(videoOpts)).toEqual(['width', 'height', 'frameRate', 'aspectRatio', 'facingMode', 'deviceId']);
79
+ expect(videoOpts.width).toEqual(options_1.VideoPresets.hd.resolution.width);
80
+ expect(videoOpts.height).toEqual(options_1.VideoPresets.hd.resolution.height);
81
+ expect(videoOpts.frameRate).toEqual(options_1.VideoPresets.hd.resolution.frameRate);
82
+ expect(videoOpts.aspectRatio).toEqual(options_1.VideoPresets.hd.resolution.aspectRatio);
83
+ });
84
+ });
85
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../src/room/track/utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
1
  export declare function unpackStreamId(packed: string): string[];
2
- export declare function useLegacyAPI(): boolean;
3
2
  export declare function sleep(duration: number): Promise<void>;
3
+ export declare function isFireFox(): boolean;
4
+ export declare const getResizeObserver: () => ResizeObserver;
5
+ export declare const getIntersectionObserver: () => IntersectionObserver;
6
+ export interface ObservableMediaElement extends HTMLMediaElement {
7
+ handleResize: (entry: ResizeObserverEntry) => void;
8
+ handleVisibilityChanged: (entry: IntersectionObserverEntry) => void;
9
+ }
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.sleep = exports.useLegacyAPI = exports.unpackStreamId = void 0;
12
+ exports.getIntersectionObserver = exports.getResizeObserver = exports.isFireFox = exports.sleep = exports.unpackStreamId = void 0;
13
13
  const separator = '|';
14
14
  function unpackStreamId(packed) {
15
15
  const parts = packed.split(separator);
@@ -19,15 +19,38 @@ function unpackStreamId(packed) {
19
19
  return [packed, ''];
20
20
  }
21
21
  exports.unpackStreamId = unpackStreamId;
22
- function useLegacyAPI() {
23
- // react native is using old stream based API
24
- return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
25
- }
26
- exports.useLegacyAPI = useLegacyAPI;
27
22
  function sleep(duration) {
28
23
  return __awaiter(this, void 0, void 0, function* () {
29
24
  return new Promise((resolve) => setTimeout(resolve, duration));
30
25
  });
31
26
  }
32
27
  exports.sleep = sleep;
28
+ function isFireFox() {
29
+ return navigator.userAgent.indexOf('Firefox') !== -1;
30
+ }
31
+ exports.isFireFox = isFireFox;
32
+ function roDispatchCallback(entries) {
33
+ for (const entry of entries) {
34
+ entry.target.handleResize(entry);
35
+ }
36
+ }
37
+ function ioDispatchCallback(entries) {
38
+ for (const entry of entries) {
39
+ entry.target.handleVisibilityChanged(entry);
40
+ }
41
+ }
42
+ let resizeObserver = null;
43
+ const getResizeObserver = () => {
44
+ if (!resizeObserver)
45
+ resizeObserver = new ResizeObserver(roDispatchCallback);
46
+ return resizeObserver;
47
+ };
48
+ exports.getResizeObserver = getResizeObserver;
49
+ let intersectionObserver = null;
50
+ const getIntersectionObserver = () => {
51
+ if (!intersectionObserver)
52
+ intersectionObserver = new IntersectionObserver(ioDispatchCallback);
53
+ return intersectionObserver;
54
+ };
55
+ exports.getIntersectionObserver = getIntersectionObserver;
33
56
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAND,wCAMC;AAED,SAAgB,YAAY;IAC1B,6CAA6C;IAC7C,OAAO,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,CAAC;AACjF,CAAC;AAHD,oCAGC;AAED,SAAsB,KAAK,CAAC,QAAgB;;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;CAAA;AAFD,sBAEC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/room/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,SAAgB,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtB,CAAC;AAND,wCAMC;AAED,SAAsB,KAAK,CAAC,QAAgB;;QAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;CAAA;AAFD,sBAEC;AAED,SAAgB,SAAS;IACvB,OAAO,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,8BAEC;AAED,SAAS,kBAAkB,CAAC,OAA8B;IACxD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC9D;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAoC;IAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC1B,KAAK,CAAC,MAAiC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACzE;AACH,CAAC;AAED,IAAI,cAAc,GAA0B,IAAI,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,IAAI,CAAC,cAAc;QAAE,cAAc,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7E,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEF,IAAI,oBAAoB,GAAgC,IAAI,CAAC;AACtD,MAAM,uBAAuB,GAAG,GAAG,EAAE;IAC1C,IAAI,CAAC,oBAAoB;QAAE,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAC/F,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAHW,QAAA,uBAAuB,2BAGlC"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "0.14.2";
1
+ export declare const version = "0.15.2";
2
2
  export declare const protocolVersion = 5;
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.protocolVersion = exports.version = void 0;
4
- exports.version = '0.14.2';
4
+ exports.version = '0.15.2';
5
5
  exports.protocolVersion = 5;
6
6
  //# sourceMappingURL=version.js.map