@eluvio/elv-client-js 4.0.111 → 4.0.113

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 (125) hide show
  1. package/package.json +1 -1
  2. package/src/FrameClient.js +2 -0
  3. package/dist/ElvClient-min.js +0 -67
  4. package/dist/ElvClient-node-min.js +0 -66
  5. package/dist/ElvFrameClient-min.js +0 -60
  6. package/dist/ElvPermissionsClient-min.js +0 -60
  7. package/dist/ElvWalletClient-min.js +0 -67
  8. package/dist/ElvWalletClient-node-min.js +0 -66
  9. package/dist/src/AuthorizationClient.js +0 -2157
  10. package/dist/src/ContentObjectAudit.js +0 -175
  11. package/dist/src/ContentObjectVerification.js +0 -281
  12. package/dist/src/Crypto.js +0 -412
  13. package/dist/src/ElvClient.js +0 -2049
  14. package/dist/src/ElvWallet.js +0 -245
  15. package/dist/src/EthClient.js +0 -1154
  16. package/dist/src/FrameClient.js +0 -485
  17. package/dist/src/HttpClient.js +0 -315
  18. package/dist/src/Id.js +0 -21
  19. package/dist/src/LogMessage.js +0 -25
  20. package/dist/src/PermissionsClient.js +0 -1544
  21. package/dist/src/RemoteSigner.js +0 -385
  22. package/dist/src/UserProfileClient.js +0 -1450
  23. package/dist/src/Utils.js +0 -894
  24. package/dist/src/Validation.js +0 -121
  25. package/dist/src/abr_profiles/abr_profile_live_drm.js +0 -1661
  26. package/dist/src/abr_profiles/abr_profile_live_to_vod.js +0 -1606
  27. package/dist/src/client/ABRPublishing.js +0 -1018
  28. package/dist/src/client/AccessGroups.js +0 -1503
  29. package/dist/src/client/ContentAccess.js +0 -5173
  30. package/dist/src/client/ContentManagement.js +0 -2680
  31. package/dist/src/client/Contracts.js +0 -1520
  32. package/dist/src/client/Files.js +0 -2181
  33. package/dist/src/client/LiveConf.js +0 -567
  34. package/dist/src/client/LiveStream.js +0 -2638
  35. package/dist/src/client/NFT.js +0 -162
  36. package/dist/src/client/NTP.js +0 -581
  37. package/dist/src/contracts/v2/AccessIndexor.js +0 -831
  38. package/dist/src/contracts/v2/Accessible.js +0 -31
  39. package/dist/src/contracts/v2/BaseAccessControlGroup.js +0 -1263
  40. package/dist/src/contracts/v2/BaseAccessWallet.js +0 -1609
  41. package/dist/src/contracts/v2/BaseAccessWalletFactory.js +0 -93
  42. package/dist/src/contracts/v2/BaseContent.js +0 -1076
  43. package/dist/src/contracts/v2/BaseContentFactory.js +0 -219
  44. package/dist/src/contracts/v2/BaseContentSpace.js +0 -1352
  45. package/dist/src/contracts/v2/BaseContentType.js +0 -364
  46. package/dist/src/contracts/v2/BaseFactory.js +0 -107
  47. package/dist/src/contracts/v2/BaseGroupFactory.js +0 -93
  48. package/dist/src/contracts/v2/BaseLibrary.js +0 -1041
  49. package/dist/src/contracts/v2/BaseLibraryFactory.js +0 -96
  50. package/dist/src/contracts/v2/Certifyer.js +0 -86
  51. package/dist/src/contracts/v2/Container.js +0 -540
  52. package/dist/src/contracts/v2/Content.js +0 -443
  53. package/dist/src/contracts/v2/Editable.js +0 -306
  54. package/dist/src/contracts/v2/ExternalUserWallet.js +0 -379
  55. package/dist/src/contracts/v2/IFactorySpace.js +0 -57
  56. package/dist/src/contracts/v2/IKmsSpace.js +0 -52
  57. package/dist/src/contracts/v2/INodeSpace.js +0 -18
  58. package/dist/src/contracts/v2/IUserSpace.js +0 -18
  59. package/dist/src/contracts/v2/LvRecordableStream.js +0 -1037
  60. package/dist/src/contracts/v2/LvRecording.js +0 -627
  61. package/dist/src/contracts/v2/LvStreamRightsHolder.js +0 -562
  62. package/dist/src/contracts/v2/MetaObject.js +0 -119
  63. package/dist/src/contracts/v2/Node.js +0 -167
  64. package/dist/src/contracts/v2/NodeSpace.js +0 -273
  65. package/dist/src/contracts/v2/Ownable.js +0 -87
  66. package/dist/src/contracts/v2/PaymentService.js +0 -627
  67. package/dist/src/contracts/v2/Precompile.js +0 -15
  68. package/dist/src/contracts/v2/Transactable.js +0 -82
  69. package/dist/src/contracts/v2/UserSpace.js +0 -29
  70. package/dist/src/contracts/v2/Utils.js +0 -18
  71. package/dist/src/contracts/v2/Verifier.js +0 -53
  72. package/dist/src/contracts/v2/strings.js +0 -4
  73. package/dist/src/contracts/v3/AccessIndexor.js +0 -774
  74. package/dist/src/contracts/v3/Accessible.js +0 -232
  75. package/dist/src/contracts/v3/Adminable.js +0 -107
  76. package/dist/src/contracts/v3/AvailsDelivery.js +0 -586
  77. package/dist/src/contracts/v3/BaseAccessControlGroup.js +0 -1603
  78. package/dist/src/contracts/v3/BaseAccessWallet.js +0 -1628
  79. package/dist/src/contracts/v3/BaseAccessWalletFactory.js +0 -112
  80. package/dist/src/contracts/v3/BaseContent.js +0 -1312
  81. package/dist/src/contracts/v3/BaseContentFactory.js +0 -183
  82. package/dist/src/contracts/v3/BaseContentFactoryExt.js +0 -175
  83. package/dist/src/contracts/v3/BaseContentSpace.js +0 -1515
  84. package/dist/src/contracts/v3/BaseContentType.js +0 -527
  85. package/dist/src/contracts/v3/BaseFactory.js +0 -126
  86. package/dist/src/contracts/v3/BaseGroupFactory.js +0 -112
  87. package/dist/src/contracts/v3/BaseLibrary.js +0 -1204
  88. package/dist/src/contracts/v3/BaseLibraryFactory.js +0 -115
  89. package/dist/src/contracts/v3/BaseTenantSpace.js +0 -1587
  90. package/dist/src/contracts/v3/Certifyer.js +0 -86
  91. package/dist/src/contracts/v3/Container.js +0 -739
  92. package/dist/src/contracts/v3/Content.js +0 -438
  93. package/dist/src/contracts/v3/CounterObject.js +0 -243
  94. package/dist/src/contracts/v3/Editable.js +0 -519
  95. package/dist/src/contracts/v3/EncToken.js +0 -4
  96. package/dist/src/contracts/v3/ExternalUserWallet.js +0 -587
  97. package/dist/src/contracts/v3/IAdmin.js +0 -18
  98. package/dist/src/contracts/v3/IFactorySpace.js +0 -57
  99. package/dist/src/contracts/v3/IKmsSpace.js +0 -52
  100. package/dist/src/contracts/v3/INodeSpace.js +0 -18
  101. package/dist/src/contracts/v3/IUserSpace.js +0 -32
  102. package/dist/src/contracts/v3/LvRecordableStream.js +0 -1032
  103. package/dist/src/contracts/v3/LvRecording.js +0 -650
  104. package/dist/src/contracts/v3/LvStreamRightsHolder.js +0 -557
  105. package/dist/src/contracts/v3/MetaObject.js +0 -144
  106. package/dist/src/contracts/v3/Node.js +0 -178
  107. package/dist/src/contracts/v3/NodeSpace.js +0 -284
  108. package/dist/src/contracts/v3/Ownable.js +0 -98
  109. package/dist/src/contracts/v3/PaymentService.js +0 -622
  110. package/dist/src/contracts/v3/Precompile.js +0 -26
  111. package/dist/src/contracts/v3/TenantFuncsBase.js +0 -351
  112. package/dist/src/contracts/v3/Transactable.js +0 -82
  113. package/dist/src/contracts/v3/UserSpace.js +0 -43
  114. package/dist/src/contracts/v3/Utils.js +0 -18
  115. package/dist/src/contracts/v3/Verifier.js +0 -53
  116. package/dist/src/contracts/v3/strings.js +0 -4
  117. package/dist/src/contracts/v3b/BaseAccessControlGroup.js +0 -1704
  118. package/dist/src/events/Topics.js +0 -1793
  119. package/dist/src/index.js +0 -8
  120. package/dist/src/walletClient/ClientMethods.js +0 -3102
  121. package/dist/src/walletClient/Configuration.js +0 -38
  122. package/dist/src/walletClient/Notifications.js +0 -168
  123. package/dist/src/walletClient/Profile.js +0 -332
  124. package/dist/src/walletClient/Utils.js +0 -281
  125. package/dist/src/walletClient/index.js +0 -2106
@@ -1,175 +0,0 @@
1
- var _regeneratorRuntime = require("@babel/runtime/regenerator");
2
- var _toConsumableArray = require("@babel/runtime/helpers/toConsumableArray");
3
- var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
4
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
5
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
- var UrlJoin = require("url-join");
8
- var HttpClient = require("./HttpClient");
9
- var UUID = require("uuid").v4;
10
- var _require = require("./Validation"),
11
- ValidateParameters = _require.ValidateParameters;
12
- var ContentObjectAudit = {
13
- AuditContentObject: function AuditContentObject(_ref) {
14
- return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
15
- var client, libraryId, objectId, versionHash, salt, samples, _ref$live, live, authorizationToken, queryParams, uris, httpClient, path, responses, auditHash, verified, audits, _iterator, _step, response, url, audit, res;
16
- return _regeneratorRuntime.wrap(function _callee$(_context) {
17
- while (1) switch (_context.prev = _context.next) {
18
- case 0:
19
- client = _ref.client, libraryId = _ref.libraryId, objectId = _ref.objectId, versionHash = _ref.versionHash, salt = _ref.salt, samples = _ref.samples, _ref$live = _ref.live, live = _ref$live === void 0 ? false : _ref$live, authorizationToken = _ref.authorizationToken;
20
- if (!salt) {
21
- salt = client.utils.B64(UUID());
22
- }
23
- if (!samples) {
24
- samples = [Math.random() * 0.33, Math.random() * 0.33 + 0.33, Math.random() * 0.33 + 0.66];
25
- }
26
-
27
- // Ensure only a max of 3 samples
28
- samples = samples.slice(0, 3);
29
- if (versionHash) {
30
- objectId = client.utils.DecodeVersionHash(versionHash).objectId;
31
- }
32
- if (libraryId) {
33
- _context.next = 9;
34
- break;
35
- }
36
- _context.next = 8;
37
- return client.ContentObjectLibraryId({
38
- objectId: objectId
39
- });
40
- case 8:
41
- libraryId = _context.sent;
42
- case 9:
43
- ValidateParameters({
44
- libraryId: libraryId,
45
- objectId: objectId,
46
- versionHash: versionHash
47
- });
48
- queryParams = {
49
- salt: salt,
50
- samples: samples
51
- };
52
- if (live) {
53
- queryParams.now = Date.now();
54
- }
55
-
56
- // Test against the node the client is currently using, plus a batch of fresh nodes
57
- _context.t0 = [client.HttpClient.uris[client.HttpClient.uriIndex]];
58
- _context.t1 = _toConsumableArray;
59
- _context.next = 16;
60
- return client.Configuration({
61
- configUrl: client.configUrl,
62
- clientIP: client.clientIP,
63
- region: client.region
64
- });
65
- case 16:
66
- _context.t2 = _context.sent.fabricURIs;
67
- _context.t3 = (0, _context.t1)(_context.t2);
68
- uris = _context.t0.concat.call(_context.t0, _context.t3).filter(function (v, i, s) {
69
- return s.indexOf(v) === i;
70
- });
71
- httpClient = new HttpClient({
72
- uris: uris
73
- });
74
- path = UrlJoin("qlibs", libraryId, "q", versionHash || objectId, live ? "call/live/audit" : "audit");
75
- _context.t4 = httpClient;
76
- if (!authorizationToken) {
77
- _context.next = 26;
78
- break;
79
- }
80
- _context.t5 = {
81
- Authorization: "Bearer ".concat(authorizationToken)
82
- };
83
- _context.next = 29;
84
- break;
85
- case 26:
86
- _context.next = 28;
87
- return client.authClient.AuthorizationHeader({
88
- libraryId: libraryId,
89
- objectId: objectId,
90
- versionHash: versionHash
91
- });
92
- case 28:
93
- _context.t5 = _context.sent;
94
- case 29:
95
- _context.t6 = _context.t5;
96
- _context.t7 = queryParams;
97
- _context.t8 = path;
98
- _context.t9 = {
99
- headers: _context.t6,
100
- queryParams: _context.t7,
101
- method: "GET",
102
- path: _context.t8
103
- };
104
- _context.next = 35;
105
- return _context.t4.RequestAll.call(_context.t4, _context.t9);
106
- case 35:
107
- responses = _context.sent;
108
- audits = [];
109
- _iterator = _createForOfIteratorHelper(responses);
110
- _context.prev = 38;
111
- _iterator.s();
112
- case 40:
113
- if ((_step = _iterator.n()).done) {
114
- _context.next = 57;
115
- break;
116
- }
117
- response = _step.value;
118
- url = new URL(response.url);
119
- audit = {
120
- host: url.hostname
121
- };
122
- if (response.ok) {
123
- _context.next = 49;
124
- break;
125
- }
126
- audit.error = response;
127
- audit.errorMessage = response.message || JSON.stringify(response);
128
- _context.next = 54;
129
- break;
130
- case 49:
131
- _context.next = 51;
132
- return client.utils.ResponseToJson(response);
133
- case 51:
134
- res = _context.sent;
135
- if (auditHash === undefined) {
136
- auditHash = res.audit_hash;
137
- } else if (res.audit_hash !== auditHash) {
138
- verified = false;
139
- } else if (verified === undefined) {
140
- verified = true;
141
- }
142
- audit.audit_hash = res.audit_hash;
143
- case 54:
144
- audits.push(audit);
145
- case 55:
146
- _context.next = 40;
147
- break;
148
- case 57:
149
- _context.next = 62;
150
- break;
151
- case 59:
152
- _context.prev = 59;
153
- _context.t10 = _context["catch"](38);
154
- _iterator.e(_context.t10);
155
- case 62:
156
- _context.prev = 62;
157
- _iterator.f();
158
- return _context.finish(62);
159
- case 65:
160
- verified = verified || false;
161
- return _context.abrupt("return", {
162
- verified: verified,
163
- salt: salt,
164
- samples: samples,
165
- audits: audits
166
- });
167
- case 67:
168
- case "end":
169
- return _context.stop();
170
- }
171
- }, _callee, null, [[38, 59, 62, 65]]);
172
- }))();
173
- }
174
- };
175
- module.exports = ContentObjectAudit;
@@ -1,281 +0,0 @@
1
- var _regeneratorRuntime = require("@babel/runtime/regenerator");
2
- var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
3
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
- var CBOR = require("cbor");
7
- var SJCL = require("sjcl");
8
- var MultiHash = require("multihashes");
9
- var DeepEqual = require("deep-equal");
10
- var Utils = require("./Utils");
11
- var ContentObjectVerification = {
12
- VerifyContentObject: function VerifyContentObject(_ref) {
13
- return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
14
- var client, libraryId, objectId, versionHash, response, partHash, qpartsResponse, partVerification, qmdHash, metadataPartHash, metadataPartResponse, metadataVerification, metadata, qstructHash, structPartHash, structPartResponse, structVerification;
15
- return _regeneratorRuntime.wrap(function _callee$(_context) {
16
- while (1) switch (_context.prev = _context.next) {
17
- case 0:
18
- client = _ref.client, libraryId = _ref.libraryId, objectId = _ref.objectId, versionHash = _ref.versionHash;
19
- response = {
20
- hash: versionHash
21
- };
22
- partHash = Utils.DecodeVersionHash(versionHash).partHash;
23
- _context.next = 5;
24
- return client.QParts({
25
- libraryId: libraryId,
26
- objectId: objectId,
27
- partHash: partHash,
28
- format: "arrayBuffer"
29
- }).then(function (response) {
30
- return Buffer.from(response);
31
- });
32
- case 5:
33
- qpartsResponse = _context.sent;
34
- partVerification = ContentObjectVerification._VerifyPart({
35
- partHash: partHash,
36
- qpartsResponse: qpartsResponse
37
- });
38
- if (partVerification.valid) {
39
- response.qref = {
40
- valid: true
41
- };
42
- } else {
43
- response.qref = {
44
- valid: false,
45
- error: partVerification.error.message
46
- };
47
- }
48
- response.qref.hash = partHash;
49
- if (!response.qref.valid) {
50
- _context.next = 32;
51
- break;
52
- }
53
- // Validate Metadata
54
- qmdHash = partVerification.cbor.QmdHash.value;
55
- metadataPartHash = "hqp_" + MultiHash.toB58String(qmdHash.slice(1, qmdHash.length));
56
- _context.next = 14;
57
- return client.QParts({
58
- libraryId: libraryId,
59
- objectId: objectId,
60
- partHash: metadataPartHash,
61
- format: "arrayBuffer"
62
- }).then(function (response) {
63
- return Buffer.from(response);
64
- });
65
- case 14:
66
- metadataPartResponse = _context.sent;
67
- metadataVerification = ContentObjectVerification._VerifyPart({
68
- partHash: metadataPartHash,
69
- qpartsResponse: metadataPartResponse
70
- });
71
- if (metadataVerification.valid) {
72
- response.qmd = {
73
- valid: true
74
- };
75
- } else {
76
- response.qmd = {
77
- valid: false,
78
- error: metadataVerification.error.message
79
- };
80
- }
81
- response.qmd.hash = metadataPartHash;
82
- if (!(response.qmd.valid && libraryId)) {
83
- _context.next = 23;
84
- break;
85
- }
86
- _context.next = 21;
87
- return client.ContentObjectMetadata({
88
- libraryId: libraryId,
89
- objectId: objectId,
90
- versionHash: partHash.replace("hqp_", "hq__")
91
- });
92
- case 21:
93
- metadata = _context.sent;
94
- response.qmd.check = ContentObjectVerification._VerifyMetadata({
95
- metadataCbor: metadataVerification.cbor,
96
- metadata: metadata
97
- });
98
- case 23:
99
- // Validate Qstruct
100
- qstructHash = partVerification.cbor.QstructHash.value;
101
- structPartHash = "hqp_" + MultiHash.toB58String(qstructHash.slice(1, qstructHash.length));
102
- _context.next = 27;
103
- return client.QParts({
104
- libraryId: libraryId,
105
- objectId: objectId,
106
- partHash: structPartHash,
107
- format: "arrayBuffer"
108
- }).then(function (response) {
109
- return Buffer.from(response);
110
- });
111
- case 27:
112
- structPartResponse = _context.sent;
113
- structVerification = ContentObjectVerification._VerifyPart({
114
- partHash: structPartHash,
115
- qpartsResponse: structPartResponse
116
- });
117
- if (structVerification.valid) {
118
- response.qstruct = {
119
- valid: true
120
- };
121
- } else {
122
- response.qstruct = {
123
- valid: false,
124
- error: structVerification.error.message
125
- };
126
- }
127
- response.qstruct.hash = structPartHash;
128
- if (response.qstruct.valid) {
129
- response.qstruct.parts = ContentObjectVerification._FormatQStruct(structVerification.cbor.Parts);
130
- }
131
- case 32:
132
- response.valid = response.qref.valid && response.qmd.valid && response.qstruct.valid && (!response.qmd.check || response.qmd.check.valid);
133
- return _context.abrupt("return", response);
134
- case 34:
135
- case "end":
136
- return _context.stop();
137
- }
138
- }, _callee);
139
- }))();
140
- },
141
- // Content verification methods //
142
- _FormatQStruct: function _FormatQStruct(structParts) {
143
- if (!structParts) {
144
- return [];
145
- }
146
- return structParts.map(function (structPart) {
147
- return {
148
- hash: "hqp_" + MultiHash.toB58String(structPart.Hash.value.slice(1, structPart.Hash.length)),
149
- size: structPart.Size
150
- };
151
- });
152
- },
153
- _Hash: function _Hash(thing) {
154
- function fromBits(arr) {
155
- var out = [],
156
- bl = SJCL.bitArray.bitLength(arr),
157
- i,
158
- tmp;
159
- for (i = 0; i < bl / 8; i++) {
160
- if ((i & 3) === 0) {
161
- tmp = arr[i / 4];
162
- }
163
- out.push(tmp >>> 24);
164
- tmp <<= 8;
165
- }
166
- return out;
167
- }
168
- function toBits(bytes) {
169
- var out = [],
170
- i,
171
- tmp = 0;
172
- for (i = 0; i < bytes.length; i++) {
173
- tmp = tmp << 8 | bytes[i];
174
- if ((i & 3) === 3) {
175
- out.push(tmp);
176
- tmp = 0;
177
- }
178
- }
179
- if (i & 3) {
180
- out.push(SJCL.bitArray.partial(8 * (i & 3), tmp));
181
- }
182
- return out;
183
- }
184
- var digest = SJCL.hash.sha256.hash(toBits(thing));
185
- var bytes = fromBits(digest);
186
- var out = Buffer.from(bytes, "binary");
187
- return MultiHash.toB58String(MultiHash.encode(out, "sha2-256"));
188
- },
189
- _ParseCBOR: function _ParseCBOR(cborResponse) {
190
- var buffer = cborResponse.slice(7, cborResponse.length);
191
- var hex = buffer.toString("hex");
192
- return CBOR.decodeFirstSync(hex);
193
- },
194
- _VerifyPart: function _VerifyPart(_ref2) {
195
- var partHash = _ref2.partHash,
196
- qpartsResponse = _ref2.qpartsResponse;
197
- try {
198
- if (ContentObjectVerification._Hash(qpartsResponse) !== partHash.replace("hqp_", "")) {
199
- throw Error("Hashes do not match");
200
- }
201
- var cbor = ContentObjectVerification._ParseCBOR(qpartsResponse);
202
- return {
203
- valid: true,
204
- cbor: cbor
205
- };
206
- } catch (error) {
207
- return {
208
- valid: false,
209
- error: error
210
- };
211
- }
212
- },
213
- _VerifyMetadata: function _VerifyMetadata(_ref3) {
214
- var metadataCbor = _ref3.metadataCbor,
215
- metadata = _ref3.metadata;
216
- if (!metadataCbor) {
217
- metadataCbor = {};
218
- }
219
- if (!metadata) {
220
- metadata = {};
221
- }
222
- var response = {
223
- valid: true,
224
- invalidValues: []
225
- };
226
- var cborKeys = Object.keys(metadataCbor);
227
- var metadataKeys = Object.keys(metadata);
228
-
229
- // Find any difference between top level keys
230
- var differentKeys = cborKeys.filter(function (x) {
231
- return !metadataKeys.includes(x);
232
- }).concat(metadataKeys.filter(function (x) {
233
- return !cborKeys.includes(x);
234
- }));
235
- var _iterator = _createForOfIteratorHelper(differentKeys),
236
- _step;
237
- try {
238
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
239
- var key = _step.value;
240
- var cborValue = metadataCbor[key];
241
- var metadataValue = metadata[key];
242
- response.invalidValues.push({
243
- key: key,
244
- cborValue: cborValue,
245
- metadataValue: metadataValue
246
- });
247
- }
248
-
249
- // Deep comparison of up to 5 keys
250
- } catch (err) {
251
- _iterator.e(err);
252
- } finally {
253
- _iterator.f();
254
- }
255
- var _iterator2 = _createForOfIteratorHelper(Object.keys(metadataCbor).slice(0, 5)),
256
- _step2;
257
- try {
258
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
259
- var fieldToValidate = _step2.value;
260
- var _cborValue = metadataCbor[fieldToValidate];
261
- var _metadataValue = metadata[fieldToValidate];
262
- if (!DeepEqual(_cborValue, _metadataValue)) {
263
- response.invalidValues.push({
264
- key: fieldToValidate,
265
- cborValue: _cborValue,
266
- metadataValue: _metadataValue
267
- });
268
- }
269
- }
270
- } catch (err) {
271
- _iterator2.e(err);
272
- } finally {
273
- _iterator2.f();
274
- }
275
- if (response.invalidValues.length !== 0) {
276
- response.valid = false;
277
- }
278
- return response;
279
- }
280
- };
281
- module.exports = ContentObjectVerification;