@eluvio/elv-client-js 4.0.5 → 4.0.7

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 (43) hide show
  1. package/dist/ElvClient-min.js +12 -11
  2. package/dist/ElvClient-node-min.js +12 -11
  3. package/dist/ElvFrameClient-min.js +12 -11
  4. package/dist/ElvPermissionsClient-min.js +10 -9
  5. package/dist/ElvWalletClient-min.js +12 -11
  6. package/dist/ElvWalletClient-node-min.js +11 -10
  7. package/dist/src/AuthorizationClient.js +1556 -2077
  8. package/dist/src/ContentObjectVerification.js +134 -185
  9. package/dist/src/Crypto.js +225 -322
  10. package/dist/src/ElvClient.js +823 -1117
  11. package/dist/src/ElvWallet.js +64 -106
  12. package/dist/src/EthClient.js +719 -974
  13. package/dist/src/FrameClient.js +222 -318
  14. package/dist/src/HttpClient.js +112 -154
  15. package/dist/src/Id.js +1 -6
  16. package/dist/src/LogMessage.js +4 -8
  17. package/dist/src/PermissionsClient.js +973 -1271
  18. package/dist/src/RemoteSigner.js +161 -232
  19. package/dist/src/UserProfileClient.js +781 -1038
  20. package/dist/src/Utils.js +160 -302
  21. package/dist/src/Validation.js +2 -17
  22. package/dist/src/client/ABRPublishing.js +772 -942
  23. package/dist/src/client/AccessGroups.js +849 -1095
  24. package/dist/src/client/ContentAccess.js +3263 -4132
  25. package/dist/src/client/ContentManagement.js +1811 -2283
  26. package/dist/src/client/Contracts.js +468 -614
  27. package/dist/src/client/Files.js +1505 -1845
  28. package/dist/src/client/NFT.js +94 -116
  29. package/dist/src/client/NTP.js +326 -425
  30. package/dist/src/index.js +2 -5
  31. package/dist/src/walletClient/ClientMethods.js +1348 -1735
  32. package/dist/src/walletClient/Configuration.js +4 -2
  33. package/dist/src/walletClient/Notifications.js +98 -127
  34. package/dist/src/walletClient/Profile.js +184 -246
  35. package/dist/src/walletClient/Utils.js +76 -122
  36. package/dist/src/walletClient/index.js +1168 -1493
  37. package/package.json +2 -2
  38. package/src/Crypto.js +1 -1
  39. package/src/ElvClient.js +1 -3
  40. package/src/Utils.js +1 -1
  41. package/testScripts/Test.js +0 -1
  42. package/utilities/NFTIngest.js +527 -0
  43. package/utilities/lib/concerns/LocalFile.js +2 -1
@@ -1,169 +1,139 @@
1
1
  var _regeneratorRuntime = require("@babel/runtime/regenerator");
2
-
3
2
  var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
4
-
5
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; } } }; }
6
-
7
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); }
8
-
9
- 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; }
10
-
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; }
11
6
  var CBOR = require("cbor");
12
-
13
7
  var SJCL = require("sjcl");
14
-
15
8
  var MultiHash = require("multihashes");
16
-
17
9
  var DeepEqual = require("deep-equal");
18
-
19
10
  var Utils = require("./Utils");
20
-
21
11
  var ContentObjectVerification = {
22
12
  VerifyContentObject: function VerifyContentObject(_ref) {
23
13
  return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
24
14
  var client, libraryId, objectId, versionHash, response, partHash, qpartsResponse, partVerification, qmdHash, metadataPartHash, metadataPartResponse, metadataVerification, metadata, qstructHash, structPartHash, structPartResponse, structVerification;
25
15
  return _regeneratorRuntime.wrap(function _callee$(_context) {
26
- while (1) {
27
- switch (_context.prev = _context.next) {
28
- case 0:
29
- client = _ref.client, libraryId = _ref.libraryId, objectId = _ref.objectId, versionHash = _ref.versionHash;
30
- response = {
31
- hash: versionHash
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
32
41
  };
33
- partHash = Utils.DecodeVersionHash(versionHash).partHash;
34
- _context.next = 5;
35
- return client.QParts({
36
- libraryId: libraryId,
37
- objectId: objectId,
38
- partHash: partHash,
39
- format: "arrayBuffer"
40
- }).then(function (response) {
41
- return Buffer.from(response);
42
- });
43
-
44
- case 5:
45
- qpartsResponse = _context.sent;
46
- partVerification = ContentObjectVerification._VerifyPart({
47
- partHash: partHash,
48
- qpartsResponse: qpartsResponse
49
- });
50
-
51
- if (partVerification.valid) {
52
- response.qref = {
53
- valid: true
54
- };
55
- } else {
56
- response.qref = {
57
- valid: false,
58
- error: partVerification.error.message
59
- };
60
- }
61
-
62
- response.qref.hash = partHash;
63
-
64
- if (!response.qref.valid) {
65
- _context.next = 32;
66
- break;
67
- }
68
-
69
- // Validate Metadata
70
- qmdHash = partVerification.cbor.QmdHash.value;
71
- metadataPartHash = "hqp_" + MultiHash.toB58String(qmdHash.slice(1, qmdHash.length));
72
- _context.next = 14;
73
- return client.QParts({
74
- libraryId: libraryId,
75
- objectId: objectId,
76
- partHash: metadataPartHash,
77
- format: "arrayBuffer"
78
- }).then(function (response) {
79
- return Buffer.from(response);
80
- });
81
-
82
- case 14:
83
- metadataPartResponse = _context.sent;
84
- metadataVerification = ContentObjectVerification._VerifyPart({
85
- partHash: metadataPartHash,
86
- qpartsResponse: metadataPartResponse
87
- });
88
-
89
- if (metadataVerification.valid) {
90
- response.qmd = {
91
- valid: true
92
- };
93
- } else {
94
- response.qmd = {
95
- valid: false,
96
- error: metadataVerification.error.message
97
- };
98
- }
99
-
100
- response.qmd.hash = metadataPartHash;
101
-
102
- if (!(response.qmd.valid && libraryId)) {
103
- _context.next = 23;
104
- break;
105
- }
106
-
107
- _context.next = 21;
108
- return client.ContentObjectMetadata({
109
- libraryId: libraryId,
110
- objectId: objectId,
111
- versionHash: partHash.replace("hqp_", "hq__")
112
- });
113
-
114
- case 21:
115
- metadata = _context.sent;
116
- response.qmd.check = ContentObjectVerification._VerifyMetadata({
117
- metadataCbor: metadataVerification.cbor,
118
- metadata: metadata
119
- });
120
-
121
- case 23:
122
- // Validate Qstruct
123
- qstructHash = partVerification.cbor.QstructHash.value;
124
- structPartHash = "hqp_" + MultiHash.toB58String(qstructHash.slice(1, qstructHash.length));
125
- _context.next = 27;
126
- return client.QParts({
127
- libraryId: libraryId,
128
- objectId: objectId,
129
- partHash: structPartHash,
130
- format: "arrayBuffer"
131
- }).then(function (response) {
132
- return Buffer.from(response);
133
- });
134
-
135
- case 27:
136
- structPartResponse = _context.sent;
137
- structVerification = ContentObjectVerification._VerifyPart({
138
- partHash: structPartHash,
139
- qpartsResponse: structPartResponse
140
- });
141
-
142
- if (structVerification.valid) {
143
- response.qstruct = {
144
- valid: true
145
- };
146
- } else {
147
- response.qstruct = {
148
- valid: false,
149
- error: structVerification.error.message
150
- };
151
- }
152
-
153
- response.qstruct.hash = structPartHash;
154
-
155
- if (response.qstruct.valid) {
156
- response.qstruct.parts = ContentObjectVerification._FormatQStruct(structVerification.cbor.Parts);
157
- }
158
-
159
- case 32:
160
- response.valid = response.qref.valid && response.qmd.valid && response.qstruct.valid && (!response.qmd.check || response.qmd.check.valid);
161
- return _context.abrupt("return", response);
162
-
163
- case 34:
164
- case "end":
165
- return _context.stop();
166
- }
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();
167
137
  }
168
138
  }, _callee);
169
139
  }))();
@@ -173,7 +143,6 @@ var ContentObjectVerification = {
173
143
  if (!structParts) {
174
144
  return [];
175
145
  }
176
-
177
146
  return structParts.map(function (structPart) {
178
147
  return {
179
148
  hash: "hqp_" + MultiHash.toB58String(structPart.Hash.value.slice(1, structPart.Hash.length)),
@@ -184,43 +153,34 @@ var ContentObjectVerification = {
184
153
  _Hash: function _Hash(thing) {
185
154
  function fromBits(arr) {
186
155
  var out = [],
187
- bl = SJCL.bitArray.bitLength(arr),
188
- i,
189
- tmp;
190
-
156
+ bl = SJCL.bitArray.bitLength(arr),
157
+ i,
158
+ tmp;
191
159
  for (i = 0; i < bl / 8; i++) {
192
160
  if ((i & 3) === 0) {
193
161
  tmp = arr[i / 4];
194
162
  }
195
-
196
163
  out.push(tmp >>> 24);
197
164
  tmp <<= 8;
198
165
  }
199
-
200
166
  return out;
201
167
  }
202
-
203
168
  function toBits(bytes) {
204
169
  var out = [],
205
- i,
206
- tmp = 0;
207
-
170
+ i,
171
+ tmp = 0;
208
172
  for (i = 0; i < bytes.length; i++) {
209
173
  tmp = tmp << 8 | bytes[i];
210
-
211
174
  if ((i & 3) === 3) {
212
175
  out.push(tmp);
213
176
  tmp = 0;
214
177
  }
215
178
  }
216
-
217
179
  if (i & 3) {
218
180
  out.push(SJCL.bitArray.partial(8 * (i & 3), tmp));
219
181
  }
220
-
221
182
  return out;
222
183
  }
223
-
224
184
  var digest = SJCL.hash.sha256.hash(toBits(thing));
225
185
  var bytes = fromBits(digest);
226
186
  var out = Buffer.from(bytes, "binary");
@@ -233,15 +193,12 @@ var ContentObjectVerification = {
233
193
  },
234
194
  _VerifyPart: function _VerifyPart(_ref2) {
235
195
  var partHash = _ref2.partHash,
236
- qpartsResponse = _ref2.qpartsResponse;
237
-
196
+ qpartsResponse = _ref2.qpartsResponse;
238
197
  try {
239
198
  if (ContentObjectVerification._Hash(qpartsResponse) !== partHash.replace("hqp_", "")) {
240
199
  throw Error("Hashes do not match");
241
200
  }
242
-
243
201
  var cbor = ContentObjectVerification._ParseCBOR(qpartsResponse);
244
-
245
202
  return {
246
203
  valid: true,
247
204
  cbor: cbor
@@ -255,32 +212,28 @@ var ContentObjectVerification = {
255
212
  },
256
213
  _VerifyMetadata: function _VerifyMetadata(_ref3) {
257
214
  var metadataCbor = _ref3.metadataCbor,
258
- metadata = _ref3.metadata;
259
-
215
+ metadata = _ref3.metadata;
260
216
  if (!metadataCbor) {
261
217
  metadataCbor = {};
262
218
  }
263
-
264
219
  if (!metadata) {
265
220
  metadata = {};
266
221
  }
267
-
268
222
  var response = {
269
223
  valid: true,
270
224
  invalidValues: []
271
225
  };
272
226
  var cborKeys = Object.keys(metadataCbor);
273
- var metadataKeys = Object.keys(metadata); // Find any difference between top level keys
227
+ var metadataKeys = Object.keys(metadata);
274
228
 
229
+ // Find any difference between top level keys
275
230
  var differentKeys = cborKeys.filter(function (x) {
276
231
  return !metadataKeys.includes(x);
277
232
  }).concat(metadataKeys.filter(function (x) {
278
233
  return !cborKeys.includes(x);
279
234
  }));
280
-
281
235
  var _iterator = _createForOfIteratorHelper(differentKeys),
282
- _step;
283
-
236
+ _step;
284
237
  try {
285
238
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
286
239
  var key = _step.value;
@@ -291,23 +244,21 @@ var ContentObjectVerification = {
291
244
  cborValue: cborValue,
292
245
  metadataValue: metadataValue
293
246
  });
294
- } // Deep comparison of up to 5 keys
247
+ }
295
248
 
249
+ // Deep comparison of up to 5 keys
296
250
  } catch (err) {
297
251
  _iterator.e(err);
298
252
  } finally {
299
253
  _iterator.f();
300
254
  }
301
-
302
255
  var _iterator2 = _createForOfIteratorHelper(Object.keys(metadataCbor).slice(0, 5)),
303
- _step2;
304
-
256
+ _step2;
305
257
  try {
306
258
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
307
259
  var fieldToValidate = _step2.value;
308
260
  var _cborValue = metadataCbor[fieldToValidate];
309
261
  var _metadataValue = metadata[fieldToValidate];
310
-
311
262
  if (!DeepEqual(_cborValue, _metadataValue)) {
312
263
  response.invalidValues.push({
313
264
  key: fieldToValidate,
@@ -321,11 +272,9 @@ var ContentObjectVerification = {
321
272
  } finally {
322
273
  _iterator2.f();
323
274
  }
324
-
325
275
  if (response.invalidValues.length !== 0) {
326
276
  response.valid = false;
327
277
  }
328
-
329
278
  return response;
330
279
  }
331
280
  };