@eluvio/elv-client-js 4.2.10 → 4.2.11

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 (40) hide show
  1. package/dist/ElvClient-min.js +1 -1
  2. package/dist/ElvClient-node-min.js +1 -1
  3. package/dist/ElvFrameClient-min.js +1 -1
  4. package/dist/ElvPermissionsClient-min.js +1 -1
  5. package/dist/ElvWalletClient-min.js +1 -1
  6. package/dist/ElvWalletClient-node-min.js +1 -1
  7. package/dist/src/AuthorizationClient.js +723 -710
  8. package/dist/src/ContentObjectAudit.js +56 -56
  9. package/dist/src/ContentObjectVerification.js +281 -0
  10. package/dist/src/Crypto.js +85 -85
  11. package/dist/src/ElvClient.js +500 -530
  12. package/dist/src/ElvWallet.js +28 -30
  13. package/dist/src/EthClient.js +311 -311
  14. package/dist/src/FrameClient.js +64 -63
  15. package/dist/src/HttpClient.js +60 -60
  16. package/dist/src/Id.js +2 -1
  17. package/dist/src/PermissionsClient.js +487 -499
  18. package/dist/src/RemoteSigner.js +163 -114
  19. package/dist/src/UserProfileClient.js +374 -392
  20. package/dist/src/Utils.js +66 -69
  21. package/dist/src/Validation.js +10 -10
  22. package/dist/src/client/ABRPublishing.js +238 -238
  23. package/dist/src/client/AccessGroups.js +474 -477
  24. package/dist/src/client/ContentAccess.js +1709 -1705
  25. package/dist/src/client/ContentManagement.js +871 -871
  26. package/dist/src/client/Contracts.js +578 -575
  27. package/dist/src/client/Files.js +684 -700
  28. package/dist/src/client/LiveConf.js +6 -1
  29. package/dist/src/client/LiveStream.js +686 -723
  30. package/dist/src/client/NFT.js +14 -14
  31. package/dist/src/client/NTP.js +84 -84
  32. package/dist/src/client/Shares.js +60 -53
  33. package/dist/src/walletClient/ClientMethods.js +951 -977
  34. package/dist/src/walletClient/Notifications.js +14 -14
  35. package/dist/src/walletClient/Profile.js +66 -66
  36. package/dist/src/walletClient/Utils.js +15 -15
  37. package/dist/src/walletClient/index.js +581 -579
  38. package/package.json +1 -1
  39. package/src/client/LiveConf.js +5 -1
  40. package/src/client/LiveStream.js +9 -39
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eluvio/elv-client-js",
3
- "version": "4.2.10",
3
+ "version": "4.2.11",
4
4
  "description": "Javascript client for the Eluvio Content Fabric",
5
5
  "main": "src/index.js",
6
6
  "author": "Kevin Talmadge",
@@ -508,7 +508,7 @@ class LiveConf {
508
508
  let globalAudioBitrate = 0;
509
509
  let nAudio = 0;
510
510
 
511
- for(let i = 0; i < Object.keys(audioStreams).length; i ++ ) {
511
+ for(let i = 0; i < Object.keys(audioStreams).length; i++) {
512
512
  let audioLadderSpec = {};
513
513
  const audioIndex = Object.keys(audioStreams)[i];
514
514
  const audio = audioStreams[audioIndex];
@@ -533,6 +533,10 @@ class LiveConf {
533
533
  audioLadderSpec.stream_label = audio.playoutLabel ? audio.playoutLabel : null;
534
534
  audioLadderSpec.media_type = 2;
535
535
 
536
+ if(Object.keys(audioStreams).length === 1) {
537
+ audioLadderSpec.default = true;
538
+ }
539
+
536
540
  conf.live_recording.recording_config.recording_params.ladder_specs.push(audioLadderSpec);
537
541
  if(audio.recordingBitrate > globalAudioBitrate) {
538
542
  globalAudioBitrate = audio.recordingBitrate;
@@ -346,7 +346,6 @@ const StreamGenerateOffering = async({
346
346
  * @methodGroup Live Stream
347
347
  * @namedParams
348
348
  * @param {string} name - Object ID or name of the live stream object
349
- * @param {boolean=} stopLro - If specified, will stop LRO
350
349
  * @param {boolean=} showParams - If specified, will return recording_params with status
351
350
  * States:
352
351
  * unconfigured - no live_recording_config
@@ -359,7 +358,7 @@ const StreamGenerateOffering = async({
359
358
  *
360
359
  * @return {Promise<Object>} - The status response for the object, as well as logs, warnings and errors from the master initialization
361
360
  */
362
- exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
361
+ exports.StreamStatus = async function({name, showParams=false}) {
363
362
  let objectId = name;
364
363
  let status = {name: name};
365
364
 
@@ -418,13 +417,11 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
418
417
  status.stream_id = edgeWriteToken; // By convention the stream ID is its write token
419
418
  let edgeMeta;
420
419
  try {
421
- edgeMeta = await this.ContentObjectMetadata({
420
+ edgeMeta = await this.CallBitcodeMethod({
422
421
  libraryId: libraryId,
423
422
  objectId: objectId,
424
- writeToken: edgeWriteToken,
425
- select: [
426
- "live_recording"
427
- ]
423
+ method: "/live/meta",
424
+ constant: true
428
425
  });
429
426
  } catch(error) {
430
427
  if(error.message && error.message.includes("ERR_TOO_MANY_REDIRECTS")) {
@@ -444,7 +441,7 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
444
441
  if(edgeMeta.live_recording === undefined ||
445
442
  edgeMeta.live_recording.recordings === undefined ||
446
443
  edgeMeta.live_recording.recordings.recording_sequence === undefined) {
447
- status.state = "stopped";
444
+ status.state = "inactive";
448
445
  return status;
449
446
  }
450
447
 
@@ -482,7 +479,7 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
482
479
  libraryId: libraryId,
483
480
  objectId: objectId,
484
481
  writeToken: edgeWriteToken,
485
- call: "live/status/" + tlro
482
+ call: "live/status"
486
483
  });
487
484
 
488
485
  status.insertions = [];
@@ -522,45 +519,18 @@ exports.StreamStatus = async function({name, stopLro=false, showParams=false}) {
522
519
  return status;
523
520
  }
524
521
 
525
- const segDurationMeta = edgeMeta.live_recording.recording_config.recording_params.xc_params.seg_duration;
526
-
527
522
  // Convert LRO 'state' to desired 'state'
528
523
  if(state === "running" && videoLastFinalizationTimeEpochSec <= 0) {
529
- state = "starting";
530
- } else if(state === "running" && segDurationMeta !== undefined && sinceLastFinalize > (parseInt(segDurationMeta) + 5)) {
531
- state = "stalled";
524
+ state = "starting"; // The LRO returns 'running' even if the source hasn't connected
532
525
  } else if(state == "terminated") {
533
- state = "stopped";
526
+ state = "stopped"; // The LRO reports 'terminated' which for the recording means 'stopped'
534
527
  }
535
528
  status.state = state;
536
529
 
537
- if((state === "running" || state === "stalled" || state === "starting") && stopLro) {
538
- lroStopUrl = await this.FabricUrl({
539
- libraryId,
540
- objectId,
541
- writeToken: edgeWriteToken,
542
- call: "live/stop/" + tlro
543
- });
544
-
545
- try {
546
- await this.utils.ResponseToJson(
547
- await HttpClient.Fetch(lroStopUrl)
548
- );
549
-
550
- console.log("LRO Stop: ", lroStatus.body);
551
- } catch(error) {
552
- console.log("LRO Stop (failed): ", error.response.statusCode);
553
- }
554
-
555
- state = "stopped";
556
- status.state = state;
557
- }
558
-
559
530
  if(state === "running") {
560
531
  let playout_urls = {};
561
532
  let playout_options = await this.PlayoutOptions({
562
- objectId,
563
- linkPath: "public/asset_metadata/sources/default"
533
+ objectId
564
534
  });
565
535
 
566
536
  let hls_clear_enabled = (