@vidispine/vdt-js 21.3.0 → 21.4.0-pre.1

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.
@@ -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","../src/getDocumentType.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 29.97: { denominator: 30000, numerator: 1001 },\n 59.94: { denominator: 60000, numerator: 1001 },\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 toFraction() {\n return `${this.samples}@${this.timeBase.denominator}:${this.timeBase.numerator}`;\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, id: fileId } = 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 fileId,\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 return value.map((valueOrObject) => {\n if (typeof valueOrObject === 'object') {\n return { value: valueOrObject.value || '', ...valueOrObject };\n }\n return { value: valueOrObject };\n });\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';\nconst DOCUMENT = 'DOCUMENT';\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 if (mimeType.endsWith('/pdf')) return DOCUMENT;\n if (mimeType.startsWith('text/')) return DOCUMENT;\n if (mimeType.endsWith('/msword')) return DOCUMENT;\n if (mimeType.endsWith('/json')) return DOCUMENT;\n if (mimeType.endsWith('/xml')) return DOCUMENT;\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","const PDF = 'PDF';\nconst TEXT = 'TEXT';\nconst MSWORD = 'MSWORD';\nconst JSON = 'JSON';\nconst XML = 'XML';\n\nconst getDocumentType = (shape = {}) => {\n const { mimeType } = shape;\n if (!mimeType) return undefined;\n if (mimeType.endsWith('/pdf')) return PDF;\n if (mimeType.startsWith('text/')) return TEXT;\n if (mimeType.endsWith('/msword')) return MSWORD;\n if (mimeType.endsWith('/json')) return JSON;\n if (mimeType.endsWith('/xml')) return XML;\n return undefined;\n};\n\nexport default getDocumentType;\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","fileId","id","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","valueOrObject","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","DOCUMENT","getShapeMediaType","endsWith","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","PDF","TEXT","MSWORD","XML","getDocumentType"],"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","../src/getDocumentType.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","/**\n * filesize\n *\n * @copyright 2021 Jason Mulligan <jason.mulligan@avoidwork.com>\n * @license BSD-3-Clause\n * @version 6.4.0\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.filesize = factory());\n}(this, (function () { 'use strict';\n\n\tvar b = /^(b|B)$/,\n\t symbol = {\n\t iec: {\n\t bits: [\"b\", \"Kib\", \"Mib\", \"Gib\", \"Tib\", \"Pib\", \"Eib\", \"Zib\", \"Yib\"],\n\t bytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\n\t },\n\t jedec: {\n\t bits: [\"b\", \"Kb\", \"Mb\", \"Gb\", \"Tb\", \"Pb\", \"Eb\", \"Zb\", \"Yb\"],\n\t bytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n\t }\n\t},\n\t fullform = {\n\t iec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\n\t jedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\n\t},\n\t roundingFuncs = {\n\t floor: Math.floor,\n\t ceil: Math.ceil\n\t};\n\t/**\n\t * filesize\n\t *\n\t * @method filesize\n\t * @param {Mixed} arg String, Int or Float to transform\n\t * @param {Object} descriptor [Optional] Flags\n\t * @return {String} Readable file size String\n\t */\n\n\tfunction filesize(arg) {\n\t var descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t var result = [],\n\t val = 0,\n\t e,\n\t base,\n\t bits,\n\t ceil,\n\t full,\n\t fullforms,\n\t locale,\n\t localeOptions,\n\t neg,\n\t num,\n\t output,\n\t pad,\n\t round,\n\t u,\n\t unix,\n\t separator,\n\t spacer,\n\t standard,\n\t symbols,\n\t roundingFunc,\n\t precision;\n\n\t if (isNaN(arg)) {\n\t throw new TypeError(\"Invalid number\");\n\t }\n\n\t bits = descriptor.bits === true;\n\t unix = descriptor.unix === true;\n\t pad = descriptor.pad === true;\n\t base = descriptor.base || 2;\n\t round = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;\n\t locale = descriptor.locale !== void 0 ? descriptor.locale : \"\";\n\t localeOptions = descriptor.localeOptions || {};\n\t separator = descriptor.separator !== void 0 ? descriptor.separator : \"\";\n\t spacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? \"\" : \" \";\n\t symbols = descriptor.symbols || {};\n\t standard = base === 2 ? descriptor.standard || \"jedec\" : \"jedec\";\n\t output = descriptor.output || \"string\";\n\t full = descriptor.fullform === true;\n\t fullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];\n\t e = descriptor.exponent !== void 0 ? descriptor.exponent : -1;\n\t roundingFunc = roundingFuncs[descriptor.roundingMethod] || Math.round;\n\t num = Number(arg);\n\t neg = num < 0;\n\t ceil = base > 2 ? 1000 : 1024;\n\t precision = isNaN(descriptor.precision) === false ? parseInt(descriptor.precision, 10) : 0; // Flipping a negative number to determine the size\n\n\t if (neg) {\n\t num = -num;\n\t } // Determining the exponent\n\n\n\t if (e === -1 || isNaN(e)) {\n\t e = Math.floor(Math.log(num) / Math.log(ceil));\n\n\t if (e < 0) {\n\t e = 0;\n\t }\n\t } // Exceeding supported length, time to reduce & multiply\n\n\n\t if (e > 8) {\n\t if (precision > 0) {\n\t precision += 8 - e;\n\t }\n\n\t e = 8;\n\t }\n\n\t if (output === \"exponent\") {\n\t return e;\n\t } // Zero is now a special case because bytes divide by 1\n\n\n\t if (num === 0) {\n\t result[0] = 0;\n\t u = result[1] = unix ? \"\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\n\t } else {\n\t val = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\n\n\t if (bits) {\n\t val = val * 8;\n\n\t if (val >= ceil && e < 8) {\n\t val = val / ceil;\n\t e++;\n\t }\n\t }\n\n\t var p = Math.pow(10, e > 0 ? round : 0);\n\t result[0] = roundingFunc(val * p) / p;\n\n\t if (result[0] === ceil && e < 8 && descriptor.exponent === void 0) {\n\t result[0] = 1;\n\t e++;\n\t }\n\n\t u = result[1] = base === 10 && e === 1 ? bits ? \"kb\" : \"kB\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\n\n\t if (unix) {\n\t result[1] = standard === \"jedec\" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, \"\") : result[1];\n\n\t if (b.test(result[1])) {\n\t result[0] = Math.floor(result[0]);\n\t result[1] = \"\";\n\t }\n\t }\n\t } // Decorating a 'diff'\n\n\n\t if (neg) {\n\t result[0] = -result[0];\n\t } // Setting optional precision\n\n\n\t if (precision > 0) {\n\t result[0] = result[0].toPrecision(precision);\n\t } // Applying custom symbol\n\n\n\t result[1] = symbols[result[1]] || result[1];\n\n\t if (locale === true) {\n\t result[0] = result[0].toLocaleString();\n\t } else if (locale.length > 0) {\n\t result[0] = result[0].toLocaleString(locale, localeOptions);\n\t } else if (separator.length > 0) {\n\t result[0] = result[0].toString().replace(\".\", separator);\n\t }\n\n\t if (pad && Number.isInteger(result[0]) === false && round > 0) {\n\t var x = separator || \".\",\n\t tmp = result[0].toString().split(x),\n\t s = tmp[1] || \"\",\n\t l = s.length,\n\t n = round - l;\n\t result[0] = \"\".concat(tmp[0]).concat(x).concat(s.padEnd(l + n, \"0\"));\n\t }\n\n\t if (full) {\n\t result[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? \"bit\" : \"byte\") + (result[0] === 1 ? \"\" : \"s\");\n\t } // Returning Array, Object, or String (default)\n\n\n\t return output === \"array\" ? result : output === \"object\" ? {\n\t value: result[0],\n\t symbol: result[1],\n\t exponent: e,\n\t unit: u\n\t } : result.join(spacer);\n\t} // Partial application for functional programming\n\n\n\tfilesize.partial = function (opt) {\n\t return function (arg) {\n\t return filesize(arg, opt);\n\t };\n\t};\n\n\treturn filesize;\n\n})));\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 29.97: { denominator: 30000, numerator: 1001 },\n 59.94: { denominator: 60000, numerator: 1001 },\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 toFraction() {\n return `${this.samples}@${this.timeBase.denominator}:${this.timeBase.numerator}`;\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, id: fileId } = 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 fileId,\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 return value.map((valueOrObject) => {\n if (typeof valueOrObject === 'object') {\n return { value: valueOrObject.value || '', ...valueOrObject };\n }\n return { value: valueOrObject };\n });\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';\nconst DOCUMENT = 'DOCUMENT';\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 if (mimeType.endsWith('/pdf')) return DOCUMENT;\n if (mimeType.startsWith('text/')) return DOCUMENT;\n if (mimeType.endsWith('/msword')) return DOCUMENT;\n if (mimeType.endsWith('/json')) return DOCUMENT;\n if (mimeType.endsWith('/xml')) return DOCUMENT;\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","const PDF = 'PDF';\nconst TEXT = 'TEXT';\nconst MSWORD = 'MSWORD';\nconst JSON = 'JSON';\nconst XML = 'XML';\n\nconst getDocumentType = (shape = {}) => {\n const { mimeType } = shape;\n if (!mimeType) return undefined;\n if (mimeType.endsWith('/pdf')) return PDF;\n if (mimeType.startsWith('text/')) return TEXT;\n if (mimeType.endsWith('/msword')) return MSWORD;\n if (mimeType.endsWith('/json')) return JSON;\n if (mimeType.endsWith('/xml')) return XML;\n return undefined;\n};\n\nexport default getDocumentType;\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","factory","module","this","b","symbol","iec","bits","bytes","jedec","fullform","roundingFuncs","floor","Math","ceil","filesize","arg","descriptor","arguments","undefined","result","val","e","base","full","fullforms","locale","localeOptions","neg","num","pad","round","u","unix","separator","spacer","standard","symbols","roundingFunc","precision","isNaN","TypeError","Array","exponent","roundingMethod","parseInt","log","pow","p","charAt","replace","test","toPrecision","toLocaleString","toString","isInteger","x","tmp","s","l","n","padEnd","unit","partial","opt","PAL","NTSC","NTSC30","CONSTANT_TIMEBASES","denominator","numerator","FRAME_SEPARATORS","dropFrame","splitSmpte","smpteText","hasDropFrameSeparator","match","hhmmssff","frameOptions","frameSeparator","hhmmss","splitFrames","some","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","toFixed","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","fileId","id","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","nowDiff","setHours","getHours","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","createFacetType","exclude","isArray","valueOrObject","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","DOCUMENT","getShapeMediaType","endsWith","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","PDF","TEXT","MSWORD","XML","getDocumentType"],"mappings":"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"}