@eluvio/elv-client-js 3.1.71 → 3.1.72

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/package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eluvio/elv-client-js",
3
- "version": "3.1.71",
3
+ "version": "3.1.72",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eluvio/elv-client-js",
3
- "version": "3.1.71",
3
+ "version": "3.1.72",
4
4
  "description": "Javascript client for the Eluvio Content Fabric",
5
5
  "main": "src/ElvClient.js",
6
6
  "author": "Kevin Talmadge",
@@ -74,7 +74,7 @@
74
74
  "hash.js": "^1.1.7",
75
75
  "image-type": "^4.1.0",
76
76
  "js-polyfills": "^0.1.42",
77
- "jsonpath-plus": "^4.0.0",
77
+ "jsonpath-plus": "^6.0.1",
78
78
  "kind-of": "^6.0.3",
79
79
  "lodash": "^4.17.19",
80
80
  "lodash.isequal": "^4.5.0",
@@ -973,7 +973,7 @@ exports.DownloadEncrypted = async function({
973
973
  * @param {string} libraryId - ID of the library
974
974
  * @param {string} objectId - ID of the object
975
975
  * @param {string} writeToken - Write token of the content object draft
976
- * @param {string=} encryption=none - Desired encryption scheme. Options: 'none (default)', 'cgck'
976
+ * @param {string=} encryption=none - Desired encryption scheme. Options: 'none' (default), 'cgck'
977
977
  *
978
978
  * @returns {Promise<string>} - The part write token for the part draft
979
979
  */
@@ -1008,7 +1008,7 @@ exports.CreatePart = async function({libraryId, objectId, writeToken, encryption
1008
1008
  * @param {string} writeToken - Write token of the content object draft
1009
1009
  * @param {string} partWriteToken - Write token of the part
1010
1010
  * @param {(ArrayBuffer | Buffer)} chunk - Data to upload
1011
- * @param {string=} encryption=none - Desired encryption scheme. Options: 'none (default)', 'cgck'
1011
+ * @param {string=} encryption=none - Desired encryption scheme. Options: 'none' (default), 'cgck'
1012
1012
  *
1013
1013
  * @returns {Promise<string>} - The part write token for the part draft
1014
1014
  */
@@ -1044,7 +1044,7 @@ exports.UploadPartChunk = async function({libraryId, objectId, writeToken, partW
1044
1044
  * @param {string} objectId - ID of the object
1045
1045
  * @param {string} writeToken - Write token of the content object draft
1046
1046
  * @param {string} partWriteToken - Write token of the part
1047
- * @param {string=} encryption=none - Desired encryption scheme. Options: 'none (default)', 'cgck'
1047
+ * @param {string=} encryption=none - Desired encryption scheme. Options: 'none' (default), 'cgck'
1048
1048
  *
1049
1049
  * @returns {Promise<object>} - The finalize response for the new part
1050
1050
  */
@@ -1080,7 +1080,7 @@ exports.FinalizePart = async function({libraryId, objectId, writeToken, partWrit
1080
1080
  * @param {string} writeToken - Write token of the content object draft
1081
1081
  * @param {(File | ArrayBuffer | Buffer)} data - Data to upload
1082
1082
  * @param {number=} chunkSize=1000000 (1MB) - Chunk size, in bytes
1083
- * @param {string=} encryption=none - Desired encryption scheme. Options: 'none (default)', 'cgck'
1083
+ * @param {string=} encryption=none - Desired encryption scheme. Options: 'none' (default), 'cgck'
1084
1084
  * @param {function=} callback - If specified, will be periodically called with current upload status
1085
1085
  * - Signature: ({bytesFinished, bytesTotal}) => {}
1086
1086
  *
@@ -60,6 +60,7 @@ class OfferingAddCaptionStream extends ScriptOffering {
60
60
  async body() {
61
61
  const client = await this.client();
62
62
 
63
+ const encrypt = this.args.encrypt;
63
64
  const libraryId = this.args.libraryId;
64
65
  const objectId = this.args.objectId;
65
66
  const offeringKey = this.args.offeringKey;
@@ -107,7 +108,7 @@ class OfferingAddCaptionStream extends ScriptOffering {
107
108
  objectId,
108
109
  writeToken,
109
110
  data: finalData,
110
- encryption: "cgck"
111
+ encryption: encrypt ? "cgck" : "none"
111
112
  });
112
113
  const partHash = uploadPartResponse.part.hash;
113
114
  let finalizeResponse = await client.FinalizeContentObject({
@@ -238,6 +239,10 @@ class OfferingAddCaptionStream extends ScriptOffering {
238
239
 
239
240
  options() {
240
241
  return super.options()
242
+ .option("encrypt", {
243
+ describe: "Store caption file encrypted",
244
+ type: "boolean"
245
+ })
241
246
  .option("file", {
242
247
  alias: "f",
243
248
  demandOption: true,
@@ -1860,6 +1860,52 @@
1860
1860
  "width": 640
1861
1861
  }
1862
1862
  ]
1863
+ },
1864
+ "{\"media_type\":\"video\",\"aspect_ratio_height\":1,\"aspect_ratio_width\":1}": {
1865
+ "rung_specs": [
1866
+ {
1867
+ "bit_rate": 9500000,
1868
+ "height": 1080,
1869
+ "media_type": "video",
1870
+ "pregenerate": true,
1871
+ "width": 1080
1872
+ },
1873
+ {
1874
+ "bit_rate": 4500000,
1875
+ "height": 720,
1876
+ "media_type": "video",
1877
+ "pregenerate": false,
1878
+ "width": 720
1879
+ },
1880
+ {
1881
+ "bit_rate": 2000000,
1882
+ "height": 540,
1883
+ "media_type": "video",
1884
+ "pregenerate": false,
1885
+ "width": 540
1886
+ },
1887
+ {
1888
+ "bit_rate": 1100000,
1889
+ "height": 432,
1890
+ "media_type": "video",
1891
+ "pregenerate": false,
1892
+ "width": 432
1893
+ },
1894
+ {
1895
+ "bit_rate": 810000,
1896
+ "height": 360,
1897
+ "media_type": "video",
1898
+ "pregenerate": false,
1899
+ "width": 360
1900
+ },
1901
+ {
1902
+ "bit_rate": 520000,
1903
+ "height": 360,
1904
+ "media_type": "video",
1905
+ "pregenerate": false,
1906
+ "width": 360
1907
+ }
1908
+ ]
1863
1909
  }
1864
1910
  },
1865
1911
  "playout_formats": {
@@ -1860,6 +1860,52 @@
1860
1860
  "width": 640
1861
1861
  }
1862
1862
  ]
1863
+ },
1864
+ "{\"media_type\":\"video\",\"aspect_ratio_height\":1,\"aspect_ratio_width\":1}": {
1865
+ "rung_specs": [
1866
+ {
1867
+ "bit_rate": 9500000,
1868
+ "height": 1080,
1869
+ "media_type": "video",
1870
+ "pregenerate": true,
1871
+ "width": 1080
1872
+ },
1873
+ {
1874
+ "bit_rate": 4500000,
1875
+ "height": 720,
1876
+ "media_type": "video",
1877
+ "pregenerate": false,
1878
+ "width": 720
1879
+ },
1880
+ {
1881
+ "bit_rate": 2000000,
1882
+ "height": 540,
1883
+ "media_type": "video",
1884
+ "pregenerate": false,
1885
+ "width": 540
1886
+ },
1887
+ {
1888
+ "bit_rate": 1100000,
1889
+ "height": 432,
1890
+ "media_type": "video",
1891
+ "pregenerate": false,
1892
+ "width": 432
1893
+ },
1894
+ {
1895
+ "bit_rate": 810000,
1896
+ "height": 360,
1897
+ "media_type": "video",
1898
+ "pregenerate": false,
1899
+ "width": 360
1900
+ },
1901
+ {
1902
+ "bit_rate": 520000,
1903
+ "height": 360,
1904
+ "media_type": "video",
1905
+ "pregenerate": false,
1906
+ "width": 360
1907
+ }
1908
+ ]
1863
1909
  }
1864
1910
  },
1865
1911
  "playout_formats": {
@@ -1860,6 +1860,52 @@
1860
1860
  "width": 640
1861
1861
  }
1862
1862
  ]
1863
+ },
1864
+ "{\"media_type\":\"video\",\"aspect_ratio_height\":1,\"aspect_ratio_width\":1}": {
1865
+ "rung_specs": [
1866
+ {
1867
+ "bit_rate": 9500000,
1868
+ "height": 1080,
1869
+ "media_type": "video",
1870
+ "pregenerate": true,
1871
+ "width": 1080
1872
+ },
1873
+ {
1874
+ "bit_rate": 4500000,
1875
+ "height": 720,
1876
+ "media_type": "video",
1877
+ "pregenerate": false,
1878
+ "width": 720
1879
+ },
1880
+ {
1881
+ "bit_rate": 2000000,
1882
+ "height": 540,
1883
+ "media_type": "video",
1884
+ "pregenerate": false,
1885
+ "width": 540
1886
+ },
1887
+ {
1888
+ "bit_rate": 1100000,
1889
+ "height": 432,
1890
+ "media_type": "video",
1891
+ "pregenerate": false,
1892
+ "width": 432
1893
+ },
1894
+ {
1895
+ "bit_rate": 810000,
1896
+ "height": 360,
1897
+ "media_type": "video",
1898
+ "pregenerate": false,
1899
+ "width": 360
1900
+ },
1901
+ {
1902
+ "bit_rate": 520000,
1903
+ "height": 360,
1904
+ "media_type": "video",
1905
+ "pregenerate": false,
1906
+ "width": 360
1907
+ }
1908
+ ]
1863
1909
  }
1864
1910
  },
1865
1911
  "playout_formats": {
@@ -93,6 +93,33 @@ const eventSiteSpec = {
93
93
  "type": "text",
94
94
  "hint": "Displayed when the event is featured on the main page"
95
95
  },
96
+ {
97
+ "name": "feature_button",
98
+ "type": "subsection",
99
+ "fields": [
100
+ {
101
+ "name": "text",
102
+ "type": "text",
103
+ "default_value": "Join the Drop"
104
+ },
105
+ {
106
+ "name": "text_color",
107
+ "type": "color",
108
+ "no_label": true,
109
+ "default_value": {
110
+ "color": "#000000"
111
+ }
112
+ },
113
+ {
114
+ "name": "background_color",
115
+ "type": "color",
116
+ "no_label": true,
117
+ "default_value": {
118
+ "color": "#d7bb73"
119
+ }
120
+ }
121
+ ]
122
+ },
96
123
  {
97
124
  "name": "event_header",
98
125
  "type": "text",
@@ -120,7 +147,12 @@ const eventSiteSpec = {
120
147
  },
121
148
  {
122
149
  "name": "copyright",
123
- "type": "textarea"
150
+ "type": "rich_text"
151
+ },
152
+ {
153
+ "name": "show_cookie_banner",
154
+ "type": "checkbox",
155
+ "default_value": false
124
156
  },
125
157
  {
126
158
  "name": "modal_message_get_started",
@@ -146,6 +178,48 @@ const eventSiteSpec = {
146
178
  "name": "button_text",
147
179
  "type": "text",
148
180
  "hint": "Text for the button at the bottom of the modal. By default, it will be 'Create Wallet' if login is required for the next drop, otherwise it will be 'Join the Drop'"
181
+ },
182
+ {
183
+ "name": "post_login",
184
+ "label": "Post Login Modal",
185
+ "type": "subsection",
186
+ "hint": "If specified, modal will be shown after a user goes through the login process from the 'Get Started' modal",
187
+ "fields": [
188
+ {
189
+ "name": "show",
190
+ "type": "checkbox",
191
+ },
192
+ {
193
+ "name": "image",
194
+ "type": "file",
195
+ "extensions": imageTypes
196
+ },
197
+ {
198
+ "name": "message",
199
+ "type": "rich_text"
200
+ },
201
+ {
202
+ "name": "button_text",
203
+ "type": "text",
204
+ "hint": "Text for the button at the bottom of the modal. By default, it will be 'Go to the Marketplace' if 'Show Marketplace' is checked, otherwise it will be 'Close'"
205
+ },
206
+ {
207
+ "name": "show_marketplace",
208
+ "type": "checkbox",
209
+ "hint": "Show the marketplace after the post login modal"
210
+ },
211
+ {
212
+ "name": "marketplace_filters",
213
+ "type": "list",
214
+ "hint": "Use this fields to filter the items shown"
215
+ },
216
+ {
217
+ "name": "hide_navigation",
218
+ "label": "Hide Marketplace Navigation",
219
+ "type": "checkbox",
220
+ "hint": "If checked, the back button will not be shown in the marketplace."
221
+ }
222
+ ]
149
223
  }
150
224
  ]
151
225
  }
@@ -220,6 +294,12 @@ const eventSiteSpec = {
220
294
  }
221
295
  ]
222
296
  },
297
+ {
298
+ "name": "sponsor_tagline",
299
+ "type": "text",
300
+ "hint": "Customize what shows above the sponsor list",
301
+ "default_value": "Sponsored by"
302
+ },
223
303
  {
224
304
  "fields": [
225
305
  {
@@ -394,6 +474,25 @@ const eventSiteSpec = {
394
474
  }
395
475
  ]
396
476
  },
477
+ {
478
+ "fields": [
479
+ {
480
+ "name": "title",
481
+ "type": "text"
482
+ },
483
+ {
484
+ "name": "description",
485
+ "type": "textarea"
486
+ },
487
+ {
488
+ "name": "location",
489
+ "type": "text"
490
+ }
491
+ ],
492
+ "label": "Calendar Event Info",
493
+ "name": "calendar",
494
+ "type": "subsection"
495
+ },
397
496
  {
398
497
  "name": "event_state_preroll",
399
498
  "label": "Event State: Preroll",
@@ -804,6 +903,22 @@ const eventSiteSpec = {
804
903
  }
805
904
  ]
806
905
  },
906
+ {
907
+ "name": "faq",
908
+ "label": "FAQ",
909
+ "hint": "Specify a custom FAQ. If blank, the default FAQ will be displayed",
910
+ "type": "list",
911
+ "fields": [
912
+ {
913
+ "name": "question",
914
+ "type": "text"
915
+ },
916
+ {
917
+ "name": "answer",
918
+ "type": "textarea"
919
+ }
920
+ ]
921
+ },
807
922
  {
808
923
  "name": "analytics_ids",
809
924
  "label": "Analytics IDs",
@@ -158,6 +158,29 @@ const MarketplaceSpec = {
158
158
  "name": "subheader",
159
159
  "type": "text"
160
160
  },
161
+ {
162
+ "name": "purchase_animation",
163
+ "type": "fabric_link",
164
+ "video_preview": true,
165
+ "hint": "If specified, this video will play on the status screen after a purchase is made until minting is complete"
166
+ },
167
+ {
168
+ "name": "tabs",
169
+ "type": "subsection",
170
+ "fields": [
171
+ {
172
+ "name": "store",
173
+ "type": "text",
174
+ "default_value": "Store"
175
+ },
176
+ {
177
+ "name": "collection",
178
+ "label": "My Items",
179
+ "type": "text",
180
+ "default_value": "My Items"
181
+ }
182
+ ]
183
+ },
161
184
  {
162
185
  "name": "sections",
163
186
  "type": "list",
@@ -193,12 +216,38 @@ const MarketplaceSpec = {
193
216
  "name": "collection_subheader",
194
217
  "type": "text"
195
218
  },
219
+ {
220
+ "extensions": imageTypes,
221
+ "name": "collection_icon",
222
+ "type": "file"
223
+ },
224
+ {
225
+ "name": "placeholder",
226
+ "type": "subsection",
227
+ "hint": "Used for explicitly unspecified item slots (<None>). Will not override item definitions.",
228
+ "fields": [
229
+ {
230
+ "name": "name",
231
+ "type": "text"
232
+ },
233
+ {
234
+ "name": "description",
235
+ "type": "text"
236
+ },
237
+ {
238
+ "extensions": imageTypes,
239
+ "name": "image",
240
+ "type": "file"
241
+ }
242
+ ]
243
+ },
196
244
  {
197
245
  "name": "items",
198
246
  "type": "reference_multiselect",
199
247
  "reference": "/items",
200
248
  "label_key": "name",
201
- "value_key": "sku"
249
+ "value_key": "sku",
250
+ "allow_null": true
202
251
  }
203
252
  ]
204
253
  },
@@ -232,6 +281,11 @@ const MarketplaceSpec = {
232
281
  "type": "file",
233
282
  "extensions": imageTypes
234
283
  },
284
+ {
285
+ "name": "large_logo_mode",
286
+ "type": "checkbox",
287
+ "hint": "If specified, the logo in the login box will be significantly larger, but *the background image will NOT be visible in the Live app*."
288
+ },
235
289
  {
236
290
  "name": "log_in_button",
237
291
  "type": "subsection",
@@ -310,12 +364,6 @@ const MarketplaceSpec = {
310
364
  "label": "Terms and Conditions",
311
365
  "name": "terms",
312
366
  "type": "rich_text"
313
- },
314
- {
315
- "label": "Terms and Conditions (HTML)",
316
- "name": "terms_html",
317
- "type": "file",
318
- "extensions": ["html"]
319
367
  }
320
368
  ]
321
369
  };
@@ -140,14 +140,24 @@ const NFTTemplateSpec = {
140
140
  "label": "Embed URL",
141
141
  "type": "self_embed_url",
142
142
  "version": true,
143
- "auto_update": true
143
+ "auto_update": true,
144
+ // Player options
145
+ "loop": true,
146
+ "hide_controls": true,
147
+ "muted": true,
148
+ "autoplay": true
144
149
  },
145
150
  {
146
151
  "name": "external_url",
147
152
  "label": "External URL",
148
153
  "type": "self_embed_url",
149
154
  "version": true,
150
- "auto_update": true
155
+ "auto_update": true,
156
+ // Player options
157
+ "loop": true,
158
+ "hide_controls": true,
159
+ "muted": true,
160
+ "autoplay": true
151
161
  },
152
162
  {
153
163
  "name": "background_color",
@@ -170,7 +180,12 @@ const NFTTemplateSpec = {
170
180
  "name": "youtube_url",
171
181
  "type": "self_embed_url",
172
182
  "version": true,
173
- "auto_update": true
183
+ "auto_update": true,
184
+ // Player options
185
+ "loop": true,
186
+ "hide_controls": true,
187
+ "muted": true,
188
+ "autoplay": true
174
189
  }
175
190
  ]
176
191
  },
@@ -126,7 +126,7 @@ class ChannelCreate extends Utility {
126
126
  logger.log("Mezzanine item parameter checks passed.");
127
127
 
128
128
  // create new object
129
- let metadata = {public: {name}};
129
+ let metadata = {public: {name, asset_metadata:{}}};
130
130
 
131
131
  logger.log("\nCreating new channel object...");
132
132
 
@@ -175,7 +175,7 @@ class ChannelCreate extends Utility {
175
175
  }
176
176
 
177
177
  metadata.channel = channelMeta;
178
- metadata.public.offerings = {"/": "./rep/channel/options.json"};
178
+ metadata.public.asset_metadata.offerings = {"/": "./rep/channel/options.json"};
179
179
 
180
180
 
181
181
  // Write back metadata