@vidispine/vdt-js 0.15.0-pre.18 → 0.15.0-pre.19

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
@@ -842,8 +842,8 @@ var TimeBase = /*#__PURE__*/function () {
842
842
 
843
843
  _classCallCheck(this, TimeBase);
844
844
 
845
- this.numerator = numerator;
846
- this.denominator = denominator;
845
+ this.numerator = Number(numerator);
846
+ this.denominator = Number(denominator);
847
847
  }
848
848
 
849
849
  _createClass(TimeBase, [{
@@ -1156,7 +1156,7 @@ var formatTimeBaseText = function formatTimeBaseText(timeBaseText) {
1156
1156
  var denominator = Number(timeBaseText);
1157
1157
 
1158
1158
  if (Number.isNaN(denominator)) {
1159
- throw new Error("timeBaseText must be a number or PAL,NTSC,NTSC30 - is ".concat(timeBaseText));
1159
+ throw new Error("timeBaseText must be a number or ".concat(Object.keys(CONSTANT_TIMEBASES).join(','), " - is ").concat(timeBaseText));
1160
1160
  }
1161
1161
 
1162
1162
  return formatTimeBaseType({
@@ -2506,5 +2506,5 @@ var parseHighlightTimespanList = function parseHighlightTimespanList() {
2506
2506
  }, {});
2507
2507
  };
2508
2508
 
2509
- export { createFacetType, createMetadataType, filterShapeSource, findNearestThumbnail, findTimespan, formatSeconds, formatSecondsPrecise, formatSmpte, formatTimeBase, formatTimeBaseText, formatTimeBaseType, formatTimeCodeText, formatTimeCodeType, getShapeMediaType, metadataTypeToWebVtt, parseAspectRatio, parseAudioComponent, parseBaseMediaInfoType, parseBinaryComponent, parseContainerComponent, parseFacetType, parseFileType, parseHighlightTimespan, parseHighlightTimespanList, parseKeyValuePairType, parseMediaConvertPreset, parseMetadataType, parseNowDate, parseShapeType, parseSimpleMetadataType, parseTimespan, parseTimespanList, parseTranscodePreset, parseVideoComponent, roles, sortTimespanList };
2509
+ export { TimeBase, TimeCode, createFacetType, createMetadataType, filterShapeSource, findNearestThumbnail, findTimespan, formatSeconds, formatSecondsPrecise, formatSmpte, formatTimeBase, formatTimeBaseText, formatTimeBaseType, formatTimeCodeText, formatTimeCodeType, getShapeMediaType, metadataTypeToWebVtt, parseAspectRatio, parseAudioComponent, parseBaseMediaInfoType, parseBinaryComponent, parseContainerComponent, parseFacetType, parseFileType, parseHighlightTimespan, parseHighlightTimespanList, parseKeyValuePairType, parseMediaConvertPreset, parseMetadataType, parseNowDate, parseShapeType, parseSimpleMetadataType, parseTimespan, parseTimespanList, parseTranscodePreset, parseVideoComponent, roles, sortTimespanList };
2510
2510
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/parseMetadataType.js","../../../node_modules/filesize/lib/filesize.js","../src/const/time.js","../src/time.js","../src/parseKeyValuePairType.js","../src/parseShapeType.js","../src/parseTranscodePreset.js","../src/parseFacetType.js","../src/parseNowDate.js","../src/createFacetType.js","../src/createMetadataType.js","../src/metadataTypeToWebVtt.js","../src/filterShapeSource.js","../src/getShapeMediaType.js","../src/findNearestThumbnail.js","../src/const/roles.js","../src/parseSimpleMetadataType.js","../src/parseHighlightTimespan.js"],"sourcesContent":["const sortTimespanList = ({ start: firstStart }, { start: secondStart }) => {\n const [first] = firstStart.split('@');\n const [second] = secondStart.split('@');\n if (Number(first) < Number(second)) {\n return -1;\n }\n if (Number(first) > Number(second)) {\n return 1;\n }\n return 0;\n};\n\nconst findTimespan = (metadataType = {}, start, end) => {\n const { timespan: timespanList = [] } = metadataType;\n return timespanList.find((timespan) => timespan.start === start && timespan.end === end);\n};\n\nconst parseValueList = (valueList = [], options = {}) => {\n const {\n arrayOnSingle = true,\n arrayOnSingleValue = true,\n joinValue,\n includeAttributes,\n includeValueAttributes,\n } = options;\n if (includeAttributes || includeValueAttributes) return valueList;\n const valueArray = [];\n valueList.forEach((thisValue) => {\n if (thisValue.value) valueArray.push(thisValue.value);\n });\n if (joinValue) return valueArray.join(joinValue);\n if ((arrayOnSingle === false || arrayOnSingleValue === false) && valueArray.length === 1) {\n return valueArray[0];\n }\n return valueArray;\n};\n\nconst parseField = (field = {}, options = {}) => {\n const { includeAttributes, includeFieldAttributes } = options;\n const { value = [], ...attributes } = field;\n const parsedValueList = parseValueList(value, options);\n if (includeAttributes || includeFieldAttributes) return { ...attributes, value: parsedValueList };\n return parsedValueList;\n};\n\nconst parseFieldList = (fieldList = [], options = {}) => {\n const { joinValue, includeAttributes, includeFieldAttributes, includeValueAttributes } = options;\n const output = {};\n const { fieldAsList } = options;\n if (fieldAsList) {\n return fieldList.map((thisField) => parseField(thisField, options));\n }\n\n fieldList.forEach((thisField) => {\n const { name: key } = thisField;\n const parsedField = parseField(thisField, options);\n if (output[key]) {\n if (includeAttributes || includeFieldAttributes) {\n const { value: currentValue } = output[key];\n const { value: parsedValue } = parsedField;\n if (joinValue && !includeAttributes && !includeValueAttributes) {\n output[key].value = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key].value = parsedValue.concat(currentValue);\n }\n } else {\n const currentValue = output[key];\n const parsedValue = parsedField;\n if (joinValue) {\n output[key] = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key] = parsedValue.concat(currentValue);\n }\n }\n } else {\n output[key] = parsedField;\n }\n });\n return output;\n};\n\nconst parseGroup = (group = {}, options = {}) => {\n const {\n includeAttributes,\n includeGroupAttributes,\n flat,\n flatGroup,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = group;\n const parsedFieldList = parseFieldList(fieldList, options);\n const parsedGroupList = parseGroupList(groupList, options); // eslint-disable-line no-use-before-define,max-len\n const output = {};\n if (includeAttributes || includeGroupAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatGroup) {\n if (groupAsList) {\n Object.assign(output, { group: parsedGroupList });\n } else {\n Object.assign(output, parsedGroupList);\n }\n if (fieldAsList) {\n Object.assign(output, { field: parsedFieldList });\n } else {\n Object.assign(output, parsedFieldList);\n }\n } else {\n Object.assign(output, { field: parsedFieldList });\n Object.assign(output, { group: parsedGroupList });\n }\n return output;\n};\n\nconst parseGroupList = (groupList = [], options = {}) => {\n const { groupAsList } = options;\n if (groupAsList) {\n return groupList.map((thisGroup) => parseGroup(thisGroup, options));\n }\n const output = {};\n groupList.forEach((thisGroup) => {\n const { name: key } = thisGroup;\n const parsedGroup = parseGroup(thisGroup, options);\n if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroupList } = parsedGroup;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroupList };\n } else {\n output[key] = parsedGroup;\n }\n });\n return output;\n};\n\nconst parseTimespan = (timespan = {}, options = {}) => {\n const {\n includeAttributes,\n includeTimespanAttributes,\n flat,\n flatTimespan,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = timespan;\n const field = parseFieldList(fieldList, options);\n const group = parseGroupList(groupList, options);\n const output = {};\n if (includeAttributes || includeTimespanAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatTimespan) {\n if (groupAsList) {\n Object.assign(output, { group });\n } else {\n Object.assign(output, group);\n }\n if (fieldAsList) {\n Object.assign(output, { field });\n } else {\n Object.assign(output, field);\n }\n } else {\n Object.assign(output, { field });\n Object.assign(output, { group });\n }\n return output;\n};\n\nconst parseTimespanList = (timespanList = [], options = {}) => {\n const { joinTimespan, flat } = options;\n const { timespanAsList } = options;\n if (timespanAsList) {\n return timespanList.map((thisTimespan) => parseTimespan(thisTimespan, options));\n }\n let output = {};\n timespanList.forEach((thisTimespan) => {\n const { start, end } = thisTimespan;\n const key = [start, end].join(joinTimespan || '_');\n const parsedTimespan = parseTimespan(thisTimespan, options);\n if (flat) {\n output = { ...output, ...parsedTimespan };\n } else if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroup } = parsedTimespan;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroup };\n } else {\n output[key] = parsedTimespan;\n }\n });\n return output;\n};\n\n/**\n * Parses MetadataType into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} metadataType - The response from the API.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.includeAttributes - include attributes on all objects.\n * @param {Object} options.includeMetadataAttributes - include attributes on root.\n * @param {Object} options.includeTimespanAttributes - include attributes on timespans.\n * @param {Object} options.includeGroupAttributes - include attributes on groups.\n * @param {Object} options.includeFieldAttributes - include attributes on fields.\n * @param {Object} options.includeValueAttributes - include attributes on values.\n * @param {Object} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan.\n * @param {Object} options.flatGroup - Flatten group.\n * @param {Object} options.sortTimespan - Sort timespan by start time.\n * @param {Object} options.timespanAsList -Return timespans as list.\n * @param {Object} options.groupAsList -Return groups as list.\n * @param {Object} options.fieldAsList -Return fields as list.\n */\nconst parseMetadataType = (metadataType = {}, options = {}) => {\n const { includeAttributes, includeMetadataAttributes, sortTimespan } = options;\n const { timespan: timespanList = [], ...attributes } = metadataType;\n if (sortTimespan) timespanList.sort(sortTimespanList);\n const timespan = parseTimespanList(timespanList, options);\n if (includeAttributes || includeMetadataAttributes) {\n Object.assign(timespan, attributes);\n }\n return timespan;\n};\n\nexport { parseTimespan, parseTimespanList, parseMetadataType, sortTimespanList, findTimespan };\nexport default parseMetadataType;\n","\"use strict\";\r\n\r\n/**\r\n * filesize\r\n *\r\n * @copyright 2020 Jason Mulligan <jason.mulligan@avoidwork.com>\r\n * @license BSD-3-Clause\r\n * @version 6.1.0\r\n */\r\n(function (global) {\r\n var b = /^(b|B)$/,\r\n symbol = {\r\n iec: {\r\n bits: [\"b\", \"Kib\", \"Mib\", \"Gib\", \"Tib\", \"Pib\", \"Eib\", \"Zib\", \"Yib\"],\r\n bytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\r\n },\r\n jedec: {\r\n bits: [\"b\", \"Kb\", \"Mb\", \"Gb\", \"Tb\", \"Pb\", \"Eb\", \"Zb\", \"Yb\"],\r\n bytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\r\n }\r\n },\r\n fullform = {\r\n iec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\r\n jedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\r\n };\r\n /**\r\n * filesize\r\n *\r\n * @method filesize\r\n * @param {Mixed} arg String, Int or Float to transform\r\n * @param {Object} descriptor [Optional] Flags\r\n * @return {String} Readable file size String\r\n */\r\n\r\n function filesize(arg) {\r\n var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var result = [],\r\n val = 0,\r\n e = void 0,\r\n base = void 0,\r\n bits = void 0,\r\n ceil = void 0,\r\n full = void 0,\r\n fullforms = void 0,\r\n locale = void 0,\r\n localeOptions = void 0,\r\n neg = void 0,\r\n num = void 0,\r\n output = void 0,\r\n round = void 0,\r\n unix = void 0,\r\n separator = void 0,\r\n spacer = void 0,\r\n standard = void 0,\r\n symbols = void 0;\r\n\r\n if (isNaN(arg)) {\r\n throw new TypeError(\"Invalid number\");\r\n }\r\n\r\n bits = descriptor.bits === true;\r\n unix = descriptor.unix === true;\r\n base = descriptor.base || 2;\r\n round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;\r\n locale = descriptor.locale !== void 0 ? descriptor.locale : \"\";\r\n localeOptions = descriptor.localeOptions || {};\r\n separator = descriptor.separator !== void 0 ? descriptor.separator : \"\";\r\n spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? \"\" : \" \";\r\n symbols = descriptor.symbols || {};\r\n standard = base === 2 ? descriptor.standard || \"jedec\" : \"jedec\";\r\n output = descriptor.output || \"string\";\r\n full = descriptor.fullform === true;\r\n fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];\r\n e = descriptor.exponent !== void 0 ? descriptor.exponent : -1;\r\n num = Number(arg);\r\n neg = num < 0;\r\n ceil = base > 2 ? 1000 : 1024; // Flipping a negative number to determine the size\r\n\r\n if (neg) {\r\n num = -num;\r\n } // Determining the exponent\r\n\r\n\r\n if (e === -1 || isNaN(e)) {\r\n e = Math.floor(Math.log(num) / Math.log(ceil));\r\n\r\n if (e < 0) {\r\n e = 0;\r\n }\r\n } // Exceeding supported length, time to reduce & multiply\r\n\r\n\r\n if (e > 8) {\r\n e = 8;\r\n }\r\n\r\n if (output === \"exponent\") {\r\n return e;\r\n } // Zero is now a special case because bytes divide by 1\r\n\r\n\r\n if (num === 0) {\r\n result[0] = 0;\r\n result[1] = unix ? \"\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n } else {\r\n val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\r\n\r\n if (bits) {\r\n val = val * 8;\r\n\r\n if (val >= ceil && e < 8) {\r\n val = val / ceil;\r\n e++;\r\n }\r\n }\r\n\r\n result[0] = Number(val.toFixed(e > 0 ? round : 0));\r\n\r\n if (result[0] === ceil && e < 8 && descriptor.exponent === void 0) {\r\n result[0] = 1;\r\n e++;\r\n }\r\n\r\n result[1] = base === 10 && e === 1 ? bits ? \"kb\" : \"kB\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n\r\n if (unix) {\r\n result[1] = standard === \"jedec\" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, \"\") : result[1];\r\n\r\n if (b.test(result[1])) {\r\n result[0] = Math.floor(result[0]);\r\n result[1] = \"\";\r\n }\r\n }\r\n } // Decorating a 'diff'\r\n\r\n\r\n if (neg) {\r\n result[0] = -result[0];\r\n } // Applying custom symbol\r\n\r\n\r\n result[1] = symbols[result[1]] || result[1];\r\n\r\n if (locale === true) {\r\n result[0] = result[0].toLocaleString();\r\n } else if (locale.length > 0) {\r\n result[0] = result[0].toLocaleString(locale, localeOptions);\r\n } else if (separator.length > 0) {\r\n result[0] = result[0].toString().replace(\".\", separator);\r\n } // Returning Array, Object, or String (default)\r\n\r\n\r\n if (output === \"array\") {\r\n return result;\r\n }\r\n\r\n if (full) {\r\n result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? \"bit\" : \"byte\") + (result[0] === 1 ? \"\" : \"s\");\r\n }\r\n\r\n if (output === \"object\") {\r\n return {\r\n value: result[0],\r\n symbol: result[1],\r\n exponent: e\r\n };\r\n }\r\n\r\n return result.join(spacer);\r\n } // Partial application for functional programming\r\n\r\n\r\n filesize.partial = function (opt) {\r\n return function (arg) {\r\n return filesize(arg, opt);\r\n };\r\n }; // CommonJS, AMD, script tag\r\n\r\n\r\n if (typeof exports !== \"undefined\") {\r\n module.exports = filesize;\r\n } else if (typeof define === \"function\" && define.amd !== void 0) {\r\n define(function () {\r\n return filesize;\r\n });\r\n } else {\r\n global.filesize = filesize;\r\n }\r\n})(typeof window !== \"undefined\" ? window : global);\r\n","export const PAL = 'PAL';\nexport const NTSC = 'NTSC';\nexport const NTSC30 = 'NTSC30';\n\nexport const CONSTANT_TIMEBASES = {\n [PAL]: { denominator: 25, numerator: 1 },\n [NTSC]: { denominator: 30000, numerator: 1001 },\n [NTSC30]: { denominator: 30, numerator: 1 },\n};\n\nexport const FRAME_SEPARATORS = {\n ':': { dropFrame: false, field: 2 },\n ';': { dropFrame: true, field: 2 },\n '.': { dropFrame: false, field: 1 },\n ',': { dropFrame: true, field: 1 },\n};\n","/* eslint max-classes-per-file: \"off\" */\nimport { CONSTANT_TIMEBASES, FRAME_SEPARATORS } from './const/time';\n\nconst splitSmpte = (smpteText) => {\n const hasDropFrameSeparator = smpteText.match(/[^0-9:\\-_]/);\n\n let hhmmssff;\n let frameOptions = {};\n if (hasDropFrameSeparator) {\n const [frameSeparator] = hasDropFrameSeparator;\n const [hhmmss, splitFrames] = smpteText.split(frameSeparator);\n hhmmssff = [...hhmmss.split(':'), splitFrames];\n frameOptions = FRAME_SEPARATORS[frameSeparator] || {};\n } else {\n hhmmssff = smpteText.split(':');\n }\n\n hhmmssff = hhmmssff.map(Number);\n\n if (hhmmssff.length > 4 || hhmmssff.some((n) => Number.isNaN(n))) {\n throw new Error('Invalid SMPTE timecode');\n }\n\n return [hhmmssff, frameOptions];\n};\n\nconst getDropFrames = (roundedFrameRate) => (roundedFrameRate === 60 ? 4 : 2);\n\nconst getRoundedFrameRate = (timeBase) => Math.round(timeBase.denominator / timeBase.numerator);\n\nconst countSamples = (hh, mm, ss, ff, { dropFrame, roundedFrameRate }) => {\n if (!dropFrame) {\n return hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;\n }\n\n if (![30, 60].includes(roundedFrameRate)) {\n throw new Error('Cannot use dropframe with non NTSC timebase');\n }\n\n const dropFrames = getDropFrames(roundedFrameRate);\n\n const shouldDropMinute = mm % 10 !== 0;\n const shouldDropSecond = shouldDropMinute && ss === 0;\n\n const hourFrames = hh * (3600 * roundedFrameRate - 54 * dropFrames);\n const minuteFrames = mm * 60 * roundedFrameRate - (mm - Math.ceil(mm / 10)) * dropFrames;\n const secondFrames = ss * roundedFrameRate - (shouldDropMinute && ss > 1 ? dropFrames : 0);\n\n if (shouldDropSecond && ff < dropFrames) {\n throw new Error('Invalid ff');\n }\n\n const frameFrames = shouldDropSecond ? ff - dropFrames : ff;\n\n return hourFrames + minuteFrames + secondFrames + frameFrames;\n};\n\nfunction countDroppedFrames(frames, roundedFrameRate) {\n const dropFrames = getDropFrames(roundedFrameRate);\n const oneMinuteUndroppedFrames = 60 * roundedFrameRate;\n const oneMinuteDroppedFrames = 60 * roundedFrameRate - dropFrames;\n const tenMinuteFrames = 10 * (oneMinuteUndroppedFrames - dropFrames) + dropFrames;\n\n const tenMinuteChunks = Math.floor(frames / tenMinuteFrames);\n const minuteRemainder = Math.max(0, (frames % tenMinuteFrames) - oneMinuteUndroppedFrames);\n const oneMinuteChunks = Math.floor(minuteRemainder / oneMinuteDroppedFrames);\n const frameRemainder = minuteRemainder % oneMinuteDroppedFrames;\n const frameChunks = frameRemainder > 0 ? dropFrames : 0;\n\n return tenMinuteChunks * 9 * dropFrames + oneMinuteChunks * dropFrames + frameChunks;\n}\n\nclass TimeBase {\n constructor({ numerator = 1, denominator = 1 } = {}) {\n this.numerator = numerator;\n this.denominator = denominator;\n }\n\n toJSON() {\n return {\n denominator: this.denominator,\n numerator: this.numerator,\n };\n }\n\n toConstant() {\n let constant;\n Object.entries(CONSTANT_TIMEBASES).find((thisTimeBase) => {\n const [thisTimeBaseText, thisTimeBaseType] = thisTimeBase;\n const { numerator, denominator } = thisTimeBaseType;\n if (numerator === this.numerator && denominator === this.denominator) {\n constant = thisTimeBaseText;\n return true;\n }\n return false;\n });\n return constant;\n }\n\n toText(useConstant = false) {\n if (useConstant) {\n const timeBaseText = this.toConstant();\n if (timeBaseText) return timeBaseText;\n }\n if (this.numerator > 1) {\n const timeBaseText = [this.denominator, this.numerator].join(':');\n return timeBaseText;\n }\n const timeBaseText = String(this.denominator);\n return timeBaseText;\n }\n\n toRate(useConstant = false, round = true) {\n if (useConstant) {\n const rate = this.toConstant();\n if (rate) return rate;\n }\n const rate = this.denominator / this.numerator;\n if (Number.isInteger(rate)) {\n return rate;\n }\n return round ? rate.toFixed(2) : rate;\n }\n}\n\nconst isDropFrameTimeBase = ({ numerator, denominator }) => {\n return numerator === 1001 && (denominator === 60000 || denominator === 30000);\n};\n\nclass TimeCode {\n constructor({ samples = 0, timeBase } = {}, { dropFrame, field = 2 } = {}) {\n if (typeof samples === 'number') {\n this.samples = samples;\n } else if (typeof samples === 'string') {\n if (samples === '-INF') {\n this.samples = -Infinity;\n } else if (samples === '+INF') {\n this.samples = Infinity;\n } else {\n this.samples = Number(samples);\n }\n } else {\n throw new Error(`samples is not number/string/-Inf/+Inf is: ${samples}`);\n }\n this.timeBase = new TimeBase(timeBase);\n this.dropFrame = dropFrame === undefined ? isDropFrameTimeBase(this.timeBase) : dropFrame;\n this.field = field;\n }\n\n add(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples + samples, timeBase: this.timeBase });\n }\n\n subtract(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples - samples, timeBase: this.timeBase });\n }\n\n conformTimeBase(conformTo) {\n let timeBase = conformTo;\n if (conformTo instanceof TimeCode === false) {\n timeBase = new TimeBase(conformTo);\n }\n const samples = Math.round(\n this.samples / (this.timeBase.toRate(false, false) / timeBase.toRate(false, false)),\n );\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode);\n }\n\n toJSON() {\n return {\n samples: this.samples,\n timeBase: this.timeBase,\n };\n }\n\n toText() {\n let timeCodeText = String(this.samples);\n const timeBaseText = this.timeBase.toText();\n if (timeBaseText !== '1') {\n timeCodeText = [this.samples, timeBaseText].join('@');\n }\n return timeCodeText;\n }\n\n toSeconds() {\n const { numerator, denominator } = this.timeBase;\n return this.samples * (numerator / denominator);\n }\n\n toTime() {\n const roundedFrameRate = getRoundedFrameRate(this.timeBase);\n const totalSamples =\n this.samples + (this.dropFrame ? countDroppedFrames(this.samples + 1, roundedFrameRate) : 0);\n\n const hours = Math.floor(totalSamples / (3600 * roundedFrameRate));\n const minutes = Math.floor(totalSamples / (60 * roundedFrameRate)) % 60;\n const seconds = Math.floor(totalSamples / roundedFrameRate) % 60;\n const frames = totalSamples % roundedFrameRate;\n const partialSeconds = frames / roundedFrameRate;\n return {\n hours,\n minutes,\n seconds,\n frames,\n partialSeconds,\n };\n }\n\n toDuration({ format } = {}) {\n const { hours, minutes, seconds } = this.toTime();\n if (typeof format === 'string') {\n if (format.toLowerCase() === 'hhmmss') {\n return [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n }\n if (hours) {\n return [\n hours.toFixed(),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n if (minutes >= 10) {\n return [minutes.toFixed().padStart(2, '0'), seconds.toFixed().padStart(2, '0')].join(':');\n }\n return [minutes.toFixed(), seconds.toFixed().padStart(2, '0')].join(':');\n }\n\n toSmpte() {\n if (this.samples === -Infinity) return '00:00:00:00';\n const { hours, minutes, seconds, frames } = this.toTime();\n const hhmmss = [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n const [frameSeparator = ':'] = Object.entries(FRAME_SEPARATORS).find((thisSeparator) => {\n const [, { dropFrame, field }] = thisSeparator;\n return dropFrame === this.dropFrame && field === this.field;\n });\n return [hhmmss, frames.toFixed().padStart(2, '0')].join(frameSeparator);\n }\n}\n\nconst formatTimeBaseType = (timeBase) => new TimeBase(timeBase);\n\nconst formatTimeBaseText = (timeBaseText) => {\n if (timeBaseText === undefined) {\n return formatTimeBaseType();\n }\n if (typeof timeBaseText === 'number') {\n return formatTimeBaseType({ denominator: timeBaseText });\n }\n if (timeBaseText.includes(':')) {\n const [denominator, numerator] = timeBaseText.split(':');\n return formatTimeBaseType({ denominator, numerator });\n }\n if (Object.keys(CONSTANT_TIMEBASES).includes(timeBaseText)) {\n return formatTimeBaseType(CONSTANT_TIMEBASES[timeBaseText]);\n }\n const denominator = Number(timeBaseText);\n if (Number.isNaN(denominator)) {\n throw new Error(`timeBaseText must be a number or PAL,NTSC,NTSC30 - is ${timeBaseText}`);\n }\n return formatTimeBaseType({ denominator });\n};\n\nconst formatTimeBase = (timeBase) => {\n if (typeof timeBase === 'object') {\n return formatTimeBaseType(timeBase);\n }\n return formatTimeBaseText(timeBase);\n};\n\nconst formatTimeCodeType = (timeCode, options) => new TimeCode(timeCode, options);\n\nconst formatTimeCodeText = (timeCodeText, options) => {\n if (timeCodeText === undefined) {\n const timeCode = { samples: 0 };\n return formatTimeCodeType(timeCode, options);\n }\n if (typeof timeCodeText === 'number') {\n const timeCode = { samples: timeCodeText };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText.includes('@')) {\n const [samplesString, timeBaseText] = timeCodeText.split('@');\n const samples = Number(samplesString);\n const timeBase = formatTimeBaseText(timeBaseText);\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '-INF') {\n const samples = -Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '+INF') {\n const samples = Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n const samples = Number(timeCodeText);\n if (Number.isNaN(samples)) {\n throw new Error(`timeBaseText must be a number or sample@timeBase - is ${timeCodeText}`);\n }\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n};\n\nconst formatSeconds = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { denominator = 1, numerator = 1 } = timeBase;\n const samples = seconds * (denominator / numerator);\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSecondsPrecise = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { numerator = 1 } = timeBase;\n let { denominator = 1 } = timeBase;\n if (!Number.isInteger(seconds)) {\n const decimalPlaces = String(seconds).split('.')[1].length;\n denominator *= 10 ** decimalPlaces;\n }\n const samples = (seconds * (denominator / numerator)).toFixed();\n const timeCode = { samples, timeBase: { denominator, numerator } };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSmpte = (smpteText, timeBaseText, options = {}) => {\n if (smpteText === undefined) {\n const timeBase = formatTimeBase(timeBaseText);\n const timeCode = { samples: 0, timeBase };\n return formatTimeCodeType(timeCode);\n }\n if (typeof smpteText !== 'string') {\n throw new Error(`smpteText must be a string, is ${smpteText}`);\n }\n\n const [[hh, mm, ss, ff = 0], frameOptions] = splitSmpte(smpteText);\n const { dropFrame = false } = frameOptions;\n\n const timeBase = formatTimeBase(timeBaseText);\n const roundedFrameRate = getRoundedFrameRate(timeBase);\n\n if (mm >= 60 || mm < 0 || ss >= 60 || ss < 0 || ff >= roundedFrameRate || ff < 0) {\n throw new Error('Invalid mm, ss or ff');\n }\n\n const samples = countSamples(hh, mm, ss, ff, { dropFrame, roundedFrameRate });\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, { ...frameOptions, ...options });\n};\n\nexport {\n formatSeconds,\n formatSecondsPrecise,\n formatTimeBaseType,\n formatTimeBaseText,\n formatTimeCodeType,\n formatTimeCodeText,\n formatTimeBase,\n formatSmpte,\n};\n","const parseKeyValuePairType = (keyValuePairType = []) => {\n const keyValuePairTypeReducer = (a, { key, value }) => ({ ...a, [key]: value });\n return keyValuePairType.reduce(keyValuePairTypeReducer, {});\n};\n\nexport default parseKeyValuePairType;\n","import parseFileSize from 'filesize';\nimport { formatTimeBaseText, formatTimeCodeType } from './time';\nimport parseKeyValuePairType from './parseKeyValuePairType';\n\nconst sampleRateSymbols = { kB: 'kHz', B: 'Hz', mB: 'mHz' };\nconst bitRateSymbols = { kB: 'kbps', B: 'bps', MB: 'mbps' };\n\nconst gcd = (a, b) => (b ? gcd(b, a % b) : a);\n\nconst parseAspectRatio = ({ width, height }) => {\n const denominator = gcd(width, height);\n let widthRatio = width / denominator;\n let heightRatio = height / denominator;\n if (widthRatio > 21) {\n heightRatio = 1;\n widthRatio = (width / height).toFixed(2);\n }\n return [widthRatio, heightRatio].join(':');\n};\n\nconst parseBaseMediaInfoType = (baseMediaInfoType = {}) => {\n const { property: keyValuePairType, ...props } = baseMediaInfoType;\n const parsedKeyValuePairType = parseKeyValuePairType(keyValuePairType);\n return { ...parsedKeyValuePairType, ...props };\n};\n\nconst parseFileType = (fileType) => {\n const { uri: uriList = [], size: fileSizeBytes, hash, path } = fileType;\n const [uri] = uriList;\n const fileSize = fileSizeBytes !== undefined ? parseFileSize(fileSizeBytes) : '';\n const fileName = path ? path.split('/').pop() : undefined;\n return {\n uri,\n hash,\n fileSize,\n fileSizeBytes,\n path,\n fileName,\n };\n};\n\nconst parseContainerComponent = (containerComponent) => {\n const {\n mediaInfo = {},\n metadata = [],\n file: fileList,\n duration: durationTimeCode,\n startTimestamp,\n startTimecode,\n timeCodeTimeBase,\n } = containerComponent;\n const containerMetadata = parseKeyValuePairType(metadata);\n const containerMediaInfo = parseBaseMediaInfoType(mediaInfo);\n let { Format: containerFormat } = containerMediaInfo;\n const {\n Video_Format_List: videoFormat,\n Audio_Format_List: audioFormat,\n Text_Format_List: textFormat,\n } = containerMediaInfo;\n if (containerFormat === undefined) {\n const { format } = containerComponent;\n containerFormat = format;\n if (format && format.includes(',')) {\n const formatList = format.split(',');\n [containerFormat] = formatList;\n }\n }\n let parsedContainerComponent = {\n containerFormat,\n videoFormat,\n audioFormat,\n textFormat,\n containerMetadata,\n containerMediaInfo,\n };\n if (containerMetadata.componentOriginalFilename) {\n parsedContainerComponent.originalFilename = containerMetadata.componentOriginalFilename;\n }\n if (durationTimeCode !== undefined && durationTimeCode.samples !== 0) {\n parsedContainerComponent.durationTimeCode = formatTimeCodeType(durationTimeCode);\n parsedContainerComponent.duration = parsedContainerComponent.durationTimeCode.toDuration();\n }\n if (startTimestamp) {\n parsedContainerComponent.startTimestamp = formatTimeCodeType(startTimestamp);\n }\n if (startTimecode !== undefined && timeCodeTimeBase) {\n parsedContainerComponent.startTimecode = formatTimeCodeType({\n samples: startTimecode,\n timeBase: timeCodeTimeBase,\n });\n }\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedContainerComponent = {\n ...parsedContainerComponent,\n ...parsedFileType,\n };\n }\n return parsedContainerComponent;\n};\n\nconst parseVideoComponent = (videoComponent) => {\n const {\n codec: videoCodec,\n bitrate,\n fieldOrder,\n resolution = {},\n mediaInfo = {},\n metadata = [],\n } = videoComponent;\n const videoMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const videoMetadata = parseKeyValuePairType(metadata);\n const {\n Format: videoFormat,\n 'Frame rate': timeBaseText,\n 'Color space': colorSpace,\n 'Color primaries': colorPrimaries,\n Colorimetry: chromaSubsampling,\n } = videoMediaInfo;\n let timeBase;\n const { averageFrameRate, realBaseFrameRate } = videoComponent;\n if (realBaseFrameRate !== undefined) {\n timeBase = {\n numerator: realBaseFrameRate.denominator,\n denominator: realBaseFrameRate.numerator,\n };\n } else if (timeBaseText !== undefined) {\n timeBase = formatTimeBaseText(timeBaseText);\n } else if (averageFrameRate !== undefined) {\n timeBase = {\n numerator: averageFrameRate.denominator,\n denominator: averageFrameRate.numerator,\n };\n }\n let { 'Frame count': samples } = videoMediaInfo;\n if (samples === undefined) {\n const { numberOfPackets } = videoComponent;\n if (numberOfPackets !== undefined) samples = numberOfPackets;\n }\n let timeCode;\n let frameRate;\n let smpte;\n if (samples && timeBase) {\n timeCode = formatTimeCodeType({ samples, timeBase });\n frameRate = timeCode.timeBase.toRate(true);\n smpte = timeCode.toSmpte(true);\n }\n const { height, width } = resolution;\n const aspectRatio = parseAspectRatio(resolution);\n const dimension = `${width}x${height}`;\n const videoBitrate = bitrate ? parseFileSize(bitrate, { bits: true }) : undefined;\n return {\n videoFormat,\n dimension,\n frameRate,\n height,\n width,\n timeBase,\n timeCode,\n videoCodec,\n smpte,\n videoBitrate,\n fieldOrder,\n colorSpace,\n chromaSubsampling,\n aspectRatio,\n colorPrimaries,\n videoMetadata,\n videoMediaInfo,\n };\n};\n\nconst parseAudioComponent = (audioComponent) => {\n const {\n timeBase = {},\n channelCount: audioChannels,\n codec: audioCodec,\n mediaInfo = {},\n bitrate,\n metadata = [],\n } = audioComponent;\n const audioMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const audioMetadata = parseKeyValuePairType(metadata);\n const {\n Format: audioFormat,\n Resolution: audioBitDepth,\n Bit_rate_mode: audioBitRateMode,\n } = audioMediaInfo;\n const audioSamplerateSamples = timeBase.denominator\n ? timeBase.denominator / timeBase.numerator\n : undefined;\n const audioSamplerate = audioSamplerateSamples\n ? parseFileSize(audioSamplerateSamples, { base: 10, round: 1, symbols: sampleRateSymbols })\n : undefined;\n const audioBitrate = bitrate\n ? parseFileSize(bitrate, { base: 10, round: 2, symbols: bitRateSymbols })\n : undefined;\n return {\n audioFormat,\n audioCodec,\n audioSamplerate,\n audioSamplerateSamples,\n audioBitDepth,\n audioBitrate,\n audioBitRateMode,\n audioChannels,\n audioMediaInfo,\n audioMetadata,\n };\n};\n\nconst parseBinaryComponent = (binaryComponent) => {\n const { file: fileList, mediaInfo = {}, metadata = [] } = binaryComponent;\n const binaryMetadata = parseKeyValuePairType(metadata);\n const binaryMediaInfo = parseBaseMediaInfoType(mediaInfo);\n\n let parsedBinaryComponent = { binaryMetadata, binaryMediaInfo };\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedBinaryComponent = {\n ...parsedBinaryComponent,\n ...parsedFileType,\n };\n }\n return parsedBinaryComponent;\n};\n\nconst parseShapeType = (shapeType = {}) => {\n let parsedShape = {};\n const {\n containerComponent,\n videoComponent: videoComponentList,\n audioComponent: audioComponentList,\n binaryComponent: binaryComponentList,\n mimeType: mimeTypeList = [],\n tag: tagList = [],\n } = shapeType;\n [parsedShape.tag] = tagList;\n [parsedShape.mimeType] = mimeTypeList;\n if (containerComponent) {\n const parsedContainerComponent = parseContainerComponent(containerComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedContainerComponent,\n };\n }\n if (videoComponentList) {\n const [videoComponent] = videoComponentList;\n const parsedVideoComponent = parseVideoComponent(videoComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedVideoComponent,\n };\n }\n if (audioComponentList) {\n const [audioComponent] = audioComponentList;\n const parsedAudioComponent = parseAudioComponent(audioComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedAudioComponent,\n };\n }\n if (binaryComponentList) {\n const [binaryComponent] = binaryComponentList;\n const parsedBinaryComponent = parseBinaryComponent(binaryComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedBinaryComponent,\n };\n }\n return parsedShape;\n};\n\nexport {\n parseAspectRatio,\n parseBaseMediaInfoType,\n parseFileType,\n parseContainerComponent,\n parseVideoComponent,\n parseAudioComponent,\n parseBinaryComponent,\n parseShapeType,\n};\n","import { formatTimeBaseType } from './time';\nimport { parseAspectRatio } from './parseShapeType';\n\nconst parseMediaConvertPreset = (transcodePresetType) => {\n const output = {};\n const { description, mediaconvert: { outputSetting = [] } = {} } = transcodePresetType;\n output.description = description;\n if (outputSetting.length === 0) return output;\n const mc = JSON.parse(outputSetting[0]);\n const { Settings: { ContainerSettings, VideoDescription, AudioDescriptions } = {} } = mc;\n output.containerFormat = ContainerSettings.Container;\n if (ContainerSettings) {\n output.containerFormat = ContainerSettings.Container;\n }\n if (VideoDescription) {\n const { CodecSettings = {} } = VideoDescription;\n const { Codec, ...otherSettings } = CodecSettings;\n output.videoFormat = Codec;\n const { Height: height, Width: width } = VideoDescription;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.fieldOrder = codecSpecs.InterlaceMode;\n if (output.fieldOrder && output.fieldOrder.includes('TOP')) output.fieldOrder = 'interlaced';\n output.videoBitrate = codecSpecs.Bitrate;\n const numerator = codecSpecs.FramerateDenominator; // other way round to vs ¯\\_(ツ)_/¯\n const denominator = codecSpecs.FramerateNumerator;\n const timeBase = formatTimeBaseType({ denominator, numerator });\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n }\n if (AudioDescriptions && AudioDescriptions.length > 0) {\n const { CodecSettings = {} } = AudioDescriptions[0];\n const { Codec, ...otherSettings } = CodecSettings;\n output.audioFormat = Codec;\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.audioSamplerate = codecSpecs.SampleRate;\n output.audioBitrate = codecSpecs.Bitrate;\n output.audioBitRateMode = codecSpecs.RateControlMode;\n }\n }\n return output;\n};\n\nconst parseTranscodePreset = (transcodePresetType) => {\n const output = {};\n const { description, format, audio, video, mediaconvert } = transcodePresetType;\n if (mediaconvert) return parseMediaConvertPreset(transcodePresetType);\n output.description = description;\n output.containerFormat = format;\n if (video) {\n output.videoFormat = video.codec;\n output.videoBitrate = video.bitrate;\n if (video.framerate) {\n const timeBase = formatTimeBaseType(video.framerate);\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n if (video.scaling) {\n const { height, width } = video.scaling;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n }\n }\n if (audio) {\n const { codec: audioFormat, channel } = audio;\n output.audioFormat = audioFormat;\n if (channel) output.audioChannels = channel.length;\n }\n return output;\n};\n\nexport { parseTranscodePreset, parseMediaConvertPreset };\n","const parseFacetType = (facetType = []) => {\n const output = {};\n const facetFieldReducer = (a, { fieldValue, value }) => ({ ...a, [fieldValue]: value });\n facetType.forEach(({ name, field, count }) => {\n output[name || field] = count.reduce(facetFieldReducer, {});\n });\n return output;\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport { parseFacetType };\n","/* Note that VS may calculate +/- unit in another way */\nconst parseNowDate = (value = 'NOW') => {\n if (value.startsWith('NOW')) {\n if (value === 'NOW') return new Date();\n const sign = value[3];\n const number = Number(value.match(/(\\d+)/)[0]);\n const unit = value.match(/(\\d.*)/)[0].replace(/\\d/g, '');\n const nowDiff = new Date();\n // eslint-disable-next-line default-case\n switch (unit) {\n case 'HOUR':\n case 'HOURS':\n if (sign === '+') nowDiff.setHours(nowDiff.getHours() + number);\n if (sign === '-') nowDiff.setHours(nowDiff.getHours() - number);\n break;\n case 'DAY':\n case 'DAYS':\n if (sign === '+') nowDiff.setDate(nowDiff.getDate() + number);\n if (sign === '-') nowDiff.setDate(nowDiff.getDate() - number);\n break;\n case 'MONTH':\n case 'MONTHS':\n if (sign === '+') nowDiff.setMonth(nowDiff.getMonth() + number);\n if (sign === '-') nowDiff.setMonth(nowDiff.getMonth() - number);\n break;\n case 'YEAR':\n case 'YEARS':\n if (sign === '+') nowDiff.setFullYear(nowDiff.getFullYear() + number);\n if (sign === '-') nowDiff.setFullYear(nowDiff.getFullYear() - number);\n break;\n }\n return nowDiff;\n }\n return new Date(value);\n};\n\nexport default parseNowDate;\n","const createFacetType = (fieldList = [], options = {}) =>\n fieldList.map((field) => ({\n field,\n name: field,\n count: options.count || true,\n exclude: fieldList,\n }));\n\n// eslint-disable-next-line import/prefer-default-export\nexport { createFacetType };\n","/* eslint-disable import/prefer-default-export */\nconst parseValueList = (value) => {\n if (value === undefined) return [];\n if (value === null) return [{ value: '' }];\n if (Array.isArray(value)) {\n if (value.length > 0 && value[0].value) return value;\n return value.map((thisValue) => ({ value: thisValue }));\n }\n if (value.value) return [value];\n return [{ value }];\n};\n\nconst parseValue = (fieldValue = {}) => {\n if (fieldValue && (fieldValue.value || fieldValue.name)) {\n const { value: valueList, uuid } = fieldValue;\n const value = parseValueList(valueList);\n return { value, uuid };\n }\n return { value: parseValueList(fieldValue) };\n};\n\nconst parseField = (field = {}) => {\n const { name, value } = field;\n const parsedValue = parseValue(value);\n return { name, ...parsedValue };\n};\n\nconst shouldBeField = ({ name, value }) =>\n ['string', 'boolean', 'number'].includes(typeof value) ||\n (name !== 'group' && Array.isArray(value)) ||\n value === null;\n\nconst parseGroup = (thisGroup = {}) => {\n const { name: groupName, value: groupsOrFields = {} } = thisGroup;\n // eslint-disable-next-line no-use-before-define\n const { field, group } = parseGroupsOrFields(groupsOrFields);\n return {\n name: groupName,\n group,\n field,\n };\n};\n\nconst parseGroupsOrFields = (groupsOrFields) => {\n const group = [];\n const field = [];\n Object.entries(groupsOrFields).forEach(([name, value]) => {\n if (shouldBeField({ name, value })) {\n field.push(parseField({ name, value }));\n } else if (Array.isArray(value)) {\n value.forEach(({ groupName, ...groupValue }) => {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name: groupName, value: groupValue }));\n });\n } else {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name, value }));\n }\n });\n return {\n group,\n field,\n };\n};\n\nconst parseTimeSpan = (timeSpan) => {\n const { start = '-INF', end = '+INF', ...groupsOrFields } = timeSpan;\n const { group, field } = parseGroupsOrFields(groupsOrFields);\n return {\n start,\n end,\n field,\n group,\n };\n};\n\nconst createMetadataType = (metadataType = {}) => {\n const newMetadataType = {};\n if (Array.isArray(metadataType)) {\n newMetadataType.timespan = metadataType.map((thisTimeSpan) => parseTimeSpan(thisTimeSpan));\n } else {\n const genericTimespan = parseTimeSpan(metadataType);\n newMetadataType.timespan = [genericTimespan];\n }\n return newMetadataType;\n};\n\nexport { createMetadataType };\n\nexport default createMetadataType;\n","import { formatTimeCodeText } from './time';\nimport { sortTimespanList, parseTimespan } from './parseMetadataType';\n\nfunction timeToCueTime({ hours = 0, minutes = 0, seconds = 0, partialSeconds = 0 }) {\n const hourStr = hours.toFixed().padStart(2, '0');\n const minStr = minutes.toFixed().padStart(2, '0');\n const secondsStr = seconds.toFixed().padStart(2, '0');\n const partialStr = (partialSeconds * 10).toFixed().padStart(3, '0');\n return `${hourStr}:${minStr}:${secondsStr}.${partialStr}`;\n}\n\nexport default function metadataTypeToWebVtt({\n metadataType,\n subtitleGroup = 'stl_subtitle',\n subtitleField = 'stl_text',\n}) {\n const parseOptions = {\n includeTimespanAttributes: true,\n flatTimespan: true,\n flatGroup: true,\n joinValue: ',',\n };\n\n const { timespan: timespanList = [] } = metadataType || {};\n if (timespanList.length === 0) return '';\n const sortedTimespans = timespanList.sort(sortTimespanList);\n const parsedTimespans = sortedTimespans.map((timespanType) =>\n parseTimespan(timespanType, parseOptions),\n );\n const vttCues = parsedTimespans.map((thisTimespan) => {\n const {\n start: startText,\n end: endText,\n [subtitleGroup]: { [subtitleField]: text } = {},\n } = thisTimespan;\n if (!text) return '';\n const startTime = formatTimeCodeText(startText).toTime();\n const start = timeToCueTime(startTime);\n const endTime = formatTimeCodeText(endText).toTime();\n const end = timeToCueTime(endTime);\n return `${start} --> ${end} line:0%\\r${text}\\r`;\n });\n return `WEBVTT\\n\\n\\n${vttCues.join('\\n')}`;\n}\n","import { parseShapeType } from './parseShapeType';\n\nconst IMAGE_MIME_TYPES = [\n 'image/apng',\n 'image/bmp',\n 'image/gif',\n 'image/jpeg',\n 'image/x-icon',\n 'image/png',\n 'image/svg+xml',\n];\n\nconst VIDEO_MIME_TYPES = ['video/mp4'];\n\nconst AUDIO_MIME_TYPES = [\n 'audio/mp4',\n 'audio/mpeg',\n 'audio/x-aac',\n 'audio/aac',\n 'audio/x-wav',\n 'audio/wav',\n 'audio/accp',\n 'audio/ogg',\n 'audio/webm',\n 'audio/x-flac',\n];\n\nconst DEFAULT_ALLOWED_MIME_TYPES = [...VIDEO_MIME_TYPES, ...IMAGE_MIME_TYPES, ...AUDIO_MIME_TYPES];\n\nconst DEFAULT_ALLOWED_METHODS = ['http', 'https'];\n\nconst MP4_MIMETYPE = 'video/mp4';\nconst QUICKTIME_MIMETYPE = 'video/quicktime';\nconst M4V_MIMETYPE = 'video/x-m4v';\nconst MP4_CONTAINER = 'MPEG-4';\nconst MOV_CONTAINER = 'mov';\nconst H264_CODEC = 'h264';\n\n// Sort by tags in the order of previewShapeOrder, secondary alphabetical.\n// using reverse() so the first has highest index\nconst PREVIEW_SHAPE_ORDER = [\n '__mp4',\n '__mp3_160k',\n '__png',\n '__jpeg',\n '__gif',\n 'original',\n].reverse();\n\nconst defaultSortPriority = ({ shape: { tag: firstEl } }, { shape: { tag: secondEl } }) => {\n if (PREVIEW_SHAPE_ORDER.includes(firstEl) || PREVIEW_SHAPE_ORDER.includes(secondEl)) {\n return PREVIEW_SHAPE_ORDER.indexOf(secondEl) - PREVIEW_SHAPE_ORDER.indexOf(firstEl);\n }\n return firstEl.toLowerCase().localeCompare(secondEl.toLowerCase());\n};\n\nconst filterShapeSource = (itemType = {}, options = {}) => {\n const {\n allowedMimeTypes = DEFAULT_ALLOWED_MIME_TYPES,\n sortPriority = defaultSortPriority,\n allowedMethods = DEFAULT_ALLOWED_METHODS,\n sourceKey = 'src',\n mimeTypeKey = 'type',\n shapeKey = 'shape',\n } = options;\n const { shape: shapeList = [] } = itemType;\n const parsedShapeList = shapeList.reduce((acc, shapeType) => {\n let type;\n let src;\n const shape = parseShapeType(shapeType);\n const { uri, mimeType, containerFormat, videoCodec } = shape;\n if (mimeType) {\n type = mimeType;\n if (\n (mimeType === QUICKTIME_MIMETYPE || mimeType === M4V_MIMETYPE) &&\n (containerFormat === MP4_CONTAINER || containerFormat === MOV_CONTAINER) &&\n videoCodec === H264_CODEC\n )\n type = MP4_MIMETYPE;\n }\n if (uri) {\n if (allowedMethods) {\n const [thisMethod] = uri.split('://');\n if (allowedMethods.includes(thisMethod)) src = uri;\n } else {\n src = uri;\n }\n }\n if (src && allowedMimeTypes.includes(type)) {\n acc.push({\n [sourceKey]: src,\n [mimeTypeKey]: type,\n [shapeKey]: shape,\n });\n }\n return acc;\n }, []);\n if (typeof sortPriority === 'function') parsedShapeList.sort(defaultSortPriority);\n return parsedShapeList;\n};\n\nexport default filterShapeSource;\n","const IMAGE = 'IMAGE';\nconst AUDIO = 'AUDIO';\nconst VIDEO = 'VIDEO';\n\nconst getShapeMediaType = (shape = {}) => {\n const { mimeType, videoCodec, audioCodec } = shape;\n if (!mimeType) return undefined;\n if (mimeType.startsWith('audio/')) {\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('video/')) {\n if (videoCodec !== undefined) return VIDEO;\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('image/')) return IMAGE;\n return undefined;\n};\n\nexport default getShapeMediaType;\n","import { formatTimeCodeText } from './time';\n\nconst findNearestThumbnail = (itemType = {}, timeCodeText) => {\n const tcSeconds = formatTimeCodeText(timeCodeText).toSeconds();\n const { thumbnails = {} } = itemType;\n const { uri: srcList = [] } = thumbnails;\n const srcTcSeconds = srcList.map((url) => {\n const tc = new URL(url).pathname.split('/').pop();\n return formatTimeCodeText(tc).toSeconds();\n });\n\n const nearestSrcIndex = srcTcSeconds.reduce(\n (nearestIndex, curr, currIndex) =>\n Math.abs(curr - tcSeconds) < Math.abs(srcTcSeconds[nearestIndex] - tcSeconds)\n ? currIndex\n : nearestIndex,\n 0,\n );\n return srcList[nearestSrcIndex];\n};\n\nexport default findNearestThumbnail;\n","export const ACCESSCONTROL_READ = '_accesscontrol_read';\nexport const ACCESSCONTROL_WRITE = '_accesscontrol_write';\nexport const ADMINISTRATOR = '_administrator';\nexport const AUTO_PROJECTION_READ = '_auto_projection_read';\nexport const AUTO_PROJECTION_WRITE = '_auto_projection_write';\nexport const COLLECTION_NOTIFICATION_READ = '_collection_notification_read';\nexport const COLLECTION_NOTIFICATION_WRITE = '_collection_notification_write';\nexport const COLLECTION_READ = '_collection_read';\nexport const COLLECTION_WRITE = '_collection_write';\nexport const DELETION_LOCK_NOTIFICATION_READ = '_deletion_lock_notification_read';\nexport const DELETION_LOCK_NOTIFICATION_WRITE = '_deletion_lock_notification_write';\nexport const DELETION_LOCK_READ = '_deletion_lock_read';\nexport const DELETION_LOCK_WRITE = '_deletion_lock_write';\nexport const DOCUMENT_NOTIFICATION_READ = '_document_notification_read';\nexport const DOCUMENT_NOTIFICATION_WRITE = '_document_notification_write';\nexport const DOCUMENT_READ = '_document_read';\nexport const DOCUMENT_WRITE = '_document_write';\nexport const ERROR_READ = '_error_read';\nexport const ERROR_WRITE = '_error_write';\nexport const EXPORT = '_export';\nexport const EXPORT_TEMPLATE_READ = '_export_template_read';\nexport const EXPORT_TEMPLATE_WRITE = '_export_template_write';\nexport const EXTERNAL_ID_READ = '_external_id_read';\nexport const EXTERNAL_ID_WRITE = '_external_id_write';\nexport const FILE_NOTIFICATION_READ = '_file_notification_read';\nexport const FILE_NOTIFICATION_WRITE = '_file_notification_write';\nexport const FILE_READ = '_file_read';\nexport const FILE_WRITE = '_file_write';\nexport const GROUP_READ = '_group_read';\nexport const GROUP_WRITE = '_group_write';\nexport const IMPORT_WRITE = '_import';\nexport const ITEM_ID_READ = '_item_id_read';\nexport const ITEM_ID_WRITE = '_item_id_write';\nexport const ITEM_NOTIFICATION_READ = '_item_notification_read';\nexport const ITEM_NOTIFICATION_WRITE = '_item_notification_write';\nexport const ITEM_WRITE = '_item_write';\nexport const ITEM_SEARCH = '_item_search';\nexport const ITEM_SHAPE_READ = '_item_shape_read';\nexport const ITEM_SHAPE_WRITE = '_item_shape_write';\nexport const ITEM_TIMELINE_READ = '_item_timeline_read';\nexport const ITEM_TIMELINE_WRITE = '_item_timeline_write';\nexport const ITEM_URI = '_item_uri';\nexport const JOB_NOTIFICATION_READ = '_job_notification_read';\nexport const JOB_NOTIFICATION_WRITE = '_job_notification_write';\nexport const JOB_READ = '_job_read';\nexport const JOB_WRITE = '_job_write';\nexport const LIBRARY_READ = '_library_read';\nexport const LIBRARY_WRITE = '_library_write';\nexport const LOCK_READ = '_lock_read';\nexport const LOCK_WRITE = '_lock_write';\nexport const LOG_READ = '_log_read';\nexport const METADATA_DATASET_READ = '_metadata_dataset_read';\nexport const METADATA_DATASET_WRITE = '_metadata_dataset_write';\nexport const METADATA_FIELD_GROUP_READ = '_metadata_field_group_read';\nexport const METADATA_FIELD_GROUP_WRITE = '_metadata_field_group_write';\nexport const METADATA_FIELD_READ = '_metadata_field_read';\nexport const METADATA_FIELD_WRITE = '_metadata_field_write';\nexport const METADATA_GLOBAL_READ = '_metadata_global_read';\nexport const METADATA_GLOBAL_WRITE = '_metadata_global_write';\nexport const METADATA_LOCK_READ = '_metadata_lock_read';\nexport const METADATA_LOCK_WRITE = '_metadata_lock_write';\nexport const METADATA_READ = '_metadata_read';\nexport const METADATA_SCHEMA_READ = '_metadata_schema_read';\nexport const METADATA_SCHEMA_WRITE = '_metadata_schema_write';\nexport const METADATA_WRITE = '_metadata_write';\nexport const OTIF_ANALYZE = '_otif_analyze';\nexport const OTIF_READ = '_otif_read';\nexport const OTIF_WRITE = '_otif_write';\nexport const PLACEHOLDER_NOTIFICATION_READ = '_placeholder_notification_read';\nexport const PLACEHOLDER_NOTIFICATION_WRITE = '_placeholder_notification_write';\nexport const PROJECTION_READ = '_projection_read';\nexport const PROJECTION_WRITE = '_projection_write';\nexport const QUOTA_NOTIFICATION_READ = '_quota_notification_read';\nexport const QUOTA_NOTIFICATION_WRITE = '_quota_notification_write';\nexport const QUOTA_READ = '_quota_read';\nexport const QUOTA_WRITE = '_quota_write';\nexport const RELATION_READ = '_relation_read';\nexport const RELATION_WRITE = '_relation_write';\nexport const RESOURCE_READ = '_resource_read';\nexport const RESOURCE_WRITE = '_resource_write';\nexport const RUN_AS = '_run_as';\nexport const SEARCH = '_search';\nexport const SEQUENCE_READ = '_sequence_read';\nexport const SEQUENCE_WRITE = '_sequence_write';\nexport const SHAPE_TAG_READ = '_shape_tag_read';\nexport const SHAPE_TAG_WRITE = '_shape_tag_write';\nexport const SITE_MANAGER = '_site_manager';\nexport const SITE_RULE_READ = '_site_rule_read';\nexport const SITE_RULE_WRITE = '_site_rule_write';\nexport const STORAGE_GROUP_READ = '_storage_group_read';\nexport const STORAGE_GROUP_WRITE = '_storage_group_write';\nexport const STORAGE_NOTIFICATION_READ = '_storage_notification_read';\nexport const STORAGE_NOTIFICATION_WRITE = '_storage_notification_write';\nexport const STORAGE_READ = '_storage_read';\nexport const STORAGE_RULE_READ = '_storage_rule_read';\nexport const STORAGE_RULE_WRITE = '_storage_rule_write';\nexport const STORAGE_WRITE = '_storage_write';\nexport const SUPER_ACCESS_USER = '_super_access_user';\nexport const TASKDEFINITION_READ = '_taskdefinition_read';\nexport const TASKDEFINITION_WRITE = '_taskdefinition_write';\nexport const THUMBNAIL_READ = '_thumbnail_read';\nexport const THUMBNAIL_WRITE = '_thumbnail_write';\nexport const TRANSCODER = '_transcoder';\nexport const TRANSFER_READ = '_transfer_read';\nexport const TRANSFER_WRITE = '_transfer_write';\nexport const USER = '_user';\nexport const VXA = '_vxa';\nexport const VXA_READ = '_vxa_read';\n","import parseKeyValuePairType from './parseKeyValuePairType';\n\nconst parseSimpleMetadataType = ({ field = [] } = {}) => {\n return parseKeyValuePairType(field);\n};\n\nexport default parseSimpleMetadataType;\n","const parseHighlightTimespan = ({ field = [], start, end } = {}, opts = {}) => {\n const { arrayOnSingle = true, joinValue = undefined, timespanAsList = undefined } = opts;\n const initialValue = timespanAsList ? { start, end } : {};\n const fieldList = field.reduce((a, { name, value: valueList = [] }) => {\n if (valueList.length === 0) return a;\n let fieldValue;\n if (arrayOnSingle === false && valueList.length === 1) [fieldValue] = valueList;\n else if (joinValue) fieldValue = valueList.join(joinValue);\n else fieldValue = valueList;\n return { ...a, [name]: fieldValue };\n }, initialValue);\n return fieldList;\n};\n\n/**\n * Parses Highlight Timespans into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} highlightTimespanList - A list of timespans.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {Object} options.arrayOnSingle - Return an array if there is a single value.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.flat - Flatten to field-name/field-value (Note: field-values may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan to object with start/end as key.\n * @param {Object} options.timespanAsList - Return timespans as list.\n * @param {Object} options.joinTimespan - String character to join the start/end timecodes.\n */\nconst parseHighlightTimespanList = (highlightTimespanList = [], opts = {}) => {\n const { flat, timespanAsList, joinTimespan = '_', flatTimespan } = opts;\n if (timespanAsList === true)\n return highlightTimespanList.map((timespan) => parseHighlightTimespan(timespan, opts));\n if (flat === true || flatTimespan === true)\n return highlightTimespanList.reduce(\n (a, timespan) => ({ ...a, ...parseHighlightTimespan(timespan, opts) }),\n {},\n );\n return highlightTimespanList.reduce(\n (a, timespan) => ({\n ...a,\n [[timespan.start, timespan.end].join(joinTimespan)]: parseHighlightTimespan(timespan, opts),\n }),\n {},\n );\n};\n\nexport { parseHighlightTimespan, parseHighlightTimespanList };\n"],"names":["sortTimespanList","firstStart","start","secondStart","split","first","second","Number","findTimespan","metadataType","end","timespan","timespanList","find","parseValueList","valueList","options","arrayOnSingle","arrayOnSingleValue","joinValue","includeAttributes","includeValueAttributes","valueArray","forEach","thisValue","value","push","join","length","parseField","field","includeFieldAttributes","attributes","parsedValueList","parseFieldList","fieldList","output","fieldAsList","map","thisField","key","name","parsedField","currentValue","parsedValue","concat","parseGroup","group","includeGroupAttributes","flat","flatGroup","groupAsList","groupList","parsedFieldList","parsedGroupList","parseGroupList","Object","assign","thisGroup","parsedGroup","currentField","currentGroup","parseTimespan","includeTimespanAttributes","flatTimespan","parseTimespanList","joinTimespan","timespanAsList","thisTimespan","parsedTimespan","parseMetadataType","includeMetadataAttributes","sortTimespan","sort","global","b","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","descriptor","arguments","undefined","result","val","e","base","ceil","full","fullforms","locale","localeOptions","neg","num","round","unix","separator","spacer","standard","symbols","isNaN","TypeError","Array","exponent","Math","floor","log","pow","toFixed","charAt","replace","test","toLocaleString","toString","partial","opt","module","PAL","NTSC","NTSC30","CONSTANT_TIMEBASES","denominator","numerator","FRAME_SEPARATORS","dropFrame","splitSmpte","smpteText","hasDropFrameSeparator","match","hhmmssff","frameOptions","frameSeparator","hhmmss","splitFrames","some","n","Error","getDropFrames","roundedFrameRate","getRoundedFrameRate","timeBase","countSamples","hh","mm","ss","ff","includes","dropFrames","shouldDropMinute","shouldDropSecond","hourFrames","minuteFrames","secondFrames","frameFrames","countDroppedFrames","frames","oneMinuteUndroppedFrames","oneMinuteDroppedFrames","tenMinuteFrames","tenMinuteChunks","minuteRemainder","max","oneMinuteChunks","frameRemainder","frameChunks","TimeBase","constant","entries","thisTimeBase","thisTimeBaseText","thisTimeBaseType","useConstant","timeBaseText","toConstant","String","rate","isInteger","isDropFrameTimeBase","TimeCode","samples","Infinity","conformedTimeCode","conformTimeBase","conformTo","toRate","timeCode","timeCodeText","toText","totalSamples","hours","minutes","seconds","partialSeconds","format","toTime","toLowerCase","padStart","thisSeparator","formatTimeBaseType","formatTimeBaseText","keys","formatTimeBase","formatTimeCodeType","formatTimeCodeText","samplesString","formatSeconds","formatSecondsPrecise","decimalPlaces","formatSmpte","parseKeyValuePairType","keyValuePairType","keyValuePairTypeReducer","a","reduce","sampleRateSymbols","kB","B","mB","bitRateSymbols","MB","gcd","parseAspectRatio","width","height","widthRatio","heightRatio","parseBaseMediaInfoType","baseMediaInfoType","property","props","parsedKeyValuePairType","parseFileType","fileType","uri","uriList","fileSizeBytes","size","hash","path","fileSize","parseFileSize","fileName","pop","parseContainerComponent","containerComponent","mediaInfo","metadata","fileList","file","durationTimeCode","duration","startTimestamp","startTimecode","timeCodeTimeBase","containerMetadata","containerMediaInfo","containerFormat","Format","videoFormat","Video_Format_List","audioFormat","Audio_Format_List","textFormat","Text_Format_List","formatList","parsedContainerComponent","componentOriginalFilename","originalFilename","toDuration","parsedFileType","parseVideoComponent","videoComponent","videoCodec","codec","bitrate","fieldOrder","resolution","videoMediaInfo","videoMetadata","colorSpace","colorPrimaries","chromaSubsampling","Colorimetry","averageFrameRate","realBaseFrameRate","numberOfPackets","frameRate","smpte","toSmpte","aspectRatio","dimension","videoBitrate","parseAudioComponent","audioComponent","audioChannels","channelCount","audioCodec","audioMediaInfo","audioMetadata","audioBitDepth","Resolution","audioBitRateMode","Bit_rate_mode","audioSamplerateSamples","audioSamplerate","audioBitrate","parseBinaryComponent","binaryComponent","binaryMetadata","binaryMediaInfo","parsedBinaryComponent","parseShapeType","shapeType","parsedShape","videoComponentList","audioComponentList","binaryComponentList","mimeType","mimeTypeList","tag","tagList","parsedVideoComponent","parsedAudioComponent","parseMediaConvertPreset","transcodePresetType","description","mediaconvert","outputSetting","mc","JSON","parse","Settings","ContainerSettings","VideoDescription","AudioDescriptions","Container","CodecSettings","Codec","otherSettings","Height","Width","values","codecSpecs","InterlaceMode","Bitrate","FramerateDenominator","FramerateNumerator","SampleRate","RateControlMode","parseTranscodePreset","audio","video","framerate","scaling","channel","parseFacetType","facetType","facetFieldReducer","fieldValue","count","parseNowDate","startsWith","Date","sign","number","unit","nowDiff","setHours","getHours","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","createFacetType","exclude","isArray","parseValue","uuid","shouldBeField","groupName","groupsOrFields","parseGroupsOrFields","groupValue","parseTimeSpan","timeSpan","createMetadataType","newMetadataType","thisTimeSpan","genericTimespan","timeToCueTime","hourStr","minStr","secondsStr","partialStr","metadataTypeToWebVtt","subtitleGroup","subtitleField","parseOptions","sortedTimespans","parsedTimespans","timespanType","vttCues","startText","endText","text","startTime","endTime","IMAGE_MIME_TYPES","VIDEO_MIME_TYPES","AUDIO_MIME_TYPES","DEFAULT_ALLOWED_MIME_TYPES","DEFAULT_ALLOWED_METHODS","MP4_MIMETYPE","QUICKTIME_MIMETYPE","M4V_MIMETYPE","MP4_CONTAINER","MOV_CONTAINER","H264_CODEC","PREVIEW_SHAPE_ORDER","reverse","defaultSortPriority","firstEl","shape","secondEl","indexOf","localeCompare","filterShapeSource","itemType","allowedMimeTypes","sortPriority","allowedMethods","sourceKey","mimeTypeKey","shapeKey","shapeList","parsedShapeList","acc","type","src","thisMethod","IMAGE","AUDIO","VIDEO","getShapeMediaType","findNearestThumbnail","tcSeconds","toSeconds","thumbnails","srcList","srcTcSeconds","url","tc","URL","pathname","nearestSrcIndex","nearestIndex","curr","currIndex","abs","ACCESSCONTROL_READ","ACCESSCONTROL_WRITE","ADMINISTRATOR","AUTO_PROJECTION_READ","AUTO_PROJECTION_WRITE","COLLECTION_NOTIFICATION_READ","COLLECTION_NOTIFICATION_WRITE","COLLECTION_READ","COLLECTION_WRITE","DELETION_LOCK_NOTIFICATION_READ","DELETION_LOCK_NOTIFICATION_WRITE","DELETION_LOCK_READ","DELETION_LOCK_WRITE","DOCUMENT_NOTIFICATION_READ","DOCUMENT_NOTIFICATION_WRITE","DOCUMENT_READ","DOCUMENT_WRITE","ERROR_READ","ERROR_WRITE","EXPORT","EXPORT_TEMPLATE_READ","EXPORT_TEMPLATE_WRITE","EXTERNAL_ID_READ","EXTERNAL_ID_WRITE","FILE_NOTIFICATION_READ","FILE_NOTIFICATION_WRITE","FILE_READ","FILE_WRITE","GROUP_READ","GROUP_WRITE","IMPORT_WRITE","ITEM_ID_READ","ITEM_ID_WRITE","ITEM_NOTIFICATION_READ","ITEM_NOTIFICATION_WRITE","ITEM_WRITE","ITEM_SEARCH","ITEM_SHAPE_READ","ITEM_SHAPE_WRITE","ITEM_TIMELINE_READ","ITEM_TIMELINE_WRITE","ITEM_URI","JOB_NOTIFICATION_READ","JOB_NOTIFICATION_WRITE","JOB_READ","JOB_WRITE","LIBRARY_READ","LIBRARY_WRITE","LOCK_READ","LOCK_WRITE","LOG_READ","METADATA_DATASET_READ","METADATA_DATASET_WRITE","METADATA_FIELD_GROUP_READ","METADATA_FIELD_GROUP_WRITE","METADATA_FIELD_READ","METADATA_FIELD_WRITE","METADATA_GLOBAL_READ","METADATA_GLOBAL_WRITE","METADATA_LOCK_READ","METADATA_LOCK_WRITE","METADATA_READ","METADATA_SCHEMA_READ","METADATA_SCHEMA_WRITE","METADATA_WRITE","OTIF_ANALYZE","OTIF_READ","OTIF_WRITE","PLACEHOLDER_NOTIFICATION_READ","PLACEHOLDER_NOTIFICATION_WRITE","PROJECTION_READ","PROJECTION_WRITE","QUOTA_NOTIFICATION_READ","QUOTA_NOTIFICATION_WRITE","QUOTA_READ","QUOTA_WRITE","RELATION_READ","RELATION_WRITE","RESOURCE_READ","RESOURCE_WRITE","RUN_AS","SEARCH","SEQUENCE_READ","SEQUENCE_WRITE","SHAPE_TAG_READ","SHAPE_TAG_WRITE","SITE_MANAGER","SITE_RULE_READ","SITE_RULE_WRITE","STORAGE_GROUP_READ","STORAGE_GROUP_WRITE","STORAGE_NOTIFICATION_READ","STORAGE_NOTIFICATION_WRITE","STORAGE_READ","STORAGE_RULE_READ","STORAGE_RULE_WRITE","STORAGE_WRITE","SUPER_ACCESS_USER","TASKDEFINITION_READ","TASKDEFINITION_WRITE","THUMBNAIL_READ","THUMBNAIL_WRITE","TRANSCODER","TRANSFER_READ","TRANSFER_WRITE","USER","VXA","VXA_READ","parseSimpleMetadataType","parseHighlightTimespan","opts","initialValue","parseHighlightTimespanList","highlightTimespanList"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/parseMetadataType.js","../../../node_modules/filesize/lib/filesize.js","../src/const/time.js","../src/time.js","../src/parseKeyValuePairType.js","../src/parseShapeType.js","../src/parseTranscodePreset.js","../src/parseFacetType.js","../src/parseNowDate.js","../src/createFacetType.js","../src/createMetadataType.js","../src/metadataTypeToWebVtt.js","../src/filterShapeSource.js","../src/getShapeMediaType.js","../src/findNearestThumbnail.js","../src/const/roles.js","../src/parseSimpleMetadataType.js","../src/parseHighlightTimespan.js"],"sourcesContent":["const sortTimespanList = ({ start: firstStart }, { start: secondStart }) => {\n const [first] = firstStart.split('@');\n const [second] = secondStart.split('@');\n if (Number(first) < Number(second)) {\n return -1;\n }\n if (Number(first) > Number(second)) {\n return 1;\n }\n return 0;\n};\n\nconst findTimespan = (metadataType = {}, start, end) => {\n const { timespan: timespanList = [] } = metadataType;\n return timespanList.find((timespan) => timespan.start === start && timespan.end === end);\n};\n\nconst parseValueList = (valueList = [], options = {}) => {\n const {\n arrayOnSingle = true,\n arrayOnSingleValue = true,\n joinValue,\n includeAttributes,\n includeValueAttributes,\n } = options;\n if (includeAttributes || includeValueAttributes) return valueList;\n const valueArray = [];\n valueList.forEach((thisValue) => {\n if (thisValue.value) valueArray.push(thisValue.value);\n });\n if (joinValue) return valueArray.join(joinValue);\n if ((arrayOnSingle === false || arrayOnSingleValue === false) && valueArray.length === 1) {\n return valueArray[0];\n }\n return valueArray;\n};\n\nconst parseField = (field = {}, options = {}) => {\n const { includeAttributes, includeFieldAttributes } = options;\n const { value = [], ...attributes } = field;\n const parsedValueList = parseValueList(value, options);\n if (includeAttributes || includeFieldAttributes) return { ...attributes, value: parsedValueList };\n return parsedValueList;\n};\n\nconst parseFieldList = (fieldList = [], options = {}) => {\n const { joinValue, includeAttributes, includeFieldAttributes, includeValueAttributes } = options;\n const output = {};\n const { fieldAsList } = options;\n if (fieldAsList) {\n return fieldList.map((thisField) => parseField(thisField, options));\n }\n\n fieldList.forEach((thisField) => {\n const { name: key } = thisField;\n const parsedField = parseField(thisField, options);\n if (output[key]) {\n if (includeAttributes || includeFieldAttributes) {\n const { value: currentValue } = output[key];\n const { value: parsedValue } = parsedField;\n if (joinValue && !includeAttributes && !includeValueAttributes) {\n output[key].value = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key].value = parsedValue.concat(currentValue);\n }\n } else {\n const currentValue = output[key];\n const parsedValue = parsedField;\n if (joinValue) {\n output[key] = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key] = parsedValue.concat(currentValue);\n }\n }\n } else {\n output[key] = parsedField;\n }\n });\n return output;\n};\n\nconst parseGroup = (group = {}, options = {}) => {\n const {\n includeAttributes,\n includeGroupAttributes,\n flat,\n flatGroup,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = group;\n const parsedFieldList = parseFieldList(fieldList, options);\n const parsedGroupList = parseGroupList(groupList, options); // eslint-disable-line no-use-before-define,max-len\n const output = {};\n if (includeAttributes || includeGroupAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatGroup) {\n if (groupAsList) {\n Object.assign(output, { group: parsedGroupList });\n } else {\n Object.assign(output, parsedGroupList);\n }\n if (fieldAsList) {\n Object.assign(output, { field: parsedFieldList });\n } else {\n Object.assign(output, parsedFieldList);\n }\n } else {\n Object.assign(output, { field: parsedFieldList });\n Object.assign(output, { group: parsedGroupList });\n }\n return output;\n};\n\nconst parseGroupList = (groupList = [], options = {}) => {\n const { groupAsList } = options;\n if (groupAsList) {\n return groupList.map((thisGroup) => parseGroup(thisGroup, options));\n }\n const output = {};\n groupList.forEach((thisGroup) => {\n const { name: key } = thisGroup;\n const parsedGroup = parseGroup(thisGroup, options);\n if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroupList } = parsedGroup;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroupList };\n } else {\n output[key] = parsedGroup;\n }\n });\n return output;\n};\n\nconst parseTimespan = (timespan = {}, options = {}) => {\n const {\n includeAttributes,\n includeTimespanAttributes,\n flat,\n flatTimespan,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = timespan;\n const field = parseFieldList(fieldList, options);\n const group = parseGroupList(groupList, options);\n const output = {};\n if (includeAttributes || includeTimespanAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatTimespan) {\n if (groupAsList) {\n Object.assign(output, { group });\n } else {\n Object.assign(output, group);\n }\n if (fieldAsList) {\n Object.assign(output, { field });\n } else {\n Object.assign(output, field);\n }\n } else {\n Object.assign(output, { field });\n Object.assign(output, { group });\n }\n return output;\n};\n\nconst parseTimespanList = (timespanList = [], options = {}) => {\n const { joinTimespan, flat } = options;\n const { timespanAsList } = options;\n if (timespanAsList) {\n return timespanList.map((thisTimespan) => parseTimespan(thisTimespan, options));\n }\n let output = {};\n timespanList.forEach((thisTimespan) => {\n const { start, end } = thisTimespan;\n const key = [start, end].join(joinTimespan || '_');\n const parsedTimespan = parseTimespan(thisTimespan, options);\n if (flat) {\n output = { ...output, ...parsedTimespan };\n } else if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroup } = parsedTimespan;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroup };\n } else {\n output[key] = parsedTimespan;\n }\n });\n return output;\n};\n\n/**\n * Parses MetadataType into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} metadataType - The response from the API.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.includeAttributes - include attributes on all objects.\n * @param {Object} options.includeMetadataAttributes - include attributes on root.\n * @param {Object} options.includeTimespanAttributes - include attributes on timespans.\n * @param {Object} options.includeGroupAttributes - include attributes on groups.\n * @param {Object} options.includeFieldAttributes - include attributes on fields.\n * @param {Object} options.includeValueAttributes - include attributes on values.\n * @param {Object} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan.\n * @param {Object} options.flatGroup - Flatten group.\n * @param {Object} options.sortTimespan - Sort timespan by start time.\n * @param {Object} options.timespanAsList -Return timespans as list.\n * @param {Object} options.groupAsList -Return groups as list.\n * @param {Object} options.fieldAsList -Return fields as list.\n */\nconst parseMetadataType = (metadataType = {}, options = {}) => {\n const { includeAttributes, includeMetadataAttributes, sortTimespan } = options;\n const { timespan: timespanList = [], ...attributes } = metadataType;\n if (sortTimespan) timespanList.sort(sortTimespanList);\n const timespan = parseTimespanList(timespanList, options);\n if (includeAttributes || includeMetadataAttributes) {\n Object.assign(timespan, attributes);\n }\n return timespan;\n};\n\nexport { parseTimespan, parseTimespanList, parseMetadataType, sortTimespanList, findTimespan };\nexport default parseMetadataType;\n","\"use strict\";\r\n\r\n/**\r\n * filesize\r\n *\r\n * @copyright 2020 Jason Mulligan <jason.mulligan@avoidwork.com>\r\n * @license BSD-3-Clause\r\n * @version 6.1.0\r\n */\r\n(function (global) {\r\n var b = /^(b|B)$/,\r\n symbol = {\r\n iec: {\r\n bits: [\"b\", \"Kib\", \"Mib\", \"Gib\", \"Tib\", \"Pib\", \"Eib\", \"Zib\", \"Yib\"],\r\n bytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\r\n },\r\n jedec: {\r\n bits: [\"b\", \"Kb\", \"Mb\", \"Gb\", \"Tb\", \"Pb\", \"Eb\", \"Zb\", \"Yb\"],\r\n bytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\r\n }\r\n },\r\n fullform = {\r\n iec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\r\n jedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\r\n };\r\n /**\r\n * filesize\r\n *\r\n * @method filesize\r\n * @param {Mixed} arg String, Int or Float to transform\r\n * @param {Object} descriptor [Optional] Flags\r\n * @return {String} Readable file size String\r\n */\r\n\r\n function filesize(arg) {\r\n var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var result = [],\r\n val = 0,\r\n e = void 0,\r\n base = void 0,\r\n bits = void 0,\r\n ceil = void 0,\r\n full = void 0,\r\n fullforms = void 0,\r\n locale = void 0,\r\n localeOptions = void 0,\r\n neg = void 0,\r\n num = void 0,\r\n output = void 0,\r\n round = void 0,\r\n unix = void 0,\r\n separator = void 0,\r\n spacer = void 0,\r\n standard = void 0,\r\n symbols = void 0;\r\n\r\n if (isNaN(arg)) {\r\n throw new TypeError(\"Invalid number\");\r\n }\r\n\r\n bits = descriptor.bits === true;\r\n unix = descriptor.unix === true;\r\n base = descriptor.base || 2;\r\n round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;\r\n locale = descriptor.locale !== void 0 ? descriptor.locale : \"\";\r\n localeOptions = descriptor.localeOptions || {};\r\n separator = descriptor.separator !== void 0 ? descriptor.separator : \"\";\r\n spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? \"\" : \" \";\r\n symbols = descriptor.symbols || {};\r\n standard = base === 2 ? descriptor.standard || \"jedec\" : \"jedec\";\r\n output = descriptor.output || \"string\";\r\n full = descriptor.fullform === true;\r\n fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];\r\n e = descriptor.exponent !== void 0 ? descriptor.exponent : -1;\r\n num = Number(arg);\r\n neg = num < 0;\r\n ceil = base > 2 ? 1000 : 1024; // Flipping a negative number to determine the size\r\n\r\n if (neg) {\r\n num = -num;\r\n } // Determining the exponent\r\n\r\n\r\n if (e === -1 || isNaN(e)) {\r\n e = Math.floor(Math.log(num) / Math.log(ceil));\r\n\r\n if (e < 0) {\r\n e = 0;\r\n }\r\n } // Exceeding supported length, time to reduce & multiply\r\n\r\n\r\n if (e > 8) {\r\n e = 8;\r\n }\r\n\r\n if (output === \"exponent\") {\r\n return e;\r\n } // Zero is now a special case because bytes divide by 1\r\n\r\n\r\n if (num === 0) {\r\n result[0] = 0;\r\n result[1] = unix ? \"\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n } else {\r\n val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\r\n\r\n if (bits) {\r\n val = val * 8;\r\n\r\n if (val >= ceil && e < 8) {\r\n val = val / ceil;\r\n e++;\r\n }\r\n }\r\n\r\n result[0] = Number(val.toFixed(e > 0 ? round : 0));\r\n\r\n if (result[0] === ceil && e < 8 && descriptor.exponent === void 0) {\r\n result[0] = 1;\r\n e++;\r\n }\r\n\r\n result[1] = base === 10 && e === 1 ? bits ? \"kb\" : \"kB\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n\r\n if (unix) {\r\n result[1] = standard === \"jedec\" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, \"\") : result[1];\r\n\r\n if (b.test(result[1])) {\r\n result[0] = Math.floor(result[0]);\r\n result[1] = \"\";\r\n }\r\n }\r\n } // Decorating a 'diff'\r\n\r\n\r\n if (neg) {\r\n result[0] = -result[0];\r\n } // Applying custom symbol\r\n\r\n\r\n result[1] = symbols[result[1]] || result[1];\r\n\r\n if (locale === true) {\r\n result[0] = result[0].toLocaleString();\r\n } else if (locale.length > 0) {\r\n result[0] = result[0].toLocaleString(locale, localeOptions);\r\n } else if (separator.length > 0) {\r\n result[0] = result[0].toString().replace(\".\", separator);\r\n } // Returning Array, Object, or String (default)\r\n\r\n\r\n if (output === \"array\") {\r\n return result;\r\n }\r\n\r\n if (full) {\r\n result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? \"bit\" : \"byte\") + (result[0] === 1 ? \"\" : \"s\");\r\n }\r\n\r\n if (output === \"object\") {\r\n return {\r\n value: result[0],\r\n symbol: result[1],\r\n exponent: e\r\n };\r\n }\r\n\r\n return result.join(spacer);\r\n } // Partial application for functional programming\r\n\r\n\r\n filesize.partial = function (opt) {\r\n return function (arg) {\r\n return filesize(arg, opt);\r\n };\r\n }; // CommonJS, AMD, script tag\r\n\r\n\r\n if (typeof exports !== \"undefined\") {\r\n module.exports = filesize;\r\n } else if (typeof define === \"function\" && define.amd !== void 0) {\r\n define(function () {\r\n return filesize;\r\n });\r\n } else {\r\n global.filesize = filesize;\r\n }\r\n})(typeof window !== \"undefined\" ? window : global);\r\n","export const PAL = 'PAL';\nexport const NTSC = 'NTSC';\nexport const NTSC30 = 'NTSC30';\n\nexport const CONSTANT_TIMEBASES = {\n [PAL]: { denominator: 25, numerator: 1 },\n [NTSC]: { denominator: 30000, numerator: 1001 },\n [NTSC30]: { denominator: 30, numerator: 1 },\n};\n\nexport const FRAME_SEPARATORS = {\n ':': { dropFrame: false, field: 2 },\n ';': { dropFrame: true, field: 2 },\n '.': { dropFrame: false, field: 1 },\n ',': { dropFrame: true, field: 1 },\n};\n","/* eslint max-classes-per-file: \"off\" */\nimport { CONSTANT_TIMEBASES, FRAME_SEPARATORS } from './const/time';\n\nconst splitSmpte = (smpteText) => {\n const hasDropFrameSeparator = smpteText.match(/[^0-9:\\-_]/);\n\n let hhmmssff;\n let frameOptions = {};\n if (hasDropFrameSeparator) {\n const [frameSeparator] = hasDropFrameSeparator;\n const [hhmmss, splitFrames] = smpteText.split(frameSeparator);\n hhmmssff = [...hhmmss.split(':'), splitFrames];\n frameOptions = FRAME_SEPARATORS[frameSeparator] || {};\n } else {\n hhmmssff = smpteText.split(':');\n }\n\n hhmmssff = hhmmssff.map(Number);\n\n if (hhmmssff.length > 4 || hhmmssff.some((n) => Number.isNaN(n))) {\n throw new Error('Invalid SMPTE timecode');\n }\n\n return [hhmmssff, frameOptions];\n};\n\nconst getDropFrames = (roundedFrameRate) => (roundedFrameRate === 60 ? 4 : 2);\n\nconst getRoundedFrameRate = (timeBase) => Math.round(timeBase.denominator / timeBase.numerator);\n\nconst countSamples = (hh, mm, ss, ff, { dropFrame, roundedFrameRate }) => {\n if (!dropFrame) {\n return hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;\n }\n\n if (![30, 60].includes(roundedFrameRate)) {\n throw new Error('Cannot use dropframe with non NTSC timebase');\n }\n\n const dropFrames = getDropFrames(roundedFrameRate);\n\n const shouldDropMinute = mm % 10 !== 0;\n const shouldDropSecond = shouldDropMinute && ss === 0;\n\n const hourFrames = hh * (3600 * roundedFrameRate - 54 * dropFrames);\n const minuteFrames = mm * 60 * roundedFrameRate - (mm - Math.ceil(mm / 10)) * dropFrames;\n const secondFrames = ss * roundedFrameRate - (shouldDropMinute && ss > 1 ? dropFrames : 0);\n\n if (shouldDropSecond && ff < dropFrames) {\n throw new Error('Invalid ff');\n }\n\n const frameFrames = shouldDropSecond ? ff - dropFrames : ff;\n\n return hourFrames + minuteFrames + secondFrames + frameFrames;\n};\n\nfunction countDroppedFrames(frames, roundedFrameRate) {\n const dropFrames = getDropFrames(roundedFrameRate);\n const oneMinuteUndroppedFrames = 60 * roundedFrameRate;\n const oneMinuteDroppedFrames = 60 * roundedFrameRate - dropFrames;\n const tenMinuteFrames = 10 * (oneMinuteUndroppedFrames - dropFrames) + dropFrames;\n\n const tenMinuteChunks = Math.floor(frames / tenMinuteFrames);\n const minuteRemainder = Math.max(0, (frames % tenMinuteFrames) - oneMinuteUndroppedFrames);\n const oneMinuteChunks = Math.floor(minuteRemainder / oneMinuteDroppedFrames);\n const frameRemainder = minuteRemainder % oneMinuteDroppedFrames;\n const frameChunks = frameRemainder > 0 ? dropFrames : 0;\n\n return tenMinuteChunks * 9 * dropFrames + oneMinuteChunks * dropFrames + frameChunks;\n}\n\nexport class TimeBase {\n constructor({ numerator = 1, denominator = 1 } = {}) {\n this.numerator = Number(numerator);\n this.denominator = Number(denominator);\n }\n\n toJSON() {\n return {\n denominator: this.denominator,\n numerator: this.numerator,\n };\n }\n\n toConstant() {\n let constant;\n Object.entries(CONSTANT_TIMEBASES).find((thisTimeBase) => {\n const [thisTimeBaseText, thisTimeBaseType] = thisTimeBase;\n const { numerator, denominator } = thisTimeBaseType;\n if (numerator === this.numerator && denominator === this.denominator) {\n constant = thisTimeBaseText;\n return true;\n }\n return false;\n });\n return constant;\n }\n\n toText(useConstant = false) {\n if (useConstant) {\n const timeBaseText = this.toConstant();\n if (timeBaseText) return timeBaseText;\n }\n if (this.numerator > 1) {\n const timeBaseText = [this.denominator, this.numerator].join(':');\n return timeBaseText;\n }\n const timeBaseText = String(this.denominator);\n return timeBaseText;\n }\n\n toRate(useConstant = false, round = true) {\n if (useConstant) {\n const rate = this.toConstant();\n if (rate) return rate;\n }\n const rate = this.denominator / this.numerator;\n if (Number.isInteger(rate)) {\n return rate;\n }\n return round ? rate.toFixed(2) : rate;\n }\n}\n\nconst isDropFrameTimeBase = ({ numerator, denominator }) => {\n return numerator === 1001 && (denominator === 60000 || denominator === 30000);\n};\n\nexport class TimeCode {\n constructor({ samples = 0, timeBase } = {}, { dropFrame, field = 2 } = {}) {\n if (typeof samples === 'number') {\n this.samples = samples;\n } else if (typeof samples === 'string') {\n if (samples === '-INF') {\n this.samples = -Infinity;\n } else if (samples === '+INF') {\n this.samples = Infinity;\n } else {\n this.samples = Number(samples);\n }\n } else {\n throw new Error(`samples is not number/string/-Inf/+Inf is: ${samples}`);\n }\n this.timeBase = new TimeBase(timeBase);\n this.dropFrame = dropFrame === undefined ? isDropFrameTimeBase(this.timeBase) : dropFrame;\n this.field = field;\n }\n\n add(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples + samples, timeBase: this.timeBase });\n }\n\n subtract(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples - samples, timeBase: this.timeBase });\n }\n\n conformTimeBase(conformTo) {\n let timeBase = conformTo;\n if (conformTo instanceof TimeCode === false) {\n timeBase = new TimeBase(conformTo);\n }\n const samples = Math.round(\n this.samples / (this.timeBase.toRate(false, false) / timeBase.toRate(false, false)),\n );\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode);\n }\n\n toJSON() {\n return {\n samples: this.samples,\n timeBase: this.timeBase,\n };\n }\n\n toText() {\n let timeCodeText = String(this.samples);\n const timeBaseText = this.timeBase.toText();\n if (timeBaseText !== '1') {\n timeCodeText = [this.samples, timeBaseText].join('@');\n }\n return timeCodeText;\n }\n\n toSeconds() {\n const { numerator, denominator } = this.timeBase;\n return this.samples * (numerator / denominator);\n }\n\n toTime() {\n const roundedFrameRate = getRoundedFrameRate(this.timeBase);\n const totalSamples =\n this.samples + (this.dropFrame ? countDroppedFrames(this.samples + 1, roundedFrameRate) : 0);\n\n const hours = Math.floor(totalSamples / (3600 * roundedFrameRate));\n const minutes = Math.floor(totalSamples / (60 * roundedFrameRate)) % 60;\n const seconds = Math.floor(totalSamples / roundedFrameRate) % 60;\n const frames = totalSamples % roundedFrameRate;\n const partialSeconds = frames / roundedFrameRate;\n return {\n hours,\n minutes,\n seconds,\n frames,\n partialSeconds,\n };\n }\n\n toDuration({ format } = {}) {\n const { hours, minutes, seconds } = this.toTime();\n if (typeof format === 'string') {\n if (format.toLowerCase() === 'hhmmss') {\n return [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n }\n if (hours) {\n return [\n hours.toFixed(),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n if (minutes >= 10) {\n return [minutes.toFixed().padStart(2, '0'), seconds.toFixed().padStart(2, '0')].join(':');\n }\n return [minutes.toFixed(), seconds.toFixed().padStart(2, '0')].join(':');\n }\n\n toSmpte() {\n if (this.samples === -Infinity) return '00:00:00:00';\n const { hours, minutes, seconds, frames } = this.toTime();\n const hhmmss = [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n const [frameSeparator = ':'] = Object.entries(FRAME_SEPARATORS).find((thisSeparator) => {\n const [, { dropFrame, field }] = thisSeparator;\n return dropFrame === this.dropFrame && field === this.field;\n });\n return [hhmmss, frames.toFixed().padStart(2, '0')].join(frameSeparator);\n }\n}\n\nconst formatTimeBaseType = (timeBase) => new TimeBase(timeBase);\n\nconst formatTimeBaseText = (timeBaseText) => {\n if (timeBaseText === undefined) {\n return formatTimeBaseType();\n }\n if (typeof timeBaseText === 'number') {\n return formatTimeBaseType({ denominator: timeBaseText });\n }\n if (timeBaseText.includes(':')) {\n const [denominator, numerator] = timeBaseText.split(':');\n return formatTimeBaseType({ denominator, numerator });\n }\n if (Object.keys(CONSTANT_TIMEBASES).includes(timeBaseText)) {\n return formatTimeBaseType(CONSTANT_TIMEBASES[timeBaseText]);\n }\n const denominator = Number(timeBaseText);\n if (Number.isNaN(denominator)) {\n throw new Error(\n `timeBaseText must be a number or ${Object.keys(CONSTANT_TIMEBASES).join(\n ',',\n )} - is ${timeBaseText}`,\n );\n }\n return formatTimeBaseType({ denominator });\n};\n\nconst formatTimeBase = (timeBase) => {\n if (typeof timeBase === 'object') {\n return formatTimeBaseType(timeBase);\n }\n return formatTimeBaseText(timeBase);\n};\n\nconst formatTimeCodeType = (timeCode, options) => new TimeCode(timeCode, options);\n\nconst formatTimeCodeText = (timeCodeText, options) => {\n if (timeCodeText === undefined) {\n const timeCode = { samples: 0 };\n return formatTimeCodeType(timeCode, options);\n }\n if (typeof timeCodeText === 'number') {\n const timeCode = { samples: timeCodeText };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText.includes('@')) {\n const [samplesString, timeBaseText] = timeCodeText.split('@');\n const samples = Number(samplesString);\n const timeBase = formatTimeBaseText(timeBaseText);\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '-INF') {\n const samples = -Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '+INF') {\n const samples = Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n const samples = Number(timeCodeText);\n if (Number.isNaN(samples)) {\n throw new Error(`timeBaseText must be a number or sample@timeBase - is ${timeCodeText}`);\n }\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n};\n\nconst formatSeconds = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { denominator = 1, numerator = 1 } = timeBase;\n const samples = seconds * (denominator / numerator);\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSecondsPrecise = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { numerator = 1 } = timeBase;\n let { denominator = 1 } = timeBase;\n if (!Number.isInteger(seconds)) {\n const decimalPlaces = String(seconds).split('.')[1].length;\n denominator *= 10 ** decimalPlaces;\n }\n const samples = (seconds * (denominator / numerator)).toFixed();\n const timeCode = { samples, timeBase: { denominator, numerator } };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSmpte = (smpteText, timeBaseText, options = {}) => {\n if (smpteText === undefined) {\n const timeBase = formatTimeBase(timeBaseText);\n const timeCode = { samples: 0, timeBase };\n return formatTimeCodeType(timeCode);\n }\n if (typeof smpteText !== 'string') {\n throw new Error(`smpteText must be a string, is ${smpteText}`);\n }\n\n const [[hh, mm, ss, ff = 0], frameOptions] = splitSmpte(smpteText);\n const { dropFrame = false } = frameOptions;\n\n const timeBase = formatTimeBase(timeBaseText);\n const roundedFrameRate = getRoundedFrameRate(timeBase);\n\n if (mm >= 60 || mm < 0 || ss >= 60 || ss < 0 || ff >= roundedFrameRate || ff < 0) {\n throw new Error('Invalid mm, ss or ff');\n }\n\n const samples = countSamples(hh, mm, ss, ff, { dropFrame, roundedFrameRate });\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, { ...frameOptions, ...options });\n};\n\nexport {\n formatSeconds,\n formatSecondsPrecise,\n formatTimeBaseType,\n formatTimeBaseText,\n formatTimeCodeType,\n formatTimeCodeText,\n formatTimeBase,\n formatSmpte,\n};\n","const parseKeyValuePairType = (keyValuePairType = []) => {\n const keyValuePairTypeReducer = (a, { key, value }) => ({ ...a, [key]: value });\n return keyValuePairType.reduce(keyValuePairTypeReducer, {});\n};\n\nexport default parseKeyValuePairType;\n","import parseFileSize from 'filesize';\nimport { formatTimeBaseText, formatTimeCodeType } from './time';\nimport parseKeyValuePairType from './parseKeyValuePairType';\n\nconst sampleRateSymbols = { kB: 'kHz', B: 'Hz', mB: 'mHz' };\nconst bitRateSymbols = { kB: 'kbps', B: 'bps', MB: 'mbps' };\n\nconst gcd = (a, b) => (b ? gcd(b, a % b) : a);\n\nconst parseAspectRatio = ({ width, height }) => {\n const denominator = gcd(width, height);\n let widthRatio = width / denominator;\n let heightRatio = height / denominator;\n if (widthRatio > 21) {\n heightRatio = 1;\n widthRatio = (width / height).toFixed(2);\n }\n return [widthRatio, heightRatio].join(':');\n};\n\nconst parseBaseMediaInfoType = (baseMediaInfoType = {}) => {\n const { property: keyValuePairType, ...props } = baseMediaInfoType;\n const parsedKeyValuePairType = parseKeyValuePairType(keyValuePairType);\n return { ...parsedKeyValuePairType, ...props };\n};\n\nconst parseFileType = (fileType) => {\n const { uri: uriList = [], size: fileSizeBytes, hash, path } = fileType;\n const [uri] = uriList;\n const fileSize = fileSizeBytes !== undefined ? parseFileSize(fileSizeBytes) : '';\n const fileName = path ? path.split('/').pop() : undefined;\n return {\n uri,\n hash,\n fileSize,\n fileSizeBytes,\n path,\n fileName,\n };\n};\n\nconst parseContainerComponent = (containerComponent) => {\n const {\n mediaInfo = {},\n metadata = [],\n file: fileList,\n duration: durationTimeCode,\n startTimestamp,\n startTimecode,\n timeCodeTimeBase,\n } = containerComponent;\n const containerMetadata = parseKeyValuePairType(metadata);\n const containerMediaInfo = parseBaseMediaInfoType(mediaInfo);\n let { Format: containerFormat } = containerMediaInfo;\n const {\n Video_Format_List: videoFormat,\n Audio_Format_List: audioFormat,\n Text_Format_List: textFormat,\n } = containerMediaInfo;\n if (containerFormat === undefined) {\n const { format } = containerComponent;\n containerFormat = format;\n if (format && format.includes(',')) {\n const formatList = format.split(',');\n [containerFormat] = formatList;\n }\n }\n let parsedContainerComponent = {\n containerFormat,\n videoFormat,\n audioFormat,\n textFormat,\n containerMetadata,\n containerMediaInfo,\n };\n if (containerMetadata.componentOriginalFilename) {\n parsedContainerComponent.originalFilename = containerMetadata.componentOriginalFilename;\n }\n if (durationTimeCode !== undefined && durationTimeCode.samples !== 0) {\n parsedContainerComponent.durationTimeCode = formatTimeCodeType(durationTimeCode);\n parsedContainerComponent.duration = parsedContainerComponent.durationTimeCode.toDuration();\n }\n if (startTimestamp) {\n parsedContainerComponent.startTimestamp = formatTimeCodeType(startTimestamp);\n }\n if (startTimecode !== undefined && timeCodeTimeBase) {\n parsedContainerComponent.startTimecode = formatTimeCodeType({\n samples: startTimecode,\n timeBase: timeCodeTimeBase,\n });\n }\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedContainerComponent = {\n ...parsedContainerComponent,\n ...parsedFileType,\n };\n }\n return parsedContainerComponent;\n};\n\nconst parseVideoComponent = (videoComponent) => {\n const {\n codec: videoCodec,\n bitrate,\n fieldOrder,\n resolution = {},\n mediaInfo = {},\n metadata = [],\n } = videoComponent;\n const videoMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const videoMetadata = parseKeyValuePairType(metadata);\n const {\n Format: videoFormat,\n 'Frame rate': timeBaseText,\n 'Color space': colorSpace,\n 'Color primaries': colorPrimaries,\n Colorimetry: chromaSubsampling,\n } = videoMediaInfo;\n let timeBase;\n const { averageFrameRate, realBaseFrameRate } = videoComponent;\n if (realBaseFrameRate !== undefined) {\n timeBase = {\n numerator: realBaseFrameRate.denominator,\n denominator: realBaseFrameRate.numerator,\n };\n } else if (timeBaseText !== undefined) {\n timeBase = formatTimeBaseText(timeBaseText);\n } else if (averageFrameRate !== undefined) {\n timeBase = {\n numerator: averageFrameRate.denominator,\n denominator: averageFrameRate.numerator,\n };\n }\n let { 'Frame count': samples } = videoMediaInfo;\n if (samples === undefined) {\n const { numberOfPackets } = videoComponent;\n if (numberOfPackets !== undefined) samples = numberOfPackets;\n }\n let timeCode;\n let frameRate;\n let smpte;\n if (samples && timeBase) {\n timeCode = formatTimeCodeType({ samples, timeBase });\n frameRate = timeCode.timeBase.toRate(true);\n smpte = timeCode.toSmpte(true);\n }\n const { height, width } = resolution;\n const aspectRatio = parseAspectRatio(resolution);\n const dimension = `${width}x${height}`;\n const videoBitrate = bitrate ? parseFileSize(bitrate, { bits: true }) : undefined;\n return {\n videoFormat,\n dimension,\n frameRate,\n height,\n width,\n timeBase,\n timeCode,\n videoCodec,\n smpte,\n videoBitrate,\n fieldOrder,\n colorSpace,\n chromaSubsampling,\n aspectRatio,\n colorPrimaries,\n videoMetadata,\n videoMediaInfo,\n };\n};\n\nconst parseAudioComponent = (audioComponent) => {\n const {\n timeBase = {},\n channelCount: audioChannels,\n codec: audioCodec,\n mediaInfo = {},\n bitrate,\n metadata = [],\n } = audioComponent;\n const audioMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const audioMetadata = parseKeyValuePairType(metadata);\n const {\n Format: audioFormat,\n Resolution: audioBitDepth,\n Bit_rate_mode: audioBitRateMode,\n } = audioMediaInfo;\n const audioSamplerateSamples = timeBase.denominator\n ? timeBase.denominator / timeBase.numerator\n : undefined;\n const audioSamplerate = audioSamplerateSamples\n ? parseFileSize(audioSamplerateSamples, { base: 10, round: 1, symbols: sampleRateSymbols })\n : undefined;\n const audioBitrate = bitrate\n ? parseFileSize(bitrate, { base: 10, round: 2, symbols: bitRateSymbols })\n : undefined;\n return {\n audioFormat,\n audioCodec,\n audioSamplerate,\n audioSamplerateSamples,\n audioBitDepth,\n audioBitrate,\n audioBitRateMode,\n audioChannels,\n audioMediaInfo,\n audioMetadata,\n };\n};\n\nconst parseBinaryComponent = (binaryComponent) => {\n const { file: fileList, mediaInfo = {}, metadata = [] } = binaryComponent;\n const binaryMetadata = parseKeyValuePairType(metadata);\n const binaryMediaInfo = parseBaseMediaInfoType(mediaInfo);\n\n let parsedBinaryComponent = { binaryMetadata, binaryMediaInfo };\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedBinaryComponent = {\n ...parsedBinaryComponent,\n ...parsedFileType,\n };\n }\n return parsedBinaryComponent;\n};\n\nconst parseShapeType = (shapeType = {}) => {\n let parsedShape = {};\n const {\n containerComponent,\n videoComponent: videoComponentList,\n audioComponent: audioComponentList,\n binaryComponent: binaryComponentList,\n mimeType: mimeTypeList = [],\n tag: tagList = [],\n } = shapeType;\n [parsedShape.tag] = tagList;\n [parsedShape.mimeType] = mimeTypeList;\n if (containerComponent) {\n const parsedContainerComponent = parseContainerComponent(containerComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedContainerComponent,\n };\n }\n if (videoComponentList) {\n const [videoComponent] = videoComponentList;\n const parsedVideoComponent = parseVideoComponent(videoComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedVideoComponent,\n };\n }\n if (audioComponentList) {\n const [audioComponent] = audioComponentList;\n const parsedAudioComponent = parseAudioComponent(audioComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedAudioComponent,\n };\n }\n if (binaryComponentList) {\n const [binaryComponent] = binaryComponentList;\n const parsedBinaryComponent = parseBinaryComponent(binaryComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedBinaryComponent,\n };\n }\n return parsedShape;\n};\n\nexport {\n parseAspectRatio,\n parseBaseMediaInfoType,\n parseFileType,\n parseContainerComponent,\n parseVideoComponent,\n parseAudioComponent,\n parseBinaryComponent,\n parseShapeType,\n};\n","import { formatTimeBaseType } from './time';\nimport { parseAspectRatio } from './parseShapeType';\n\nconst parseMediaConvertPreset = (transcodePresetType) => {\n const output = {};\n const { description, mediaconvert: { outputSetting = [] } = {} } = transcodePresetType;\n output.description = description;\n if (outputSetting.length === 0) return output;\n const mc = JSON.parse(outputSetting[0]);\n const { Settings: { ContainerSettings, VideoDescription, AudioDescriptions } = {} } = mc;\n output.containerFormat = ContainerSettings.Container;\n if (ContainerSettings) {\n output.containerFormat = ContainerSettings.Container;\n }\n if (VideoDescription) {\n const { CodecSettings = {} } = VideoDescription;\n const { Codec, ...otherSettings } = CodecSettings;\n output.videoFormat = Codec;\n const { Height: height, Width: width } = VideoDescription;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.fieldOrder = codecSpecs.InterlaceMode;\n if (output.fieldOrder && output.fieldOrder.includes('TOP')) output.fieldOrder = 'interlaced';\n output.videoBitrate = codecSpecs.Bitrate;\n const numerator = codecSpecs.FramerateDenominator; // other way round to vs ¯\\_(ツ)_/¯\n const denominator = codecSpecs.FramerateNumerator;\n const timeBase = formatTimeBaseType({ denominator, numerator });\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n }\n if (AudioDescriptions && AudioDescriptions.length > 0) {\n const { CodecSettings = {} } = AudioDescriptions[0];\n const { Codec, ...otherSettings } = CodecSettings;\n output.audioFormat = Codec;\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.audioSamplerate = codecSpecs.SampleRate;\n output.audioBitrate = codecSpecs.Bitrate;\n output.audioBitRateMode = codecSpecs.RateControlMode;\n }\n }\n return output;\n};\n\nconst parseTranscodePreset = (transcodePresetType) => {\n const output = {};\n const { description, format, audio, video, mediaconvert } = transcodePresetType;\n if (mediaconvert) return parseMediaConvertPreset(transcodePresetType);\n output.description = description;\n output.containerFormat = format;\n if (video) {\n output.videoFormat = video.codec;\n output.videoBitrate = video.bitrate;\n if (video.framerate) {\n const timeBase = formatTimeBaseType(video.framerate);\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n if (video.scaling) {\n const { height, width } = video.scaling;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n }\n }\n if (audio) {\n const { codec: audioFormat, channel } = audio;\n output.audioFormat = audioFormat;\n if (channel) output.audioChannels = channel.length;\n }\n return output;\n};\n\nexport { parseTranscodePreset, parseMediaConvertPreset };\n","const parseFacetType = (facetType = []) => {\n const output = {};\n const facetFieldReducer = (a, { fieldValue, value }) => ({ ...a, [fieldValue]: value });\n facetType.forEach(({ name, field, count }) => {\n output[name || field] = count.reduce(facetFieldReducer, {});\n });\n return output;\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport { parseFacetType };\n","/* Note that VS may calculate +/- unit in another way */\nconst parseNowDate = (value = 'NOW') => {\n if (value.startsWith('NOW')) {\n if (value === 'NOW') return new Date();\n const sign = value[3];\n const number = Number(value.match(/(\\d+)/)[0]);\n const unit = value.match(/(\\d.*)/)[0].replace(/\\d/g, '');\n const nowDiff = new Date();\n // eslint-disable-next-line default-case\n switch (unit) {\n case 'HOUR':\n case 'HOURS':\n if (sign === '+') nowDiff.setHours(nowDiff.getHours() + number);\n if (sign === '-') nowDiff.setHours(nowDiff.getHours() - number);\n break;\n case 'DAY':\n case 'DAYS':\n if (sign === '+') nowDiff.setDate(nowDiff.getDate() + number);\n if (sign === '-') nowDiff.setDate(nowDiff.getDate() - number);\n break;\n case 'MONTH':\n case 'MONTHS':\n if (sign === '+') nowDiff.setMonth(nowDiff.getMonth() + number);\n if (sign === '-') nowDiff.setMonth(nowDiff.getMonth() - number);\n break;\n case 'YEAR':\n case 'YEARS':\n if (sign === '+') nowDiff.setFullYear(nowDiff.getFullYear() + number);\n if (sign === '-') nowDiff.setFullYear(nowDiff.getFullYear() - number);\n break;\n }\n return nowDiff;\n }\n return new Date(value);\n};\n\nexport default parseNowDate;\n","const createFacetType = (fieldList = [], options = {}) =>\n fieldList.map((field) => ({\n field,\n name: field,\n count: options.count || true,\n exclude: fieldList,\n }));\n\n// eslint-disable-next-line import/prefer-default-export\nexport { createFacetType };\n","/* eslint-disable import/prefer-default-export */\nconst parseValueList = (value) => {\n if (value === undefined) return [];\n if (value === null) return [{ value: '' }];\n if (Array.isArray(value)) {\n if (value.length > 0 && value[0].value) return value;\n return value.map((thisValue) => ({ value: thisValue }));\n }\n if (value.value) return [value];\n return [{ value }];\n};\n\nconst parseValue = (fieldValue = {}) => {\n if (fieldValue && (fieldValue.value || fieldValue.name)) {\n const { value: valueList, uuid } = fieldValue;\n const value = parseValueList(valueList);\n return { value, uuid };\n }\n return { value: parseValueList(fieldValue) };\n};\n\nconst parseField = (field = {}) => {\n const { name, value } = field;\n const parsedValue = parseValue(value);\n return { name, ...parsedValue };\n};\n\nconst shouldBeField = ({ name, value }) =>\n ['string', 'boolean', 'number'].includes(typeof value) ||\n (name !== 'group' && Array.isArray(value)) ||\n value === null;\n\nconst parseGroup = (thisGroup = {}) => {\n const { name: groupName, value: groupsOrFields = {} } = thisGroup;\n // eslint-disable-next-line no-use-before-define\n const { field, group } = parseGroupsOrFields(groupsOrFields);\n return {\n name: groupName,\n group,\n field,\n };\n};\n\nconst parseGroupsOrFields = (groupsOrFields) => {\n const group = [];\n const field = [];\n Object.entries(groupsOrFields).forEach(([name, value]) => {\n if (shouldBeField({ name, value })) {\n field.push(parseField({ name, value }));\n } else if (Array.isArray(value)) {\n value.forEach(({ groupName, ...groupValue }) => {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name: groupName, value: groupValue }));\n });\n } else {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name, value }));\n }\n });\n return {\n group,\n field,\n };\n};\n\nconst parseTimeSpan = (timeSpan) => {\n const { start = '-INF', end = '+INF', ...groupsOrFields } = timeSpan;\n const { group, field } = parseGroupsOrFields(groupsOrFields);\n return {\n start,\n end,\n field,\n group,\n };\n};\n\nconst createMetadataType = (metadataType = {}) => {\n const newMetadataType = {};\n if (Array.isArray(metadataType)) {\n newMetadataType.timespan = metadataType.map((thisTimeSpan) => parseTimeSpan(thisTimeSpan));\n } else {\n const genericTimespan = parseTimeSpan(metadataType);\n newMetadataType.timespan = [genericTimespan];\n }\n return newMetadataType;\n};\n\nexport { createMetadataType };\n\nexport default createMetadataType;\n","import { formatTimeCodeText } from './time';\nimport { sortTimespanList, parseTimespan } from './parseMetadataType';\n\nfunction timeToCueTime({ hours = 0, minutes = 0, seconds = 0, partialSeconds = 0 }) {\n const hourStr = hours.toFixed().padStart(2, '0');\n const minStr = minutes.toFixed().padStart(2, '0');\n const secondsStr = seconds.toFixed().padStart(2, '0');\n const partialStr = (partialSeconds * 10).toFixed().padStart(3, '0');\n return `${hourStr}:${minStr}:${secondsStr}.${partialStr}`;\n}\n\nexport default function metadataTypeToWebVtt({\n metadataType,\n subtitleGroup = 'stl_subtitle',\n subtitleField = 'stl_text',\n}) {\n const parseOptions = {\n includeTimespanAttributes: true,\n flatTimespan: true,\n flatGroup: true,\n joinValue: ',',\n };\n\n const { timespan: timespanList = [] } = metadataType || {};\n if (timespanList.length === 0) return '';\n const sortedTimespans = timespanList.sort(sortTimespanList);\n const parsedTimespans = sortedTimespans.map((timespanType) =>\n parseTimespan(timespanType, parseOptions),\n );\n const vttCues = parsedTimespans.map((thisTimespan) => {\n const {\n start: startText,\n end: endText,\n [subtitleGroup]: { [subtitleField]: text } = {},\n } = thisTimespan;\n if (!text) return '';\n const startTime = formatTimeCodeText(startText).toTime();\n const start = timeToCueTime(startTime);\n const endTime = formatTimeCodeText(endText).toTime();\n const end = timeToCueTime(endTime);\n return `${start} --> ${end} line:0%\\r${text}\\r`;\n });\n return `WEBVTT\\n\\n\\n${vttCues.join('\\n')}`;\n}\n","import { parseShapeType } from './parseShapeType';\n\nconst IMAGE_MIME_TYPES = [\n 'image/apng',\n 'image/bmp',\n 'image/gif',\n 'image/jpeg',\n 'image/x-icon',\n 'image/png',\n 'image/svg+xml',\n];\n\nconst VIDEO_MIME_TYPES = ['video/mp4'];\n\nconst AUDIO_MIME_TYPES = [\n 'audio/mp4',\n 'audio/mpeg',\n 'audio/x-aac',\n 'audio/aac',\n 'audio/x-wav',\n 'audio/wav',\n 'audio/accp',\n 'audio/ogg',\n 'audio/webm',\n 'audio/x-flac',\n];\n\nconst DEFAULT_ALLOWED_MIME_TYPES = [...VIDEO_MIME_TYPES, ...IMAGE_MIME_TYPES, ...AUDIO_MIME_TYPES];\n\nconst DEFAULT_ALLOWED_METHODS = ['http', 'https'];\n\nconst MP4_MIMETYPE = 'video/mp4';\nconst QUICKTIME_MIMETYPE = 'video/quicktime';\nconst M4V_MIMETYPE = 'video/x-m4v';\nconst MP4_CONTAINER = 'MPEG-4';\nconst MOV_CONTAINER = 'mov';\nconst H264_CODEC = 'h264';\n\n// Sort by tags in the order of previewShapeOrder, secondary alphabetical.\n// using reverse() so the first has highest index\nconst PREVIEW_SHAPE_ORDER = [\n '__mp4',\n '__mp3_160k',\n '__png',\n '__jpeg',\n '__gif',\n 'original',\n].reverse();\n\nconst defaultSortPriority = ({ shape: { tag: firstEl } }, { shape: { tag: secondEl } }) => {\n if (PREVIEW_SHAPE_ORDER.includes(firstEl) || PREVIEW_SHAPE_ORDER.includes(secondEl)) {\n return PREVIEW_SHAPE_ORDER.indexOf(secondEl) - PREVIEW_SHAPE_ORDER.indexOf(firstEl);\n }\n return firstEl.toLowerCase().localeCompare(secondEl.toLowerCase());\n};\n\nconst filterShapeSource = (itemType = {}, options = {}) => {\n const {\n allowedMimeTypes = DEFAULT_ALLOWED_MIME_TYPES,\n sortPriority = defaultSortPriority,\n allowedMethods = DEFAULT_ALLOWED_METHODS,\n sourceKey = 'src',\n mimeTypeKey = 'type',\n shapeKey = 'shape',\n } = options;\n const { shape: shapeList = [] } = itemType;\n const parsedShapeList = shapeList.reduce((acc, shapeType) => {\n let type;\n let src;\n const shape = parseShapeType(shapeType);\n const { uri, mimeType, containerFormat, videoCodec } = shape;\n if (mimeType) {\n type = mimeType;\n if (\n (mimeType === QUICKTIME_MIMETYPE || mimeType === M4V_MIMETYPE) &&\n (containerFormat === MP4_CONTAINER || containerFormat === MOV_CONTAINER) &&\n videoCodec === H264_CODEC\n )\n type = MP4_MIMETYPE;\n }\n if (uri) {\n if (allowedMethods) {\n const [thisMethod] = uri.split('://');\n if (allowedMethods.includes(thisMethod)) src = uri;\n } else {\n src = uri;\n }\n }\n if (src && allowedMimeTypes.includes(type)) {\n acc.push({\n [sourceKey]: src,\n [mimeTypeKey]: type,\n [shapeKey]: shape,\n });\n }\n return acc;\n }, []);\n if (typeof sortPriority === 'function') parsedShapeList.sort(defaultSortPriority);\n return parsedShapeList;\n};\n\nexport default filterShapeSource;\n","const IMAGE = 'IMAGE';\nconst AUDIO = 'AUDIO';\nconst VIDEO = 'VIDEO';\n\nconst getShapeMediaType = (shape = {}) => {\n const { mimeType, videoCodec, audioCodec } = shape;\n if (!mimeType) return undefined;\n if (mimeType.startsWith('audio/')) {\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('video/')) {\n if (videoCodec !== undefined) return VIDEO;\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('image/')) return IMAGE;\n return undefined;\n};\n\nexport default getShapeMediaType;\n","import { formatTimeCodeText } from './time';\n\nconst findNearestThumbnail = (itemType = {}, timeCodeText) => {\n const tcSeconds = formatTimeCodeText(timeCodeText).toSeconds();\n const { thumbnails = {} } = itemType;\n const { uri: srcList = [] } = thumbnails;\n const srcTcSeconds = srcList.map((url) => {\n const tc = new URL(url).pathname.split('/').pop();\n return formatTimeCodeText(tc).toSeconds();\n });\n\n const nearestSrcIndex = srcTcSeconds.reduce(\n (nearestIndex, curr, currIndex) =>\n Math.abs(curr - tcSeconds) < Math.abs(srcTcSeconds[nearestIndex] - tcSeconds)\n ? currIndex\n : nearestIndex,\n 0,\n );\n return srcList[nearestSrcIndex];\n};\n\nexport default findNearestThumbnail;\n","export const ACCESSCONTROL_READ = '_accesscontrol_read';\nexport const ACCESSCONTROL_WRITE = '_accesscontrol_write';\nexport const ADMINISTRATOR = '_administrator';\nexport const AUTO_PROJECTION_READ = '_auto_projection_read';\nexport const AUTO_PROJECTION_WRITE = '_auto_projection_write';\nexport const COLLECTION_NOTIFICATION_READ = '_collection_notification_read';\nexport const COLLECTION_NOTIFICATION_WRITE = '_collection_notification_write';\nexport const COLLECTION_READ = '_collection_read';\nexport const COLLECTION_WRITE = '_collection_write';\nexport const DELETION_LOCK_NOTIFICATION_READ = '_deletion_lock_notification_read';\nexport const DELETION_LOCK_NOTIFICATION_WRITE = '_deletion_lock_notification_write';\nexport const DELETION_LOCK_READ = '_deletion_lock_read';\nexport const DELETION_LOCK_WRITE = '_deletion_lock_write';\nexport const DOCUMENT_NOTIFICATION_READ = '_document_notification_read';\nexport const DOCUMENT_NOTIFICATION_WRITE = '_document_notification_write';\nexport const DOCUMENT_READ = '_document_read';\nexport const DOCUMENT_WRITE = '_document_write';\nexport const ERROR_READ = '_error_read';\nexport const ERROR_WRITE = '_error_write';\nexport const EXPORT = '_export';\nexport const EXPORT_TEMPLATE_READ = '_export_template_read';\nexport const EXPORT_TEMPLATE_WRITE = '_export_template_write';\nexport const EXTERNAL_ID_READ = '_external_id_read';\nexport const EXTERNAL_ID_WRITE = '_external_id_write';\nexport const FILE_NOTIFICATION_READ = '_file_notification_read';\nexport const FILE_NOTIFICATION_WRITE = '_file_notification_write';\nexport const FILE_READ = '_file_read';\nexport const FILE_WRITE = '_file_write';\nexport const GROUP_READ = '_group_read';\nexport const GROUP_WRITE = '_group_write';\nexport const IMPORT_WRITE = '_import';\nexport const ITEM_ID_READ = '_item_id_read';\nexport const ITEM_ID_WRITE = '_item_id_write';\nexport const ITEM_NOTIFICATION_READ = '_item_notification_read';\nexport const ITEM_NOTIFICATION_WRITE = '_item_notification_write';\nexport const ITEM_WRITE = '_item_write';\nexport const ITEM_SEARCH = '_item_search';\nexport const ITEM_SHAPE_READ = '_item_shape_read';\nexport const ITEM_SHAPE_WRITE = '_item_shape_write';\nexport const ITEM_TIMELINE_READ = '_item_timeline_read';\nexport const ITEM_TIMELINE_WRITE = '_item_timeline_write';\nexport const ITEM_URI = '_item_uri';\nexport const JOB_NOTIFICATION_READ = '_job_notification_read';\nexport const JOB_NOTIFICATION_WRITE = '_job_notification_write';\nexport const JOB_READ = '_job_read';\nexport const JOB_WRITE = '_job_write';\nexport const LIBRARY_READ = '_library_read';\nexport const LIBRARY_WRITE = '_library_write';\nexport const LOCK_READ = '_lock_read';\nexport const LOCK_WRITE = '_lock_write';\nexport const LOG_READ = '_log_read';\nexport const METADATA_DATASET_READ = '_metadata_dataset_read';\nexport const METADATA_DATASET_WRITE = '_metadata_dataset_write';\nexport const METADATA_FIELD_GROUP_READ = '_metadata_field_group_read';\nexport const METADATA_FIELD_GROUP_WRITE = '_metadata_field_group_write';\nexport const METADATA_FIELD_READ = '_metadata_field_read';\nexport const METADATA_FIELD_WRITE = '_metadata_field_write';\nexport const METADATA_GLOBAL_READ = '_metadata_global_read';\nexport const METADATA_GLOBAL_WRITE = '_metadata_global_write';\nexport const METADATA_LOCK_READ = '_metadata_lock_read';\nexport const METADATA_LOCK_WRITE = '_metadata_lock_write';\nexport const METADATA_READ = '_metadata_read';\nexport const METADATA_SCHEMA_READ = '_metadata_schema_read';\nexport const METADATA_SCHEMA_WRITE = '_metadata_schema_write';\nexport const METADATA_WRITE = '_metadata_write';\nexport const OTIF_ANALYZE = '_otif_analyze';\nexport const OTIF_READ = '_otif_read';\nexport const OTIF_WRITE = '_otif_write';\nexport const PLACEHOLDER_NOTIFICATION_READ = '_placeholder_notification_read';\nexport const PLACEHOLDER_NOTIFICATION_WRITE = '_placeholder_notification_write';\nexport const PROJECTION_READ = '_projection_read';\nexport const PROJECTION_WRITE = '_projection_write';\nexport const QUOTA_NOTIFICATION_READ = '_quota_notification_read';\nexport const QUOTA_NOTIFICATION_WRITE = '_quota_notification_write';\nexport const QUOTA_READ = '_quota_read';\nexport const QUOTA_WRITE = '_quota_write';\nexport const RELATION_READ = '_relation_read';\nexport const RELATION_WRITE = '_relation_write';\nexport const RESOURCE_READ = '_resource_read';\nexport const RESOURCE_WRITE = '_resource_write';\nexport const RUN_AS = '_run_as';\nexport const SEARCH = '_search';\nexport const SEQUENCE_READ = '_sequence_read';\nexport const SEQUENCE_WRITE = '_sequence_write';\nexport const SHAPE_TAG_READ = '_shape_tag_read';\nexport const SHAPE_TAG_WRITE = '_shape_tag_write';\nexport const SITE_MANAGER = '_site_manager';\nexport const SITE_RULE_READ = '_site_rule_read';\nexport const SITE_RULE_WRITE = '_site_rule_write';\nexport const STORAGE_GROUP_READ = '_storage_group_read';\nexport const STORAGE_GROUP_WRITE = '_storage_group_write';\nexport const STORAGE_NOTIFICATION_READ = '_storage_notification_read';\nexport const STORAGE_NOTIFICATION_WRITE = '_storage_notification_write';\nexport const STORAGE_READ = '_storage_read';\nexport const STORAGE_RULE_READ = '_storage_rule_read';\nexport const STORAGE_RULE_WRITE = '_storage_rule_write';\nexport const STORAGE_WRITE = '_storage_write';\nexport const SUPER_ACCESS_USER = '_super_access_user';\nexport const TASKDEFINITION_READ = '_taskdefinition_read';\nexport const TASKDEFINITION_WRITE = '_taskdefinition_write';\nexport const THUMBNAIL_READ = '_thumbnail_read';\nexport const THUMBNAIL_WRITE = '_thumbnail_write';\nexport const TRANSCODER = '_transcoder';\nexport const TRANSFER_READ = '_transfer_read';\nexport const TRANSFER_WRITE = '_transfer_write';\nexport const USER = '_user';\nexport const VXA = '_vxa';\nexport const VXA_READ = '_vxa_read';\n","import parseKeyValuePairType from './parseKeyValuePairType';\n\nconst parseSimpleMetadataType = ({ field = [] } = {}) => {\n return parseKeyValuePairType(field);\n};\n\nexport default parseSimpleMetadataType;\n","const parseHighlightTimespan = ({ field = [], start, end } = {}, opts = {}) => {\n const { arrayOnSingle = true, joinValue = undefined, timespanAsList = undefined } = opts;\n const initialValue = timespanAsList ? { start, end } : {};\n const fieldList = field.reduce((a, { name, value: valueList = [] }) => {\n if (valueList.length === 0) return a;\n let fieldValue;\n if (arrayOnSingle === false && valueList.length === 1) [fieldValue] = valueList;\n else if (joinValue) fieldValue = valueList.join(joinValue);\n else fieldValue = valueList;\n return { ...a, [name]: fieldValue };\n }, initialValue);\n return fieldList;\n};\n\n/**\n * Parses Highlight Timespans into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} highlightTimespanList - A list of timespans.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {Object} options.arrayOnSingle - Return an array if there is a single value.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.flat - Flatten to field-name/field-value (Note: field-values may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan to object with start/end as key.\n * @param {Object} options.timespanAsList - Return timespans as list.\n * @param {Object} options.joinTimespan - String character to join the start/end timecodes.\n */\nconst parseHighlightTimespanList = (highlightTimespanList = [], opts = {}) => {\n const { flat, timespanAsList, joinTimespan = '_', flatTimespan } = opts;\n if (timespanAsList === true)\n return highlightTimespanList.map((timespan) => parseHighlightTimespan(timespan, opts));\n if (flat === true || flatTimespan === true)\n return highlightTimespanList.reduce(\n (a, timespan) => ({ ...a, ...parseHighlightTimespan(timespan, opts) }),\n {},\n );\n return highlightTimespanList.reduce(\n (a, timespan) => ({\n ...a,\n [[timespan.start, timespan.end].join(joinTimespan)]: parseHighlightTimespan(timespan, opts),\n }),\n {},\n );\n};\n\nexport { parseHighlightTimespan, parseHighlightTimespanList };\n"],"names":["sortTimespanList","firstStart","start","secondStart","split","first","second","Number","findTimespan","metadataType","end","timespan","timespanList","find","parseValueList","valueList","options","arrayOnSingle","arrayOnSingleValue","joinValue","includeAttributes","includeValueAttributes","valueArray","forEach","thisValue","value","push","join","length","parseField","field","includeFieldAttributes","attributes","parsedValueList","parseFieldList","fieldList","output","fieldAsList","map","thisField","key","name","parsedField","currentValue","parsedValue","concat","parseGroup","group","includeGroupAttributes","flat","flatGroup","groupAsList","groupList","parsedFieldList","parsedGroupList","parseGroupList","Object","assign","thisGroup","parsedGroup","currentField","currentGroup","parseTimespan","includeTimespanAttributes","flatTimespan","parseTimespanList","joinTimespan","timespanAsList","thisTimespan","parsedTimespan","parseMetadataType","includeMetadataAttributes","sortTimespan","sort","global","b","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","descriptor","arguments","undefined","result","val","e","base","ceil","full","fullforms","locale","localeOptions","neg","num","round","unix","separator","spacer","standard","symbols","isNaN","TypeError","Array","exponent","Math","floor","log","pow","toFixed","charAt","replace","test","toLocaleString","toString","partial","opt","module","PAL","NTSC","NTSC30","CONSTANT_TIMEBASES","denominator","numerator","FRAME_SEPARATORS","dropFrame","splitSmpte","smpteText","hasDropFrameSeparator","match","hhmmssff","frameOptions","frameSeparator","hhmmss","splitFrames","some","n","Error","getDropFrames","roundedFrameRate","getRoundedFrameRate","timeBase","countSamples","hh","mm","ss","ff","includes","dropFrames","shouldDropMinute","shouldDropSecond","hourFrames","minuteFrames","secondFrames","frameFrames","countDroppedFrames","frames","oneMinuteUndroppedFrames","oneMinuteDroppedFrames","tenMinuteFrames","tenMinuteChunks","minuteRemainder","max","oneMinuteChunks","frameRemainder","frameChunks","TimeBase","constant","entries","thisTimeBase","thisTimeBaseText","thisTimeBaseType","useConstant","timeBaseText","toConstant","String","rate","isInteger","isDropFrameTimeBase","TimeCode","samples","Infinity","conformedTimeCode","conformTimeBase","conformTo","toRate","timeCode","timeCodeText","toText","totalSamples","hours","minutes","seconds","partialSeconds","format","toTime","toLowerCase","padStart","thisSeparator","formatTimeBaseType","formatTimeBaseText","keys","formatTimeBase","formatTimeCodeType","formatTimeCodeText","samplesString","formatSeconds","formatSecondsPrecise","decimalPlaces","formatSmpte","parseKeyValuePairType","keyValuePairType","keyValuePairTypeReducer","a","reduce","sampleRateSymbols","kB","B","mB","bitRateSymbols","MB","gcd","parseAspectRatio","width","height","widthRatio","heightRatio","parseBaseMediaInfoType","baseMediaInfoType","property","props","parsedKeyValuePairType","parseFileType","fileType","uri","uriList","fileSizeBytes","size","hash","path","fileSize","parseFileSize","fileName","pop","parseContainerComponent","containerComponent","mediaInfo","metadata","fileList","file","durationTimeCode","duration","startTimestamp","startTimecode","timeCodeTimeBase","containerMetadata","containerMediaInfo","containerFormat","Format","videoFormat","Video_Format_List","audioFormat","Audio_Format_List","textFormat","Text_Format_List","formatList","parsedContainerComponent","componentOriginalFilename","originalFilename","toDuration","parsedFileType","parseVideoComponent","videoComponent","videoCodec","codec","bitrate","fieldOrder","resolution","videoMediaInfo","videoMetadata","colorSpace","colorPrimaries","chromaSubsampling","Colorimetry","averageFrameRate","realBaseFrameRate","numberOfPackets","frameRate","smpte","toSmpte","aspectRatio","dimension","videoBitrate","parseAudioComponent","audioComponent","audioChannels","channelCount","audioCodec","audioMediaInfo","audioMetadata","audioBitDepth","Resolution","audioBitRateMode","Bit_rate_mode","audioSamplerateSamples","audioSamplerate","audioBitrate","parseBinaryComponent","binaryComponent","binaryMetadata","binaryMediaInfo","parsedBinaryComponent","parseShapeType","shapeType","parsedShape","videoComponentList","audioComponentList","binaryComponentList","mimeType","mimeTypeList","tag","tagList","parsedVideoComponent","parsedAudioComponent","parseMediaConvertPreset","transcodePresetType","description","mediaconvert","outputSetting","mc","JSON","parse","Settings","ContainerSettings","VideoDescription","AudioDescriptions","Container","CodecSettings","Codec","otherSettings","Height","Width","values","codecSpecs","InterlaceMode","Bitrate","FramerateDenominator","FramerateNumerator","SampleRate","RateControlMode","parseTranscodePreset","audio","video","framerate","scaling","channel","parseFacetType","facetType","facetFieldReducer","fieldValue","count","parseNowDate","startsWith","Date","sign","number","unit","nowDiff","setHours","getHours","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","createFacetType","exclude","isArray","parseValue","uuid","shouldBeField","groupName","groupsOrFields","parseGroupsOrFields","groupValue","parseTimeSpan","timeSpan","createMetadataType","newMetadataType","thisTimeSpan","genericTimespan","timeToCueTime","hourStr","minStr","secondsStr","partialStr","metadataTypeToWebVtt","subtitleGroup","subtitleField","parseOptions","sortedTimespans","parsedTimespans","timespanType","vttCues","startText","endText","text","startTime","endTime","IMAGE_MIME_TYPES","VIDEO_MIME_TYPES","AUDIO_MIME_TYPES","DEFAULT_ALLOWED_MIME_TYPES","DEFAULT_ALLOWED_METHODS","MP4_MIMETYPE","QUICKTIME_MIMETYPE","M4V_MIMETYPE","MP4_CONTAINER","MOV_CONTAINER","H264_CODEC","PREVIEW_SHAPE_ORDER","reverse","defaultSortPriority","firstEl","shape","secondEl","indexOf","localeCompare","filterShapeSource","itemType","allowedMimeTypes","sortPriority","allowedMethods","sourceKey","mimeTypeKey","shapeKey","shapeList","parsedShapeList","acc","type","src","thisMethod","IMAGE","AUDIO","VIDEO","getShapeMediaType","findNearestThumbnail","tcSeconds","toSeconds","thumbnails","srcList","srcTcSeconds","url","tc","URL","pathname","nearestSrcIndex","nearestIndex","curr","currIndex","abs","ACCESSCONTROL_READ","ACCESSCONTROL_WRITE","ADMINISTRATOR","AUTO_PROJECTION_READ","AUTO_PROJECTION_WRITE","COLLECTION_NOTIFICATION_READ","COLLECTION_NOTIFICATION_WRITE","COLLECTION_READ","COLLECTION_WRITE","DELETION_LOCK_NOTIFICATION_READ","DELETION_LOCK_NOTIFICATION_WRITE","DELETION_LOCK_READ","DELETION_LOCK_WRITE","DOCUMENT_NOTIFICATION_READ","DOCUMENT_NOTIFICATION_WRITE","DOCUMENT_READ","DOCUMENT_WRITE","ERROR_READ","ERROR_WRITE","EXPORT","EXPORT_TEMPLATE_READ","EXPORT_TEMPLATE_WRITE","EXTERNAL_ID_READ","EXTERNAL_ID_WRITE","FILE_NOTIFICATION_READ","FILE_NOTIFICATION_WRITE","FILE_READ","FILE_WRITE","GROUP_READ","GROUP_WRITE","IMPORT_WRITE","ITEM_ID_READ","ITEM_ID_WRITE","ITEM_NOTIFICATION_READ","ITEM_NOTIFICATION_WRITE","ITEM_WRITE","ITEM_SEARCH","ITEM_SHAPE_READ","ITEM_SHAPE_WRITE","ITEM_TIMELINE_READ","ITEM_TIMELINE_WRITE","ITEM_URI","JOB_NOTIFICATION_READ","JOB_NOTIFICATION_WRITE","JOB_READ","JOB_WRITE","LIBRARY_READ","LIBRARY_WRITE","LOCK_READ","LOCK_WRITE","LOG_READ","METADATA_DATASET_READ","METADATA_DATASET_WRITE","METADATA_FIELD_GROUP_READ","METADATA_FIELD_GROUP_WRITE","METADATA_FIELD_READ","METADATA_FIELD_WRITE","METADATA_GLOBAL_READ","METADATA_GLOBAL_WRITE","METADATA_LOCK_READ","METADATA_LOCK_WRITE","METADATA_READ","METADATA_SCHEMA_READ","METADATA_SCHEMA_WRITE","METADATA_WRITE","OTIF_ANALYZE","OTIF_READ","OTIF_WRITE","PLACEHOLDER_NOTIFICATION_READ","PLACEHOLDER_NOTIFICATION_WRITE","PROJECTION_READ","PROJECTION_WRITE","QUOTA_NOTIFICATION_READ","QUOTA_NOTIFICATION_WRITE","QUOTA_READ","QUOTA_WRITE","RELATION_READ","RELATION_WRITE","RESOURCE_READ","RESOURCE_WRITE","RUN_AS","SEARCH","SEQUENCE_READ","SEQUENCE_WRITE","SHAPE_TAG_READ","SHAPE_TAG_WRITE","SITE_MANAGER","SITE_RULE_READ","SITE_RULE_WRITE","STORAGE_GROUP_READ","STORAGE_GROUP_WRITE","STORAGE_NOTIFICATION_READ","STORAGE_NOTIFICATION_WRITE","STORAGE_READ","STORAGE_RULE_READ","STORAGE_RULE_WRITE","STORAGE_WRITE","SUPER_ACCESS_USER","TASKDEFINITION_READ","TASKDEFINITION_WRITE","THUMBNAIL_READ","THUMBNAIL_WRITE","TRANSCODER","TRANSFER_READ","TRANSFER_WRITE","USER","VXA","VXA_READ","parseSimpleMetadataType","parseHighlightTimespan","opts","initialValue","parseHighlightTimespanList","highlightTimespanList"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -846,8 +846,8 @@ var TimeBase = /*#__PURE__*/function () {
846
846
 
847
847
  _classCallCheck(this, TimeBase);
848
848
 
849
- this.numerator = numerator;
850
- this.denominator = denominator;
849
+ this.numerator = Number(numerator);
850
+ this.denominator = Number(denominator);
851
851
  }
852
852
 
853
853
  _createClass(TimeBase, [{
@@ -1160,7 +1160,7 @@ var formatTimeBaseText = function formatTimeBaseText(timeBaseText) {
1160
1160
  var denominator = Number(timeBaseText);
1161
1161
 
1162
1162
  if (Number.isNaN(denominator)) {
1163
- throw new Error("timeBaseText must be a number or PAL,NTSC,NTSC30 - is ".concat(timeBaseText));
1163
+ throw new Error("timeBaseText must be a number or ".concat(Object.keys(CONSTANT_TIMEBASES).join(','), " - is ").concat(timeBaseText));
1164
1164
  }
1165
1165
 
1166
1166
  return formatTimeBaseType({
@@ -2510,6 +2510,8 @@ var parseHighlightTimespanList = function parseHighlightTimespanList() {
2510
2510
  }, {});
2511
2511
  };
2512
2512
 
2513
+ exports.TimeBase = TimeBase;
2514
+ exports.TimeCode = TimeCode;
2513
2515
  exports.createFacetType = createFacetType;
2514
2516
  exports.createMetadataType = createMetadataType;
2515
2517
  exports.filterShapeSource = filterShapeSource;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/parseMetadataType.js","../../../node_modules/filesize/lib/filesize.js","../src/const/time.js","../src/time.js","../src/parseKeyValuePairType.js","../src/parseShapeType.js","../src/parseTranscodePreset.js","../src/parseFacetType.js","../src/parseNowDate.js","../src/createFacetType.js","../src/createMetadataType.js","../src/metadataTypeToWebVtt.js","../src/filterShapeSource.js","../src/getShapeMediaType.js","../src/findNearestThumbnail.js","../src/const/roles.js","../src/parseSimpleMetadataType.js","../src/parseHighlightTimespan.js"],"sourcesContent":["const sortTimespanList = ({ start: firstStart }, { start: secondStart }) => {\n const [first] = firstStart.split('@');\n const [second] = secondStart.split('@');\n if (Number(first) < Number(second)) {\n return -1;\n }\n if (Number(first) > Number(second)) {\n return 1;\n }\n return 0;\n};\n\nconst findTimespan = (metadataType = {}, start, end) => {\n const { timespan: timespanList = [] } = metadataType;\n return timespanList.find((timespan) => timespan.start === start && timespan.end === end);\n};\n\nconst parseValueList = (valueList = [], options = {}) => {\n const {\n arrayOnSingle = true,\n arrayOnSingleValue = true,\n joinValue,\n includeAttributes,\n includeValueAttributes,\n } = options;\n if (includeAttributes || includeValueAttributes) return valueList;\n const valueArray = [];\n valueList.forEach((thisValue) => {\n if (thisValue.value) valueArray.push(thisValue.value);\n });\n if (joinValue) return valueArray.join(joinValue);\n if ((arrayOnSingle === false || arrayOnSingleValue === false) && valueArray.length === 1) {\n return valueArray[0];\n }\n return valueArray;\n};\n\nconst parseField = (field = {}, options = {}) => {\n const { includeAttributes, includeFieldAttributes } = options;\n const { value = [], ...attributes } = field;\n const parsedValueList = parseValueList(value, options);\n if (includeAttributes || includeFieldAttributes) return { ...attributes, value: parsedValueList };\n return parsedValueList;\n};\n\nconst parseFieldList = (fieldList = [], options = {}) => {\n const { joinValue, includeAttributes, includeFieldAttributes, includeValueAttributes } = options;\n const output = {};\n const { fieldAsList } = options;\n if (fieldAsList) {\n return fieldList.map((thisField) => parseField(thisField, options));\n }\n\n fieldList.forEach((thisField) => {\n const { name: key } = thisField;\n const parsedField = parseField(thisField, options);\n if (output[key]) {\n if (includeAttributes || includeFieldAttributes) {\n const { value: currentValue } = output[key];\n const { value: parsedValue } = parsedField;\n if (joinValue && !includeAttributes && !includeValueAttributes) {\n output[key].value = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key].value = parsedValue.concat(currentValue);\n }\n } else {\n const currentValue = output[key];\n const parsedValue = parsedField;\n if (joinValue) {\n output[key] = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key] = parsedValue.concat(currentValue);\n }\n }\n } else {\n output[key] = parsedField;\n }\n });\n return output;\n};\n\nconst parseGroup = (group = {}, options = {}) => {\n const {\n includeAttributes,\n includeGroupAttributes,\n flat,\n flatGroup,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = group;\n const parsedFieldList = parseFieldList(fieldList, options);\n const parsedGroupList = parseGroupList(groupList, options); // eslint-disable-line no-use-before-define,max-len\n const output = {};\n if (includeAttributes || includeGroupAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatGroup) {\n if (groupAsList) {\n Object.assign(output, { group: parsedGroupList });\n } else {\n Object.assign(output, parsedGroupList);\n }\n if (fieldAsList) {\n Object.assign(output, { field: parsedFieldList });\n } else {\n Object.assign(output, parsedFieldList);\n }\n } else {\n Object.assign(output, { field: parsedFieldList });\n Object.assign(output, { group: parsedGroupList });\n }\n return output;\n};\n\nconst parseGroupList = (groupList = [], options = {}) => {\n const { groupAsList } = options;\n if (groupAsList) {\n return groupList.map((thisGroup) => parseGroup(thisGroup, options));\n }\n const output = {};\n groupList.forEach((thisGroup) => {\n const { name: key } = thisGroup;\n const parsedGroup = parseGroup(thisGroup, options);\n if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroupList } = parsedGroup;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroupList };\n } else {\n output[key] = parsedGroup;\n }\n });\n return output;\n};\n\nconst parseTimespan = (timespan = {}, options = {}) => {\n const {\n includeAttributes,\n includeTimespanAttributes,\n flat,\n flatTimespan,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = timespan;\n const field = parseFieldList(fieldList, options);\n const group = parseGroupList(groupList, options);\n const output = {};\n if (includeAttributes || includeTimespanAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatTimespan) {\n if (groupAsList) {\n Object.assign(output, { group });\n } else {\n Object.assign(output, group);\n }\n if (fieldAsList) {\n Object.assign(output, { field });\n } else {\n Object.assign(output, field);\n }\n } else {\n Object.assign(output, { field });\n Object.assign(output, { group });\n }\n return output;\n};\n\nconst parseTimespanList = (timespanList = [], options = {}) => {\n const { joinTimespan, flat } = options;\n const { timespanAsList } = options;\n if (timespanAsList) {\n return timespanList.map((thisTimespan) => parseTimespan(thisTimespan, options));\n }\n let output = {};\n timespanList.forEach((thisTimespan) => {\n const { start, end } = thisTimespan;\n const key = [start, end].join(joinTimespan || '_');\n const parsedTimespan = parseTimespan(thisTimespan, options);\n if (flat) {\n output = { ...output, ...parsedTimespan };\n } else if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroup } = parsedTimespan;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroup };\n } else {\n output[key] = parsedTimespan;\n }\n });\n return output;\n};\n\n/**\n * Parses MetadataType into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} metadataType - The response from the API.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.includeAttributes - include attributes on all objects.\n * @param {Object} options.includeMetadataAttributes - include attributes on root.\n * @param {Object} options.includeTimespanAttributes - include attributes on timespans.\n * @param {Object} options.includeGroupAttributes - include attributes on groups.\n * @param {Object} options.includeFieldAttributes - include attributes on fields.\n * @param {Object} options.includeValueAttributes - include attributes on values.\n * @param {Object} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan.\n * @param {Object} options.flatGroup - Flatten group.\n * @param {Object} options.sortTimespan - Sort timespan by start time.\n * @param {Object} options.timespanAsList -Return timespans as list.\n * @param {Object} options.groupAsList -Return groups as list.\n * @param {Object} options.fieldAsList -Return fields as list.\n */\nconst parseMetadataType = (metadataType = {}, options = {}) => {\n const { includeAttributes, includeMetadataAttributes, sortTimespan } = options;\n const { timespan: timespanList = [], ...attributes } = metadataType;\n if (sortTimespan) timespanList.sort(sortTimespanList);\n const timespan = parseTimespanList(timespanList, options);\n if (includeAttributes || includeMetadataAttributes) {\n Object.assign(timespan, attributes);\n }\n return timespan;\n};\n\nexport { parseTimespan, parseTimespanList, parseMetadataType, sortTimespanList, findTimespan };\nexport default parseMetadataType;\n","\"use strict\";\r\n\r\n/**\r\n * filesize\r\n *\r\n * @copyright 2020 Jason Mulligan <jason.mulligan@avoidwork.com>\r\n * @license BSD-3-Clause\r\n * @version 6.1.0\r\n */\r\n(function (global) {\r\n var b = /^(b|B)$/,\r\n symbol = {\r\n iec: {\r\n bits: [\"b\", \"Kib\", \"Mib\", \"Gib\", \"Tib\", \"Pib\", \"Eib\", \"Zib\", \"Yib\"],\r\n bytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\r\n },\r\n jedec: {\r\n bits: [\"b\", \"Kb\", \"Mb\", \"Gb\", \"Tb\", \"Pb\", \"Eb\", \"Zb\", \"Yb\"],\r\n bytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\r\n }\r\n },\r\n fullform = {\r\n iec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\r\n jedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\r\n };\r\n /**\r\n * filesize\r\n *\r\n * @method filesize\r\n * @param {Mixed} arg String, Int or Float to transform\r\n * @param {Object} descriptor [Optional] Flags\r\n * @return {String} Readable file size String\r\n */\r\n\r\n function filesize(arg) {\r\n var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var result = [],\r\n val = 0,\r\n e = void 0,\r\n base = void 0,\r\n bits = void 0,\r\n ceil = void 0,\r\n full = void 0,\r\n fullforms = void 0,\r\n locale = void 0,\r\n localeOptions = void 0,\r\n neg = void 0,\r\n num = void 0,\r\n output = void 0,\r\n round = void 0,\r\n unix = void 0,\r\n separator = void 0,\r\n spacer = void 0,\r\n standard = void 0,\r\n symbols = void 0;\r\n\r\n if (isNaN(arg)) {\r\n throw new TypeError(\"Invalid number\");\r\n }\r\n\r\n bits = descriptor.bits === true;\r\n unix = descriptor.unix === true;\r\n base = descriptor.base || 2;\r\n round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;\r\n locale = descriptor.locale !== void 0 ? descriptor.locale : \"\";\r\n localeOptions = descriptor.localeOptions || {};\r\n separator = descriptor.separator !== void 0 ? descriptor.separator : \"\";\r\n spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? \"\" : \" \";\r\n symbols = descriptor.symbols || {};\r\n standard = base === 2 ? descriptor.standard || \"jedec\" : \"jedec\";\r\n output = descriptor.output || \"string\";\r\n full = descriptor.fullform === true;\r\n fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];\r\n e = descriptor.exponent !== void 0 ? descriptor.exponent : -1;\r\n num = Number(arg);\r\n neg = num < 0;\r\n ceil = base > 2 ? 1000 : 1024; // Flipping a negative number to determine the size\r\n\r\n if (neg) {\r\n num = -num;\r\n } // Determining the exponent\r\n\r\n\r\n if (e === -1 || isNaN(e)) {\r\n e = Math.floor(Math.log(num) / Math.log(ceil));\r\n\r\n if (e < 0) {\r\n e = 0;\r\n }\r\n } // Exceeding supported length, time to reduce & multiply\r\n\r\n\r\n if (e > 8) {\r\n e = 8;\r\n }\r\n\r\n if (output === \"exponent\") {\r\n return e;\r\n } // Zero is now a special case because bytes divide by 1\r\n\r\n\r\n if (num === 0) {\r\n result[0] = 0;\r\n result[1] = unix ? \"\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n } else {\r\n val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\r\n\r\n if (bits) {\r\n val = val * 8;\r\n\r\n if (val >= ceil && e < 8) {\r\n val = val / ceil;\r\n e++;\r\n }\r\n }\r\n\r\n result[0] = Number(val.toFixed(e > 0 ? round : 0));\r\n\r\n if (result[0] === ceil && e < 8 && descriptor.exponent === void 0) {\r\n result[0] = 1;\r\n e++;\r\n }\r\n\r\n result[1] = base === 10 && e === 1 ? bits ? \"kb\" : \"kB\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n\r\n if (unix) {\r\n result[1] = standard === \"jedec\" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, \"\") : result[1];\r\n\r\n if (b.test(result[1])) {\r\n result[0] = Math.floor(result[0]);\r\n result[1] = \"\";\r\n }\r\n }\r\n } // Decorating a 'diff'\r\n\r\n\r\n if (neg) {\r\n result[0] = -result[0];\r\n } // Applying custom symbol\r\n\r\n\r\n result[1] = symbols[result[1]] || result[1];\r\n\r\n if (locale === true) {\r\n result[0] = result[0].toLocaleString();\r\n } else if (locale.length > 0) {\r\n result[0] = result[0].toLocaleString(locale, localeOptions);\r\n } else if (separator.length > 0) {\r\n result[0] = result[0].toString().replace(\".\", separator);\r\n } // Returning Array, Object, or String (default)\r\n\r\n\r\n if (output === \"array\") {\r\n return result;\r\n }\r\n\r\n if (full) {\r\n result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? \"bit\" : \"byte\") + (result[0] === 1 ? \"\" : \"s\");\r\n }\r\n\r\n if (output === \"object\") {\r\n return {\r\n value: result[0],\r\n symbol: result[1],\r\n exponent: e\r\n };\r\n }\r\n\r\n return result.join(spacer);\r\n } // Partial application for functional programming\r\n\r\n\r\n filesize.partial = function (opt) {\r\n return function (arg) {\r\n return filesize(arg, opt);\r\n };\r\n }; // CommonJS, AMD, script tag\r\n\r\n\r\n if (typeof exports !== \"undefined\") {\r\n module.exports = filesize;\r\n } else if (typeof define === \"function\" && define.amd !== void 0) {\r\n define(function () {\r\n return filesize;\r\n });\r\n } else {\r\n global.filesize = filesize;\r\n }\r\n})(typeof window !== \"undefined\" ? window : global);\r\n","export const PAL = 'PAL';\nexport const NTSC = 'NTSC';\nexport const NTSC30 = 'NTSC30';\n\nexport const CONSTANT_TIMEBASES = {\n [PAL]: { denominator: 25, numerator: 1 },\n [NTSC]: { denominator: 30000, numerator: 1001 },\n [NTSC30]: { denominator: 30, numerator: 1 },\n};\n\nexport const FRAME_SEPARATORS = {\n ':': { dropFrame: false, field: 2 },\n ';': { dropFrame: true, field: 2 },\n '.': { dropFrame: false, field: 1 },\n ',': { dropFrame: true, field: 1 },\n};\n","/* eslint max-classes-per-file: \"off\" */\nimport { CONSTANT_TIMEBASES, FRAME_SEPARATORS } from './const/time';\n\nconst splitSmpte = (smpteText) => {\n const hasDropFrameSeparator = smpteText.match(/[^0-9:\\-_]/);\n\n let hhmmssff;\n let frameOptions = {};\n if (hasDropFrameSeparator) {\n const [frameSeparator] = hasDropFrameSeparator;\n const [hhmmss, splitFrames] = smpteText.split(frameSeparator);\n hhmmssff = [...hhmmss.split(':'), splitFrames];\n frameOptions = FRAME_SEPARATORS[frameSeparator] || {};\n } else {\n hhmmssff = smpteText.split(':');\n }\n\n hhmmssff = hhmmssff.map(Number);\n\n if (hhmmssff.length > 4 || hhmmssff.some((n) => Number.isNaN(n))) {\n throw new Error('Invalid SMPTE timecode');\n }\n\n return [hhmmssff, frameOptions];\n};\n\nconst getDropFrames = (roundedFrameRate) => (roundedFrameRate === 60 ? 4 : 2);\n\nconst getRoundedFrameRate = (timeBase) => Math.round(timeBase.denominator / timeBase.numerator);\n\nconst countSamples = (hh, mm, ss, ff, { dropFrame, roundedFrameRate }) => {\n if (!dropFrame) {\n return hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;\n }\n\n if (![30, 60].includes(roundedFrameRate)) {\n throw new Error('Cannot use dropframe with non NTSC timebase');\n }\n\n const dropFrames = getDropFrames(roundedFrameRate);\n\n const shouldDropMinute = mm % 10 !== 0;\n const shouldDropSecond = shouldDropMinute && ss === 0;\n\n const hourFrames = hh * (3600 * roundedFrameRate - 54 * dropFrames);\n const minuteFrames = mm * 60 * roundedFrameRate - (mm - Math.ceil(mm / 10)) * dropFrames;\n const secondFrames = ss * roundedFrameRate - (shouldDropMinute && ss > 1 ? dropFrames : 0);\n\n if (shouldDropSecond && ff < dropFrames) {\n throw new Error('Invalid ff');\n }\n\n const frameFrames = shouldDropSecond ? ff - dropFrames : ff;\n\n return hourFrames + minuteFrames + secondFrames + frameFrames;\n};\n\nfunction countDroppedFrames(frames, roundedFrameRate) {\n const dropFrames = getDropFrames(roundedFrameRate);\n const oneMinuteUndroppedFrames = 60 * roundedFrameRate;\n const oneMinuteDroppedFrames = 60 * roundedFrameRate - dropFrames;\n const tenMinuteFrames = 10 * (oneMinuteUndroppedFrames - dropFrames) + dropFrames;\n\n const tenMinuteChunks = Math.floor(frames / tenMinuteFrames);\n const minuteRemainder = Math.max(0, (frames % tenMinuteFrames) - oneMinuteUndroppedFrames);\n const oneMinuteChunks = Math.floor(minuteRemainder / oneMinuteDroppedFrames);\n const frameRemainder = minuteRemainder % oneMinuteDroppedFrames;\n const frameChunks = frameRemainder > 0 ? dropFrames : 0;\n\n return tenMinuteChunks * 9 * dropFrames + oneMinuteChunks * dropFrames + frameChunks;\n}\n\nclass TimeBase {\n constructor({ numerator = 1, denominator = 1 } = {}) {\n this.numerator = numerator;\n this.denominator = denominator;\n }\n\n toJSON() {\n return {\n denominator: this.denominator,\n numerator: this.numerator,\n };\n }\n\n toConstant() {\n let constant;\n Object.entries(CONSTANT_TIMEBASES).find((thisTimeBase) => {\n const [thisTimeBaseText, thisTimeBaseType] = thisTimeBase;\n const { numerator, denominator } = thisTimeBaseType;\n if (numerator === this.numerator && denominator === this.denominator) {\n constant = thisTimeBaseText;\n return true;\n }\n return false;\n });\n return constant;\n }\n\n toText(useConstant = false) {\n if (useConstant) {\n const timeBaseText = this.toConstant();\n if (timeBaseText) return timeBaseText;\n }\n if (this.numerator > 1) {\n const timeBaseText = [this.denominator, this.numerator].join(':');\n return timeBaseText;\n }\n const timeBaseText = String(this.denominator);\n return timeBaseText;\n }\n\n toRate(useConstant = false, round = true) {\n if (useConstant) {\n const rate = this.toConstant();\n if (rate) return rate;\n }\n const rate = this.denominator / this.numerator;\n if (Number.isInteger(rate)) {\n return rate;\n }\n return round ? rate.toFixed(2) : rate;\n }\n}\n\nconst isDropFrameTimeBase = ({ numerator, denominator }) => {\n return numerator === 1001 && (denominator === 60000 || denominator === 30000);\n};\n\nclass TimeCode {\n constructor({ samples = 0, timeBase } = {}, { dropFrame, field = 2 } = {}) {\n if (typeof samples === 'number') {\n this.samples = samples;\n } else if (typeof samples === 'string') {\n if (samples === '-INF') {\n this.samples = -Infinity;\n } else if (samples === '+INF') {\n this.samples = Infinity;\n } else {\n this.samples = Number(samples);\n }\n } else {\n throw new Error(`samples is not number/string/-Inf/+Inf is: ${samples}`);\n }\n this.timeBase = new TimeBase(timeBase);\n this.dropFrame = dropFrame === undefined ? isDropFrameTimeBase(this.timeBase) : dropFrame;\n this.field = field;\n }\n\n add(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples + samples, timeBase: this.timeBase });\n }\n\n subtract(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples - samples, timeBase: this.timeBase });\n }\n\n conformTimeBase(conformTo) {\n let timeBase = conformTo;\n if (conformTo instanceof TimeCode === false) {\n timeBase = new TimeBase(conformTo);\n }\n const samples = Math.round(\n this.samples / (this.timeBase.toRate(false, false) / timeBase.toRate(false, false)),\n );\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode);\n }\n\n toJSON() {\n return {\n samples: this.samples,\n timeBase: this.timeBase,\n };\n }\n\n toText() {\n let timeCodeText = String(this.samples);\n const timeBaseText = this.timeBase.toText();\n if (timeBaseText !== '1') {\n timeCodeText = [this.samples, timeBaseText].join('@');\n }\n return timeCodeText;\n }\n\n toSeconds() {\n const { numerator, denominator } = this.timeBase;\n return this.samples * (numerator / denominator);\n }\n\n toTime() {\n const roundedFrameRate = getRoundedFrameRate(this.timeBase);\n const totalSamples =\n this.samples + (this.dropFrame ? countDroppedFrames(this.samples + 1, roundedFrameRate) : 0);\n\n const hours = Math.floor(totalSamples / (3600 * roundedFrameRate));\n const minutes = Math.floor(totalSamples / (60 * roundedFrameRate)) % 60;\n const seconds = Math.floor(totalSamples / roundedFrameRate) % 60;\n const frames = totalSamples % roundedFrameRate;\n const partialSeconds = frames / roundedFrameRate;\n return {\n hours,\n minutes,\n seconds,\n frames,\n partialSeconds,\n };\n }\n\n toDuration({ format } = {}) {\n const { hours, minutes, seconds } = this.toTime();\n if (typeof format === 'string') {\n if (format.toLowerCase() === 'hhmmss') {\n return [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n }\n if (hours) {\n return [\n hours.toFixed(),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n if (minutes >= 10) {\n return [minutes.toFixed().padStart(2, '0'), seconds.toFixed().padStart(2, '0')].join(':');\n }\n return [minutes.toFixed(), seconds.toFixed().padStart(2, '0')].join(':');\n }\n\n toSmpte() {\n if (this.samples === -Infinity) return '00:00:00:00';\n const { hours, minutes, seconds, frames } = this.toTime();\n const hhmmss = [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n const [frameSeparator = ':'] = Object.entries(FRAME_SEPARATORS).find((thisSeparator) => {\n const [, { dropFrame, field }] = thisSeparator;\n return dropFrame === this.dropFrame && field === this.field;\n });\n return [hhmmss, frames.toFixed().padStart(2, '0')].join(frameSeparator);\n }\n}\n\nconst formatTimeBaseType = (timeBase) => new TimeBase(timeBase);\n\nconst formatTimeBaseText = (timeBaseText) => {\n if (timeBaseText === undefined) {\n return formatTimeBaseType();\n }\n if (typeof timeBaseText === 'number') {\n return formatTimeBaseType({ denominator: timeBaseText });\n }\n if (timeBaseText.includes(':')) {\n const [denominator, numerator] = timeBaseText.split(':');\n return formatTimeBaseType({ denominator, numerator });\n }\n if (Object.keys(CONSTANT_TIMEBASES).includes(timeBaseText)) {\n return formatTimeBaseType(CONSTANT_TIMEBASES[timeBaseText]);\n }\n const denominator = Number(timeBaseText);\n if (Number.isNaN(denominator)) {\n throw new Error(`timeBaseText must be a number or PAL,NTSC,NTSC30 - is ${timeBaseText}`);\n }\n return formatTimeBaseType({ denominator });\n};\n\nconst formatTimeBase = (timeBase) => {\n if (typeof timeBase === 'object') {\n return formatTimeBaseType(timeBase);\n }\n return formatTimeBaseText(timeBase);\n};\n\nconst formatTimeCodeType = (timeCode, options) => new TimeCode(timeCode, options);\n\nconst formatTimeCodeText = (timeCodeText, options) => {\n if (timeCodeText === undefined) {\n const timeCode = { samples: 0 };\n return formatTimeCodeType(timeCode, options);\n }\n if (typeof timeCodeText === 'number') {\n const timeCode = { samples: timeCodeText };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText.includes('@')) {\n const [samplesString, timeBaseText] = timeCodeText.split('@');\n const samples = Number(samplesString);\n const timeBase = formatTimeBaseText(timeBaseText);\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '-INF') {\n const samples = -Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '+INF') {\n const samples = Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n const samples = Number(timeCodeText);\n if (Number.isNaN(samples)) {\n throw new Error(`timeBaseText must be a number or sample@timeBase - is ${timeCodeText}`);\n }\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n};\n\nconst formatSeconds = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { denominator = 1, numerator = 1 } = timeBase;\n const samples = seconds * (denominator / numerator);\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSecondsPrecise = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { numerator = 1 } = timeBase;\n let { denominator = 1 } = timeBase;\n if (!Number.isInteger(seconds)) {\n const decimalPlaces = String(seconds).split('.')[1].length;\n denominator *= 10 ** decimalPlaces;\n }\n const samples = (seconds * (denominator / numerator)).toFixed();\n const timeCode = { samples, timeBase: { denominator, numerator } };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSmpte = (smpteText, timeBaseText, options = {}) => {\n if (smpteText === undefined) {\n const timeBase = formatTimeBase(timeBaseText);\n const timeCode = { samples: 0, timeBase };\n return formatTimeCodeType(timeCode);\n }\n if (typeof smpteText !== 'string') {\n throw new Error(`smpteText must be a string, is ${smpteText}`);\n }\n\n const [[hh, mm, ss, ff = 0], frameOptions] = splitSmpte(smpteText);\n const { dropFrame = false } = frameOptions;\n\n const timeBase = formatTimeBase(timeBaseText);\n const roundedFrameRate = getRoundedFrameRate(timeBase);\n\n if (mm >= 60 || mm < 0 || ss >= 60 || ss < 0 || ff >= roundedFrameRate || ff < 0) {\n throw new Error('Invalid mm, ss or ff');\n }\n\n const samples = countSamples(hh, mm, ss, ff, { dropFrame, roundedFrameRate });\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, { ...frameOptions, ...options });\n};\n\nexport {\n formatSeconds,\n formatSecondsPrecise,\n formatTimeBaseType,\n formatTimeBaseText,\n formatTimeCodeType,\n formatTimeCodeText,\n formatTimeBase,\n formatSmpte,\n};\n","const parseKeyValuePairType = (keyValuePairType = []) => {\n const keyValuePairTypeReducer = (a, { key, value }) => ({ ...a, [key]: value });\n return keyValuePairType.reduce(keyValuePairTypeReducer, {});\n};\n\nexport default parseKeyValuePairType;\n","import parseFileSize from 'filesize';\nimport { formatTimeBaseText, formatTimeCodeType } from './time';\nimport parseKeyValuePairType from './parseKeyValuePairType';\n\nconst sampleRateSymbols = { kB: 'kHz', B: 'Hz', mB: 'mHz' };\nconst bitRateSymbols = { kB: 'kbps', B: 'bps', MB: 'mbps' };\n\nconst gcd = (a, b) => (b ? gcd(b, a % b) : a);\n\nconst parseAspectRatio = ({ width, height }) => {\n const denominator = gcd(width, height);\n let widthRatio = width / denominator;\n let heightRatio = height / denominator;\n if (widthRatio > 21) {\n heightRatio = 1;\n widthRatio = (width / height).toFixed(2);\n }\n return [widthRatio, heightRatio].join(':');\n};\n\nconst parseBaseMediaInfoType = (baseMediaInfoType = {}) => {\n const { property: keyValuePairType, ...props } = baseMediaInfoType;\n const parsedKeyValuePairType = parseKeyValuePairType(keyValuePairType);\n return { ...parsedKeyValuePairType, ...props };\n};\n\nconst parseFileType = (fileType) => {\n const { uri: uriList = [], size: fileSizeBytes, hash, path } = fileType;\n const [uri] = uriList;\n const fileSize = fileSizeBytes !== undefined ? parseFileSize(fileSizeBytes) : '';\n const fileName = path ? path.split('/').pop() : undefined;\n return {\n uri,\n hash,\n fileSize,\n fileSizeBytes,\n path,\n fileName,\n };\n};\n\nconst parseContainerComponent = (containerComponent) => {\n const {\n mediaInfo = {},\n metadata = [],\n file: fileList,\n duration: durationTimeCode,\n startTimestamp,\n startTimecode,\n timeCodeTimeBase,\n } = containerComponent;\n const containerMetadata = parseKeyValuePairType(metadata);\n const containerMediaInfo = parseBaseMediaInfoType(mediaInfo);\n let { Format: containerFormat } = containerMediaInfo;\n const {\n Video_Format_List: videoFormat,\n Audio_Format_List: audioFormat,\n Text_Format_List: textFormat,\n } = containerMediaInfo;\n if (containerFormat === undefined) {\n const { format } = containerComponent;\n containerFormat = format;\n if (format && format.includes(',')) {\n const formatList = format.split(',');\n [containerFormat] = formatList;\n }\n }\n let parsedContainerComponent = {\n containerFormat,\n videoFormat,\n audioFormat,\n textFormat,\n containerMetadata,\n containerMediaInfo,\n };\n if (containerMetadata.componentOriginalFilename) {\n parsedContainerComponent.originalFilename = containerMetadata.componentOriginalFilename;\n }\n if (durationTimeCode !== undefined && durationTimeCode.samples !== 0) {\n parsedContainerComponent.durationTimeCode = formatTimeCodeType(durationTimeCode);\n parsedContainerComponent.duration = parsedContainerComponent.durationTimeCode.toDuration();\n }\n if (startTimestamp) {\n parsedContainerComponent.startTimestamp = formatTimeCodeType(startTimestamp);\n }\n if (startTimecode !== undefined && timeCodeTimeBase) {\n parsedContainerComponent.startTimecode = formatTimeCodeType({\n samples: startTimecode,\n timeBase: timeCodeTimeBase,\n });\n }\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedContainerComponent = {\n ...parsedContainerComponent,\n ...parsedFileType,\n };\n }\n return parsedContainerComponent;\n};\n\nconst parseVideoComponent = (videoComponent) => {\n const {\n codec: videoCodec,\n bitrate,\n fieldOrder,\n resolution = {},\n mediaInfo = {},\n metadata = [],\n } = videoComponent;\n const videoMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const videoMetadata = parseKeyValuePairType(metadata);\n const {\n Format: videoFormat,\n 'Frame rate': timeBaseText,\n 'Color space': colorSpace,\n 'Color primaries': colorPrimaries,\n Colorimetry: chromaSubsampling,\n } = videoMediaInfo;\n let timeBase;\n const { averageFrameRate, realBaseFrameRate } = videoComponent;\n if (realBaseFrameRate !== undefined) {\n timeBase = {\n numerator: realBaseFrameRate.denominator,\n denominator: realBaseFrameRate.numerator,\n };\n } else if (timeBaseText !== undefined) {\n timeBase = formatTimeBaseText(timeBaseText);\n } else if (averageFrameRate !== undefined) {\n timeBase = {\n numerator: averageFrameRate.denominator,\n denominator: averageFrameRate.numerator,\n };\n }\n let { 'Frame count': samples } = videoMediaInfo;\n if (samples === undefined) {\n const { numberOfPackets } = videoComponent;\n if (numberOfPackets !== undefined) samples = numberOfPackets;\n }\n let timeCode;\n let frameRate;\n let smpte;\n if (samples && timeBase) {\n timeCode = formatTimeCodeType({ samples, timeBase });\n frameRate = timeCode.timeBase.toRate(true);\n smpte = timeCode.toSmpte(true);\n }\n const { height, width } = resolution;\n const aspectRatio = parseAspectRatio(resolution);\n const dimension = `${width}x${height}`;\n const videoBitrate = bitrate ? parseFileSize(bitrate, { bits: true }) : undefined;\n return {\n videoFormat,\n dimension,\n frameRate,\n height,\n width,\n timeBase,\n timeCode,\n videoCodec,\n smpte,\n videoBitrate,\n fieldOrder,\n colorSpace,\n chromaSubsampling,\n aspectRatio,\n colorPrimaries,\n videoMetadata,\n videoMediaInfo,\n };\n};\n\nconst parseAudioComponent = (audioComponent) => {\n const {\n timeBase = {},\n channelCount: audioChannels,\n codec: audioCodec,\n mediaInfo = {},\n bitrate,\n metadata = [],\n } = audioComponent;\n const audioMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const audioMetadata = parseKeyValuePairType(metadata);\n const {\n Format: audioFormat,\n Resolution: audioBitDepth,\n Bit_rate_mode: audioBitRateMode,\n } = audioMediaInfo;\n const audioSamplerateSamples = timeBase.denominator\n ? timeBase.denominator / timeBase.numerator\n : undefined;\n const audioSamplerate = audioSamplerateSamples\n ? parseFileSize(audioSamplerateSamples, { base: 10, round: 1, symbols: sampleRateSymbols })\n : undefined;\n const audioBitrate = bitrate\n ? parseFileSize(bitrate, { base: 10, round: 2, symbols: bitRateSymbols })\n : undefined;\n return {\n audioFormat,\n audioCodec,\n audioSamplerate,\n audioSamplerateSamples,\n audioBitDepth,\n audioBitrate,\n audioBitRateMode,\n audioChannels,\n audioMediaInfo,\n audioMetadata,\n };\n};\n\nconst parseBinaryComponent = (binaryComponent) => {\n const { file: fileList, mediaInfo = {}, metadata = [] } = binaryComponent;\n const binaryMetadata = parseKeyValuePairType(metadata);\n const binaryMediaInfo = parseBaseMediaInfoType(mediaInfo);\n\n let parsedBinaryComponent = { binaryMetadata, binaryMediaInfo };\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedBinaryComponent = {\n ...parsedBinaryComponent,\n ...parsedFileType,\n };\n }\n return parsedBinaryComponent;\n};\n\nconst parseShapeType = (shapeType = {}) => {\n let parsedShape = {};\n const {\n containerComponent,\n videoComponent: videoComponentList,\n audioComponent: audioComponentList,\n binaryComponent: binaryComponentList,\n mimeType: mimeTypeList = [],\n tag: tagList = [],\n } = shapeType;\n [parsedShape.tag] = tagList;\n [parsedShape.mimeType] = mimeTypeList;\n if (containerComponent) {\n const parsedContainerComponent = parseContainerComponent(containerComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedContainerComponent,\n };\n }\n if (videoComponentList) {\n const [videoComponent] = videoComponentList;\n const parsedVideoComponent = parseVideoComponent(videoComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedVideoComponent,\n };\n }\n if (audioComponentList) {\n const [audioComponent] = audioComponentList;\n const parsedAudioComponent = parseAudioComponent(audioComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedAudioComponent,\n };\n }\n if (binaryComponentList) {\n const [binaryComponent] = binaryComponentList;\n const parsedBinaryComponent = parseBinaryComponent(binaryComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedBinaryComponent,\n };\n }\n return parsedShape;\n};\n\nexport {\n parseAspectRatio,\n parseBaseMediaInfoType,\n parseFileType,\n parseContainerComponent,\n parseVideoComponent,\n parseAudioComponent,\n parseBinaryComponent,\n parseShapeType,\n};\n","import { formatTimeBaseType } from './time';\nimport { parseAspectRatio } from './parseShapeType';\n\nconst parseMediaConvertPreset = (transcodePresetType) => {\n const output = {};\n const { description, mediaconvert: { outputSetting = [] } = {} } = transcodePresetType;\n output.description = description;\n if (outputSetting.length === 0) return output;\n const mc = JSON.parse(outputSetting[0]);\n const { Settings: { ContainerSettings, VideoDescription, AudioDescriptions } = {} } = mc;\n output.containerFormat = ContainerSettings.Container;\n if (ContainerSettings) {\n output.containerFormat = ContainerSettings.Container;\n }\n if (VideoDescription) {\n const { CodecSettings = {} } = VideoDescription;\n const { Codec, ...otherSettings } = CodecSettings;\n output.videoFormat = Codec;\n const { Height: height, Width: width } = VideoDescription;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.fieldOrder = codecSpecs.InterlaceMode;\n if (output.fieldOrder && output.fieldOrder.includes('TOP')) output.fieldOrder = 'interlaced';\n output.videoBitrate = codecSpecs.Bitrate;\n const numerator = codecSpecs.FramerateDenominator; // other way round to vs ¯\\_(ツ)_/¯\n const denominator = codecSpecs.FramerateNumerator;\n const timeBase = formatTimeBaseType({ denominator, numerator });\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n }\n if (AudioDescriptions && AudioDescriptions.length > 0) {\n const { CodecSettings = {} } = AudioDescriptions[0];\n const { Codec, ...otherSettings } = CodecSettings;\n output.audioFormat = Codec;\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.audioSamplerate = codecSpecs.SampleRate;\n output.audioBitrate = codecSpecs.Bitrate;\n output.audioBitRateMode = codecSpecs.RateControlMode;\n }\n }\n return output;\n};\n\nconst parseTranscodePreset = (transcodePresetType) => {\n const output = {};\n const { description, format, audio, video, mediaconvert } = transcodePresetType;\n if (mediaconvert) return parseMediaConvertPreset(transcodePresetType);\n output.description = description;\n output.containerFormat = format;\n if (video) {\n output.videoFormat = video.codec;\n output.videoBitrate = video.bitrate;\n if (video.framerate) {\n const timeBase = formatTimeBaseType(video.framerate);\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n if (video.scaling) {\n const { height, width } = video.scaling;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n }\n }\n if (audio) {\n const { codec: audioFormat, channel } = audio;\n output.audioFormat = audioFormat;\n if (channel) output.audioChannels = channel.length;\n }\n return output;\n};\n\nexport { parseTranscodePreset, parseMediaConvertPreset };\n","const parseFacetType = (facetType = []) => {\n const output = {};\n const facetFieldReducer = (a, { fieldValue, value }) => ({ ...a, [fieldValue]: value });\n facetType.forEach(({ name, field, count }) => {\n output[name || field] = count.reduce(facetFieldReducer, {});\n });\n return output;\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport { parseFacetType };\n","/* Note that VS may calculate +/- unit in another way */\nconst parseNowDate = (value = 'NOW') => {\n if (value.startsWith('NOW')) {\n if (value === 'NOW') return new Date();\n const sign = value[3];\n const number = Number(value.match(/(\\d+)/)[0]);\n const unit = value.match(/(\\d.*)/)[0].replace(/\\d/g, '');\n const nowDiff = new Date();\n // eslint-disable-next-line default-case\n switch (unit) {\n case 'HOUR':\n case 'HOURS':\n if (sign === '+') nowDiff.setHours(nowDiff.getHours() + number);\n if (sign === '-') nowDiff.setHours(nowDiff.getHours() - number);\n break;\n case 'DAY':\n case 'DAYS':\n if (sign === '+') nowDiff.setDate(nowDiff.getDate() + number);\n if (sign === '-') nowDiff.setDate(nowDiff.getDate() - number);\n break;\n case 'MONTH':\n case 'MONTHS':\n if (sign === '+') nowDiff.setMonth(nowDiff.getMonth() + number);\n if (sign === '-') nowDiff.setMonth(nowDiff.getMonth() - number);\n break;\n case 'YEAR':\n case 'YEARS':\n if (sign === '+') nowDiff.setFullYear(nowDiff.getFullYear() + number);\n if (sign === '-') nowDiff.setFullYear(nowDiff.getFullYear() - number);\n break;\n }\n return nowDiff;\n }\n return new Date(value);\n};\n\nexport default parseNowDate;\n","const createFacetType = (fieldList = [], options = {}) =>\n fieldList.map((field) => ({\n field,\n name: field,\n count: options.count || true,\n exclude: fieldList,\n }));\n\n// eslint-disable-next-line import/prefer-default-export\nexport { createFacetType };\n","/* eslint-disable import/prefer-default-export */\nconst parseValueList = (value) => {\n if (value === undefined) return [];\n if (value === null) return [{ value: '' }];\n if (Array.isArray(value)) {\n if (value.length > 0 && value[0].value) return value;\n return value.map((thisValue) => ({ value: thisValue }));\n }\n if (value.value) return [value];\n return [{ value }];\n};\n\nconst parseValue = (fieldValue = {}) => {\n if (fieldValue && (fieldValue.value || fieldValue.name)) {\n const { value: valueList, uuid } = fieldValue;\n const value = parseValueList(valueList);\n return { value, uuid };\n }\n return { value: parseValueList(fieldValue) };\n};\n\nconst parseField = (field = {}) => {\n const { name, value } = field;\n const parsedValue = parseValue(value);\n return { name, ...parsedValue };\n};\n\nconst shouldBeField = ({ name, value }) =>\n ['string', 'boolean', 'number'].includes(typeof value) ||\n (name !== 'group' && Array.isArray(value)) ||\n value === null;\n\nconst parseGroup = (thisGroup = {}) => {\n const { name: groupName, value: groupsOrFields = {} } = thisGroup;\n // eslint-disable-next-line no-use-before-define\n const { field, group } = parseGroupsOrFields(groupsOrFields);\n return {\n name: groupName,\n group,\n field,\n };\n};\n\nconst parseGroupsOrFields = (groupsOrFields) => {\n const group = [];\n const field = [];\n Object.entries(groupsOrFields).forEach(([name, value]) => {\n if (shouldBeField({ name, value })) {\n field.push(parseField({ name, value }));\n } else if (Array.isArray(value)) {\n value.forEach(({ groupName, ...groupValue }) => {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name: groupName, value: groupValue }));\n });\n } else {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name, value }));\n }\n });\n return {\n group,\n field,\n };\n};\n\nconst parseTimeSpan = (timeSpan) => {\n const { start = '-INF', end = '+INF', ...groupsOrFields } = timeSpan;\n const { group, field } = parseGroupsOrFields(groupsOrFields);\n return {\n start,\n end,\n field,\n group,\n };\n};\n\nconst createMetadataType = (metadataType = {}) => {\n const newMetadataType = {};\n if (Array.isArray(metadataType)) {\n newMetadataType.timespan = metadataType.map((thisTimeSpan) => parseTimeSpan(thisTimeSpan));\n } else {\n const genericTimespan = parseTimeSpan(metadataType);\n newMetadataType.timespan = [genericTimespan];\n }\n return newMetadataType;\n};\n\nexport { createMetadataType };\n\nexport default createMetadataType;\n","import { formatTimeCodeText } from './time';\nimport { sortTimespanList, parseTimespan } from './parseMetadataType';\n\nfunction timeToCueTime({ hours = 0, minutes = 0, seconds = 0, partialSeconds = 0 }) {\n const hourStr = hours.toFixed().padStart(2, '0');\n const minStr = minutes.toFixed().padStart(2, '0');\n const secondsStr = seconds.toFixed().padStart(2, '0');\n const partialStr = (partialSeconds * 10).toFixed().padStart(3, '0');\n return `${hourStr}:${minStr}:${secondsStr}.${partialStr}`;\n}\n\nexport default function metadataTypeToWebVtt({\n metadataType,\n subtitleGroup = 'stl_subtitle',\n subtitleField = 'stl_text',\n}) {\n const parseOptions = {\n includeTimespanAttributes: true,\n flatTimespan: true,\n flatGroup: true,\n joinValue: ',',\n };\n\n const { timespan: timespanList = [] } = metadataType || {};\n if (timespanList.length === 0) return '';\n const sortedTimespans = timespanList.sort(sortTimespanList);\n const parsedTimespans = sortedTimespans.map((timespanType) =>\n parseTimespan(timespanType, parseOptions),\n );\n const vttCues = parsedTimespans.map((thisTimespan) => {\n const {\n start: startText,\n end: endText,\n [subtitleGroup]: { [subtitleField]: text } = {},\n } = thisTimespan;\n if (!text) return '';\n const startTime = formatTimeCodeText(startText).toTime();\n const start = timeToCueTime(startTime);\n const endTime = formatTimeCodeText(endText).toTime();\n const end = timeToCueTime(endTime);\n return `${start} --> ${end} line:0%\\r${text}\\r`;\n });\n return `WEBVTT\\n\\n\\n${vttCues.join('\\n')}`;\n}\n","import { parseShapeType } from './parseShapeType';\n\nconst IMAGE_MIME_TYPES = [\n 'image/apng',\n 'image/bmp',\n 'image/gif',\n 'image/jpeg',\n 'image/x-icon',\n 'image/png',\n 'image/svg+xml',\n];\n\nconst VIDEO_MIME_TYPES = ['video/mp4'];\n\nconst AUDIO_MIME_TYPES = [\n 'audio/mp4',\n 'audio/mpeg',\n 'audio/x-aac',\n 'audio/aac',\n 'audio/x-wav',\n 'audio/wav',\n 'audio/accp',\n 'audio/ogg',\n 'audio/webm',\n 'audio/x-flac',\n];\n\nconst DEFAULT_ALLOWED_MIME_TYPES = [...VIDEO_MIME_TYPES, ...IMAGE_MIME_TYPES, ...AUDIO_MIME_TYPES];\n\nconst DEFAULT_ALLOWED_METHODS = ['http', 'https'];\n\nconst MP4_MIMETYPE = 'video/mp4';\nconst QUICKTIME_MIMETYPE = 'video/quicktime';\nconst M4V_MIMETYPE = 'video/x-m4v';\nconst MP4_CONTAINER = 'MPEG-4';\nconst MOV_CONTAINER = 'mov';\nconst H264_CODEC = 'h264';\n\n// Sort by tags in the order of previewShapeOrder, secondary alphabetical.\n// using reverse() so the first has highest index\nconst PREVIEW_SHAPE_ORDER = [\n '__mp4',\n '__mp3_160k',\n '__png',\n '__jpeg',\n '__gif',\n 'original',\n].reverse();\n\nconst defaultSortPriority = ({ shape: { tag: firstEl } }, { shape: { tag: secondEl } }) => {\n if (PREVIEW_SHAPE_ORDER.includes(firstEl) || PREVIEW_SHAPE_ORDER.includes(secondEl)) {\n return PREVIEW_SHAPE_ORDER.indexOf(secondEl) - PREVIEW_SHAPE_ORDER.indexOf(firstEl);\n }\n return firstEl.toLowerCase().localeCompare(secondEl.toLowerCase());\n};\n\nconst filterShapeSource = (itemType = {}, options = {}) => {\n const {\n allowedMimeTypes = DEFAULT_ALLOWED_MIME_TYPES,\n sortPriority = defaultSortPriority,\n allowedMethods = DEFAULT_ALLOWED_METHODS,\n sourceKey = 'src',\n mimeTypeKey = 'type',\n shapeKey = 'shape',\n } = options;\n const { shape: shapeList = [] } = itemType;\n const parsedShapeList = shapeList.reduce((acc, shapeType) => {\n let type;\n let src;\n const shape = parseShapeType(shapeType);\n const { uri, mimeType, containerFormat, videoCodec } = shape;\n if (mimeType) {\n type = mimeType;\n if (\n (mimeType === QUICKTIME_MIMETYPE || mimeType === M4V_MIMETYPE) &&\n (containerFormat === MP4_CONTAINER || containerFormat === MOV_CONTAINER) &&\n videoCodec === H264_CODEC\n )\n type = MP4_MIMETYPE;\n }\n if (uri) {\n if (allowedMethods) {\n const [thisMethod] = uri.split('://');\n if (allowedMethods.includes(thisMethod)) src = uri;\n } else {\n src = uri;\n }\n }\n if (src && allowedMimeTypes.includes(type)) {\n acc.push({\n [sourceKey]: src,\n [mimeTypeKey]: type,\n [shapeKey]: shape,\n });\n }\n return acc;\n }, []);\n if (typeof sortPriority === 'function') parsedShapeList.sort(defaultSortPriority);\n return parsedShapeList;\n};\n\nexport default filterShapeSource;\n","const IMAGE = 'IMAGE';\nconst AUDIO = 'AUDIO';\nconst VIDEO = 'VIDEO';\n\nconst getShapeMediaType = (shape = {}) => {\n const { mimeType, videoCodec, audioCodec } = shape;\n if (!mimeType) return undefined;\n if (mimeType.startsWith('audio/')) {\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('video/')) {\n if (videoCodec !== undefined) return VIDEO;\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('image/')) return IMAGE;\n return undefined;\n};\n\nexport default getShapeMediaType;\n","import { formatTimeCodeText } from './time';\n\nconst findNearestThumbnail = (itemType = {}, timeCodeText) => {\n const tcSeconds = formatTimeCodeText(timeCodeText).toSeconds();\n const { thumbnails = {} } = itemType;\n const { uri: srcList = [] } = thumbnails;\n const srcTcSeconds = srcList.map((url) => {\n const tc = new URL(url).pathname.split('/').pop();\n return formatTimeCodeText(tc).toSeconds();\n });\n\n const nearestSrcIndex = srcTcSeconds.reduce(\n (nearestIndex, curr, currIndex) =>\n Math.abs(curr - tcSeconds) < Math.abs(srcTcSeconds[nearestIndex] - tcSeconds)\n ? currIndex\n : nearestIndex,\n 0,\n );\n return srcList[nearestSrcIndex];\n};\n\nexport default findNearestThumbnail;\n","export const ACCESSCONTROL_READ = '_accesscontrol_read';\nexport const ACCESSCONTROL_WRITE = '_accesscontrol_write';\nexport const ADMINISTRATOR = '_administrator';\nexport const AUTO_PROJECTION_READ = '_auto_projection_read';\nexport const AUTO_PROJECTION_WRITE = '_auto_projection_write';\nexport const COLLECTION_NOTIFICATION_READ = '_collection_notification_read';\nexport const COLLECTION_NOTIFICATION_WRITE = '_collection_notification_write';\nexport const COLLECTION_READ = '_collection_read';\nexport const COLLECTION_WRITE = '_collection_write';\nexport const DELETION_LOCK_NOTIFICATION_READ = '_deletion_lock_notification_read';\nexport const DELETION_LOCK_NOTIFICATION_WRITE = '_deletion_lock_notification_write';\nexport const DELETION_LOCK_READ = '_deletion_lock_read';\nexport const DELETION_LOCK_WRITE = '_deletion_lock_write';\nexport const DOCUMENT_NOTIFICATION_READ = '_document_notification_read';\nexport const DOCUMENT_NOTIFICATION_WRITE = '_document_notification_write';\nexport const DOCUMENT_READ = '_document_read';\nexport const DOCUMENT_WRITE = '_document_write';\nexport const ERROR_READ = '_error_read';\nexport const ERROR_WRITE = '_error_write';\nexport const EXPORT = '_export';\nexport const EXPORT_TEMPLATE_READ = '_export_template_read';\nexport const EXPORT_TEMPLATE_WRITE = '_export_template_write';\nexport const EXTERNAL_ID_READ = '_external_id_read';\nexport const EXTERNAL_ID_WRITE = '_external_id_write';\nexport const FILE_NOTIFICATION_READ = '_file_notification_read';\nexport const FILE_NOTIFICATION_WRITE = '_file_notification_write';\nexport const FILE_READ = '_file_read';\nexport const FILE_WRITE = '_file_write';\nexport const GROUP_READ = '_group_read';\nexport const GROUP_WRITE = '_group_write';\nexport const IMPORT_WRITE = '_import';\nexport const ITEM_ID_READ = '_item_id_read';\nexport const ITEM_ID_WRITE = '_item_id_write';\nexport const ITEM_NOTIFICATION_READ = '_item_notification_read';\nexport const ITEM_NOTIFICATION_WRITE = '_item_notification_write';\nexport const ITEM_WRITE = '_item_write';\nexport const ITEM_SEARCH = '_item_search';\nexport const ITEM_SHAPE_READ = '_item_shape_read';\nexport const ITEM_SHAPE_WRITE = '_item_shape_write';\nexport const ITEM_TIMELINE_READ = '_item_timeline_read';\nexport const ITEM_TIMELINE_WRITE = '_item_timeline_write';\nexport const ITEM_URI = '_item_uri';\nexport const JOB_NOTIFICATION_READ = '_job_notification_read';\nexport const JOB_NOTIFICATION_WRITE = '_job_notification_write';\nexport const JOB_READ = '_job_read';\nexport const JOB_WRITE = '_job_write';\nexport const LIBRARY_READ = '_library_read';\nexport const LIBRARY_WRITE = '_library_write';\nexport const LOCK_READ = '_lock_read';\nexport const LOCK_WRITE = '_lock_write';\nexport const LOG_READ = '_log_read';\nexport const METADATA_DATASET_READ = '_metadata_dataset_read';\nexport const METADATA_DATASET_WRITE = '_metadata_dataset_write';\nexport const METADATA_FIELD_GROUP_READ = '_metadata_field_group_read';\nexport const METADATA_FIELD_GROUP_WRITE = '_metadata_field_group_write';\nexport const METADATA_FIELD_READ = '_metadata_field_read';\nexport const METADATA_FIELD_WRITE = '_metadata_field_write';\nexport const METADATA_GLOBAL_READ = '_metadata_global_read';\nexport const METADATA_GLOBAL_WRITE = '_metadata_global_write';\nexport const METADATA_LOCK_READ = '_metadata_lock_read';\nexport const METADATA_LOCK_WRITE = '_metadata_lock_write';\nexport const METADATA_READ = '_metadata_read';\nexport const METADATA_SCHEMA_READ = '_metadata_schema_read';\nexport const METADATA_SCHEMA_WRITE = '_metadata_schema_write';\nexport const METADATA_WRITE = '_metadata_write';\nexport const OTIF_ANALYZE = '_otif_analyze';\nexport const OTIF_READ = '_otif_read';\nexport const OTIF_WRITE = '_otif_write';\nexport const PLACEHOLDER_NOTIFICATION_READ = '_placeholder_notification_read';\nexport const PLACEHOLDER_NOTIFICATION_WRITE = '_placeholder_notification_write';\nexport const PROJECTION_READ = '_projection_read';\nexport const PROJECTION_WRITE = '_projection_write';\nexport const QUOTA_NOTIFICATION_READ = '_quota_notification_read';\nexport const QUOTA_NOTIFICATION_WRITE = '_quota_notification_write';\nexport const QUOTA_READ = '_quota_read';\nexport const QUOTA_WRITE = '_quota_write';\nexport const RELATION_READ = '_relation_read';\nexport const RELATION_WRITE = '_relation_write';\nexport const RESOURCE_READ = '_resource_read';\nexport const RESOURCE_WRITE = '_resource_write';\nexport const RUN_AS = '_run_as';\nexport const SEARCH = '_search';\nexport const SEQUENCE_READ = '_sequence_read';\nexport const SEQUENCE_WRITE = '_sequence_write';\nexport const SHAPE_TAG_READ = '_shape_tag_read';\nexport const SHAPE_TAG_WRITE = '_shape_tag_write';\nexport const SITE_MANAGER = '_site_manager';\nexport const SITE_RULE_READ = '_site_rule_read';\nexport const SITE_RULE_WRITE = '_site_rule_write';\nexport const STORAGE_GROUP_READ = '_storage_group_read';\nexport const STORAGE_GROUP_WRITE = '_storage_group_write';\nexport const STORAGE_NOTIFICATION_READ = '_storage_notification_read';\nexport const STORAGE_NOTIFICATION_WRITE = '_storage_notification_write';\nexport const STORAGE_READ = '_storage_read';\nexport const STORAGE_RULE_READ = '_storage_rule_read';\nexport const STORAGE_RULE_WRITE = '_storage_rule_write';\nexport const STORAGE_WRITE = '_storage_write';\nexport const SUPER_ACCESS_USER = '_super_access_user';\nexport const TASKDEFINITION_READ = '_taskdefinition_read';\nexport const TASKDEFINITION_WRITE = '_taskdefinition_write';\nexport const THUMBNAIL_READ = '_thumbnail_read';\nexport const THUMBNAIL_WRITE = '_thumbnail_write';\nexport const TRANSCODER = '_transcoder';\nexport const TRANSFER_READ = '_transfer_read';\nexport const TRANSFER_WRITE = '_transfer_write';\nexport const USER = '_user';\nexport const VXA = '_vxa';\nexport const VXA_READ = '_vxa_read';\n","import parseKeyValuePairType from './parseKeyValuePairType';\n\nconst parseSimpleMetadataType = ({ field = [] } = {}) => {\n return parseKeyValuePairType(field);\n};\n\nexport default parseSimpleMetadataType;\n","const parseHighlightTimespan = ({ field = [], start, end } = {}, opts = {}) => {\n const { arrayOnSingle = true, joinValue = undefined, timespanAsList = undefined } = opts;\n const initialValue = timespanAsList ? { start, end } : {};\n const fieldList = field.reduce((a, { name, value: valueList = [] }) => {\n if (valueList.length === 0) return a;\n let fieldValue;\n if (arrayOnSingle === false && valueList.length === 1) [fieldValue] = valueList;\n else if (joinValue) fieldValue = valueList.join(joinValue);\n else fieldValue = valueList;\n return { ...a, [name]: fieldValue };\n }, initialValue);\n return fieldList;\n};\n\n/**\n * Parses Highlight Timespans into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} highlightTimespanList - A list of timespans.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {Object} options.arrayOnSingle - Return an array if there is a single value.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.flat - Flatten to field-name/field-value (Note: field-values may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan to object with start/end as key.\n * @param {Object} options.timespanAsList - Return timespans as list.\n * @param {Object} options.joinTimespan - String character to join the start/end timecodes.\n */\nconst parseHighlightTimespanList = (highlightTimespanList = [], opts = {}) => {\n const { flat, timespanAsList, joinTimespan = '_', flatTimespan } = opts;\n if (timespanAsList === true)\n return highlightTimespanList.map((timespan) => parseHighlightTimespan(timespan, opts));\n if (flat === true || flatTimespan === true)\n return highlightTimespanList.reduce(\n (a, timespan) => ({ ...a, ...parseHighlightTimespan(timespan, opts) }),\n {},\n );\n return highlightTimespanList.reduce(\n (a, timespan) => ({\n ...a,\n [[timespan.start, timespan.end].join(joinTimespan)]: parseHighlightTimespan(timespan, opts),\n }),\n {},\n );\n};\n\nexport { parseHighlightTimespan, parseHighlightTimespanList };\n"],"names":["sortTimespanList","firstStart","start","secondStart","split","first","second","Number","findTimespan","metadataType","end","timespan","timespanList","find","parseValueList","valueList","options","arrayOnSingle","arrayOnSingleValue","joinValue","includeAttributes","includeValueAttributes","valueArray","forEach","thisValue","value","push","join","length","parseField","field","includeFieldAttributes","attributes","parsedValueList","parseFieldList","fieldList","output","fieldAsList","map","thisField","key","name","parsedField","currentValue","parsedValue","concat","parseGroup","group","includeGroupAttributes","flat","flatGroup","groupAsList","groupList","parsedFieldList","parsedGroupList","parseGroupList","Object","assign","thisGroup","parsedGroup","currentField","currentGroup","parseTimespan","includeTimespanAttributes","flatTimespan","parseTimespanList","joinTimespan","timespanAsList","thisTimespan","parsedTimespan","parseMetadataType","includeMetadataAttributes","sortTimespan","sort","global","b","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","descriptor","arguments","undefined","result","val","e","base","ceil","full","fullforms","locale","localeOptions","neg","num","round","unix","separator","spacer","standard","symbols","isNaN","TypeError","Array","exponent","Math","floor","log","pow","toFixed","charAt","replace","test","toLocaleString","toString","partial","opt","module","PAL","NTSC","NTSC30","CONSTANT_TIMEBASES","denominator","numerator","FRAME_SEPARATORS","dropFrame","splitSmpte","smpteText","hasDropFrameSeparator","match","hhmmssff","frameOptions","frameSeparator","hhmmss","splitFrames","some","n","Error","getDropFrames","roundedFrameRate","getRoundedFrameRate","timeBase","countSamples","hh","mm","ss","ff","includes","dropFrames","shouldDropMinute","shouldDropSecond","hourFrames","minuteFrames","secondFrames","frameFrames","countDroppedFrames","frames","oneMinuteUndroppedFrames","oneMinuteDroppedFrames","tenMinuteFrames","tenMinuteChunks","minuteRemainder","max","oneMinuteChunks","frameRemainder","frameChunks","TimeBase","constant","entries","thisTimeBase","thisTimeBaseText","thisTimeBaseType","useConstant","timeBaseText","toConstant","String","rate","isInteger","isDropFrameTimeBase","TimeCode","samples","Infinity","conformedTimeCode","conformTimeBase","conformTo","toRate","timeCode","timeCodeText","toText","totalSamples","hours","minutes","seconds","partialSeconds","format","toTime","toLowerCase","padStart","thisSeparator","formatTimeBaseType","formatTimeBaseText","keys","formatTimeBase","formatTimeCodeType","formatTimeCodeText","samplesString","formatSeconds","formatSecondsPrecise","decimalPlaces","formatSmpte","parseKeyValuePairType","keyValuePairType","keyValuePairTypeReducer","a","reduce","sampleRateSymbols","kB","B","mB","bitRateSymbols","MB","gcd","parseAspectRatio","width","height","widthRatio","heightRatio","parseBaseMediaInfoType","baseMediaInfoType","property","props","parsedKeyValuePairType","parseFileType","fileType","uri","uriList","fileSizeBytes","size","hash","path","fileSize","parseFileSize","fileName","pop","parseContainerComponent","containerComponent","mediaInfo","metadata","fileList","file","durationTimeCode","duration","startTimestamp","startTimecode","timeCodeTimeBase","containerMetadata","containerMediaInfo","containerFormat","Format","videoFormat","Video_Format_List","audioFormat","Audio_Format_List","textFormat","Text_Format_List","formatList","parsedContainerComponent","componentOriginalFilename","originalFilename","toDuration","parsedFileType","parseVideoComponent","videoComponent","videoCodec","codec","bitrate","fieldOrder","resolution","videoMediaInfo","videoMetadata","colorSpace","colorPrimaries","chromaSubsampling","Colorimetry","averageFrameRate","realBaseFrameRate","numberOfPackets","frameRate","smpte","toSmpte","aspectRatio","dimension","videoBitrate","parseAudioComponent","audioComponent","audioChannels","channelCount","audioCodec","audioMediaInfo","audioMetadata","audioBitDepth","Resolution","audioBitRateMode","Bit_rate_mode","audioSamplerateSamples","audioSamplerate","audioBitrate","parseBinaryComponent","binaryComponent","binaryMetadata","binaryMediaInfo","parsedBinaryComponent","parseShapeType","shapeType","parsedShape","videoComponentList","audioComponentList","binaryComponentList","mimeType","mimeTypeList","tag","tagList","parsedVideoComponent","parsedAudioComponent","parseMediaConvertPreset","transcodePresetType","description","mediaconvert","outputSetting","mc","JSON","parse","Settings","ContainerSettings","VideoDescription","AudioDescriptions","Container","CodecSettings","Codec","otherSettings","Height","Width","values","codecSpecs","InterlaceMode","Bitrate","FramerateDenominator","FramerateNumerator","SampleRate","RateControlMode","parseTranscodePreset","audio","video","framerate","scaling","channel","parseFacetType","facetType","facetFieldReducer","fieldValue","count","parseNowDate","startsWith","Date","sign","number","unit","nowDiff","setHours","getHours","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","createFacetType","exclude","isArray","parseValue","uuid","shouldBeField","groupName","groupsOrFields","parseGroupsOrFields","groupValue","parseTimeSpan","timeSpan","createMetadataType","newMetadataType","thisTimeSpan","genericTimespan","timeToCueTime","hourStr","minStr","secondsStr","partialStr","metadataTypeToWebVtt","subtitleGroup","subtitleField","parseOptions","sortedTimespans","parsedTimespans","timespanType","vttCues","startText","endText","text","startTime","endTime","IMAGE_MIME_TYPES","VIDEO_MIME_TYPES","AUDIO_MIME_TYPES","DEFAULT_ALLOWED_MIME_TYPES","DEFAULT_ALLOWED_METHODS","MP4_MIMETYPE","QUICKTIME_MIMETYPE","M4V_MIMETYPE","MP4_CONTAINER","MOV_CONTAINER","H264_CODEC","PREVIEW_SHAPE_ORDER","reverse","defaultSortPriority","firstEl","shape","secondEl","indexOf","localeCompare","filterShapeSource","itemType","allowedMimeTypes","sortPriority","allowedMethods","sourceKey","mimeTypeKey","shapeKey","shapeList","parsedShapeList","acc","type","src","thisMethod","IMAGE","AUDIO","VIDEO","getShapeMediaType","findNearestThumbnail","tcSeconds","toSeconds","thumbnails","srcList","srcTcSeconds","url","tc","URL","pathname","nearestSrcIndex","nearestIndex","curr","currIndex","abs","ACCESSCONTROL_READ","ACCESSCONTROL_WRITE","ADMINISTRATOR","AUTO_PROJECTION_READ","AUTO_PROJECTION_WRITE","COLLECTION_NOTIFICATION_READ","COLLECTION_NOTIFICATION_WRITE","COLLECTION_READ","COLLECTION_WRITE","DELETION_LOCK_NOTIFICATION_READ","DELETION_LOCK_NOTIFICATION_WRITE","DELETION_LOCK_READ","DELETION_LOCK_WRITE","DOCUMENT_NOTIFICATION_READ","DOCUMENT_NOTIFICATION_WRITE","DOCUMENT_READ","DOCUMENT_WRITE","ERROR_READ","ERROR_WRITE","EXPORT","EXPORT_TEMPLATE_READ","EXPORT_TEMPLATE_WRITE","EXTERNAL_ID_READ","EXTERNAL_ID_WRITE","FILE_NOTIFICATION_READ","FILE_NOTIFICATION_WRITE","FILE_READ","FILE_WRITE","GROUP_READ","GROUP_WRITE","IMPORT_WRITE","ITEM_ID_READ","ITEM_ID_WRITE","ITEM_NOTIFICATION_READ","ITEM_NOTIFICATION_WRITE","ITEM_WRITE","ITEM_SEARCH","ITEM_SHAPE_READ","ITEM_SHAPE_WRITE","ITEM_TIMELINE_READ","ITEM_TIMELINE_WRITE","ITEM_URI","JOB_NOTIFICATION_READ","JOB_NOTIFICATION_WRITE","JOB_READ","JOB_WRITE","LIBRARY_READ","LIBRARY_WRITE","LOCK_READ","LOCK_WRITE","LOG_READ","METADATA_DATASET_READ","METADATA_DATASET_WRITE","METADATA_FIELD_GROUP_READ","METADATA_FIELD_GROUP_WRITE","METADATA_FIELD_READ","METADATA_FIELD_WRITE","METADATA_GLOBAL_READ","METADATA_GLOBAL_WRITE","METADATA_LOCK_READ","METADATA_LOCK_WRITE","METADATA_READ","METADATA_SCHEMA_READ","METADATA_SCHEMA_WRITE","METADATA_WRITE","OTIF_ANALYZE","OTIF_READ","OTIF_WRITE","PLACEHOLDER_NOTIFICATION_READ","PLACEHOLDER_NOTIFICATION_WRITE","PROJECTION_READ","PROJECTION_WRITE","QUOTA_NOTIFICATION_READ","QUOTA_NOTIFICATION_WRITE","QUOTA_READ","QUOTA_WRITE","RELATION_READ","RELATION_WRITE","RESOURCE_READ","RESOURCE_WRITE","RUN_AS","SEARCH","SEQUENCE_READ","SEQUENCE_WRITE","SHAPE_TAG_READ","SHAPE_TAG_WRITE","SITE_MANAGER","SITE_RULE_READ","SITE_RULE_WRITE","STORAGE_GROUP_READ","STORAGE_GROUP_WRITE","STORAGE_NOTIFICATION_READ","STORAGE_NOTIFICATION_WRITE","STORAGE_READ","STORAGE_RULE_READ","STORAGE_RULE_WRITE","STORAGE_WRITE","SUPER_ACCESS_USER","TASKDEFINITION_READ","TASKDEFINITION_WRITE","THUMBNAIL_READ","THUMBNAIL_WRITE","TRANSCODER","TRANSFER_READ","TRANSFER_WRITE","USER","VXA","VXA_READ","parseSimpleMetadataType","parseHighlightTimespan","opts","initialValue","parseHighlightTimespanList","highlightTimespanList"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/parseMetadataType.js","../../../node_modules/filesize/lib/filesize.js","../src/const/time.js","../src/time.js","../src/parseKeyValuePairType.js","../src/parseShapeType.js","../src/parseTranscodePreset.js","../src/parseFacetType.js","../src/parseNowDate.js","../src/createFacetType.js","../src/createMetadataType.js","../src/metadataTypeToWebVtt.js","../src/filterShapeSource.js","../src/getShapeMediaType.js","../src/findNearestThumbnail.js","../src/const/roles.js","../src/parseSimpleMetadataType.js","../src/parseHighlightTimespan.js"],"sourcesContent":["const sortTimespanList = ({ start: firstStart }, { start: secondStart }) => {\n const [first] = firstStart.split('@');\n const [second] = secondStart.split('@');\n if (Number(first) < Number(second)) {\n return -1;\n }\n if (Number(first) > Number(second)) {\n return 1;\n }\n return 0;\n};\n\nconst findTimespan = (metadataType = {}, start, end) => {\n const { timespan: timespanList = [] } = metadataType;\n return timespanList.find((timespan) => timespan.start === start && timespan.end === end);\n};\n\nconst parseValueList = (valueList = [], options = {}) => {\n const {\n arrayOnSingle = true,\n arrayOnSingleValue = true,\n joinValue,\n includeAttributes,\n includeValueAttributes,\n } = options;\n if (includeAttributes || includeValueAttributes) return valueList;\n const valueArray = [];\n valueList.forEach((thisValue) => {\n if (thisValue.value) valueArray.push(thisValue.value);\n });\n if (joinValue) return valueArray.join(joinValue);\n if ((arrayOnSingle === false || arrayOnSingleValue === false) && valueArray.length === 1) {\n return valueArray[0];\n }\n return valueArray;\n};\n\nconst parseField = (field = {}, options = {}) => {\n const { includeAttributes, includeFieldAttributes } = options;\n const { value = [], ...attributes } = field;\n const parsedValueList = parseValueList(value, options);\n if (includeAttributes || includeFieldAttributes) return { ...attributes, value: parsedValueList };\n return parsedValueList;\n};\n\nconst parseFieldList = (fieldList = [], options = {}) => {\n const { joinValue, includeAttributes, includeFieldAttributes, includeValueAttributes } = options;\n const output = {};\n const { fieldAsList } = options;\n if (fieldAsList) {\n return fieldList.map((thisField) => parseField(thisField, options));\n }\n\n fieldList.forEach((thisField) => {\n const { name: key } = thisField;\n const parsedField = parseField(thisField, options);\n if (output[key]) {\n if (includeAttributes || includeFieldAttributes) {\n const { value: currentValue } = output[key];\n const { value: parsedValue } = parsedField;\n if (joinValue && !includeAttributes && !includeValueAttributes) {\n output[key].value = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key].value = parsedValue.concat(currentValue);\n }\n } else {\n const currentValue = output[key];\n const parsedValue = parsedField;\n if (joinValue) {\n output[key] = [currentValue, parsedValue].join(joinValue);\n } else {\n output[key] = parsedValue.concat(currentValue);\n }\n }\n } else {\n output[key] = parsedField;\n }\n });\n return output;\n};\n\nconst parseGroup = (group = {}, options = {}) => {\n const {\n includeAttributes,\n includeGroupAttributes,\n flat,\n flatGroup,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = group;\n const parsedFieldList = parseFieldList(fieldList, options);\n const parsedGroupList = parseGroupList(groupList, options); // eslint-disable-line no-use-before-define,max-len\n const output = {};\n if (includeAttributes || includeGroupAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatGroup) {\n if (groupAsList) {\n Object.assign(output, { group: parsedGroupList });\n } else {\n Object.assign(output, parsedGroupList);\n }\n if (fieldAsList) {\n Object.assign(output, { field: parsedFieldList });\n } else {\n Object.assign(output, parsedFieldList);\n }\n } else {\n Object.assign(output, { field: parsedFieldList });\n Object.assign(output, { group: parsedGroupList });\n }\n return output;\n};\n\nconst parseGroupList = (groupList = [], options = {}) => {\n const { groupAsList } = options;\n if (groupAsList) {\n return groupList.map((thisGroup) => parseGroup(thisGroup, options));\n }\n const output = {};\n groupList.forEach((thisGroup) => {\n const { name: key } = thisGroup;\n const parsedGroup = parseGroup(thisGroup, options);\n if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroupList } = parsedGroup;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroupList };\n } else {\n output[key] = parsedGroup;\n }\n });\n return output;\n};\n\nconst parseTimespan = (timespan = {}, options = {}) => {\n const {\n includeAttributes,\n includeTimespanAttributes,\n flat,\n flatTimespan,\n groupAsList,\n fieldAsList,\n } = options;\n const { field: fieldList = [], group: groupList = [], ...attributes } = timespan;\n const field = parseFieldList(fieldList, options);\n const group = parseGroupList(groupList, options);\n const output = {};\n if (includeAttributes || includeTimespanAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatTimespan) {\n if (groupAsList) {\n Object.assign(output, { group });\n } else {\n Object.assign(output, group);\n }\n if (fieldAsList) {\n Object.assign(output, { field });\n } else {\n Object.assign(output, field);\n }\n } else {\n Object.assign(output, { field });\n Object.assign(output, { group });\n }\n return output;\n};\n\nconst parseTimespanList = (timespanList = [], options = {}) => {\n const { joinTimespan, flat } = options;\n const { timespanAsList } = options;\n if (timespanAsList) {\n return timespanList.map((thisTimespan) => parseTimespan(thisTimespan, options));\n }\n let output = {};\n timespanList.forEach((thisTimespan) => {\n const { start, end } = thisTimespan;\n const key = [start, end].join(joinTimespan || '_');\n const parsedTimespan = parseTimespan(thisTimespan, options);\n if (flat) {\n output = { ...output, ...parsedTimespan };\n } else if (output[key]) {\n const { field: currentField, group: currentGroup } = output[key];\n const { field: parsedField, group: parsedGroup } = parsedTimespan;\n output[key].field = { ...currentField, ...parsedField };\n output[key].group = { ...currentGroup, ...parsedGroup };\n } else {\n output[key] = parsedTimespan;\n }\n });\n return output;\n};\n\n/**\n * Parses MetadataType into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} metadataType - The response from the API.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.includeAttributes - include attributes on all objects.\n * @param {Object} options.includeMetadataAttributes - include attributes on root.\n * @param {Object} options.includeTimespanAttributes - include attributes on timespans.\n * @param {Object} options.includeGroupAttributes - include attributes on groups.\n * @param {Object} options.includeFieldAttributes - include attributes on fields.\n * @param {Object} options.includeValueAttributes - include attributes on values.\n * @param {Object} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan.\n * @param {Object} options.flatGroup - Flatten group.\n * @param {Object} options.sortTimespan - Sort timespan by start time.\n * @param {Object} options.timespanAsList -Return timespans as list.\n * @param {Object} options.groupAsList -Return groups as list.\n * @param {Object} options.fieldAsList -Return fields as list.\n */\nconst parseMetadataType = (metadataType = {}, options = {}) => {\n const { includeAttributes, includeMetadataAttributes, sortTimespan } = options;\n const { timespan: timespanList = [], ...attributes } = metadataType;\n if (sortTimespan) timespanList.sort(sortTimespanList);\n const timespan = parseTimespanList(timespanList, options);\n if (includeAttributes || includeMetadataAttributes) {\n Object.assign(timespan, attributes);\n }\n return timespan;\n};\n\nexport { parseTimespan, parseTimespanList, parseMetadataType, sortTimespanList, findTimespan };\nexport default parseMetadataType;\n","\"use strict\";\r\n\r\n/**\r\n * filesize\r\n *\r\n * @copyright 2020 Jason Mulligan <jason.mulligan@avoidwork.com>\r\n * @license BSD-3-Clause\r\n * @version 6.1.0\r\n */\r\n(function (global) {\r\n var b = /^(b|B)$/,\r\n symbol = {\r\n iec: {\r\n bits: [\"b\", \"Kib\", \"Mib\", \"Gib\", \"Tib\", \"Pib\", \"Eib\", \"Zib\", \"Yib\"],\r\n bytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\r\n },\r\n jedec: {\r\n bits: [\"b\", \"Kb\", \"Mb\", \"Gb\", \"Tb\", \"Pb\", \"Eb\", \"Zb\", \"Yb\"],\r\n bytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\r\n }\r\n },\r\n fullform = {\r\n iec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\r\n jedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\r\n };\r\n /**\r\n * filesize\r\n *\r\n * @method filesize\r\n * @param {Mixed} arg String, Int or Float to transform\r\n * @param {Object} descriptor [Optional] Flags\r\n * @return {String} Readable file size String\r\n */\r\n\r\n function filesize(arg) {\r\n var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\r\n var result = [],\r\n val = 0,\r\n e = void 0,\r\n base = void 0,\r\n bits = void 0,\r\n ceil = void 0,\r\n full = void 0,\r\n fullforms = void 0,\r\n locale = void 0,\r\n localeOptions = void 0,\r\n neg = void 0,\r\n num = void 0,\r\n output = void 0,\r\n round = void 0,\r\n unix = void 0,\r\n separator = void 0,\r\n spacer = void 0,\r\n standard = void 0,\r\n symbols = void 0;\r\n\r\n if (isNaN(arg)) {\r\n throw new TypeError(\"Invalid number\");\r\n }\r\n\r\n bits = descriptor.bits === true;\r\n unix = descriptor.unix === true;\r\n base = descriptor.base || 2;\r\n round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;\r\n locale = descriptor.locale !== void 0 ? descriptor.locale : \"\";\r\n localeOptions = descriptor.localeOptions || {};\r\n separator = descriptor.separator !== void 0 ? descriptor.separator : \"\";\r\n spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? \"\" : \" \";\r\n symbols = descriptor.symbols || {};\r\n standard = base === 2 ? descriptor.standard || \"jedec\" : \"jedec\";\r\n output = descriptor.output || \"string\";\r\n full = descriptor.fullform === true;\r\n fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];\r\n e = descriptor.exponent !== void 0 ? descriptor.exponent : -1;\r\n num = Number(arg);\r\n neg = num < 0;\r\n ceil = base > 2 ? 1000 : 1024; // Flipping a negative number to determine the size\r\n\r\n if (neg) {\r\n num = -num;\r\n } // Determining the exponent\r\n\r\n\r\n if (e === -1 || isNaN(e)) {\r\n e = Math.floor(Math.log(num) / Math.log(ceil));\r\n\r\n if (e < 0) {\r\n e = 0;\r\n }\r\n } // Exceeding supported length, time to reduce & multiply\r\n\r\n\r\n if (e > 8) {\r\n e = 8;\r\n }\r\n\r\n if (output === \"exponent\") {\r\n return e;\r\n } // Zero is now a special case because bytes divide by 1\r\n\r\n\r\n if (num === 0) {\r\n result[0] = 0;\r\n result[1] = unix ? \"\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n } else {\r\n val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\r\n\r\n if (bits) {\r\n val = val * 8;\r\n\r\n if (val >= ceil && e < 8) {\r\n val = val / ceil;\r\n e++;\r\n }\r\n }\r\n\r\n result[0] = Number(val.toFixed(e > 0 ? round : 0));\r\n\r\n if (result[0] === ceil && e < 8 && descriptor.exponent === void 0) {\r\n result[0] = 1;\r\n e++;\r\n }\r\n\r\n result[1] = base === 10 && e === 1 ? bits ? \"kb\" : \"kB\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\r\n\r\n if (unix) {\r\n result[1] = standard === \"jedec\" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, \"\") : result[1];\r\n\r\n if (b.test(result[1])) {\r\n result[0] = Math.floor(result[0]);\r\n result[1] = \"\";\r\n }\r\n }\r\n } // Decorating a 'diff'\r\n\r\n\r\n if (neg) {\r\n result[0] = -result[0];\r\n } // Applying custom symbol\r\n\r\n\r\n result[1] = symbols[result[1]] || result[1];\r\n\r\n if (locale === true) {\r\n result[0] = result[0].toLocaleString();\r\n } else if (locale.length > 0) {\r\n result[0] = result[0].toLocaleString(locale, localeOptions);\r\n } else if (separator.length > 0) {\r\n result[0] = result[0].toString().replace(\".\", separator);\r\n } // Returning Array, Object, or String (default)\r\n\r\n\r\n if (output === \"array\") {\r\n return result;\r\n }\r\n\r\n if (full) {\r\n result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? \"bit\" : \"byte\") + (result[0] === 1 ? \"\" : \"s\");\r\n }\r\n\r\n if (output === \"object\") {\r\n return {\r\n value: result[0],\r\n symbol: result[1],\r\n exponent: e\r\n };\r\n }\r\n\r\n return result.join(spacer);\r\n } // Partial application for functional programming\r\n\r\n\r\n filesize.partial = function (opt) {\r\n return function (arg) {\r\n return filesize(arg, opt);\r\n };\r\n }; // CommonJS, AMD, script tag\r\n\r\n\r\n if (typeof exports !== \"undefined\") {\r\n module.exports = filesize;\r\n } else if (typeof define === \"function\" && define.amd !== void 0) {\r\n define(function () {\r\n return filesize;\r\n });\r\n } else {\r\n global.filesize = filesize;\r\n }\r\n})(typeof window !== \"undefined\" ? window : global);\r\n","export const PAL = 'PAL';\nexport const NTSC = 'NTSC';\nexport const NTSC30 = 'NTSC30';\n\nexport const CONSTANT_TIMEBASES = {\n [PAL]: { denominator: 25, numerator: 1 },\n [NTSC]: { denominator: 30000, numerator: 1001 },\n [NTSC30]: { denominator: 30, numerator: 1 },\n};\n\nexport const FRAME_SEPARATORS = {\n ':': { dropFrame: false, field: 2 },\n ';': { dropFrame: true, field: 2 },\n '.': { dropFrame: false, field: 1 },\n ',': { dropFrame: true, field: 1 },\n};\n","/* eslint max-classes-per-file: \"off\" */\nimport { CONSTANT_TIMEBASES, FRAME_SEPARATORS } from './const/time';\n\nconst splitSmpte = (smpteText) => {\n const hasDropFrameSeparator = smpteText.match(/[^0-9:\\-_]/);\n\n let hhmmssff;\n let frameOptions = {};\n if (hasDropFrameSeparator) {\n const [frameSeparator] = hasDropFrameSeparator;\n const [hhmmss, splitFrames] = smpteText.split(frameSeparator);\n hhmmssff = [...hhmmss.split(':'), splitFrames];\n frameOptions = FRAME_SEPARATORS[frameSeparator] || {};\n } else {\n hhmmssff = smpteText.split(':');\n }\n\n hhmmssff = hhmmssff.map(Number);\n\n if (hhmmssff.length > 4 || hhmmssff.some((n) => Number.isNaN(n))) {\n throw new Error('Invalid SMPTE timecode');\n }\n\n return [hhmmssff, frameOptions];\n};\n\nconst getDropFrames = (roundedFrameRate) => (roundedFrameRate === 60 ? 4 : 2);\n\nconst getRoundedFrameRate = (timeBase) => Math.round(timeBase.denominator / timeBase.numerator);\n\nconst countSamples = (hh, mm, ss, ff, { dropFrame, roundedFrameRate }) => {\n if (!dropFrame) {\n return hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;\n }\n\n if (![30, 60].includes(roundedFrameRate)) {\n throw new Error('Cannot use dropframe with non NTSC timebase');\n }\n\n const dropFrames = getDropFrames(roundedFrameRate);\n\n const shouldDropMinute = mm % 10 !== 0;\n const shouldDropSecond = shouldDropMinute && ss === 0;\n\n const hourFrames = hh * (3600 * roundedFrameRate - 54 * dropFrames);\n const minuteFrames = mm * 60 * roundedFrameRate - (mm - Math.ceil(mm / 10)) * dropFrames;\n const secondFrames = ss * roundedFrameRate - (shouldDropMinute && ss > 1 ? dropFrames : 0);\n\n if (shouldDropSecond && ff < dropFrames) {\n throw new Error('Invalid ff');\n }\n\n const frameFrames = shouldDropSecond ? ff - dropFrames : ff;\n\n return hourFrames + minuteFrames + secondFrames + frameFrames;\n};\n\nfunction countDroppedFrames(frames, roundedFrameRate) {\n const dropFrames = getDropFrames(roundedFrameRate);\n const oneMinuteUndroppedFrames = 60 * roundedFrameRate;\n const oneMinuteDroppedFrames = 60 * roundedFrameRate - dropFrames;\n const tenMinuteFrames = 10 * (oneMinuteUndroppedFrames - dropFrames) + dropFrames;\n\n const tenMinuteChunks = Math.floor(frames / tenMinuteFrames);\n const minuteRemainder = Math.max(0, (frames % tenMinuteFrames) - oneMinuteUndroppedFrames);\n const oneMinuteChunks = Math.floor(minuteRemainder / oneMinuteDroppedFrames);\n const frameRemainder = minuteRemainder % oneMinuteDroppedFrames;\n const frameChunks = frameRemainder > 0 ? dropFrames : 0;\n\n return tenMinuteChunks * 9 * dropFrames + oneMinuteChunks * dropFrames + frameChunks;\n}\n\nexport class TimeBase {\n constructor({ numerator = 1, denominator = 1 } = {}) {\n this.numerator = Number(numerator);\n this.denominator = Number(denominator);\n }\n\n toJSON() {\n return {\n denominator: this.denominator,\n numerator: this.numerator,\n };\n }\n\n toConstant() {\n let constant;\n Object.entries(CONSTANT_TIMEBASES).find((thisTimeBase) => {\n const [thisTimeBaseText, thisTimeBaseType] = thisTimeBase;\n const { numerator, denominator } = thisTimeBaseType;\n if (numerator === this.numerator && denominator === this.denominator) {\n constant = thisTimeBaseText;\n return true;\n }\n return false;\n });\n return constant;\n }\n\n toText(useConstant = false) {\n if (useConstant) {\n const timeBaseText = this.toConstant();\n if (timeBaseText) return timeBaseText;\n }\n if (this.numerator > 1) {\n const timeBaseText = [this.denominator, this.numerator].join(':');\n return timeBaseText;\n }\n const timeBaseText = String(this.denominator);\n return timeBaseText;\n }\n\n toRate(useConstant = false, round = true) {\n if (useConstant) {\n const rate = this.toConstant();\n if (rate) return rate;\n }\n const rate = this.denominator / this.numerator;\n if (Number.isInteger(rate)) {\n return rate;\n }\n return round ? rate.toFixed(2) : rate;\n }\n}\n\nconst isDropFrameTimeBase = ({ numerator, denominator }) => {\n return numerator === 1001 && (denominator === 60000 || denominator === 30000);\n};\n\nexport class TimeCode {\n constructor({ samples = 0, timeBase } = {}, { dropFrame, field = 2 } = {}) {\n if (typeof samples === 'number') {\n this.samples = samples;\n } else if (typeof samples === 'string') {\n if (samples === '-INF') {\n this.samples = -Infinity;\n } else if (samples === '+INF') {\n this.samples = Infinity;\n } else {\n this.samples = Number(samples);\n }\n } else {\n throw new Error(`samples is not number/string/-Inf/+Inf is: ${samples}`);\n }\n this.timeBase = new TimeBase(timeBase);\n this.dropFrame = dropFrame === undefined ? isDropFrameTimeBase(this.timeBase) : dropFrame;\n this.field = field;\n }\n\n add(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples + samples, timeBase: this.timeBase });\n }\n\n subtract(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples - samples, timeBase: this.timeBase });\n }\n\n conformTimeBase(conformTo) {\n let timeBase = conformTo;\n if (conformTo instanceof TimeCode === false) {\n timeBase = new TimeBase(conformTo);\n }\n const samples = Math.round(\n this.samples / (this.timeBase.toRate(false, false) / timeBase.toRate(false, false)),\n );\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode);\n }\n\n toJSON() {\n return {\n samples: this.samples,\n timeBase: this.timeBase,\n };\n }\n\n toText() {\n let timeCodeText = String(this.samples);\n const timeBaseText = this.timeBase.toText();\n if (timeBaseText !== '1') {\n timeCodeText = [this.samples, timeBaseText].join('@');\n }\n return timeCodeText;\n }\n\n toSeconds() {\n const { numerator, denominator } = this.timeBase;\n return this.samples * (numerator / denominator);\n }\n\n toTime() {\n const roundedFrameRate = getRoundedFrameRate(this.timeBase);\n const totalSamples =\n this.samples + (this.dropFrame ? countDroppedFrames(this.samples + 1, roundedFrameRate) : 0);\n\n const hours = Math.floor(totalSamples / (3600 * roundedFrameRate));\n const minutes = Math.floor(totalSamples / (60 * roundedFrameRate)) % 60;\n const seconds = Math.floor(totalSamples / roundedFrameRate) % 60;\n const frames = totalSamples % roundedFrameRate;\n const partialSeconds = frames / roundedFrameRate;\n return {\n hours,\n minutes,\n seconds,\n frames,\n partialSeconds,\n };\n }\n\n toDuration({ format } = {}) {\n const { hours, minutes, seconds } = this.toTime();\n if (typeof format === 'string') {\n if (format.toLowerCase() === 'hhmmss') {\n return [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n }\n if (hours) {\n return [\n hours.toFixed(),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n if (minutes >= 10) {\n return [minutes.toFixed().padStart(2, '0'), seconds.toFixed().padStart(2, '0')].join(':');\n }\n return [minutes.toFixed(), seconds.toFixed().padStart(2, '0')].join(':');\n }\n\n toSmpte() {\n if (this.samples === -Infinity) return '00:00:00:00';\n const { hours, minutes, seconds, frames } = this.toTime();\n const hhmmss = [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n const [frameSeparator = ':'] = Object.entries(FRAME_SEPARATORS).find((thisSeparator) => {\n const [, { dropFrame, field }] = thisSeparator;\n return dropFrame === this.dropFrame && field === this.field;\n });\n return [hhmmss, frames.toFixed().padStart(2, '0')].join(frameSeparator);\n }\n}\n\nconst formatTimeBaseType = (timeBase) => new TimeBase(timeBase);\n\nconst formatTimeBaseText = (timeBaseText) => {\n if (timeBaseText === undefined) {\n return formatTimeBaseType();\n }\n if (typeof timeBaseText === 'number') {\n return formatTimeBaseType({ denominator: timeBaseText });\n }\n if (timeBaseText.includes(':')) {\n const [denominator, numerator] = timeBaseText.split(':');\n return formatTimeBaseType({ denominator, numerator });\n }\n if (Object.keys(CONSTANT_TIMEBASES).includes(timeBaseText)) {\n return formatTimeBaseType(CONSTANT_TIMEBASES[timeBaseText]);\n }\n const denominator = Number(timeBaseText);\n if (Number.isNaN(denominator)) {\n throw new Error(\n `timeBaseText must be a number or ${Object.keys(CONSTANT_TIMEBASES).join(\n ',',\n )} - is ${timeBaseText}`,\n );\n }\n return formatTimeBaseType({ denominator });\n};\n\nconst formatTimeBase = (timeBase) => {\n if (typeof timeBase === 'object') {\n return formatTimeBaseType(timeBase);\n }\n return formatTimeBaseText(timeBase);\n};\n\nconst formatTimeCodeType = (timeCode, options) => new TimeCode(timeCode, options);\n\nconst formatTimeCodeText = (timeCodeText, options) => {\n if (timeCodeText === undefined) {\n const timeCode = { samples: 0 };\n return formatTimeCodeType(timeCode, options);\n }\n if (typeof timeCodeText === 'number') {\n const timeCode = { samples: timeCodeText };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText.includes('@')) {\n const [samplesString, timeBaseText] = timeCodeText.split('@');\n const samples = Number(samplesString);\n const timeBase = formatTimeBaseText(timeBaseText);\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '-INF') {\n const samples = -Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '+INF') {\n const samples = Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n const samples = Number(timeCodeText);\n if (Number.isNaN(samples)) {\n throw new Error(`timeBaseText must be a number or sample@timeBase - is ${timeCodeText}`);\n }\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n};\n\nconst formatSeconds = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { denominator = 1, numerator = 1 } = timeBase;\n const samples = seconds * (denominator / numerator);\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSecondsPrecise = (seconds, timeBase = {}, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { numerator = 1 } = timeBase;\n let { denominator = 1 } = timeBase;\n if (!Number.isInteger(seconds)) {\n const decimalPlaces = String(seconds).split('.')[1].length;\n denominator *= 10 ** decimalPlaces;\n }\n const samples = (seconds * (denominator / numerator)).toFixed();\n const timeCode = { samples, timeBase: { denominator, numerator } };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSmpte = (smpteText, timeBaseText, options = {}) => {\n if (smpteText === undefined) {\n const timeBase = formatTimeBase(timeBaseText);\n const timeCode = { samples: 0, timeBase };\n return formatTimeCodeType(timeCode);\n }\n if (typeof smpteText !== 'string') {\n throw new Error(`smpteText must be a string, is ${smpteText}`);\n }\n\n const [[hh, mm, ss, ff = 0], frameOptions] = splitSmpte(smpteText);\n const { dropFrame = false } = frameOptions;\n\n const timeBase = formatTimeBase(timeBaseText);\n const roundedFrameRate = getRoundedFrameRate(timeBase);\n\n if (mm >= 60 || mm < 0 || ss >= 60 || ss < 0 || ff >= roundedFrameRate || ff < 0) {\n throw new Error('Invalid mm, ss or ff');\n }\n\n const samples = countSamples(hh, mm, ss, ff, { dropFrame, roundedFrameRate });\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, { ...frameOptions, ...options });\n};\n\nexport {\n formatSeconds,\n formatSecondsPrecise,\n formatTimeBaseType,\n formatTimeBaseText,\n formatTimeCodeType,\n formatTimeCodeText,\n formatTimeBase,\n formatSmpte,\n};\n","const parseKeyValuePairType = (keyValuePairType = []) => {\n const keyValuePairTypeReducer = (a, { key, value }) => ({ ...a, [key]: value });\n return keyValuePairType.reduce(keyValuePairTypeReducer, {});\n};\n\nexport default parseKeyValuePairType;\n","import parseFileSize from 'filesize';\nimport { formatTimeBaseText, formatTimeCodeType } from './time';\nimport parseKeyValuePairType from './parseKeyValuePairType';\n\nconst sampleRateSymbols = { kB: 'kHz', B: 'Hz', mB: 'mHz' };\nconst bitRateSymbols = { kB: 'kbps', B: 'bps', MB: 'mbps' };\n\nconst gcd = (a, b) => (b ? gcd(b, a % b) : a);\n\nconst parseAspectRatio = ({ width, height }) => {\n const denominator = gcd(width, height);\n let widthRatio = width / denominator;\n let heightRatio = height / denominator;\n if (widthRatio > 21) {\n heightRatio = 1;\n widthRatio = (width / height).toFixed(2);\n }\n return [widthRatio, heightRatio].join(':');\n};\n\nconst parseBaseMediaInfoType = (baseMediaInfoType = {}) => {\n const { property: keyValuePairType, ...props } = baseMediaInfoType;\n const parsedKeyValuePairType = parseKeyValuePairType(keyValuePairType);\n return { ...parsedKeyValuePairType, ...props };\n};\n\nconst parseFileType = (fileType) => {\n const { uri: uriList = [], size: fileSizeBytes, hash, path } = fileType;\n const [uri] = uriList;\n const fileSize = fileSizeBytes !== undefined ? parseFileSize(fileSizeBytes) : '';\n const fileName = path ? path.split('/').pop() : undefined;\n return {\n uri,\n hash,\n fileSize,\n fileSizeBytes,\n path,\n fileName,\n };\n};\n\nconst parseContainerComponent = (containerComponent) => {\n const {\n mediaInfo = {},\n metadata = [],\n file: fileList,\n duration: durationTimeCode,\n startTimestamp,\n startTimecode,\n timeCodeTimeBase,\n } = containerComponent;\n const containerMetadata = parseKeyValuePairType(metadata);\n const containerMediaInfo = parseBaseMediaInfoType(mediaInfo);\n let { Format: containerFormat } = containerMediaInfo;\n const {\n Video_Format_List: videoFormat,\n Audio_Format_List: audioFormat,\n Text_Format_List: textFormat,\n } = containerMediaInfo;\n if (containerFormat === undefined) {\n const { format } = containerComponent;\n containerFormat = format;\n if (format && format.includes(',')) {\n const formatList = format.split(',');\n [containerFormat] = formatList;\n }\n }\n let parsedContainerComponent = {\n containerFormat,\n videoFormat,\n audioFormat,\n textFormat,\n containerMetadata,\n containerMediaInfo,\n };\n if (containerMetadata.componentOriginalFilename) {\n parsedContainerComponent.originalFilename = containerMetadata.componentOriginalFilename;\n }\n if (durationTimeCode !== undefined && durationTimeCode.samples !== 0) {\n parsedContainerComponent.durationTimeCode = formatTimeCodeType(durationTimeCode);\n parsedContainerComponent.duration = parsedContainerComponent.durationTimeCode.toDuration();\n }\n if (startTimestamp) {\n parsedContainerComponent.startTimestamp = formatTimeCodeType(startTimestamp);\n }\n if (startTimecode !== undefined && timeCodeTimeBase) {\n parsedContainerComponent.startTimecode = formatTimeCodeType({\n samples: startTimecode,\n timeBase: timeCodeTimeBase,\n });\n }\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedContainerComponent = {\n ...parsedContainerComponent,\n ...parsedFileType,\n };\n }\n return parsedContainerComponent;\n};\n\nconst parseVideoComponent = (videoComponent) => {\n const {\n codec: videoCodec,\n bitrate,\n fieldOrder,\n resolution = {},\n mediaInfo = {},\n metadata = [],\n } = videoComponent;\n const videoMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const videoMetadata = parseKeyValuePairType(metadata);\n const {\n Format: videoFormat,\n 'Frame rate': timeBaseText,\n 'Color space': colorSpace,\n 'Color primaries': colorPrimaries,\n Colorimetry: chromaSubsampling,\n } = videoMediaInfo;\n let timeBase;\n const { averageFrameRate, realBaseFrameRate } = videoComponent;\n if (realBaseFrameRate !== undefined) {\n timeBase = {\n numerator: realBaseFrameRate.denominator,\n denominator: realBaseFrameRate.numerator,\n };\n } else if (timeBaseText !== undefined) {\n timeBase = formatTimeBaseText(timeBaseText);\n } else if (averageFrameRate !== undefined) {\n timeBase = {\n numerator: averageFrameRate.denominator,\n denominator: averageFrameRate.numerator,\n };\n }\n let { 'Frame count': samples } = videoMediaInfo;\n if (samples === undefined) {\n const { numberOfPackets } = videoComponent;\n if (numberOfPackets !== undefined) samples = numberOfPackets;\n }\n let timeCode;\n let frameRate;\n let smpte;\n if (samples && timeBase) {\n timeCode = formatTimeCodeType({ samples, timeBase });\n frameRate = timeCode.timeBase.toRate(true);\n smpte = timeCode.toSmpte(true);\n }\n const { height, width } = resolution;\n const aspectRatio = parseAspectRatio(resolution);\n const dimension = `${width}x${height}`;\n const videoBitrate = bitrate ? parseFileSize(bitrate, { bits: true }) : undefined;\n return {\n videoFormat,\n dimension,\n frameRate,\n height,\n width,\n timeBase,\n timeCode,\n videoCodec,\n smpte,\n videoBitrate,\n fieldOrder,\n colorSpace,\n chromaSubsampling,\n aspectRatio,\n colorPrimaries,\n videoMetadata,\n videoMediaInfo,\n };\n};\n\nconst parseAudioComponent = (audioComponent) => {\n const {\n timeBase = {},\n channelCount: audioChannels,\n codec: audioCodec,\n mediaInfo = {},\n bitrate,\n metadata = [],\n } = audioComponent;\n const audioMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const audioMetadata = parseKeyValuePairType(metadata);\n const {\n Format: audioFormat,\n Resolution: audioBitDepth,\n Bit_rate_mode: audioBitRateMode,\n } = audioMediaInfo;\n const audioSamplerateSamples = timeBase.denominator\n ? timeBase.denominator / timeBase.numerator\n : undefined;\n const audioSamplerate = audioSamplerateSamples\n ? parseFileSize(audioSamplerateSamples, { base: 10, round: 1, symbols: sampleRateSymbols })\n : undefined;\n const audioBitrate = bitrate\n ? parseFileSize(bitrate, { base: 10, round: 2, symbols: bitRateSymbols })\n : undefined;\n return {\n audioFormat,\n audioCodec,\n audioSamplerate,\n audioSamplerateSamples,\n audioBitDepth,\n audioBitrate,\n audioBitRateMode,\n audioChannels,\n audioMediaInfo,\n audioMetadata,\n };\n};\n\nconst parseBinaryComponent = (binaryComponent) => {\n const { file: fileList, mediaInfo = {}, metadata = [] } = binaryComponent;\n const binaryMetadata = parseKeyValuePairType(metadata);\n const binaryMediaInfo = parseBaseMediaInfoType(mediaInfo);\n\n let parsedBinaryComponent = { binaryMetadata, binaryMediaInfo };\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedBinaryComponent = {\n ...parsedBinaryComponent,\n ...parsedFileType,\n };\n }\n return parsedBinaryComponent;\n};\n\nconst parseShapeType = (shapeType = {}) => {\n let parsedShape = {};\n const {\n containerComponent,\n videoComponent: videoComponentList,\n audioComponent: audioComponentList,\n binaryComponent: binaryComponentList,\n mimeType: mimeTypeList = [],\n tag: tagList = [],\n } = shapeType;\n [parsedShape.tag] = tagList;\n [parsedShape.mimeType] = mimeTypeList;\n if (containerComponent) {\n const parsedContainerComponent = parseContainerComponent(containerComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedContainerComponent,\n };\n }\n if (videoComponentList) {\n const [videoComponent] = videoComponentList;\n const parsedVideoComponent = parseVideoComponent(videoComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedVideoComponent,\n };\n }\n if (audioComponentList) {\n const [audioComponent] = audioComponentList;\n const parsedAudioComponent = parseAudioComponent(audioComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedAudioComponent,\n };\n }\n if (binaryComponentList) {\n const [binaryComponent] = binaryComponentList;\n const parsedBinaryComponent = parseBinaryComponent(binaryComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedBinaryComponent,\n };\n }\n return parsedShape;\n};\n\nexport {\n parseAspectRatio,\n parseBaseMediaInfoType,\n parseFileType,\n parseContainerComponent,\n parseVideoComponent,\n parseAudioComponent,\n parseBinaryComponent,\n parseShapeType,\n};\n","import { formatTimeBaseType } from './time';\nimport { parseAspectRatio } from './parseShapeType';\n\nconst parseMediaConvertPreset = (transcodePresetType) => {\n const output = {};\n const { description, mediaconvert: { outputSetting = [] } = {} } = transcodePresetType;\n output.description = description;\n if (outputSetting.length === 0) return output;\n const mc = JSON.parse(outputSetting[0]);\n const { Settings: { ContainerSettings, VideoDescription, AudioDescriptions } = {} } = mc;\n output.containerFormat = ContainerSettings.Container;\n if (ContainerSettings) {\n output.containerFormat = ContainerSettings.Container;\n }\n if (VideoDescription) {\n const { CodecSettings = {} } = VideoDescription;\n const { Codec, ...otherSettings } = CodecSettings;\n output.videoFormat = Codec;\n const { Height: height, Width: width } = VideoDescription;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.fieldOrder = codecSpecs.InterlaceMode;\n if (output.fieldOrder && output.fieldOrder.includes('TOP')) output.fieldOrder = 'interlaced';\n output.videoBitrate = codecSpecs.Bitrate;\n const numerator = codecSpecs.FramerateDenominator; // other way round to vs ¯\\_(ツ)_/¯\n const denominator = codecSpecs.FramerateNumerator;\n const timeBase = formatTimeBaseType({ denominator, numerator });\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n }\n if (AudioDescriptions && AudioDescriptions.length > 0) {\n const { CodecSettings = {} } = AudioDescriptions[0];\n const { Codec, ...otherSettings } = CodecSettings;\n output.audioFormat = Codec;\n const [codecSpecs] = Object.values(otherSettings);\n if (codecSpecs) {\n output.audioSamplerate = codecSpecs.SampleRate;\n output.audioBitrate = codecSpecs.Bitrate;\n output.audioBitRateMode = codecSpecs.RateControlMode;\n }\n }\n return output;\n};\n\nconst parseTranscodePreset = (transcodePresetType) => {\n const output = {};\n const { description, format, audio, video, mediaconvert } = transcodePresetType;\n if (mediaconvert) return parseMediaConvertPreset(transcodePresetType);\n output.description = description;\n output.containerFormat = format;\n if (video) {\n output.videoFormat = video.codec;\n output.videoBitrate = video.bitrate;\n if (video.framerate) {\n const timeBase = formatTimeBaseType(video.framerate);\n output.timeBase = timeBase;\n output.frameRate = timeBase.toRate(true);\n }\n if (video.scaling) {\n const { height, width } = video.scaling;\n output.height = height;\n output.width = width;\n if (height && width) {\n output.dimension = `${width}x${height}`;\n output.aspectRatio = parseAspectRatio({ height, width });\n }\n }\n }\n if (audio) {\n const { codec: audioFormat, channel } = audio;\n output.audioFormat = audioFormat;\n if (channel) output.audioChannels = channel.length;\n }\n return output;\n};\n\nexport { parseTranscodePreset, parseMediaConvertPreset };\n","const parseFacetType = (facetType = []) => {\n const output = {};\n const facetFieldReducer = (a, { fieldValue, value }) => ({ ...a, [fieldValue]: value });\n facetType.forEach(({ name, field, count }) => {\n output[name || field] = count.reduce(facetFieldReducer, {});\n });\n return output;\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport { parseFacetType };\n","/* Note that VS may calculate +/- unit in another way */\nconst parseNowDate = (value = 'NOW') => {\n if (value.startsWith('NOW')) {\n if (value === 'NOW') return new Date();\n const sign = value[3];\n const number = Number(value.match(/(\\d+)/)[0]);\n const unit = value.match(/(\\d.*)/)[0].replace(/\\d/g, '');\n const nowDiff = new Date();\n // eslint-disable-next-line default-case\n switch (unit) {\n case 'HOUR':\n case 'HOURS':\n if (sign === '+') nowDiff.setHours(nowDiff.getHours() + number);\n if (sign === '-') nowDiff.setHours(nowDiff.getHours() - number);\n break;\n case 'DAY':\n case 'DAYS':\n if (sign === '+') nowDiff.setDate(nowDiff.getDate() + number);\n if (sign === '-') nowDiff.setDate(nowDiff.getDate() - number);\n break;\n case 'MONTH':\n case 'MONTHS':\n if (sign === '+') nowDiff.setMonth(nowDiff.getMonth() + number);\n if (sign === '-') nowDiff.setMonth(nowDiff.getMonth() - number);\n break;\n case 'YEAR':\n case 'YEARS':\n if (sign === '+') nowDiff.setFullYear(nowDiff.getFullYear() + number);\n if (sign === '-') nowDiff.setFullYear(nowDiff.getFullYear() - number);\n break;\n }\n return nowDiff;\n }\n return new Date(value);\n};\n\nexport default parseNowDate;\n","const createFacetType = (fieldList = [], options = {}) =>\n fieldList.map((field) => ({\n field,\n name: field,\n count: options.count || true,\n exclude: fieldList,\n }));\n\n// eslint-disable-next-line import/prefer-default-export\nexport { createFacetType };\n","/* eslint-disable import/prefer-default-export */\nconst parseValueList = (value) => {\n if (value === undefined) return [];\n if (value === null) return [{ value: '' }];\n if (Array.isArray(value)) {\n if (value.length > 0 && value[0].value) return value;\n return value.map((thisValue) => ({ value: thisValue }));\n }\n if (value.value) return [value];\n return [{ value }];\n};\n\nconst parseValue = (fieldValue = {}) => {\n if (fieldValue && (fieldValue.value || fieldValue.name)) {\n const { value: valueList, uuid } = fieldValue;\n const value = parseValueList(valueList);\n return { value, uuid };\n }\n return { value: parseValueList(fieldValue) };\n};\n\nconst parseField = (field = {}) => {\n const { name, value } = field;\n const parsedValue = parseValue(value);\n return { name, ...parsedValue };\n};\n\nconst shouldBeField = ({ name, value }) =>\n ['string', 'boolean', 'number'].includes(typeof value) ||\n (name !== 'group' && Array.isArray(value)) ||\n value === null;\n\nconst parseGroup = (thisGroup = {}) => {\n const { name: groupName, value: groupsOrFields = {} } = thisGroup;\n // eslint-disable-next-line no-use-before-define\n const { field, group } = parseGroupsOrFields(groupsOrFields);\n return {\n name: groupName,\n group,\n field,\n };\n};\n\nconst parseGroupsOrFields = (groupsOrFields) => {\n const group = [];\n const field = [];\n Object.entries(groupsOrFields).forEach(([name, value]) => {\n if (shouldBeField({ name, value })) {\n field.push(parseField({ name, value }));\n } else if (Array.isArray(value)) {\n value.forEach(({ groupName, ...groupValue }) => {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name: groupName, value: groupValue }));\n });\n } else {\n // eslint-disable-next-line no-use-before-define\n group.push(parseGroup({ name, value }));\n }\n });\n return {\n group,\n field,\n };\n};\n\nconst parseTimeSpan = (timeSpan) => {\n const { start = '-INF', end = '+INF', ...groupsOrFields } = timeSpan;\n const { group, field } = parseGroupsOrFields(groupsOrFields);\n return {\n start,\n end,\n field,\n group,\n };\n};\n\nconst createMetadataType = (metadataType = {}) => {\n const newMetadataType = {};\n if (Array.isArray(metadataType)) {\n newMetadataType.timespan = metadataType.map((thisTimeSpan) => parseTimeSpan(thisTimeSpan));\n } else {\n const genericTimespan = parseTimeSpan(metadataType);\n newMetadataType.timespan = [genericTimespan];\n }\n return newMetadataType;\n};\n\nexport { createMetadataType };\n\nexport default createMetadataType;\n","import { formatTimeCodeText } from './time';\nimport { sortTimespanList, parseTimespan } from './parseMetadataType';\n\nfunction timeToCueTime({ hours = 0, minutes = 0, seconds = 0, partialSeconds = 0 }) {\n const hourStr = hours.toFixed().padStart(2, '0');\n const minStr = minutes.toFixed().padStart(2, '0');\n const secondsStr = seconds.toFixed().padStart(2, '0');\n const partialStr = (partialSeconds * 10).toFixed().padStart(3, '0');\n return `${hourStr}:${minStr}:${secondsStr}.${partialStr}`;\n}\n\nexport default function metadataTypeToWebVtt({\n metadataType,\n subtitleGroup = 'stl_subtitle',\n subtitleField = 'stl_text',\n}) {\n const parseOptions = {\n includeTimespanAttributes: true,\n flatTimespan: true,\n flatGroup: true,\n joinValue: ',',\n };\n\n const { timespan: timespanList = [] } = metadataType || {};\n if (timespanList.length === 0) return '';\n const sortedTimespans = timespanList.sort(sortTimespanList);\n const parsedTimespans = sortedTimespans.map((timespanType) =>\n parseTimespan(timespanType, parseOptions),\n );\n const vttCues = parsedTimespans.map((thisTimespan) => {\n const {\n start: startText,\n end: endText,\n [subtitleGroup]: { [subtitleField]: text } = {},\n } = thisTimespan;\n if (!text) return '';\n const startTime = formatTimeCodeText(startText).toTime();\n const start = timeToCueTime(startTime);\n const endTime = formatTimeCodeText(endText).toTime();\n const end = timeToCueTime(endTime);\n return `${start} --> ${end} line:0%\\r${text}\\r`;\n });\n return `WEBVTT\\n\\n\\n${vttCues.join('\\n')}`;\n}\n","import { parseShapeType } from './parseShapeType';\n\nconst IMAGE_MIME_TYPES = [\n 'image/apng',\n 'image/bmp',\n 'image/gif',\n 'image/jpeg',\n 'image/x-icon',\n 'image/png',\n 'image/svg+xml',\n];\n\nconst VIDEO_MIME_TYPES = ['video/mp4'];\n\nconst AUDIO_MIME_TYPES = [\n 'audio/mp4',\n 'audio/mpeg',\n 'audio/x-aac',\n 'audio/aac',\n 'audio/x-wav',\n 'audio/wav',\n 'audio/accp',\n 'audio/ogg',\n 'audio/webm',\n 'audio/x-flac',\n];\n\nconst DEFAULT_ALLOWED_MIME_TYPES = [...VIDEO_MIME_TYPES, ...IMAGE_MIME_TYPES, ...AUDIO_MIME_TYPES];\n\nconst DEFAULT_ALLOWED_METHODS = ['http', 'https'];\n\nconst MP4_MIMETYPE = 'video/mp4';\nconst QUICKTIME_MIMETYPE = 'video/quicktime';\nconst M4V_MIMETYPE = 'video/x-m4v';\nconst MP4_CONTAINER = 'MPEG-4';\nconst MOV_CONTAINER = 'mov';\nconst H264_CODEC = 'h264';\n\n// Sort by tags in the order of previewShapeOrder, secondary alphabetical.\n// using reverse() so the first has highest index\nconst PREVIEW_SHAPE_ORDER = [\n '__mp4',\n '__mp3_160k',\n '__png',\n '__jpeg',\n '__gif',\n 'original',\n].reverse();\n\nconst defaultSortPriority = ({ shape: { tag: firstEl } }, { shape: { tag: secondEl } }) => {\n if (PREVIEW_SHAPE_ORDER.includes(firstEl) || PREVIEW_SHAPE_ORDER.includes(secondEl)) {\n return PREVIEW_SHAPE_ORDER.indexOf(secondEl) - PREVIEW_SHAPE_ORDER.indexOf(firstEl);\n }\n return firstEl.toLowerCase().localeCompare(secondEl.toLowerCase());\n};\n\nconst filterShapeSource = (itemType = {}, options = {}) => {\n const {\n allowedMimeTypes = DEFAULT_ALLOWED_MIME_TYPES,\n sortPriority = defaultSortPriority,\n allowedMethods = DEFAULT_ALLOWED_METHODS,\n sourceKey = 'src',\n mimeTypeKey = 'type',\n shapeKey = 'shape',\n } = options;\n const { shape: shapeList = [] } = itemType;\n const parsedShapeList = shapeList.reduce((acc, shapeType) => {\n let type;\n let src;\n const shape = parseShapeType(shapeType);\n const { uri, mimeType, containerFormat, videoCodec } = shape;\n if (mimeType) {\n type = mimeType;\n if (\n (mimeType === QUICKTIME_MIMETYPE || mimeType === M4V_MIMETYPE) &&\n (containerFormat === MP4_CONTAINER || containerFormat === MOV_CONTAINER) &&\n videoCodec === H264_CODEC\n )\n type = MP4_MIMETYPE;\n }\n if (uri) {\n if (allowedMethods) {\n const [thisMethod] = uri.split('://');\n if (allowedMethods.includes(thisMethod)) src = uri;\n } else {\n src = uri;\n }\n }\n if (src && allowedMimeTypes.includes(type)) {\n acc.push({\n [sourceKey]: src,\n [mimeTypeKey]: type,\n [shapeKey]: shape,\n });\n }\n return acc;\n }, []);\n if (typeof sortPriority === 'function') parsedShapeList.sort(defaultSortPriority);\n return parsedShapeList;\n};\n\nexport default filterShapeSource;\n","const IMAGE = 'IMAGE';\nconst AUDIO = 'AUDIO';\nconst VIDEO = 'VIDEO';\n\nconst getShapeMediaType = (shape = {}) => {\n const { mimeType, videoCodec, audioCodec } = shape;\n if (!mimeType) return undefined;\n if (mimeType.startsWith('audio/')) {\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('video/')) {\n if (videoCodec !== undefined) return VIDEO;\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('image/')) return IMAGE;\n return undefined;\n};\n\nexport default getShapeMediaType;\n","import { formatTimeCodeText } from './time';\n\nconst findNearestThumbnail = (itemType = {}, timeCodeText) => {\n const tcSeconds = formatTimeCodeText(timeCodeText).toSeconds();\n const { thumbnails = {} } = itemType;\n const { uri: srcList = [] } = thumbnails;\n const srcTcSeconds = srcList.map((url) => {\n const tc = new URL(url).pathname.split('/').pop();\n return formatTimeCodeText(tc).toSeconds();\n });\n\n const nearestSrcIndex = srcTcSeconds.reduce(\n (nearestIndex, curr, currIndex) =>\n Math.abs(curr - tcSeconds) < Math.abs(srcTcSeconds[nearestIndex] - tcSeconds)\n ? currIndex\n : nearestIndex,\n 0,\n );\n return srcList[nearestSrcIndex];\n};\n\nexport default findNearestThumbnail;\n","export const ACCESSCONTROL_READ = '_accesscontrol_read';\nexport const ACCESSCONTROL_WRITE = '_accesscontrol_write';\nexport const ADMINISTRATOR = '_administrator';\nexport const AUTO_PROJECTION_READ = '_auto_projection_read';\nexport const AUTO_PROJECTION_WRITE = '_auto_projection_write';\nexport const COLLECTION_NOTIFICATION_READ = '_collection_notification_read';\nexport const COLLECTION_NOTIFICATION_WRITE = '_collection_notification_write';\nexport const COLLECTION_READ = '_collection_read';\nexport const COLLECTION_WRITE = '_collection_write';\nexport const DELETION_LOCK_NOTIFICATION_READ = '_deletion_lock_notification_read';\nexport const DELETION_LOCK_NOTIFICATION_WRITE = '_deletion_lock_notification_write';\nexport const DELETION_LOCK_READ = '_deletion_lock_read';\nexport const DELETION_LOCK_WRITE = '_deletion_lock_write';\nexport const DOCUMENT_NOTIFICATION_READ = '_document_notification_read';\nexport const DOCUMENT_NOTIFICATION_WRITE = '_document_notification_write';\nexport const DOCUMENT_READ = '_document_read';\nexport const DOCUMENT_WRITE = '_document_write';\nexport const ERROR_READ = '_error_read';\nexport const ERROR_WRITE = '_error_write';\nexport const EXPORT = '_export';\nexport const EXPORT_TEMPLATE_READ = '_export_template_read';\nexport const EXPORT_TEMPLATE_WRITE = '_export_template_write';\nexport const EXTERNAL_ID_READ = '_external_id_read';\nexport const EXTERNAL_ID_WRITE = '_external_id_write';\nexport const FILE_NOTIFICATION_READ = '_file_notification_read';\nexport const FILE_NOTIFICATION_WRITE = '_file_notification_write';\nexport const FILE_READ = '_file_read';\nexport const FILE_WRITE = '_file_write';\nexport const GROUP_READ = '_group_read';\nexport const GROUP_WRITE = '_group_write';\nexport const IMPORT_WRITE = '_import';\nexport const ITEM_ID_READ = '_item_id_read';\nexport const ITEM_ID_WRITE = '_item_id_write';\nexport const ITEM_NOTIFICATION_READ = '_item_notification_read';\nexport const ITEM_NOTIFICATION_WRITE = '_item_notification_write';\nexport const ITEM_WRITE = '_item_write';\nexport const ITEM_SEARCH = '_item_search';\nexport const ITEM_SHAPE_READ = '_item_shape_read';\nexport const ITEM_SHAPE_WRITE = '_item_shape_write';\nexport const ITEM_TIMELINE_READ = '_item_timeline_read';\nexport const ITEM_TIMELINE_WRITE = '_item_timeline_write';\nexport const ITEM_URI = '_item_uri';\nexport const JOB_NOTIFICATION_READ = '_job_notification_read';\nexport const JOB_NOTIFICATION_WRITE = '_job_notification_write';\nexport const JOB_READ = '_job_read';\nexport const JOB_WRITE = '_job_write';\nexport const LIBRARY_READ = '_library_read';\nexport const LIBRARY_WRITE = '_library_write';\nexport const LOCK_READ = '_lock_read';\nexport const LOCK_WRITE = '_lock_write';\nexport const LOG_READ = '_log_read';\nexport const METADATA_DATASET_READ = '_metadata_dataset_read';\nexport const METADATA_DATASET_WRITE = '_metadata_dataset_write';\nexport const METADATA_FIELD_GROUP_READ = '_metadata_field_group_read';\nexport const METADATA_FIELD_GROUP_WRITE = '_metadata_field_group_write';\nexport const METADATA_FIELD_READ = '_metadata_field_read';\nexport const METADATA_FIELD_WRITE = '_metadata_field_write';\nexport const METADATA_GLOBAL_READ = '_metadata_global_read';\nexport const METADATA_GLOBAL_WRITE = '_metadata_global_write';\nexport const METADATA_LOCK_READ = '_metadata_lock_read';\nexport const METADATA_LOCK_WRITE = '_metadata_lock_write';\nexport const METADATA_READ = '_metadata_read';\nexport const METADATA_SCHEMA_READ = '_metadata_schema_read';\nexport const METADATA_SCHEMA_WRITE = '_metadata_schema_write';\nexport const METADATA_WRITE = '_metadata_write';\nexport const OTIF_ANALYZE = '_otif_analyze';\nexport const OTIF_READ = '_otif_read';\nexport const OTIF_WRITE = '_otif_write';\nexport const PLACEHOLDER_NOTIFICATION_READ = '_placeholder_notification_read';\nexport const PLACEHOLDER_NOTIFICATION_WRITE = '_placeholder_notification_write';\nexport const PROJECTION_READ = '_projection_read';\nexport const PROJECTION_WRITE = '_projection_write';\nexport const QUOTA_NOTIFICATION_READ = '_quota_notification_read';\nexport const QUOTA_NOTIFICATION_WRITE = '_quota_notification_write';\nexport const QUOTA_READ = '_quota_read';\nexport const QUOTA_WRITE = '_quota_write';\nexport const RELATION_READ = '_relation_read';\nexport const RELATION_WRITE = '_relation_write';\nexport const RESOURCE_READ = '_resource_read';\nexport const RESOURCE_WRITE = '_resource_write';\nexport const RUN_AS = '_run_as';\nexport const SEARCH = '_search';\nexport const SEQUENCE_READ = '_sequence_read';\nexport const SEQUENCE_WRITE = '_sequence_write';\nexport const SHAPE_TAG_READ = '_shape_tag_read';\nexport const SHAPE_TAG_WRITE = '_shape_tag_write';\nexport const SITE_MANAGER = '_site_manager';\nexport const SITE_RULE_READ = '_site_rule_read';\nexport const SITE_RULE_WRITE = '_site_rule_write';\nexport const STORAGE_GROUP_READ = '_storage_group_read';\nexport const STORAGE_GROUP_WRITE = '_storage_group_write';\nexport const STORAGE_NOTIFICATION_READ = '_storage_notification_read';\nexport const STORAGE_NOTIFICATION_WRITE = '_storage_notification_write';\nexport const STORAGE_READ = '_storage_read';\nexport const STORAGE_RULE_READ = '_storage_rule_read';\nexport const STORAGE_RULE_WRITE = '_storage_rule_write';\nexport const STORAGE_WRITE = '_storage_write';\nexport const SUPER_ACCESS_USER = '_super_access_user';\nexport const TASKDEFINITION_READ = '_taskdefinition_read';\nexport const TASKDEFINITION_WRITE = '_taskdefinition_write';\nexport const THUMBNAIL_READ = '_thumbnail_read';\nexport const THUMBNAIL_WRITE = '_thumbnail_write';\nexport const TRANSCODER = '_transcoder';\nexport const TRANSFER_READ = '_transfer_read';\nexport const TRANSFER_WRITE = '_transfer_write';\nexport const USER = '_user';\nexport const VXA = '_vxa';\nexport const VXA_READ = '_vxa_read';\n","import parseKeyValuePairType from './parseKeyValuePairType';\n\nconst parseSimpleMetadataType = ({ field = [] } = {}) => {\n return parseKeyValuePairType(field);\n};\n\nexport default parseSimpleMetadataType;\n","const parseHighlightTimespan = ({ field = [], start, end } = {}, opts = {}) => {\n const { arrayOnSingle = true, joinValue = undefined, timespanAsList = undefined } = opts;\n const initialValue = timespanAsList ? { start, end } : {};\n const fieldList = field.reduce((a, { name, value: valueList = [] }) => {\n if (valueList.length === 0) return a;\n let fieldValue;\n if (arrayOnSingle === false && valueList.length === 1) [fieldValue] = valueList;\n else if (joinValue) fieldValue = valueList.join(joinValue);\n else fieldValue = valueList;\n return { ...a, [name]: fieldValue };\n }, initialValue);\n return fieldList;\n};\n\n/**\n * Parses Highlight Timespans into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} highlightTimespanList - A list of timespans.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {Object} options.arrayOnSingle - Return an array if there is a single value.\n * @param {Object} options.joinValue - String to join the values, eg ','.\n * @param {Object} options.flat - Flatten to field-name/field-value (Note: field-values may be overwritten).\n * @param {Object} options.flatTimespan - Flatten timespan to object with start/end as key.\n * @param {Object} options.timespanAsList - Return timespans as list.\n * @param {Object} options.joinTimespan - String character to join the start/end timecodes.\n */\nconst parseHighlightTimespanList = (highlightTimespanList = [], opts = {}) => {\n const { flat, timespanAsList, joinTimespan = '_', flatTimespan } = opts;\n if (timespanAsList === true)\n return highlightTimespanList.map((timespan) => parseHighlightTimespan(timespan, opts));\n if (flat === true || flatTimespan === true)\n return highlightTimespanList.reduce(\n (a, timespan) => ({ ...a, ...parseHighlightTimespan(timespan, opts) }),\n {},\n );\n return highlightTimespanList.reduce(\n (a, timespan) => ({\n ...a,\n [[timespan.start, timespan.end].join(joinTimespan)]: parseHighlightTimespan(timespan, opts),\n }),\n {},\n );\n};\n\nexport { parseHighlightTimespan, parseHighlightTimespanList };\n"],"names":["sortTimespanList","firstStart","start","secondStart","split","first","second","Number","findTimespan","metadataType","end","timespan","timespanList","find","parseValueList","valueList","options","arrayOnSingle","arrayOnSingleValue","joinValue","includeAttributes","includeValueAttributes","valueArray","forEach","thisValue","value","push","join","length","parseField","field","includeFieldAttributes","attributes","parsedValueList","parseFieldList","fieldList","output","fieldAsList","map","thisField","key","name","parsedField","currentValue","parsedValue","concat","parseGroup","group","includeGroupAttributes","flat","flatGroup","groupAsList","groupList","parsedFieldList","parsedGroupList","parseGroupList","Object","assign","thisGroup","parsedGroup","currentField","currentGroup","parseTimespan","includeTimespanAttributes","flatTimespan","parseTimespanList","joinTimespan","timespanAsList","thisTimespan","parsedTimespan","parseMetadataType","includeMetadataAttributes","sortTimespan","sort","global","b","symbol","iec","bits","bytes","jedec","fullform","filesize","arg","descriptor","arguments","undefined","result","val","e","base","ceil","full","fullforms","locale","localeOptions","neg","num","round","unix","separator","spacer","standard","symbols","isNaN","TypeError","Array","exponent","Math","floor","log","pow","toFixed","charAt","replace","test","toLocaleString","toString","partial","opt","module","PAL","NTSC","NTSC30","CONSTANT_TIMEBASES","denominator","numerator","FRAME_SEPARATORS","dropFrame","splitSmpte","smpteText","hasDropFrameSeparator","match","hhmmssff","frameOptions","frameSeparator","hhmmss","splitFrames","some","n","Error","getDropFrames","roundedFrameRate","getRoundedFrameRate","timeBase","countSamples","hh","mm","ss","ff","includes","dropFrames","shouldDropMinute","shouldDropSecond","hourFrames","minuteFrames","secondFrames","frameFrames","countDroppedFrames","frames","oneMinuteUndroppedFrames","oneMinuteDroppedFrames","tenMinuteFrames","tenMinuteChunks","minuteRemainder","max","oneMinuteChunks","frameRemainder","frameChunks","TimeBase","constant","entries","thisTimeBase","thisTimeBaseText","thisTimeBaseType","useConstant","timeBaseText","toConstant","String","rate","isInteger","isDropFrameTimeBase","TimeCode","samples","Infinity","conformedTimeCode","conformTimeBase","conformTo","toRate","timeCode","timeCodeText","toText","totalSamples","hours","minutes","seconds","partialSeconds","format","toTime","toLowerCase","padStart","thisSeparator","formatTimeBaseType","formatTimeBaseText","keys","formatTimeBase","formatTimeCodeType","formatTimeCodeText","samplesString","formatSeconds","formatSecondsPrecise","decimalPlaces","formatSmpte","parseKeyValuePairType","keyValuePairType","keyValuePairTypeReducer","a","reduce","sampleRateSymbols","kB","B","mB","bitRateSymbols","MB","gcd","parseAspectRatio","width","height","widthRatio","heightRatio","parseBaseMediaInfoType","baseMediaInfoType","property","props","parsedKeyValuePairType","parseFileType","fileType","uri","uriList","fileSizeBytes","size","hash","path","fileSize","parseFileSize","fileName","pop","parseContainerComponent","containerComponent","mediaInfo","metadata","fileList","file","durationTimeCode","duration","startTimestamp","startTimecode","timeCodeTimeBase","containerMetadata","containerMediaInfo","containerFormat","Format","videoFormat","Video_Format_List","audioFormat","Audio_Format_List","textFormat","Text_Format_List","formatList","parsedContainerComponent","componentOriginalFilename","originalFilename","toDuration","parsedFileType","parseVideoComponent","videoComponent","videoCodec","codec","bitrate","fieldOrder","resolution","videoMediaInfo","videoMetadata","colorSpace","colorPrimaries","chromaSubsampling","Colorimetry","averageFrameRate","realBaseFrameRate","numberOfPackets","frameRate","smpte","toSmpte","aspectRatio","dimension","videoBitrate","parseAudioComponent","audioComponent","audioChannels","channelCount","audioCodec","audioMediaInfo","audioMetadata","audioBitDepth","Resolution","audioBitRateMode","Bit_rate_mode","audioSamplerateSamples","audioSamplerate","audioBitrate","parseBinaryComponent","binaryComponent","binaryMetadata","binaryMediaInfo","parsedBinaryComponent","parseShapeType","shapeType","parsedShape","videoComponentList","audioComponentList","binaryComponentList","mimeType","mimeTypeList","tag","tagList","parsedVideoComponent","parsedAudioComponent","parseMediaConvertPreset","transcodePresetType","description","mediaconvert","outputSetting","mc","JSON","parse","Settings","ContainerSettings","VideoDescription","AudioDescriptions","Container","CodecSettings","Codec","otherSettings","Height","Width","values","codecSpecs","InterlaceMode","Bitrate","FramerateDenominator","FramerateNumerator","SampleRate","RateControlMode","parseTranscodePreset","audio","video","framerate","scaling","channel","parseFacetType","facetType","facetFieldReducer","fieldValue","count","parseNowDate","startsWith","Date","sign","number","unit","nowDiff","setHours","getHours","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","createFacetType","exclude","isArray","parseValue","uuid","shouldBeField","groupName","groupsOrFields","parseGroupsOrFields","groupValue","parseTimeSpan","timeSpan","createMetadataType","newMetadataType","thisTimeSpan","genericTimespan","timeToCueTime","hourStr","minStr","secondsStr","partialStr","metadataTypeToWebVtt","subtitleGroup","subtitleField","parseOptions","sortedTimespans","parsedTimespans","timespanType","vttCues","startText","endText","text","startTime","endTime","IMAGE_MIME_TYPES","VIDEO_MIME_TYPES","AUDIO_MIME_TYPES","DEFAULT_ALLOWED_MIME_TYPES","DEFAULT_ALLOWED_METHODS","MP4_MIMETYPE","QUICKTIME_MIMETYPE","M4V_MIMETYPE","MP4_CONTAINER","MOV_CONTAINER","H264_CODEC","PREVIEW_SHAPE_ORDER","reverse","defaultSortPriority","firstEl","shape","secondEl","indexOf","localeCompare","filterShapeSource","itemType","allowedMimeTypes","sortPriority","allowedMethods","sourceKey","mimeTypeKey","shapeKey","shapeList","parsedShapeList","acc","type","src","thisMethod","IMAGE","AUDIO","VIDEO","getShapeMediaType","findNearestThumbnail","tcSeconds","toSeconds","thumbnails","srcList","srcTcSeconds","url","tc","URL","pathname","nearestSrcIndex","nearestIndex","curr","currIndex","abs","ACCESSCONTROL_READ","ACCESSCONTROL_WRITE","ADMINISTRATOR","AUTO_PROJECTION_READ","AUTO_PROJECTION_WRITE","COLLECTION_NOTIFICATION_READ","COLLECTION_NOTIFICATION_WRITE","COLLECTION_READ","COLLECTION_WRITE","DELETION_LOCK_NOTIFICATION_READ","DELETION_LOCK_NOTIFICATION_WRITE","DELETION_LOCK_READ","DELETION_LOCK_WRITE","DOCUMENT_NOTIFICATION_READ","DOCUMENT_NOTIFICATION_WRITE","DOCUMENT_READ","DOCUMENT_WRITE","ERROR_READ","ERROR_WRITE","EXPORT","EXPORT_TEMPLATE_READ","EXPORT_TEMPLATE_WRITE","EXTERNAL_ID_READ","EXTERNAL_ID_WRITE","FILE_NOTIFICATION_READ","FILE_NOTIFICATION_WRITE","FILE_READ","FILE_WRITE","GROUP_READ","GROUP_WRITE","IMPORT_WRITE","ITEM_ID_READ","ITEM_ID_WRITE","ITEM_NOTIFICATION_READ","ITEM_NOTIFICATION_WRITE","ITEM_WRITE","ITEM_SEARCH","ITEM_SHAPE_READ","ITEM_SHAPE_WRITE","ITEM_TIMELINE_READ","ITEM_TIMELINE_WRITE","ITEM_URI","JOB_NOTIFICATION_READ","JOB_NOTIFICATION_WRITE","JOB_READ","JOB_WRITE","LIBRARY_READ","LIBRARY_WRITE","LOCK_READ","LOCK_WRITE","LOG_READ","METADATA_DATASET_READ","METADATA_DATASET_WRITE","METADATA_FIELD_GROUP_READ","METADATA_FIELD_GROUP_WRITE","METADATA_FIELD_READ","METADATA_FIELD_WRITE","METADATA_GLOBAL_READ","METADATA_GLOBAL_WRITE","METADATA_LOCK_READ","METADATA_LOCK_WRITE","METADATA_READ","METADATA_SCHEMA_READ","METADATA_SCHEMA_WRITE","METADATA_WRITE","OTIF_ANALYZE","OTIF_READ","OTIF_WRITE","PLACEHOLDER_NOTIFICATION_READ","PLACEHOLDER_NOTIFICATION_WRITE","PROJECTION_READ","PROJECTION_WRITE","QUOTA_NOTIFICATION_READ","QUOTA_NOTIFICATION_WRITE","QUOTA_READ","QUOTA_WRITE","RELATION_READ","RELATION_WRITE","RESOURCE_READ","RESOURCE_WRITE","RUN_AS","SEARCH","SEQUENCE_READ","SEQUENCE_WRITE","SHAPE_TAG_READ","SHAPE_TAG_WRITE","SITE_MANAGER","SITE_RULE_READ","SITE_RULE_WRITE","STORAGE_GROUP_READ","STORAGE_GROUP_WRITE","STORAGE_NOTIFICATION_READ","STORAGE_NOTIFICATION_WRITE","STORAGE_READ","STORAGE_RULE_READ","STORAGE_RULE_WRITE","STORAGE_WRITE","SUPER_ACCESS_USER","TASKDEFINITION_READ","TASKDEFINITION_WRITE","THUMBNAIL_READ","THUMBNAIL_WRITE","TRANSCODER","TRANSFER_READ","TRANSFER_WRITE","USER","VXA","VXA_READ","parseSimpleMetadataType","parseHighlightTimespan","opts","initialValue","parseHighlightTimespanList","highlightTimespanList"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vidispine/vdt-js",
3
- "version": "0.15.0-pre.18",
3
+ "version": "0.15.0-pre.19",
4
4
  "license": "UNLICENSED",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -15,7 +15,7 @@
15
15
  "@babel/core": "^7.8.3",
16
16
  "@babel/plugin-external-helpers": "^7.8.3",
17
17
  "@babel/preset-env": "^7.8.3",
18
- "@vidispine/eslint-config-base": "^0.15.0-pre.18",
18
+ "@vidispine/eslint-config-base": "^0.15.0-pre.19",
19
19
  "rollup": "^1.29.0",
20
20
  "rollup-plugin-babel": "^4.3.3",
21
21
  "rollup-plugin-commonjs": "^10.1.0",