@vidispine/vdt-js 22.3.0-pre.3 → 22.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/_utils/parseKeyValuePairType.js","../src/auth/consts/ROLE_NAMES.js","../src/metadata/createMetadataType/createMetadataType.js","../src/metadata/_utils/sortTimespanList.js","../src/metadata/parseTimespan/parseTimespan.js","../src/metadata/parseTimespanList/parseTimespanList.js","../src/metadata/parseMetadataType/parseMetadataType.js","../src/metadata/parseSimpleMetadataType/parseSimpleMetadataType.js","../src/metadata/parseHighlightTimespan/parseHighlightTimespan.js","../src/metadata/parseHighlightTimespanList/parseHighlightTimespanList.js","../src/time/_consts/index.js","../src/time/TimeBase/TimeBase.js","../src/time/formatTimeBaseType/formatTimeBaseType.js","../src/time/formatTimeBaseText/formatTimeBaseText.js","../src/time/formatTimeBase/formatTimeBase.js","../src/time/TimeCode/TimeCode.js","../src/time/formatTimeCodeType/formatTimeCodeType.js","../src/time/formatTimeCodeText/formatTimeCodeText.js","../src/time/formatSeconds/formatSeconds.js","../src/time/formatSecondsPrecise/formatSecondsPrecise.js","../src/time/formatSmpte/formatSmpte.js","../src/metadata/metadataTypeToWebVtt/metadataTypeToWebVtt.js","../src/search/createFacetType.js","../src/search/parseFacetType.js","../src/shape/parseShapeType.js","../src/shape/filterShapeSource.js","../src/shape/getShapeTypeMedia.js","../src/thumbnails/findNearestThumbnail.js","../src/parseNowDate.js","../src/parseTranscodePreset.js","../src/getDocumentType.js"],"sourcesContent":["const parseKeyValuePairType = (keyValuePairType = []) => {\n const keyValuePairTypeReducer = (a, { key, value }) => ({ ...a, [key]: value });\n return keyValuePairType.reduce(keyValuePairTypeReducer, {});\n};\n\nexport default parseKeyValuePairType;\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","const parseValueList = (value) => {\n if (value === undefined) return [];\n if (value === null) return [{ value: '' }];\n if (Array.isArray(value)) {\n return value.map((valueOrObject) => {\n if (typeof valueOrObject === 'object') {\n return { value: valueOrObject.value || '', ...valueOrObject };\n }\n return { value: valueOrObject };\n });\n }\n if (value.value) return [value];\n return [{ value }];\n};\n\nconst parseValue = (fieldValue = {}) => {\n if (fieldValue && (fieldValue.value || fieldValue.name)) {\n const { value: valueList, uuid } = fieldValue;\n const value = parseValueList(valueList);\n return { value, uuid };\n }\n return { value: parseValueList(fieldValue) };\n};\n\nconst parseField = (field = {}) => {\n const { name, value } = field;\n const parsedValue = parseValue(value);\n return { name, ...parsedValue };\n};\n\nconst shouldBeField = ({ name, value }) =>\n ['string', 'boolean', 'number'].includes(typeof value) ||\n (name !== 'group' && Array.isArray(value)) ||\n value === null;\n\nconst parseGroup = (thisGroup = {}) => {\n const { name: groupName, value: groupsOrFields = {} } = thisGroup;\n // eslint-disable-next-line no-use-before-define\n const { field, group } = parseGroupsOrFields(groupsOrFields);\n return {\n name: groupName,\n group,\n field,\n };\n};\n\nconst parseGroupsOrFields = (groupsOrFields) => {\n const group = [];\n const field = [];\n Object.entries(groupsOrFields).forEach(([name, value]) => {\n if (shouldBeField({ name, value })) {\n field.push(parseField({ name, value }));\n } else if (Array.isArray(value)) {\n value.forEach(({ groupName, ...groupValue }) => {\n group.push(parseGroup({ name: groupName, value: groupValue }));\n });\n } else {\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\n/**\n * Create a MetadataType object from a metadata object\n * @param {Object} metadata={} - object with metadata to create MetadataType object of\n * @returns {Object} MetadataType\n */\nconst createMetadataType = (metadata = {}) => {\n const metadataType = {};\n if (Array.isArray(metadata)) {\n metadataType.timespan = metadata.map((thisTimeSpan) => parseTimespan(thisTimeSpan));\n } else {\n const genericTimespan = parseTimespan(metadata);\n metadataType.timespan = [genericTimespan];\n }\n return metadataType;\n};\n\nexport { createMetadataType };\n\nexport default createMetadataType;\n","export const sortTimespanList = (timespan1, timespan2) => {\n const { start: firstStart } = timespan1;\n const { start: secondStart } = timespan2;\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\nexport default sortTimespanList;\n","const 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 {\n joinValue,\n includeAttributes,\n includeFieldAttributes,\n includeValueAttributes,\n fieldAsList,\n } = options || {};\n const output = {};\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 { includeAttributes, includeGroupAttributes, flat, flatGroup, groupAsList, fieldAsList } =\n options || {};\n const { field: fieldList = [], group: groupList = [], ...attributes } = group;\n const parsedFieldList = parseFieldList(fieldList, options);\n // eslint-disable-next-line no-use-before-define\n const parsedGroupList = parseGroupList(groupList, options);\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\n/**\n * Parses timespan according to specified options.\n * The attributes can be targeted for each sub-type.\n * @param {Object} timespan={} - The timespan response from the API.\n * @param {Object} options={} - Options which change how the metadataType is parsed.\n * @param {string} options.joinValue=undefined - String to join the values, eg ','.\n * @param {boolean} options.includeAttributes=false - Include attributes on all objects.\n * @param {boolean} options.includeTimespanAttributes=false - Include attributes on timespans.\n * @param {boolean} options.includeGroupAttributes=false - Include attributes on groups.\n * @param {boolean} options.includeFieldAttributes=false - Include attributes on fields.\n * @param {boolean} options.includeValueAttributes=false - Include attributes on values.\n * @param {boolean} options.flat=false - Flatten to key/value (Note: keys may be overwritten).\n * @param {boolean} options.flatTimespan=false - Flatten timespan.\n * @param {boolean} options.flatGroup=false - Flatten group.\n * @param {boolean} options.groupAsList=false - Return groups as list.\n * @param {boolean} options.fieldAsList=false - Return fields as list.\n * @param {boolean} options.arrayOnSingle=true - Return fields as array even if single field.\n * @param {boolean} options.arrayOnSingleValue=true - Return fields as array even if single field value.\n * @returns {Object} Metadata object parsed according to options.\n */\nexport const 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","import { parseTimespan } from '../parseTimespan';\n\n/**\n * Parses timespanList according to specified options.\n * The attributes can be targeted for each sub-type.\n * @param {Object[]} timespanList - The timespanList response from the API.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {string} options.joinValue - String to join the values, eg ','.\n * @param {boolean} options.includeAttributes - Include attributes on all objects.\n * @param {boolean} options.includeMetadataAttributes - Include attributes on root.\n * @param {boolean} options.includeTimespanAttributes - Include attributes on timespans.\n * @param {boolean} options.includeGroupAttributes - Include attributes on groups.\n * @param {boolean} options.includeFieldAttributes - Include attributes on fields.\n * @param {boolean} options.includeValueAttributes - Include attributes on values.\n * @param {boolean} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {boolean} options.flatTimespan - Flatten timespan.\n * @param {boolean} options.flatGroup - Flatten group.\n * @param {boolean} options.sortTimespan - Sort timespan by start time.\n * @param {boolean} options.timespanAsList - Return timespans as list.\n * @param {boolean} options.groupAsList - Return groups as list.\n * @param {boolean} options.fieldAsList - Return fields as list.\n * @param {boolean} options.arrayOnSingle=true - Return fields as array even if single field.\n * @param {boolean} options.arrayOnSingleValue=true - Return fields as array even if single field value.\n * @returns {Object} Metadata object parsed according to options.\n */\nexport const parseTimespanList = (timespanList = [], options = {}) => {\n const { joinTimespan, flat, 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","import { sortTimespanList } from '../_utils';\nimport { parseTimespanList } from '../parseTimespanList';\n\n/**\n * Parses MetadataType according to specified options.\n * The attributes can be targeted for each sub-type.\n * @param {Object} metadataType - The MetadataType response from the API.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {string} options.joinValue - String to join the values, eg ','.\n * @param {boolean} options.includeAttributes - Include attributes on all objects.\n * @param {boolean} options.includeMetadataAttributes - Include attributes on root.\n * @param {boolean} options.includeTimespanAttributes - Include attributes on timespans.\n * @param {boolean} options.includeGroupAttributes - Include attributes on groups.\n * @param {boolean} options.includeFieldAttributes - Include attributes on fields.\n * @param {boolean} options.includeValueAttributes - Include attributes on values.\n * @param {boolean} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {boolean} options.flatTimespan - Flatten timespan.\n * @param {boolean} options.flatGroup - Flatten group.\n * @param {boolean} options.sortTimespan - Sort timespan by start time.\n * @param {boolean} options.timespanAsList - Return timespans as list.\n * @param {boolean} options.groupAsList - Return groups as list.\n * @param {boolean} options.fieldAsList - Return fields as list.\n * @param {boolean} options.arrayOnSingle=true - Return fields as array even if single field.\n * @param {boolean} options.arrayOnSingleValue=true - Return fields as array even if single field value.\n * @returns {Object} Metadata object parsed according to options.\n */\nexport const 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","import parseKeyValuePairType from '../../_utils/parseKeyValuePairType';\n\nexport const parseSimpleMetadataType = ({ field = [] } = {}) => {\n return parseKeyValuePairType(field);\n};\n","/**\n * Parses highlight timespan responses from the api into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object[]} highlightTimespan - A timespan object from the api response.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {boolean} options.arrayOnSingle=true - Return an array if there is a single value.\n * @param {boolean} options.timespanAsList=false - Return timespans as list.\n * @param {string} options.joinValue - String to join the values, eg ','.\n */\nexport 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","import { parseHighlightTimespan } from '../parseHighlightTimespan';\n\n/**\n * Parses highlight timespans responses from the api into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} highlightTimespanList - A list of timespans from the api response.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {boolean} options.arrayOnSingle=true - Return an array if there is a single value.\n * @param {string} options.joinValue - String to join the values, eg ','.\n * @param {boolean} options.timespanAsList=false - Return timespans as list.\n * @param {boolean} options.flat=false - Flatten to field-name/field-value (Note: field-values may be overwritten).\n * @param {boolean} options.flatTimespan=false - Flatten timespan to object with start/end as key.\n * @param {string} options.joinTimespan=_ - Character to join the start/end timecodes.\n */\nexport const 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","export const CONSTANT_TIMEBASES = {\n PAL: { denominator: 25, numerator: 1 },\n NTSC: { denominator: 30000, numerator: 1001 },\n NTSC30: { denominator: 30, numerator: 1 },\n 29.97: { denominator: 30000, numerator: 1001 },\n 59.94: { denominator: 60000, numerator: 1001 },\n};\n\nexport const FRAME_SEPARATORS = {\n ':': { dropFrame: false, field: 2 },\n ';': { dropFrame: true, field: 2 },\n '.': { dropFrame: false, field: 1 },\n ',': { dropFrame: true, field: 1 },\n};\n","import { CONSTANT_TIMEBASES } from '../_consts';\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","import { TimeBase } from '../TimeBase';\n\nexport const formatTimeBaseType = (timeBase) => new TimeBase(timeBase);\n","import { CONSTANT_TIMEBASES } from '../_consts';\nimport { formatTimeBaseType } from '../formatTimeBaseType';\n\nexport const 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","import { formatTimeBaseText } from '../formatTimeBaseText';\nimport { formatTimeBaseType } from '../formatTimeBaseType';\n\nexport const formatTimeBase = (timeBase) => {\n if (typeof timeBase === 'object') {\n return formatTimeBaseType(timeBase);\n }\n return formatTimeBaseText(timeBase);\n};\n","import { FRAME_SEPARATORS } from '../_consts';\nimport { TimeBase } from '../TimeBase';\n\nconst getDropFrames = (roundedFrameRate) => (roundedFrameRate === 60 ? 4 : 2);\n\nconst getRoundedFrameRate = (timeBase) => Math.round(timeBase.denominator / timeBase.numerator);\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\nconst isDropFrameTimeBase = ({ numerator, denominator }) => {\n return numerator === 1001 && (denominator === 60000 || denominator === 30000);\n};\n\nexport class TimeCode {\n constructor({ samples = 0, timeBase } = {}, { dropFrame, field = 2 } = {}) {\n if (typeof samples === 'number') {\n this.samples = samples;\n } else if (typeof samples === 'string') {\n if (samples === '-INF') {\n this.samples = -Infinity;\n } else if (samples === '+INF') {\n this.samples = Infinity;\n } else {\n this.samples = Number(samples);\n }\n } else {\n throw new Error(`samples is not number/string/-Inf/+Inf is: ${samples}`);\n }\n this.timeBase = new TimeBase(timeBase);\n this.dropFrame = dropFrame === undefined ? isDropFrameTimeBase(this.timeBase) : dropFrame;\n this.field = field;\n }\n\n add(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples + samples, timeBase: this.timeBase });\n }\n\n subtract(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples - samples, timeBase: this.timeBase });\n }\n\n conformTimeBase(conformTo) {\n let timeBase = conformTo;\n if (conformTo instanceof TimeCode === false) {\n timeBase = new TimeBase(conformTo);\n }\n const samples = Math.round(\n this.samples / (this.timeBase.toRate(false, false) / timeBase.toRate(false, false)),\n );\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode);\n }\n\n toJSON() {\n return {\n samples: this.samples,\n timeBase: this.timeBase,\n };\n }\n\n toText() {\n let timeCodeText = String(this.samples);\n const timeBaseText = this.timeBase.toText();\n if (timeBaseText !== '1') {\n timeCodeText = [this.samples, timeBaseText].join('@');\n }\n return timeCodeText;\n }\n\n toSeconds() {\n const { numerator, denominator } = this.timeBase;\n return this.samples * (numerator / denominator);\n }\n\n toTime() {\n const roundedFrameRate = getRoundedFrameRate(this.timeBase);\n const totalSamples =\n this.samples + (this.dropFrame ? countDroppedFrames(this.samples + 1, roundedFrameRate) : 0);\n\n const hours = Math.floor(totalSamples / (3600 * roundedFrameRate));\n const minutes = Math.floor(totalSamples / (60 * roundedFrameRate)) % 60;\n const seconds = Math.floor(totalSamples / roundedFrameRate) % 60;\n const frames = totalSamples % roundedFrameRate;\n const partialSeconds = frames / roundedFrameRate;\n return {\n hours,\n minutes,\n seconds,\n frames,\n partialSeconds,\n };\n }\n\n toDuration({ format } = {}) {\n const { hours, minutes, seconds } = this.toTime();\n if (typeof format === 'string') {\n if (format.toLowerCase() === 'hhmmss') {\n return [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n }\n if (hours) {\n return [\n hours.toFixed(),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n if (minutes >= 10) {\n return [minutes.toFixed().padStart(2, '0'), seconds.toFixed().padStart(2, '0')].join(':');\n }\n return [minutes.toFixed(), seconds.toFixed().padStart(2, '0')].join(':');\n }\n\n toSmpte() {\n if (this.samples === -Infinity) return '00:00:00:00';\n const { hours, minutes, seconds, frames } = this.toTime();\n const hhmmss = [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n const [frameSeparator = ':'] = Object.entries(FRAME_SEPARATORS).find((thisSeparator) => {\n const [, { dropFrame, field }] = thisSeparator;\n return dropFrame === this.dropFrame && field === this.field;\n });\n return [hhmmss, frames.toFixed().padStart(2, '0')].join(frameSeparator);\n }\n\n toFraction() {\n return `${this.samples}@${this.timeBase.denominator}:${this.timeBase.numerator}`;\n }\n}\n","import { TimeCode } from '../TimeCode';\n\nexport const formatTimeCodeType = (timeCode, options) => new TimeCode(timeCode, options);\n","import { formatTimeBaseText } from '../formatTimeBaseText';\nimport { formatTimeCodeType } from '../formatTimeCodeType';\n\nexport const 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","import { TimeCode } from '../TimeCode';\n\nexport const 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: timeBase || {} };\n return new TimeCode(timeCode, options);\n};\n","import { TimeCode } from '../TimeCode';\n\nexport const 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","import { FRAME_SEPARATORS } from '../_consts';\nimport { formatTimeBase } from '../formatTimeBase';\nimport { formatTimeCodeType } from '../formatTimeCodeType';\n\nconst getDropFrames = (roundedFrameRate) => (roundedFrameRate === 60 ? 4 : 2);\n\nconst getRoundedFrameRate = (timeBase) => Math.round(timeBase.denominator / timeBase.numerator);\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};\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\nexport const 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","import { formatTimeCodeText } from '../../time';\nimport { sortTimespanList } from '../_utils';\nimport { parseTimespan } from '../parseTimespan';\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\n/**\n * Convert subtitle groups to WebVtt subtitle format\n * @param {Object} input={}\n * @param {Object} input.metadataType - MetadataType response from API.\n * @param {string} input.subtitleGroup=stl_subtitle - Name of group containing subtitle field/text.\n * @param {string} input.subtitleField=stl_text - Name of field (text) to use for the subtitles.\n * @returns {string} WebVtt subtitles\n */\nexport const 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","export const createFacetType = (fieldList = [], options = {}) =>\n fieldList.map((field) => ({\n field,\n name: field,\n count: options.count || true,\n exclude: fieldList,\n }));\n\nexport default createFacetType;\n","export 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\nexport default parseFacetType;\n","import parseFileSize from 'filesize';\n\nimport parseKeyValuePairType from '../_utils/parseKeyValuePairType';\nimport { formatTimeBaseText, formatTimeCodeType } from '../time';\n\nconst sampleRateSymbols = { kB: 'kHz', B: 'Hz', mB: 'mHz' };\nconst bitRateSymbols = { kB: 'kbps', B: 'bps', MB: 'mbps' };\n\nconst gcd = (a, b) => (b ? gcd(b, a % b) : a);\n\nconst parseAspectRatio = ({ width, height }) => {\n const denominator = gcd(width, height);\n let widthRatio = width / denominator;\n let heightRatio = height / denominator;\n if (widthRatio > 21) {\n heightRatio = 1;\n widthRatio = (width / height).toFixed(2);\n }\n return [widthRatio, heightRatio].join(':');\n};\n\nconst parseBaseMediaInfoType = (baseMediaInfoType = {}) => {\n const { property: keyValuePairType, ...props } = baseMediaInfoType;\n const parsedKeyValuePairType = parseKeyValuePairType(keyValuePairType);\n return { ...parsedKeyValuePairType, ...props };\n};\n\nconst parseFileType = (fileType) => {\n const { uri: uriList = [], size: fileSizeBytes, hash, path, id: fileId } = fileType;\n const [uri] = uriList;\n const fileSize = fileSizeBytes !== undefined ? parseFileSize(fileSizeBytes) : '';\n const fileName = path ? path.split('/').pop() : undefined;\n return {\n uri,\n hash,\n fileSize,\n fileSizeBytes,\n path,\n fileName,\n fileId,\n };\n};\n\nconst parseContainerComponent = (containerComponent) => {\n const {\n mediaInfo = {},\n metadata = [],\n file: fileList,\n duration: durationTimeCode,\n startTimestamp,\n startTimecode,\n timeCodeTimeBase,\n } = containerComponent;\n const containerMetadata = parseKeyValuePairType(metadata);\n const containerMediaInfo = parseBaseMediaInfoType(mediaInfo);\n let { Format: containerFormat } = containerMediaInfo;\n const {\n Video_Format_List: videoFormat,\n Audio_Format_List: audioFormat,\n Text_Format_List: textFormat,\n } = containerMediaInfo;\n if (containerFormat === undefined) {\n const { format } = containerComponent;\n containerFormat = format;\n if (format && format.includes(',')) {\n const formatList = format.split(',');\n [containerFormat] = formatList;\n }\n }\n let parsedContainerComponent = {\n containerFormat,\n videoFormat,\n audioFormat,\n textFormat,\n containerMetadata,\n containerMediaInfo,\n };\n if (containerMetadata.componentOriginalFilename) {\n parsedContainerComponent.originalFilename = containerMetadata.componentOriginalFilename;\n }\n if (durationTimeCode !== undefined && durationTimeCode.samples !== 0) {\n parsedContainerComponent.durationTimeCode = formatTimeCodeType(durationTimeCode);\n parsedContainerComponent.duration = parsedContainerComponent.durationTimeCode.toDuration();\n }\n if (startTimestamp) {\n parsedContainerComponent.startTimestamp = formatTimeCodeType(startTimestamp);\n }\n if (startTimecode !== undefined && timeCodeTimeBase) {\n parsedContainerComponent.startTimecode = formatTimeCodeType({\n samples: startTimecode,\n timeBase: timeCodeTimeBase,\n });\n }\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedContainerComponent = {\n ...parsedContainerComponent,\n ...parsedFileType,\n };\n }\n return parsedContainerComponent;\n};\n\nconst parseVideoComponent = (videoComponent) => {\n const {\n codec: videoCodec,\n bitrate,\n fieldOrder,\n resolution = {},\n mediaInfo = {},\n metadata = [],\n } = videoComponent;\n const videoMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const videoMetadata = parseKeyValuePairType(metadata);\n const {\n Format: videoFormat,\n 'Frame rate': timeBaseText,\n 'Color space': colorSpace,\n 'Color primaries': colorPrimaries,\n Colorimetry: chromaSubsampling,\n } = videoMediaInfo;\n let timeBase;\n const { averageFrameRate, realBaseFrameRate } = videoComponent;\n if (realBaseFrameRate !== undefined) {\n timeBase = {\n numerator: realBaseFrameRate.denominator,\n denominator: realBaseFrameRate.numerator,\n };\n } else if (timeBaseText !== undefined) {\n timeBase = formatTimeBaseText(timeBaseText);\n } else if (averageFrameRate !== undefined) {\n timeBase = {\n numerator: averageFrameRate.denominator,\n denominator: averageFrameRate.numerator,\n };\n }\n let { 'Frame count': samples } = videoMediaInfo;\n if (samples === undefined) {\n const { numberOfPackets } = videoComponent;\n if (numberOfPackets !== undefined) samples = numberOfPackets;\n }\n let timeCode;\n let frameRate;\n let smpte;\n if (samples && timeBase) {\n timeCode = formatTimeCodeType({ samples, timeBase });\n frameRate = timeCode.timeBase.toRate(true);\n smpte = timeCode.toSmpte(true);\n }\n const { height, width } = resolution;\n const aspectRatio = parseAspectRatio(resolution);\n const dimension = `${width}x${height}`;\n const videoBitrate = bitrate ? parseFileSize(bitrate, { bits: true }) : undefined;\n return {\n videoFormat,\n dimension,\n frameRate,\n height,\n width,\n timeBase,\n timeCode,\n videoCodec,\n smpte,\n videoBitrate,\n fieldOrder,\n colorSpace,\n chromaSubsampling,\n aspectRatio,\n colorPrimaries,\n videoMetadata,\n videoMediaInfo,\n };\n};\n\nconst parseAudioComponent = (audioComponent) => {\n const {\n timeBase = {},\n channelCount: audioChannels,\n codec: audioCodec,\n mediaInfo = {},\n bitrate,\n metadata = [],\n } = audioComponent;\n const audioMediaInfo = parseBaseMediaInfoType(mediaInfo);\n const audioMetadata = parseKeyValuePairType(metadata);\n const {\n Format: audioFormat,\n Resolution: audioBitDepth,\n Bit_rate_mode: audioBitRateMode,\n } = audioMediaInfo;\n const audioSamplerateSamples = timeBase.denominator\n ? timeBase.denominator / timeBase.numerator\n : undefined;\n const audioSamplerate = audioSamplerateSamples\n ? parseFileSize(audioSamplerateSamples, { base: 10, round: 1, symbols: sampleRateSymbols })\n : undefined;\n const audioBitrate = bitrate\n ? parseFileSize(bitrate, { base: 10, round: 2, symbols: bitRateSymbols })\n : undefined;\n return {\n audioFormat,\n audioCodec,\n audioSamplerate,\n audioSamplerateSamples,\n audioBitDepth,\n audioBitrate,\n audioBitRateMode,\n audioChannels,\n audioMediaInfo,\n audioMetadata,\n };\n};\n\nconst parseBinaryComponent = (binaryComponent) => {\n const { file: fileList, mediaInfo = {}, metadata = [] } = binaryComponent;\n const binaryMetadata = parseKeyValuePairType(metadata);\n const binaryMediaInfo = parseBaseMediaInfoType(mediaInfo);\n\n let parsedBinaryComponent = { binaryMetadata, binaryMediaInfo };\n if (fileList) {\n const [fileType] = fileList;\n const parsedFileType = parseFileType(fileType);\n parsedBinaryComponent = {\n ...parsedBinaryComponent,\n ...parsedFileType,\n };\n }\n return parsedBinaryComponent;\n};\n\nconst parseShapeType = (shapeType = {}) => {\n let parsedShape = {};\n const {\n containerComponent,\n videoComponent: videoComponentList,\n audioComponent: audioComponentList,\n binaryComponent: binaryComponentList,\n mimeType: mimeTypeList = [],\n tag: tagList = [],\n } = shapeType;\n [parsedShape.tag] = tagList;\n [parsedShape.mimeType] = mimeTypeList;\n if (containerComponent) {\n const parsedContainerComponent = parseContainerComponent(containerComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedContainerComponent,\n };\n }\n if (videoComponentList) {\n const [videoComponent] = videoComponentList;\n const parsedVideoComponent = parseVideoComponent(videoComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedVideoComponent,\n };\n }\n if (audioComponentList) {\n const [audioComponent] = audioComponentList;\n const parsedAudioComponent = parseAudioComponent(audioComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedAudioComponent,\n };\n }\n if (binaryComponentList) {\n const [binaryComponent] = binaryComponentList;\n const parsedBinaryComponent = parseBinaryComponent(binaryComponent, shapeType);\n parsedShape = {\n ...parsedShape,\n ...parsedBinaryComponent,\n };\n }\n return parsedShape;\n};\n\nexport {\n parseAspectRatio,\n parseBaseMediaInfoType,\n parseFileType,\n parseContainerComponent,\n parseVideoComponent,\n parseAudioComponent,\n parseBinaryComponent,\n parseShapeType,\n};\n","import { 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\nexport const filterShapeSource = (itemType = {}, options = {}) => {\n const {\n allowedMimeTypes = DEFAULT_ALLOWED_MIME_TYPES,\n sortPriority = defaultSortPriority,\n allowedMethods = DEFAULT_ALLOWED_METHODS,\n sourceKey = 'src',\n mimeTypeKey = 'type',\n shapeKey = 'shape',\n } = options;\n const { shape: shapeList = [] } = itemType;\n const parsedShapeList = shapeList.reduce((acc, shapeType) => {\n let type;\n let src;\n const shape = parseShapeType(shapeType);\n const { uri, mimeType, containerFormat, videoCodec } = shape;\n if (mimeType) {\n type = mimeType;\n if (\n (mimeType === QUICKTIME_MIMETYPE || mimeType === M4V_MIMETYPE) &&\n (containerFormat === MP4_CONTAINER || containerFormat === MOV_CONTAINER) &&\n videoCodec === H264_CODEC\n )\n type = MP4_MIMETYPE;\n }\n if (uri) {\n if (allowedMethods) {\n const [thisMethod] = uri.split('://');\n if (allowedMethods.includes(thisMethod)) src = uri;\n } else {\n src = uri;\n }\n }\n if (src && allowedMimeTypes.includes(type)) {\n acc.push({\n [sourceKey]: src,\n [mimeTypeKey]: type,\n [shapeKey]: shape,\n });\n }\n return acc;\n }, []);\n if (typeof sortPriority === 'function') parsedShapeList.sort(defaultSortPriority);\n return parsedShapeList;\n};\n\nexport default filterShapeSource;\n","const IMAGE = 'IMAGE';\nconst AUDIO = 'AUDIO';\nconst VIDEO = 'VIDEO';\nconst DOCUMENT = 'DOCUMENT';\n\nexport const getShapeMediaType = (shapeType = {}) => {\n const { mimeType, videoCodec, audioCodec } = shapeType;\n if (!mimeType) return undefined;\n if (mimeType.startsWith('audio/')) {\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('video/')) {\n if (videoCodec !== undefined) return VIDEO;\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('image/')) return IMAGE;\n if (mimeType.endsWith('/pdf')) return DOCUMENT;\n if (mimeType.startsWith('text/')) return DOCUMENT;\n if (mimeType.endsWith('/msword')) return DOCUMENT;\n if (mimeType.endsWith('/json')) return DOCUMENT;\n if (mimeType.endsWith('/xml')) return DOCUMENT;\n return undefined;\n};\n\nexport default getShapeMediaType;\n","import { formatTimeCodeText } from '../time';\n\nexport const 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 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 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 default:\n break;\n }\n return nowDiff;\n }\n return new Date(value);\n};\n\nexport default parseNowDate;\n","import { parseAspectRatio } from './shape/parseShapeType';\nimport { formatTimeBaseType } from './time';\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 PDF = 'PDF';\nconst TEXT = 'TEXT';\nconst MSWORD = 'MSWORD';\nconst JSON = 'JSON';\nconst XML = 'XML';\n\nexport const getDocumentType = (shape = {}) => {\n const { mimeType } = shape;\n if (!mimeType) return undefined;\n if (mimeType.endsWith('/pdf')) return PDF;\n if (mimeType.startsWith('text/')) return TEXT;\n if (mimeType.endsWith('/msword')) return MSWORD;\n if (mimeType.endsWith('/json')) return JSON;\n if (mimeType.endsWith('/xml')) return XML;\n return undefined;\n};\n\nexport default getDocumentType;\n"],"names":["parseKeyValuePairType","keyValuePairType","keyValuePairTypeReducer","a","key","value","_objectSpread","reduce","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","parseValueList","undefined","Array","isArray","map","valueOrObject","parseValue","fieldValue","name","valueList","uuid","parseField","field","parsedValue","shouldBeField","includes","parseGroup","thisGroup","groupName","groupsOrFields","parseGroupsOrFields","group","Object","entries","forEach","push","groupValue","_excluded","parseTimespan","timespan","start","end","_excluded2","createMetadataType","metadata","metadataType","thisTimeSpan","genericTimespan","sortTimespanList","timespan1","timespan2","firstStart","secondStart","split","first","second","Number","options","arrayOnSingle","arrayOnSingleValue","joinValue","includeAttributes","includeValueAttributes","valueArray","thisValue","join","length","includeFieldAttributes","attributes","parsedValueList","parseFieldList","fieldList","fieldAsList","output","thisField","parsedField","currentValue","concat","includeGroupAttributes","flat","flatGroup","groupAsList","groupList","parsedFieldList","parsedGroupList","parseGroupList","assign","parsedGroup","currentField","currentGroup","includeTimespanAttributes","flatTimespan","parseTimespanList","timespanList","joinTimespan","timespanAsList","thisTimespan","parsedTimespan","parseMetadataType","includeMetadataAttributes","sortTimespan","sort","parseSimpleMetadataType","parseHighlightTimespan","opts","initialValue","parseHighlightTimespanList","highlightTimespanList","CONSTANT_TIMEBASES","PAL","denominator","numerator","NTSC","NTSC30","FRAME_SEPARATORS","dropFrame","TimeBase","constant","find","thisTimeBase","thisTimeBaseText","thisTimeBaseType","useConstant","timeBaseText","toConstant","String","round","rate","isInteger","toFixed","formatTimeBaseType","timeBase","formatTimeBaseText","keys","isNaN","Error","formatTimeBase","getDropFrames","roundedFrameRate","getRoundedFrameRate","Math","countDroppedFrames","frames","dropFrames","oneMinuteUndroppedFrames","oneMinuteDroppedFrames","tenMinuteFrames","tenMinuteChunks","floor","minuteRemainder","max","oneMinuteChunks","frameRemainder","frameChunks","isDropFrameTimeBase","TimeCode","samples","Infinity","val","conformedTimeCode","conformTimeBase","conformTo","toRate","timeCode","timeCodeText","toText","totalSamples","hours","minutes","seconds","partialSeconds","format","toTime","toLowerCase","padStart","hhmmss","thisSeparator","frameSeparator","formatTimeCodeType","formatTimeCodeText","samplesString","formatSeconds","formatSecondsPrecise","decimalPlaces","splitSmpte","smpteText","hasDropFrameSeparator","match","hhmmssff","frameOptions","splitFrames","some","n","countSamples","hh","mm","ss","ff","shouldDropMinute","shouldDropSecond","hourFrames","minuteFrames","ceil","secondFrames","frameFrames","formatSmpte","timeToCueTime","hourStr","minStr","secondsStr","partialStr","metadataTypeToWebVtt","subtitleGroup","subtitleField","parseOptions","sortedTimespans","parsedTimespans","timespanType","vttCues","startText","endText","text","startTime","endTime","createFacetType","count","exclude","parseFacetType","facetType","facetFieldReducer","sampleRateSymbols","kB","B","mB","bitRateSymbols","MB","gcd","b","parseAspectRatio","width","height","widthRatio","heightRatio","parseBaseMediaInfoType","baseMediaInfoType","property","props","parsedKeyValuePairType","parseFileType","fileType","uri","uriList","fileSizeBytes","size","hash","path","fileId","id","fileSize","parseFileSize","fileName","pop","parseContainerComponent","containerComponent","mediaInfo","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","bits","parseAudioComponent","audioComponent","audioChannels","channelCount","audioCodec","audioMediaInfo","audioMetadata","audioBitDepth","Resolution","audioBitRateMode","Bit_rate_mode","audioSamplerateSamples","audioSamplerate","base","symbols","audioBitrate","parseBinaryComponent","binaryComponent","binaryMetadata","binaryMediaInfo","parsedBinaryComponent","parseShapeType","shapeType","parsedShape","videoComponentList","audioComponentList","binaryComponentList","mimeType","mimeTypeList","tag","tagList","parsedVideoComponent","parsedAudioComponent","IMAGE_MIME_TYPES","VIDEO_MIME_TYPES","AUDIO_MIME_TYPES","DEFAULT_ALLOWED_MIME_TYPES","DEFAULT_ALLOWED_METHODS","MP4_MIMETYPE","QUICKTIME_MIMETYPE","M4V_MIMETYPE","MP4_CONTAINER","MOV_CONTAINER","H264_CODEC","PREVIEW_SHAPE_ORDER","reverse","defaultSortPriority","firstEl","shape","secondEl","indexOf","localeCompare","filterShapeSource","itemType","allowedMimeTypes","sortPriority","allowedMethods","sourceKey","mimeTypeKey","shapeKey","shapeList","parsedShapeList","acc","type","src","thisMethod","IMAGE","AUDIO","VIDEO","DOCUMENT","getShapeMediaType","startsWith","endsWith","findNearestThumbnail","tcSeconds","toSeconds","thumbnails","srcList","srcTcSeconds","url","tc","URL","pathname","nearestSrcIndex","nearestIndex","curr","currIndex","abs","parseNowDate","Date","sign","number","unit","replace","nowDiff","setHours","getHours","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","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","PDF","TEXT","MSWORD","XML","getDocumentType"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/_utils/parseKeyValuePairType.js","../src/auth/consts/ROLE_NAMES.js","../src/metadata/createMetadataType/createMetadataType.js","../src/metadata/_utils/sortTimespanList.js","../src/metadata/parseTimespan/parseTimespan.js","../src/metadata/parseTimespanList/parseTimespanList.js","../src/metadata/parseMetadataType/parseMetadataType.js","../src/metadata/parseSimpleMetadataType/parseSimpleMetadataType.js","../src/metadata/parseHighlightTimespan/parseHighlightTimespan.js","../src/metadata/parseHighlightTimespanList/parseHighlightTimespanList.js","../src/time/_consts/index.js","../src/time/TimeBase/TimeBase.js","../src/time/formatTimeBaseText/formatTimeBaseText.js","../src/time/formatTimeBaseType/formatTimeBaseType.js","../src/time/createTimeBase/createTimeBase.js","../src/time/_utils/getAmountOfFrameDrops.js","../src/time/_utils/isDropFrameTimeBase.js","../src/time/TimeCode/TimeCode.js","../src/time/_utils/getGreatestCommonDivisor.js","../src/time/formatTimeCodeSeconds/formatTimeCodeSeconds.js","../src/time/formatTimeCodeSmpte/formatTimeCodeSmpte.js","../src/time/formatTimeCodeText/formatTimeCodeText.js","../src/time/formatTimeCodeType/formatTimeCodeType.js","../src/time/createTimeCode/createTimeCode.js","../src/metadata/metadataTypeToWebVtt/metadataTypeToWebVtt.js","../src/metadata/const.js","../src/search/createFacetType.js","../src/search/parseFacetType.js","../src/shape/parseShapeType.js","../src/shape/filterShapeSource.js","../src/shape/getShapeTypeMedia.js","../src/thumbnails/findNearestThumbnail.js","../src/parseNowDate.js","../src/parseTranscodePreset.js","../src/getDocumentType.js"],"sourcesContent":["const parseKeyValuePairType = (keyValuePairType = []) => {\n const keyValuePairTypeReducer = (a, { key, value }) => ({ ...a, [key]: value });\n return keyValuePairType.reduce(keyValuePairTypeReducer, {});\n};\n\nexport default parseKeyValuePairType;\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","const COMBINED_PROPERTY_KEYS = [\n 'uuid',\n 'user',\n 'timestamp',\n 'change',\n 'conflict',\n 'mode',\n 'name',\n 'id',\n 'referenced',\n 'data',\n 'inheritance',\n];\nconst GROUP_PROPERTY_KEYS = [...COMBINED_PROPERTY_KEYS, 'cycle'];\nconst FIELD_PROPERTY_KEYS = [...COMBINED_PROPERTY_KEYS, 'value', 'reference', 'type', 'track'];\nconst FIELD_VALUE_PROPERTY_KEYS = [...COMBINED_PROPERTY_KEYS, 'value', 'lang'];\n\nconst isObject = (o) => Object.prototype.toString.call(o) === '[object Object]';\nconst isDate = (o) => Object.prototype.toString.call(o) === '[object Date]';\nconst isField = (value) => {\n const FIELD_TYPES = ['string', 'boolean', 'number'];\n const isFieldType = (v) => FIELD_TYPES.includes(typeof v);\n const isFieldObject = (v) =>\n isObject(v) && (v.value === null || isObject(v.value) || isFieldType(v.value));\n if (value === null) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.some(isField);\n }\n return isFieldType(value) || isFieldObject(value) || isDate(value);\n};\nconst isGroup = (value) => {\n const isGroupObject = (v) => isObject(v) && v.value === undefined && Object.entries(value);\n if (Array.isArray(value)) {\n return value.every(isGroup);\n }\n return isGroupObject(value);\n};\n\nconst tryPluralize = (str, arr) => str + (arr.length > 1 ? 's' : '');\n\nconst ensureKeysAreValid = (keysToCheck, keysToMatch) => {\n const unsupportedKeys = keysToCheck.filter((k) => !keysToMatch.includes(k));\n if (unsupportedKeys.length) {\n throw Error(\n `Unsupported ${tryPluralize('key', unsupportedKeys)} (${unsupportedKeys.join(', ')})`,\n );\n }\n};\n\nconst parseValue = (value) => {\n if (Array.isArray(value)) {\n throw Error('Invalid value object, cannot be array');\n }\n if ([undefined, null].includes(value)) return {};\n if (isDate(value)) return { value: value.toISOString() };\n return { value };\n};\n\nconst parseValueObject = (valueObject) => {\n ensureKeysAreValid(Object.keys(valueObject), FIELD_VALUE_PROPERTY_KEYS);\n if (Object.keys(valueObject).length === 0) {\n throw Error('Invalid value object, cannot be empty object');\n }\n const parsedValue = parseValue(valueObject?.value);\n return { ...valueObject, ...(parsedValue !== undefined ? parsedValue : {}) };\n};\nconst parseFieldValue = (value) => {\n if ([undefined, null].includes(value)) return undefined;\n if (Array.isArray(value)) return value.map(parseFieldValue);\n if (isObject(value)) return parseValueObject(value);\n return parseValue(value);\n};\nconst parseFieldObject = (fieldObject) => {\n ensureKeysAreValid(Object.keys(fieldObject), FIELD_PROPERTY_KEYS);\n const parsedFieldValue = parseFieldValue(fieldObject?.value);\n if (parsedFieldValue === undefined) {\n const { value, ...fieldObjectWithoutValue } = fieldObject;\n return fieldObjectWithoutValue;\n }\n return {\n ...fieldObject,\n value: [...(Array.isArray(parsedFieldValue) ? parsedFieldValue : [parsedFieldValue])],\n };\n};\n\nconst parseField = (field) => {\n if (isObject(field)) {\n return parseFieldObject(field);\n }\n const parsedFieldValue = parseFieldValue(field);\n if (parsedFieldValue === undefined) {\n return undefined;\n }\n return { value: [...(Array.isArray(parsedFieldValue) ? parsedFieldValue : [parsedFieldValue])] };\n};\n\nconst parseGroupsAndFields = (groupOrField) => {\n const group = [];\n const field = [];\n let groupAttributes = {};\n Object.entries(groupOrField || {}).forEach(([name, value]) => {\n if (GROUP_PROPERTY_KEYS.includes(name)) {\n groupAttributes = { ...groupAttributes, [name]: value };\n } else if (isField(value)) {\n try {\n field.push({ name, ...parseField(value) });\n } catch (error) {\n throw Error(error.message + (name ? ` for field \"${name}\"` : ''));\n }\n } else if (isGroup(value)) {\n (Array.isArray(value) ? value : [value]).forEach((v) => {\n group.push({ name, ...parseGroupsAndFields(v, name) });\n });\n } else {\n throw Error(`Unhandled value for \"${name}\"`);\n }\n });\n return {\n ...groupAttributes,\n ...(group.length > 0 ? { group } : {}),\n ...(field.length > 0 ? { field } : {}),\n };\n};\n\nconst parseTimespan = (timespan = {}) => {\n const { start = '-INF', end = '+INF', ...groupsAndFields } = timespan || {};\n const { group, field } = parseGroupsAndFields(groupsAndFields);\n return {\n ...(group ? { group } : {}),\n ...(field ? { field } : {}),\n start,\n end,\n };\n};\n\n/**\n * Create a VidiCore MetadataType from a simplified object structure\n *\n * @param {object} metadata - object to create MetadataType from\n * @returns {object} a MetadataType object\n */\nexport const createMetadataType = (metadata = {}) => {\n return {\n timespan: (Array.isArray(metadata) ? metadata : [metadata]).map((t) => parseTimespan(t)),\n };\n};\n","export const sortTimespanList = (timespan1, timespan2) => {\n const { start: firstStart } = timespan1;\n const { start: secondStart } = timespan2;\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\nexport default sortTimespanList;\n","const 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 {\n joinValue,\n includeAttributes,\n includeFieldAttributes,\n includeValueAttributes,\n fieldAsList,\n } = options || {};\n const output = {};\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 { includeAttributes, includeGroupAttributes, flat, flatGroup, groupAsList, fieldAsList } =\n options || {};\n const { field: fieldList = [], group: groupList = [], ...attributes } = group;\n const parsedFieldList = parseFieldList(fieldList, options);\n // eslint-disable-next-line no-use-before-define\n const parsedGroupList = parseGroupList(groupList, options);\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\n/**\n * Parses timespan according to specified options.\n * The attributes can be targeted for each sub-type.\n * @param {Object} [timespan={}] - A timespan from VidiCore.\n * @param {Object} [options={}] - Options which change how the metadataType is parsed.\n * @param {string} [options.joinValue=undefined] - String to join the values, eg ','.\n * @param {boolean} [options.includeAttributes=false] - Include attributes on all objects.\n * @param {boolean} [options.includeTimespanAttributes=false] - Include attributes on timespans.\n * @param {boolean} [options.includeGroupAttributes=false] - Include attributes on groups.\n * @param {boolean} [options.includeFieldAttributes=false] - Include attributes on fields.\n * @param {boolean} [options.includeValueAttributes=false] - Include attributes on values.\n * @param {boolean} [options.flat=false] - Flatten to key/value (Note: keys may be overwritten).\n * @param {boolean} [options.flatTimespan=false] - Flatten timespan.\n * @param {boolean} [options.flatGroup=false] - Flatten group.\n * @param {boolean} [options.groupAsList=false] - Return groups as list.\n * @param {boolean} [options.fieldAsList=false] - Return fields as list.\n * @param {boolean} [options.arrayOnSingle=true] - Return fields as array even if single field.\n * @param {boolean} [options.arrayOnSingleValue=true] - Return fields as array even if single field value.\n * @returns {Object} Metadata object parsed according to options.\n */\nexport const 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","import { parseTimespan } from '../parseTimespan';\n\n/**\n * Parses timespanList according to specified options.\n * The attributes can be targeted for each sub-type.\n *\n * @param {Object[]} timespanList - A timespanList from VidiCore.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {string} options.joinValue - String to join the values, eg ','.\n * @param {boolean} options.includeAttributes - Include attributes on all objects.\n * @param {boolean} options.includeMetadataAttributes - Include attributes on root.\n * @param {boolean} options.includeTimespanAttributes - Include attributes on timespans.\n * @param {boolean} options.includeGroupAttributes - Include attributes on groups.\n * @param {boolean} options.includeFieldAttributes - Include attributes on fields.\n * @param {boolean} options.includeValueAttributes - Include attributes on values.\n * @param {boolean} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {boolean} options.flatTimespan - Flatten timespan.\n * @param {boolean} options.flatGroup - Flatten group.\n * @param {boolean} options.sortTimespan - Sort timespan by start time.\n * @param {boolean} options.timespanAsList - Return timespans as list.\n * @param {boolean} options.groupAsList - Return groups as list.\n * @param {boolean} options.fieldAsList - Return fields as list.\n * @param {boolean} [options.arrayOnSingle=true] - Return fields as array even if single field.\n * @param {boolean} [options.arrayOnSingleValue=true] - Return fields as array even if single field value.\n * @returns {Object} Metadata object parsed according to options.\n */\nexport const parseTimespanList = (timespanList = [], options = {}) => {\n const { joinTimespan, flat, 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","import { sortTimespanList } from '../_utils';\nimport { parseTimespanList } from '../parseTimespanList';\n\n/**\n * Parses MetadataType according to specified options.\n * The attributes can be targeted for each sub-type.\n * @param {Object} metadataType - A MetadataType from VidiCore.\n * @param {Object} options - Options which change how the metadataType is parsed.\n * @param {string} options.joinValue - String to join the values, eg ','.\n * @param {boolean} options.includeAttributes - Include attributes on all objects.\n * @param {boolean} options.includeMetadataAttributes - Include attributes on root.\n * @param {boolean} options.includeTimespanAttributes - Include attributes on timespans.\n * @param {boolean} options.includeGroupAttributes - Include attributes on groups.\n * @param {boolean} options.includeFieldAttributes - Include attributes on fields.\n * @param {boolean} options.includeValueAttributes - Include attributes on values.\n * @param {boolean} options.flat - Flatten to key/value (Note: keys may be overwritten).\n * @param {boolean} options.flatTimespan - Flatten timespan.\n * @param {boolean} options.flatGroup - Flatten group.\n * @param {boolean} options.sortTimespan - Sort timespan by start time.\n * @param {boolean} options.timespanAsList - Return timespans as list.\n * @param {boolean} options.groupAsList - Return groups as list.\n * @param {boolean} options.fieldAsList - Return fields as list.\n * @param {boolean} [options.arrayOnSingle=true] - Return fields as array even if single field.\n * @param {boolean} [options.arrayOnSingleValue=true] - Return fields as array even if single field value.\n * @returns {Object} Metadata object parsed according to options.\n */\nexport const 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","import parseKeyValuePairType from '../../_utils/parseKeyValuePairType';\n\nexport const parseSimpleMetadataType = ({ field = [] } = {}) => {\n return parseKeyValuePairType(field);\n};\n","/**\n * Parses highlight timespan in VidiCore into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object[]} highlightTimespan - A VidiCore timespan object.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {boolean} [options.arrayOnSingle=true] - Return an array if there is a single value.\n * @param {boolean} [options.timespanAsList=false] - Return timespans as list.\n * @param {string} options.joinValue - String to join the values, eg ','.\n */\nexport const parseHighlightTimespan = ({ field = [], start, end } = {}, options = {}) => {\n const { arrayOnSingle = true, joinValue = undefined, timespanAsList = undefined } = options;\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","import { parseHighlightTimespan } from '../parseHighlightTimespan';\n\n/**\n * Parses highlight timespans from VidiCore into key/value object.\n * The attributes can be targeted for each sub-type.\n * @param {Object} highlightTimespanList - A list of timespans from VidiCore.\n * @param {Object} options - Options which change how the timespans are parsed.\n * @param {boolean} [options.arrayOnSingle=true] - Return an array if there is a single value.\n * @param {string} options.joinValue - String to join the values, eg ','.\n * @param {boolean} [options.timespanAsList=false] - Return timespans as list.\n * @param {boolean} [options.flat=false] - Flatten to field-name/field-value (Note: field-values may be overwritten).\n * @param {boolean} [options.flatTimespan=false] - Flatten timespan to object with start/end as key.\n * @param {string} [options.joinTimespan=_] - Character to join the start/end timecodes.\n */\nexport const parseHighlightTimespanList = (highlightTimespanList = [], options = {}) => {\n const { flat, timespanAsList, joinTimespan = '_', flatTimespan } = options;\n if (timespanAsList === true)\n return highlightTimespanList.map((timespan) => parseHighlightTimespan(timespan, options));\n if (flat === true || flatTimespan === true)\n return highlightTimespanList.reduce(\n (a, timespan) => ({ ...a, ...parseHighlightTimespan(timespan, options) }),\n {},\n );\n return highlightTimespanList.reduce(\n (a, timespan) => ({\n ...a,\n [[timespan.start, timespan.end].join(joinTimespan)]: parseHighlightTimespan(\n timespan,\n options,\n ),\n }),\n {},\n );\n};\n","export const MAP_CONSTANT_TO_DEN_NUM = {\n PAL: { denominator: 25, numerator: 1 },\n NTSC: { denominator: 30000, numerator: 1001 },\n NTSC30: { denominator: 30, numerator: 1 },\n 29.97: { denominator: 30000, numerator: 1001 },\n 59.94: { denominator: 60000, numerator: 1001 },\n 23.976: { denominator: 48000, numerator: 2002 },\n 23.98: { denominator: 48000, numerator: 2002 },\n};\n\nexport const TIME_BASE_CONSTANTS = Object.keys(MAP_CONSTANT_TO_DEN_NUM);\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","import { MAP_CONSTANT_TO_DEN_NUM } from '../_consts';\n\n/**\n * TimeBase class representing the TimeBaseType in VidiCore\n *\n * For more info, see the [Time bases section in VidiCore API Docs](https://apidoc.vidispine.com/latest/time.html#time-bases)\n */\nexport class TimeBase {\n /**\n * Constructor for TimeBase\n *\n * @param {object} [timeCodeType={}] A time base type object\n * @param {number} [timeCodeType.numerator=1] The numerator for the TimeBase\n * @param {number} [timeCodeType.denominator=1] The denominator for the TimeBase\n */\n constructor(timeCodeType) {\n const { numerator = 1, denominator = 1 } = timeCodeType || {};\n this.numerator = Number(numerator);\n this.denominator = Number(denominator);\n }\n\n /**\n * Get TimeBase in a constant representation (e.g. \"PAL\") if possible, otherwise undefined\n * @returns {string} Constant representation of the TimeBase\n */\n toConstant() {\n let constant;\n // If multiple equal den/num, it selects first in MAP_CONSTANT_TO_DEN_NUM\n Object.entries(MAP_CONSTANT_TO_DEN_NUM).find((timeBaseConstant) => {\n const [thisTimeBaseText, thisTimeBaseType] = timeBaseConstant;\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 /**\n * Get TimeBase as a VidiCore TimeBaseType string\n *\n * Default format: denominator(:numerator if > 1)\n * `constant` has precedence over `fraction` if both are true (e.g. NTSC > 30000:1001)\n *\n * @param {object} [options={}] For how to display it as text\n * @param {boolean} [options.constant=false] Show time base as constant (e.g. PAL)\n * @param {boolean} [options.fraction=false] Show time base as fraction (25:1) even when numerator is 1\n * @returns {string} Text representation of the TimeBase\n */\n toText(options = {}) {\n const { constant = false, fraction = false } = options || {};\n if (constant) {\n const timeBaseText = this.toConstant();\n if (timeBaseText) return timeBaseText;\n }\n if (fraction || 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 /**\n * Output TimeBase as frame rate (by default max 16 decimal places)\n *\n *\n * For `options.fixed`:\n * - `true` gives two decimal places\n * - `false` gives max amount of decimal places\n * - `number` gives that amount of decimal places\n *\n * Default format: rate with two decimals if needed (i.e. decimals are > 0)\n * Option precedence (when all true): `constant` > `rounded` > `fixed`\n *\n * @param {object} [options={}] For how to display it as rate\n * @param {boolean|number} [options.fixed=true] Amount of decimal places (true gives 2 decimal places)\n * @param {boolean} [options.constant=false] Use constant representation (if applicable)\n * @param {boolean} [options.rounded=false] Rounded to nearest integer\n *\n * @returns {number} Rate of the TimeBase\n */\n toRate(options = {}) {\n const { constant = false, rounded = false, fixed = true } = options || {};\n if (constant) {\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 if (rounded) {\n return Math.round(rate);\n }\n if (fixed === true || typeof fixed === 'number') {\n return Number(rate.toFixed(fixed === true ? 2 : fixed));\n }\n return rate;\n }\n\n /**\n * Get TimeBase in a object representation\n *\n * @returns {object} TimeBase as `{denominator, numerator}` object\n */\n toObject() {\n return {\n denominator: this.denominator,\n numerator: this.numerator,\n };\n }\n\n /**\n * @deprecated Use {@link TimeBase#toObject|toObject} instead\n *\n * @returns {object} TimeBase as `{denominator, numerator}` object\n */\n toJson() {\n // eslint-disable-next-line no-console\n console.warn('Deprecated - use toObject instead');\n return this.toObject();\n }\n}\n","import { MAP_CONSTANT_TO_DEN_NUM, TIME_BASE_CONSTANTS } from '../_consts';\nimport { TimeBase } from '../TimeBase';\n\n/**\n * Format a string representation of a time base to a TimeBase Instance\n *\n * @param {string} timeBaseText The string to format to a TimeBase instance\n * @returns {TimeBase} A TimeBase Instance\n */\nexport const formatTimeBaseText = (timeBaseText) => {\n if (timeBaseText === undefined) {\n return new TimeBase();\n }\n if (typeof timeBaseText === 'number') {\n return new TimeBase({ denominator: timeBaseText });\n }\n if (typeof timeBaseText === 'string' && timeBaseText.includes(':')) {\n const [denominator, numerator] = timeBaseText.split(':');\n return new TimeBase({ denominator, numerator });\n }\n if (TIME_BASE_CONSTANTS.includes(timeBaseText)) {\n return new TimeBase(MAP_CONSTANT_TO_DEN_NUM[timeBaseText]);\n }\n if (!['string', 'number'].includes(typeof timeBaseText) || Number.isNaN(Number(timeBaseText))) {\n throw new Error(\n `timeBaseText must be a number or ${TIME_BASE_CONSTANTS.join(',')} - is ${JSON.stringify(\n timeBaseText,\n )}`,\n );\n }\n return new TimeBase({ denominator: Number(timeBaseText) });\n};\n","import { TimeBase } from '../TimeBase';\n\n/**\n * Create a TimeBase instance of an object\n *\n * @param {object} timeBase A TimeBase object ({ numerator, denominator })\n * @returns {TimeBase} A TimeBase instance\n */\nexport const formatTimeBaseType = (timeBase) => new TimeBase(timeBase);\n","import { formatTimeBaseText } from '../formatTimeBaseText';\nimport { formatTimeBaseType } from '../formatTimeBaseType';\n\n/**\n * Create a TimeBase Instance from a string or object representation of a time base\n *\n * @param {string|object} timeBase Expressed as \"denominator:numerator\" or { numerator, denominator }\n * @returns {TimeBase} A TimeBase instance\n */\nexport const createTimeBase = (timeBase) => {\n if (typeof timeBase === 'object') {\n return formatTimeBaseType(timeBase);\n }\n return formatTimeBaseText(timeBase);\n};\n","/**\n * @private\n *\n * Drops 4 frames (0-3) for 59.97 and 2 frames (0-1) for 29.97/NTSC\n *\n * @param {TimeBase} timeBase to check\n * @returns {number} amount of frame drops for specified timeBase\n */\nexport const getAmountOfFrameDrops = (timeBase) => {\n const timeBaseConstant = timeBase.toRate({ constant: true });\n return (\n (timeBaseConstant === '59.94' && 4) || (['NTSC', '29.97'].includes(timeBaseConstant) && 2) || 0\n );\n};\n","import { getAmountOfFrameDrops } from './getAmountOfFrameDrops';\n\n/**\n * @private\n *\n * Check if TimeBase drops frames\n *\n * @param {object} timeBase TimeBase Instance to check\n * @returns {boolean} true if time base drops frames, false otherwise\n */\nexport const isDropFrameTimeBase = (timeBase) => getAmountOfFrameDrops(timeBase) > 0;\n","import { getAmountOfFrameDrops } from '../_utils/getAmountOfFrameDrops';\nimport { isDropFrameTimeBase } from '../_utils/isDropFrameTimeBase';\nimport { createTimeBase } from '../createTimeBase';\nimport { TimeBase } from '../TimeBase';\n\nconst getDroppedFramesFromSamples = ({ samples, timeBase }) => {\n const amountOfFrameDrops = getAmountOfFrameDrops(timeBase);\n if (amountOfFrameDrops === 0) return 0;\n\n const roundedFrameRate = timeBase.toRate({ rounded: true });\n const oneMinuteNotDroppedFrames = 60 * roundedFrameRate;\n const amountOfFramesToDropPerMinute = 60 * roundedFrameRate - amountOfFrameDrops;\n const tenMinuteFrames =\n 10 * (oneMinuteNotDroppedFrames - amountOfFrameDrops) + amountOfFrameDrops;\n const amountOfTenMinuteChunks = Math.floor((samples + 1) / tenMinuteFrames);\n const minuteRemainder = Math.max(\n 0,\n ((samples + 1) % tenMinuteFrames) - oneMinuteNotDroppedFrames,\n );\n const amountOfOneMinuteReminderChunks = Math.floor(\n minuteRemainder / amountOfFramesToDropPerMinute,\n );\n const frameRemainder = minuteRemainder % amountOfFramesToDropPerMinute;\n const amountOfFrameRemainderChunks = frameRemainder > 0 ? amountOfFrameDrops : 0;\n\n return (\n amountOfTenMinuteChunks * 9 * amountOfFrameDrops +\n amountOfOneMinuteReminderChunks * amountOfFrameDrops +\n amountOfFrameRemainderChunks\n );\n};\n\n/**\n * TimeCode class representing the TimeCodeType in VidiCore\n *\n * For more info, see the [Time Codes section of VidiCore API Docs](https://apidoc.vidispine.com/latest/time.html#time-codes)\n */\nexport class TimeCode {\n /**\n * Constructor for TimeCode\n *\n * @param {object} [timeCodeType={}] Object to create TimeCode of\n * @param {number} [timeCodeType.samples=0] Amount of samples for the time code\n * @param {object|string|number} [timeCodeType.timeBase={numerator: 1, denominator: 1}] The time base it should have\n * @param {object} [options={}] Options for the timeCode\n * @param {boolean} options.dropFrame If time code should be dropFrame or not (by default checks timeBase)\n * @param {string} options.frameSeparator Separator to use for frame smpte output (default \":\" for non-drop-frame and \";\" for dropFrame)\n */\n constructor(timeCodeType = {}, options = {}) {\n const { samples = 0, timeBase = new TimeBase() } = timeCodeType || {};\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 = createTimeBase(timeBase);\n this.dropFrame = options?.dropFrame ?? isDropFrameTimeBase(this.timeBase);\n this.frameSeparator = options?.frameSeparator ?? (this.dropFrame ? ';' : ':');\n }\n\n /**\n * Return this TimeCode added with the supplied timeCodeType\n * If time bases differ, it will retain the time base of this TimeCode instance\n * If supplied time code has a more granular time base - it will round down exceeding samples (hasn't reached that sample yet)\n *\n * Note: This might make you \"lose\" frames depending on granularity of time bases, e.g.\n * \"51@50\".add(\"25@25\") => \"101@50\"\n * while \"25@25\".add(\"51@50\") => \"50@25\" (not \"101@50\")\n *\n * @param {TimeCode} timeCodeType A TimeCode instance you want to add with\n * @returns A new TimeCode instance with the addition applied\n */\n add(timeCodeType) {\n if (!timeCodeType?.timeBase || timeCodeType?.samples === undefined) {\n throw Error('Invalid timeCodeType, cannot be added');\n }\n const { timeBase: { numerator, denominator } = {} } = timeCodeType;\n let conformedTimeCode = timeCodeType;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = timeCodeType.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples + samples, timeBase: this.timeBase });\n }\n\n /**\n * Return this TimeCode subtracted with the supplied timeCodeType\n * If time bases differ, it will retain the time base of the instance time code\n * If supplied time code has a more granular time base - it will round down exceeding samples (hasn't reached that sample yet)\n *\n * Note: This might make you \"lose\" frames depending on granularity of time bases, e.g.\n * \"101@50\".subtract(\"25@25\") => \"51@50\"\n * while \"50@25\".subtract(\"51@50\") => \"25@25\" (not \"49@50\")\n *\n * @param {TimeCode} timeCodeType A TimeCode instance you want to subtract with\n * @returns A new TimeCode instance with the subtraction applied\n */\n subtract(timeCodeType) {\n if (!timeCodeType?.timeBase || timeCodeType?.samples === undefined) {\n throw Error('Invalid timeCodeType, cannot be subtracted');\n }\n const { timeBase: { numerator, denominator } = {} } = timeCodeType;\n let conformedTimeCode = timeCodeType;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = timeCodeType.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples - samples, timeBase: this.timeBase });\n }\n\n /**\n * Creates a new TimeCode instance with specified timeBase and samples adjusted to that.\n *\n * If it conforms to a less granular time base - it will floor samples (hasn't reached that sample yet)\n * - e.g. \"51@50\".conformTo(\"PAL\") => \"25@PAL\" (not \"26@PAL\")\n *\n * @param {string|object} conformTo The TimeBase it should conform the TimeCode to\n * @returns A new TimeCode instance with the conformTo timeBase applied\n */\n conformTimeBase(conformTo) {\n let conformToTimeBase = conformTo;\n if (!(conformTo instanceof TimeBase)) {\n conformToTimeBase = createTimeBase(conformTo);\n }\n const samples = Math.floor(\n this.samples /\n (this.timeBase.toRate({ fixed: false }) / conformToTimeBase.toRate({ fixed: false })),\n );\n const timeCode = { samples, timeBase: conformToTimeBase };\n return new TimeCode(timeCode);\n }\n\n /**\n * Get TimeCode as a text representation\n *\n * Default format: samples@denominator(:numerator if > 1)\n * `constant` has precedence over `fraction` if both are true\n *\n * @param {object} [options={}] TimeBase toText options\n * @param {boolean} [options.includeTimeBaseForSeconds=false] include time base even if seconds\n * @param {boolean} [options.constant=false] show as constant (e.g. @PAL)\n * @param {boolean} [options.fraction=false] show as fraction (@25:1)\n * @returns Text representation of TimeCode\n */\n toText(options = {}) {\n let timeCodeText = `${this.samples}`;\n const timeBaseText = this.timeBase.toText(options);\n if (options?.includeTimeBaseForSeconds || !['1', '1:1'].includes(timeBaseText)) {\n timeCodeText = [this.samples, timeBaseText].join('@');\n }\n return timeCodeText;\n }\n\n /**\n * Get TimeCode in a units object representation\n *\n * @returns {object} in the format { hours, minutes, seconds, frames }\n */\n toUnits() {\n const totalSamples = this.samples + (this.dropFrame ? getDroppedFramesFromSamples(this) : 0);\n let roundedFrameRate = this.timeBase.toRate({ rounded: true });\n\n // Calculated without drop-frame but with 2 decimal places\n if (['23.976', '23.98'].includes(this.timeBase.toConstant())) {\n roundedFrameRate = this.timeBase.toRate({ fixed: true });\n }\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 = Math.floor(totalSamples % roundedFrameRate);\n return {\n hours,\n minutes,\n seconds,\n frames,\n };\n }\n\n /**\n * Get TimeCode in a time object representation\n * \"milliseconds\" is rounded down, if you want another representation use \"partialSeconds\"\n *\n * @returns {object} in the format { hours, minutes, seconds, milliseconds, partialSeconds }\n */\n toTime() {\n const totalSamples = this.samples + getDroppedFramesFromSamples(this);\n const { hours, minutes, seconds } = this.toUnits();\n const roundedFrameRate = this.timeBase.toRate({ rounded: true });\n const framesPrecise = totalSamples % roundedFrameRate;\n const milliseconds = Math.floor((1000 * framesPrecise) / roundedFrameRate);\n const partialSeconds = framesPrecise / roundedFrameRate;\n return {\n hours,\n minutes,\n seconds,\n milliseconds,\n partialSeconds,\n };\n }\n\n /**\n * Get TimeCode in a seconds representation\n *\n * @returns {number} the seconds\n */\n toSeconds() {\n const { numerator, denominator } = this.timeBase;\n return Math.round(1000 * +((this.samples * numerator) / denominator)) / 1000;\n }\n\n /**\n * Get TimeCode in a duration representation\n * The time unit char keys for the format string are:\n * - \"h\" for hour\n * - \"m\" for minute\n * - \"s\" for seconds\n * - \"S\" for milliseconds\n * Any other char will be kept in the duration output string.\n *\n * Add consecutive chars for zero padding.\n *\n * By default it:\n * - uses colon delimiter (e.g. for format \"hhmmss\")\n * - shows \"m:ss\" or \"h:mm:ss\" if format is undefined\n *\n * @param {object} [options={}]\n * @param {string} options.format specify format of duration string, e.g. hh:mm:ss.S for 01:23:04.5\n * @returns {string} Duration representation of the TimeCode\n */\n toDuration(options = {}) {\n const { format } = options;\n const { hours, ...rest } = this.toTime();\n let { minutes, seconds, milliseconds } = rest;\n if (!!format && typeof format !== 'string') {\n throw Error('format has to be a string');\n }\n\n const isBefore = (unit, units) =>\n !format.includes(unit) ||\n !units.some((u) => format.includes(u) && format.lastIndexOf(unit) > format.indexOf(u));\n if (\n !!format &&\n !(isBefore('h', ['m', 's', 'S']) && isBefore('m', ['s', 'S']) && isBefore('s', ['S']))\n ) {\n throw Error('format order is unsupported (has to be h, m, s then S)');\n }\n\n if (!format) {\n return `${\n hours > 0 ? `${hours}:${`${minutes}`.padStart(2, '0')}` : minutes\n }:${`${seconds}`.padStart(2, '0')}`;\n }\n\n const countConsecutiveChars = (i, arr) => {\n let j = i;\n while (arr[j] === arr[j + 1]) {\n j += 1;\n }\n return j - i + 1;\n };\n\n const timeUnitKeys = ['h', 'm', 's', 'S'];\n\n const output = [];\n [...format].forEach((c, i, arr) => {\n switch (c) {\n case 'h': {\n if (arr[i - 1] === 'h') {\n break;\n }\n const amount = countConsecutiveChars(i, arr);\n output.push(`${hours}`.padStart(amount, '0'));\n if (timeUnitKeys.includes(arr[i + amount])) {\n output.push(':');\n }\n break;\n }\n case 'm': {\n if (arr[i - 1] === 'm') {\n break;\n }\n const amount = countConsecutiveChars(i, arr);\n if (!format.includes('h')) {\n minutes *= hours * 60;\n }\n output.push(`${minutes}`.padStart(amount, '0'));\n if (timeUnitKeys.includes(arr[i + amount])) {\n output.push(':');\n }\n break;\n }\n case 's': {\n if (arr[i - 1] === 's') {\n break;\n }\n const amount = countConsecutiveChars(i, arr);\n if (!format.includes('m')) {\n seconds *= minutes * 60;\n }\n output.push(`${seconds}`.padStart(amount, '0'));\n if (timeUnitKeys.includes(arr[i + amount])) {\n output.push('.');\n }\n break;\n }\n case 'S': {\n if (arr[i - 1] === 'S') {\n break;\n }\n const amount = countConsecutiveChars(i, arr);\n if (!format.includes('s')) {\n milliseconds *= seconds * 1000;\n }\n output.push(`${Math.round(milliseconds / 10 ** (3 - amount))}`.padStart(amount, '0'));\n break;\n }\n default:\n output.push(c);\n }\n });\n return output.join('');\n }\n\n /**\n * Get TimeCode in a smpte representation\n *\n * @returns {string} Smpte representation of the TimeCode\n */\n toSmpte() {\n if (this.samples === -Infinity) return '00:00:00:00';\n const { hours, minutes, seconds, frames } = this.toUnits();\n const hhmmss = [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n return [hhmmss, `${frames}`.padStart(2, '0')].join(this.frameSeparator);\n }\n\n /**\n * Get TimeCode as a VidiCore TimeCodeType object\n *\n * @returns {object} TimeCode as `{ samples, timeBase }`\n */\n toObject() {\n return {\n samples: this.samples,\n timeBase: this.timeBase.toObject(),\n };\n }\n\n /**\n * @deprecated Use {@link TimeCode#toObject|toObject} instead\n *\n * @returns {object} TimeCode as `{ samples, timeBase }`\n */\n toJson() {\n // eslint-disable-next-line no-console\n console.warn('Deprecated - use toObject instead');\n return this.toObject();\n }\n}\n","/* eslint-disable no-self-assign */\n\n/**\n * @private\n *\n * Using Euclid's algorithm\n *\n * @param {number} num1 a number\n * @param {number} num2 another number\n * @returns {number} the greatest common divisor as a number\n */\nexport const getGreatestCommonDivisor = (num1, num2) => {\n let a = Math.abs(num1);\n let b = Math.abs(num2);\n while (a && b && a !== b) {\n if (a > b) {\n [a, b] = [a - b, b];\n } else {\n [a, b] = [a, b - a];\n }\n }\n return a || b;\n};\n","import { getGreatestCommonDivisor } from '../_utils/getGreatestCommonDivisor';\nimport { createTimeBase } from '../createTimeBase';\nimport { TimeCode } from '../TimeCode';\n\n/**\n * Format seconds to TimeCode object\n * Input time base is always 1:1 since it expects seconds as input\n *\n * Note: Max 15 digits accuracy (double precision float64), e.g.\n * - 10^6 seconds can have 10^9 decimals (nanosecond) precision\n * - 10^9 seconds can have 10^6 decimals (microsecond) precision\n * - 10^12 seconds can have 10^3 decimals (millisecond) precision\n *\n * @param {string|number} seconds With or without decimals (\".\" and \",\" are both interpreted as decimal)\n * @param {object} [options={}] Options for how to format the seconds to a TimeCode\n * @param {object|string} options.timeBase What TimeBase the resulting TimeCode should have (if unset and useGCD=false, denominator will be 10^<amount-of-decimals>)\n * @param {boolean} [options.useGCD=false] Samples and denominator are divided with GCD (ignored if timeBase is set) (e.g. 1.04 => 104@100 => 26@25)\n * @returns {TimeCode} A TimeCode instance\n */\nexport const formatTimeCodeSeconds = (seconds, options = {}) => {\n const { timeBase, useGCD = false, ...timeCodeOptions } = options;\n const secondsWithDot = `${seconds}`.replace(/,/g, '.');\n const amountOfDigits = secondsWithDot.replace('.', '').length;\n if (amountOfDigits > 16) {\n throw new Error(`Amount of second digits cannot be more than 16, is ${amountOfDigits}`);\n }\n if (Number.isNaN(+secondsWithDot)) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n let denominator = 1;\n let samples;\n if (Number.isInteger(+secondsWithDot)) {\n samples = +secondsWithDot * denominator;\n } else {\n const [, ms] = secondsWithDot.split('.');\n const decimalPlaces = Math.min(ms?.length ?? 0, 16);\n denominator *= 10 ** decimalPlaces;\n samples = Math.round(secondsWithDot * denominator);\n }\n if (!timeBase && useGCD) {\n const gcd = getGreatestCommonDivisor(denominator, samples);\n samples /= gcd;\n denominator /= gcd;\n }\n const timeCode = new TimeCode(\n { samples, timeBase: { denominator, numerator: 1 } },\n timeCodeOptions,\n );\n return timeBase\n ? timeCode.conformTimeBase(createTimeBase(timeBase === true ? 1 : timeBase))\n : timeCode;\n};\n","import { getAmountOfFrameDrops } from '../_utils/getAmountOfFrameDrops';\nimport { isDropFrameTimeBase } from '../_utils/isDropFrameTimeBase';\nimport { createTimeBase } from '../createTimeBase';\nimport { TimeCode } from '../TimeCode';\n\nconst MAP_SEPARATOR_TO_OPTIONS = {\n ':': { dropFrame: false, frameSeparator: ':' },\n '.': { dropFrame: false, frameSeparator: '.' },\n ';': { dropFrame: true, frameSeparator: ';' },\n ',': { dropFrame: true, frameSeparator: ',' },\n};\n\nexport const getDroppedFramesFromSmpte = ([hh, mm, ss, ff], samples, timeBase) => {\n const roundedFrameRate = timeBase.toRate({ rounded: true });\n const dropFrames = getAmountOfFrameDrops(timeBase);\n if (samples === 0 || dropFrames === 0) {\n return 0;\n }\n\n const shouldDropMinute = mm % 10 !== 0;\n const shouldDropSecond = shouldDropMinute && ss === 0;\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(`Frame does not exist for ${timeBase.toRate({ constant: true })} drop-frame`);\n }\n\n const frameFrames = shouldDropSecond ? ff - dropFrames : ff;\n\n const samplesWithoutDroppedFrames = hourFrames + minuteFrames + secondFrames + frameFrames;\n\n return samples - samplesWithoutDroppedFrames;\n};\n\nconst splitSmpte = (smpte) => {\n const [nonColonFrameSeparator] = smpte?.match(/[^0-9:\\-_]/) || [];\n\n let smpteValues = [];\n let options = { frameSeparator: ':', dropFrame: false };\n if (nonColonFrameSeparator) {\n const [hhmmss, ff] = smpte.split(nonColonFrameSeparator);\n smpteValues = [...hhmmss.split(':'), ff];\n options = MAP_SEPARATOR_TO_OPTIONS[nonColonFrameSeparator] || {};\n } else {\n smpteValues = smpte.split(':');\n }\n\n smpteValues = smpteValues.map(Number);\n\n if (smpteValues.length !== 4) {\n throw new Error('Invalid format, must be \"##:##:##:##');\n }\n if (smpteValues.some((n) => Number.isNaN(n))) {\n throw new Error('Invalid format, values must be numbers');\n }\n return [smpteValues, options];\n};\n\nconst getSamplesFromSmpte = (smpteValues, timeBase, dropFrame) => {\n const [hh, mm, ss, ff] = smpteValues;\n const roundedFrameRate = timeBase.toRate({ rounded: true });\n const samples =\n hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;\n return samples - (dropFrame ? getDroppedFramesFromSmpte(smpteValues, samples, timeBase) : 0);\n};\n\n// Better naming than \"useValueExcess\" and \"useValueTruncate\" must exist\n\nconst EXCEEDING_OPTIONS = ['error', 'add', 'ignore'];\n\n/**\n * Format smpte text to a TimeCode Instance\n *\n * exceedingMode:\n * - \"overflow\" exceeding values will be kept (e.g. PAL and 00:00:00:25 => 00:00:01:00)\n * - \"truncate\" exceeding values will be truncated (e.g. PAL and 00:00:00:25 => 00:00:00:24)\n * - \"error\" exceeding values will throw error (e.g. PAL and 00:00:00:25 => Error)\n *\n * @param {string} smpte String representation of smpte\n * @param {object} [options={}] What options to use for creating the time code from smpte (all not specified below are passed to the TimeCode constructor)\n * @param {object|string|number} options.timeBase TimeBase of smpte (and consequently TimeBase of output TimeCode)\n * @param {string} [options.exceedingMode=error] How to handle exceeding values (`overflow|truncate|error`)\n * @param {boolean} options.dropFrame If it should parse and create time code using dropFrame\n * @param {string} options.frameSeparator What frame separator the TimeCode should store (defaults to what the smpte has)\n * @returns {TimeCode} A TimeCode instance\n */\nexport const formatTimeCodeSmpte = (smpte, options = {}) => {\n const { exceedingMode = 'error', timeBase, ...timeCodeOptions } = options;\n if ([null, undefined].includes(smpte)) {\n throw new Error(`smpte cannot be undefined or null`);\n }\n if (typeof smpte !== 'string') {\n throw new Error(`smpte must be a string, is ${JSON.stringify(smpte)}`);\n }\n\n const [smpteValues, timeCodeOptionsFromSmpte] = splitSmpte(smpte);\n const timeBaseInstance = createTimeBase(timeBase);\n\n const mergedOptions = {\n ...timeCodeOptionsFromSmpte,\n dropFrame: isDropFrameTimeBase(timeBaseInstance),\n ...timeCodeOptions,\n };\n\n const roundedFrameRate = timeBaseInstance.toRate({ rounded: true });\n const maxFrame = Math.max(0, roundedFrameRate - 1);\n\n if (smpteValues.some((v) => v < 0)) {\n throw new Error('Negative values are not supported');\n }\n\n let samples;\n switch (exceedingMode) {\n case 'error': {\n const [hours, minutes, seconds, frames] = smpteValues;\n if (hours >= 100) {\n throw Error('Minutes has to be less than 60');\n }\n if (minutes >= 60) {\n throw Error('Minutes has to be less than 60');\n }\n if (seconds >= 60) {\n throw Error('Seconds has to be less than 60');\n }\n if (frames > maxFrame) {\n throw Error(`Frames has to be less or equal to ${maxFrame}`);\n }\n samples = getSamplesFromSmpte(smpteValues, timeBaseInstance, mergedOptions?.dropFrame);\n break;\n }\n case 'ignore': {\n const [hours, minutes, seconds, frames] = smpteValues;\n const truncatedSmpteValues = [\n Math.min(100, hours),\n Math.min(59, minutes),\n Math.min(59, seconds),\n Math.min(maxFrame, frames),\n ];\n samples = getSamplesFromSmpte(\n truncatedSmpteValues,\n timeBaseInstance,\n mergedOptions?.dropFrame,\n );\n break;\n }\n case 'add': {\n samples = getSamplesFromSmpte(smpteValues, timeBaseInstance, mergedOptions?.dropFrame);\n break;\n }\n default: {\n throw new Error(`Invalid exceedingMode, options are ${JSON.stringify(EXCEEDING_OPTIONS)}`);\n }\n }\n\n return new TimeCode({ samples, timeBase: timeBaseInstance }, mergedOptions);\n};\n","import { createTimeBase } from '../createTimeBase';\nimport { formatTimeBaseText } from '../formatTimeBaseText';\nimport { TimeBase } from '../TimeBase';\nimport { TimeCode } from '../TimeCode';\n\n/**\n * Format text to a TimeCode instance\n *\n * @param {string} timeCodeText A time code text (e.g. \"25@PAL\")\n * @param {object} [options={}] Options for how to format\n * @param {object|string} options.timeBase The time base the returned TimeCode should have\n * @returns {TimeCode} A TimeCode instance\n */\nexport const formatTimeCodeText = (timeCodeText, options) => {\n const { timeBase, ...timeCodeOptions } = options || {};\n let timeCodeObject;\n\n if (timeCodeText === undefined) {\n timeCodeObject = { samples: 0 };\n } else if (typeof timeCodeText === 'number') {\n timeCodeObject = { samples: timeCodeText };\n } else if (timeCodeText.includes('@')) {\n const [samplesString, timeBaseText] = timeCodeText.split('@');\n const samples = Number(samplesString);\n timeCodeObject = { samples, timeBase: formatTimeBaseText(timeBaseText) };\n } else if (timeCodeText === '-INF') {\n timeCodeObject = { samples: -Infinity };\n } else if (timeCodeText === '+INF') {\n timeCodeObject = { samples: Infinity };\n } else {\n timeCodeObject = { samples: Number(timeCodeText) };\n }\n\n if (\n Number.isNaN(timeCodeObject?.samples) ||\n (timeCodeObject.timeBase && !(timeCodeObject.timeBase instanceof TimeBase))\n ) {\n throw new Error(`timeCodeText must be a number or sample@timeBase - is ${timeCodeText}`);\n }\n const timeCode = new TimeCode(timeCodeObject, timeCodeOptions);\n\n return timeBase ? timeCode.conformTimeBase(createTimeBase(timeBase)) : timeCode;\n};\n","import { TimeCode } from '../TimeCode';\n\n/**\n * Format an object to a TimeCode instance\n *\n * @param {object} timeCode To create TimeCode instance of\n * @param {object} options For the TimeCode constructor\n * @returns {TimeCode} A TimeCode instance\n */\nexport const formatTimeCodeType = (timeCode, options) => new TimeCode(timeCode, options);\n","import { formatTimeCodeSeconds } from '../formatTimeCodeSeconds';\nimport { formatTimeCodeSmpte } from '../formatTimeCodeSmpte';\nimport { formatTimeCodeText } from '../formatTimeCodeText';\nimport { formatTimeCodeType } from '../formatTimeCodeType';\n\nconst isObject = (o) => Object.prototype.toString.call(o) === '[object Object]';\nconst isString = (s) => typeof s === 'string';\nconst hasSmpteFormat = (s) =>\n isString(s) && !!s.match(/^(\\d\\d+):(\\d\\d+):(\\d\\d+)(:|;|\\.|,)(\\d\\d+)$/);\nconst isNumber = (s) => !Number.isNaN(Number(s));\n\n/**\n * Create a TimeCode instance from smpte, seconds/samples, timeCode object or string\n *\n * @param {object|string|number} timeCode Smpte, seconds/samples, timeCode object or string\n * @param {object} [options={}] For the format functions\n * @returns {TimeCode} A TimeCode instance\n */\nexport const createTimeCode = (timeCode, options) => {\n if (isObject(timeCode)) return formatTimeCodeType(timeCode, options);\n if (hasSmpteFormat(timeCode)) return formatTimeCodeSmpte(timeCode, options);\n if (isNumber(timeCode)) return formatTimeCodeSeconds(timeCode, options);\n return formatTimeCodeText(timeCode, options);\n};\n","import { formatTimeCodeText } from '../../time';\nimport { sortTimespanList } from '../_utils';\nimport { parseTimespan } from '../parseTimespan';\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\n/**\n * Convert subtitle groups to WebVtt subtitle format\n * @param {Object} [input={}]\n * @param {Object} input.metadataType - MetadataType response from API.\n * @param {string} [input.subtitleGroup=stl_subtitle] - Name of group containing subtitle field/text.\n * @param {string} [input.subtitleField=stl_text] - Name of field (text) to use for the subtitles.\n * @returns {string} WebVtt subtitles\n */\nexport const 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","export const SYSTEM_FIELDGROUPS = [\n 'stl_subtitle',\n 'stl_tti',\n 'stl_gsi',\n 'mrk_marker',\n 'pho_validation',\n 'pho_resource',\n 'pho_error',\n 'facedetect_rect',\n 'facedetect_face',\n 'originalTrackFilename',\n 'stl_gsiHeader',\n];\n\nexport const SYSTEM_FIELDS = [\n 'title',\n 'user',\n 'shapeTag',\n 'representativeThumbnail',\n 'representativeThumbnailNoAuth',\n 'representativeItems',\n 'itemId',\n 'collectionId',\n 'mediaType',\n 'mimeType',\n 'created',\n 'startTimeCode',\n 'startSeconds',\n 'fieldValidationError',\n 'schemaValidationError',\n 'originalFilename',\n 'originalUri',\n 'originalAudioCodec',\n 'originalVideoCodec',\n 'originalHeight',\n 'originalWidth',\n 'originalFormat',\n 'durationSeconds',\n 'durationTimeCode',\n 'solr-index',\n '__user',\n '__collection',\n '__collection_size',\n '__ancestor_collection',\n '__ancestor_collection_size',\n '__shape',\n '__shape_size',\n '__shape_last_added',\n '__placeholder_shape_size',\n '__version',\n '__version_count',\n '__storage',\n '__storage_size',\n '__shapetag_{tag}_hash_{hash}',\n '__storage_{tag}',\n '__storage_{tag}_size',\n '__storagegroup',\n '__storagegroup_size',\n '__sequence',\n '__sequence_size',\n '__metadata_last_modified',\n '__external_id',\n '__deletion_lock_id',\n '__deletion_lock_expiry',\n '__child_collection',\n '__child_collection_size',\n '__parent_collection',\n '__parent_collection_size',\n '__items_size',\n 'stl_text',\n 'stl_justification',\n 'stl_xrelative',\n 'stl_yrelative',\n 'stl_vertical',\n 'stl_verticalbase',\n 'stl_horizontalbase',\n 'stl_sizerelative',\n 'stl_color',\n 'stl_outline',\n 'stl_outlinecolor',\n 'stl_outlinesize',\n 'stl_font',\n 'stl_service',\n 'stl_tti',\n 'stl_gsi',\n 'cct',\n 'tcd',\n 'tcf',\n 'oet',\n 'cd',\n 'mnc',\n 'cpn',\n 'dfc',\n 'tcp',\n 'tcs',\n 'tet',\n 'tnb',\n 'tnd',\n 'en',\n 'co',\n 'tng',\n 'rd',\n 'mnr',\n 'dsc',\n 'opt',\n 'lc',\n 'tpt',\n 'tn',\n 'slr',\n 'tns',\n 'rn',\n 'pub',\n 'dsn',\n 'ecd',\n 'mrk_zerolength',\n 'mrk_text',\n 'mrk_color',\n 'pho_resource_name',\n 'pho_error_level',\n 'pho_error_code',\n 'pho_error_description',\n 'facedetect_rect_width',\n 'facedetect_rect_height',\n 'facedetect_rect_y',\n 'facedetect_rect_x',\n 'facedetect_pid',\n 'facedetect_rect',\n 'trackId',\n 'eidr_actor',\n 'eidr_alternateId',\n 'eidr_countryOfOrigin',\n 'eidr_director',\n 'eidr_id',\n 'eidr_referentType',\n 'eidr_releaseDate',\n 'eidr_resourceName',\n 'eidr_status',\n 'eidr_sync',\n 'ttml_div',\n 'ttml_root',\n 'vxa_collection_id',\n 'vxaId',\n 'vxaLocalPath',\n 'tco',\n 'cs',\n 'ebn',\n 'tf',\n 'cf',\n 'sgn',\n 'tci',\n 'jc',\n 'vp',\n 'sn',\n];\n","export const createFacetType = (fieldList = [], options = {}) =>\n fieldList.map((field) => ({\n field,\n name: field,\n count: options.count || true,\n exclude: fieldList,\n }));\n\nexport default createFacetType;\n","export 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\nexport default parseFacetType;\n","import parseFileSize from 'filesize';\n\nimport parseKeyValuePairType from '../_utils/parseKeyValuePairType';\nimport { formatTimeBaseText, formatTimeCodeType } from '../time';\n\nconst sampleRateSymbols = { kB: 'kHz', B: 'Hz', mB: 'mHz' };\nconst bitRateSymbols = { kB: 'kbps', B: 'bps', MB: 'mbps' };\n\nconst gcd = (a, b) => (b ? gcd(b, a % b) : a);\n\nconst parseAspectRatio = ({ width, height }) => {\n const denominator = gcd(width, height);\n let widthRatio = width / denominator;\n let heightRatio = height / denominator;\n if (widthRatio > 21) {\n heightRatio = 1;\n widthRatio = (width / height).toFixed(2);\n }\n return [widthRatio, heightRatio].join(':');\n};\n\nconst parseBaseMediaInfoType = (baseMediaInfoType = {}) => {\n const { property: keyValuePairType, ...props } = baseMediaInfoType;\n const parsedKeyValuePairType = parseKeyValuePairType(keyValuePairType);\n return { ...parsedKeyValuePairType, ...props };\n};\n\nconst parseFileType = (fileType) => {\n const { uri: uriList = [], size: fileSizeBytes, hash, path, id: fileId } = fileType;\n const [uri] = uriList;\n const fileSize = fileSizeBytes !== undefined ? parseFileSize(fileSizeBytes) : '';\n const fileName = path ? path.split('/').pop() : undefined;\n return {\n uri,\n hash,\n fileSize,\n fileSizeBytes,\n path,\n fileName,\n fileId,\n };\n};\n\nconst parseContainerComponent = (containerComponent) => {\n const {\n mediaInfo = {},\n metadata = [],\n file: fileList,\n duration: durationTimeCode,\n startTimestamp,\n startTimecode,\n timeCodeTimeBase,\n } = containerComponent;\n const containerMetadata = parseKeyValuePairType(metadata);\n const containerMediaInfo = parseBaseMediaInfoType(mediaInfo);\n let { Format: containerFormat } = containerMediaInfo;\n const {\n Video_Format_List: videoFormat,\n Audio_Format_List: audioFormat,\n Text_Format_List: textFormat,\n } = containerMediaInfo;\n if (containerFormat === undefined) {\n const { format } = containerComponent;\n containerFormat = format;\n if (format && format.includes(',')) {\n const formatList = format.split(',');\n [containerFormat] = formatList;\n }\n }\n let parsedContainerComponent = {\n containerFormat,\n videoFormat,\n audioFormat,\n textFormat,\n containerMetadata,\n containerMediaInfo,\n };\n if (containerMetadata.componentOriginalFilename) {\n parsedContainerComponent.originalFilename = containerMetadata.componentOriginalFilename;\n }\n if (durationTimeCode !== undefined && durationTimeCode.samples !== 0) {\n const timeCode = formatTimeCodeType(durationTimeCode);\n parsedContainerComponent.durationTimeCode = timeCode.toObject();\n parsedContainerComponent.duration = timeCode.toDuration();\n }\n if (startTimestamp) {\n parsedContainerComponent.startTimestamp = formatTimeCodeType(startTimestamp).toObject();\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({ constant: true });\n smpte = timeCode.toSmpte();\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 { 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\nexport const filterShapeSource = (itemType = {}, options = {}) => {\n const {\n allowedMimeTypes = DEFAULT_ALLOWED_MIME_TYPES,\n sortPriority = defaultSortPriority,\n allowedMethods = DEFAULT_ALLOWED_METHODS,\n sourceKey = 'src',\n mimeTypeKey = 'type',\n shapeKey = 'shape',\n } = options;\n const { shape: shapeList = [] } = itemType;\n const parsedShapeList = shapeList.reduce((acc, shapeType) => {\n let type;\n let src;\n const shape = parseShapeType(shapeType);\n const { uri, mimeType, containerFormat, videoCodec } = shape;\n if (mimeType) {\n type = mimeType;\n if (\n (mimeType === QUICKTIME_MIMETYPE || mimeType === M4V_MIMETYPE) &&\n (containerFormat === MP4_CONTAINER || containerFormat === MOV_CONTAINER) &&\n videoCodec === H264_CODEC\n )\n type = MP4_MIMETYPE;\n }\n if (uri) {\n if (allowedMethods) {\n const [thisMethod] = uri.split('://');\n if (allowedMethods.includes(thisMethod)) src = uri;\n } else {\n src = uri;\n }\n }\n if (src && allowedMimeTypes.includes(type)) {\n acc.push({\n [sourceKey]: src,\n [mimeTypeKey]: type,\n [shapeKey]: shape,\n });\n }\n return acc;\n }, []);\n if (typeof sortPriority === 'function') parsedShapeList.sort(defaultSortPriority);\n return parsedShapeList;\n};\n\nexport default filterShapeSource;\n","const IMAGE = 'IMAGE';\nconst AUDIO = 'AUDIO';\nconst VIDEO = 'VIDEO';\nconst DOCUMENT = 'DOCUMENT';\nconst BINARY = 'BINARY';\n\nexport const getShapeMediaType = (shapeType = {}) => {\n const { mimeType, videoCodec, audioCodec } = shapeType;\n if (!mimeType) return undefined;\n if (mimeType.startsWith('audio/')) {\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('video/')) {\n if (videoCodec !== undefined) return VIDEO;\n if (audioCodec !== undefined) return AUDIO;\n }\n if (mimeType.startsWith('image/')) return IMAGE;\n if (mimeType.endsWith('/pdf')) return DOCUMENT;\n if (mimeType.startsWith('text/')) return DOCUMENT;\n if (mimeType.endsWith('/msword')) return DOCUMENT;\n if (mimeType.endsWith('/json')) return DOCUMENT;\n if (mimeType.endsWith('/xml')) return DOCUMENT;\n if (mimeType.endsWith('/octet-stream')) return BINARY;\n return undefined;\n};\n\nexport default getShapeMediaType;\n","import { formatTimeCodeText } from '../time';\n\nexport const 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 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 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 default:\n break;\n }\n return nowDiff;\n }\n return new Date(value);\n};\n\nexport default parseNowDate;\n","import { parseAspectRatio } from './shape/parseShapeType';\nimport { formatTimeBaseType } from './time';\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({ constant: 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({ constant: 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 PDF = 'PDF';\nconst TEXT = 'TEXT';\nconst MSWORD = 'MSWORD';\nconst JSON = 'JSON';\nconst XML = 'XML';\n\nexport const getDocumentType = (shape = {}) => {\n const { mimeType } = shape;\n if (!mimeType) return undefined;\n if (mimeType.endsWith('/pdf')) return PDF;\n if (mimeType.startsWith('text/')) return TEXT;\n if (mimeType.endsWith('/msword')) return MSWORD;\n if (mimeType.endsWith('/json')) return JSON;\n if (mimeType.endsWith('/xml')) return XML;\n return undefined;\n};\n\nexport default getDocumentType;\n"],"names":["parseKeyValuePairType","keyValuePairType","keyValuePairTypeReducer","a","key","value","_objectSpread","reduce","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","COMBINED_PROPERTY_KEYS","GROUP_PROPERTY_KEYS","FIELD_PROPERTY_KEYS","FIELD_VALUE_PROPERTY_KEYS","isObject","o","Object","prototype","toString","call","isDate","isField","FIELD_TYPES","isFieldType","v","includes","isFieldObject","Array","isArray","some","isGroup","isGroupObject","undefined","entries","every","tryPluralize","str","arr","length","ensureKeysAreValid","keysToCheck","keysToMatch","unsupportedKeys","filter","k","Error","join","parseValue","toISOString","parseValueObject","valueObject","keys","parsedValue","parseFieldValue","map","parseFieldObject","fieldObject","parsedFieldValue","fieldObjectWithoutValue","_excluded","parseField","field","parseGroupsAndFields","groupOrField","group","groupAttributes","forEach","name","push","error","message","parseTimespan","timespan","start","end","groupsAndFields","_excluded2","createMetadataType","metadata","t","sortTimespanList","timespan1","timespan2","firstStart","secondStart","split","first","second","Number","parseValueList","valueList","options","arrayOnSingle","arrayOnSingleValue","joinValue","includeAttributes","includeValueAttributes","valueArray","thisValue","includeFieldAttributes","attributes","parsedValueList","parseFieldList","fieldList","fieldAsList","output","thisField","parsedField","currentValue","concat","parseGroup","includeGroupAttributes","flat","flatGroup","groupAsList","groupList","parsedFieldList","parsedGroupList","parseGroupList","assign","thisGroup","parsedGroup","currentField","currentGroup","includeTimespanAttributes","flatTimespan","parseTimespanList","timespanList","joinTimespan","timespanAsList","thisTimespan","parsedTimespan","parseMetadataType","metadataType","includeMetadataAttributes","sortTimespan","sort","parseSimpleMetadataType","parseHighlightTimespan","initialValue","fieldValue","parseHighlightTimespanList","highlightTimespanList","MAP_CONSTANT_TO_DEN_NUM","PAL","denominator","numerator","NTSC","NTSC30","TIME_BASE_CONSTANTS","TimeBase","timeCodeType","constant","find","timeBaseConstant","thisTimeBaseText","thisTimeBaseType","fraction","timeBaseText","toConstant","String","rounded","fixed","rate","isInteger","Math","round","toFixed","console","warn","toObject","formatTimeBaseText","isNaN","JSON","stringify","formatTimeBaseType","timeBase","createTimeBase","getAmountOfFrameDrops","toRate","isDropFrameTimeBase","getDroppedFramesFromSamples","samples","amountOfFrameDrops","roundedFrameRate","oneMinuteNotDroppedFrames","amountOfFramesToDropPerMinute","tenMinuteFrames","amountOfTenMinuteChunks","floor","minuteRemainder","max","amountOfOneMinuteReminderChunks","frameRemainder","amountOfFrameRemainderChunks","TimeCode","Infinity","dropFrame","frameSeparator","conformedTimeCode","conformTimeBase","conformTo","conformToTimeBase","timeCode","timeCodeText","toText","includeTimeBaseForSeconds","totalSamples","hours","minutes","seconds","frames","toUnits","framesPrecise","milliseconds","partialSeconds","format","toTime","rest","isBefore","unit","units","u","lastIndexOf","indexOf","padStart","countConsecutiveChars","i","j","timeUnitKeys","c","amount","hhmmss","getGreatestCommonDivisor","num1","num2","abs","b","formatTimeCodeSeconds","useGCD","timeCodeOptions","secondsWithDot","replace","amountOfDigits","ms","decimalPlaces","min","gcd","MAP_SEPARATOR_TO_OPTIONS","getDroppedFramesFromSmpte","hh","mm","ss","ff","dropFrames","shouldDropMinute","shouldDropSecond","hourFrames","minuteFrames","ceil","secondFrames","frameFrames","samplesWithoutDroppedFrames","splitSmpte","smpte","match","nonColonFrameSeparator","smpteValues","n","getSamplesFromSmpte","EXCEEDING_OPTIONS","formatTimeCodeSmpte","exceedingMode","timeCodeOptionsFromSmpte","timeBaseInstance","mergedOptions","maxFrame","truncatedSmpteValues","formatTimeCodeText","timeCodeObject","samplesString","formatTimeCodeType","isString","s","hasSmpteFormat","isNumber","createTimeCode","timeToCueTime","hourStr","minStr","secondsStr","partialStr","metadataTypeToWebVtt","subtitleGroup","subtitleField","parseOptions","sortedTimespans","parsedTimespans","timespanType","vttCues","startText","endText","text","startTime","endTime","SYSTEM_FIELDGROUPS","SYSTEM_FIELDS","createFacetType","count","exclude","parseFacetType","facetType","facetFieldReducer","sampleRateSymbols","kB","B","mB","bitRateSymbols","MB","parseAspectRatio","width","height","widthRatio","heightRatio","parseBaseMediaInfoType","baseMediaInfoType","property","props","parsedKeyValuePairType","parseFileType","fileType","uri","uriList","fileSizeBytes","size","hash","path","fileId","id","fileSize","parseFileSize","fileName","pop","parseContainerComponent","containerComponent","mediaInfo","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","toSmpte","aspectRatio","dimension","videoBitrate","bits","parseAudioComponent","audioComponent","audioChannels","channelCount","audioCodec","audioMediaInfo","audioMetadata","audioBitDepth","Resolution","audioBitRateMode","Bit_rate_mode","audioSamplerateSamples","audioSamplerate","base","symbols","audioBitrate","parseBinaryComponent","binaryComponent","binaryMetadata","binaryMediaInfo","parsedBinaryComponent","parseShapeType","shapeType","parsedShape","videoComponentList","audioComponentList","binaryComponentList","mimeType","mimeTypeList","tag","tagList","parsedVideoComponent","parsedAudioComponent","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","toLowerCase","localeCompare","filterShapeSource","itemType","allowedMimeTypes","sortPriority","allowedMethods","sourceKey","mimeTypeKey","shapeKey","shapeList","parsedShapeList","acc","type","src","thisMethod","IMAGE","AUDIO","VIDEO","DOCUMENT","BINARY","getShapeMediaType","startsWith","endsWith","findNearestThumbnail","tcSeconds","toSeconds","thumbnails","srcList","srcTcSeconds","url","tc","URL","pathname","nearestSrcIndex","nearestIndex","curr","currIndex","parseNowDate","Date","sign","number","nowDiff","setHours","getHours","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","parseMediaConvertPreset","transcodePresetType","description","mediaconvert","outputSetting","mc","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","PDF","TEXT","MSWORD","XML","getDocumentType"],"mappings":"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"}