@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.js CHANGED
@@ -3,23 +3,23 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
6
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
8
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
9
  var _typeof = require('@babel/runtime/helpers/typeof');
9
10
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
10
11
  var _createClass = require('@babel/runtime/helpers/createClass');
11
- var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
12
12
  var parseFileSize = require('filesize');
13
13
 
14
14
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
15
 
16
16
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
17
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
18
17
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
18
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
19
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
19
20
  var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
20
21
  var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
21
22
  var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
22
- var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
23
23
  var parseFileSize__default = /*#__PURE__*/_interopDefaultLegacy(parseFileSize);
24
24
 
25
25
  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; }
@@ -259,171 +259,212 @@ var roles = /*#__PURE__*/Object.freeze({
259
259
  VXA_READ: VXA_READ
260
260
  });
261
261
 
262
- var _excluded$4 = ["groupName"],
262
+ var _excluded$4 = ["value"],
263
263
  _excluded2$2 = ["start", "end"];
264
264
 
265
265
  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; }
266
266
 
267
267
  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__default["default"](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; }
268
268
 
269
- var parseValueList$1 = function parseValueList(value) {
270
- if (value === undefined) return [];
271
- if (value === null) return [{
272
- value: ''
273
- }];
269
+ var COMBINED_PROPERTY_KEYS = ['uuid', 'user', 'timestamp', 'change', 'conflict', 'mode', 'name', 'id', 'referenced', 'data', 'inheritance'];
270
+ var GROUP_PROPERTY_KEYS = [].concat(COMBINED_PROPERTY_KEYS, ['cycle']);
271
+ var FIELD_PROPERTY_KEYS = [].concat(COMBINED_PROPERTY_KEYS, ['value', 'reference', 'type', 'track']);
272
+ var FIELD_VALUE_PROPERTY_KEYS = [].concat(COMBINED_PROPERTY_KEYS, ['value', 'lang']);
273
+
274
+ var isObject = function isObject(o) {
275
+ return Object.prototype.toString.call(o) === '[object Object]';
276
+ };
277
+
278
+ var isDate = function isDate(o) {
279
+ return Object.prototype.toString.call(o) === '[object Date]';
280
+ };
281
+
282
+ var isField = function isField(value) {
283
+ var FIELD_TYPES = ['string', 'boolean', 'number'];
284
+
285
+ var isFieldType = function isFieldType(v) {
286
+ return FIELD_TYPES.includes(_typeof__default["default"](v));
287
+ };
288
+
289
+ var isFieldObject = function isFieldObject(v) {
290
+ return isObject(v) && (v.value === null || isObject(v.value) || isFieldType(v.value));
291
+ };
292
+
293
+ if (value === null) {
294
+ return true;
295
+ }
274
296
 
275
297
  if (Array.isArray(value)) {
276
- return value.map(function (valueOrObject) {
277
- if (_typeof__default["default"](valueOrObject) === 'object') {
278
- return _objectSpread$7({
279
- value: valueOrObject.value || ''
280
- }, valueOrObject);
281
- }
298
+ return value.some(isField);
299
+ }
282
300
 
283
- return {
284
- value: valueOrObject
285
- };
286
- });
301
+ return isFieldType(value) || isFieldObject(value) || isDate(value);
302
+ };
303
+
304
+ var isGroup = function isGroup(value) {
305
+ var isGroupObject = function isGroupObject(v) {
306
+ return isObject(v) && v.value === undefined && Object.entries(value);
307
+ };
308
+
309
+ if (Array.isArray(value)) {
310
+ return value.every(isGroup);
287
311
  }
288
312
 
289
- if (value.value) return [value];
290
- return [{
291
- value: value
292
- }];
313
+ return isGroupObject(value);
293
314
  };
294
315
 
295
- var parseValue = function parseValue() {
296
- var fieldValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
316
+ var tryPluralize = function tryPluralize(str, arr) {
317
+ return str + (arr.length > 1 ? 's' : '');
318
+ };
297
319
 
298
- if (fieldValue && (fieldValue.value || fieldValue.name)) {
299
- var valueList = fieldValue.value,
300
- uuid = fieldValue.uuid;
301
- var value = parseValueList$1(valueList);
302
- return {
303
- value: value,
304
- uuid: uuid
305
- };
320
+ var ensureKeysAreValid = function ensureKeysAreValid(keysToCheck, keysToMatch) {
321
+ var unsupportedKeys = keysToCheck.filter(function (k) {
322
+ return !keysToMatch.includes(k);
323
+ });
324
+
325
+ if (unsupportedKeys.length) {
326
+ throw Error("Unsupported ".concat(tryPluralize('key', unsupportedKeys), " (").concat(unsupportedKeys.join(', '), ")"));
327
+ }
328
+ };
329
+
330
+ var parseValue = function parseValue(value) {
331
+ if (Array.isArray(value)) {
332
+ throw Error('Invalid value object, cannot be array');
306
333
  }
307
334
 
335
+ if ([undefined, null].includes(value)) return {};
336
+ if (isDate(value)) return {
337
+ value: value.toISOString()
338
+ };
308
339
  return {
309
- value: parseValueList$1(fieldValue)
340
+ value: value
310
341
  };
311
342
  };
312
343
 
313
- var parseField$1 = function parseField() {
314
- var field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
315
- var name = field.name,
316
- value = field.value;
317
- var parsedValue = parseValue(value);
318
- return _objectSpread$7({
319
- name: name
320
- }, parsedValue);
344
+ var parseValueObject = function parseValueObject(valueObject) {
345
+ ensureKeysAreValid(Object.keys(valueObject), FIELD_VALUE_PROPERTY_KEYS);
346
+
347
+ if (Object.keys(valueObject).length === 0) {
348
+ throw Error('Invalid value object, cannot be empty object');
349
+ }
350
+
351
+ var parsedValue = parseValue(valueObject === null || valueObject === void 0 ? void 0 : valueObject.value);
352
+ return _objectSpread$7(_objectSpread$7({}, valueObject), parsedValue !== undefined ? parsedValue : {});
321
353
  };
322
354
 
323
- var shouldBeField = function shouldBeField(_ref) {
324
- var name = _ref.name,
325
- value = _ref.value;
326
- return ['string', 'boolean', 'number'].includes(_typeof__default["default"](value)) || name !== 'group' && Array.isArray(value) || value === null;
355
+ var parseFieldValue = function parseFieldValue(value) {
356
+ if ([undefined, null].includes(value)) return undefined;
357
+ if (Array.isArray(value)) return value.map(parseFieldValue);
358
+ if (isObject(value)) return parseValueObject(value);
359
+ return parseValue(value);
327
360
  };
328
361
 
329
- var parseGroup$1 = function parseGroup() {
330
- var thisGroup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
331
- var groupName = thisGroup.name,
332
- _thisGroup$value = thisGroup.value,
333
- groupsOrFields = _thisGroup$value === void 0 ? {} : _thisGroup$value; // eslint-disable-next-line no-use-before-define
362
+ var parseFieldObject = function parseFieldObject(fieldObject) {
363
+ ensureKeysAreValid(Object.keys(fieldObject), FIELD_PROPERTY_KEYS);
364
+ var parsedFieldValue = parseFieldValue(fieldObject === null || fieldObject === void 0 ? void 0 : fieldObject.value);
334
365
 
335
- var _parseGroupsOrFields = parseGroupsOrFields(groupsOrFields),
336
- field = _parseGroupsOrFields.field,
337
- group = _parseGroupsOrFields.group;
366
+ if (parsedFieldValue === undefined) {
367
+ fieldObject.value;
368
+ var fieldObjectWithoutValue = _objectWithoutProperties__default["default"](fieldObject, _excluded$4);
369
+
370
+ return fieldObjectWithoutValue;
371
+ }
372
+
373
+ return _objectSpread$7(_objectSpread$7({}, fieldObject), {}, {
374
+ value: _toConsumableArray__default["default"](Array.isArray(parsedFieldValue) ? parsedFieldValue : [parsedFieldValue])
375
+ });
376
+ };
377
+
378
+ var parseField$1 = function parseField(field) {
379
+ if (isObject(field)) {
380
+ return parseFieldObject(field);
381
+ }
382
+
383
+ var parsedFieldValue = parseFieldValue(field);
384
+
385
+ if (parsedFieldValue === undefined) {
386
+ return undefined;
387
+ }
338
388
 
339
389
  return {
340
- name: groupName,
341
- group: group,
342
- field: field
390
+ value: _toConsumableArray__default["default"](Array.isArray(parsedFieldValue) ? parsedFieldValue : [parsedFieldValue])
343
391
  };
344
392
  };
345
393
 
346
- var parseGroupsOrFields = function parseGroupsOrFields(groupsOrFields) {
394
+ var parseGroupsAndFields = function parseGroupsAndFields(groupOrField) {
347
395
  var group = [];
348
396
  var field = [];
349
- Object.entries(groupsOrFields).forEach(function (_ref2) {
350
- var _ref3 = _slicedToArray__default["default"](_ref2, 2),
351
- name = _ref3[0],
352
- value = _ref3[1];
353
-
354
- if (shouldBeField({
355
- name: name,
356
- value: value
357
- })) {
358
- field.push(parseField$1({
359
- name: name,
360
- value: value
361
- }));
362
- } else if (Array.isArray(value)) {
363
- value.forEach(function (_ref4) {
364
- var groupName = _ref4.groupName,
365
- groupValue = _objectWithoutProperties__default["default"](_ref4, _excluded$4);
366
-
367
- group.push(parseGroup$1({
368
- name: groupName,
369
- value: groupValue
370
- }));
397
+ var groupAttributes = {};
398
+ Object.entries(groupOrField || {}).forEach(function (_ref) {
399
+ var _ref2 = _slicedToArray__default["default"](_ref, 2),
400
+ name = _ref2[0],
401
+ value = _ref2[1];
402
+
403
+ if (GROUP_PROPERTY_KEYS.includes(name)) {
404
+ groupAttributes = _objectSpread$7(_objectSpread$7({}, groupAttributes), {}, _defineProperty__default["default"]({}, name, value));
405
+ } else if (isField(value)) {
406
+ try {
407
+ field.push(_objectSpread$7({
408
+ name: name
409
+ }, parseField$1(value)));
410
+ } catch (error) {
411
+ throw Error(error.message + (name ? " for field \"".concat(name, "\"") : ''));
412
+ }
413
+ } else if (isGroup(value)) {
414
+ (Array.isArray(value) ? value : [value]).forEach(function (v) {
415
+ group.push(_objectSpread$7({
416
+ name: name
417
+ }, parseGroupsAndFields(v)));
371
418
  });
372
419
  } else {
373
- group.push(parseGroup$1({
374
- name: name,
375
- value: value
376
- }));
420
+ throw Error("Unhandled value for \"".concat(name, "\""));
377
421
  }
378
422
  });
379
- return {
380
- group: group,
423
+ return _objectSpread$7(_objectSpread$7(_objectSpread$7({}, groupAttributes), group.length > 0 ? {
424
+ group: group
425
+ } : {}), field.length > 0 ? {
381
426
  field: field
382
- };
427
+ } : {});
383
428
  };
384
429
 
385
430
  var parseTimespan$1 = function parseTimespan() {
386
431
  var timespan = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
387
432
 
388
- var _ref5 = timespan || {},
389
- _ref5$start = _ref5.start,
390
- start = _ref5$start === void 0 ? '-INF' : _ref5$start,
391
- _ref5$end = _ref5.end,
392
- end = _ref5$end === void 0 ? '+INF' : _ref5$end,
393
- groupsOrFields = _objectWithoutProperties__default["default"](_ref5, _excluded2$2);
433
+ var _ref3 = timespan || {},
434
+ _ref3$start = _ref3.start,
435
+ start = _ref3$start === void 0 ? '-INF' : _ref3$start,
436
+ _ref3$end = _ref3.end,
437
+ end = _ref3$end === void 0 ? '+INF' : _ref3$end,
438
+ groupsAndFields = _objectWithoutProperties__default["default"](_ref3, _excluded2$2);
394
439
 
395
- var _parseGroupsOrFields2 = parseGroupsOrFields(groupsOrFields),
396
- group = _parseGroupsOrFields2.group,
397
- field = _parseGroupsOrFields2.field;
440
+ var _parseGroupsAndFields = parseGroupsAndFields(groupsAndFields),
441
+ group = _parseGroupsAndFields.group,
442
+ field = _parseGroupsAndFields.field;
398
443
 
399
- return {
400
- start: start,
401
- end: end,
402
- field: field,
444
+ return _objectSpread$7(_objectSpread$7(_objectSpread$7({}, group ? {
403
445
  group: group
404
- };
446
+ } : {}), field ? {
447
+ field: field
448
+ } : {}), {}, {
449
+ start: start,
450
+ end: end
451
+ });
405
452
  };
406
453
  /**
407
454
  * Create a MetadataType object from a metadata object
408
- * @param {Object} metadata={} - object with metadata to create MetadataType object of
455
+ *
456
+ * @param {Object} metadata - object with metadata to create MetadataType object of
409
457
  * @returns {Object} MetadataType
410
458
  */
411
459
 
412
460
 
413
461
  var createMetadataType = function createMetadataType() {
414
462
  var metadata = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
415
- var metadataType = {};
416
-
417
- if (Array.isArray(metadata)) {
418
- metadataType.timespan = metadata.map(function (thisTimeSpan) {
419
- return parseTimespan$1(thisTimeSpan);
420
- });
421
- } else {
422
- var genericTimespan = parseTimespan$1(metadata);
423
- metadataType.timespan = [genericTimespan];
424
- }
425
-
426
- return metadataType;
463
+ return {
464
+ timespan: (Array.isArray(metadata) ? metadata : [metadata]).map(function (t) {
465
+ return parseTimespan$1(t);
466
+ })
467
+ };
427
468
  };
428
469
 
429
470
  var sortTimespanList = function sortTimespanList(timespan1, timespan2) {
@@ -859,13 +900,13 @@ var parseHighlightTimespan = function parseHighlightTimespan() {
859
900
  start = _ref.start,
860
901
  end = _ref.end;
861
902
 
862
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
863
- var _opts$arrayOnSingle = opts.arrayOnSingle,
864
- arrayOnSingle = _opts$arrayOnSingle === void 0 ? true : _opts$arrayOnSingle,
865
- _opts$joinValue = opts.joinValue,
866
- joinValue = _opts$joinValue === void 0 ? undefined : _opts$joinValue,
867
- _opts$timespanAsList = opts.timespanAsList,
868
- timespanAsList = _opts$timespanAsList === void 0 ? undefined : _opts$timespanAsList;
903
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
904
+ var _options$arrayOnSingl = options.arrayOnSingle,
905
+ arrayOnSingle = _options$arrayOnSingl === void 0 ? true : _options$arrayOnSingl,
906
+ _options$joinValue = options.joinValue,
907
+ joinValue = _options$joinValue === void 0 ? undefined : _options$joinValue,
908
+ _options$timespanAsLi = options.timespanAsList,
909
+ timespanAsList = _options$timespanAsLi === void 0 ? undefined : _options$timespanAsLi;
869
910
  var initialValue = timespanAsList ? {
870
911
  start: start,
871
912
  end: end