@eluvio/elv-client-js 4.0.7 → 4.0.9
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 +10 -11
- package/dist/ElvClient-node-min.js +10 -11
- package/dist/ElvFrameClient-min.js +10 -11
- package/dist/ElvPermissionsClient-min.js +9 -10
- package/dist/ElvWalletClient-min.js +10 -11
- package/dist/ElvWalletClient-node-min.js +9 -10
- package/dist/src/AuthorizationClient.js +2069 -1548
- package/dist/src/ContentObjectVerification.js +185 -134
- package/dist/src/Crypto.js +323 -226
- package/dist/src/ElvClient.js +1118 -824
- package/dist/src/ElvWallet.js +106 -64
- package/dist/src/EthClient.js +974 -719
- package/dist/src/FrameClient.js +318 -222
- package/dist/src/HttpClient.js +154 -112
- package/dist/src/Id.js +6 -1
- package/dist/src/LogMessage.js +8 -4
- package/dist/src/PermissionsClient.js +1271 -973
- package/dist/src/RemoteSigner.js +232 -161
- package/dist/src/UserProfileClient.js +1038 -781
- package/dist/src/Utils.js +302 -160
- package/dist/src/Validation.js +17 -2
- package/dist/src/client/ABRPublishing.js +942 -772
- package/dist/src/client/AccessGroups.js +1095 -849
- package/dist/src/client/ContentAccess.js +4198 -3272
- package/dist/src/client/ContentManagement.js +2284 -1812
- package/dist/src/client/Contracts.js +614 -468
- package/dist/src/client/Files.js +1831 -1491
- package/dist/src/client/NFT.js +116 -94
- package/dist/src/client/NTP.js +425 -326
- package/dist/src/index.js +5 -2
- package/dist/src/walletClient/ClientMethods.js +1766 -1350
- package/dist/src/walletClient/Configuration.js +2 -4
- package/dist/src/walletClient/Notifications.js +127 -98
- package/dist/src/walletClient/Profile.js +246 -184
- package/dist/src/walletClient/Utils.js +124 -78
- package/dist/src/walletClient/index.js +1498 -1169
- package/package.json +1 -1
- package/src/Crypto.js +2 -2
- package/src/ElvClient.js +2 -2
- package/src/Utils.js +1 -1
- package/src/client/ContentAccess.js +27 -10
- package/src/client/Files.js +1 -1
- package/src/walletClient/ClientMethods.js +18 -10
- package/src/walletClient/Utils.js +2 -2
- package/src/walletClient/index.js +7 -2
|
@@ -1,139 +1,169 @@
|
|
|
1
1
|
var _regeneratorRuntime = require("@babel/runtime/regenerator");
|
|
2
|
+
|
|
2
3
|
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
|
4
|
+
|
|
3
5
|
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
|
+
|
|
4
7
|
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
|
-
|
|
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
|
+
|
|
6
11
|
var CBOR = require("cbor");
|
|
12
|
+
|
|
7
13
|
var SJCL = require("sjcl");
|
|
14
|
+
|
|
8
15
|
var MultiHash = require("multihashes");
|
|
16
|
+
|
|
9
17
|
var DeepEqual = require("deep-equal");
|
|
18
|
+
|
|
10
19
|
var Utils = require("./Utils");
|
|
20
|
+
|
|
11
21
|
var ContentObjectVerification = {
|
|
12
22
|
VerifyContentObject: function VerifyContentObject(_ref) {
|
|
13
23
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
14
24
|
var client, libraryId, objectId, versionHash, response, partHash, qpartsResponse, partVerification, qmdHash, metadataPartHash, metadataPartResponse, metadataVerification, metadata, qstructHash, structPartHash, structPartResponse, structVerification;
|
|
15
25
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
16
|
-
while (1)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
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
|
|
125
32
|
};
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
+
}
|
|
137
167
|
}
|
|
138
168
|
}, _callee);
|
|
139
169
|
}))();
|
|
@@ -143,6 +173,7 @@ var ContentObjectVerification = {
|
|
|
143
173
|
if (!structParts) {
|
|
144
174
|
return [];
|
|
145
175
|
}
|
|
176
|
+
|
|
146
177
|
return structParts.map(function (structPart) {
|
|
147
178
|
return {
|
|
148
179
|
hash: "hqp_" + MultiHash.toB58String(structPart.Hash.value.slice(1, structPart.Hash.length)),
|
|
@@ -153,34 +184,43 @@ var ContentObjectVerification = {
|
|
|
153
184
|
_Hash: function _Hash(thing) {
|
|
154
185
|
function fromBits(arr) {
|
|
155
186
|
var out = [],
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
187
|
+
bl = SJCL.bitArray.bitLength(arr),
|
|
188
|
+
i,
|
|
189
|
+
tmp;
|
|
190
|
+
|
|
159
191
|
for (i = 0; i < bl / 8; i++) {
|
|
160
192
|
if ((i & 3) === 0) {
|
|
161
193
|
tmp = arr[i / 4];
|
|
162
194
|
}
|
|
195
|
+
|
|
163
196
|
out.push(tmp >>> 24);
|
|
164
197
|
tmp <<= 8;
|
|
165
198
|
}
|
|
199
|
+
|
|
166
200
|
return out;
|
|
167
201
|
}
|
|
202
|
+
|
|
168
203
|
function toBits(bytes) {
|
|
169
204
|
var out = [],
|
|
170
|
-
|
|
171
|
-
|
|
205
|
+
i,
|
|
206
|
+
tmp = 0;
|
|
207
|
+
|
|
172
208
|
for (i = 0; i < bytes.length; i++) {
|
|
173
209
|
tmp = tmp << 8 | bytes[i];
|
|
210
|
+
|
|
174
211
|
if ((i & 3) === 3) {
|
|
175
212
|
out.push(tmp);
|
|
176
213
|
tmp = 0;
|
|
177
214
|
}
|
|
178
215
|
}
|
|
216
|
+
|
|
179
217
|
if (i & 3) {
|
|
180
218
|
out.push(SJCL.bitArray.partial(8 * (i & 3), tmp));
|
|
181
219
|
}
|
|
220
|
+
|
|
182
221
|
return out;
|
|
183
222
|
}
|
|
223
|
+
|
|
184
224
|
var digest = SJCL.hash.sha256.hash(toBits(thing));
|
|
185
225
|
var bytes = fromBits(digest);
|
|
186
226
|
var out = Buffer.from(bytes, "binary");
|
|
@@ -193,12 +233,15 @@ var ContentObjectVerification = {
|
|
|
193
233
|
},
|
|
194
234
|
_VerifyPart: function _VerifyPart(_ref2) {
|
|
195
235
|
var partHash = _ref2.partHash,
|
|
196
|
-
|
|
236
|
+
qpartsResponse = _ref2.qpartsResponse;
|
|
237
|
+
|
|
197
238
|
try {
|
|
198
239
|
if (ContentObjectVerification._Hash(qpartsResponse) !== partHash.replace("hqp_", "")) {
|
|
199
240
|
throw Error("Hashes do not match");
|
|
200
241
|
}
|
|
242
|
+
|
|
201
243
|
var cbor = ContentObjectVerification._ParseCBOR(qpartsResponse);
|
|
244
|
+
|
|
202
245
|
return {
|
|
203
246
|
valid: true,
|
|
204
247
|
cbor: cbor
|
|
@@ -212,28 +255,32 @@ var ContentObjectVerification = {
|
|
|
212
255
|
},
|
|
213
256
|
_VerifyMetadata: function _VerifyMetadata(_ref3) {
|
|
214
257
|
var metadataCbor = _ref3.metadataCbor,
|
|
215
|
-
|
|
258
|
+
metadata = _ref3.metadata;
|
|
259
|
+
|
|
216
260
|
if (!metadataCbor) {
|
|
217
261
|
metadataCbor = {};
|
|
218
262
|
}
|
|
263
|
+
|
|
219
264
|
if (!metadata) {
|
|
220
265
|
metadata = {};
|
|
221
266
|
}
|
|
267
|
+
|
|
222
268
|
var response = {
|
|
223
269
|
valid: true,
|
|
224
270
|
invalidValues: []
|
|
225
271
|
};
|
|
226
272
|
var cborKeys = Object.keys(metadataCbor);
|
|
227
|
-
var metadataKeys = Object.keys(metadata);
|
|
273
|
+
var metadataKeys = Object.keys(metadata); // Find any difference between top level keys
|
|
228
274
|
|
|
229
|
-
// Find any difference between top level keys
|
|
230
275
|
var differentKeys = cborKeys.filter(function (x) {
|
|
231
276
|
return !metadataKeys.includes(x);
|
|
232
277
|
}).concat(metadataKeys.filter(function (x) {
|
|
233
278
|
return !cborKeys.includes(x);
|
|
234
279
|
}));
|
|
280
|
+
|
|
235
281
|
var _iterator = _createForOfIteratorHelper(differentKeys),
|
|
236
|
-
|
|
282
|
+
_step;
|
|
283
|
+
|
|
237
284
|
try {
|
|
238
285
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
239
286
|
var key = _step.value;
|
|
@@ -244,21 +291,23 @@ var ContentObjectVerification = {
|
|
|
244
291
|
cborValue: cborValue,
|
|
245
292
|
metadataValue: metadataValue
|
|
246
293
|
});
|
|
247
|
-
}
|
|
294
|
+
} // Deep comparison of up to 5 keys
|
|
248
295
|
|
|
249
|
-
// Deep comparison of up to 5 keys
|
|
250
296
|
} catch (err) {
|
|
251
297
|
_iterator.e(err);
|
|
252
298
|
} finally {
|
|
253
299
|
_iterator.f();
|
|
254
300
|
}
|
|
301
|
+
|
|
255
302
|
var _iterator2 = _createForOfIteratorHelper(Object.keys(metadataCbor).slice(0, 5)),
|
|
256
|
-
|
|
303
|
+
_step2;
|
|
304
|
+
|
|
257
305
|
try {
|
|
258
306
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
259
307
|
var fieldToValidate = _step2.value;
|
|
260
308
|
var _cborValue = metadataCbor[fieldToValidate];
|
|
261
309
|
var _metadataValue = metadata[fieldToValidate];
|
|
310
|
+
|
|
262
311
|
if (!DeepEqual(_cborValue, _metadataValue)) {
|
|
263
312
|
response.invalidValues.push({
|
|
264
313
|
key: fieldToValidate,
|
|
@@ -272,9 +321,11 @@ var ContentObjectVerification = {
|
|
|
272
321
|
} finally {
|
|
273
322
|
_iterator2.f();
|
|
274
323
|
}
|
|
324
|
+
|
|
275
325
|
if (response.invalidValues.length !== 0) {
|
|
276
326
|
response.valid = false;
|
|
277
327
|
}
|
|
328
|
+
|
|
278
329
|
return response;
|
|
279
330
|
}
|
|
280
331
|
};
|