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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/_utils/parseKeyValuePairType.js","../src/auth/consts/ROLE_NAMES.js","../src/metadata/createMetadataType.js","../src/metadata/_utils/sortTimespanList.js","../src/metadata/parseTimespan.js","../src/metadata/parseTimespanList.js","../src/metadata/parseMetadataType.js","../src/metadata/parseSimpleMetadataType.js","../src/metadata/parseHighlightTimespan.js","../src/metadata/parseHighlightTimespanList.js","../src/time/consts.js","../src/time/time.js","../src/metadata/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 */\nconst parseTimespan = (timespan = {}, options = {}) => {\n const {\n includeAttributes,\n includeTimespanAttributes,\n flat,\n flatTimespan,\n groupAsList,\n fieldAsList,\n } = options || {};\n const { field: fieldList = [], group: groupList = [], ...attributes } = timespan;\n const field = parseFieldList(fieldList, options);\n const group = parseGroupList(groupList, options);\n const output = {};\n if (includeAttributes || includeTimespanAttributes) {\n Object.assign(output, attributes);\n }\n if (flat || flatTimespan) {\n if (groupAsList) {\n Object.assign(output, { group });\n } else {\n Object.assign(output, group);\n }\n if (fieldAsList) {\n Object.assign(output, { field });\n } else {\n Object.assign(output, field);\n }\n } else {\n Object.assign(output, { field });\n Object.assign(output, { group });\n }\n return output;\n};\n\nexport default parseTimespan;\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 */\nconst 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\nexport default parseTimespanList;\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 */\nconst parseMetadataType = (metadataType = {}, options = {}) => {\n const { includeAttributes, includeMetadataAttributes, sortTimespan } = options || {};\n const { timespan: timespanList = [], ...attributes } = metadataType || {};\n if (sortTimespan) timespanList.sort(sortTimespanList);\n const timespan = parseTimespanList(timespanList, options);\n if (includeAttributes || includeMetadataAttributes) {\n Object.assign(timespan, attributes);\n }\n return timespan;\n};\n\nexport default parseMetadataType;\n","import parseKeyValuePairType from '../_utils/parseKeyValuePairType';\n\nexport const parseSimpleMetadataType = ({ field = [] } = {}) => {\n return parseKeyValuePairType(field);\n};\n\nexport default parseSimpleMetadataType;\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 */\nconst 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\nexport default parseHighlightTimespan;\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 */\nconst parseHighlightTimespanList = (highlightTimespanList = [], opts = {}) => {\n const { flat, timespanAsList, joinTimespan = '_', flatTimespan } = opts;\n if (timespanAsList === true)\n return highlightTimespanList.map((timespan) => parseHighlightTimespan(timespan, opts));\n if (flat === true || flatTimespan === true)\n return highlightTimespanList.reduce(\n (a, timespan) => ({ ...a, ...parseHighlightTimespan(timespan, opts) }),\n {},\n );\n return highlightTimespanList.reduce(\n (a, timespan) => ({\n ...a,\n [[timespan.start, timespan.end].join(joinTimespan)]: parseHighlightTimespan(timespan, opts),\n }),\n {},\n );\n};\n\nexport default parseHighlightTimespanList;\n","const PAL = 'PAL';\nconst NTSC = 'NTSC';\nconst NTSC30 = 'NTSC30';\n\nexport const CONSTANT_TIMEBASES = {\n [PAL]: { denominator: 25, numerator: 1 },\n [NTSC]: { denominator: 30000, numerator: 1001 },\n [NTSC30]: { denominator: 30, numerator: 1 },\n 29.97: { denominator: 30000, numerator: 1001 },\n 59.94: { denominator: 60000, numerator: 1001 },\n};\n\nexport const FRAME_SEPARATORS = {\n ':': { dropFrame: false, field: 2 },\n ';': { dropFrame: true, field: 2 },\n '.': { dropFrame: false, field: 1 },\n ',': { dropFrame: true, field: 1 },\n};\n","/* eslint max-classes-per-file: \"off\" */\nimport { CONSTANT_TIMEBASES, FRAME_SEPARATORS } from './consts';\n\nconst splitSmpte = (smpteText) => {\n const hasDropFrameSeparator = smpteText.match(/[^0-9:\\-_]/);\n\n let hhmmssff;\n let frameOptions = {};\n if (hasDropFrameSeparator) {\n const [frameSeparator] = hasDropFrameSeparator;\n const [hhmmss, splitFrames] = smpteText.split(frameSeparator);\n hhmmssff = [...hhmmss.split(':'), splitFrames];\n frameOptions = FRAME_SEPARATORS[frameSeparator] || {};\n } else {\n hhmmssff = smpteText.split(':');\n }\n\n hhmmssff = hhmmssff.map(Number);\n\n if (hhmmssff.length > 4 || hhmmssff.some((n) => Number.isNaN(n))) {\n throw new Error('Invalid SMPTE timecode');\n }\n\n return [hhmmssff, frameOptions];\n};\n\nconst getDropFrames = (roundedFrameRate) => (roundedFrameRate === 60 ? 4 : 2);\n\nconst getRoundedFrameRate = (timeBase) => Math.round(timeBase.denominator / timeBase.numerator);\n\nconst countSamples = (hh, mm, ss, ff, { dropFrame, roundedFrameRate }) => {\n if (!dropFrame) {\n return hh * 3600 * roundedFrameRate + mm * 60 * roundedFrameRate + ss * roundedFrameRate + ff;\n }\n\n if (![30, 60].includes(roundedFrameRate)) {\n throw new Error('Cannot use dropframe with non NTSC timebase');\n }\n\n const dropFrames = getDropFrames(roundedFrameRate);\n\n const shouldDropMinute = mm % 10 !== 0;\n const shouldDropSecond = shouldDropMinute && ss === 0;\n\n const hourFrames = hh * (3600 * roundedFrameRate - 54 * dropFrames);\n const minuteFrames = mm * 60 * roundedFrameRate - (mm - Math.ceil(mm / 10)) * dropFrames;\n const secondFrames = ss * roundedFrameRate - (shouldDropMinute && ss > 1 ? dropFrames : 0);\n\n if (shouldDropSecond && ff < dropFrames) {\n throw new Error('Invalid ff');\n }\n\n const frameFrames = shouldDropSecond ? ff - dropFrames : ff;\n\n return hourFrames + minuteFrames + secondFrames + frameFrames;\n};\n\nfunction countDroppedFrames(frames, roundedFrameRate) {\n const dropFrames = getDropFrames(roundedFrameRate);\n const oneMinuteUndroppedFrames = 60 * roundedFrameRate;\n const oneMinuteDroppedFrames = 60 * roundedFrameRate - dropFrames;\n const tenMinuteFrames = 10 * (oneMinuteUndroppedFrames - dropFrames) + dropFrames;\n\n const tenMinuteChunks = Math.floor(frames / tenMinuteFrames);\n const minuteRemainder = Math.max(0, (frames % tenMinuteFrames) - oneMinuteUndroppedFrames);\n const oneMinuteChunks = Math.floor(minuteRemainder / oneMinuteDroppedFrames);\n const frameRemainder = minuteRemainder % oneMinuteDroppedFrames;\n const frameChunks = frameRemainder > 0 ? dropFrames : 0;\n\n return tenMinuteChunks * 9 * dropFrames + oneMinuteChunks * dropFrames + frameChunks;\n}\n\nexport class TimeBase {\n constructor({ numerator = 1, denominator = 1 } = {}) {\n this.numerator = Number(numerator);\n this.denominator = Number(denominator);\n }\n\n toJSON() {\n return {\n denominator: this.denominator,\n numerator: this.numerator,\n };\n }\n\n toConstant() {\n let constant;\n Object.entries(CONSTANT_TIMEBASES).find((thisTimeBase) => {\n const [thisTimeBaseText, thisTimeBaseType] = thisTimeBase;\n const { numerator, denominator } = thisTimeBaseType;\n if (numerator === this.numerator && denominator === this.denominator) {\n constant = thisTimeBaseText;\n return true;\n }\n return false;\n });\n return constant;\n }\n\n toText(useConstant = false) {\n if (useConstant) {\n const timeBaseText = this.toConstant();\n if (timeBaseText) return timeBaseText;\n }\n if (this.numerator > 1) {\n const timeBaseText = [this.denominator, this.numerator].join(':');\n return timeBaseText;\n }\n const timeBaseText = String(this.denominator);\n return timeBaseText;\n }\n\n toRate(useConstant = false, round = true) {\n if (useConstant) {\n const rate = this.toConstant();\n if (rate) return rate;\n }\n const rate = this.denominator / this.numerator;\n if (Number.isInteger(rate)) {\n return rate;\n }\n return round ? rate.toFixed(2) : rate;\n }\n}\n\nconst isDropFrameTimeBase = ({ numerator, denominator }) => {\n return numerator === 1001 && (denominator === 60000 || denominator === 30000);\n};\n\nexport class TimeCode {\n constructor({ samples = 0, timeBase } = {}, { dropFrame, field = 2 } = {}) {\n if (typeof samples === 'number') {\n this.samples = samples;\n } else if (typeof samples === 'string') {\n if (samples === '-INF') {\n this.samples = -Infinity;\n } else if (samples === '+INF') {\n this.samples = Infinity;\n } else {\n this.samples = Number(samples);\n }\n } else {\n throw new Error(`samples is not number/string/-Inf/+Inf is: ${samples}`);\n }\n this.timeBase = new TimeBase(timeBase);\n this.dropFrame = dropFrame === undefined ? isDropFrameTimeBase(this.timeBase) : dropFrame;\n this.field = field;\n }\n\n add(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples + samples, timeBase: this.timeBase });\n }\n\n subtract(val) {\n const {\n timeBase: { numerator, denominator },\n } = val;\n let conformedTimeCode = val;\n if (numerator !== this.timeBase.numerator || denominator !== this.timeBase.denominator) {\n conformedTimeCode = val.conformTimeBase(this.timeBase);\n }\n const { samples } = conformedTimeCode;\n return new TimeCode({ samples: this.samples - samples, timeBase: this.timeBase });\n }\n\n conformTimeBase(conformTo) {\n let timeBase = conformTo;\n if (conformTo instanceof TimeCode === false) {\n timeBase = new TimeBase(conformTo);\n }\n const samples = Math.round(\n this.samples / (this.timeBase.toRate(false, false) / timeBase.toRate(false, false)),\n );\n const timeCode = { samples, timeBase };\n return new TimeCode(timeCode);\n }\n\n toJSON() {\n return {\n samples: this.samples,\n timeBase: this.timeBase,\n };\n }\n\n toText() {\n let timeCodeText = String(this.samples);\n const timeBaseText = this.timeBase.toText();\n if (timeBaseText !== '1') {\n timeCodeText = [this.samples, timeBaseText].join('@');\n }\n return timeCodeText;\n }\n\n toSeconds() {\n const { numerator, denominator } = this.timeBase;\n return this.samples * (numerator / denominator);\n }\n\n toTime() {\n const roundedFrameRate = getRoundedFrameRate(this.timeBase);\n const totalSamples =\n this.samples + (this.dropFrame ? countDroppedFrames(this.samples + 1, roundedFrameRate) : 0);\n\n const hours = Math.floor(totalSamples / (3600 * roundedFrameRate));\n const minutes = Math.floor(totalSamples / (60 * roundedFrameRate)) % 60;\n const seconds = Math.floor(totalSamples / roundedFrameRate) % 60;\n const frames = totalSamples % roundedFrameRate;\n const partialSeconds = frames / roundedFrameRate;\n return {\n hours,\n minutes,\n seconds,\n frames,\n partialSeconds,\n };\n }\n\n toDuration({ format } = {}) {\n const { hours, minutes, seconds } = this.toTime();\n if (typeof format === 'string') {\n if (format.toLowerCase() === 'hhmmss') {\n return [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n }\n if (hours) {\n return [\n hours.toFixed(),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n }\n if (minutes >= 10) {\n return [minutes.toFixed().padStart(2, '0'), seconds.toFixed().padStart(2, '0')].join(':');\n }\n return [minutes.toFixed(), seconds.toFixed().padStart(2, '0')].join(':');\n }\n\n toSmpte() {\n if (this.samples === -Infinity) return '00:00:00:00';\n const { hours, minutes, seconds, frames } = this.toTime();\n const hhmmss = [\n hours.toFixed().padStart(2, '0'),\n minutes.toFixed().padStart(2, '0'),\n seconds.toFixed().padStart(2, '0'),\n ].join(':');\n const [frameSeparator = ':'] = Object.entries(FRAME_SEPARATORS).find((thisSeparator) => {\n const [, { dropFrame, field }] = thisSeparator;\n return dropFrame === this.dropFrame && field === this.field;\n });\n return [hhmmss, frames.toFixed().padStart(2, '0')].join(frameSeparator);\n }\n\n toFraction() {\n return `${this.samples}@${this.timeBase.denominator}:${this.timeBase.numerator}`;\n }\n}\n\nconst formatTimeBaseType = (timeBase) => new TimeBase(timeBase);\n\nconst formatTimeBaseText = (timeBaseText) => {\n if (timeBaseText === undefined) {\n return formatTimeBaseType();\n }\n if (typeof timeBaseText === 'number') {\n return formatTimeBaseType({ denominator: timeBaseText });\n }\n if (timeBaseText.includes(':')) {\n const [denominator, numerator] = timeBaseText.split(':');\n return formatTimeBaseType({ denominator, numerator });\n }\n if (Object.keys(CONSTANT_TIMEBASES).includes(timeBaseText)) {\n return formatTimeBaseType(CONSTANT_TIMEBASES[timeBaseText]);\n }\n const denominator = Number(timeBaseText);\n if (Number.isNaN(denominator)) {\n throw new Error(\n `timeBaseText must be a number or ${Object.keys(CONSTANT_TIMEBASES).join(\n ',',\n )} - is ${timeBaseText}`,\n );\n }\n return formatTimeBaseType({ denominator });\n};\n\nconst formatTimeBase = (timeBase) => {\n if (typeof timeBase === 'object') {\n return formatTimeBaseType(timeBase);\n }\n return formatTimeBaseText(timeBase);\n};\n\nconst formatTimeCodeType = (timeCode, options) => new TimeCode(timeCode, options);\n\nconst formatTimeCodeText = (timeCodeText, options) => {\n if (timeCodeText === undefined) {\n const timeCode = { samples: 0 };\n return formatTimeCodeType(timeCode, options);\n }\n if (typeof timeCodeText === 'number') {\n const timeCode = { samples: timeCodeText };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText.includes('@')) {\n const [samplesString, timeBaseText] = timeCodeText.split('@');\n const samples = Number(samplesString);\n const timeBase = formatTimeBaseText(timeBaseText);\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '-INF') {\n const samples = -Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n if (timeCodeText === '+INF') {\n const samples = Infinity;\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n }\n const samples = Number(timeCodeText);\n if (Number.isNaN(samples)) {\n throw new Error(`timeBaseText must be a number or sample@timeBase - is ${timeCodeText}`);\n }\n const timeCode = { samples };\n return formatTimeCodeType(timeCode, options);\n};\n\nconst formatSeconds = (seconds, timeBase, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { denominator = 1, numerator = 1 } = timeBase || {};\n const samples = seconds * (denominator / numerator);\n const timeCode = { samples, timeBase: timeBase || {} };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSecondsPrecise = (seconds, timeBase, options) => {\n if (Number.isNaN(Number(seconds))) {\n throw new Error(`seconds must be digits, is ${seconds}`);\n }\n const { numerator = 1 } = timeBase || {};\n let { denominator = 1 } = timeBase || {};\n if (!Number.isInteger(seconds)) {\n const decimalPlaces = String(seconds).split('.')[1].length;\n denominator *= 10 ** decimalPlaces;\n }\n const samples = (seconds * (denominator / numerator)).toFixed();\n const timeCode = { samples, timeBase: { denominator, numerator } };\n return new TimeCode(timeCode, options);\n};\n\nconst formatSmpte = (smpteText, timeBaseText, options = {}) => {\n if (smpteText === undefined) {\n const timeBase = formatTimeBase(timeBaseText);\n const timeCode = { samples: 0, timeBase };\n return formatTimeCodeType(timeCode);\n }\n if (typeof smpteText !== 'string') {\n throw new Error(`smpteText must be a string, is ${smpteText}`);\n }\n\n const [[hh, mm, ss, ff = 0], frameOptions] = splitSmpte(smpteText);\n const { dropFrame = false } = frameOptions;\n\n const timeBase = formatTimeBase(timeBaseText);\n const roundedFrameRate = getRoundedFrameRate(timeBase);\n\n if (mm >= 60 || mm < 0 || ss >= 60 || ss < 0 || ff >= roundedFrameRate || ff < 0) {\n throw new Error('Invalid mm, ss or ff');\n }\n\n const samples = countSamples(hh, mm, ss, ff, { dropFrame, roundedFrameRate });\n const timeCode = { samples, timeBase };\n return formatTimeCodeType(timeCode, { ...frameOptions, ...options });\n};\n\nexport {\n formatSeconds,\n formatSecondsPrecise,\n formatTimeBaseType,\n formatTimeBaseText,\n formatTimeCodeType,\n formatTimeCodeText,\n formatTimeBase,\n formatSmpte,\n};\n","import { formatTimeCodeText } from '../time';\n\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 */\nfunction 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\nexport default metadataTypeToWebVtt;\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","_defineProperty","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","_typeof","parseValue","fieldValue","name","valueList","uuid","parseField","field","parsedValue","shouldBeField","includes","parseGroup","thisGroup","groupName","groupsOrFields","parseGroupsOrFields","group","Object","entries","forEach","_slicedToArray","push","groupValue","_objectWithoutProperties","_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","PAL","NTSC","NTSC30","CONSTANT_TIMEBASES","denominator","numerator","FRAME_SEPARATORS","dropFrame","splitSmpte","smpteText","hasDropFrameSeparator","match","hhmmssff","frameOptions","frameSeparator","hhmmss","splitFrames","some","n","isNaN","Error","getDropFrames","roundedFrameRate","getRoundedFrameRate","timeBase","Math","round","countSamples","hh","mm","ss","ff","dropFrames","shouldDropMinute","shouldDropSecond","hourFrames","minuteFrames","ceil","secondFrames","frameFrames","countDroppedFrames","frames","oneMinuteUndroppedFrames","oneMinuteDroppedFrames","tenMinuteFrames","tenMinuteChunks","floor","minuteRemainder","max","oneMinuteChunks","frameRemainder","frameChunks","TimeBase","_classCallCheck","_createClass","constant","find","thisTimeBase","thisTimeBaseText","thisTimeBaseType","useConstant","timeBaseText","toConstant","String","rate","isInteger","toFixed","isDropFrameTimeBase","TimeCode","samples","Infinity","val","conformedTimeCode","conformTimeBase","conformTo","toRate","timeCode","timeCodeText","toText","totalSamples","hours","minutes","seconds","partialSeconds","format","toTime","toLowerCase","padStart","thisSeparator","formatTimeBaseType","formatTimeBaseText","keys","formatTimeBase","formatTimeCodeType","formatTimeCodeText","samplesString","formatSeconds","formatSecondsPrecise","decimalPlaces","formatSmpte","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.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","_defineProperty","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","_typeof","parseValue","fieldValue","name","valueList","uuid","parseField","field","parsedValue","shouldBeField","includes","parseGroup","thisGroup","groupName","groupsOrFields","parseGroupsOrFields","group","Object","entries","forEach","_slicedToArray","push","groupValue","_objectWithoutProperties","_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","_classCallCheck","_createClass","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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"}