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