@vidispine/vdt-js 22.3.0-pre.4 → 22.3.0-pre.5

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/index.es.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
2
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
4
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
5
  import _typeof from '@babel/runtime/helpers/typeof';
5
6
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
6
7
  import _createClass from '@babel/runtime/helpers/createClass';
7
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
8
8
  import parseFileSize from 'filesize';
9
9
 
10
10
  function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -244,171 +244,212 @@ var roles = /*#__PURE__*/Object.freeze({
244
244
  VXA_READ: VXA_READ
245
245
  });
246
246
 
247
- var _excluded$4 = ["groupName"],
247
+ var _excluded$4 = ["value"],
248
248
  _excluded2$2 = ["start", "end"];
249
249
 
250
250
  function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
251
251
 
252
252
  function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
253
253
 
254
- var parseValueList$1 = function parseValueList(value) {
255
- if (value === undefined) return [];
256
- if (value === null) return [{
257
- value: ''
258
- }];
254
+ var COMBINED_PROPERTY_KEYS = ['uuid', 'user', 'timestamp', 'change', 'conflict', 'mode', 'name', 'id', 'referenced', 'data', 'inheritance'];
255
+ var GROUP_PROPERTY_KEYS = [].concat(COMBINED_PROPERTY_KEYS, ['cycle']);
256
+ var FIELD_PROPERTY_KEYS = [].concat(COMBINED_PROPERTY_KEYS, ['value', 'reference', 'type', 'track']);
257
+ var FIELD_VALUE_PROPERTY_KEYS = [].concat(COMBINED_PROPERTY_KEYS, ['value', 'lang']);
258
+
259
+ var isObject = function isObject(o) {
260
+ return Object.prototype.toString.call(o) === '[object Object]';
261
+ };
262
+
263
+ var isDate = function isDate(o) {
264
+ return Object.prototype.toString.call(o) === '[object Date]';
265
+ };
266
+
267
+ var isField = function isField(value) {
268
+ var FIELD_TYPES = ['string', 'boolean', 'number'];
269
+
270
+ var isFieldType = function isFieldType(v) {
271
+ return FIELD_TYPES.includes(_typeof(v));
272
+ };
273
+
274
+ var isFieldObject = function isFieldObject(v) {
275
+ return isObject(v) && (v.value === null || isObject(v.value) || isFieldType(v.value));
276
+ };
277
+
278
+ if (value === null) {
279
+ return true;
280
+ }
259
281
 
260
282
  if (Array.isArray(value)) {
261
- return value.map(function (valueOrObject) {
262
- if (_typeof(valueOrObject) === 'object') {
263
- return _objectSpread$7({
264
- value: valueOrObject.value || ''
265
- }, valueOrObject);
266
- }
283
+ return value.some(isField);
284
+ }
267
285
 
268
- return {
269
- value: valueOrObject
270
- };
271
- });
286
+ return isFieldType(value) || isFieldObject(value) || isDate(value);
287
+ };
288
+
289
+ var isGroup = function isGroup(value) {
290
+ var isGroupObject = function isGroupObject(v) {
291
+ return isObject(v) && v.value === undefined && Object.entries(value);
292
+ };
293
+
294
+ if (Array.isArray(value)) {
295
+ return value.every(isGroup);
272
296
  }
273
297
 
274
- if (value.value) return [value];
275
- return [{
276
- value: value
277
- }];
298
+ return isGroupObject(value);
299
+ };
300
+
301
+ var tryPluralize = function tryPluralize(str, arr) {
302
+ return str + (arr.length > 1 ? 's' : '');
278
303
  };
279
304
 
280
- var parseValue = function parseValue() {
281
- var fieldValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
305
+ var ensureKeysAreValid = function ensureKeysAreValid(keysToCheck, keysToMatch) {
306
+ var unsupportedKeys = keysToCheck.filter(function (k) {
307
+ return !keysToMatch.includes(k);
308
+ });
282
309
 
283
- if (fieldValue && (fieldValue.value || fieldValue.name)) {
284
- var valueList = fieldValue.value,
285
- uuid = fieldValue.uuid;
286
- var value = parseValueList$1(valueList);
287
- return {
288
- value: value,
289
- uuid: uuid
290
- };
310
+ if (unsupportedKeys.length) {
311
+ throw Error("Unsupported ".concat(tryPluralize('key', unsupportedKeys), " (").concat(unsupportedKeys.join(', '), ")"));
291
312
  }
313
+ };
292
314
 
315
+ var parseValue = function parseValue(value) {
316
+ if (Array.isArray(value)) {
317
+ throw Error('Invalid value object, cannot be array');
318
+ }
319
+
320
+ if ([undefined, null].includes(value)) return {};
321
+ if (isDate(value)) return {
322
+ value: value.toISOString()
323
+ };
293
324
  return {
294
- value: parseValueList$1(fieldValue)
325
+ value: value
295
326
  };
296
327
  };
297
328
 
298
- var parseField$1 = function parseField() {
299
- var field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
300
- var name = field.name,
301
- value = field.value;
302
- var parsedValue = parseValue(value);
303
- return _objectSpread$7({
304
- name: name
305
- }, parsedValue);
329
+ var parseValueObject = function parseValueObject(valueObject) {
330
+ ensureKeysAreValid(Object.keys(valueObject), FIELD_VALUE_PROPERTY_KEYS);
331
+
332
+ if (Object.keys(valueObject).length === 0) {
333
+ throw Error('Invalid value object, cannot be empty object');
334
+ }
335
+
336
+ var parsedValue = parseValue(valueObject === null || valueObject === void 0 ? void 0 : valueObject.value);
337
+ return _objectSpread$7(_objectSpread$7({}, valueObject), parsedValue !== undefined ? parsedValue : {});
306
338
  };
307
339
 
308
- var shouldBeField = function shouldBeField(_ref) {
309
- var name = _ref.name,
310
- value = _ref.value;
311
- return ['string', 'boolean', 'number'].includes(_typeof(value)) || name !== 'group' && Array.isArray(value) || value === null;
340
+ var parseFieldValue = function parseFieldValue(value) {
341
+ if ([undefined, null].includes(value)) return undefined;
342
+ if (Array.isArray(value)) return value.map(parseFieldValue);
343
+ if (isObject(value)) return parseValueObject(value);
344
+ return parseValue(value);
345
+ };
346
+
347
+ var parseFieldObject = function parseFieldObject(fieldObject) {
348
+ ensureKeysAreValid(Object.keys(fieldObject), FIELD_PROPERTY_KEYS);
349
+ var parsedFieldValue = parseFieldValue(fieldObject === null || fieldObject === void 0 ? void 0 : fieldObject.value);
350
+
351
+ if (parsedFieldValue === undefined) {
352
+ fieldObject.value;
353
+ var fieldObjectWithoutValue = _objectWithoutProperties(fieldObject, _excluded$4);
354
+
355
+ return fieldObjectWithoutValue;
356
+ }
357
+
358
+ return _objectSpread$7(_objectSpread$7({}, fieldObject), {}, {
359
+ value: _toConsumableArray(Array.isArray(parsedFieldValue) ? parsedFieldValue : [parsedFieldValue])
360
+ });
312
361
  };
313
362
 
314
- var parseGroup$1 = function parseGroup() {
315
- var thisGroup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
316
- var groupName = thisGroup.name,
317
- _thisGroup$value = thisGroup.value,
318
- groupsOrFields = _thisGroup$value === void 0 ? {} : _thisGroup$value; // eslint-disable-next-line no-use-before-define
363
+ var parseField$1 = function parseField(field) {
364
+ if (isObject(field)) {
365
+ return parseFieldObject(field);
366
+ }
319
367
 
320
- var _parseGroupsOrFields = parseGroupsOrFields(groupsOrFields),
321
- field = _parseGroupsOrFields.field,
322
- group = _parseGroupsOrFields.group;
368
+ var parsedFieldValue = parseFieldValue(field);
369
+
370
+ if (parsedFieldValue === undefined) {
371
+ return undefined;
372
+ }
323
373
 
324
374
  return {
325
- name: groupName,
326
- group: group,
327
- field: field
375
+ value: _toConsumableArray(Array.isArray(parsedFieldValue) ? parsedFieldValue : [parsedFieldValue])
328
376
  };
329
377
  };
330
378
 
331
- var parseGroupsOrFields = function parseGroupsOrFields(groupsOrFields) {
379
+ var parseGroupsAndFields = function parseGroupsAndFields(groupOrField) {
332
380
  var group = [];
333
381
  var field = [];
334
- Object.entries(groupsOrFields).forEach(function (_ref2) {
335
- var _ref3 = _slicedToArray(_ref2, 2),
336
- name = _ref3[0],
337
- value = _ref3[1];
338
-
339
- if (shouldBeField({
340
- name: name,
341
- value: value
342
- })) {
343
- field.push(parseField$1({
344
- name: name,
345
- value: value
346
- }));
347
- } else if (Array.isArray(value)) {
348
- value.forEach(function (_ref4) {
349
- var groupName = _ref4.groupName,
350
- groupValue = _objectWithoutProperties(_ref4, _excluded$4);
351
-
352
- group.push(parseGroup$1({
353
- name: groupName,
354
- value: groupValue
355
- }));
382
+ var groupAttributes = {};
383
+ Object.entries(groupOrField || {}).forEach(function (_ref) {
384
+ var _ref2 = _slicedToArray(_ref, 2),
385
+ name = _ref2[0],
386
+ value = _ref2[1];
387
+
388
+ if (GROUP_PROPERTY_KEYS.includes(name)) {
389
+ groupAttributes = _objectSpread$7(_objectSpread$7({}, groupAttributes), {}, _defineProperty({}, name, value));
390
+ } else if (isField(value)) {
391
+ try {
392
+ field.push(_objectSpread$7({
393
+ name: name
394
+ }, parseField$1(value)));
395
+ } catch (error) {
396
+ throw Error(error.message + (name ? " for field \"".concat(name, "\"") : ''));
397
+ }
398
+ } else if (isGroup(value)) {
399
+ (Array.isArray(value) ? value : [value]).forEach(function (v) {
400
+ group.push(_objectSpread$7({
401
+ name: name
402
+ }, parseGroupsAndFields(v)));
356
403
  });
357
404
  } else {
358
- group.push(parseGroup$1({
359
- name: name,
360
- value: value
361
- }));
405
+ throw Error("Unhandled value for \"".concat(name, "\""));
362
406
  }
363
407
  });
364
- return {
365
- group: group,
408
+ return _objectSpread$7(_objectSpread$7(_objectSpread$7({}, groupAttributes), group.length > 0 ? {
409
+ group: group
410
+ } : {}), field.length > 0 ? {
366
411
  field: field
367
- };
412
+ } : {});
368
413
  };
369
414
 
370
415
  var parseTimespan$1 = function parseTimespan() {
371
416
  var timespan = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
372
417
 
373
- var _ref5 = timespan || {},
374
- _ref5$start = _ref5.start,
375
- start = _ref5$start === void 0 ? '-INF' : _ref5$start,
376
- _ref5$end = _ref5.end,
377
- end = _ref5$end === void 0 ? '+INF' : _ref5$end,
378
- groupsOrFields = _objectWithoutProperties(_ref5, _excluded2$2);
418
+ var _ref3 = timespan || {},
419
+ _ref3$start = _ref3.start,
420
+ start = _ref3$start === void 0 ? '-INF' : _ref3$start,
421
+ _ref3$end = _ref3.end,
422
+ end = _ref3$end === void 0 ? '+INF' : _ref3$end,
423
+ groupsAndFields = _objectWithoutProperties(_ref3, _excluded2$2);
379
424
 
380
- var _parseGroupsOrFields2 = parseGroupsOrFields(groupsOrFields),
381
- group = _parseGroupsOrFields2.group,
382
- field = _parseGroupsOrFields2.field;
425
+ var _parseGroupsAndFields = parseGroupsAndFields(groupsAndFields),
426
+ group = _parseGroupsAndFields.group,
427
+ field = _parseGroupsAndFields.field;
383
428
 
384
- return {
385
- start: start,
386
- end: end,
387
- field: field,
429
+ return _objectSpread$7(_objectSpread$7(_objectSpread$7({}, group ? {
388
430
  group: group
389
- };
431
+ } : {}), field ? {
432
+ field: field
433
+ } : {}), {}, {
434
+ start: start,
435
+ end: end
436
+ });
390
437
  };
391
438
  /**
392
439
  * Create a MetadataType object from a metadata object
393
- * @param {Object} metadata={} - object with metadata to create MetadataType object of
440
+ *
441
+ * @param {Object} metadata - object with metadata to create MetadataType object of
394
442
  * @returns {Object} MetadataType
395
443
  */
396
444
 
397
445
 
398
446
  var createMetadataType = function createMetadataType() {
399
447
  var metadata = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
400
- var metadataType = {};
401
-
402
- if (Array.isArray(metadata)) {
403
- metadataType.timespan = metadata.map(function (thisTimeSpan) {
404
- return parseTimespan$1(thisTimeSpan);
405
- });
406
- } else {
407
- var genericTimespan = parseTimespan$1(metadata);
408
- metadataType.timespan = [genericTimespan];
409
- }
410
-
411
- return metadataType;
448
+ return {
449
+ timespan: (Array.isArray(metadata) ? metadata : [metadata]).map(function (t) {
450
+ return parseTimespan$1(t);
451
+ })
452
+ };
412
453
  };
413
454
 
414
455
  var sortTimespanList = function sortTimespanList(timespan1, timespan2) {
@@ -844,13 +885,13 @@ var parseHighlightTimespan = function parseHighlightTimespan() {
844
885
  start = _ref.start,
845
886
  end = _ref.end;
846
887
 
847
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
848
- var _opts$arrayOnSingle = opts.arrayOnSingle,
849
- arrayOnSingle = _opts$arrayOnSingle === void 0 ? true : _opts$arrayOnSingle,
850
- _opts$joinValue = opts.joinValue,
851
- joinValue = _opts$joinValue === void 0 ? undefined : _opts$joinValue,
852
- _opts$timespanAsList = opts.timespanAsList,
853
- timespanAsList = _opts$timespanAsList === void 0 ? undefined : _opts$timespanAsList;
888
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
889
+ var _options$arrayOnSingl = options.arrayOnSingle,
890
+ arrayOnSingle = _options$arrayOnSingl === void 0 ? true : _options$arrayOnSingl,
891
+ _options$joinValue = options.joinValue,
892
+ joinValue = _options$joinValue === void 0 ? undefined : _options$joinValue,
893
+ _options$timespanAsLi = options.timespanAsList,
894
+ timespanAsList = _options$timespanAsLi === void 0 ? undefined : _options$timespanAsLi;
854
895
  var initialValue = timespanAsList ? {
855
896
  start: start,
856
897
  end: end