@voltkit-rtc/react-native 0.1.1 → 0.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.2
4
+
5
+ From the SDK red team (`src/__tests__/redteam.test.tsx` RN-1, RN-2), with the lead's decisions:
6
+
7
+ - **Stop wins over a Go live still under way** (RN-1, RN-2, privacy). `unpublish()` tapped while the Android
8
+ permission dialog was up, or while the camera was opening, let the camera and microphone go live after the user
9
+ stopped. `publish()` now watches for the stop: after the dialog nothing opens, a camera that opened is released,
10
+ nothing is published, and it rejects with `unpublished`.
11
+ - **Permissions are hints** (client 0.9.14): where `permissions` says audio or video is off, `publish()` asks the
12
+ controller before refusing; with client 0.9.13 the hint stands.
13
+ - The test fixture's native version is 0.1.2 (no stale-native warning in Jest).
14
+
15
+ Prepared 2026-10-28, not published. README only: the Music add-on. Music is an add-on on standard and HD voice (₹10 per
16
+ 1,000 participant-minutes while music plays, enabled in the project's Settings → Media and quality) and included with
17
+ video; a listener who receives a web host's `music` track is billed it on a voice tier too. This SDK still does not
18
+ publish music (`publishMusic()` rejects with `music-unavailable`). No behaviour changed (`SDK_VERSION` follows the
19
+ package version); the peers are unchanged
20
+ (`@voltkit-rtc/client >=0.9.13 <0.10.0` takes 0.9.14, `@voltkit-rtc/react ^0.1.1` takes 0.1.2). Build the app again
21
+ after upgrading all the same: its version check reads this package's version.
22
+
3
23
  ## 0.1.1
4
24
 
5
25
  2026-10-27. Two fixes from the testers' report on 0.1.0 (RN010-1, RN010-2). Peer dependency `@voltkit-rtc/client`
package/README.md CHANGED
@@ -580,7 +580,7 @@ browser SDK's: https://voltkit.in/docs/client-sdk.
580
580
 
581
581
  | Call | |
582
582
  | --- | --- |
583
- | `publish(options?)` | ask for the permissions, then open the camera and microphone and publish them (hosts and cohosts) |
583
+ | `publish(options?)` | ask for the permissions, then open the camera and microphone and publish them (hosts and cohosts). `unpublish()` while the permission dialog is up or the camera is opening wins: no device opens after it, what opened is released, nothing goes live, and `publish` rejects with `unpublished` (0.1.2). Where `permissions` says no, the controller is asked first (client 0.9.14): the hint can be stale |
584
584
  | `unpublish()` | stop publishing everything, screen included, and release the devices |
585
585
  | `setMicEnabled(on)`, `setCamEnabled(on)` | switch one off or on; viewers are told |
586
586
  | `setAudioQuality(quality)` | `'std'` or `'hd'` while live; resolves to the quality in use |
@@ -1263,7 +1263,7 @@ on for a publish that cannot happen:
1263
1263
  | `not-connected` | the session is not connected, or there is no client yet |
1264
1264
  | `forbidden` | your role is not `host` or `cohost` |
1265
1265
  | `source-already-published` | a camera and microphone are already published, or a publish is under way: `unpublish()` first |
1266
- | `media-disabled` | the project switched that kind off. Check `permissions.audio` and `permissions.video`, or pass `audio: false` or `video: false` |
1266
+ | `media-disabled` | the project switched that kind off. Check `permissions.audio` and `permissions.video`, or pass `audio: false` or `video: false`. A web host's `publishMusic` gets it too where the project has neither the Music add-on nor video enabled; this SDK does not publish music |
1267
1267
 
1268
1268
  A camera or microphone that another app holds, or that fails to open, rejects
1269
1269
  with `media-unavailable`, with `data.reason` set to the capture error's name (or
@@ -1309,7 +1309,7 @@ export function mediaProblem(err: unknown): string | null {
1309
1309
  | `camera-failed` | the camera could not switch; the old one stays on air | try again |
1310
1310
  | `bad-params` | an id no camera, microphone or output has, or an output chosen in the `media` audio mode | use an id from `useDevices` or `useAudioOutput` |
1311
1311
  | `screen-share-service-required`, `screen-share-denied`, `screen-share-unsupported`, `screen-share-active`, `screen-share-failed` | screen sharing is not set up in the build, the user cancelled, iOS, a share is already starting, or the capture could not start | see [Screen sharing](#screen-sharing) |
1312
- | `music-unavailable` | in-app music needs a browser | leave it out of the app |
1312
+ | `music-unavailable` | in-app music needs a browser. Receiving a host's `music` track works, and is billed as the Music add-on: ₹10 per 1,000 participant-minutes while music plays, on standard and HD voice, included with video | leave publishing music out of the app |
1313
1313
 
1314
1314
  ### Reconnection
1315
1315
 
@@ -240,12 +240,31 @@ async function publishDevices(client, options) {
240
240
  if (publishing.has(client) || (0, _common.localStream)(client)?.getTracks().some(track => track.readyState === 'live')) {
241
241
  throw new _client.RpcError('source-already-published', 'already publishing: unpublish() first');
242
242
  }
243
- const permissions = client.mediaPermissions;
244
- if (audio !== false && !permissions.audio) throw new _client.RpcError('media-disabled', 'audio is switched off for this project');
245
- if (video !== false && !permissions.video) throw new _client.RpcError('media-disabled', 'video is switched off for this project');
246
- if (!(0, _globals.registerVoltkitGlobals)()) throw (0, _errors.webrtcMissing)();
247
243
  publishing.add(client);
244
+ // Stop wins over a start still under way (0.1.2): unpublish() -- the user's Stop -- while the permission dialog is up
245
+ // or the camera is opening says so with localStreamChanged(null). No device opens after it, what opened is released,
246
+ // nothing is published, and this start rejects with `unpublished`.
247
+ let stopped = false;
248
+ const unwatch = client.on('localStreamChanged', local => {
249
+ if (local === null) stopped = true;
250
+ });
251
+ const stoppedError = () => new _client.RpcError('unpublished', 'unpublish() ran while the camera and microphone were opening');
248
252
  try {
253
+ let permissions = client.mediaPermissions;
254
+ if (audio !== false && !permissions.audio || video !== false && !permissions.video) {
255
+ // A hint from the join (client 0.9.14): the controller is asked before refusing. Null: it cannot say, and the
256
+ // client's publish lets it decide.
257
+ const fresh = await refreshPermissions(client, permissions);
258
+ permissions = fresh ?? {
259
+ ...permissions,
260
+ audio: true,
261
+ video: true
262
+ };
263
+ if (stopped) throw stoppedError();
264
+ }
265
+ if (audio !== false && !permissions.audio) throw new _client.RpcError('media-disabled', 'audio is switched off for this project');
266
+ if (video !== false && !permissions.video) throw new _client.RpcError('media-disabled', 'video is switched off for this project');
267
+ if (!(0, _globals.registerVoltkitGlobals)()) throw (0, _errors.webrtcMissing)();
249
268
  const kinds = [];
250
269
  if (video !== false) kinds.push('camera');
251
270
  if (audio !== false) kinds.push('microphone');
@@ -255,27 +274,50 @@ async function publishDevices(client, options) {
255
274
  if (status !== 'granted') throw (0, _errors.permissionRefused)(kind, status);
256
275
  }
257
276
  // The dialog stays up as long as the user thinks: the call may be over by now (the screen unmounted, a kick, the
258
- // room closed). Nothing opens a device for a session that is gone.
277
+ // room closed), or the user tapped Stop. Nothing opens a device then.
278
+ if (stopped) throw stoppedError();
259
279
  if (client.connectionState !== 'connected') throw new _client.RpcError('not-connected', 'the session ended while the permissions were being asked for');
260
280
  const constraints = captureConstraints(options, permissions);
261
281
  const platform = (0, _index.reactNativePlatform)();
262
282
  const stream = await platform.getUserMedia(constraints);
263
- try {
264
- // With the constraints, a reconnect that finds the devices gone opens them again.
265
- await client.publish(stream, constraints, publishOptions);
266
- } catch (error) {
267
- // Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
283
+ // Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
284
+ const release = () => {
268
285
  const book = (0, _streams.streamBook)();
269
286
  const tracks = stream.getTracks();
270
287
  book.release(stream);
271
288
  for (const track of tracks) book.stop(track);
289
+ };
290
+ if (stopped) {
291
+ release();
292
+ throw stoppedError();
293
+ }
294
+ try {
295
+ // With the constraints, a reconnect that finds the devices gone opens them again.
296
+ await client.publish(stream, constraints, publishOptions);
297
+ } catch (error) {
298
+ release();
272
299
  throw error;
273
300
  }
274
301
  } finally {
302
+ if (typeof unwatch === 'function') unwatch();
275
303
  publishing.delete(client);
276
304
  }
277
305
  }
278
306
 
307
+ /**
308
+ * The project's permissions as the controller says now (client 0.9.14), or null when it cannot say. A client older
309
+ * than 0.9.14 cannot ask: its hint stands. A failed question leaves the hint standing too.
310
+ */
311
+ async function refreshPermissions(client, hint) {
312
+ const refresh = client.refreshMediaPermissions;
313
+ if (typeof refresh !== 'function') return hint;
314
+ try {
315
+ return await refresh.call(client);
316
+ } catch {
317
+ return hint;
318
+ }
319
+ }
320
+
279
321
  /** Each quality's 16:9 frame, as the SDK sends it. */
280
322
  const FRAMES = {
281
323
  '1080p': {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_client","_react2","_errors","_permissions","_globals","_index","_streams","_devices","_common","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","DEFAULT_MEDIA_PERMISSIONS","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","localStream","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","useVoltkitClient","source","useMemo","useSyncExternalStore","actions","localActions","call","task","RpcError","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","registerVoltkitGlobals","webrtcMissing","kinds","statuses","requestMediaPermissions","kind","status","permissionRefused","constraints","captureConstraints","platform","reactNativePlatform","getUserMedia","error","book","streamBook","tracks","release","stop","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","allowedQuality","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","listCameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_client","_react2","_errors","_permissions","_globals","_index","_streams","_devices","_common","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","DEFAULT_MEDIA_PERMISSIONS","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","localStream","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","useVoltkitClient","source","useMemo","useSyncExternalStore","actions","localActions","call","task","RpcError","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","stopped","unwatch","local","stoppedError","fresh","refreshPermissions","registerVoltkitGlobals","webrtcMissing","kinds","statuses","requestMediaPermissions","kind","status","permissionRefused","constraints","captureConstraints","platform","reactNativePlatform","getUserMedia","release","book","streamBook","tracks","stop","error","hint","refresh","refreshMediaPermissions","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","allowedQuality","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","listCameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":"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","ignoreList":[]}
@@ -21,7 +21,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
21
21
  */
22
22
 
23
23
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
24
- const SDK_VERSION = exports.SDK_VERSION = '0.1.1';
24
+ const SDK_VERSION = exports.SDK_VERSION = '0.1.2';
25
25
 
26
26
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
27
27
  function nativeModule() {
@@ -60,7 +60,7 @@ function localStream(client) {
60
60
  return client.local ?? null;
61
61
  }
62
62
 
63
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
63
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
64
64
  function describePlatform() {
65
65
  return `ReactNative ${_reactNative.Platform.OS} ${String(_reactNative.Platform.Version)}; react-native-webrtc ${(0, _globals.webrtcVersion)() ?? 'unknown'}; @voltkit-rtc/react-native ${_native.SDK_VERSION}`;
66
66
  }
@@ -235,12 +235,31 @@ async function publishDevices(client, options) {
235
235
  if (publishing.has(client) || localStream(client)?.getTracks().some(track => track.readyState === 'live')) {
236
236
  throw new RpcError('source-already-published', 'already publishing: unpublish() first');
237
237
  }
238
- const permissions = client.mediaPermissions;
239
- if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
240
- if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
241
- if (!registerVoltkitGlobals()) throw webrtcMissing();
242
238
  publishing.add(client);
239
+ // Stop wins over a start still under way (0.1.2): unpublish() -- the user's Stop -- while the permission dialog is up
240
+ // or the camera is opening says so with localStreamChanged(null). No device opens after it, what opened is released,
241
+ // nothing is published, and this start rejects with `unpublished`.
242
+ let stopped = false;
243
+ const unwatch = client.on('localStreamChanged', local => {
244
+ if (local === null) stopped = true;
245
+ });
246
+ const stoppedError = () => new RpcError('unpublished', 'unpublish() ran while the camera and microphone were opening');
243
247
  try {
248
+ let permissions = client.mediaPermissions;
249
+ if (audio !== false && !permissions.audio || video !== false && !permissions.video) {
250
+ // A hint from the join (client 0.9.14): the controller is asked before refusing. Null: it cannot say, and the
251
+ // client's publish lets it decide.
252
+ const fresh = await refreshPermissions(client, permissions);
253
+ permissions = fresh ?? {
254
+ ...permissions,
255
+ audio: true,
256
+ video: true
257
+ };
258
+ if (stopped) throw stoppedError();
259
+ }
260
+ if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
261
+ if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
262
+ if (!registerVoltkitGlobals()) throw webrtcMissing();
244
263
  const kinds = [];
245
264
  if (video !== false) kinds.push('camera');
246
265
  if (audio !== false) kinds.push('microphone');
@@ -250,27 +269,50 @@ async function publishDevices(client, options) {
250
269
  if (status !== 'granted') throw permissionRefused(kind, status);
251
270
  }
252
271
  // The dialog stays up as long as the user thinks: the call may be over by now (the screen unmounted, a kick, the
253
- // room closed). Nothing opens a device for a session that is gone.
272
+ // room closed), or the user tapped Stop. Nothing opens a device then.
273
+ if (stopped) throw stoppedError();
254
274
  if (client.connectionState !== 'connected') throw new RpcError('not-connected', 'the session ended while the permissions were being asked for');
255
275
  const constraints = captureConstraints(options, permissions);
256
276
  const platform = reactNativePlatform();
257
277
  const stream = await platform.getUserMedia(constraints);
258
- try {
259
- // With the constraints, a reconnect that finds the devices gone opens them again.
260
- await client.publish(stream, constraints, publishOptions);
261
- } catch (error) {
262
- // Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
278
+ // Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
279
+ const release = () => {
263
280
  const book = streamBook();
264
281
  const tracks = stream.getTracks();
265
282
  book.release(stream);
266
283
  for (const track of tracks) book.stop(track);
284
+ };
285
+ if (stopped) {
286
+ release();
287
+ throw stoppedError();
288
+ }
289
+ try {
290
+ // With the constraints, a reconnect that finds the devices gone opens them again.
291
+ await client.publish(stream, constraints, publishOptions);
292
+ } catch (error) {
293
+ release();
267
294
  throw error;
268
295
  }
269
296
  } finally {
297
+ if (typeof unwatch === 'function') unwatch();
270
298
  publishing.delete(client);
271
299
  }
272
300
  }
273
301
 
302
+ /**
303
+ * The project's permissions as the controller says now (client 0.9.14), or null when it cannot say. A client older
304
+ * than 0.9.14 cannot ask: its hint stands. A failed question leaves the hint standing too.
305
+ */
306
+ async function refreshPermissions(client, hint) {
307
+ const refresh = client.refreshMediaPermissions;
308
+ if (typeof refresh !== 'function') return hint;
309
+ try {
310
+ return await refresh.call(client);
311
+ } catch {
312
+ return hint;
313
+ }
314
+ }
315
+
274
316
  /** Each quality's 16:9 frame, as the SDK sends it. */
275
317
  const FRAMES = {
276
318
  '1080p': {
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useSyncExternalStore","allowedQuality","DEFAULT_MEDIA_PERMISSIONS","RpcError","useVoltkitClient","permissionRefused","webrtcMissing","requestMediaPermissions","registerVoltkitGlobals","reactNativePlatform","streamBook","listCameras","localStream","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","source","actions","localActions","call","task","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","kinds","statuses","kind","status","constraints","captureConstraints","platform","getUserMedia","error","book","tracks","release","stop","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useSyncExternalStore","allowedQuality","DEFAULT_MEDIA_PERMISSIONS","RpcError","useVoltkitClient","permissionRefused","webrtcMissing","requestMediaPermissions","registerVoltkitGlobals","reactNativePlatform","streamBook","listCameras","localStream","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","source","actions","localActions","call","task","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","stopped","unwatch","local","stoppedError","fresh","refreshPermissions","kinds","statuses","kind","status","constraints","captureConstraints","platform","getUserMedia","release","book","tracks","stop","error","hint","refresh","refreshMediaPermissions","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ import { Platform } from 'react-native';
9
9
  import NativeVoltkitRtc from "./specs/NativeVoltkitRtc.js";
10
10
  import { iosUnsupported, logError, nativeMissing } from "./errors.js";
11
11
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
12
- export const SDK_VERSION = '0.1.1';
12
+ export const SDK_VERSION = '0.1.2';
13
13
 
14
14
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
15
15
  export function nativeModule() {
@@ -51,7 +51,7 @@ export function localStream(client) {
51
51
  return client.local ?? null;
52
52
  }
53
53
 
54
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
54
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
55
55
  export function describePlatform() {
56
56
  return `ReactNative ${Platform.OS} ${String(Platform.Version)}; react-native-webrtc ${webrtcVersion() ?? 'unknown'}; @voltkit-rtc/react-native ${SDK_VERSION}`;
57
57
  }
@@ -2,7 +2,7 @@ import type { EventSubscription } from 'react-native';
2
2
  import { type AudioDevice, type Constants, type Spec } from './specs/NativeVoltkitRtc';
3
3
  import type { MediaDevice } from '@voltkit-rtc/client';
4
4
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
5
- export declare const SDK_VERSION = "0.1.1";
5
+ export declare const SDK_VERSION = "0.1.2";
6
6
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
7
7
  export declare function nativeModule(): Spec | null;
8
8
  /** The module's constants, read once: the audio mode, screen sharing, the call service as the manifest declares them. */
@@ -72,7 +72,7 @@ export interface MediaStreamLike {
72
72
  export declare function localStream(client: {
73
73
  readonly local: unknown;
74
74
  }): MediaStreamLike | null;
75
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
75
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
76
76
  export declare function describePlatform(): string;
77
77
  /**
78
78
  * What the client reads to pick its defaults: a phone or tablet, so two simulcast layers and the H.264 decision
@@ -2,7 +2,7 @@ import type { EventSubscription } from 'react-native';
2
2
  import { type AudioDevice, type Constants, type Spec } from './specs/NativeVoltkitRtc.js';
3
3
  import type { MediaDevice } from '@voltkit-rtc/client';
4
4
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
5
- export declare const SDK_VERSION = "0.1.1";
5
+ export declare const SDK_VERSION = "0.1.2";
6
6
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
7
7
  export declare function nativeModule(): Spec | null;
8
8
  /** The module's constants, read once: the audio mode, screen sharing, the call service as the manifest declares them. */
@@ -72,7 +72,7 @@ export interface MediaStreamLike {
72
72
  export declare function localStream(client: {
73
73
  readonly local: unknown;
74
74
  }): MediaStreamLike | null;
75
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
75
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
76
76
  export declare function describePlatform(): string;
77
77
  /**
78
78
  * What the client reads to pick its defaults: a phone or tablet, so two simulcast layers and the H.264 decision
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltkit-rtc/react-native",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "React Native SDK for VoltKit RTC: calls, audio rooms and live video on Android (iOS in preview), with the hooks of @voltkit-rtc/react, background calls, audio routing and an Expo config plugin.",
5
5
  "keywords": [
6
6
  "voltkit",
@@ -307,13 +307,28 @@ async function publishDevices(client: StreamClient, options: LocalPublishOptions
307
307
  if (publishing.has(client) || localStream(client)?.getTracks().some((track) => track.readyState === 'live')) {
308
308
  throw new RpcError('source-already-published', 'already publishing: unpublish() first');
309
309
  }
310
- const permissions = client.mediaPermissions;
311
- if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
312
- if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
313
- if (!registerVoltkitGlobals()) throw webrtcMissing();
314
-
315
310
  publishing.add(client);
311
+ // Stop wins over a start still under way (0.1.2): unpublish() -- the user's Stop -- while the permission dialog is up
312
+ // or the camera is opening says so with localStreamChanged(null). No device opens after it, what opened is released,
313
+ // nothing is published, and this start rejects with `unpublished`.
314
+ let stopped = false;
315
+ const unwatch = client.on('localStreamChanged', (local) => {
316
+ if (local === null) stopped = true;
317
+ });
318
+ const stoppedError = () => new RpcError('unpublished', 'unpublish() ran while the camera and microphone were opening');
316
319
  try {
320
+ let permissions = client.mediaPermissions;
321
+ if ((audio !== false && !permissions.audio) || (video !== false && !permissions.video)) {
322
+ // A hint from the join (client 0.9.14): the controller is asked before refusing. Null: it cannot say, and the
323
+ // client's publish lets it decide.
324
+ const fresh = await refreshPermissions(client, permissions);
325
+ permissions = fresh ?? { ...permissions, audio: true, video: true };
326
+ if (stopped) throw stoppedError();
327
+ }
328
+ if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
329
+ if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
330
+ if (!registerVoltkitGlobals()) throw webrtcMissing();
331
+
317
332
  const kinds: MediaPermissionKind[] = [];
318
333
  if (video !== false) kinds.push('camera');
319
334
  if (audio !== false) kinds.push('microphone');
@@ -323,27 +338,50 @@ async function publishDevices(client: StreamClient, options: LocalPublishOptions
323
338
  if (status !== 'granted') throw permissionRefused(kind, status);
324
339
  }
325
340
  // The dialog stays up as long as the user thinks: the call may be over by now (the screen unmounted, a kick, the
326
- // room closed). Nothing opens a device for a session that is gone.
341
+ // room closed), or the user tapped Stop. Nothing opens a device then.
342
+ if (stopped) throw stoppedError();
327
343
  if (client.connectionState !== 'connected') throw new RpcError('not-connected', 'the session ended while the permissions were being asked for');
328
344
  const constraints = captureConstraints(options, permissions);
329
345
  const platform = reactNativePlatform();
330
346
  const stream = (await platform.getUserMedia!(constraints)) as unknown as ClientStream;
331
- try {
332
- // With the constraints, a reconnect that finds the devices gone opens them again.
333
- await client.publish(stream, constraints, publishOptions);
334
- } catch (error) {
335
- // Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
347
+ // Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
348
+ const release = () => {
336
349
  const book = streamBook();
337
350
  const tracks = (stream as unknown as StreamLike).getTracks();
338
351
  book.release(stream as unknown as StreamLike);
339
352
  for (const track of tracks) book.stop(track as TrackLike);
353
+ };
354
+ if (stopped) {
355
+ release();
356
+ throw stoppedError();
357
+ }
358
+ try {
359
+ // With the constraints, a reconnect that finds the devices gone opens them again.
360
+ await client.publish(stream, constraints, publishOptions);
361
+ } catch (error) {
362
+ release();
340
363
  throw error;
341
364
  }
342
365
  } finally {
366
+ if (typeof unwatch === 'function') unwatch();
343
367
  publishing.delete(client);
344
368
  }
345
369
  }
346
370
 
371
+ /**
372
+ * The project's permissions as the controller says now (client 0.9.14), or null when it cannot say. A client older
373
+ * than 0.9.14 cannot ask: its hint stands. A failed question leaves the hint standing too.
374
+ */
375
+ async function refreshPermissions(client: StreamClient, hint: MediaPermissions): Promise<MediaPermissions | null> {
376
+ const refresh = (client as { refreshMediaPermissions?: () => Promise<MediaPermissions | null> }).refreshMediaPermissions;
377
+ if (typeof refresh !== 'function') return hint;
378
+ try {
379
+ return await refresh.call(client);
380
+ } catch {
381
+ return hint;
382
+ }
383
+ }
384
+
347
385
  /** Each quality's 16:9 frame, as the SDK sends it. */
348
386
  const FRAMES: Record<VideoQuality, { width: number; height: number }> = {
349
387
  '1080p': { width: 1920, height: 1080 },
package/src/native.ts CHANGED
@@ -10,7 +10,7 @@ import { iosUnsupported, logError, nativeMissing } from './errors';
10
10
  import type { AudioDeviceType, DeviceKind, MediaDevice } from '@voltkit-rtc/client';
11
11
 
12
12
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
13
- export const SDK_VERSION = '0.1.1';
13
+ export const SDK_VERSION = '0.1.2';
14
14
 
15
15
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
16
16
  export function nativeModule(): Spec | null {
@@ -89,7 +89,7 @@ export function localStream(client: { readonly local: unknown }): MediaStreamLik
89
89
  return (client.local as MediaStreamLike | null | undefined) ?? null;
90
90
  }
91
91
 
92
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
92
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
93
93
  export function describePlatform(): string {
94
94
  return `ReactNative ${Platform.OS} ${String(Platform.Version)}; react-native-webrtc ${webrtcVersion() ?? 'unknown'}; @voltkit-rtc/react-native ${SDK_VERSION}`;
95
95
  }