@vidispine/vdt-js 23.3.0-pre.2 → 23.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.d.ts CHANGED
@@ -16,7 +16,7 @@ import type { MetadataFieldValueType } from '@vidispine/types';
16
16
  import type { MetadataGroupValueType } from '@vidispine/types';
17
17
  import type { MetadataType } from '@vidispine/types';
18
18
  import type { MetadataValueType } from '@vidispine/types';
19
- import type { RationalType } from '@vidispine/types';
19
+ import { RationalType } from '@vidispine/types';
20
20
  import type { SearchFacetType } from '@vidispine/types';
21
21
  import type { SearchResultEntryTimespanType } from '@vidispine/types';
22
22
  import type { ShapeType } from '@vidispine/types';
@@ -491,9 +491,9 @@ export declare type ParsedField<TOptions> = TOptions extends {
491
491
  export declare type ParsedFieldAttributes = Partial<Omit<MetadataFieldValueType, 'value'>>;
492
492
 
493
493
  declare type ParsedFieldDefinition = {
494
- name?: string;
495
- type?: string;
496
- defaultValue?: string;
494
+ name?: MetadataFieldType['name'];
495
+ type?: MetadataFieldType['type'];
496
+ defaultValue?: MetadataFieldType['defaultValue'];
497
497
  restrictions?: {
498
498
  min?: number;
499
499
  max?: number;
package/dist/index.js CHANGED
@@ -696,7 +696,7 @@ const H = (e) => {
696
696
  format: void 0
697
697
  }
698
698
  };
699
- class I {
699
+ class R {
700
700
  /**
701
701
  * Constructor for TimeCode
702
702
  *
@@ -737,7 +737,7 @@ class I {
737
737
  let o = t;
738
738
  (r !== this.timeBase.numerator || n !== this.timeBase.denominator) && (o = t.conformTimeBase(this.timeBase));
739
739
  const { samples: s } = o;
740
- return new I({ samples: this.samples + s, timeBase: this.timeBase });
740
+ return new R({ samples: this.samples + s, timeBase: this.timeBase });
741
741
  }
742
742
  /**
743
743
  * Return this TimeCode subtracted with the supplied timeCodeType
@@ -761,7 +761,7 @@ class I {
761
761
  let o = t;
762
762
  (r !== this.timeBase.numerator || n !== this.timeBase.denominator) && (o = t.conformTimeBase(this.timeBase));
763
763
  const { samples: s } = o;
764
- return new I({ samples: this.samples - s, timeBase: this.timeBase });
764
+ return new R({ samples: this.samples - s, timeBase: this.timeBase });
765
765
  }
766
766
  /**
767
767
  * Creates a new TimeCode instance with specified timeBase and samples adjusted to that.
@@ -778,7 +778,7 @@ class I {
778
778
  const n = t instanceof h ? t : M(t), o = Math.floor(
779
779
  this.samples / (this.timeBase.toRate({ fixed: !1 }) / n.toRate({ fixed: !1 }))
780
780
  ), s = { ...B.conformTimeBase, ...r || {} };
781
- return new I(
781
+ return new R(
782
782
  {
783
783
  samples: o,
784
784
  timeBase: n
@@ -980,7 +980,7 @@ const ze = (e, t) => {
980
980
  const l = ze(a, i);
981
981
  i /= l, a /= l;
982
982
  }
983
- const c = new I(
983
+ const c = new R(
984
984
  { samples: i, timeBase: { denominator: a, numerator: 1 } },
985
985
  o
986
986
  );
@@ -1070,7 +1070,7 @@ const ze = (e, t) => {
1070
1070
  default:
1071
1071
  throw new Error(`Invalid exceedingMode, options are ${JSON.stringify(Qe)}`);
1072
1072
  }
1073
- return new I({ samples: _, timeBase: i }, c);
1073
+ return new R({ samples: _, timeBase: i }, c);
1074
1074
  }, tt = {
1075
1075
  timeBase: void 0,
1076
1076
  dropFrame: void 0,
@@ -1089,13 +1089,13 @@ const ze = (e, t) => {
1089
1089
  e === "-INF" ? o = { samples: -1 / 0 } : e === "+INF" ? o = { samples: 1 / 0 } : o = { samples: Number(e) };
1090
1090
  if (Number.isNaN(o == null ? void 0 : o.samples) || o.timeBase && !(o.timeBase instanceof h))
1091
1091
  throw new Error(`timeCodeText must be a number or sample@timeBase - is ${e}`);
1092
- const s = new I(o, n);
1092
+ const s = new R(o, n);
1093
1093
  return r ? s.conformTimeBase(M(r), n) : s;
1094
1094
  }, rt = {
1095
1095
  dropFrame: void 0,
1096
1096
  frameSeparator: void 0
1097
- }, F = (e, t) => new I(e, { ...rt, ...t }), ot = (e) => !!e.match(/^(\d\d+):(\d\d+):(\d\d+)(:|;|\.|,)(\d\d+)$/), nt = (e) => !Number.isNaN(Number(e)), st = (e, t) => {
1098
- if (e instanceof I)
1097
+ }, F = (e, t) => new R(e, { ...rt, ...t }), ot = (e) => !!e.match(/^(\d\d+):(\d\d+):(\d\d+)(:|;|\.|,)(\d\d+)$/), nt = (e) => !Number.isNaN(Number(e)), st = (e, t) => {
1098
+ if (e instanceof R)
1099
1099
  return e;
1100
1100
  if (typeof e != "string" && typeof e != "number")
1101
1101
  return F(e, t);
@@ -1399,8 +1399,8 @@ ${ge(o, {
1399
1399
  const { numberOfPackets: Q } = e;
1400
1400
  Q !== void 0 && (E = Q.toString());
1401
1401
  }
1402
- let A, R, S;
1403
- E && d && (A = F({ samples: E, timeBase: d }), R = A.timeBase.toConstant() || A.timeBase.toRate(), S = A.toSmpte());
1402
+ let A, I, S;
1403
+ E && d && (A = F({ samples: E, timeBase: d }), I = A.timeBase.toConstant() || A.timeBase.toRate(), S = A.toSmpte());
1404
1404
  const { height: K, width: z } = o || {}, ye = P(o), Me = `${z}x${K}`;
1405
1405
  let J, X;
1406
1406
  return r !== void 0 && (J = N(r, { round: 2, symbols: se }), X = Number(
@@ -1408,7 +1408,7 @@ ${ge(o, {
1408
1408
  )), {
1409
1409
  videoFormat: l,
1410
1410
  dimension: Me,
1411
- frameRate: R,
1411
+ frameRate: I,
1412
1412
  height: K,
1413
1413
  width: z,
1414
1414
  timeBase: d,
@@ -1527,8 +1527,8 @@ ${ge(o, {
1527
1527
  parsedShapeKey: c = "parsedShape"
1528
1528
  } = t || {}, { shape: l = [] } = e || {}, u = l.reduce((_, f) => {
1529
1529
  let p, d;
1530
- const m = Fe(f), { uri: T, mimeType: E, containerFormat: A, videoCodec: R } = m;
1531
- if (E && (p = E, (E === Rt || E === St) && (A === gt || A === bt) && R === Nt && (p = It)), T)
1530
+ const m = Fe(f), { uri: T, mimeType: E, containerFormat: A, videoCodec: I } = m;
1531
+ if (E && (p = E, (E === Rt || E === St) && (A === gt || A === bt) && I === Nt && (p = It)), T)
1532
1532
  if (n) {
1533
1533
  const [S] = T.split("://");
1534
1534
  n.includes(S) && (d = T);
@@ -1625,7 +1625,10 @@ ${ge(o, {
1625
1625
  longRestriction: i,
1626
1626
  data: c,
1627
1627
  values: l
1628
- } = e, { minLength: u, maxLength: _, pattern: f } = o || {}, { minInclusive: p, maxInclusive: d } = s || a || i || {}, m = ((l == null ? void 0 : l.field) || []).map(({ key: R, value: S }) => ({ label: S, value: R })), E = ((R) => Object.fromEntries(Object.entries(R).filter(([, S]) => S !== void 0)))({
1628
+ } = e, { minLength: u, maxLength: _, pattern: f } = o || {}, { minInclusive: p, maxInclusive: d } = s || a || i || {}, m = ((l == null ? void 0 : l.field) || []).map(({ key: I, value: S }) => ({
1629
+ label: S ?? I,
1630
+ value: I
1631
+ })), E = ((I) => Object.fromEntries(Object.entries(I).filter(([, S]) => S !== void 0)))({
1629
1632
  min: p,
1630
1633
  max: d,
1631
1634
  minLength: u,
@@ -1663,7 +1666,7 @@ export {
1663
1666
  vt as SYSTEM_FIELDGROUPS,
1664
1667
  wt as SYSTEM_FIELDS,
1665
1668
  h as TimeBase,
1666
- I as TimeCode,
1669
+ R as TimeCode,
1667
1670
  Ct as createMetadataType,
1668
1671
  Wt as createSearchFacetList,
1669
1672
  M as createTimeBase,
@@ -1,5 +1,5 @@
1
- (function(p,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("filesize")):typeof define=="function"&&define.amd?define(["exports","filesize"],I):(p=typeof globalThis<"u"?globalThis:p||self,I(p["@vidispine/vdt-js"]={},p.filesize))})(this,function(p,I){"use strict";const Z=(e,t)=>t?Z(t,e%t):e,P=e=>{const{width:t,height:r}=e||{};if(t===void 0||r===void 0)return;const i=Z(t,r);let n=t/i,o=r/i;return n>21&&(o=1,n=(t/r).toFixed(2)),[n,o].join(":")},g=e=>Object.fromEntries((e==null?void 0:e.map(({key:t,value:r})=>[t,r]))||[]),Ve={ACCESSCONTROL_READ:"_accesscontrol_read",ACCESSCONTROL_WRITE:"_accesscontrol_write",ADMINISTRATOR:"_administrator",AUTO_PROJECTION_READ:"_auto_projection_read",AUTO_PROJECTION_WRITE:"_auto_projection_write",COLLECTION_NOTIFICATION_READ:"_collection_notification_read",COLLECTION_NOTIFICATION_WRITE:"_collection_notification_write",COLLECTION_READ:"_collection_read",COLLECTION_WRITE:"_collection_write",CONFIGURATION_READ:"_configuration_read",DELETION_LOCK_NOTIFICATION_READ:"_deletion_lock_notification_read",DELETION_LOCK_NOTIFICATION_WRITE:"_deletion_lock_notification_write",DELETION_LOCK_READ:"_deletion_lock_read",DELETION_LOCK_WRITE:"_deletion_lock_write",DOCUMENT_NOTIFICATION_READ:"_document_notification_read",DOCUMENT_NOTIFICATION_WRITE:"_document_notification_write",DOCUMENT_READ:"_document_read",DOCUMENT_WRITE:"_document_write",ERROR_READ:"_error_read",ERROR_WRITE:"_error_write",EXPORT:"_export",EXPORT_TEMPLATE_READ:"_export_template_read",EXPORT_TEMPLATE_WRITE:"_export_template_write",EXTERNAL_ID_READ:"_external_id_read",EXTERNAL_ID_WRITE:"_external_id_write",FILE_NOTIFICATION_READ:"_file_notification_read",FILE_NOTIFICATION_WRITE:"_file_notification_write",FILE_READ:"_file_read",FILE_WRITE:"_file_write",GROUP_READ:"_group_read",GROUP_WRITE:"_group_write",IMPORT_WRITE:"_import",ITEM_ID_READ:"_item_id_read",ITEM_ID_WRITE:"_item_id_write",ITEM_NOTIFICATION_READ:"_item_notification_read",ITEM_NOTIFICATION_WRITE:"_item_notification_write",ITEM_WRITE:"_item_write",ITEM_SEARCH:"_item_search",ITEM_SHAPE_READ:"_item_shape_read",ITEM_SHAPE_WRITE:"_item_shape_write",ITEM_TIMELINE_READ:"_item_timeline_read",ITEM_TIMELINE_WRITE:"_item_timeline_write",ITEM_URI:"_item_uri",JOB_NOTIFICATION_READ:"_job_notification_read",JOB_NOTIFICATION_WRITE:"_job_notification_write",JOB_READ:"_job_read",JOB_WRITE:"_job_write",LIBRARY_READ:"_library_read",LIBRARY_WRITE:"_library_write",LOCK_READ:"_lock_read",LOCK_WRITE:"_lock_write",LOG_READ:"_log_read",METADATA_DATASET_READ:"_metadata_dataset_read",METADATA_DATASET_WRITE:"_metadata_dataset_write",METADATA_FIELD_GROUP_READ:"_metadata_field_group_read",METADATA_FIELD_GROUP_WRITE:"_metadata_field_group_write",METADATA_FIELD_READ:"_metadata_field_read",METADATA_FIELD_WRITE:"_metadata_field_write",METADATA_GLOBAL_READ:"_metadata_global_read",METADATA_GLOBAL_WRITE:"_metadata_global_write",METADATA_LOCK_READ:"_metadata_lock_read",METADATA_LOCK_WRITE:"_metadata_lock_write",METADATA_READ:"_metadata_read",METADATA_SCHEMA_READ:"_metadata_schema_read",METADATA_SCHEMA_WRITE:"_metadata_schema_write",METADATA_WRITE:"_metadata_write",OTIF_ANALYZE:"_otif_analyze",OTIF_READ:"_otif_read",OTIF_WRITE:"_otif_write",PLACEHOLDER_NOTIFICATION_READ:"_placeholder_notification_read",PLACEHOLDER_NOTIFICATION_WRITE:"_placeholder_notification_write",PROJECTION_READ:"_projection_read",PROJECTION_WRITE:"_projection_write",QUOTA_NOTIFICATION_READ:"_quota_notification_read",QUOTA_NOTIFICATION_WRITE:"_quota_notification_write",QUOTA_READ:"_quota_read",QUOTA_WRITE:"_quota_write",RELATION_READ:"_relation_read",RELATION_WRITE:"_relation_write",RESOURCE_READ:"_resource_read",RESOURCE_WRITE:"_resource_write",RUN_AS:"_run_as",SEARCH:"_search",SEQUENCE_READ:"_sequence_read",SEQUENCE_WRITE:"_sequence_write",SHAPE_TAG_READ:"_shape_tag_read",SHAPE_TAG_WRITE:"_shape_tag_write",SITE_MANAGER:"_site_manager",SITE_RULE_READ:"_site_rule_read",SITE_RULE_WRITE:"_site_rule_write",STORAGE_GROUP_READ:"_storage_group_read",STORAGE_GROUP_WRITE:"_storage_group_write",STORAGE_NOTIFICATION_READ:"_storage_notification_read",STORAGE_NOTIFICATION_WRITE:"_storage_notification_write",STORAGE_READ:"_storage_read",STORAGE_RULE_READ:"_storage_rule_read",STORAGE_RULE_WRITE:"_storage_rule_write",STORAGE_WRITE:"_storage_write",SUPER_ACCESS_USER:"_super_access_user",TASKDEFINITION_READ:"_taskdefinition_read",TASKDEFINITION_WRITE:"_taskdefinition_write",THUMBNAIL_READ:"_thumbnail_read",THUMBNAIL_WRITE:"_thumbnail_write",TRANSCODER:"_transcoder",TRANSFER_READ:"_transfer_read",TRANSFER_WRITE:"_transfer_write",USER:"_user",VXA:"_vxa",VXA_READ:"_vxa_read"},Ye=["stl_subtitle","stl_tti","stl_gsi","mrk_marker","pho_validation","pho_resource","pho_error","facedetect_rect","facedetect_face","originalTrackFilename","stl_gsiHeader"],ke=["title","user","shapeTag","representativeThumbnail","representativeThumbnailNoAuth","representativeItems","itemId","collectionId","mediaType","mimeType","created","startTimeCode","startSeconds","fieldValidationError","schemaValidationError","originalFilename","originalUri","originalAudioCodec","originalVideoCodec","originalHeight","originalWidth","originalFormat","durationSeconds","durationTimeCode","solr-index","__user","__collection","__collection_size","__ancestor_collection","__ancestor_collection_size","__shape","__shape_size","__shape_last_added","__placeholder_shape_size","__version","__version_count","__storage","__storage_size","__shapetag_{tag}_hash_{hash}","__storage_{tag}","__storage_{tag}_size","__storagegroup","__storagegroup_size","__sequence","__sequence_size","__metadata_last_modified","__external_id","__deletion_lock_id","__deletion_lock_expiry","__child_collection","__child_collection_size","__parent_collection","__parent_collection_size","__items_size","stl_text","stl_justification","stl_xrelative","stl_yrelative","stl_vertical","stl_verticalbase","stl_horizontalbase","stl_sizerelative","stl_color","stl_outline","stl_outlinecolor","stl_outlinesize","stl_font","stl_service","stl_tti","stl_gsi","cct","tcd","tcf","oet","cd","mnc","cpn","dfc","tcp","tcs","tet","tnb","tnd","en","co","tng","rd","mnr","dsc","opt","lc","tpt","tn","slr","tns","rn","pub","dsn","ecd","mrk_zerolength","mrk_text","mrk_color","pho_resource_name","pho_error_level","pho_error_code","pho_error_description","facedetect_rect_width","facedetect_rect_height","facedetect_rect_y","facedetect_rect_x","facedetect_pid","facedetect_rect","trackId","eidr_actor","eidr_alternateId","eidr_countryOfOrigin","eidr_director","eidr_id","eidr_referentType","eidr_releaseDate","eidr_resourceName","eidr_status","eidr_sync","ttml_div","ttml_root","vxa_collection_id","vxaId","vxaLocalPath","tco","cs","ebn","tf","cf","sgn","tci","jc","vp","sn"],U=["uuid","user","timestamp","change","conflict","mode"],ee=["name","id","referenced","data","inheritance"],te=[...U,"value","lang"],re=[...U,...ee,"value","reference","type","track"],ne=[...U,...ee,"cycle","field","group"],G=e=>Object.prototype.toString.call(e)==="[object Object]"&&e.value!==void 0,ie=e=>["string","boolean","number"].includes(typeof e),oe=e=>G(e)&&((e==null?void 0:e.value)===null||G(e.value)||ie(e.value)),He=e=>Object.prototype.toString.call(e)==="[object Object]",se=e=>Object.prototype.toString.call(e)==="[object Date]",ae=e=>e===null?!0:Array.isArray(e)?e.some(ae):ie(e)||oe(e)||se(e),ce=e=>{const t=r=>He(r)&&r.value===void 0&&!!Object.entries(e);return Array.isArray(e)?e.every(ce):t(e)},xe=(e,t)=>e+(t.length>1?"s":""),de=(e,t)=>{const r=e.filter(i=>!t.includes(i));if(r.length)throw Error(`Unsupported ${xe("key",r)} (${r.join(", ")})`)},ue=e=>{if(Array.isArray(e))throw Error("Invalid value inside value object, cannot be array");return[void 0,null].includes(e)?{}:se(e)?{value:e.toISOString()}:{value:e.toString()}},Ke=e=>{if(de(Object.keys(e),te),Object.keys(e).length===0)throw Error("Invalid value object, cannot be empty object");if(typeof(e==null?void 0:e.value)=="string")return e;const t=ue(e==null?void 0:e.value);return{...e,...t!==void 0?t:{}}},$=e=>{if(![void 0,null].includes(e))return Array.isArray(e)?e.flatMap($):G(e)?Ke(e):ue(e)},ze=e=>{de(Object.keys(e),re);const t=$(e==null?void 0:e.value);if(t===void 0){const{value:r,...i}=e;return i}return{...e,value:[...Array.isArray(t)?t:[t]]}},Je=e=>{if(oe(e))return ze(e);const t=$(e);if(t!==void 0)return{value:[...Array.isArray(t)?t:[t]]}},le=e=>{const t=[],r=[];let i={};return Object.entries(e||{}).forEach(([n,o])=>{if(ne.includes(n))i={...i,[n]:o};else if(ae(o))try{r.push({name:n,...Je(o)})}catch(a){throw Error(a.message+(n?` for field "${n}"`:""))}else if(ce(o))(Array.isArray(o)?o:[o]).forEach(a=>{t.push({name:n,...le(a)})});else throw Error(`Unhandled value for "${n}"`)}),{...i,...t.length>0?{group:t}:{},...r.length>0?{field:r}:{}}},Xe=e=>{const{start:t="-INF",end:r="+INF",base:i=void 0,...n}=e,{group:o,field:a}=le(n);return{...o?{group:o}:{},...a?{field:a}:{},start:t.toString(),end:r.toString(),...i?{base:i}:{}}},qe=e=>({timespan:(Array.isArray(e)?e:[e||{}]).map(t=>Xe(t))}),Qe=(e,t)=>{var n,o;const[r]=((n=e==null?void 0:e.start)==null?void 0:n.split("@"))||[],[i]=((o=t==null?void 0:t.start)==null?void 0:o.split("@"))||[];return Number(r)<Number(i)?-1:Number(r)>Number(i)?1:0},F=e=>Array.isArray(e)?e:e&&[e]||[],_e=e=>Array.isArray(e)?e.pop():e,Ze=e=>(e==null?void 0:e.every(t=>typeof t=="string"))||!1,me={includeValueAttributes:!1};function et(e,t){const{includeValueAttributes:r}={...me,...t||{}};if(r===!1)return e==null?void 0:e.value;const{value:i,...n}=e;return{...r===!0&&n||Array.isArray(r)&&Object.fromEntries(Object.entries(n).filter(([a])=>r.includes(a)))||{},value:i}}const fe={...me,joinValue:void 0,arrayOnSingleValue:!0};function tt(e,t){const{joinValue:r,arrayOnSingleValue:i,...n}={...fe,...t||{}},o=e==null?void 0:e.map(a=>et(a,n));return Ze(o)&&r?o==null?void 0:o.join(r):i!==!0&&(o==null?void 0:o.length)<=1?o==null?void 0:o[0]:o}const pe={includeFieldAttributes:!1,...fe},rt=(e,t)=>{const{includeFieldAttributes:r,...i}={...pe,...t||{}},{value:n,...o}=e,a=tt(n,i),s=r===!0&&o||Array.isArray(r)&&Object.fromEntries(Object.entries(o).filter(([c])=>r.includes(c)))||{};return r?{...s,value:a}:a},w={...pe,fieldAsList:!1,arrayOnSingleField:!1,overrideField:void 0},V=(e,t)=>{const r={...w,...t||{}},{fieldAsList:i,arrayOnSingleField:n,overrideField:o}=r,a=o===!0&&i===!1,s={};return e==null||e.forEach(c=>{const{name:l}=c,u=rt(c,r),_=n===!0?F(u):u,f=s[l];f?a?s[l]=u:s[l]=[F(f),F(u)].flat():s[l]=_}),i===!0?Object.values(s).flat():s},Te={...w,includeGroupAttributes:!1,groupAsList:!1,arrayOnSingleGroup:!1,overrideGroup:void 0},nt=(e,t)=>{const r={...Te,...t||{}},{includeGroupAttributes:i}=r,n=Object.fromEntries(Object.entries(r).filter(([_])=>Object.keys(w).includes(_))),{field:o,group:a,...s}=e,c=o&&V(o,n),l=a&&k(a,r);return{...i===!0&&s||Array.isArray(i)&&Object.fromEntries(Object.entries(s).filter(([_])=>i.includes(_)))||{},...n!=null&&n.fieldAsList?c&&{field:c}||{}:c,...r!=null&&r.groupAsList?l&&{group:l}||{}:l}},Y=Te,k=(e,t)=>{const r={...Y,...t||{}},{groupAsList:i,arrayOnSingleGroup:n,overrideGroup:o}=r,a=o===!0&&i===!1,s={};return e==null||e.forEach(c=>{const{name:l}=c,u=nt(c,r),_=n===!0?F(u):u,f=s[l];f?a?s[l]=u:s[l]=[F(f),F(u)].flat():s[l]=_}),i?Object.values(s).flat():s},Ee={...Y,includeTimespanAttributes:!1,flat:!1,arrayOnSingle:!1,arrayOnSingleValue:!0,arrayOnSingleGroup:void 0,arrayOnSingleField:void 0},he=(e,t)=>{const r={...Ee,...t||{}},{includeTimespanAttributes:i,arrayOnSingle:n,flat:o}=r,a=Object.fromEntries(Object.entries(t).map(([d,m])=>{if(Object.keys(Y).includes(d))return["arrayOnSingleGroup","arrayOnSingleField","arrayOnSingleValue"].includes(d)&&(m!==void 0?m:n===!0)?[d,!0]:["overrideGroup","overrideField"].includes(d)&&(m!==void 0?m:o===!0)?[d,!0]:[d,m]}).filter(d=>!!d)),s=Object.fromEntries(Object.entries(t).map(([d,m])=>{if(Object.keys(w).includes(d))return["arrayOnSingleField","arrayOnSingleValue"].includes(d)&&(m!==void 0?m:n===!0)?[d,!0]:["overrideField"].includes(d)&&(m!==void 0?m:o===!0)?[d,!0]:[d,m]}).filter(d=>!!d)),{field:c,group:l,...u}=e||{},_=c&&V(c,s),f=l&&k(l,a);return{...i===!0&&u||Array.isArray(i)&&Object.fromEntries(Object.entries(u).filter(([d])=>i.includes(d)))||{},...s!=null&&s.fieldAsList?{field:_}:_,...a!=null&&a.groupAsList?{group:f}:f}},H={...Ee,timespanAsList:!1,joinTimespan:"_",sortTimespan:!1,flat:!1,flatTimespan:void 0},x=(e,t)=>{const r={...H,...t||{}},{timespanAsList:i,joinTimespan:n,sortTimespan:o,flat:a,flatTimespan:s,...c}=r,l={flat:a,...c};o&&e.sort(Qe);const u=(s!==void 0?s===!0:a===!0)&&i===!1,_={};return e==null||e.forEach(f=>{const{start:T,end:d}=f,m=u?"flat":[T,d].join(n),E=he(f,l),h=_[m];h?u?T==="-INF"&&d==="+INF"?_[m]={..._e(h),...E}:_[m]={...E,..._e(h)}:_[m]=[...F(h),E]:_[m]=E}),i===!0?Object.values(_):u?Object.values(_).pop():_},it={...H,includeMetadataAttributes:!1,flat:!1};function ot(e,t){const r={...it,...t||{}},{includeMetadataAttributes:i,flat:n}=r,{timespan:o=[],...a}=e||{},s=Object.fromEntries(Object.entries(t).map(([u,_])=>{if(Object.keys(H).includes(u))return["onlyGeneric","overrideGroup","overrideField"].includes(u)&&(_!==void 0?_:n===!0)?[u,!0]:[u,_]}).filter(u=>!!u)),c=x(o,s);return{...i===!0&&{...a,...a.revision?{revision:a.revision.split(",")}:{}}||Array.isArray(i)&&Object.fromEntries(Object.entries(a).map(([u,_])=>{if(i.includes(u))return[u,u==="revision"&&typeof _=="string"?_.split(","):_]}).filter(u=>!!u))||{},...s!=null&&s.timespanAsList?{timespan:c}:c}}const st=e=>{const{field:t=[]}=e||{};return g(t)},K={PAL:{denominator:25,numerator:1},NTSC:{denominator:3e4,numerator:1001},NTSC30:{denominator:30,numerator:1},29.97:{denominator:3e4,numerator:1001},59.94:{denominator:6e4,numerator:1001},23.976:{denominator:48e3,numerator:2002},23.98:{denominator:48e3,numerator:2002}},Ae=Object.keys(K),Oe={toText:{constant:!1,fraction:!1},toRate:{fixed:!0,rounded:!1}};class A{constructor(t){this.numerator=1,this.denominator=1;const{numerator:r=1,denominator:i=1}=t||{};this.numerator=Number(r),this.denominator=Number(i)}toConstant(){let t;return Object.entries(K).find(r=>{const[i,n]=r,{numerator:o,denominator:a}=n;return o===this.numerator&&a===this.denominator?(t=i,!0):!1}),t}toText(t){const{constant:r,fraction:i}={...Oe.toText,...t};if(r){const o=this.toConstant();if(o)return o}return i||this.numerator>1?[this.denominator,this.numerator].join(":"):String(this.denominator)}toRate(t){const r=this.denominator/this.numerator;if(Number.isInteger(r))return r;const{rounded:i,fixed:n}={...Oe.toRate,...t||{}};return i?Math.round(r):n===!0||typeof n=="number"?Number(r.toFixed(typeof n=="boolean"?2:n)):r}toObject(){return{denominator:this.denominator,numerator:this.numerator}}toJson(){return console.warn("Deprecated - use toObject instead"),this.toObject()}}const L=e=>{if(e===void 0)return new A;if(typeof e=="number")return new A({denominator:e});if(typeof e=="string"&&e.includes(":")){const[t,r]=e.split(":");return new A({denominator:t,numerator:r})}if(Ae.includes(e))return new A(K[e]);if(!["string","number"].includes(typeof e)||Number.isNaN(Number(e)))throw new Error(`timeBaseText must be a number or ${Ae.join(",")} - is ${JSON.stringify(e)}`);return new A({denominator:Number(e)})},D=e=>new A(e),y=e=>e instanceof A?e:typeof e=="string"||typeof e=="number"?L(e):D(e),z=e=>{const t=e.toConstant();return t==="59.94"&&4||["NTSC","29.97"].includes(t)&&2||void 0},Ie=e=>z(e)>0,Se=e=>{const{samples:t,timeBase:r}=e,i=z(r);if(!i)return 0;const n=r.toRate({rounded:!0}),o=60*n,a=60*n-i,s=10*(o-i)+i,c=Math.floor((t+1)/s),l=Math.max(0,(t+1)%s-o),u=Math.floor(l/a),f=l%a>0?i:0;return c*9*i+u*i+f},J={conformTimeBase:{dropFrame:void 0,frameSeparator:void 0},toText:{constant:!1,fraction:!1,includeTimeBaseForSeconds:!1},toDuration:{format:void 0}};class S{constructor(t,r){this.samples=0,this.timeBase=new A;const{samples:i,timeBase:n}=t||{};if(i!==void 0)if(typeof i=="number")this.samples=i;else if(typeof i=="string")i==="-INF"?this.samples=-1/0:i==="+INF"?this.samples=1/0:this.samples=Number(i);else throw new Error(`samples is not number/string/-Inf/+Inf is: ${i}`);n!==void 0&&(n instanceof A?this.timeBase=n:this.timeBase=y(n)),this.dropFrame=(r==null?void 0:r.dropFrame)??Ie(this.timeBase),this.frameSeparator=(r==null?void 0:r.frameSeparator)??(this.dropFrame?";":":")}add(t){if(!(t!=null&&t.timeBase)||(t==null?void 0:t.samples)===void 0)throw Error("Invalid timeCodeType, cannot be added");const{numerator:r,denominator:i}=(t==null?void 0:t.timeBase)||{};let n=t;(r!==this.timeBase.numerator||i!==this.timeBase.denominator)&&(n=t.conformTimeBase(this.timeBase));const{samples:o}=n;return new S({samples:this.samples+o,timeBase:this.timeBase})}subtract(t){if(!(t!=null&&t.timeBase)||(t==null?void 0:t.samples)===void 0)throw Error("Invalid timeCodeType, cannot be subtracted");const{timeBase:{numerator:r,denominator:i}={}}=t;let n=t;(r!==this.timeBase.numerator||i!==this.timeBase.denominator)&&(n=t.conformTimeBase(this.timeBase));const{samples:o}=n;return new S({samples:this.samples-o,timeBase:this.timeBase})}conformTimeBase(t,r){const i=t instanceof A?t:y(t),n=Math.floor(this.samples/(this.timeBase.toRate({fixed:!1})/i.toRate({fixed:!1}))),o={...J.conformTimeBase,...r||{}};return new S({samples:n,timeBase:i},o)}toText(t){let r=`${this.samples}`;const i={...J.toText,...t||{}},n=this.timeBase.toText(i);return(t!=null&&t.includeTimeBaseForSeconds||!["1","1:1"].includes(n))&&(r=[this.samples,n].join("@")),r}toUnits(){if(this.samples===1/0)return{hours:1/0,minutes:1/0,seconds:1/0,frames:1/0};const t=this.samples+(this.dropFrame?Se(this):0);let r=this.timeBase.toRate({rounded:!0});["23.976","23.98"].includes(this.timeBase.toConstant())&&(r=this.timeBase.toRate({fixed:!0}));const i=Math.floor(t/(3600*r)),n=Math.floor(t/(60*r))%60,o=Math.floor(t/r)%60,a=Math.floor(t%r);return{hours:i,minutes:n,seconds:o,frames:a}}toTime(){const t=this.samples+Se(this),{hours:r,minutes:i,seconds:n}=this.toUnits(),o=this.timeBase.toRate({rounded:!0}),a=t%o,s=Math.floor(1e3*a/o),c=a/o;return{hours:r,minutes:i,seconds:n,milliseconds:s,partialSeconds:c}}toSeconds(){const{numerator:t,denominator:r}=this.timeBase;return Math.round(1e3*+(this.samples*t/r))/1e3}toDuration(t){const{format:r}={...J.toDuration,...t||{}},{hours:i,...n}=this.toTime();let{minutes:o,seconds:a,milliseconds:s}=n;if(r&&typeof r!="string")throw Error("format has to be a string");const c=(f,T)=>!r.includes(f)||!T.some(d=>r.includes(d)&&r.lastIndexOf(f)>r.indexOf(d));if(r&&!(c("h",["m","s","S"])&&c("m",["s","S"])&&c("s",["S"])))throw Error("format order is unsupported (has to be h, m, s then S)");if(!r)return`${i>0?`${i}:${`${o}`.padStart(2,"0")}`:o}:${`${a}`.padStart(2,"0")}`;const l=(f,T)=>{let d=f;for(;T[d]===T[d+1];)d+=1;return d-f+1},u=["h","m","s","S"],_=[];return[...r].forEach((f,T,d)=>{switch(f){case"h":{if(d[T-1]==="h")break;const m=l(T,d);_.push(`${i}`.padStart(m,"0")),u.includes(d[T+m])&&_.push(":");break}case"m":{if(d[T-1]==="m")break;const m=l(T,d);r.includes("h")||(o+=i*60),_.push(`${o}`.padStart(m,"0")),u.includes(d[T+m])&&_.push(":");break}case"s":{if(d[T-1]==="s")break;const m=l(T,d);r.includes("m")||(a+=o*60),_.push(`${a}`.padStart(m,"0")),u.includes(d[T+m])&&_.push(".");break}case"S":{if(d[T-1]==="S")break;const m=l(T,d);r.includes("s")||(s+=a*1e3),_.push(`${Math.round(s/10**(3-m))}`.padStart(m,"0"));break}default:_.push(f)}}),_.join("")}toSmpte(){if(this.samples===-1/0)return"00:00:00:00";const{hours:t,minutes:r,seconds:i,frames:n}=this.toUnits(),o=[t.toFixed().padStart(2,"0"),r.toFixed().padStart(2,"0"),i.toFixed().padStart(2,"0")].join(":"),a=Math.max(2,`${this.timeBase.toRate({rounded:!0})-1}`.length);return[o,`${n}`.padStart(a,"0")].join(this.frameSeparator)}toObject(){return{samples:this.samples,timeBase:this.timeBase.toObject()}}toJson(){return console.warn("Deprecated - use toObject instead"),this.toObject()}}const at=(e,t)=>{let r=Math.abs(e),i=Math.abs(t);for(;r&&i&&r!==i;)r>i?[r,i]=[r-i,i]:[r,i]=[r,i-r];return r||i},Re=(e,t)=>{const{timeBase:r,useGCD:i=!1,...n}=t||{},o=`${e}`.replace(/,/g,".");if(Number.isNaN(+o))throw new Error(`seconds must be digits, is ${e}`);let a=1,s;if(Number.isInteger(+o))s=+o*a;else{const[,l]=o.split("."),u=Math.min((l==null?void 0:l.length)??0,16);a*=10**u,s=Math.round(Number(o)*a)}if(r===void 0&&i){const l=at(a,s);s/=l,a/=l}const c=new S({samples:s,timeBase:{denominator:a,numerator:1}},n);return r!==void 0?c.conformTimeBase(y(r),n):c},ct=([e,t,r,i],n,o)=>{const a=o.toRate({rounded:!0}),s=z(o);if(n===0||!s)return 0;const c=t%10!==0,l=c&&r===0,u=e*(3600*a-54*s),_=t*60*a-(t-Math.ceil(t/10))*s,f=r*a-(c&&r>1?s:0);if(l&&i<s)throw new Error(`Frame does not exist for ${o.toConstant()||o.toRate()} drop-frame`);const T=l?i-s:i,d=u+_+f+T;return n-d},X=(e,t,r)=>{const[i,n,o,a]=e,s=t.toRate({rounded:!0}),c=i*3600*s+n*60*s+o*s+a;return c-(r?ct(e,c,t):0)},dt=e=>{const[t]=(e==null?void 0:e.match(/[^0-9:\-_]/))||[];let r=[];if(t){const[n,o]=e.split(t);r=[...n.split(":"),o]}else r=e.split(":");if(r.length!==4)throw new Error('Invalid format, must be "##:##:##:##');if(r.some(n=>Number.isNaN(n)))throw new Error("Invalid format, values must be numbers");const i=t||":";return{smpteValues:r.map(Number),smpteFrameSeparator:i}},ut=["error","add","ignore"],lt={exceedingMode:"error",timeBase:void 0,dropFrame:void 0,frameSeparator:void 0},ge=(e,t)=>{const{exceedingMode:r,timeBase:i,...n}={...lt,...t};if([null,void 0].includes(e))throw new Error("smpte cannot be undefined or null");if(typeof e!="string")throw new Error(`smpte must be a string, is ${JSON.stringify(e)}`);const{smpteValues:o,smpteFrameSeparator:a}=dt(e),s=y(i),c={...n,frameSeparator:(n==null?void 0:n.frameSeparator)||a,...(n==null?void 0:n.dropFrame)===void 0?{dropFrame:i!==void 0?Ie(s):[";",","].includes(a)}:{}},l=s.toRate({rounded:!0}),u=Math.max(0,l-1);if(o.some(f=>f<0))throw new Error("Negative values are not supported");let _;switch(r){case"error":{const[f,T,d,m]=o;if(f>=100||T>=60)throw Error("Minutes has to be less than 60");if(d>=60)throw Error("Seconds has to be less than 60");if(m>u)throw Error(`Frames has to be less or equal to ${u}`);_=X(o,s,c==null?void 0:c.dropFrame);break}case"ignore":{const[f,T,d,m]=o,E=[Math.min(100,f),Math.min(59,T),Math.min(59,d),Math.min(u,m)];_=X(E,s,c==null?void 0:c.dropFrame);break}case"add":{_=X(o,s,c==null?void 0:c.dropFrame);break}default:throw new Error(`Invalid exceedingMode, options are ${JSON.stringify(ut)}`)}return new S({samples:_,timeBase:s},c)},_t={timeBase:void 0,dropFrame:void 0,frameSeparator:void 0},C=(e,t)=>{const{timeBase:r,...i}={..._t,...t};let n;if(e===void 0)n={samples:0};else if(typeof e=="number")n={samples:e};else if(e.includes("@")){const[a,s]=e.split("@");n={samples:Number(a),timeBase:L(s)}}else e==="-INF"?n={samples:-1/0}:e==="+INF"?n={samples:1/0}:n={samples:Number(e)};if(Number.isNaN(n==null?void 0:n.samples)||n.timeBase&&!(n.timeBase instanceof A))throw new Error(`timeCodeText must be a number or sample@timeBase - is ${e}`);const o=new S(n,i);return r?o.conformTimeBase(y(r),i):o},mt={dropFrame:void 0,frameSeparator:void 0},M=(e,t)=>new S(e,{...mt,...t}),ft=e=>!!e.match(/^(\d\d+):(\d\d+):(\d\d+)(:|;|\.|,)(\d\d+)$/),pt=e=>!Number.isNaN(Number(e)),be=(e,t)=>{if(e instanceof S)return e;if(typeof e!="string"&&typeof e!="number")return M(e,t);if(typeof e=="string"&&ft(e))return ge(e,t);if(["string","number"].includes(typeof e)&&pt(e))return Re(e,t);if(typeof e=="string")return C(e,t)};function Ne({hours:e=0,minutes:t=0,seconds:r=0,partialSeconds:i=0}){const n=e.toFixed().padStart(2,"0"),o=t.toFixed().padStart(2,"0"),a=r.toFixed().padStart(2,"0"),s=(i*10).toFixed().padStart(3,"0");return`${n}:${o}:${a}.${s}`}const Tt={subtitleGroup:"stl_subtitle",subtitleField:"stl_text"},Et=(e,t)=>{const{subtitleGroup:r,subtitleField:i}={...Tt,...t||{}},{timespan:n=[]}=e||{};return n.length===0?"":`WEBVTT
1
+ (function(p,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("filesize")):typeof define=="function"&&define.amd?define(["exports","filesize"],I):(p=typeof globalThis<"u"?globalThis:p||self,I(p["@vidispine/vdt-js"]={},p.filesize))})(this,function(p,I){"use strict";const Z=(e,t)=>t?Z(t,e%t):e,P=e=>{const{width:t,height:r}=e||{};if(t===void 0||r===void 0)return;const i=Z(t,r);let n=t/i,o=r/i;return n>21&&(o=1,n=(t/r).toFixed(2)),[n,o].join(":")},b=e=>Object.fromEntries((e==null?void 0:e.map(({key:t,value:r})=>[t,r]))||[]),Ve={ACCESSCONTROL_READ:"_accesscontrol_read",ACCESSCONTROL_WRITE:"_accesscontrol_write",ADMINISTRATOR:"_administrator",AUTO_PROJECTION_READ:"_auto_projection_read",AUTO_PROJECTION_WRITE:"_auto_projection_write",COLLECTION_NOTIFICATION_READ:"_collection_notification_read",COLLECTION_NOTIFICATION_WRITE:"_collection_notification_write",COLLECTION_READ:"_collection_read",COLLECTION_WRITE:"_collection_write",CONFIGURATION_READ:"_configuration_read",DELETION_LOCK_NOTIFICATION_READ:"_deletion_lock_notification_read",DELETION_LOCK_NOTIFICATION_WRITE:"_deletion_lock_notification_write",DELETION_LOCK_READ:"_deletion_lock_read",DELETION_LOCK_WRITE:"_deletion_lock_write",DOCUMENT_NOTIFICATION_READ:"_document_notification_read",DOCUMENT_NOTIFICATION_WRITE:"_document_notification_write",DOCUMENT_READ:"_document_read",DOCUMENT_WRITE:"_document_write",ERROR_READ:"_error_read",ERROR_WRITE:"_error_write",EXPORT:"_export",EXPORT_TEMPLATE_READ:"_export_template_read",EXPORT_TEMPLATE_WRITE:"_export_template_write",EXTERNAL_ID_READ:"_external_id_read",EXTERNAL_ID_WRITE:"_external_id_write",FILE_NOTIFICATION_READ:"_file_notification_read",FILE_NOTIFICATION_WRITE:"_file_notification_write",FILE_READ:"_file_read",FILE_WRITE:"_file_write",GROUP_READ:"_group_read",GROUP_WRITE:"_group_write",IMPORT_WRITE:"_import",ITEM_ID_READ:"_item_id_read",ITEM_ID_WRITE:"_item_id_write",ITEM_NOTIFICATION_READ:"_item_notification_read",ITEM_NOTIFICATION_WRITE:"_item_notification_write",ITEM_WRITE:"_item_write",ITEM_SEARCH:"_item_search",ITEM_SHAPE_READ:"_item_shape_read",ITEM_SHAPE_WRITE:"_item_shape_write",ITEM_TIMELINE_READ:"_item_timeline_read",ITEM_TIMELINE_WRITE:"_item_timeline_write",ITEM_URI:"_item_uri",JOB_NOTIFICATION_READ:"_job_notification_read",JOB_NOTIFICATION_WRITE:"_job_notification_write",JOB_READ:"_job_read",JOB_WRITE:"_job_write",LIBRARY_READ:"_library_read",LIBRARY_WRITE:"_library_write",LOCK_READ:"_lock_read",LOCK_WRITE:"_lock_write",LOG_READ:"_log_read",METADATA_DATASET_READ:"_metadata_dataset_read",METADATA_DATASET_WRITE:"_metadata_dataset_write",METADATA_FIELD_GROUP_READ:"_metadata_field_group_read",METADATA_FIELD_GROUP_WRITE:"_metadata_field_group_write",METADATA_FIELD_READ:"_metadata_field_read",METADATA_FIELD_WRITE:"_metadata_field_write",METADATA_GLOBAL_READ:"_metadata_global_read",METADATA_GLOBAL_WRITE:"_metadata_global_write",METADATA_LOCK_READ:"_metadata_lock_read",METADATA_LOCK_WRITE:"_metadata_lock_write",METADATA_READ:"_metadata_read",METADATA_SCHEMA_READ:"_metadata_schema_read",METADATA_SCHEMA_WRITE:"_metadata_schema_write",METADATA_WRITE:"_metadata_write",OTIF_ANALYZE:"_otif_analyze",OTIF_READ:"_otif_read",OTIF_WRITE:"_otif_write",PLACEHOLDER_NOTIFICATION_READ:"_placeholder_notification_read",PLACEHOLDER_NOTIFICATION_WRITE:"_placeholder_notification_write",PROJECTION_READ:"_projection_read",PROJECTION_WRITE:"_projection_write",QUOTA_NOTIFICATION_READ:"_quota_notification_read",QUOTA_NOTIFICATION_WRITE:"_quota_notification_write",QUOTA_READ:"_quota_read",QUOTA_WRITE:"_quota_write",RELATION_READ:"_relation_read",RELATION_WRITE:"_relation_write",RESOURCE_READ:"_resource_read",RESOURCE_WRITE:"_resource_write",RUN_AS:"_run_as",SEARCH:"_search",SEQUENCE_READ:"_sequence_read",SEQUENCE_WRITE:"_sequence_write",SHAPE_TAG_READ:"_shape_tag_read",SHAPE_TAG_WRITE:"_shape_tag_write",SITE_MANAGER:"_site_manager",SITE_RULE_READ:"_site_rule_read",SITE_RULE_WRITE:"_site_rule_write",STORAGE_GROUP_READ:"_storage_group_read",STORAGE_GROUP_WRITE:"_storage_group_write",STORAGE_NOTIFICATION_READ:"_storage_notification_read",STORAGE_NOTIFICATION_WRITE:"_storage_notification_write",STORAGE_READ:"_storage_read",STORAGE_RULE_READ:"_storage_rule_read",STORAGE_RULE_WRITE:"_storage_rule_write",STORAGE_WRITE:"_storage_write",SUPER_ACCESS_USER:"_super_access_user",TASKDEFINITION_READ:"_taskdefinition_read",TASKDEFINITION_WRITE:"_taskdefinition_write",THUMBNAIL_READ:"_thumbnail_read",THUMBNAIL_WRITE:"_thumbnail_write",TRANSCODER:"_transcoder",TRANSFER_READ:"_transfer_read",TRANSFER_WRITE:"_transfer_write",USER:"_user",VXA:"_vxa",VXA_READ:"_vxa_read"},Ye=["stl_subtitle","stl_tti","stl_gsi","mrk_marker","pho_validation","pho_resource","pho_error","facedetect_rect","facedetect_face","originalTrackFilename","stl_gsiHeader"],He=["title","user","shapeTag","representativeThumbnail","representativeThumbnailNoAuth","representativeItems","itemId","collectionId","mediaType","mimeType","created","startTimeCode","startSeconds","fieldValidationError","schemaValidationError","originalFilename","originalUri","originalAudioCodec","originalVideoCodec","originalHeight","originalWidth","originalFormat","durationSeconds","durationTimeCode","solr-index","__user","__collection","__collection_size","__ancestor_collection","__ancestor_collection_size","__shape","__shape_size","__shape_last_added","__placeholder_shape_size","__version","__version_count","__storage","__storage_size","__shapetag_{tag}_hash_{hash}","__storage_{tag}","__storage_{tag}_size","__storagegroup","__storagegroup_size","__sequence","__sequence_size","__metadata_last_modified","__external_id","__deletion_lock_id","__deletion_lock_expiry","__child_collection","__child_collection_size","__parent_collection","__parent_collection_size","__items_size","stl_text","stl_justification","stl_xrelative","stl_yrelative","stl_vertical","stl_verticalbase","stl_horizontalbase","stl_sizerelative","stl_color","stl_outline","stl_outlinecolor","stl_outlinesize","stl_font","stl_service","stl_tti","stl_gsi","cct","tcd","tcf","oet","cd","mnc","cpn","dfc","tcp","tcs","tet","tnb","tnd","en","co","tng","rd","mnr","dsc","opt","lc","tpt","tn","slr","tns","rn","pub","dsn","ecd","mrk_zerolength","mrk_text","mrk_color","pho_resource_name","pho_error_level","pho_error_code","pho_error_description","facedetect_rect_width","facedetect_rect_height","facedetect_rect_y","facedetect_rect_x","facedetect_pid","facedetect_rect","trackId","eidr_actor","eidr_alternateId","eidr_countryOfOrigin","eidr_director","eidr_id","eidr_referentType","eidr_releaseDate","eidr_resourceName","eidr_status","eidr_sync","ttml_div","ttml_root","vxa_collection_id","vxaId","vxaLocalPath","tco","cs","ebn","tf","cf","sgn","tci","jc","vp","sn"],U=["uuid","user","timestamp","change","conflict","mode"],ee=["name","id","referenced","data","inheritance"],te=[...U,"value","lang"],re=[...U,...ee,"value","reference","type","track"],ne=[...U,...ee,"cycle","field","group"],G=e=>Object.prototype.toString.call(e)==="[object Object]"&&e.value!==void 0,ie=e=>["string","boolean","number"].includes(typeof e),oe=e=>G(e)&&((e==null?void 0:e.value)===null||G(e.value)||ie(e.value)),ke=e=>Object.prototype.toString.call(e)==="[object Object]",se=e=>Object.prototype.toString.call(e)==="[object Date]",ae=e=>e===null?!0:Array.isArray(e)?e.some(ae):ie(e)||oe(e)||se(e),ce=e=>{const t=r=>ke(r)&&r.value===void 0&&!!Object.entries(e);return Array.isArray(e)?e.every(ce):t(e)},xe=(e,t)=>e+(t.length>1?"s":""),de=(e,t)=>{const r=e.filter(i=>!t.includes(i));if(r.length)throw Error(`Unsupported ${xe("key",r)} (${r.join(", ")})`)},ue=e=>{if(Array.isArray(e))throw Error("Invalid value inside value object, cannot be array");return[void 0,null].includes(e)?{}:se(e)?{value:e.toISOString()}:{value:e.toString()}},Ke=e=>{if(de(Object.keys(e),te),Object.keys(e).length===0)throw Error("Invalid value object, cannot be empty object");if(typeof(e==null?void 0:e.value)=="string")return e;const t=ue(e==null?void 0:e.value);return{...e,...t!==void 0?t:{}}},$=e=>{if(![void 0,null].includes(e))return Array.isArray(e)?e.flatMap($):G(e)?Ke(e):ue(e)},ze=e=>{de(Object.keys(e),re);const t=$(e==null?void 0:e.value);if(t===void 0){const{value:r,...i}=e;return i}return{...e,value:[...Array.isArray(t)?t:[t]]}},Je=e=>{if(oe(e))return ze(e);const t=$(e);if(t!==void 0)return{value:[...Array.isArray(t)?t:[t]]}},le=e=>{const t=[],r=[];let i={};return Object.entries(e||{}).forEach(([n,o])=>{if(ne.includes(n))i={...i,[n]:o};else if(ae(o))try{r.push({name:n,...Je(o)})}catch(a){throw Error(a.message+(n?` for field "${n}"`:""))}else if(ce(o))(Array.isArray(o)?o:[o]).forEach(a=>{t.push({name:n,...le(a)})});else throw Error(`Unhandled value for "${n}"`)}),{...i,...t.length>0?{group:t}:{},...r.length>0?{field:r}:{}}},Xe=e=>{const{start:t="-INF",end:r="+INF",base:i=void 0,...n}=e,{group:o,field:a}=le(n);return{...o?{group:o}:{},...a?{field:a}:{},start:t.toString(),end:r.toString(),...i?{base:i}:{}}},qe=e=>({timespan:(Array.isArray(e)?e:[e||{}]).map(t=>Xe(t))}),Qe=(e,t)=>{var n,o;const[r]=((n=e==null?void 0:e.start)==null?void 0:n.split("@"))||[],[i]=((o=t==null?void 0:t.start)==null?void 0:o.split("@"))||[];return Number(r)<Number(i)?-1:Number(r)>Number(i)?1:0},F=e=>Array.isArray(e)?e:e&&[e]||[],_e=e=>Array.isArray(e)?e.pop():e,Ze=e=>(e==null?void 0:e.every(t=>typeof t=="string"))||!1,me={includeValueAttributes:!1};function et(e,t){const{includeValueAttributes:r}={...me,...t||{}};if(r===!1)return e==null?void 0:e.value;const{value:i,...n}=e;return{...r===!0&&n||Array.isArray(r)&&Object.fromEntries(Object.entries(n).filter(([a])=>r.includes(a)))||{},value:i}}const fe={...me,joinValue:void 0,arrayOnSingleValue:!0};function tt(e,t){const{joinValue:r,arrayOnSingleValue:i,...n}={...fe,...t||{}},o=e==null?void 0:e.map(a=>et(a,n));return Ze(o)&&r?o==null?void 0:o.join(r):i!==!0&&(o==null?void 0:o.length)<=1?o==null?void 0:o[0]:o}const pe={includeFieldAttributes:!1,...fe},rt=(e,t)=>{const{includeFieldAttributes:r,...i}={...pe,...t||{}},{value:n,...o}=e,a=tt(n,i),s=r===!0&&o||Array.isArray(r)&&Object.fromEntries(Object.entries(o).filter(([c])=>r.includes(c)))||{};return r?{...s,value:a}:a},w={...pe,fieldAsList:!1,arrayOnSingleField:!1,overrideField:void 0},V=(e,t)=>{const r={...w,...t||{}},{fieldAsList:i,arrayOnSingleField:n,overrideField:o}=r,a=o===!0&&i===!1,s={};return e==null||e.forEach(c=>{const{name:l}=c,u=rt(c,r),_=n===!0?F(u):u,f=s[l];f?a?s[l]=u:s[l]=[F(f),F(u)].flat():s[l]=_}),i===!0?Object.values(s).flat():s},Te={...w,includeGroupAttributes:!1,groupAsList:!1,arrayOnSingleGroup:!1,overrideGroup:void 0},nt=(e,t)=>{const r={...Te,...t||{}},{includeGroupAttributes:i}=r,n=Object.fromEntries(Object.entries(r).filter(([_])=>Object.keys(w).includes(_))),{field:o,group:a,...s}=e,c=o&&V(o,n),l=a&&H(a,r);return{...i===!0&&s||Array.isArray(i)&&Object.fromEntries(Object.entries(s).filter(([_])=>i.includes(_)))||{},...n!=null&&n.fieldAsList?c&&{field:c}||{}:c,...r!=null&&r.groupAsList?l&&{group:l}||{}:l}},Y=Te,H=(e,t)=>{const r={...Y,...t||{}},{groupAsList:i,arrayOnSingleGroup:n,overrideGroup:o}=r,a=o===!0&&i===!1,s={};return e==null||e.forEach(c=>{const{name:l}=c,u=nt(c,r),_=n===!0?F(u):u,f=s[l];f?a?s[l]=u:s[l]=[F(f),F(u)].flat():s[l]=_}),i?Object.values(s).flat():s},Ee={...Y,includeTimespanAttributes:!1,flat:!1,arrayOnSingle:!1,arrayOnSingleValue:!0,arrayOnSingleGroup:void 0,arrayOnSingleField:void 0},he=(e,t)=>{const r={...Ee,...t||{}},{includeTimespanAttributes:i,arrayOnSingle:n,flat:o}=r,a=Object.fromEntries(Object.entries(t).map(([d,m])=>{if(Object.keys(Y).includes(d))return["arrayOnSingleGroup","arrayOnSingleField","arrayOnSingleValue"].includes(d)&&(m!==void 0?m:n===!0)?[d,!0]:["overrideGroup","overrideField"].includes(d)&&(m!==void 0?m:o===!0)?[d,!0]:[d,m]}).filter(d=>!!d)),s=Object.fromEntries(Object.entries(t).map(([d,m])=>{if(Object.keys(w).includes(d))return["arrayOnSingleField","arrayOnSingleValue"].includes(d)&&(m!==void 0?m:n===!0)?[d,!0]:["overrideField"].includes(d)&&(m!==void 0?m:o===!0)?[d,!0]:[d,m]}).filter(d=>!!d)),{field:c,group:l,...u}=e||{},_=c&&V(c,s),f=l&&H(l,a);return{...i===!0&&u||Array.isArray(i)&&Object.fromEntries(Object.entries(u).filter(([d])=>i.includes(d)))||{},...s!=null&&s.fieldAsList?{field:_}:_,...a!=null&&a.groupAsList?{group:f}:f}},k={...Ee,timespanAsList:!1,joinTimespan:"_",sortTimespan:!1,flat:!1,flatTimespan:void 0},x=(e,t)=>{const r={...k,...t||{}},{timespanAsList:i,joinTimespan:n,sortTimespan:o,flat:a,flatTimespan:s,...c}=r,l={flat:a,...c};o&&e.sort(Qe);const u=(s!==void 0?s===!0:a===!0)&&i===!1,_={};return e==null||e.forEach(f=>{const{start:T,end:d}=f,m=u?"flat":[T,d].join(n),E=he(f,l),h=_[m];h?u?T==="-INF"&&d==="+INF"?_[m]={..._e(h),...E}:_[m]={...E,..._e(h)}:_[m]=[...F(h),E]:_[m]=E}),i===!0?Object.values(_):u?Object.values(_).pop():_},it={...k,includeMetadataAttributes:!1,flat:!1};function ot(e,t){const r={...it,...t||{}},{includeMetadataAttributes:i,flat:n}=r,{timespan:o=[],...a}=e||{},s=Object.fromEntries(Object.entries(t).map(([u,_])=>{if(Object.keys(k).includes(u))return["onlyGeneric","overrideGroup","overrideField"].includes(u)&&(_!==void 0?_:n===!0)?[u,!0]:[u,_]}).filter(u=>!!u)),c=x(o,s);return{...i===!0&&{...a,...a.revision?{revision:a.revision.split(",")}:{}}||Array.isArray(i)&&Object.fromEntries(Object.entries(a).map(([u,_])=>{if(i.includes(u))return[u,u==="revision"&&typeof _=="string"?_.split(","):_]}).filter(u=>!!u))||{},...s!=null&&s.timespanAsList?{timespan:c}:c}}const st=e=>{const{field:t=[]}=e||{};return b(t)},K={PAL:{denominator:25,numerator:1},NTSC:{denominator:3e4,numerator:1001},NTSC30:{denominator:30,numerator:1},29.97:{denominator:3e4,numerator:1001},59.94:{denominator:6e4,numerator:1001},23.976:{denominator:48e3,numerator:2002},23.98:{denominator:48e3,numerator:2002}},Ae=Object.keys(K),Oe={toText:{constant:!1,fraction:!1},toRate:{fixed:!0,rounded:!1}};class A{constructor(t){this.numerator=1,this.denominator=1;const{numerator:r=1,denominator:i=1}=t||{};this.numerator=Number(r),this.denominator=Number(i)}toConstant(){let t;return Object.entries(K).find(r=>{const[i,n]=r,{numerator:o,denominator:a}=n;return o===this.numerator&&a===this.denominator?(t=i,!0):!1}),t}toText(t){const{constant:r,fraction:i}={...Oe.toText,...t};if(r){const o=this.toConstant();if(o)return o}return i||this.numerator>1?[this.denominator,this.numerator].join(":"):String(this.denominator)}toRate(t){const r=this.denominator/this.numerator;if(Number.isInteger(r))return r;const{rounded:i,fixed:n}={...Oe.toRate,...t||{}};return i?Math.round(r):n===!0||typeof n=="number"?Number(r.toFixed(typeof n=="boolean"?2:n)):r}toObject(){return{denominator:this.denominator,numerator:this.numerator}}toJson(){return console.warn("Deprecated - use toObject instead"),this.toObject()}}const L=e=>{if(e===void 0)return new A;if(typeof e=="number")return new A({denominator:e});if(typeof e=="string"&&e.includes(":")){const[t,r]=e.split(":");return new A({denominator:t,numerator:r})}if(Ae.includes(e))return new A(K[e]);if(!["string","number"].includes(typeof e)||Number.isNaN(Number(e)))throw new Error(`timeBaseText must be a number or ${Ae.join(",")} - is ${JSON.stringify(e)}`);return new A({denominator:Number(e)})},D=e=>new A(e),y=e=>e instanceof A?e:typeof e=="string"||typeof e=="number"?L(e):D(e),z=e=>{const t=e.toConstant();return t==="59.94"&&4||["NTSC","29.97"].includes(t)&&2||void 0},Ie=e=>z(e)>0,Se=e=>{const{samples:t,timeBase:r}=e,i=z(r);if(!i)return 0;const n=r.toRate({rounded:!0}),o=60*n,a=60*n-i,s=10*(o-i)+i,c=Math.floor((t+1)/s),l=Math.max(0,(t+1)%s-o),u=Math.floor(l/a),f=l%a>0?i:0;return c*9*i+u*i+f},J={conformTimeBase:{dropFrame:void 0,frameSeparator:void 0},toText:{constant:!1,fraction:!1,includeTimeBaseForSeconds:!1},toDuration:{format:void 0}};class S{constructor(t,r){this.samples=0,this.timeBase=new A;const{samples:i,timeBase:n}=t||{};if(i!==void 0)if(typeof i=="number")this.samples=i;else if(typeof i=="string")i==="-INF"?this.samples=-1/0:i==="+INF"?this.samples=1/0:this.samples=Number(i);else throw new Error(`samples is not number/string/-Inf/+Inf is: ${i}`);n!==void 0&&(n instanceof A?this.timeBase=n:this.timeBase=y(n)),this.dropFrame=(r==null?void 0:r.dropFrame)??Ie(this.timeBase),this.frameSeparator=(r==null?void 0:r.frameSeparator)??(this.dropFrame?";":":")}add(t){if(!(t!=null&&t.timeBase)||(t==null?void 0:t.samples)===void 0)throw Error("Invalid timeCodeType, cannot be added");const{numerator:r,denominator:i}=(t==null?void 0:t.timeBase)||{};let n=t;(r!==this.timeBase.numerator||i!==this.timeBase.denominator)&&(n=t.conformTimeBase(this.timeBase));const{samples:o}=n;return new S({samples:this.samples+o,timeBase:this.timeBase})}subtract(t){if(!(t!=null&&t.timeBase)||(t==null?void 0:t.samples)===void 0)throw Error("Invalid timeCodeType, cannot be subtracted");const{timeBase:{numerator:r,denominator:i}={}}=t;let n=t;(r!==this.timeBase.numerator||i!==this.timeBase.denominator)&&(n=t.conformTimeBase(this.timeBase));const{samples:o}=n;return new S({samples:this.samples-o,timeBase:this.timeBase})}conformTimeBase(t,r){const i=t instanceof A?t:y(t),n=Math.floor(this.samples/(this.timeBase.toRate({fixed:!1})/i.toRate({fixed:!1}))),o={...J.conformTimeBase,...r||{}};return new S({samples:n,timeBase:i},o)}toText(t){let r=`${this.samples}`;const i={...J.toText,...t||{}},n=this.timeBase.toText(i);return(t!=null&&t.includeTimeBaseForSeconds||!["1","1:1"].includes(n))&&(r=[this.samples,n].join("@")),r}toUnits(){if(this.samples===1/0)return{hours:1/0,minutes:1/0,seconds:1/0,frames:1/0};const t=this.samples+(this.dropFrame?Se(this):0);let r=this.timeBase.toRate({rounded:!0});["23.976","23.98"].includes(this.timeBase.toConstant())&&(r=this.timeBase.toRate({fixed:!0}));const i=Math.floor(t/(3600*r)),n=Math.floor(t/(60*r))%60,o=Math.floor(t/r)%60,a=Math.floor(t%r);return{hours:i,minutes:n,seconds:o,frames:a}}toTime(){const t=this.samples+Se(this),{hours:r,minutes:i,seconds:n}=this.toUnits(),o=this.timeBase.toRate({rounded:!0}),a=t%o,s=Math.floor(1e3*a/o),c=a/o;return{hours:r,minutes:i,seconds:n,milliseconds:s,partialSeconds:c}}toSeconds(){const{numerator:t,denominator:r}=this.timeBase;return Math.round(1e3*+(this.samples*t/r))/1e3}toDuration(t){const{format:r}={...J.toDuration,...t||{}},{hours:i,...n}=this.toTime();let{minutes:o,seconds:a,milliseconds:s}=n;if(r&&typeof r!="string")throw Error("format has to be a string");const c=(f,T)=>!r.includes(f)||!T.some(d=>r.includes(d)&&r.lastIndexOf(f)>r.indexOf(d));if(r&&!(c("h",["m","s","S"])&&c("m",["s","S"])&&c("s",["S"])))throw Error("format order is unsupported (has to be h, m, s then S)");if(!r)return`${i>0?`${i}:${`${o}`.padStart(2,"0")}`:o}:${`${a}`.padStart(2,"0")}`;const l=(f,T)=>{let d=f;for(;T[d]===T[d+1];)d+=1;return d-f+1},u=["h","m","s","S"],_=[];return[...r].forEach((f,T,d)=>{switch(f){case"h":{if(d[T-1]==="h")break;const m=l(T,d);_.push(`${i}`.padStart(m,"0")),u.includes(d[T+m])&&_.push(":");break}case"m":{if(d[T-1]==="m")break;const m=l(T,d);r.includes("h")||(o+=i*60),_.push(`${o}`.padStart(m,"0")),u.includes(d[T+m])&&_.push(":");break}case"s":{if(d[T-1]==="s")break;const m=l(T,d);r.includes("m")||(a+=o*60),_.push(`${a}`.padStart(m,"0")),u.includes(d[T+m])&&_.push(".");break}case"S":{if(d[T-1]==="S")break;const m=l(T,d);r.includes("s")||(s+=a*1e3),_.push(`${Math.round(s/10**(3-m))}`.padStart(m,"0"));break}default:_.push(f)}}),_.join("")}toSmpte(){if(this.samples===-1/0)return"00:00:00:00";const{hours:t,minutes:r,seconds:i,frames:n}=this.toUnits(),o=[t.toFixed().padStart(2,"0"),r.toFixed().padStart(2,"0"),i.toFixed().padStart(2,"0")].join(":"),a=Math.max(2,`${this.timeBase.toRate({rounded:!0})-1}`.length);return[o,`${n}`.padStart(a,"0")].join(this.frameSeparator)}toObject(){return{samples:this.samples,timeBase:this.timeBase.toObject()}}toJson(){return console.warn("Deprecated - use toObject instead"),this.toObject()}}const at=(e,t)=>{let r=Math.abs(e),i=Math.abs(t);for(;r&&i&&r!==i;)r>i?[r,i]=[r-i,i]:[r,i]=[r,i-r];return r||i},Re=(e,t)=>{const{timeBase:r,useGCD:i=!1,...n}=t||{},o=`${e}`.replace(/,/g,".");if(Number.isNaN(+o))throw new Error(`seconds must be digits, is ${e}`);let a=1,s;if(Number.isInteger(+o))s=+o*a;else{const[,l]=o.split("."),u=Math.min((l==null?void 0:l.length)??0,16);a*=10**u,s=Math.round(Number(o)*a)}if(r===void 0&&i){const l=at(a,s);s/=l,a/=l}const c=new S({samples:s,timeBase:{denominator:a,numerator:1}},n);return r!==void 0?c.conformTimeBase(y(r),n):c},ct=([e,t,r,i],n,o)=>{const a=o.toRate({rounded:!0}),s=z(o);if(n===0||!s)return 0;const c=t%10!==0,l=c&&r===0,u=e*(3600*a-54*s),_=t*60*a-(t-Math.ceil(t/10))*s,f=r*a-(c&&r>1?s:0);if(l&&i<s)throw new Error(`Frame does not exist for ${o.toConstant()||o.toRate()} drop-frame`);const T=l?i-s:i,d=u+_+f+T;return n-d},X=(e,t,r)=>{const[i,n,o,a]=e,s=t.toRate({rounded:!0}),c=i*3600*s+n*60*s+o*s+a;return c-(r?ct(e,c,t):0)},dt=e=>{const[t]=(e==null?void 0:e.match(/[^0-9:\-_]/))||[];let r=[];if(t){const[n,o]=e.split(t);r=[...n.split(":"),o]}else r=e.split(":");if(r.length!==4)throw new Error('Invalid format, must be "##:##:##:##');if(r.some(n=>Number.isNaN(n)))throw new Error("Invalid format, values must be numbers");const i=t||":";return{smpteValues:r.map(Number),smpteFrameSeparator:i}},ut=["error","add","ignore"],lt={exceedingMode:"error",timeBase:void 0,dropFrame:void 0,frameSeparator:void 0},ge=(e,t)=>{const{exceedingMode:r,timeBase:i,...n}={...lt,...t};if([null,void 0].includes(e))throw new Error("smpte cannot be undefined or null");if(typeof e!="string")throw new Error(`smpte must be a string, is ${JSON.stringify(e)}`);const{smpteValues:o,smpteFrameSeparator:a}=dt(e),s=y(i),c={...n,frameSeparator:(n==null?void 0:n.frameSeparator)||a,...(n==null?void 0:n.dropFrame)===void 0?{dropFrame:i!==void 0?Ie(s):[";",","].includes(a)}:{}},l=s.toRate({rounded:!0}),u=Math.max(0,l-1);if(o.some(f=>f<0))throw new Error("Negative values are not supported");let _;switch(r){case"error":{const[f,T,d,m]=o;if(f>=100||T>=60)throw Error("Minutes has to be less than 60");if(d>=60)throw Error("Seconds has to be less than 60");if(m>u)throw Error(`Frames has to be less or equal to ${u}`);_=X(o,s,c==null?void 0:c.dropFrame);break}case"ignore":{const[f,T,d,m]=o,E=[Math.min(100,f),Math.min(59,T),Math.min(59,d),Math.min(u,m)];_=X(E,s,c==null?void 0:c.dropFrame);break}case"add":{_=X(o,s,c==null?void 0:c.dropFrame);break}default:throw new Error(`Invalid exceedingMode, options are ${JSON.stringify(ut)}`)}return new S({samples:_,timeBase:s},c)},_t={timeBase:void 0,dropFrame:void 0,frameSeparator:void 0},C=(e,t)=>{const{timeBase:r,...i}={..._t,...t};let n;if(e===void 0)n={samples:0};else if(typeof e=="number")n={samples:e};else if(e.includes("@")){const[a,s]=e.split("@");n={samples:Number(a),timeBase:L(s)}}else e==="-INF"?n={samples:-1/0}:e==="+INF"?n={samples:1/0}:n={samples:Number(e)};if(Number.isNaN(n==null?void 0:n.samples)||n.timeBase&&!(n.timeBase instanceof A))throw new Error(`timeCodeText must be a number or sample@timeBase - is ${e}`);const o=new S(n,i);return r?o.conformTimeBase(y(r),i):o},mt={dropFrame:void 0,frameSeparator:void 0},M=(e,t)=>new S(e,{...mt,...t}),ft=e=>!!e.match(/^(\d\d+):(\d\d+):(\d\d+)(:|;|\.|,)(\d\d+)$/),pt=e=>!Number.isNaN(Number(e)),be=(e,t)=>{if(e instanceof S)return e;if(typeof e!="string"&&typeof e!="number")return M(e,t);if(typeof e=="string"&&ft(e))return ge(e,t);if(["string","number"].includes(typeof e)&&pt(e))return Re(e,t);if(typeof e=="string")return C(e,t)};function Ne({hours:e=0,minutes:t=0,seconds:r=0,partialSeconds:i=0}){const n=e.toFixed().padStart(2,"0"),o=t.toFixed().padStart(2,"0"),a=r.toFixed().padStart(2,"0"),s=(i*10).toFixed().padStart(3,"0");return`${n}:${o}:${a}.${s}`}const Tt={subtitleGroup:"stl_subtitle",subtitleField:"stl_text"},Et=(e,t)=>{const{subtitleGroup:r,subtitleField:i}={...Tt,...t||{}},{timespan:n=[]}=e||{};return n.length===0?"":`WEBVTT
2
2
 
3
3
 
4
4
  ${x(n,{includeTimespanAttributes:!0,sortTimespan:!0,timespanAsList:!0,overrideGroup:!0,joinValue:","}).map(s=>{const{start:c,end:l,[r]:{[i]:u}={}}=(Array.isArray(s)?s[0]:s)||{};if(!u)return"";const _=Ne(C(c).toTime()),f=Ne(C(l).toTime());return`${_} --> ${f} line:0%\r${u}\r`}).join(`
5
- `)}`},ht={count:!0,exclude:!0},At=(e=[],t={})=>{const r={...ht,...t},{count:i,exclude:n}=r;return e.map(o=>typeof o=="string"?{field:o,name:o,count:i,...n===!0?{exclude:[o]}:{}}:o)},Ot=(e=[])=>e==null?void 0:e.map(({name:t,field:r,count:i,range:n})=>({facetName:t,fieldName:r,count:i==null?void 0:i.reduce((o,{fieldValue:a,value:s})=>({...o,[a]:s}),{}),...n?{range:n.map(({value:o,start:a,end:s})=>({start:Number.isNaN(+a)?a:Number(a),end:Number.isNaN(+s)?s:Number(s),count:Number(o)||0}))}:{}})),It=(e=[])=>{const t={};return e.forEach(({name:r,field:i,count:n})=>{t[r||i]=n.reduce((o,{fieldValue:a,value:s})=>({...o,[a]:s}),{})}),t},Fe={arrayOnSingle:!0,joinValue:void 0,timespanAsList:!1},B=(e,t)=>{const{arrayOnSingle:r=!0,joinValue:i=void 0,timespanAsList:n=!1}={...Fe,...t||{}},{field:o=[],start:a,end:s}=e||{},c=n?{start:a,end:s}:{};return o.reduce((u,_)=>{const{name:f,value:T=[]}=_;if(T.length===0)return u;let d;return r===!1&&T.length===1?[d]=T:i?d=T.join(i):d=T,{...u,[f]:d}},c)},St={...Fe,timespanAsList:!1,joinTimespan:"_",flat:!1,flatTimespan:!1},Rt=(e=[],t)=>{const{timespanAsList:r,joinTimespan:i="_",flat:n,flatTimespan:o,...a}={...St,...t||{}};return r===!0?e.map(s=>B(s,{...a,timespanAsList:r})):n===!0||o===!0?e.reduce((s,c)=>({...s,...B(c,t)}),{}):e.reduce((s,c)=>({...s,[[c.start,c.end].join(i)]:B(c,t)}),{})},gt=(e="NOW")=>{if(e.startsWith("NOW")){if(e==="NOW")return new Date;const t=e[3],r=Number(e.match(/(\d+)/)[0]),i=e.match(/(\d.*)/)[0].replace(/\d/g,""),n=new Date;switch(i){case"HOUR":case"HOURS":t==="+"&&n.setHours(n.getHours()+r),t==="-"&&n.setHours(n.getHours()-r);break;case"DAY":case"DAYS":t==="+"&&n.setDate(n.getDate()+r),t==="-"&&n.setDate(n.getDate()-r);break;case"MONTH":case"MONTHS":t==="+"&&n.setMonth(n.getMonth()+r),t==="-"&&n.setMonth(n.getMonth()-r);break;case"YEAR":case"YEARS":t==="+"&&n.setFullYear(n.getFullYear()+r),t==="-"&&n.setFullYear(n.getFullYear()-r);break}return n}return new Date(e)},j=e=>{const{property:t=[],...r}=e||{};return{...g(t),...r}},bt=e=>j(e),Nt=e=>j(e),Ft={kB:"kHz",B:"Hz",mB:"mHz"},De={kB:"kbps",B:"bps",MB:"mbps"},ye=e=>{var E;const{timeBase:t,channelCount:r,codec:i,mediaInfo:n,bitrate:o,metadata:a}=e,s=bt(n),{Format:c,Resolution:l,Bit_rate_mode:u}=s,_=g(a||[]),f=t!=null&&t.denominator?((t==null?void 0:t.denominator)||1)/((t==null?void 0:t.numerator)||1):void 0,T=f!==void 0?I.filesize(f,{base:10,round:1,symbols:Ft}):void 0;let d,m;return o!==void 0&&(d=I.filesize(o,{round:2,symbols:De}),m=Number((E=I.filesize(o,{exponent:1,symbols:De}).split(" kbps"))==null?void 0:E[0])),{audioFormat:c,audioCodec:i,audioSamplerate:T,audioSamplerateSamples:f,audioBitDepth:l,audioBitrate:d,audioBitrateKbps:m,audioBitRateMode:u,audioChannels:r,audioMediaInfo:s,audioMetadata:_}},Dt={NONE:"NONE",OPEN:"OPEN",CLOSED:"CLOSED",UNKNOWN:"UNKNOWN",MISSING:"MISSING",LOST:"LOST",TO_APPEAR:"TO_APPEAR",TO_BE_DELETED:"TO_BE_DELETED",BEING_READ:"BEING_READ",ARCHIVED:"ARCHIVED",AWAITING_SYNC:"AWAITING_SYNC"},q=e=>{const{uri:t=[],size:r,hash:i,path:n,id:o,storage:a}=e,[s]=t,c=r!==void 0?I.filesize(r,{base:2,standard:"jedec"}):"",l=(n==null?void 0:n.split("/"))||[],u=l.pop()||"",_=l.map(f=>`${f}/`).join("")||void 0;return{uri:s,hash:i,fileSize:c,fileSizeBytes:r,path:n,fileName:u,fileId:o,storageId:a,folderPath:_}},Me=(e={})=>{const{file:t,mediaInfo:r,metadata:i=[]}=e,n=g(i),o=j(r);let a={binaryMetadata:n,binaryMediaInfo:o};if(t){const[s]=t,c=q(s);a={...a,...c}}return a},ve=(e={})=>{const{mediaInfo:t,metadata:r,file:i,duration:n,startTimestamp:o,startTimecode:a,timeCodeTimeBase:s}=e,c=g(r||[]),l=j(t);let{Format:u}=l;const{Video_Format_List:_,Audio_Format_List:f,Text_Format_List:T}=l;if(u===void 0){const{format:m}=e;u=m,m&&m.includes(",")&&([u]=m.split(","))}let d={containerFormat:u,videoFormat:_,audioFormat:f,textFormat:T,containerMetadata:c,containerMediaInfo:l};if(c.componentOriginalFilename&&(d.originalFilename=c.componentOriginalFilename),n!==void 0&&n.samples!==0){const m=M(n);d.durationTimeCode=m.toObject(),d.duration=m.toDuration()}if(o&&(d.startTimestamp=M(o).toObject()),a!==void 0&&s&&(d.startTimecode=M({samples:a,timeBase:s})),i){const[m]=i,E=q(m);d={...d,...E}}return d},Ce={kB:"kbps",B:"bps",MB:"mbps"},we=(e={})=>{var Ge;const{codec:t,bitrate:r,fieldOrder:i,resolution:n,mediaInfo:o,metadata:a=[]}=e,s=Nt(o),c=g(a),{Format:l,"Frame rate":u,"Color space":_,"Color primaries":f,Colorimetry:T}=s;let d;const{averageFrameRate:m,realBaseFrameRate:E}=e;E!==void 0?d=D({numerator:E.denominator,denominator:E.numerator}):u!==void 0?d=L(u):m!==void 0&&(d=D({numerator:m.denominator,denominator:m.numerator}));let{"Frame count":h}=s;if(h===void 0){const{numberOfPackets:$e}=e;$e!==void 0&&(h=$e.toString())}let R,b,N;h&&d&&(R=M({samples:h,timeBase:d}),b=R.timeBase.toConstant()||R.timeBase.toRate(),N=R.toSmpte());const{height:je,width:We}=n||{},zt=P(n),Jt=`${We}x${je}`;let Pe,Ue;return r!==void 0&&(Pe=I.filesize(r,{round:2,symbols:Ce}),Ue=Number((Ge=I.filesize(r,{exponent:2,symbols:Ce}).split(" mbps"))==null?void 0:Ge[0])),{videoFormat:l,dimension:Jt,frameRate:b,height:je,width:We,timeBase:d,timeCode:R,videoCodec:t,smpte:N,videoBitrate:Pe,videoBitrateMbps:Ue,fieldOrder:i,colorSpace:_,chromaSubsampling:T,aspectRatio:zt,colorPrimaries:f,videoMetadata:c,videoMediaInfo:s}},Q=(e={})=>{let t={};const{containerComponent:r,videoComponent:i,audioComponent:n,binaryComponent:o,mimeType:a=[],tag:s=[]}=e;if([t.tag]=s,[t.mimeType]=a,r){const c=ve(r);t={...t,...c}}if(i){const[c]=i,l=we(c);t={...t,...l}}if(n){const[c]=n,l=ye(c);t={...t,...l}}if(o){const[c]=o,l=Me(c);t={...t,...l}}return t},v={PDF:"PDF",TEXT:"TEXT",MSWORD:"MSWORD",JSON:"JSON",XML:"XML"},O={IMAGE:"IMAGE",AUDIO:"AUDIO",VIDEO:"VIDEO",DOCUMENT:"DOCUMENT",BINARY:"BINARY"},yt=(e={})=>{const{mimeType:t}=e,r=Array.isArray(t)?t[0]:t;if(r){if(r.endsWith("/pdf"))return v.PDF;if(r.startsWith("text/"))return v.TEXT;if(r.endsWith("/msword"))return v.MSWORD;if(r.endsWith("/json"))return v.JSON;if(r.endsWith("/xml"))return v.XML}},Mt=["image/apng","image/bmp","image/gif","image/jpeg","image/x-icon","image/png","image/svg+xml"],vt=["video/mp4"],Ct=["audio/mp4","audio/mpeg","audio/x-aac","audio/aac","audio/x-wav","audio/wav","audio/accp","audio/ogg","audio/webm","audio/x-flac"],wt=[...vt,...Mt,...Ct],Lt=["http","https"],Bt="video/mp4",jt="video/quicktime",Wt="video/x-m4v",Pt="MPEG-4",Ut="mov",Gt="h264",W=["__mp4","__mp3_160k","__png","__jpeg","__gif","original"].reverse(),Le=({parsedShape:{tag:e}},{parsedShape:{tag:t}})=>W.includes(e)||W.includes(t)?W.indexOf(t)-W.indexOf(e):e.toLowerCase().localeCompare(t.toLowerCase()),$t=(e,t)=>{const{allowedMimeTypes:r=wt,allowedMethods:i=Lt,sortPriority:n=Le,sourceKey:o="src",mimeTypeKey:a="type",shapeKey:s="shape",parsedShapeKey:c="parsedShape"}=t||{},{shape:l=[]}=e||{},u=l.reduce((_,f)=>{let T,d;const m=Q(f),{uri:E,mimeType:h,containerFormat:R,videoCodec:b}=m;if(h&&(T=h,(h===jt||h===Wt)&&(R===Pt||R===Ut)&&b===Gt&&(T=Bt)),E)if(i){const[N]=E.split("://");i.includes(N)&&(d=E)}else d=E;return d&&r.includes(T)&&_.push({[o]:d,[a]:T,[s]:f,[c]:m}),_},[]);return typeof n=="function"&&u.sort(Le),u},Vt=e=>{const t=Q(e),{mimeType:r,videoCodec:i,audioCodec:n}=t;if(r){if(r.startsWith("audio/")&&n!==void 0)return O.AUDIO;if(r.startsWith("video/")){if(i!==void 0)return O.VIDEO;if(n!==void 0)return O.AUDIO}if(r.startsWith("image/"))return O.IMAGE;if(r.endsWith("/pdf")||r.startsWith("text/")||r.endsWith("/msword")||r.endsWith("/json")||r.endsWith("/xml"))return O.DOCUMENT;if(r.endsWith("/octet-stream"))return O.BINARY}},Yt=(e,t)=>{const r=be(t).toSeconds(),{thumbnails:i={}}=e||{},{uri:n=[]}=i,o=n.map(s=>{const c=new URL(s).pathname.split("/").pop();return C(c).toSeconds()}),a=o.reduce((s,c,l)=>Math.abs(c-r)<Math.abs(o[s]-r)?l:s,0);return n[a]},Be=e=>{const t={},{outputSetting:r=[]}=e||{};if(r.length===0)return t;const i=JSON.parse(r[0]),{Settings:{ContainerSettings:n,VideoDescription:o,AudioDescriptions:a}={}}=i;if(n&&(t.containerFormat=n.Container),o){const{CodecSettings:s={}}=o,{Codec:c,...l}=s;t.videoFormat=c;const{Height:u,Width:_}=o;t.height=u,t.width=_,u&&_&&(t.dimension=`${_}x${u}`,t.aspectRatio=P({height:u,width:_}));const[f]=Object.values(l);if(f){t.fieldOrder=f.InterlaceMode,t.fieldOrder&&t.fieldOrder.includes("TOP")&&(t.fieldOrder="interlaced"),t.videoBitrate=f.Bitrate;const T=f.FramerateDenominator,d=f.FramerateNumerator,m=D({denominator:d,numerator:T});t.timeBase=m,t.frameRate=m.toConstant()||m.toRate()}}if(a&&a.length>0){const{CodecSettings:s={}}=a[0],{Codec:c,...l}=s;t.audioFormat=c;const[u]=Object.values(l);u&&(t.audioSamplerate=u.SampleRate,t.audioBitrate=u.Bitrate,t.audioBitRateMode=u.RateControlMode)}return t},kt=e=>{const t={},{description:r,format:i,audio:n,video:o,mediaconvert:a}=e||{};if(a)return{description:r,...Be(a)};if(t.description=r,t.containerFormat=i,o){if(t.videoFormat=o.codec,t.videoBitrate=o.bitrate,o.framerate){const s=D(o.framerate);t.timeBase=s,t.frameRate=s.toConstant()||s.toRate()}if(o.scaling){const{height:s,width:c}=o.scaling;t.height=s,t.width=c,s&&c&&(t.dimension=`${c}x${s}`,t.aspectRatio=P({height:s,width:c}))}}if(n){const{codec:s,channel:c}=n;t.audioFormat=s,c&&(t.audioChannels=c.length)}return t},Ht=e=>{if(!e)return;const{name:t,type:r,defaultValue:i,stringRestriction:n,floatRestriction:o,integerRestriction:a,longRestriction:s,data:c,values:l}=e,{minLength:u,maxLength:_,pattern:f}=n||{},{minInclusive:T,maxInclusive:d}=o||a||s||{},m=((l==null?void 0:l.field)||[]).map(({key:b,value:N})=>({label:N,value:b})),h=(b=>Object.fromEntries(Object.entries(b).filter(([,N])=>N!==void 0)))({min:T,max:d,minLength:u,maxLength:_,pattern:f?new RegExp(f):void 0}),R=g(c);return{name:t,type:r,defaultValue:i,required:T!==void 0||u!==void 0&&u>0,restrictions:h,data:R,options:m}},xt=e=>e==null?void 0:e.map(Ht).filter(t=>!!t),Kt=["date","float","integer","long","string","string-exact","boolean","timeCode"];p.DOCUMENT_TYPES=v,p.FIELD_ATTRIBUTE_KEYS=re,p.FIELD_DEFINITION_TYPES=Kt,p.FIELD_VALUE_ATTRIBUTE_KEYS=te,p.FILE_STATES=Dt,p.GROUP_ATTRIBUTE_KEYS=ne,p.ROLE_NAMES=Ve,p.SHAPE_MEDIA_TYPES=O,p.SYSTEM_FIELDGROUPS=Ye,p.SYSTEM_FIELDS=ke,p.TimeBase=A,p.TimeCode=S,p.createMetadataType=qe,p.createSearchFacetList=At,p.createTimeBase=y,p.createTimeCode=be,p.filterShapeSource=$t,p.findNearestThumbnail=Yt,p.formatTimeBaseText=L,p.formatTimeBaseType=D,p.formatTimeCodeSeconds=Re,p.formatTimeCodeSmpte=ge,p.formatTimeCodeText=C,p.formatTimeCodeType=M,p.getShapeDocumentType=yt,p.getShapeMediaType=Vt,p.metadataTypeToWebVtt=Et,p.parseAudioComponent=ye,p.parseBinaryComponent=Me,p.parseContainerComponent=ve,p.parseFacetList=Ot,p.parseFacetType=It,p.parseFieldDefinitionList=xt,p.parseFieldList=V,p.parseFileType=q,p.parseGroupList=k,p.parseHighlightTimespan=B,p.parseHighlightTimespanList=Rt,p.parseKeyValuePairType=g,p.parseMediaConvertPreset=Be,p.parseMetadataType=ot,p.parseNowDate=gt,p.parseShapeType=Q,p.parseSimpleMetadataType=st,p.parseTimespan=he,p.parseTimespanList=x,p.parseTranscodePreset=kt,p.parseVideoComponent=we,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
5
+ `)}`},ht={count:!0,exclude:!0},At=(e=[],t={})=>{const r={...ht,...t},{count:i,exclude:n}=r;return e.map(o=>typeof o=="string"?{field:o,name:o,count:i,...n===!0?{exclude:[o]}:{}}:o)},Ot=(e=[])=>e==null?void 0:e.map(({name:t,field:r,count:i,range:n})=>({facetName:t,fieldName:r,count:i==null?void 0:i.reduce((o,{fieldValue:a,value:s})=>({...o,[a]:s}),{}),...n?{range:n.map(({value:o,start:a,end:s})=>({start:Number.isNaN(+a)?a:Number(a),end:Number.isNaN(+s)?s:Number(s),count:Number(o)||0}))}:{}})),It=(e=[])=>{const t={};return e.forEach(({name:r,field:i,count:n})=>{t[r||i]=n.reduce((o,{fieldValue:a,value:s})=>({...o,[a]:s}),{})}),t},Fe={arrayOnSingle:!0,joinValue:void 0,timespanAsList:!1},B=(e,t)=>{const{arrayOnSingle:r=!0,joinValue:i=void 0,timespanAsList:n=!1}={...Fe,...t||{}},{field:o=[],start:a,end:s}=e||{},c=n?{start:a,end:s}:{};return o.reduce((u,_)=>{const{name:f,value:T=[]}=_;if(T.length===0)return u;let d;return r===!1&&T.length===1?[d]=T:i?d=T.join(i):d=T,{...u,[f]:d}},c)},St={...Fe,timespanAsList:!1,joinTimespan:"_",flat:!1,flatTimespan:!1},Rt=(e=[],t)=>{const{timespanAsList:r,joinTimespan:i="_",flat:n,flatTimespan:o,...a}={...St,...t||{}};return r===!0?e.map(s=>B(s,{...a,timespanAsList:r})):n===!0||o===!0?e.reduce((s,c)=>({...s,...B(c,t)}),{}):e.reduce((s,c)=>({...s,[[c.start,c.end].join(i)]:B(c,t)}),{})},gt=(e="NOW")=>{if(e.startsWith("NOW")){if(e==="NOW")return new Date;const t=e[3],r=Number(e.match(/(\d+)/)[0]),i=e.match(/(\d.*)/)[0].replace(/\d/g,""),n=new Date;switch(i){case"HOUR":case"HOURS":t==="+"&&n.setHours(n.getHours()+r),t==="-"&&n.setHours(n.getHours()-r);break;case"DAY":case"DAYS":t==="+"&&n.setDate(n.getDate()+r),t==="-"&&n.setDate(n.getDate()-r);break;case"MONTH":case"MONTHS":t==="+"&&n.setMonth(n.getMonth()+r),t==="-"&&n.setMonth(n.getMonth()-r);break;case"YEAR":case"YEARS":t==="+"&&n.setFullYear(n.getFullYear()+r),t==="-"&&n.setFullYear(n.getFullYear()-r);break}return n}return new Date(e)},j=e=>{const{property:t=[],...r}=e||{};return{...b(t),...r}},bt=e=>j(e),Nt=e=>j(e),Ft={kB:"kHz",B:"Hz",mB:"mHz"},De={kB:"kbps",B:"bps",MB:"mbps"},ye=e=>{var E;const{timeBase:t,channelCount:r,codec:i,mediaInfo:n,bitrate:o,metadata:a}=e,s=bt(n),{Format:c,Resolution:l,Bit_rate_mode:u}=s,_=b(a||[]),f=t!=null&&t.denominator?((t==null?void 0:t.denominator)||1)/((t==null?void 0:t.numerator)||1):void 0,T=f!==void 0?I.filesize(f,{base:10,round:1,symbols:Ft}):void 0;let d,m;return o!==void 0&&(d=I.filesize(o,{round:2,symbols:De}),m=Number((E=I.filesize(o,{exponent:1,symbols:De}).split(" kbps"))==null?void 0:E[0])),{audioFormat:c,audioCodec:i,audioSamplerate:T,audioSamplerateSamples:f,audioBitDepth:l,audioBitrate:d,audioBitrateKbps:m,audioBitRateMode:u,audioChannels:r,audioMediaInfo:s,audioMetadata:_}},Dt={NONE:"NONE",OPEN:"OPEN",CLOSED:"CLOSED",UNKNOWN:"UNKNOWN",MISSING:"MISSING",LOST:"LOST",TO_APPEAR:"TO_APPEAR",TO_BE_DELETED:"TO_BE_DELETED",BEING_READ:"BEING_READ",ARCHIVED:"ARCHIVED",AWAITING_SYNC:"AWAITING_SYNC"},q=e=>{const{uri:t=[],size:r,hash:i,path:n,id:o,storage:a}=e,[s]=t,c=r!==void 0?I.filesize(r,{base:2,standard:"jedec"}):"",l=(n==null?void 0:n.split("/"))||[],u=l.pop()||"",_=l.map(f=>`${f}/`).join("")||void 0;return{uri:s,hash:i,fileSize:c,fileSizeBytes:r,path:n,fileName:u,fileId:o,storageId:a,folderPath:_}},Me=(e={})=>{const{file:t,mediaInfo:r,metadata:i=[]}=e,n=b(i),o=j(r);let a={binaryMetadata:n,binaryMediaInfo:o};if(t){const[s]=t,c=q(s);a={...a,...c}}return a},ve=(e={})=>{const{mediaInfo:t,metadata:r,file:i,duration:n,startTimestamp:o,startTimecode:a,timeCodeTimeBase:s}=e,c=b(r||[]),l=j(t);let{Format:u}=l;const{Video_Format_List:_,Audio_Format_List:f,Text_Format_List:T}=l;if(u===void 0){const{format:m}=e;u=m,m&&m.includes(",")&&([u]=m.split(","))}let d={containerFormat:u,videoFormat:_,audioFormat:f,textFormat:T,containerMetadata:c,containerMediaInfo:l};if(c.componentOriginalFilename&&(d.originalFilename=c.componentOriginalFilename),n!==void 0&&n.samples!==0){const m=M(n);d.durationTimeCode=m.toObject(),d.duration=m.toDuration()}if(o&&(d.startTimestamp=M(o).toObject()),a!==void 0&&s&&(d.startTimecode=M({samples:a,timeBase:s})),i){const[m]=i,E=q(m);d={...d,...E}}return d},Ce={kB:"kbps",B:"bps",MB:"mbps"},we=(e={})=>{var Ge;const{codec:t,bitrate:r,fieldOrder:i,resolution:n,mediaInfo:o,metadata:a=[]}=e,s=Nt(o),c=b(a),{Format:l,"Frame rate":u,"Color space":_,"Color primaries":f,Colorimetry:T}=s;let d;const{averageFrameRate:m,realBaseFrameRate:E}=e;E!==void 0?d=D({numerator:E.denominator,denominator:E.numerator}):u!==void 0?d=L(u):m!==void 0&&(d=D({numerator:m.denominator,denominator:m.numerator}));let{"Frame count":h}=s;if(h===void 0){const{numberOfPackets:$e}=e;$e!==void 0&&(h=$e.toString())}let R,g,N;h&&d&&(R=M({samples:h,timeBase:d}),g=R.timeBase.toConstant()||R.timeBase.toRate(),N=R.toSmpte());const{height:je,width:We}=n||{},zt=P(n),Jt=`${We}x${je}`;let Pe,Ue;return r!==void 0&&(Pe=I.filesize(r,{round:2,symbols:Ce}),Ue=Number((Ge=I.filesize(r,{exponent:2,symbols:Ce}).split(" mbps"))==null?void 0:Ge[0])),{videoFormat:l,dimension:Jt,frameRate:g,height:je,width:We,timeBase:d,timeCode:R,videoCodec:t,smpte:N,videoBitrate:Pe,videoBitrateMbps:Ue,fieldOrder:i,colorSpace:_,chromaSubsampling:T,aspectRatio:zt,colorPrimaries:f,videoMetadata:c,videoMediaInfo:s}},Q=(e={})=>{let t={};const{containerComponent:r,videoComponent:i,audioComponent:n,binaryComponent:o,mimeType:a=[],tag:s=[]}=e;if([t.tag]=s,[t.mimeType]=a,r){const c=ve(r);t={...t,...c}}if(i){const[c]=i,l=we(c);t={...t,...l}}if(n){const[c]=n,l=ye(c);t={...t,...l}}if(o){const[c]=o,l=Me(c);t={...t,...l}}return t},v={PDF:"PDF",TEXT:"TEXT",MSWORD:"MSWORD",JSON:"JSON",XML:"XML"},O={IMAGE:"IMAGE",AUDIO:"AUDIO",VIDEO:"VIDEO",DOCUMENT:"DOCUMENT",BINARY:"BINARY"},yt=(e={})=>{const{mimeType:t}=e,r=Array.isArray(t)?t[0]:t;if(r){if(r.endsWith("/pdf"))return v.PDF;if(r.startsWith("text/"))return v.TEXT;if(r.endsWith("/msword"))return v.MSWORD;if(r.endsWith("/json"))return v.JSON;if(r.endsWith("/xml"))return v.XML}},Mt=["image/apng","image/bmp","image/gif","image/jpeg","image/x-icon","image/png","image/svg+xml"],vt=["video/mp4"],Ct=["audio/mp4","audio/mpeg","audio/x-aac","audio/aac","audio/x-wav","audio/wav","audio/accp","audio/ogg","audio/webm","audio/x-flac"],wt=[...vt,...Mt,...Ct],Lt=["http","https"],Bt="video/mp4",jt="video/quicktime",Wt="video/x-m4v",Pt="MPEG-4",Ut="mov",Gt="h264",W=["__mp4","__mp3_160k","__png","__jpeg","__gif","original"].reverse(),Le=({parsedShape:{tag:e}},{parsedShape:{tag:t}})=>W.includes(e)||W.includes(t)?W.indexOf(t)-W.indexOf(e):e.toLowerCase().localeCompare(t.toLowerCase()),$t=(e,t)=>{const{allowedMimeTypes:r=wt,allowedMethods:i=Lt,sortPriority:n=Le,sourceKey:o="src",mimeTypeKey:a="type",shapeKey:s="shape",parsedShapeKey:c="parsedShape"}=t||{},{shape:l=[]}=e||{},u=l.reduce((_,f)=>{let T,d;const m=Q(f),{uri:E,mimeType:h,containerFormat:R,videoCodec:g}=m;if(h&&(T=h,(h===jt||h===Wt)&&(R===Pt||R===Ut)&&g===Gt&&(T=Bt)),E)if(i){const[N]=E.split("://");i.includes(N)&&(d=E)}else d=E;return d&&r.includes(T)&&_.push({[o]:d,[a]:T,[s]:f,[c]:m}),_},[]);return typeof n=="function"&&u.sort(Le),u},Vt=e=>{const t=Q(e),{mimeType:r,videoCodec:i,audioCodec:n}=t;if(r){if(r.startsWith("audio/")&&n!==void 0)return O.AUDIO;if(r.startsWith("video/")){if(i!==void 0)return O.VIDEO;if(n!==void 0)return O.AUDIO}if(r.startsWith("image/"))return O.IMAGE;if(r.endsWith("/pdf")||r.startsWith("text/")||r.endsWith("/msword")||r.endsWith("/json")||r.endsWith("/xml"))return O.DOCUMENT;if(r.endsWith("/octet-stream"))return O.BINARY}},Yt=(e,t)=>{const r=be(t).toSeconds(),{thumbnails:i={}}=e||{},{uri:n=[]}=i,o=n.map(s=>{const c=new URL(s).pathname.split("/").pop();return C(c).toSeconds()}),a=o.reduce((s,c,l)=>Math.abs(c-r)<Math.abs(o[s]-r)?l:s,0);return n[a]},Be=e=>{const t={},{outputSetting:r=[]}=e||{};if(r.length===0)return t;const i=JSON.parse(r[0]),{Settings:{ContainerSettings:n,VideoDescription:o,AudioDescriptions:a}={}}=i;if(n&&(t.containerFormat=n.Container),o){const{CodecSettings:s={}}=o,{Codec:c,...l}=s;t.videoFormat=c;const{Height:u,Width:_}=o;t.height=u,t.width=_,u&&_&&(t.dimension=`${_}x${u}`,t.aspectRatio=P({height:u,width:_}));const[f]=Object.values(l);if(f){t.fieldOrder=f.InterlaceMode,t.fieldOrder&&t.fieldOrder.includes("TOP")&&(t.fieldOrder="interlaced"),t.videoBitrate=f.Bitrate;const T=f.FramerateDenominator,d=f.FramerateNumerator,m=D({denominator:d,numerator:T});t.timeBase=m,t.frameRate=m.toConstant()||m.toRate()}}if(a&&a.length>0){const{CodecSettings:s={}}=a[0],{Codec:c,...l}=s;t.audioFormat=c;const[u]=Object.values(l);u&&(t.audioSamplerate=u.SampleRate,t.audioBitrate=u.Bitrate,t.audioBitRateMode=u.RateControlMode)}return t},Ht=e=>{const t={},{description:r,format:i,audio:n,video:o,mediaconvert:a}=e||{};if(a)return{description:r,...Be(a)};if(t.description=r,t.containerFormat=i,o){if(t.videoFormat=o.codec,t.videoBitrate=o.bitrate,o.framerate){const s=D(o.framerate);t.timeBase=s,t.frameRate=s.toConstant()||s.toRate()}if(o.scaling){const{height:s,width:c}=o.scaling;t.height=s,t.width=c,s&&c&&(t.dimension=`${c}x${s}`,t.aspectRatio=P({height:s,width:c}))}}if(n){const{codec:s,channel:c}=n;t.audioFormat=s,c&&(t.audioChannels=c.length)}return t},kt=e=>{if(!e)return;const{name:t,type:r,defaultValue:i,stringRestriction:n,floatRestriction:o,integerRestriction:a,longRestriction:s,data:c,values:l}=e,{minLength:u,maxLength:_,pattern:f}=n||{},{minInclusive:T,maxInclusive:d}=o||a||s||{},m=((l==null?void 0:l.field)||[]).map(({key:g,value:N})=>({label:N??g,value:g})),h=(g=>Object.fromEntries(Object.entries(g).filter(([,N])=>N!==void 0)))({min:T,max:d,minLength:u,maxLength:_,pattern:f?new RegExp(f):void 0}),R=b(c);return{name:t,type:r,defaultValue:i,required:T!==void 0||u!==void 0&&u>0,restrictions:h,data:R,options:m}},xt=e=>e==null?void 0:e.map(kt).filter(t=>!!t),Kt=["date","float","integer","long","string","string-exact","boolean","timeCode"];p.DOCUMENT_TYPES=v,p.FIELD_ATTRIBUTE_KEYS=re,p.FIELD_DEFINITION_TYPES=Kt,p.FIELD_VALUE_ATTRIBUTE_KEYS=te,p.FILE_STATES=Dt,p.GROUP_ATTRIBUTE_KEYS=ne,p.ROLE_NAMES=Ve,p.SHAPE_MEDIA_TYPES=O,p.SYSTEM_FIELDGROUPS=Ye,p.SYSTEM_FIELDS=He,p.TimeBase=A,p.TimeCode=S,p.createMetadataType=qe,p.createSearchFacetList=At,p.createTimeBase=y,p.createTimeCode=be,p.filterShapeSource=$t,p.findNearestThumbnail=Yt,p.formatTimeBaseText=L,p.formatTimeBaseType=D,p.formatTimeCodeSeconds=Re,p.formatTimeCodeSmpte=ge,p.formatTimeCodeText=C,p.formatTimeCodeType=M,p.getShapeDocumentType=yt,p.getShapeMediaType=Vt,p.metadataTypeToWebVtt=Et,p.parseAudioComponent=ye,p.parseBinaryComponent=Me,p.parseContainerComponent=ve,p.parseFacetList=Ot,p.parseFacetType=It,p.parseFieldDefinitionList=xt,p.parseFieldList=V,p.parseFileType=q,p.parseGroupList=H,p.parseHighlightTimespan=B,p.parseHighlightTimespanList=Rt,p.parseKeyValuePairType=b,p.parseMediaConvertPreset=Be,p.parseMetadataType=ot,p.parseNowDate=gt,p.parseShapeType=Q,p.parseSimpleMetadataType=st,p.parseTimespan=he,p.parseTimespanList=x,p.parseTranscodePreset=Ht,p.parseVideoComponent=we,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vidispine/vdt-js",
3
- "version": "23.3.0-pre.2",
3
+ "version": "23.3.0-pre.3",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -37,16 +37,16 @@
37
37
  "format": "prettier . --check"
38
38
  },
39
39
  "dependencies": {
40
- "@vidispine/types": "23.3.0-pre.2",
40
+ "@vidispine/types": "23.3.0-pre.3",
41
41
  "filesize": "^10.0.6"
42
42
  },
43
43
  "devDependencies": {
44
- "@vidispine/eslint-config-base": "23.3.0-pre.2",
45
- "@vidispine/eslint-config-mdx": "23.3.0-pre.2",
46
- "@vidispine/eslint-config-storybook": "23.3.0-pre.2",
47
- "@vidispine/eslint-config-typescript": "23.3.0-pre.2",
48
- "@vidispine/tests": "23.3.0-pre.2",
49
- "@vidispine/types": "23.3.0-pre.2",
44
+ "@vidispine/eslint-config-base": "23.3.0-pre.3",
45
+ "@vidispine/eslint-config-mdx": "23.3.0-pre.3",
46
+ "@vidispine/eslint-config-storybook": "23.3.0-pre.3",
47
+ "@vidispine/eslint-config-typescript": "23.3.0-pre.3",
48
+ "@vidispine/tests": "23.3.0-pre.3",
49
+ "@vidispine/types": "23.3.0-pre.3",
50
50
  "concurrently": "7.6.0",
51
51
  "eslint": "8.34.0",
52
52
  "eslint-plugin-testing-library": "5.10.2",
@@ -56,7 +56,7 @@
56
56
  "typedoc-plugin-missing-exports": "1.0.0",
57
57
  "typescript": "4.9.5",
58
58
  "vite": "4.3.9",
59
- "vite-plugin-dts": "2.3.0"
59
+ "vite-plugin-dts": "3.0.2"
60
60
  },
61
61
  "eslintConfig": {
62
62
  "extends": [
@@ -64,6 +64,10 @@
64
64
  "@vidispine/eslint-config-mdx",
65
65
  "@vidispine/eslint-config-storybook"
66
66
  ],
67
+ "ignorePatterns": [
68
+ "vite.config.ts",
69
+ "vite.docs.config.ts"
70
+ ],
67
71
  "overrides": [
68
72
  {
69
73
  "files": [