@eluvio/elv-client-js 4.0.143 → 4.0.145

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 (41) hide show
  1. package/dist/ElvClient-min.js +15 -14
  2. package/dist/ElvClient-node-min.js +14 -13
  3. package/dist/ElvFrameClient-min.js +10 -10
  4. package/dist/ElvPermissionsClient-min.js +9 -9
  5. package/dist/ElvWalletClient-min.js +15 -14
  6. package/dist/ElvWalletClient-node-min.js +14 -13
  7. package/dist/src/AuthorizationClient.js +11 -14
  8. package/dist/src/ContentObjectAudit.js +3 -3
  9. package/dist/src/ContentObjectVerification.js +3 -3
  10. package/dist/src/Crypto.js +2 -2
  11. package/dist/src/ElvClient.js +532 -401
  12. package/dist/src/ElvWallet.js +7 -5
  13. package/dist/src/EthClient.js +9 -10
  14. package/dist/src/FrameClient.js +10 -11
  15. package/dist/src/HttpClient.js +5 -5
  16. package/dist/src/Id.js +1 -2
  17. package/dist/src/PermissionsClient.js +31 -19
  18. package/dist/src/RemoteSigner.js +10 -11
  19. package/dist/src/UserProfileClient.js +35 -20
  20. package/dist/src/Utils.js +2 -3
  21. package/dist/src/Validation.js +10 -2
  22. package/dist/src/client/ABRPublishing.js +438 -238
  23. package/dist/src/client/AccessGroups.js +2 -2
  24. package/dist/src/client/ContentAccess.js +281 -344
  25. package/dist/src/client/ContentManagement.js +100 -84
  26. package/dist/src/client/Contracts.js +430 -2
  27. package/dist/src/client/Files.js +2 -2
  28. package/dist/src/client/LiveConf.js +43 -26
  29. package/dist/src/client/LiveStream.js +65 -63
  30. package/dist/src/client/NFT.js +2 -2
  31. package/dist/src/client/Shares.js +47 -24
  32. package/dist/src/walletClient/ClientMethods.js +2 -2
  33. package/dist/src/walletClient/Profile.js +2 -2
  34. package/dist/src/walletClient/Utils.js +2 -2
  35. package/dist/src/walletClient/index.js +359 -280
  36. package/package.json +2 -2
  37. package/src/FrameClient.js +1 -0
  38. package/src/Validation.js +9 -3
  39. package/src/client/ABRPublishing.js +176 -160
  40. package/src/client/Contracts.js +258 -0
  41. package/src/walletClient/index.js +13 -0
@@ -1,9 +1,13 @@
1
+ var _slicedToArray = require("@babel/runtime/helpers/slicedToArray");
1
2
  var _defineProperty = require("@babel/runtime/helpers/defineProperty");
2
3
  var _typeof = require("@babel/runtime/helpers/typeof");
3
4
  var _regeneratorRuntime = require("@babel/runtime/regenerator");
4
5
  var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
7
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
8
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
11
  /**
8
12
  * Methods for deploying and interacting with contracts
9
13
  *
@@ -1517,4 +1521,428 @@ exports.ResetTenantId = /*#__PURE__*/function () {
1517
1521
  return function (_x21) {
1518
1522
  return _ref48.apply(this, arguments);
1519
1523
  };
1524
+ }();
1525
+
1526
+ /**
1527
+ * Enum for object types that can be cleaned up after object deletion.
1528
+ * Used by the ObjectCleanup method to determine which associated objects to clean.
1529
+ *
1530
+ * @property {string=} LIBRARY - Cleanup libraries
1531
+ * @property {string=} CONTENT_OBJECT - Cleanup content objects
1532
+ * @property {string=} GROUP - Cleanup access groups
1533
+ * @property {string=} CONTENT_TYPE - Cleanup content types
1534
+ * @property {string=} ALL - Cleanup all of the above
1535
+ */
1536
+ var ObjectTypesToClean = Object.freeze({
1537
+ LIBRARY: "library",
1538
+ CONTENT_OBJECT: "content_object",
1539
+ GROUP: "group",
1540
+ CONTENT_TYPE: "content_type",
1541
+ ALL: "all"
1542
+ });
1543
+
1544
+ /**
1545
+ * Cleans up deleted objects pointed to by the access index of a given "access group" or "user wallet"
1546
+ * Contracts of type "access group" and "user wallet" contain an "access index" - a list of objects that they have access to.
1547
+ *
1548
+ * There are 4 specific indexes, one for each object type:
1549
+ * - content
1550
+ * - library
1551
+ * - access groups
1552
+ * - content types
1553
+ *
1554
+ * If an object gets deleted and the access index still points to it, it will cause errors in API calls for the access
1555
+ * group or user wallet.
1556
+ *
1557
+ * This function checks each index for objects that are deleted, and removes them from the index (either all indexes or
1558
+ * just the one specified by parameter 'objectTypeToClean')
1559
+ *
1560
+ * For user, the cleanup is performed on the user wallet and on all its access group
1561
+ *
1562
+ * @methodGroup Contracts
1563
+ * @namedParams
1564
+ * @param {string=} contractAddress - The address of the object
1565
+ * @param {string=} objectId - The ID of the object
1566
+ * @param {string=} versionHash - A version hash of the object
1567
+ * @param {string=} objectTypeToClean - The type of object to clean: one of "library", "content_object", "group", "content_type", or "all"
1568
+ * @returns {Promise<Object>} - Resolves with an object showing the count of items before and after cleanup.
1569
+ *
1570
+ * Example return value:
1571
+ * {
1572
+ * "0x123...": {
1573
+ * beforeCleanup: {
1574
+ * librariesLength: 2,
1575
+ * contentObjectsLength: 4,
1576
+ * accessGroupsLength: 1,
1577
+ * contentTypesLength: 3
1578
+ * },
1579
+ * afterCleanup: {
1580
+ * librariesLength: 0,
1581
+ * contentObjectsLength: 0,
1582
+ * accessGroupsLength: 0,
1583
+ * contentTypesLength: 0
1584
+ * }
1585
+ * },
1586
+ * "groups": {
1587
+ * "0x123...": {
1588
+ * beforeCleanup: {
1589
+ * contentObjectsLength: 1
1590
+ * },
1591
+ * afterCleanup: {
1592
+ * contentObjectsLength: 0
1593
+ * }
1594
+ * }
1595
+ * }
1596
+ * }
1597
+ */
1598
+ exports.ObjectCleanup = /*#__PURE__*/function () {
1599
+ var _ref50 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee29(_ref49) {
1600
+ var _this = this;
1601
+ var contractAddress, objectId, versionHash, _ref49$objectTypeToCl, objectTypeToClean, isUserWallet, userAddress, allowedTypes, cleanupTasks, runCleanupTasks, results, res, groupsLength, groupAddressPromises, i, groupAddresses, cleanupResults, _iterator, _step, _step$value, addr, _res2;
1602
+ return _regeneratorRuntime.wrap(function _callee29$(_context29) {
1603
+ while (1) switch (_context29.prev = _context29.next) {
1604
+ case 0:
1605
+ contractAddress = _ref49.contractAddress, objectId = _ref49.objectId, versionHash = _ref49.versionHash, _ref49$objectTypeToCl = _ref49.objectTypeToClean, objectTypeToClean = _ref49$objectTypeToCl === void 0 ? ObjectTypesToClean.ALL : _ref49$objectTypeToCl;
1606
+ _context29.next = 3;
1607
+ return GetObjectIDAndContractAddress({
1608
+ contractAddress: contractAddress,
1609
+ objectId: objectId,
1610
+ versionHash: versionHash
1611
+ });
1612
+ case 3:
1613
+ objectInfo = _context29.sent;
1614
+ contractAddress = objectInfo.contractAddress;
1615
+ isUserWallet = false;
1616
+ _context29.prev = 6;
1617
+ _context29.next = 9;
1618
+ return this.CallContractMethod({
1619
+ contractAddress: contractAddress,
1620
+ methodName: "getLibrariesLength",
1621
+ formatArguments: false
1622
+ });
1623
+ case 9:
1624
+ _context29.next = 24;
1625
+ break;
1626
+ case 11:
1627
+ _context29.prev = 11;
1628
+ _context29.t0 = _context29["catch"](6);
1629
+ _context29.prev = 13;
1630
+ userAddress = contractAddress;
1631
+ _context29.next = 17;
1632
+ return this.userProfileClient.UserWalletAddress({
1633
+ address: contractAddress
1634
+ });
1635
+ case 17:
1636
+ contractAddress = _context29.sent;
1637
+ isUserWallet = true;
1638
+ _context29.next = 24;
1639
+ break;
1640
+ case 21:
1641
+ _context29.prev = 21;
1642
+ _context29.t1 = _context29["catch"](13);
1643
+ throw new Error("Invalid object: ".concat(_context29.t1.message));
1644
+ case 24:
1645
+ allowedTypes = Object.values(ObjectTypesToClean);
1646
+ if (allowedTypes.includes(objectTypeToClean)) {
1647
+ _context29.next = 27;
1648
+ break;
1649
+ }
1650
+ throw Error("Invalid objectType '".concat(objectTypeToClean, "'. Allowed types: ").concat(allowedTypes.join(", ")));
1651
+ case 27:
1652
+ cleanupTasks = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ObjectTypesToClean.LIBRARY, function () {
1653
+ var _ref52 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(_ref51) {
1654
+ var contractAddress, res, before, after;
1655
+ return _regeneratorRuntime.wrap(function _callee24$(_context24) {
1656
+ while (1) switch (_context24.prev = _context24.next) {
1657
+ case 0:
1658
+ contractAddress = _ref51.contractAddress, res = _ref51.res;
1659
+ _context24.next = 3;
1660
+ return _this.CallContractMethod({
1661
+ contractAddress: contractAddress,
1662
+ methodName: "getLibrariesLength",
1663
+ formatArguments: false
1664
+ });
1665
+ case 3:
1666
+ before = _context24.sent;
1667
+ res.beforeCleanup.librariesLength = before.toNumber();
1668
+ _context24.next = 7;
1669
+ return _this.CallContractMethodAndWait({
1670
+ contractAddress: contractAddress,
1671
+ methodName: "cleanUpLibraries",
1672
+ formatArguments: true
1673
+ });
1674
+ case 7:
1675
+ _context24.next = 9;
1676
+ return _this.CallContractMethod({
1677
+ contractAddress: contractAddress,
1678
+ methodName: "getLibrariesLength",
1679
+ formatArguments: false
1680
+ });
1681
+ case 9:
1682
+ after = _context24.sent;
1683
+ res.afterCleanup.librariesLength = after.toNumber();
1684
+ case 11:
1685
+ case "end":
1686
+ return _context24.stop();
1687
+ }
1688
+ }, _callee24);
1689
+ }));
1690
+ return function (_x23) {
1691
+ return _ref52.apply(this, arguments);
1692
+ };
1693
+ }()), ObjectTypesToClean.CONTENT_OBJECT, function () {
1694
+ var _ref54 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(_ref53) {
1695
+ var contractAddress, res, before, after;
1696
+ return _regeneratorRuntime.wrap(function _callee25$(_context25) {
1697
+ while (1) switch (_context25.prev = _context25.next) {
1698
+ case 0:
1699
+ contractAddress = _ref53.contractAddress, res = _ref53.res;
1700
+ _context25.next = 3;
1701
+ return _this.CallContractMethod({
1702
+ contractAddress: contractAddress,
1703
+ methodName: "getContentObjectsLength",
1704
+ formatArguments: false
1705
+ });
1706
+ case 3:
1707
+ before = _context25.sent;
1708
+ res.beforeCleanup.contentObjectsLength = before.toNumber();
1709
+ _context25.next = 7;
1710
+ return _this.CallContractMethodAndWait({
1711
+ contractAddress: contractAddress,
1712
+ methodName: "cleanUpContentObjects",
1713
+ formatArguments: true
1714
+ });
1715
+ case 7:
1716
+ _context25.next = 9;
1717
+ return _this.CallContractMethod({
1718
+ contractAddress: contractAddress,
1719
+ methodName: "getContentObjectsLength",
1720
+ formatArguments: false
1721
+ });
1722
+ case 9:
1723
+ after = _context25.sent;
1724
+ res.afterCleanup.contentObjectsLength = after.toNumber();
1725
+ case 11:
1726
+ case "end":
1727
+ return _context25.stop();
1728
+ }
1729
+ }, _callee25);
1730
+ }));
1731
+ return function (_x24) {
1732
+ return _ref54.apply(this, arguments);
1733
+ };
1734
+ }()), ObjectTypesToClean.GROUP, function () {
1735
+ var _ref56 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee26(_ref55) {
1736
+ var contractAddress, res, before, after;
1737
+ return _regeneratorRuntime.wrap(function _callee26$(_context26) {
1738
+ while (1) switch (_context26.prev = _context26.next) {
1739
+ case 0:
1740
+ contractAddress = _ref55.contractAddress, res = _ref55.res;
1741
+ _context26.next = 3;
1742
+ return _this.CallContractMethod({
1743
+ contractAddress: contractAddress,
1744
+ methodName: "getAccessGroupsLength",
1745
+ formatArguments: false
1746
+ });
1747
+ case 3:
1748
+ before = _context26.sent;
1749
+ res.beforeCleanup.accessGroupsLength = before.toNumber();
1750
+ _context26.next = 7;
1751
+ return _this.CallContractMethodAndWait({
1752
+ contractAddress: contractAddress,
1753
+ methodName: "cleanUpAccessGroups",
1754
+ formatArguments: true
1755
+ });
1756
+ case 7:
1757
+ _context26.next = 9;
1758
+ return _this.CallContractMethod({
1759
+ contractAddress: contractAddress,
1760
+ methodName: "getAccessGroupsLength",
1761
+ formatArguments: false
1762
+ });
1763
+ case 9:
1764
+ after = _context26.sent;
1765
+ res.afterCleanup.accessGroupsLength = after.toNumber();
1766
+ case 11:
1767
+ case "end":
1768
+ return _context26.stop();
1769
+ }
1770
+ }, _callee26);
1771
+ }));
1772
+ return function (_x25) {
1773
+ return _ref56.apply(this, arguments);
1774
+ };
1775
+ }()), ObjectTypesToClean.CONTENT_TYPE, function () {
1776
+ var _ref58 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee27(_ref57) {
1777
+ var contractAddress, res, before, after;
1778
+ return _regeneratorRuntime.wrap(function _callee27$(_context27) {
1779
+ while (1) switch (_context27.prev = _context27.next) {
1780
+ case 0:
1781
+ contractAddress = _ref57.contractAddress, res = _ref57.res;
1782
+ _context27.next = 3;
1783
+ return _this.CallContractMethod({
1784
+ contractAddress: contractAddress,
1785
+ methodName: "getContentTypesLength",
1786
+ formatArguments: false
1787
+ });
1788
+ case 3:
1789
+ before = _context27.sent;
1790
+ res.beforeCleanup.contentTypesLength = before.toNumber();
1791
+ _context27.next = 7;
1792
+ return _this.CallContractMethodAndWait({
1793
+ contractAddress: contractAddress,
1794
+ methodName: "cleanUpContentTypes",
1795
+ formatArguments: true
1796
+ });
1797
+ case 7:
1798
+ _context27.next = 9;
1799
+ return _this.CallContractMethod({
1800
+ contractAddress: contractAddress,
1801
+ methodName: "getContentTypesLength",
1802
+ formatArguments: false
1803
+ });
1804
+ case 9:
1805
+ after = _context27.sent;
1806
+ res.afterCleanup.contentTypesLength = after.toNumber();
1807
+ case 11:
1808
+ case "end":
1809
+ return _context27.stop();
1810
+ }
1811
+ }, _callee27);
1812
+ }));
1813
+ return function (_x26) {
1814
+ return _ref58.apply(this, arguments);
1815
+ };
1816
+ }());
1817
+ runCleanupTasks = /*#__PURE__*/function () {
1818
+ var _ref60 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee28(_ref59) {
1819
+ var contractAddress, _res, _i, _Object$keys, type;
1820
+ return _regeneratorRuntime.wrap(function _callee28$(_context28) {
1821
+ while (1) switch (_context28.prev = _context28.next) {
1822
+ case 0:
1823
+ contractAddress = _ref59.contractAddress;
1824
+ _context28.prev = 1;
1825
+ _res = {
1826
+ beforeCleanup: {},
1827
+ afterCleanup: {}
1828
+ };
1829
+ if (!(objectTypeToClean === ObjectTypesToClean.ALL)) {
1830
+ _context28.next = 14;
1831
+ break;
1832
+ }
1833
+ _i = 0, _Object$keys = Object.keys(cleanupTasks);
1834
+ case 5:
1835
+ if (!(_i < _Object$keys.length)) {
1836
+ _context28.next = 12;
1837
+ break;
1838
+ }
1839
+ type = _Object$keys[_i];
1840
+ _context28.next = 9;
1841
+ return cleanupTasks[type]({
1842
+ contractAddress: contractAddress,
1843
+ res: _res
1844
+ });
1845
+ case 9:
1846
+ _i++;
1847
+ _context28.next = 5;
1848
+ break;
1849
+ case 12:
1850
+ _context28.next = 16;
1851
+ break;
1852
+ case 14:
1853
+ _context28.next = 16;
1854
+ return cleanupTasks[objectTypeToClean]({
1855
+ contractAddress: contractAddress,
1856
+ res: _res
1857
+ });
1858
+ case 16:
1859
+ return _context28.abrupt("return", _res);
1860
+ case 19:
1861
+ _context28.prev = 19;
1862
+ _context28.t0 = _context28["catch"](1);
1863
+ throw new Error("Error during '".concat(objectTypeToClean, "' cleanup for ").concat(contractAddress, ": ").concat(_context28.t0.message));
1864
+ case 22:
1865
+ case "end":
1866
+ return _context28.stop();
1867
+ }
1868
+ }, _callee28, null, [[1, 19]]);
1869
+ }));
1870
+ return function runCleanupTasks(_x27) {
1871
+ return _ref60.apply(this, arguments);
1872
+ };
1873
+ }();
1874
+ results = {}; // run cleanup on main contract
1875
+ _context29.next = 32;
1876
+ return runCleanupTasks({
1877
+ contractAddress: contractAddress
1878
+ });
1879
+ case 32:
1880
+ res = _context29.sent;
1881
+ if (isUserWallet) {
1882
+ results[userAddress] = res;
1883
+ } else {
1884
+ results[contractAddress] = res;
1885
+ }
1886
+
1887
+ // run cleanup on access group contracts if this is a user wallet
1888
+ if (!isUserWallet) {
1889
+ _context29.next = 49;
1890
+ break;
1891
+ }
1892
+ _context29.next = 37;
1893
+ return this.CallContractMethod({
1894
+ contractAddress: contractAddress,
1895
+ methodName: "getAccessGroupsLength",
1896
+ formatArguments: false
1897
+ });
1898
+ case 37:
1899
+ groupsLength = _context29.sent;
1900
+ if (groupsLength > 0) {
1901
+ results["groups"] = {};
1902
+ }
1903
+ groupAddressPromises = [];
1904
+ for (i = 0; i < groupsLength; i++) {
1905
+ groupAddressPromises.push(this.CallContractMethod({
1906
+ contractAddress: contractAddress,
1907
+ methodName: "getAccessGroup",
1908
+ methodArgs: [i],
1909
+ formatArguments: false
1910
+ }));
1911
+ }
1912
+ _context29.next = 43;
1913
+ return Promise.all(groupAddressPromises);
1914
+ case 43:
1915
+ groupAddresses = _context29.sent;
1916
+ _context29.next = 46;
1917
+ return Promise.all(groupAddresses.map(function (addr) {
1918
+ return runCleanupTasks({
1919
+ contractAddress: addr
1920
+ }).then(function (res) {
1921
+ return [addr, res];
1922
+ });
1923
+ }));
1924
+ case 46:
1925
+ cleanupResults = _context29.sent;
1926
+ _iterator = _createForOfIteratorHelper(cleanupResults);
1927
+ try {
1928
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1929
+ _step$value = _slicedToArray(_step.value, 2), addr = _step$value[0], _res2 = _step$value[1];
1930
+ results["groups"][addr] = _res2;
1931
+ }
1932
+ } catch (err) {
1933
+ _iterator.e(err);
1934
+ } finally {
1935
+ _iterator.f();
1936
+ }
1937
+ case 49:
1938
+ return _context29.abrupt("return", results);
1939
+ case 50:
1940
+ case "end":
1941
+ return _context29.stop();
1942
+ }
1943
+ }, _callee29, this, [[6, 11], [13, 21]]);
1944
+ }));
1945
+ return function (_x22) {
1946
+ return _ref50.apply(this, arguments);
1947
+ };
1520
1948
  }();
@@ -2,8 +2,8 @@ var _toConsumableArray = require("@babel/runtime/helpers/toConsumableArray");
2
2
  var _defineProperty = require("@babel/runtime/helpers/defineProperty");
3
3
  var _regeneratorRuntime = require("@babel/runtime/regenerator");
4
4
  var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7
7
  /**
8
8
  * Methods for accessing and managing access groups
9
9
  *
@@ -1,8 +1,9 @@
1
+ var _slicedToArray = require("@babel/runtime/helpers/slicedToArray");
1
2
  var _defineProperty = require("@babel/runtime/helpers/defineProperty");
2
3
  var _classCallCheck = require("@babel/runtime/helpers/classCallCheck");
3
4
  var _createClass = require("@babel/runtime/helpers/createClass");
4
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
7
  /* eslint no-console: 0 */
7
8
 
8
9
  var DefaultABRLadder = {
@@ -109,7 +110,7 @@ var LiveConf = /*#__PURE__*/function () {
109
110
  this.overwriteOriginUrl = overwriteOriginUrl;
110
111
  this.syncAudioToVideo = syncAudioToVideo;
111
112
  }
112
- _createClass(LiveConf, [{
113
+ return _createClass(LiveConf, [{
113
114
  key: "probeKind",
114
115
  value: function probeKind() {
115
116
  var fileNameSplit = this.probeData.format.filename.split(":");
@@ -133,14 +134,17 @@ var LiveConf = /*#__PURE__*/function () {
133
134
  key: "getAudioStreamsFromProbe",
134
135
  value: function getAudioStreamsFromProbe() {
135
136
  var audioStreams = {};
136
- for (var index = 0; index < this.probeData.streams.length; index++) {
137
- if (this.probeData.streams[index].codec_type == "audio") {
138
- audioStreams[index] = {
139
- recordingBitrate: Math.max(this.probeData.streams[index].bit_rate, 128000),
140
- recordingChannels: this.probeData.streams[index].channels,
141
- playoutLabel: "Audio ".concat(index)
142
- };
143
- }
137
+ var audioStreamData = this.probeData.streams.filter(function (value) {
138
+ return value.codec_type === "audio";
139
+ });
140
+ for (var index = 0; index < audioStreamData.length; index++) {
141
+ var currentStreamIndex = audioStreamData[index].stream_index;
142
+ var currentStreamData = audioStreamData[index];
143
+ audioStreams[currentStreamIndex] = {
144
+ recordingBitrate: Math.max(currentStreamData.bit_rate, 128000),
145
+ recordingChannels: currentStreamData.channels,
146
+ playoutLabel: "Audio ".concat(index + 1)
147
+ };
144
148
  }
145
149
  return audioStreams;
146
150
  }
@@ -224,7 +228,6 @@ var LiveConf = /*#__PURE__*/function () {
224
228
  } else {
225
229
  seg.audio = 29.76 * 48000; // Other codecs are resampled @48000
226
230
  }
227
-
228
231
  return seg;
229
232
  }
230
233
 
@@ -398,7 +401,7 @@ var LiveConf = /*#__PURE__*/function () {
398
401
  recordingChannels: audio.recording_channels || 2
399
402
  };
400
403
  if (audio.playout) {
401
- audioStreams[audioIdx].playoutLabel = audio.playout_label || "Audio ".concat(audioIdx);
404
+ audioStreams[audioIdx].playoutLabel = audio.playout_label || "Audio ".concat(i + 1);
402
405
  }
403
406
  }
404
407
  }
@@ -447,18 +450,6 @@ var LiveConf = /*#__PURE__*/function () {
447
450
  if (this.syncAudioToVideo) {
448
451
  conf.live_recording.recording_config.recording_params.xc_params.sync_audio_to_stream_id = this.syncAudioToStreamIdValue();
449
452
  }
450
- if (customSettings.edge_write_token) {
451
- conf.live_recording.fabric_config.edge_write_token = customSettings.edge_write_token;
452
- }
453
- if (customSettings.part_ttl) {
454
- conf.live_recording.recording_config.recording_params.part_ttl = customSettings.part_ttl;
455
- }
456
- if (customSettings.connection_timeout) {
457
- conf.live_recording.recording_config.recording_params.xc_params.connection_timeout = customSettings.connection_timeout;
458
- }
459
- if (customSettings.reconnect_timeout) {
460
- conf.live_recording.recording_config.recording_params.reconnect_timeout = customSettings.reconnect_timeout;
461
- }
462
453
 
463
454
  // Fill in specifics for protocol
464
455
  switch (this.probeKind()) {
@@ -561,9 +552,35 @@ var LiveConf = /*#__PURE__*/function () {
561
552
  // Global recording bitrate for all audio streams
562
553
  conf.live_recording.recording_config.recording_params.xc_params.audio_bitrate = globalAudioBitrate;
563
554
  conf.live_recording.recording_config.recording_params.xc_params.n_audio = nAudio;
555
+
556
+ // Iterate through custom settings (which will override any existing setting)
557
+ function SetByPath(_ref6) {
558
+ var obj = _ref6.obj,
559
+ path = _ref6.path,
560
+ value = _ref6.value;
561
+ var keys = path.split(".");
562
+ var temp = obj;
563
+ for (var _i3 = 0; _i3 < keys.length - 1; _i3++) {
564
+ if (!temp[keys[_i3]]) {
565
+ temp[keys[_i3]] = {};
566
+ }
567
+ temp = temp[keys[_i3]];
568
+ }
569
+ temp[keys[keys.length - 1]] = value;
570
+ }
571
+ var metaPathValues = customSettings.metaPathValues;
572
+ for (var _i4 = 0, _Object$entries = Object.entries(metaPathValues || {}); _i4 < _Object$entries.length; _i4++) {
573
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i4], 2),
574
+ path = _Object$entries$_i[0],
575
+ value = _Object$entries$_i[1];
576
+ SetByPath({
577
+ obj: conf,
578
+ path: path,
579
+ value: value
580
+ });
581
+ }
564
582
  return conf;
565
583
  }
566
584
  }]);
567
- return LiveConf;
568
585
  }();
569
586
  exports.LiveConf = LiveConf;