@eluvio/elv-client-js 4.0.104 → 4.0.107
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/dist/ElvClient-min.js +15 -14
- package/dist/ElvClient-node-min.js +14 -13
- package/dist/ElvFrameClient-min.js +10 -10
- package/dist/ElvPermissionsClient-min.js +9 -9
- package/dist/ElvWalletClient-min.js +15 -14
- package/dist/ElvWalletClient-node-min.js +14 -13
- package/dist/src/AuthorizationClient.js +9 -12
- package/dist/src/ContentObjectAudit.js +3 -3
- package/dist/src/ContentObjectVerification.js +3 -3
- package/dist/src/Crypto.js +2 -2
- package/dist/src/ElvClient.js +47 -28
- package/dist/src/ElvWallet.js +7 -5
- package/dist/src/EthClient.js +8 -9
- package/dist/src/FrameClient.js +8 -9
- package/dist/src/HttpClient.js +1 -2
- package/dist/src/Id.js +1 -2
- package/dist/src/PermissionsClient.js +31 -19
- package/dist/src/RemoteSigner.js +10 -11
- package/dist/src/UserProfileClient.js +194 -150
- package/dist/src/Utils.js +2 -3
- package/dist/src/abr_profiles/abr_profile_live_drm.js +22 -0
- package/dist/src/client/ABRPublishing.js +2 -2
- package/dist/src/client/AccessGroups.js +2 -2
- package/dist/src/client/ContentAccess.js +9 -6
- package/dist/src/client/ContentManagement.js +3 -3
- package/dist/src/client/Contracts.js +433 -108
- package/dist/src/client/Files.js +2 -2
- package/dist/src/client/LiveConf.js +60 -78
- package/dist/src/client/LiveStream.js +270 -158
- package/dist/src/client/NFT.js +2 -2
- package/dist/src/walletClient/ClientMethods.js +2 -2
- package/dist/src/walletClient/Profile.js +2 -2
- package/dist/src/walletClient/Utils.js +2 -2
- package/dist/src/walletClient/index.js +19 -16
- package/package.json +1 -1
- package/src/UserProfileClient.js +19 -20
- package/src/abr_profiles/abr_profile_live_drm.js +22 -0
- package/src/client/Contracts.js +244 -42
- package/src/client/LiveConf.js +86 -111
- package/src/client/LiveStream.js +141 -44
- package/testScripts/TestAddTenantContractId.js +45 -4
|
@@ -498,25 +498,35 @@ exports.StreamStatus = /*#__PURE__*/function () {
|
|
|
498
498
|
});
|
|
499
499
|
status.edge_write_token = edgeWriteToken;
|
|
500
500
|
status.stream_id = edgeWriteToken; // By convention the stream ID is its write token
|
|
501
|
-
_context4.
|
|
501
|
+
_context4.prev = 34;
|
|
502
|
+
_context4.next = 37;
|
|
502
503
|
return this.ContentObjectMetadata({
|
|
503
504
|
libraryId: libraryId,
|
|
504
505
|
objectId: objectId,
|
|
505
506
|
writeToken: edgeWriteToken,
|
|
506
507
|
select: ["live_recording"]
|
|
507
508
|
});
|
|
508
|
-
case
|
|
509
|
+
case 37:
|
|
509
510
|
edgeMeta = _context4.sent;
|
|
510
|
-
|
|
511
|
+
_context4.next = 45;
|
|
512
|
+
break;
|
|
513
|
+
case 40:
|
|
514
|
+
_context4.prev = 40;
|
|
515
|
+
_context4.t0 = _context4["catch"](34);
|
|
516
|
+
console.error("Unable to read edge write token metadata. Has token been deleted?", _context4.t0);
|
|
517
|
+
status.state = "inactive";
|
|
518
|
+
return _context4.abrupt("return", status);
|
|
519
|
+
case 45:
|
|
520
|
+
status.edge_meta_size = JSON.stringify(edgeMeta || "").length;
|
|
511
521
|
|
|
512
522
|
// If a stream has never been started return state 'inactive'
|
|
513
523
|
if (!(edgeMeta.live_recording === undefined || edgeMeta.live_recording.recordings === undefined || edgeMeta.live_recording.recordings.recording_sequence === undefined)) {
|
|
514
|
-
_context4.next =
|
|
524
|
+
_context4.next = 49;
|
|
515
525
|
break;
|
|
516
526
|
}
|
|
517
527
|
status.state = "stopped";
|
|
518
528
|
return _context4.abrupt("return", status);
|
|
519
|
-
case
|
|
529
|
+
case 49:
|
|
520
530
|
recordings = edgeMeta.live_recording.recordings;
|
|
521
531
|
status.recording_period_sequence = recordings.recording_sequence;
|
|
522
532
|
sequence = recordings.recording_sequence;
|
|
@@ -542,14 +552,14 @@ exports.StreamStatus = /*#__PURE__*/function () {
|
|
|
542
552
|
video_since_last_finalize_sec: sinceLastFinalize
|
|
543
553
|
};
|
|
544
554
|
status.recording_period = recording_period;
|
|
545
|
-
_context4.next =
|
|
555
|
+
_context4.next = 63;
|
|
546
556
|
return this.FabricUrl({
|
|
547
557
|
libraryId: libraryId,
|
|
548
558
|
objectId: objectId,
|
|
549
559
|
writeToken: edgeWriteToken,
|
|
550
560
|
call: "live/status/" + tlro
|
|
551
561
|
});
|
|
552
|
-
case
|
|
562
|
+
case 63:
|
|
553
563
|
status.lro_status_url = _context4.sent;
|
|
554
564
|
status.insertions = [];
|
|
555
565
|
if (edgeMeta.live_recording.playout_config.interleaves != undefined && edgeMeta.live_recording.playout_config.interleaves[sequence] != undefined) {
|
|
@@ -569,15 +579,15 @@ exports.StreamStatus = /*#__PURE__*/function () {
|
|
|
569
579
|
}
|
|
570
580
|
state = "stopped";
|
|
571
581
|
lroStatus = "";
|
|
572
|
-
_context4.prev =
|
|
573
|
-
_context4.
|
|
574
|
-
_context4.next =
|
|
582
|
+
_context4.prev = 69;
|
|
583
|
+
_context4.t1 = this.utils;
|
|
584
|
+
_context4.next = 73;
|
|
575
585
|
return HttpClient.Fetch(status.lro_status_url);
|
|
576
|
-
case
|
|
577
|
-
_context4.
|
|
578
|
-
_context4.next =
|
|
579
|
-
return _context4.
|
|
580
|
-
case
|
|
586
|
+
case 73:
|
|
587
|
+
_context4.t2 = _context4.sent;
|
|
588
|
+
_context4.next = 76;
|
|
589
|
+
return _context4.t1.ResponseToJson.call(_context4.t1, _context4.t2);
|
|
590
|
+
case 76:
|
|
581
591
|
lroStatus = _context4.sent;
|
|
582
592
|
state = lroStatus.state;
|
|
583
593
|
status.warnings = lroStatus.custom && lroStatus.custom.warnings;
|
|
@@ -585,16 +595,16 @@ exports.StreamStatus = /*#__PURE__*/function () {
|
|
|
585
595
|
if (lroStatus.custom && lroStatus.custom.status) {
|
|
586
596
|
status.recording_status = lroStatus.custom.status;
|
|
587
597
|
}
|
|
588
|
-
_context4.next =
|
|
598
|
+
_context4.next = 89;
|
|
589
599
|
break;
|
|
590
|
-
case
|
|
591
|
-
_context4.prev =
|
|
592
|
-
_context4.
|
|
593
|
-
console.log("LRO Status (failed): ", _context4.
|
|
600
|
+
case 83:
|
|
601
|
+
_context4.prev = 83;
|
|
602
|
+
_context4.t3 = _context4["catch"](69);
|
|
603
|
+
console.log("LRO Status (failed): ", _context4.t3.response.statusCode);
|
|
594
604
|
status.state = "stopped";
|
|
595
|
-
status.error = _context4.
|
|
605
|
+
status.error = _context4.t3.response;
|
|
596
606
|
return _context4.abrupt("return", status);
|
|
597
|
-
case
|
|
607
|
+
case 89:
|
|
598
608
|
// Convert LRO 'state' to desired 'state'
|
|
599
609
|
if (state === "running" && videoLastFinalizationTimeEpochSec <= 0) {
|
|
600
610
|
state = "starting";
|
|
@@ -605,97 +615,97 @@ exports.StreamStatus = /*#__PURE__*/function () {
|
|
|
605
615
|
}
|
|
606
616
|
status.state = state;
|
|
607
617
|
if (!((state === "running" || state === "stalled" || state === "starting") && stopLro)) {
|
|
608
|
-
_context4.next =
|
|
618
|
+
_context4.next = 110;
|
|
609
619
|
break;
|
|
610
620
|
}
|
|
611
|
-
_context4.next =
|
|
621
|
+
_context4.next = 94;
|
|
612
622
|
return this.FabricUrl({
|
|
613
623
|
libraryId: libraryId,
|
|
614
624
|
objectId: objectId,
|
|
615
625
|
writeToken: edgeWriteToken,
|
|
616
626
|
call: "live/stop/" + tlro
|
|
617
627
|
});
|
|
618
|
-
case
|
|
628
|
+
case 94:
|
|
619
629
|
lroStopUrl = _context4.sent;
|
|
620
|
-
_context4.prev =
|
|
621
|
-
_context4.
|
|
622
|
-
_context4.next =
|
|
630
|
+
_context4.prev = 95;
|
|
631
|
+
_context4.t4 = this.utils;
|
|
632
|
+
_context4.next = 99;
|
|
623
633
|
return HttpClient.Fetch(lroStopUrl);
|
|
624
|
-
case
|
|
625
|
-
_context4.
|
|
626
|
-
_context4.next =
|
|
627
|
-
return _context4.
|
|
628
|
-
case
|
|
634
|
+
case 99:
|
|
635
|
+
_context4.t5 = _context4.sent;
|
|
636
|
+
_context4.next = 102;
|
|
637
|
+
return _context4.t4.ResponseToJson.call(_context4.t4, _context4.t5);
|
|
638
|
+
case 102:
|
|
629
639
|
console.log("LRO Stop: ", lroStatus.body);
|
|
630
|
-
_context4.next =
|
|
640
|
+
_context4.next = 108;
|
|
631
641
|
break;
|
|
632
|
-
case
|
|
633
|
-
_context4.prev =
|
|
634
|
-
_context4.
|
|
635
|
-
console.log("LRO Stop (failed): ", _context4.
|
|
636
|
-
case
|
|
642
|
+
case 105:
|
|
643
|
+
_context4.prev = 105;
|
|
644
|
+
_context4.t6 = _context4["catch"](95);
|
|
645
|
+
console.log("LRO Stop (failed): ", _context4.t6.response.statusCode);
|
|
646
|
+
case 108:
|
|
637
647
|
state = "stopped";
|
|
638
648
|
status.state = state;
|
|
639
|
-
case
|
|
649
|
+
case 110:
|
|
640
650
|
if (!(state === "running")) {
|
|
641
|
-
_context4.next =
|
|
651
|
+
_context4.next = 141;
|
|
642
652
|
break;
|
|
643
653
|
}
|
|
644
654
|
playout_urls = {};
|
|
645
|
-
_context4.next =
|
|
655
|
+
_context4.next = 114;
|
|
646
656
|
return this.PlayoutOptions({
|
|
647
657
|
objectId: objectId,
|
|
648
658
|
linkPath: "public/asset_metadata/sources/default"
|
|
649
659
|
});
|
|
650
|
-
case
|
|
660
|
+
case 114:
|
|
651
661
|
playout_options = _context4.sent;
|
|
652
662
|
hls_clear_enabled = playout_options && playout_options.hls && playout_options.hls.playoutMethods && playout_options.hls.playoutMethods.clear !== undefined;
|
|
653
663
|
if (!hls_clear_enabled) {
|
|
654
|
-
_context4.next =
|
|
664
|
+
_context4.next = 120;
|
|
655
665
|
break;
|
|
656
666
|
}
|
|
657
|
-
_context4.next =
|
|
667
|
+
_context4.next = 119;
|
|
658
668
|
return this.FabricUrl({
|
|
659
669
|
libraryId: libraryId,
|
|
660
670
|
objectId: objectId,
|
|
661
671
|
rep: "playout/default/hls-clear/playlist.m3u8"
|
|
662
672
|
});
|
|
663
|
-
case
|
|
673
|
+
case 119:
|
|
664
674
|
playout_urls.hls_clear = _context4.sent;
|
|
665
|
-
case
|
|
675
|
+
case 120:
|
|
666
676
|
hls_aes128_enabled = playout_options && playout_options.hls && playout_options.hls.playoutMethods && playout_options.hls.playoutMethods["aes-128"] !== undefined;
|
|
667
677
|
if (!hls_aes128_enabled) {
|
|
668
|
-
_context4.next =
|
|
678
|
+
_context4.next = 125;
|
|
669
679
|
break;
|
|
670
680
|
}
|
|
671
|
-
_context4.next =
|
|
681
|
+
_context4.next = 124;
|
|
672
682
|
return this.FabricUrl({
|
|
673
683
|
libraryId: libraryId,
|
|
674
684
|
objectId: objectId,
|
|
675
685
|
rep: "playout/default/hls-aes128/playlist.m3u8"
|
|
676
686
|
});
|
|
677
|
-
case
|
|
687
|
+
case 124:
|
|
678
688
|
playout_urls.hls_aes128 = _context4.sent;
|
|
679
|
-
case
|
|
689
|
+
case 125:
|
|
680
690
|
hls_sample_aes_enabled = playout_options && playout_options.hls && playout_options.hls.playoutMethods && playout_options.hls.playoutMethods["sample-aes"] !== undefined;
|
|
681
691
|
if (!hls_sample_aes_enabled) {
|
|
682
|
-
_context4.next =
|
|
692
|
+
_context4.next = 130;
|
|
683
693
|
break;
|
|
684
694
|
}
|
|
685
|
-
_context4.next =
|
|
695
|
+
_context4.next = 129;
|
|
686
696
|
return this.FabricUrl({
|
|
687
697
|
libraryId: libraryId,
|
|
688
698
|
objectId: objectId,
|
|
689
699
|
rep: "playout/default/hls-sample-aes/playlist.m3u8"
|
|
690
700
|
});
|
|
691
|
-
case
|
|
701
|
+
case 129:
|
|
692
702
|
playout_urls.hls_sample_aes = _context4.sent;
|
|
693
|
-
case
|
|
694
|
-
_context4.next =
|
|
703
|
+
case 130:
|
|
704
|
+
_context4.next = 132;
|
|
695
705
|
return this.NetworkInfo();
|
|
696
|
-
case
|
|
706
|
+
case 132:
|
|
697
707
|
networkInfo = _context4.sent;
|
|
698
|
-
_context4.next =
|
|
708
|
+
_context4.next = 135;
|
|
699
709
|
return this.authClient.AuthorizationToken({
|
|
700
710
|
libraryId: libraryId,
|
|
701
711
|
objectId: objectId,
|
|
@@ -703,7 +713,7 @@ exports.StreamStatus = /*#__PURE__*/function () {
|
|
|
703
713
|
noCache: true,
|
|
704
714
|
noAuth: true
|
|
705
715
|
});
|
|
706
|
-
case
|
|
716
|
+
case 135:
|
|
707
717
|
token = _context4.sent;
|
|
708
718
|
embed_net = "main";
|
|
709
719
|
if (networkInfo.name.includes("demo")) {
|
|
@@ -712,20 +722,20 @@ exports.StreamStatus = /*#__PURE__*/function () {
|
|
|
712
722
|
embed_url = "https://embed.v3.contentfabric.io/?net=".concat(embed_net, "&p&ct=h&oid=").concat(objectId, "&mt=lv&ath=").concat(token);
|
|
713
723
|
playout_urls.embed_url = embed_url;
|
|
714
724
|
status.playout_urls = playout_urls;
|
|
715
|
-
case
|
|
716
|
-
_context4.next =
|
|
725
|
+
case 141:
|
|
726
|
+
_context4.next = 146;
|
|
717
727
|
break;
|
|
718
|
-
case
|
|
719
|
-
_context4.prev =
|
|
720
|
-
_context4.
|
|
721
|
-
console.error(_context4.
|
|
722
|
-
case
|
|
728
|
+
case 143:
|
|
729
|
+
_context4.prev = 143;
|
|
730
|
+
_context4.t7 = _context4["catch"](3);
|
|
731
|
+
console.error(_context4.t7);
|
|
732
|
+
case 146:
|
|
723
733
|
return _context4.abrupt("return", status);
|
|
724
|
-
case
|
|
734
|
+
case 147:
|
|
725
735
|
case "end":
|
|
726
736
|
return _context4.stop();
|
|
727
737
|
}
|
|
728
|
-
}, _callee4, this, [[3,
|
|
738
|
+
}, _callee4, this, [[3, 143], [34, 40], [69, 83], [95, 105]]);
|
|
729
739
|
}));
|
|
730
740
|
return function (_x4) {
|
|
731
741
|
return _ref8.apply(this, arguments);
|
|
@@ -823,7 +833,6 @@ exports.StreamCreate = /*#__PURE__*/function () {
|
|
|
823
833
|
edge_write_token: edgeToken,
|
|
824
834
|
state: "active" // indicates there is an active session (set to 'closed' when done)
|
|
825
835
|
},
|
|
826
|
-
|
|
827
836
|
fabric_config: {
|
|
828
837
|
edge_write_token: edgeToken
|
|
829
838
|
}
|
|
@@ -1296,7 +1305,7 @@ exports.StreamSetOfferingAndDRM = /*#__PURE__*/function () {
|
|
|
1296
1305
|
abrProfileDefault = require("../abr_profiles/abr_profile_live_drm.js");
|
|
1297
1306
|
abrProfile = JSON.parse(JSON.stringify(abrProfileDefault));
|
|
1298
1307
|
if (!format) {
|
|
1299
|
-
_context9.next =
|
|
1308
|
+
_context9.next = 43;
|
|
1300
1309
|
break;
|
|
1301
1310
|
}
|
|
1302
1311
|
drm = true; // Override DRM parameter
|
|
@@ -1305,7 +1314,7 @@ exports.StreamSetOfferingAndDRM = /*#__PURE__*/function () {
|
|
|
1305
1314
|
i = 0;
|
|
1306
1315
|
case 28:
|
|
1307
1316
|
if (!(i < formats.length)) {
|
|
1308
|
-
_context9.next =
|
|
1317
|
+
_context9.next = 41;
|
|
1309
1318
|
break;
|
|
1310
1319
|
}
|
|
1311
1320
|
if (!(formats[i] === "hls-clear")) {
|
|
@@ -1319,17 +1328,31 @@ exports.StreamSetOfferingAndDRM = /*#__PURE__*/function () {
|
|
|
1319
1328
|
"type": "ProtoHls"
|
|
1320
1329
|
}
|
|
1321
1330
|
};
|
|
1322
|
-
return _context9.abrupt("continue",
|
|
1331
|
+
return _context9.abrupt("continue", 38);
|
|
1323
1332
|
case 33:
|
|
1333
|
+
if (!(formats[i] === "dash-clear")) {
|
|
1334
|
+
_context9.next = 37;
|
|
1335
|
+
break;
|
|
1336
|
+
}
|
|
1337
|
+
abrProfile.drm_optional = true;
|
|
1338
|
+
playoutFormats["dash-clear"] = {
|
|
1339
|
+
"drm": null,
|
|
1340
|
+
"protocol": {
|
|
1341
|
+
"min_buffer_length": 2,
|
|
1342
|
+
"type": "ProtoDash"
|
|
1343
|
+
}
|
|
1344
|
+
};
|
|
1345
|
+
return _context9.abrupt("continue", 38);
|
|
1346
|
+
case 37:
|
|
1324
1347
|
playoutFormats[formats[i]] = abrProfile.playout_formats[formats[i]];
|
|
1325
|
-
case
|
|
1348
|
+
case 38:
|
|
1326
1349
|
i++;
|
|
1327
1350
|
_context9.next = 28;
|
|
1328
1351
|
break;
|
|
1329
|
-
case
|
|
1330
|
-
_context9.next =
|
|
1352
|
+
case 41:
|
|
1353
|
+
_context9.next = 44;
|
|
1331
1354
|
break;
|
|
1332
|
-
case
|
|
1355
|
+
case 43:
|
|
1333
1356
|
if (!drm) {
|
|
1334
1357
|
abrProfile.drm_optional = true;
|
|
1335
1358
|
playoutFormats = {
|
|
@@ -1338,26 +1361,33 @@ exports.StreamSetOfferingAndDRM = /*#__PURE__*/function () {
|
|
|
1338
1361
|
"protocol": {
|
|
1339
1362
|
"type": "ProtoHls"
|
|
1340
1363
|
}
|
|
1364
|
+
},
|
|
1365
|
+
"dash-clear": {
|
|
1366
|
+
"drm": null,
|
|
1367
|
+
"protocol": {
|
|
1368
|
+
"min_buffer_length": 2,
|
|
1369
|
+
"type": "ProtoDash"
|
|
1370
|
+
}
|
|
1341
1371
|
}
|
|
1342
1372
|
};
|
|
1343
1373
|
} else {
|
|
1344
1374
|
playoutFormats = Object.assign({}, abrProfile.playout_formats);
|
|
1345
1375
|
}
|
|
1346
|
-
case
|
|
1376
|
+
case 44:
|
|
1347
1377
|
abrProfile.playout_formats = playoutFormats;
|
|
1348
|
-
_context9.next =
|
|
1378
|
+
_context9.next = 47;
|
|
1349
1379
|
return this.ContentObjectLibraryId({
|
|
1350
1380
|
objectId: objectId
|
|
1351
1381
|
});
|
|
1352
|
-
case
|
|
1382
|
+
case 47:
|
|
1353
1383
|
libraryId = _context9.sent;
|
|
1354
|
-
_context9.prev =
|
|
1355
|
-
_context9.next =
|
|
1384
|
+
_context9.prev = 48;
|
|
1385
|
+
_context9.next = 51;
|
|
1356
1386
|
return this.ContentObjectMetadata({
|
|
1357
1387
|
libraryId: libraryId,
|
|
1358
1388
|
objectId: objectId
|
|
1359
1389
|
});
|
|
1360
|
-
case
|
|
1390
|
+
case 51:
|
|
1361
1391
|
mainMeta = _context9.sent;
|
|
1362
1392
|
fabURI = mainMeta.live_recording.fabric_config.ingress_node_api; // Support both hostname and URL ingress_node_api
|
|
1363
1393
|
if (!fabURI.startsWith("http")) {
|
|
@@ -1368,7 +1398,7 @@ exports.StreamSetOfferingAndDRM = /*#__PURE__*/function () {
|
|
|
1368
1398
|
fabricURIs: [fabURI]
|
|
1369
1399
|
});
|
|
1370
1400
|
streamUrl = mainMeta.live_recording.recording_config.recording_params.origin_url;
|
|
1371
|
-
_context9.next =
|
|
1401
|
+
_context9.next = 58;
|
|
1372
1402
|
return StreamGenerateOffering({
|
|
1373
1403
|
client: this,
|
|
1374
1404
|
libraryId: libraryId,
|
|
@@ -1391,22 +1421,22 @@ exports.StreamSetOfferingAndDRM = /*#__PURE__*/function () {
|
|
|
1391
1421
|
vFrameRate: vFrameRate,
|
|
1392
1422
|
vTimeBase: vTimeBase
|
|
1393
1423
|
});
|
|
1394
|
-
case
|
|
1424
|
+
case 58:
|
|
1395
1425
|
console.log("Finished generating offering");
|
|
1396
1426
|
return _context9.abrupt("return", {
|
|
1397
1427
|
name: name,
|
|
1398
1428
|
object_id: objectId,
|
|
1399
1429
|
state: "initialized"
|
|
1400
1430
|
});
|
|
1401
|
-
case
|
|
1402
|
-
_context9.prev =
|
|
1403
|
-
_context9.t0 = _context9["catch"](
|
|
1431
|
+
case 62:
|
|
1432
|
+
_context9.prev = 62;
|
|
1433
|
+
_context9.t0 = _context9["catch"](48);
|
|
1404
1434
|
console.error(_context9.t0);
|
|
1405
|
-
case
|
|
1435
|
+
case 65:
|
|
1406
1436
|
case "end":
|
|
1407
1437
|
return _context9.stop();
|
|
1408
1438
|
}
|
|
1409
|
-
}, _callee9, this, [[
|
|
1439
|
+
}, _callee9, this, [[48, 62]]);
|
|
1410
1440
|
}));
|
|
1411
1441
|
return function (_x9) {
|
|
1412
1442
|
return _ref18.apply(this, arguments);
|
|
@@ -1445,7 +1475,6 @@ exports.StreamInsertion = /*#__PURE__*/function () {
|
|
|
1445
1475
|
insertionInfo = {
|
|
1446
1476
|
duration_sec: 0 // Minimum of video and audio duration
|
|
1447
1477
|
};
|
|
1448
|
-
|
|
1449
1478
|
["video", "audio"].forEach(function (mt) {
|
|
1450
1479
|
var stream = offeringMeta.media_struct.streams[mt];
|
|
1451
1480
|
insertionInfo[mt] = {
|
|
@@ -2252,106 +2281,121 @@ exports.StreamCopyToVod = /*#__PURE__*/function () {
|
|
|
2252
2281
|
*
|
|
2253
2282
|
* @methodGroup Live Stream
|
|
2254
2283
|
* @namedParams
|
|
2284
|
+
* @param {string=} libraryId - Library ID of the live stream
|
|
2255
2285
|
* @param {string} objectId - Object ID of the live stream
|
|
2286
|
+
* @param {string=} writeToken - Write token of the draft
|
|
2256
2287
|
* @param {Array<string>} types - Specify which type of watermark to remove. Possible values:
|
|
2257
2288
|
* - "image"
|
|
2258
2289
|
* - "text"
|
|
2290
|
+
* - "forensic"
|
|
2259
2291
|
* @param {boolean=} finalize - If enabled, target object will be finalized after removing watermark
|
|
2260
2292
|
*
|
|
2261
2293
|
* @return {Promise<Object>} - The finalize response
|
|
2262
2294
|
*/
|
|
2263
2295
|
exports.StreamRemoveWatermark = /*#__PURE__*/function () {
|
|
2264
2296
|
var _ref29 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(_ref28) {
|
|
2265
|
-
var objectId, types, _ref28$finalize, finalize,
|
|
2297
|
+
var libraryId, objectId, writeToken, types, _ref28$finalize, finalize, _yield$this$EditConte3, edgeWriteToken, metadataPath, objectMetadata, finalizeResponse;
|
|
2266
2298
|
return _regeneratorRuntime.wrap(function _callee15$(_context15) {
|
|
2267
2299
|
while (1) switch (_context15.prev = _context15.next) {
|
|
2268
2300
|
case 0:
|
|
2269
|
-
objectId = _ref28.objectId, types = _ref28.types, _ref28$finalize = _ref28.finalize, finalize = _ref28$finalize === void 0 ? true : _ref28$finalize;
|
|
2301
|
+
libraryId = _ref28.libraryId, objectId = _ref28.objectId, writeToken = _ref28.writeToken, types = _ref28.types, _ref28$finalize = _ref28.finalize, finalize = _ref28$finalize === void 0 ? true : _ref28$finalize;
|
|
2270
2302
|
ValidateObject(objectId);
|
|
2271
|
-
|
|
2303
|
+
if (libraryId) {
|
|
2304
|
+
_context15.next = 6;
|
|
2305
|
+
break;
|
|
2306
|
+
}
|
|
2307
|
+
_context15.next = 5;
|
|
2272
2308
|
return this.ContentObjectLibraryId({
|
|
2273
2309
|
objectId: objectId
|
|
2274
2310
|
});
|
|
2275
|
-
case
|
|
2311
|
+
case 5:
|
|
2276
2312
|
libraryId = _context15.sent;
|
|
2277
|
-
|
|
2313
|
+
case 6:
|
|
2314
|
+
if (writeToken) {
|
|
2315
|
+
_context15.next = 11;
|
|
2316
|
+
break;
|
|
2317
|
+
}
|
|
2318
|
+
_context15.next = 9;
|
|
2278
2319
|
return this.EditContentObject({
|
|
2279
2320
|
objectId: objectId,
|
|
2280
2321
|
libraryId: libraryId
|
|
2281
2322
|
});
|
|
2282
|
-
case
|
|
2323
|
+
case 9:
|
|
2283
2324
|
_yield$this$EditConte3 = _context15.sent;
|
|
2284
2325
|
writeToken = _yield$this$EditConte3.writeToken;
|
|
2326
|
+
case 11:
|
|
2285
2327
|
this.Log("Removing watermark types: ".concat(types.join(", "), " ").concat(libraryId, " ").concat(objectId));
|
|
2286
|
-
_context15.next =
|
|
2328
|
+
_context15.next = 14;
|
|
2287
2329
|
return this.ContentObjectMetadata({
|
|
2288
2330
|
objectId: objectId,
|
|
2289
2331
|
libraryId: libraryId,
|
|
2290
2332
|
metadataSubtree: "/live_recording/fabric_config/edge_write_token"
|
|
2291
2333
|
});
|
|
2292
|
-
case
|
|
2334
|
+
case 14:
|
|
2293
2335
|
edgeWriteToken = _context15.sent;
|
|
2294
|
-
|
|
2295
|
-
_context15.next =
|
|
2336
|
+
metadataPath = "live_recording/playout_config";
|
|
2337
|
+
_context15.next = 18;
|
|
2296
2338
|
return this.ContentObjectMetadata({
|
|
2297
2339
|
libraryId: libraryId,
|
|
2298
2340
|
objectId: objectId,
|
|
2299
2341
|
writeToken: writeToken,
|
|
2300
|
-
metadataSubtree:
|
|
2342
|
+
metadataSubtree: metadataPath,
|
|
2301
2343
|
resolveLinks: false
|
|
2302
2344
|
});
|
|
2303
|
-
case
|
|
2304
|
-
|
|
2305
|
-
if (
|
|
2306
|
-
_context15.next =
|
|
2345
|
+
case 18:
|
|
2346
|
+
objectMetadata = _context15.sent;
|
|
2347
|
+
if (objectMetadata) {
|
|
2348
|
+
_context15.next = 21;
|
|
2307
2349
|
break;
|
|
2308
2350
|
}
|
|
2309
|
-
throw Error("Stream object must be configured");
|
|
2310
|
-
case
|
|
2351
|
+
throw Error("Stream object must be configured before removing a watermark");
|
|
2352
|
+
case 21:
|
|
2311
2353
|
types.forEach(function (type) {
|
|
2312
2354
|
if (type === "text") {
|
|
2313
|
-
delete
|
|
2355
|
+
delete objectMetadata.simple_watermark;
|
|
2314
2356
|
} else if (type === "image") {
|
|
2315
|
-
delete
|
|
2357
|
+
delete objectMetadata.image_watermark;
|
|
2358
|
+
} else if (type === "forensic") {
|
|
2359
|
+
delete objectMetadata.forensic_watermark;
|
|
2316
2360
|
}
|
|
2317
2361
|
});
|
|
2318
|
-
_context15.next =
|
|
2362
|
+
_context15.next = 24;
|
|
2319
2363
|
return this.ReplaceMetadata({
|
|
2320
2364
|
libraryId: libraryId,
|
|
2321
2365
|
objectId: objectId,
|
|
2322
2366
|
writeToken: writeToken,
|
|
2323
|
-
metadataSubtree:
|
|
2324
|
-
metadata:
|
|
2367
|
+
metadataSubtree: metadataPath,
|
|
2368
|
+
metadata: objectMetadata
|
|
2325
2369
|
});
|
|
2326
|
-
case
|
|
2370
|
+
case 24:
|
|
2327
2371
|
if (!edgeWriteToken) {
|
|
2328
|
-
_context15.next =
|
|
2372
|
+
_context15.next = 27;
|
|
2329
2373
|
break;
|
|
2330
2374
|
}
|
|
2331
|
-
_context15.next =
|
|
2375
|
+
_context15.next = 27;
|
|
2332
2376
|
return this.ReplaceMetadata({
|
|
2333
2377
|
libraryId: libraryId,
|
|
2334
2378
|
objectId: objectId,
|
|
2335
2379
|
writeToken: edgeWriteToken,
|
|
2336
|
-
metadataSubtree:
|
|
2337
|
-
metadata:
|
|
2380
|
+
metadataSubtree: metadataPath,
|
|
2381
|
+
metadata: objectMetadata
|
|
2338
2382
|
});
|
|
2339
|
-
case
|
|
2383
|
+
case 27:
|
|
2340
2384
|
if (!finalize) {
|
|
2341
|
-
_context15.next =
|
|
2385
|
+
_context15.next = 32;
|
|
2342
2386
|
break;
|
|
2343
2387
|
}
|
|
2344
|
-
_context15.next =
|
|
2388
|
+
_context15.next = 30;
|
|
2345
2389
|
return this.FinalizeContentObject({
|
|
2346
2390
|
libraryId: libraryId,
|
|
2347
2391
|
objectId: objectId,
|
|
2348
2392
|
writeToken: writeToken,
|
|
2349
2393
|
commitMessage: "Watermark removed"
|
|
2350
2394
|
});
|
|
2351
|
-
case
|
|
2395
|
+
case 30:
|
|
2352
2396
|
finalizeResponse = _context15.sent;
|
|
2353
2397
|
return _context15.abrupt("return", finalizeResponse);
|
|
2354
|
-
case
|
|
2398
|
+
case 32:
|
|
2355
2399
|
case "end":
|
|
2356
2400
|
return _context15.stop();
|
|
2357
2401
|
}
|
|
@@ -2367,109 +2411,177 @@ exports.StreamRemoveWatermark = /*#__PURE__*/function () {
|
|
|
2367
2411
|
*
|
|
2368
2412
|
* @methodGroup Live Stream
|
|
2369
2413
|
* @namedParams
|
|
2414
|
+
* @param {string=} libraryId - Library ID of the live stream
|
|
2370
2415
|
* @param {string} objectId - Object ID of the live stream
|
|
2416
|
+
* @param {string=} writeToken - Write token of the draft
|
|
2371
2417
|
* @param {Object} simpleWatermark - Text watermark
|
|
2372
2418
|
* @param {Object} imageWatermark - Image watermark
|
|
2419
|
+
* @param {Object} forensicWatermark - Forensic watermark
|
|
2373
2420
|
* @param {boolean=} finalize - If enabled, target object will be finalized after adding watermark
|
|
2421
|
+
* Watermark examples:
|
|
2422
|
+
*
|
|
2423
|
+
* Simple Watermark:
|
|
2424
|
+
{
|
|
2425
|
+
"font_color": "",
|
|
2426
|
+
"font_relative_height": 0,
|
|
2427
|
+
"shadow": false,
|
|
2428
|
+
"template": "",
|
|
2429
|
+
"timecode": "",
|
|
2430
|
+
"timecode_rate": 0,
|
|
2431
|
+
"x": "",
|
|
2432
|
+
"y": ""
|
|
2433
|
+
}
|
|
2434
|
+
*
|
|
2435
|
+
* Image watermark:
|
|
2436
|
+
{
|
|
2437
|
+
"image": "",
|
|
2438
|
+
"align_h": "",
|
|
2439
|
+
"align_v": "",
|
|
2440
|
+
"target_video_height": 0,
|
|
2441
|
+
"wm_enabled": false
|
|
2442
|
+
}
|
|
2443
|
+
*
|
|
2444
|
+
* Forensic watermark:
|
|
2445
|
+
{
|
|
2446
|
+
"algo": 6,
|
|
2447
|
+
"forensic_duration": 0,
|
|
2448
|
+
"forensic_start": "",
|
|
2449
|
+
"image_a": <path_to_image>,
|
|
2450
|
+
"image_b": <path_to_image>,
|
|
2451
|
+
"is_stub": true,
|
|
2452
|
+
"payload_bit_nb": 23,
|
|
2453
|
+
"wm_enabled": true
|
|
2454
|
+
}
|
|
2455
|
+
*
|
|
2374
2456
|
*
|
|
2375
2457
|
* @return {Promise<Object>} - The finalize response
|
|
2376
2458
|
*/
|
|
2377
2459
|
exports.StreamAddWatermark = /*#__PURE__*/function () {
|
|
2378
2460
|
var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(_ref30) {
|
|
2379
|
-
var objectId, simpleWatermark, imageWatermark, _ref30$finalize, finalize,
|
|
2461
|
+
var libraryId, objectId, writeToken, simpleWatermark, imageWatermark, forensicWatermark, _ref30$finalize, finalize, _yield$this$EditConte4, edgeWriteToken, watermarkType, metadataPath, objectMetadata, watermarkArgCount, response, finalizeResponse;
|
|
2380
2462
|
return _regeneratorRuntime.wrap(function _callee16$(_context16) {
|
|
2381
2463
|
while (1) switch (_context16.prev = _context16.next) {
|
|
2382
2464
|
case 0:
|
|
2383
|
-
objectId = _ref30.objectId, simpleWatermark = _ref30.simpleWatermark, imageWatermark = _ref30.imageWatermark, _ref30$finalize = _ref30.finalize, finalize = _ref30$finalize === void 0 ? true : _ref30$finalize;
|
|
2465
|
+
libraryId = _ref30.libraryId, objectId = _ref30.objectId, writeToken = _ref30.writeToken, simpleWatermark = _ref30.simpleWatermark, imageWatermark = _ref30.imageWatermark, forensicWatermark = _ref30.forensicWatermark, _ref30$finalize = _ref30.finalize, finalize = _ref30$finalize === void 0 ? true : _ref30$finalize;
|
|
2384
2466
|
ValidateObject(objectId);
|
|
2385
|
-
|
|
2467
|
+
if (libraryId) {
|
|
2468
|
+
_context16.next = 6;
|
|
2469
|
+
break;
|
|
2470
|
+
}
|
|
2471
|
+
_context16.next = 5;
|
|
2386
2472
|
return this.ContentObjectLibraryId({
|
|
2387
2473
|
objectId: objectId
|
|
2388
2474
|
});
|
|
2389
|
-
case
|
|
2475
|
+
case 5:
|
|
2390
2476
|
libraryId = _context16.sent;
|
|
2391
|
-
|
|
2477
|
+
case 6:
|
|
2478
|
+
if (writeToken) {
|
|
2479
|
+
_context16.next = 11;
|
|
2480
|
+
break;
|
|
2481
|
+
}
|
|
2482
|
+
_context16.next = 9;
|
|
2392
2483
|
return this.EditContentObject({
|
|
2393
2484
|
objectId: objectId,
|
|
2394
2485
|
libraryId: libraryId
|
|
2395
2486
|
});
|
|
2396
|
-
case
|
|
2487
|
+
case 9:
|
|
2397
2488
|
_yield$this$EditConte4 = _context16.sent;
|
|
2398
2489
|
writeToken = _yield$this$EditConte4.writeToken;
|
|
2399
|
-
|
|
2490
|
+
case 11:
|
|
2491
|
+
_context16.next = 13;
|
|
2400
2492
|
return this.ContentObjectMetadata({
|
|
2401
2493
|
objectId: objectId,
|
|
2402
2494
|
libraryId: libraryId,
|
|
2403
2495
|
metadataSubtree: "/live_recording/fabric_config/edge_write_token"
|
|
2404
2496
|
});
|
|
2405
|
-
case
|
|
2497
|
+
case 13:
|
|
2406
2498
|
edgeWriteToken = _context16.sent;
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2499
|
+
watermarkType = imageWatermark ? "image" : forensicWatermark ? "forensic" : "text";
|
|
2500
|
+
metadataPath = "live_recording/playout_config";
|
|
2501
|
+
this.Log("Adding watermarking type: ".concat(watermarkType, " ").concat(libraryId, " ").concat(objectId));
|
|
2502
|
+
_context16.next = 19;
|
|
2410
2503
|
return this.ContentObjectMetadata({
|
|
2411
2504
|
libraryId: libraryId,
|
|
2412
2505
|
objectId: objectId,
|
|
2413
2506
|
writeToken: writeToken,
|
|
2414
|
-
metadataSubtree:
|
|
2507
|
+
metadataSubtree: metadataPath,
|
|
2415
2508
|
resolveLinks: false
|
|
2416
2509
|
});
|
|
2417
|
-
case
|
|
2418
|
-
|
|
2419
|
-
if (
|
|
2420
|
-
_context16.next =
|
|
2510
|
+
case 19:
|
|
2511
|
+
objectMetadata = _context16.sent;
|
|
2512
|
+
if (objectMetadata) {
|
|
2513
|
+
_context16.next = 22;
|
|
2421
2514
|
break;
|
|
2422
2515
|
}
|
|
2423
|
-
throw Error("Stream object must be configured");
|
|
2424
|
-
case
|
|
2516
|
+
throw Error("Stream object must be configured before adding a watermark");
|
|
2517
|
+
case 22:
|
|
2518
|
+
watermarkArgCount = [simpleWatermark, imageWatermark, forensicWatermark].filter(function (i) {
|
|
2519
|
+
return !!i;
|
|
2520
|
+
}).length;
|
|
2521
|
+
console.log("watermark arg count", watermarkArgCount);
|
|
2522
|
+
if (!(watermarkArgCount === 0)) {
|
|
2523
|
+
_context16.next = 28;
|
|
2524
|
+
break;
|
|
2525
|
+
}
|
|
2526
|
+
throw Error("No watermark was provided");
|
|
2527
|
+
case 28:
|
|
2528
|
+
if (!(watermarkArgCount > 1)) {
|
|
2529
|
+
_context16.next = 30;
|
|
2530
|
+
break;
|
|
2531
|
+
}
|
|
2532
|
+
throw Error("Only one watermark is allowed");
|
|
2533
|
+
case 30:
|
|
2425
2534
|
if (simpleWatermark) {
|
|
2426
|
-
|
|
2535
|
+
objectMetadata.simple_watermark = simpleWatermark;
|
|
2427
2536
|
} else if (imageWatermark) {
|
|
2428
|
-
|
|
2537
|
+
objectMetadata.image_watermark = imageWatermark;
|
|
2538
|
+
} else if (forensicWatermark) {
|
|
2539
|
+
objectMetadata.forensic_watermark = forensicWatermark;
|
|
2429
2540
|
}
|
|
2430
|
-
_context16.next =
|
|
2541
|
+
_context16.next = 33;
|
|
2431
2542
|
return this.ReplaceMetadata({
|
|
2432
2543
|
libraryId: libraryId,
|
|
2433
2544
|
objectId: objectId,
|
|
2434
2545
|
writeToken: writeToken,
|
|
2435
|
-
metadataSubtree:
|
|
2436
|
-
metadata:
|
|
2546
|
+
metadataSubtree: metadataPath,
|
|
2547
|
+
metadata: objectMetadata
|
|
2437
2548
|
});
|
|
2438
|
-
case
|
|
2549
|
+
case 33:
|
|
2439
2550
|
if (!edgeWriteToken) {
|
|
2440
|
-
_context16.next =
|
|
2551
|
+
_context16.next = 36;
|
|
2441
2552
|
break;
|
|
2442
2553
|
}
|
|
2443
|
-
_context16.next =
|
|
2554
|
+
_context16.next = 36;
|
|
2444
2555
|
return this.ReplaceMetadata({
|
|
2445
2556
|
libraryId: libraryId,
|
|
2446
2557
|
objectId: objectId,
|
|
2447
2558
|
writeToken: edgeWriteToken,
|
|
2448
|
-
metadataSubtree:
|
|
2449
|
-
metadata:
|
|
2559
|
+
metadataSubtree: metadataPath,
|
|
2560
|
+
metadata: objectMetadata
|
|
2450
2561
|
});
|
|
2451
|
-
case
|
|
2562
|
+
case 36:
|
|
2452
2563
|
response = {
|
|
2453
|
-
"imageWatermark":
|
|
2454
|
-
"textWatermark":
|
|
2564
|
+
"imageWatermark": objectMetadata.image_watermark,
|
|
2565
|
+
"textWatermark": objectMetadata.simple_watermark,
|
|
2566
|
+
"forensicWatermark": objectMetadata.forensic_watermark
|
|
2455
2567
|
};
|
|
2456
2568
|
if (!finalize) {
|
|
2457
|
-
_context16.next =
|
|
2569
|
+
_context16.next = 42;
|
|
2458
2570
|
break;
|
|
2459
2571
|
}
|
|
2460
|
-
_context16.next =
|
|
2572
|
+
_context16.next = 40;
|
|
2461
2573
|
return this.FinalizeContentObject({
|
|
2462
2574
|
libraryId: libraryId,
|
|
2463
2575
|
objectId: objectId,
|
|
2464
2576
|
writeToken: writeToken,
|
|
2465
2577
|
commitMessage: "Watermark set"
|
|
2466
2578
|
});
|
|
2467
|
-
case
|
|
2579
|
+
case 40:
|
|
2468
2580
|
finalizeResponse = _context16.sent;
|
|
2469
2581
|
response.hash = finalizeResponse.hash;
|
|
2470
|
-
case
|
|
2582
|
+
case 42:
|
|
2471
2583
|
return _context16.abrupt("return", response);
|
|
2472
|
-
case
|
|
2584
|
+
case 43:
|
|
2473
2585
|
case "end":
|
|
2474
2586
|
return _context16.stop();
|
|
2475
2587
|
}
|