@eluvio/elv-client-js 4.2.4 → 4.2.6
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 +1 -1
- package/dist/ElvClient-node-min.js +1 -1
- package/dist/ElvFrameClient-min.js +1 -1
- package/dist/ElvPermissionsClient-min.js +1 -1
- package/dist/ElvWalletClient-min.js +1 -1
- package/dist/ElvWalletClient-node-min.js +1 -1
- package/dist/src/AuthorizationClient.js +710 -709
- package/dist/src/ContentObjectAudit.js +56 -56
- package/dist/src/ContentObjectVerification.js +281 -0
- package/dist/src/Crypto.js +85 -85
- package/dist/src/ElvClient.js +499 -529
- package/dist/src/ElvWallet.js +28 -30
- package/dist/src/EthClient.js +311 -311
- package/dist/src/FrameClient.js +64 -63
- package/dist/src/HttpClient.js +60 -60
- package/dist/src/Id.js +2 -1
- package/dist/src/PermissionsClient.js +487 -499
- package/dist/src/RemoteSigner.js +83 -82
- package/dist/src/UserProfileClient.js +374 -392
- package/dist/src/Utils.js +66 -69
- package/dist/src/Validation.js +10 -10
- package/dist/src/client/ABRPublishing.js +238 -238
- package/dist/src/client/AccessGroups.js +474 -477
- package/dist/src/client/ContentAccess.js +1709 -1705
- package/dist/src/client/ContentManagement.js +871 -871
- package/dist/src/client/Contracts.js +578 -575
- package/dist/src/client/Files.js +684 -700
- package/dist/src/client/LiveConf.js +3 -1
- package/dist/src/client/LiveStream.js +693 -694
- package/dist/src/client/NFT.js +14 -14
- package/dist/src/client/NTP.js +84 -84
- package/dist/src/client/Shares.js +60 -53
- package/dist/src/walletClient/ClientMethods.js +951 -977
- package/dist/src/walletClient/Notifications.js +14 -14
- package/dist/src/walletClient/Profile.js +66 -66
- package/dist/src/walletClient/Utils.js +15 -15
- package/dist/src/walletClient/index.js +562 -572
- package/package.json +1 -1
- package/src/Utils.js +1 -4
- package/src/client/ABRPublishing.js +1 -1
- package/src/client/LiveStream.js +77 -50
package/package.json
CHANGED
package/src/Utils.js
CHANGED
|
@@ -777,10 +777,7 @@ const Utils = {
|
|
|
777
777
|
/^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);
|
|
778
778
|
|
|
779
779
|
const defaultSettings = {
|
|
780
|
-
"
|
|
781
|
-
"nudgeOffset": 0.2,
|
|
782
|
-
"nudgeMaxRetry": 12,
|
|
783
|
-
"highBufferWatchdogPeriod": 1
|
|
780
|
+
"backBufferLength": 90
|
|
784
781
|
};
|
|
785
782
|
|
|
786
783
|
if(!isSafari && ["ull", "ultraLowLatency"].includes(profile)) {
|
|
@@ -323,7 +323,7 @@ exports.CreateABRMezzanine = async function({
|
|
|
323
323
|
// determine master object id if a master write token was passed in
|
|
324
324
|
ValidateWriteToken(masterWriteToken);
|
|
325
325
|
masterObjectId = this.utils.DecodeWriteToken(masterWriteToken).objectId;
|
|
326
|
-
masterLibId = await client.ContentObjectLibraryId({masterObjectId});
|
|
326
|
+
masterLibId = await client.ContentObjectLibraryId({objectId: masterObjectId});
|
|
327
327
|
}
|
|
328
328
|
|
|
329
329
|
// if pre-existing mez object id passed in, validate
|
package/src/client/LiveStream.js
CHANGED
|
@@ -69,6 +69,7 @@ const CueInfo = async ({eventId, status}) => {
|
|
|
69
69
|
* @param {Object} client - The client object
|
|
70
70
|
* @param {string} libraryId - ID of the library for the new live stream object
|
|
71
71
|
* @param {string} objectId - ID of the new live stream object
|
|
72
|
+
* @param {string=} writeToken - Write token of the draft
|
|
72
73
|
* @param {string=} typeAbrMaster - Content type hash
|
|
73
74
|
* @param {string=} typeLiveStream - Content type hash
|
|
74
75
|
* @param {string} streamUrl - Live source URL
|
|
@@ -93,6 +94,7 @@ const StreamGenerateOffering = async({
|
|
|
93
94
|
client,
|
|
94
95
|
libraryId,
|
|
95
96
|
objectId,
|
|
97
|
+
writeToken,
|
|
96
98
|
typeAbrMaster,
|
|
97
99
|
typeLiveStream,
|
|
98
100
|
streamUrl,
|
|
@@ -109,7 +111,8 @@ const StreamGenerateOffering = async({
|
|
|
109
111
|
vWidth,
|
|
110
112
|
vDisplayAspectRatio,
|
|
111
113
|
vFrameRate,
|
|
112
|
-
vTimeBase
|
|
114
|
+
vTimeBase,
|
|
115
|
+
finalize=true
|
|
113
116
|
}) => {
|
|
114
117
|
// compute duration_ts
|
|
115
118
|
const DUMMY_DURATION = 1001; // should result in integer duration_ts values for both audio and video
|
|
@@ -232,27 +235,29 @@ const StreamGenerateOffering = async({
|
|
|
232
235
|
// construct /production_master
|
|
233
236
|
const production_master = {sources, variants};
|
|
234
237
|
|
|
238
|
+
const existingWriteToken = !!writeToken;
|
|
239
|
+
|
|
235
240
|
// get existing metadata
|
|
236
241
|
console.log("Retrieving current metadata...");
|
|
237
242
|
let metadata = await client.ContentObjectMetadata({
|
|
238
243
|
libraryId,
|
|
239
|
-
objectId
|
|
244
|
+
objectId,
|
|
245
|
+
writeToken
|
|
240
246
|
});
|
|
241
247
|
|
|
242
248
|
// add /production_master to metadata
|
|
243
249
|
metadata.production_master = production_master;
|
|
244
250
|
|
|
245
251
|
// write back to object
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
console.log(`New write token: ${writeToken}`);
|
|
252
|
+
if(!writeToken) {
|
|
253
|
+
({writeToken} = await client.EditContentObject({
|
|
254
|
+
libraryId,
|
|
255
|
+
objectId,
|
|
256
|
+
options: {
|
|
257
|
+
type: typeAbrMaster
|
|
258
|
+
}
|
|
259
|
+
}));
|
|
260
|
+
}
|
|
256
261
|
|
|
257
262
|
console.log("Writing back metadata with /production_master added...");
|
|
258
263
|
await client.ReplaceMetadata({
|
|
@@ -262,20 +267,23 @@ const StreamGenerateOffering = async({
|
|
|
262
267
|
writeToken
|
|
263
268
|
});
|
|
264
269
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
270
|
+
let finalizeResponse, masterVersionHash;
|
|
271
|
+
if(!existingWriteToken) {
|
|
272
|
+
finalizeResponse = await client.FinalizeContentObject({
|
|
273
|
+
libraryId,
|
|
274
|
+
objectId,
|
|
275
|
+
writeToken
|
|
276
|
+
});
|
|
277
|
+
masterVersionHash = finalizeResponse.hash;
|
|
278
|
+
}
|
|
273
279
|
|
|
274
280
|
// Generate offering
|
|
275
281
|
const createResponse = await client.CreateABRMezzanine({
|
|
276
282
|
libraryId,
|
|
277
283
|
objectId,
|
|
278
|
-
masterVersionHash,
|
|
284
|
+
masterVersionHash: existingWriteToken ? undefined : masterVersionHash,
|
|
285
|
+
masterWriteToken: existingWriteToken ? writeToken : undefined,
|
|
286
|
+
writeToken: existingWriteToken ? writeToken : undefined,
|
|
279
287
|
variant: "default",
|
|
280
288
|
offeringKey: "default",
|
|
281
289
|
abrProfile
|
|
@@ -292,13 +300,14 @@ const StreamGenerateOffering = async({
|
|
|
292
300
|
}
|
|
293
301
|
|
|
294
302
|
let versionHash = createResponse.hash;
|
|
295
|
-
console.log(`New version hash: ${versionHash}`);
|
|
296
303
|
|
|
297
304
|
// get new metadata
|
|
298
305
|
console.log("Retrieving revised metadata with offering...");
|
|
299
306
|
metadata = await client.ContentObjectMetadata({
|
|
300
307
|
libraryId,
|
|
301
|
-
|
|
308
|
+
objectId,
|
|
309
|
+
writeToken: existingWriteToken ? writeToken : undefined,
|
|
310
|
+
versionHash: existingWriteToken ? undefined : versionHash
|
|
302
311
|
});
|
|
303
312
|
|
|
304
313
|
console.log("Moving /abr_mezzanine/offerings to /offerings and removing /abr_mezzanine...");
|
|
@@ -308,18 +317,6 @@ const StreamGenerateOffering = async({
|
|
|
308
317
|
// add items to media_struct needed to use options.json handler
|
|
309
318
|
metadata.offerings.default.media_struct.duration_rat = `${DUMMY_DURATION}`;
|
|
310
319
|
|
|
311
|
-
// write back to object
|
|
312
|
-
console.log("Getting write token...");
|
|
313
|
-
editResponse = await client.EditContentObject({
|
|
314
|
-
libraryId,
|
|
315
|
-
objectId,
|
|
316
|
-
options: {
|
|
317
|
-
type: typeLiveStream
|
|
318
|
-
}
|
|
319
|
-
});
|
|
320
|
-
writeToken = editResponse.write_token;
|
|
321
|
-
console.log(`New write token: ${writeToken}`);
|
|
322
|
-
|
|
323
320
|
console.log("Writing back metadata with /offerings...");
|
|
324
321
|
await client.ReplaceMetadata({
|
|
325
322
|
libraryId,
|
|
@@ -328,17 +325,19 @@ const StreamGenerateOffering = async({
|
|
|
328
325
|
writeToken
|
|
329
326
|
});
|
|
330
327
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
console.log(`Finalized, new version hash: ${finalHash}`);
|
|
328
|
+
if(finalize) {
|
|
329
|
+
console.log("Finalizing...");
|
|
330
|
+
finalizeResponse = await client.FinalizeContentObject({
|
|
331
|
+
libraryId,
|
|
332
|
+
objectId,
|
|
333
|
+
writeToken,
|
|
334
|
+
commitMessage: "Update offering"
|
|
335
|
+
});
|
|
340
336
|
|
|
341
|
-
|
|
337
|
+
const finalHash = finalizeResponse.hash;
|
|
338
|
+
console.log(`Finalized, new version hash: ${finalHash}`);
|
|
339
|
+
return finalHash;
|
|
340
|
+
}
|
|
342
341
|
};
|
|
343
342
|
|
|
344
343
|
/**
|
|
@@ -947,10 +946,18 @@ exports.StreamStopSession = async function({name}) {
|
|
|
947
946
|
* @param {string=} format - Specify the list of playout formats and DRM to support,
|
|
948
947
|
comma-separated (hls-clear, hls-aes128, hls-sample-aes,
|
|
949
948
|
hls-fairplay)
|
|
949
|
+
* @param {string=} writeToken - Write token of the draft
|
|
950
|
+
* @param {boolean=} finalize - If enabled, target object will be finalized after configuration
|
|
950
951
|
*
|
|
951
952
|
* @return {Promise<Object>} - The name, object ID, and state of the stream
|
|
952
953
|
*/
|
|
953
|
-
exports.StreamInitialize = async function({
|
|
954
|
+
exports.StreamInitialize = async function({
|
|
955
|
+
name,
|
|
956
|
+
drm=false,
|
|
957
|
+
format,
|
|
958
|
+
writeToken,
|
|
959
|
+
finalize=true
|
|
960
|
+
}) {
|
|
954
961
|
let typeAbrMaster;
|
|
955
962
|
let typeLiveStream;
|
|
956
963
|
|
|
@@ -979,7 +986,15 @@ exports.StreamInitialize = async function({name, drm=false, format}) {
|
|
|
979
986
|
return {};
|
|
980
987
|
}
|
|
981
988
|
|
|
982
|
-
const res = await this.StreamSetOfferingAndDRM({
|
|
989
|
+
const res = await this.StreamSetOfferingAndDRM({
|
|
990
|
+
name,
|
|
991
|
+
typeAbrMaster,
|
|
992
|
+
typeLiveStream,
|
|
993
|
+
drm,
|
|
994
|
+
format,
|
|
995
|
+
writeToken,
|
|
996
|
+
finalize
|
|
997
|
+
});
|
|
983
998
|
|
|
984
999
|
return res;
|
|
985
1000
|
};
|
|
@@ -996,10 +1011,19 @@ exports.StreamInitialize = async function({name, drm=false, format}) {
|
|
|
996
1011
|
* @param {string=} format - A list of playout formats and DRM to support, comma-separated
|
|
997
1012
|
* (hls-clear, hls-aes128, hls-sample-aes, hls-fairplay). If specified,
|
|
998
1013
|
* this will take precedence over the drm value
|
|
1014
|
+
* @param {string=} writeToken - Write token of the draft
|
|
999
1015
|
*
|
|
1000
1016
|
* @return {Promise<Object>} - The name, object ID, and state of the stream
|
|
1001
1017
|
*/
|
|
1002
|
-
exports.StreamSetOfferingAndDRM = async function({
|
|
1018
|
+
exports.StreamSetOfferingAndDRM = async function({
|
|
1019
|
+
name,
|
|
1020
|
+
typeAbrMaster,
|
|
1021
|
+
typeLiveStream,
|
|
1022
|
+
drm=false,
|
|
1023
|
+
format,
|
|
1024
|
+
writeToken,
|
|
1025
|
+
finalize=true
|
|
1026
|
+
}) {
|
|
1003
1027
|
let status = await this.StreamStatus({name});
|
|
1004
1028
|
if(status.state != "uninitialized" && status.state != "inactive" && status.state != "stopped") {
|
|
1005
1029
|
return {
|
|
@@ -1088,7 +1112,8 @@ exports.StreamSetOfferingAndDRM = async function({name, typeAbrMaster, typeLiveS
|
|
|
1088
1112
|
try {
|
|
1089
1113
|
let mainMeta = await this.ContentObjectMetadata({
|
|
1090
1114
|
libraryId,
|
|
1091
|
-
objectId
|
|
1115
|
+
objectId,
|
|
1116
|
+
writeToken
|
|
1092
1117
|
});
|
|
1093
1118
|
|
|
1094
1119
|
let fabURI = mainMeta.live_recording.fabric_config.ingress_node_api;
|
|
@@ -1122,7 +1147,9 @@ exports.StreamSetOfferingAndDRM = async function({name, typeAbrMaster, typeLiveS
|
|
|
1122
1147
|
vWidth,
|
|
1123
1148
|
vDisplayAspectRatio,
|
|
1124
1149
|
vFrameRate,
|
|
1125
|
-
vTimeBase
|
|
1150
|
+
vTimeBase,
|
|
1151
|
+
writeToken,
|
|
1152
|
+
finalize
|
|
1126
1153
|
});
|
|
1127
1154
|
|
|
1128
1155
|
console.log("Finished generating offering");
|