@vidispine/vdt-js 23.4.0-pre.2 → 23.4.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 CHANGED
@@ -1,12 +1,13 @@
1
- import { filesize as y } from "filesize";
2
- const ue = (e, t) => t ? ue(t, e % t) : e, H = (e) => {
1
+ import { filesize as v } from "filesize";
2
+ import xe from "url-join";
3
+ const le = (e, t) => t ? le(t, e % t) : e, K = (e) => {
3
4
  const { width: t, height: r } = e || {};
4
5
  if (t === void 0 || r === void 0)
5
6
  return;
6
- const n = ue(t, r);
7
- let o = t / n, s = r / n;
8
- return o > 21 && (s = 1, o = (t / r).toFixed(2)), [o, s].join(":");
9
- }, N = (e) => Object.fromEntries((e == null ? void 0 : e.map(({ key: t, value: r }) => [t, r])) || []), Ct = {
7
+ const s = le(t, r);
8
+ let o = t / s, n = r / s;
9
+ return o > 21 && (n = 1, o = (t / r).toFixed(2)), [o, n].join(":");
10
+ }, M = (e) => Object.fromEntries((e == null ? void 0 : e.map(({ key: t, value: r }) => [t, r])) || []), Jt = {
10
11
  ACCESSCONTROL_READ: "_accesscontrol_read",
11
12
  ACCESSCONTROL_WRITE: "_accesscontrol_write",
12
13
  ADMINISTRATOR: "_administrator",
@@ -116,7 +117,7 @@ const ue = (e, t) => t ? ue(t, e % t) : e, H = (e) => {
116
117
  USER: "_user",
117
118
  VXA: "_vxa",
118
119
  VXA_READ: "_vxa_read"
119
- }, Lt = [
120
+ }, Xt = [
120
121
  "stl_subtitle",
121
122
  "stl_tti",
122
123
  "stl_gsi",
@@ -128,7 +129,7 @@ const ue = (e, t) => t ? ue(t, e % t) : e, H = (e) => {
128
129
  "facedetect_face",
129
130
  "originalTrackFilename",
130
131
  "stl_gsiHeader"
131
- ], Bt = [
132
+ ], qt = [
132
133
  "title",
133
134
  "user",
134
135
  "shapeTag",
@@ -267,291 +268,291 @@ const ue = (e, t) => t ? ue(t, e % t) : e, H = (e) => {
267
268
  "jc",
268
269
  "vp",
269
270
  "sn"
270
- ], Y = [
271
+ ], z = [
271
272
  "uuid",
272
273
  "user",
273
274
  "timestamp",
274
275
  "change",
275
276
  "conflict",
276
277
  "mode"
277
- ], le = [
278
+ ], _e = [
278
279
  "name",
279
280
  "id",
280
281
  "referenced",
281
282
  "data",
282
283
  "inheritance"
283
- ], we = [
284
- ...Y,
284
+ ], We = [
285
+ ...z,
285
286
  "value",
286
287
  "lang"
287
- ], Ce = [
288
- ...Y,
289
- ...le,
288
+ ], Pe = [
289
+ ...z,
290
+ ..._e,
290
291
  "value",
291
292
  "reference",
292
293
  "type",
293
294
  "track"
294
- ], Le = [
295
- ...Y,
296
- ...le,
295
+ ], je = [
296
+ ...z,
297
+ ..._e,
297
298
  "cycle",
298
299
  "field",
299
300
  "group"
300
- ], k = (e) => Object.prototype.toString.call(e) === "[object Object]" && e.value !== void 0, _e = (e) => ["string", "boolean", "number"].includes(typeof e), me = (e) => k(e) && ((e == null ? void 0 : e.value) === null || k(e.value) || _e(e.value)), Be = (e) => Object.prototype.toString.call(e) === "[object Object]", pe = (e) => Object.prototype.toString.call(e) === "[object Date]", fe = (e) => e === null ? !0 : Array.isArray(e) ? e.some(fe) : _e(e) || me(e) || pe(e), Te = (e) => {
301
- const t = (r) => Be(r) && r.value === void 0 && !!Object.entries(e);
301
+ ], Y = (e) => Object.prototype.toString.call(e) === "[object Object]" && e.value !== void 0, me = (e) => ["string", "boolean", "number"].includes(typeof e), pe = (e) => Y(e) && ((e == null ? void 0 : e.value) === null || Y(e.value) || me(e.value)), Ue = (e) => Object.prototype.toString.call(e) === "[object Object]", fe = (e) => Object.prototype.toString.call(e) === "[object Date]", Ee = (e) => e === null ? !0 : Array.isArray(e) ? e.some(Ee) : me(e) || pe(e) || fe(e), Te = (e) => {
302
+ const t = (r) => Ue(r) && r.value === void 0 && !!Object.entries(e);
302
303
  return Array.isArray(e) ? e.every(Te) : t(e);
303
- }, We = (e, t) => e + (t.length > 1 ? "s" : ""), Ee = (e, t) => {
304
- const r = e.filter((n) => !t.includes(n));
304
+ }, $e = (e, t) => e + (t.length > 1 ? "s" : ""), he = (e, t) => {
305
+ const r = e.filter((s) => !t.includes(s));
305
306
  if (r.length)
306
307
  throw Error(
307
- `Unsupported ${We("key", r)} (${r.join(", ")})`
308
+ `Unsupported ${$e("key", r)} (${r.join(", ")})`
308
309
  );
309
- }, he = (e) => {
310
+ }, Ae = (e) => {
310
311
  if (Array.isArray(e))
311
312
  throw Error("Invalid value inside value object, cannot be array");
312
- return [void 0, null].includes(e) ? {} : pe(e) ? { value: e.toISOString() } : { value: e.toString() };
313
- }, je = (e) => {
314
- if (Ee(Object.keys(e), we), Object.keys(e).length === 0)
313
+ return [void 0, null].includes(e) ? {} : fe(e) ? { value: e.toISOString() } : { value: e.toString() };
314
+ }, Ge = (e) => {
315
+ if (he(Object.keys(e), We), Object.keys(e).length === 0)
315
316
  throw Error("Invalid value object, cannot be empty object");
316
317
  if (typeof (e == null ? void 0 : e.value) == "string")
317
318
  return e;
318
- const t = he(e == null ? void 0 : e.value);
319
+ const t = Ae(e == null ? void 0 : e.value);
319
320
  return { ...e, ...t !== void 0 ? t : {} };
320
- }, K = (e) => {
321
+ }, J = (e) => {
321
322
  if (![void 0, null].includes(e))
322
- return Array.isArray(e) ? e.flatMap(K) : k(e) ? je(e) : he(e);
323
- }, xe = (e) => {
324
- Ee(Object.keys(e), Ce);
325
- const t = K(e == null ? void 0 : e.value);
323
+ return Array.isArray(e) ? e.flatMap(J) : Y(e) ? Ge(e) : Ae(e);
324
+ }, Ve = (e) => {
325
+ he(Object.keys(e), Pe);
326
+ const t = J(e == null ? void 0 : e.value);
326
327
  if (t === void 0) {
327
- const { value: r, ...n } = e;
328
- return n;
328
+ const { value: r, ...s } = e;
329
+ return s;
329
330
  }
330
331
  return {
331
332
  ...e,
332
333
  value: [...Array.isArray(t) ? t : [t]]
333
334
  };
334
- }, Pe = (e) => {
335
- if (me(e))
336
- return xe(e);
337
- const t = K(e);
335
+ }, ke = (e) => {
336
+ if (pe(e))
337
+ return Ve(e);
338
+ const t = J(e);
338
339
  if (t !== void 0)
339
340
  return { value: [...Array.isArray(t) ? t : [t]] };
340
- }, Ae = (e) => {
341
+ }, Ie = (e) => {
341
342
  const t = [], r = [];
342
- let n = {};
343
- return Object.entries(e || {}).forEach(([o, s]) => {
344
- if (Le.includes(o))
345
- n = { ...n, [o]: s };
346
- else if (fe(s))
343
+ let s = {};
344
+ return Object.entries(e || {}).forEach(([o, n]) => {
345
+ if (je.includes(o))
346
+ s = { ...s, [o]: n };
347
+ else if (Ee(n))
347
348
  try {
348
- r.push({ name: o, ...Pe(s) });
349
+ r.push({ name: o, ...ke(n) });
349
350
  } catch (a) {
350
351
  throw Error(a.message + (o ? ` for field "${o}"` : ""));
351
352
  }
352
- else if (Te(s))
353
- (Array.isArray(s) ? s : [s]).forEach((a) => {
354
- t.push({ name: o, ...Ae(a) });
353
+ else if (Te(n))
354
+ (Array.isArray(n) ? n : [n]).forEach((a) => {
355
+ t.push({ name: o, ...Ie(a) });
355
356
  });
356
357
  else
357
358
  throw Error(`Unhandled value for "${o}"`);
358
359
  }), {
359
- ...n,
360
+ ...s,
360
361
  ...t.length > 0 ? { group: t } : {},
361
362
  ...r.length > 0 ? { field: r } : {}
362
363
  };
363
- }, Ue = (e) => {
364
- const { start: t = "-INF", end: r = "+INF", base: n = void 0, ...o } = e, { group: s, field: a } = Ae(o);
364
+ }, He = (e) => {
365
+ const { start: t = "-INF", end: r = "+INF", base: s = void 0, ...o } = e, { group: n, field: a } = Ie(o);
365
366
  return {
366
- ...s ? { group: s } : {},
367
+ ...n ? { group: n } : {},
367
368
  ...a ? { field: a } : {},
368
369
  start: t.toString(),
369
370
  end: r.toString(),
370
- ...n ? { base: n } : {}
371
+ ...s ? { base: s } : {}
371
372
  };
372
- }, Wt = (e) => ({
373
- timespan: (Array.isArray(e) ? e : [e || {}]).map((t) => Ue(t))
374
- }), Ge = (e, t) => {
375
- var o, s;
376
- const [r] = ((o = e == null ? void 0 : e.start) == null ? void 0 : o.split("@")) || [], [n] = ((s = t == null ? void 0 : t.start) == null ? void 0 : s.split("@")) || [];
377
- return Number(r) < Number(n) ? -1 : Number(r) > Number(n) ? 1 : 0;
378
- }, b = (e) => Array.isArray(e) ? e : e && [e] || [], re = (e) => Array.isArray(e) ? e.pop() : e, $e = (e) => (e == null ? void 0 : e.every((t) => typeof t == "string")) || !1, Oe = {
373
+ }, Qt = (e) => ({
374
+ timespan: (Array.isArray(e) ? e : [e || {}]).map((t) => He(t))
375
+ }), Ye = (e, t) => {
376
+ var o, n;
377
+ const [r] = ((o = e == null ? void 0 : e.start) == null ? void 0 : o.split("@")) || [], [s] = ((n = t == null ? void 0 : t.start) == null ? void 0 : n.split("@")) || [];
378
+ return Number(r) < Number(s) ? -1 : Number(r) > Number(s) ? 1 : 0;
379
+ }, D = (e) => Array.isArray(e) ? e : e && [e] || [], oe = (e) => Array.isArray(e) ? e.pop() : e, Ke = (e) => (e == null ? void 0 : e.every((t) => typeof t == "string")) || !1, Oe = {
379
380
  includeValueAttributes: !1
380
381
  };
381
- function Ve(e, t) {
382
+ function ze(e, t) {
382
383
  const { includeValueAttributes: r } = {
383
384
  ...Oe,
384
385
  ...t || {}
385
386
  };
386
387
  if (r === !1)
387
388
  return e == null ? void 0 : e.value;
388
- const { value: n, ...o } = e;
389
+ const { value: s, ...o } = e;
389
390
  return { ...r === !0 && o || Array.isArray(r) && Object.fromEntries(
390
391
  Object.entries(o).filter(
391
392
  ([a]) => r.includes(a)
392
393
  )
393
- ) || {}, value: n };
394
+ ) || {}, value: s };
394
395
  }
395
- const Ie = {
396
+ const Se = {
396
397
  ...Oe,
397
398
  joinValue: void 0,
398
399
  arrayOnSingleValue: !0
399
400
  };
400
- function ke(e, t) {
401
- const { joinValue: r, arrayOnSingleValue: n, ...o } = {
402
- ...Ie,
401
+ function Je(e, t) {
402
+ const { joinValue: r, arrayOnSingleValue: s, ...o } = {
403
+ ...Se,
403
404
  ...t || {}
404
- }, s = e == null ? void 0 : e.map((a) => Ve(a, o));
405
- return $e(s) && r ? s == null ? void 0 : s.join(r) : n !== !0 && (s == null ? void 0 : s.length) <= 1 ? s == null ? void 0 : s[0] : s;
405
+ }, n = e == null ? void 0 : e.map((a) => ze(a, o));
406
+ return Ke(n) && r ? n == null ? void 0 : n.join(r) : s !== !0 && (n == null ? void 0 : n.length) <= 1 ? n == null ? void 0 : n[0] : n;
406
407
  }
407
- const Re = {
408
+ const ge = {
408
409
  includeFieldAttributes: !1,
409
- ...Ie
410
- }, He = (e, t) => {
411
- const { includeFieldAttributes: r, ...n } = {
412
- ...Re,
410
+ ...Se
411
+ }, Xe = (e, t) => {
412
+ const { includeFieldAttributes: r, ...s } = {
413
+ ...ge,
413
414
  ...t || {}
414
- }, { value: o, ...s } = e, a = ke(o, n), i = r === !0 && s || Array.isArray(r) && Object.fromEntries(
415
- Object.entries(s).filter(
415
+ }, { value: o, ...n } = e, a = Je(o, s), i = r === !0 && n || Array.isArray(r) && Object.fromEntries(
416
+ Object.entries(n).filter(
416
417
  ([c]) => r.includes(c)
417
418
  )
418
419
  ) || {};
419
420
  return r ? { ...i, value: a } : a;
420
- }, j = {
421
- ...Re,
421
+ }, $ = {
422
+ ...ge,
422
423
  fieldAsList: !1,
423
424
  arrayOnSingleField: !1,
424
425
  overrideField: void 0
425
- }, Se = (e, t) => {
426
+ }, Re = (e, t) => {
426
427
  const r = {
427
- ...j,
428
+ ...$,
428
429
  ...t || {}
429
- }, { fieldAsList: n, arrayOnSingleField: o, overrideField: s } = r, a = s === !0 && n === !1, i = {};
430
+ }, { fieldAsList: s, arrayOnSingleField: o, overrideField: n } = r, a = n === !0 && s === !1, i = {};
430
431
  return e == null || e.forEach((c) => {
431
- const { name: l } = c, d = He(c, r), _ = o === !0 ? b(d) : d, p = i[l];
432
- p ? a ? i[l] = d : i[l] = [b(p), b(d)].flat() : i[l] = _;
433
- }), n === !0 ? Object.values(i).flat() : i;
434
- }, ge = {
435
- ...j,
432
+ const { name: p } = c, d = Xe(c, r), l = o === !0 ? D(d) : d, _ = i[p];
433
+ _ ? a ? i[p] = d : i[p] = [D(_), D(d)].flat() : i[p] = l;
434
+ }), s === !0 ? Object.values(i).flat() : i;
435
+ }, be = {
436
+ ...$,
436
437
  includeGroupAttributes: !1,
437
438
  groupAsList: !1,
438
439
  arrayOnSingleGroup: !1,
439
440
  overrideGroup: void 0
440
- }, Ye = (e, t) => {
441
+ }, qe = (e, t) => {
441
442
  const r = {
442
- ...ge,
443
+ ...be,
443
444
  ...t || {}
444
- }, { includeGroupAttributes: n } = r, o = Object.fromEntries(
445
+ }, { includeGroupAttributes: s } = r, o = Object.fromEntries(
445
446
  Object.entries(r).filter(
446
- ([_]) => Object.keys(j).includes(_)
447
+ ([l]) => Object.keys($).includes(l)
447
448
  )
448
- ), { field: s, group: a, ...i } = e, c = s && Se(s, o), l = a && be(a, r);
449
+ ), { field: n, group: a, ...i } = e, c = n && Re(n, o), p = a && Ne(a, r);
449
450
  return {
450
- ...n === !0 && i || Array.isArray(n) && Object.fromEntries(
451
+ ...s === !0 && i || Array.isArray(s) && Object.fromEntries(
451
452
  Object.entries(i).filter(
452
- ([_]) => n.includes(_)
453
+ ([l]) => s.includes(l)
453
454
  )
454
455
  ) || {},
455
456
  ...o != null && o.fieldAsList ? c && { field: c } || {} : c,
456
- ...r != null && r.groupAsList ? l && { group: l } || {} : l
457
+ ...r != null && r.groupAsList ? p && { group: p } || {} : p
457
458
  };
458
- }, z = ge, be = (e, t) => {
459
- const r = { ...z, ...t || {} }, { groupAsList: n, arrayOnSingleGroup: o, overrideGroup: s } = r, a = s === !0 && n === !1, i = {};
459
+ }, X = be, Ne = (e, t) => {
460
+ const r = { ...X, ...t || {} }, { groupAsList: s, arrayOnSingleGroup: o, overrideGroup: n } = r, a = n === !0 && s === !1, i = {};
460
461
  return e == null || e.forEach((c) => {
461
- const { name: l } = c, d = Ye(c, r), _ = o === !0 ? b(d) : d, p = i[l];
462
- p ? a ? i[l] = d : i[l] = [
463
- b(p),
464
- b(d)
465
- ].flat() : i[l] = _;
466
- }), n ? Object.values(i).flat() : i;
467
- }, Ne = {
468
- ...z,
462
+ const { name: p } = c, d = qe(c, r), l = o === !0 ? D(d) : d, _ = i[p];
463
+ _ ? a ? i[p] = d : i[p] = [
464
+ D(_),
465
+ D(d)
466
+ ].flat() : i[p] = l;
467
+ }), s ? Object.values(i).flat() : i;
468
+ }, De = {
469
+ ...X,
469
470
  includeTimespanAttributes: !1,
470
471
  flat: !1,
471
472
  arrayOnSingle: !1,
472
473
  arrayOnSingleValue: !0,
473
474
  arrayOnSingleGroup: void 0,
474
475
  arrayOnSingleField: void 0
475
- }, Ke = (e, t) => {
476
+ }, Qe = (e, t) => {
476
477
  const r = {
477
- ...Ne,
478
+ ...De,
478
479
  ...t || {}
479
- }, { includeTimespanAttributes: n, arrayOnSingle: o, flat: s } = r, a = Object.fromEntries(
480
+ }, { includeTimespanAttributes: s, arrayOnSingle: o, flat: n } = r, a = Object.fromEntries(
480
481
  Object.entries(t).map(([u, m]) => {
481
- if (Object.keys(z).includes(u))
482
- return ["arrayOnSingleGroup", "arrayOnSingleField", "arrayOnSingleValue"].includes(u) && (m !== void 0 ? m : o === !0) ? [u, !0] : ["overrideGroup", "overrideField"].includes(u) && (m !== void 0 ? m : s === !0) ? [u, !0] : [u, m];
482
+ if (Object.keys(X).includes(u))
483
+ return ["arrayOnSingleGroup", "arrayOnSingleField", "arrayOnSingleValue"].includes(u) && (m !== void 0 ? m : o === !0) ? [u, !0] : ["overrideGroup", "overrideField"].includes(u) && (m !== void 0 ? m : n === !0) ? [u, !0] : [u, m];
483
484
  }).filter((u) => !!u)
484
485
  ), i = Object.fromEntries(
485
486
  Object.entries(t).map(([u, m]) => {
486
- if (Object.keys(j).includes(u))
487
- return ["arrayOnSingleField", "arrayOnSingleValue"].includes(u) && (m !== void 0 ? m : o === !0) ? [u, !0] : ["overrideField"].includes(u) && (m !== void 0 ? m : s === !0) ? [u, !0] : [u, m];
487
+ if (Object.keys($).includes(u))
488
+ return ["arrayOnSingleField", "arrayOnSingleValue"].includes(u) && (m !== void 0 ? m : o === !0) ? [u, !0] : ["overrideField"].includes(u) && (m !== void 0 ? m : n === !0) ? [u, !0] : [u, m];
488
489
  }).filter((u) => !!u)
489
- ), { field: c, group: l, ...d } = e || {}, _ = c && Se(c, i), p = l && be(l, a);
490
+ ), { field: c, group: p, ...d } = e || {}, l = c && Re(c, i), _ = p && Ne(p, a);
490
491
  return {
491
- ...n === !0 && d || Array.isArray(n) && Object.fromEntries(
492
+ ...s === !0 && d || Array.isArray(s) && Object.fromEntries(
492
493
  Object.entries(d).filter(
493
- ([u]) => n.includes(u)
494
+ ([u]) => s.includes(u)
494
495
  )
495
496
  ) || {},
496
- ...i != null && i.fieldAsList ? { field: _ } : _,
497
- ...a != null && a.groupAsList ? { group: p } : p
497
+ ...i != null && i.fieldAsList ? { field: l } : l,
498
+ ...a != null && a.groupAsList ? { group: _ } : _
498
499
  };
499
- }, J = {
500
- ...Ne,
500
+ }, q = {
501
+ ...De,
501
502
  timespanAsList: !1,
502
503
  joinTimespan: "_",
503
504
  sortTimespan: !1,
504
505
  flat: !1,
505
506
  flatTimespan: void 0
506
- }, ye = (e, t) => {
507
+ }, Me = (e, t) => {
507
508
  const r = {
508
- ...J,
509
+ ...q,
509
510
  ...t || {}
510
- }, { timespanAsList: n, joinTimespan: o, sortTimespan: s, flat: a, flatTimespan: i, ...c } = r, l = { flat: a, ...c };
511
- s && e.sort(Ge);
512
- const d = (i !== void 0 ? i === !0 : a === !0) && n === !1, _ = {};
513
- return e == null || e.forEach((p) => {
514
- const { start: f, end: u } = p, m = d ? "flat" : [f, u].join(o), T = Ke(p, l), E = _[m];
515
- E ? d ? f === "-INF" && u === "+INF" ? _[m] = { ...re(E), ...T } : _[m] = { ...T, ...re(E) } : _[m] = [...b(E), T] : _[m] = T;
516
- }), n === !0 ? Object.values(_) : d ? Object.values(_).pop() : _;
517
- }, ze = {
518
- ...J,
511
+ }, { timespanAsList: s, joinTimespan: o, sortTimespan: n, flat: a, flatTimespan: i, ...c } = r, p = { flat: a, ...c };
512
+ n && e.sort(Ye);
513
+ const d = (i !== void 0 ? i === !0 : a === !0) && s === !1, l = {};
514
+ return e == null || e.forEach((_) => {
515
+ const { start: f, end: u } = _, m = d ? "flat" : [f, u].join(o), E = Qe(_, p), T = l[m];
516
+ T ? d ? f === "-INF" && u === "+INF" ? l[m] = { ...oe(T), ...E } : l[m] = { ...E, ...oe(T) } : l[m] = [...D(T), E] : l[m] = E;
517
+ }), s === !0 ? Object.values(l) : d ? Object.values(l).pop() : l;
518
+ }, Ze = {
519
+ ...q,
519
520
  includeMetadataAttributes: !1,
520
521
  flat: !1
521
522
  };
522
- function jt(e, t) {
523
+ function et(e, t) {
523
524
  const r = {
524
- ...ze,
525
+ ...Ze,
525
526
  ...t || {}
526
- }, { includeMetadataAttributes: n, flat: o } = r, { timespan: s = [], ...a } = e || {}, i = Object.fromEntries(
527
- Object.entries(t).map(([d, _]) => {
528
- if (Object.keys(J).includes(d))
529
- return ["onlyGeneric", "overrideGroup", "overrideField"].includes(d) && (_ !== void 0 ? _ : o === !0) ? [d, !0] : [d, _];
527
+ }, { includeMetadataAttributes: s, flat: o } = r, { timespan: n = [], ...a } = e || {}, i = Object.fromEntries(
528
+ Object.entries(t).map(([d, l]) => {
529
+ if (Object.keys(q).includes(d))
530
+ return ["onlyGeneric", "overrideGroup", "overrideField"].includes(d) && (l !== void 0 ? l : o === !0) ? [d, !0] : [d, l];
530
531
  }).filter((d) => !!d)
531
- ), c = ye(
532
- s,
532
+ ), c = Me(
533
+ n,
533
534
  i
534
535
  );
535
536
  return {
536
- ...n === !0 && {
537
+ ...s === !0 && {
537
538
  ...a,
538
539
  ...a.revision ? { revision: a.revision.split(",") } : {}
539
- } || Array.isArray(n) && Object.fromEntries(
540
- Object.entries(a).map(([d, _]) => {
541
- if (n.includes(d))
540
+ } || Array.isArray(s) && Object.fromEntries(
541
+ Object.entries(a).map(([d, l]) => {
542
+ if (s.includes(d))
542
543
  return [
543
544
  d,
544
- d === "revision" && typeof _ == "string" ? _.split(",") : _
545
+ d === "revision" && typeof l == "string" ? l.split(",") : l
545
546
  ];
546
547
  }).filter((d) => !!d)
547
548
  ) || {},
548
549
  ...i != null && i.timespanAsList ? { timespan: c } : c
549
550
  };
550
551
  }
551
- const xt = (e) => {
552
+ const Zt = (e) => {
552
553
  const { field: t = [] } = e || {};
553
- return N(t);
554
- }, X = {
554
+ return M(t);
555
+ }, Q = {
555
556
  PAL: { denominator: 25, numerator: 1 },
556
557
  NTSC: { denominator: 3e4, numerator: 1001 },
557
558
  NTSC30: { denominator: 30, numerator: 1 },
@@ -559,7 +560,7 @@ const xt = (e) => {
559
560
  59.94: { denominator: 6e4, numerator: 1001 },
560
561
  23.976: { denominator: 48e3, numerator: 2002 },
561
562
  23.98: { denominator: 48e3, numerator: 2002 }
562
- }, oe = Object.keys(X), ne = {
563
+ }, se = Object.keys(Q), ne = {
563
564
  toText: {
564
565
  constant: !1,
565
566
  fraction: !1
@@ -569,7 +570,7 @@ const xt = (e) => {
569
570
  rounded: !1
570
571
  }
571
572
  };
572
- class I {
573
+ class S {
573
574
  /**
574
575
  * Constructor for TimeBase
575
576
  *
@@ -577,8 +578,8 @@ class I {
577
578
  */
578
579
  constructor(t) {
579
580
  this.numerator = 1, this.denominator = 1;
580
- const { numerator: r = 1, denominator: n = 1 } = t || {};
581
- this.numerator = Number(r), this.denominator = Number(n);
581
+ const { numerator: r = 1, denominator: s = 1 } = t || {};
582
+ this.numerator = Number(r), this.denominator = Number(s);
582
583
  }
583
584
  /**
584
585
  * Get TimeBase in a constant representation (e.g. "PAL") if possible, otherwise undefined
@@ -586,9 +587,9 @@ class I {
586
587
  */
587
588
  toConstant() {
588
589
  let t;
589
- return Object.entries(X).find((r) => {
590
- const [n, o] = r, { numerator: s, denominator: a } = o;
591
- return s === this.numerator && a === this.denominator ? (t = n, !0) : !1;
590
+ return Object.entries(Q).find((r) => {
591
+ const [s, o] = r, { numerator: n, denominator: a } = o;
592
+ return n === this.numerator && a === this.denominator ? (t = s, !0) : !1;
592
593
  }), t;
593
594
  }
594
595
  /**
@@ -603,13 +604,13 @@ class I {
603
604
  * @returns Text representation of the TimeBase
604
605
  */
605
606
  toText(t) {
606
- const { constant: r, fraction: n } = { ...ne.toText, ...t };
607
+ const { constant: r, fraction: s } = { ...ne.toText, ...t };
607
608
  if (r) {
608
- const s = this.toConstant();
609
- if (s)
610
- return s;
609
+ const n = this.toConstant();
610
+ if (n)
611
+ return n;
611
612
  }
612
- return n || this.numerator > 1 ? [this.denominator, this.numerator].join(":") : String(this.denominator);
613
+ return s || this.numerator > 1 ? [this.denominator, this.numerator].join(":") : String(this.denominator);
613
614
  }
614
615
  /**
615
616
  * Output TimeBase as frame rate (by default max 16 decimal places)
@@ -627,8 +628,8 @@ class I {
627
628
  const r = this.denominator / this.numerator;
628
629
  if (Number.isInteger(r))
629
630
  return r;
630
- const { rounded: n, fixed: o } = { ...ne.toRate, ...t || {} };
631
- return n ? Math.round(r) : o === !0 || typeof o == "number" ? Number(r.toFixed(typeof o == "boolean" ? 2 : o)) : r;
631
+ const { rounded: s, fixed: o } = { ...ne.toRate, ...t || {} };
632
+ return s ? Math.round(r) : o === !0 || typeof o == "number" ? Number(r.toFixed(typeof o == "boolean" ? 2 : o)) : r;
632
633
  }
633
634
  /**
634
635
  * Get TimeBase in a object representation
@@ -650,39 +651,39 @@ class I {
650
651
  return console.warn("Deprecated - use toObject instead"), this.toObject();
651
652
  }
652
653
  }
653
- const q = (e) => {
654
+ const Z = (e) => {
654
655
  if (e === void 0)
655
- return new I();
656
+ return new S();
656
657
  if (typeof e == "number")
657
- return new I({ denominator: e });
658
+ return new S({ denominator: e });
658
659
  if (typeof e == "string" && e.includes(":")) {
659
660
  const [t, r] = e.split(":");
660
- return new I({ denominator: t, numerator: r });
661
+ return new S({ denominator: t, numerator: r });
661
662
  }
662
- if (oe.includes(e))
663
- return new I(X[e]);
663
+ if (se.includes(e))
664
+ return new S(Q[e]);
664
665
  if (!["string", "number"].includes(typeof e) || Number.isNaN(Number(e)))
665
666
  throw new Error(
666
- `timeBaseText must be a number or ${oe.join(",")} - is ${JSON.stringify(
667
+ `timeBaseText must be a number or ${se.join(",")} - is ${JSON.stringify(
667
668
  e
668
669
  )}`
669
670
  );
670
- return new I({ denominator: Number(e) });
671
- }, M = (e) => new I(e), v = (e) => e instanceof I ? e : typeof e == "string" || typeof e == "number" ? q(e) : M(e), Q = (e) => {
671
+ return new S({ denominator: Number(e) });
672
+ }, B = (e) => new S(e), j = (e) => e instanceof S ? e : typeof e == "string" || typeof e == "number" ? Z(e) : B(e), ee = (e) => {
672
673
  const t = e.toConstant();
673
674
  return t === "59.94" && 4 || ["NTSC", "29.97"].includes(t) && 2 || void 0;
674
- }, Fe = (e) => Q(e) > 0, se = (e) => {
675
- const { samples: t, timeBase: r } = e, n = Q(r);
676
- if (!n)
675
+ }, Fe = (e) => ee(e) > 0, ie = (e) => {
676
+ const { samples: t, timeBase: r } = e, s = ee(r);
677
+ if (!s)
677
678
  return 0;
678
- const o = r.toRate({ rounded: !0 }), s = 60 * o, a = 60 * o - n, i = 10 * (s - n) + n, c = Math.floor((t + 1) / i), l = Math.max(
679
+ const o = r.toRate({ rounded: !0 }), n = 60 * o, a = 60 * o - s, i = 10 * (n - s) + s, c = Math.floor((t + 1) / i), p = Math.max(
679
680
  0,
680
- (t + 1) % i - s
681
+ (t + 1) % i - n
681
682
  ), d = Math.floor(
682
- l / a
683
- ), p = l % a > 0 ? n : 0;
684
- return c * 9 * n + d * n + p;
685
- }, G = {
683
+ p / a
684
+ ), _ = p % a > 0 ? s : 0;
685
+ return c * 9 * s + d * s + _;
686
+ }, V = {
686
687
  conformTimeBase: {
687
688
  dropFrame: void 0,
688
689
  frameSeparator: void 0
@@ -696,7 +697,7 @@ const q = (e) => {
696
697
  format: void 0
697
698
  }
698
699
  };
699
- class g {
700
+ class R {
700
701
  /**
701
702
  * Constructor for TimeCode
702
703
  *
@@ -704,16 +705,16 @@ class g {
704
705
  * @param options Options for the timeCode
705
706
  */
706
707
  constructor(t, r) {
707
- this.samples = 0, this.timeBase = new I();
708
- const { samples: n, timeBase: o } = t || {};
709
- if (n !== void 0)
710
- if (typeof n == "number")
711
- this.samples = n;
712
- else if (typeof n == "string")
713
- n === "-INF" ? this.samples = -1 / 0 : n === "+INF" ? this.samples = 1 / 0 : this.samples = Number(n);
708
+ this.samples = 0, this.timeBase = new S();
709
+ const { samples: s, timeBase: o } = t || {};
710
+ if (s !== void 0)
711
+ if (typeof s == "number")
712
+ this.samples = s;
713
+ else if (typeof s == "string")
714
+ s === "-INF" ? this.samples = -1 / 0 : s === "+INF" ? this.samples = 1 / 0 : this.samples = Number(s);
714
715
  else
715
- throw new Error(`samples is not number/string/-Inf/+Inf is: ${n}`);
716
- o !== void 0 && (o instanceof I ? this.timeBase = o : this.timeBase = v(o)), this.dropFrame = (r == null ? void 0 : r.dropFrame) ?? Fe(this.timeBase), this.frameSeparator = (r == null ? void 0 : r.frameSeparator) ?? (this.dropFrame ? ";" : ":");
716
+ throw new Error(`samples is not number/string/-Inf/+Inf is: ${s}`);
717
+ o !== void 0 && (o instanceof S ? this.timeBase = o : this.timeBase = j(o)), this.dropFrame = (r == null ? void 0 : r.dropFrame) ?? Fe(this.timeBase), this.frameSeparator = (r == null ? void 0 : r.frameSeparator) ?? (this.dropFrame ? ";" : ":");
717
718
  }
718
719
  /**
719
720
  * Return this TimeCode added with the supplied timeCodeType
@@ -733,11 +734,11 @@ class g {
733
734
  add(t) {
734
735
  if (!(t != null && t.timeBase) || (t == null ? void 0 : t.samples) === void 0)
735
736
  throw Error("Invalid timeCodeType, cannot be added");
736
- const { numerator: r, denominator: n } = (t == null ? void 0 : t.timeBase) || {};
737
+ const { numerator: r, denominator: s } = (t == null ? void 0 : t.timeBase) || {};
737
738
  let o = t;
738
- (r !== this.timeBase.numerator || n !== this.timeBase.denominator) && (o = t.conformTimeBase(this.timeBase));
739
- const { samples: s } = o;
740
- return new g({ samples: this.samples + s, timeBase: this.timeBase });
739
+ (r !== this.timeBase.numerator || s !== this.timeBase.denominator) && (o = t.conformTimeBase(this.timeBase));
740
+ const { samples: n } = o;
741
+ return new R({ samples: this.samples + n, timeBase: this.timeBase });
741
742
  }
742
743
  /**
743
744
  * Return this TimeCode subtracted with the supplied timeCodeType
@@ -757,33 +758,43 @@ class g {
757
758
  subtract(t) {
758
759
  if (!(t != null && t.timeBase) || (t == null ? void 0 : t.samples) === void 0)
759
760
  throw Error("Invalid timeCodeType, cannot be subtracted");
760
- const { timeBase: { numerator: r, denominator: n } = {} } = t;
761
+ const { timeBase: { numerator: r, denominator: s } = {} } = t;
761
762
  let o = t;
762
- (r !== this.timeBase.numerator || n !== this.timeBase.denominator) && (o = t.conformTimeBase(this.timeBase));
763
- const { samples: s } = o;
764
- return new g({ samples: this.samples - s, timeBase: this.timeBase });
763
+ (r !== this.timeBase.numerator || s !== this.timeBase.denominator) && (o = t.conformTimeBase(this.timeBase));
764
+ const { samples: n } = o;
765
+ return new R({ samples: this.samples - n, timeBase: this.timeBase });
765
766
  }
766
767
  /**
767
768
  * Creates a new TimeCode instance with specified timeBase and samples adjusted to that.
768
769
  *
769
770
  * @remarks
770
- * If it conforms to a less granular time base - it will floor samples (hasn't reached that sample yet)
771
+ * It floors samples when conforming to a less granular time base (can be changed with `options.mode`)
772
+ *
771
773
  * - e.g. "51@50".conformTo("PAL") => "25@PAL" (not "26@PAL")
772
774
  *
773
775
  * @param timeBase The TimeBase it should conform the TimeCode to
774
- * @param options Explicitly set TimeCode options, by default these are derived from `timeBase`
776
+ * @param options Explicitly set conform options, by default these are derived from `timeBase`
775
777
  * @returns A new TimeCode instance with the conformTo timeBase applied
776
778
  */
777
779
  conformTimeBase(t, r) {
778
- const n = t instanceof I ? t : v(t), o = Math.floor(
779
- this.samples / (this.timeBase.toRate({ fixed: !1 }) / n.toRate({ fixed: !1 }))
780
- ), s = { ...G.conformTimeBase, ...r || {} };
781
- return new g(
780
+ const s = t instanceof S ? t : j(t), o = (r == null ? void 0 : r.roundingMode) ?? "floor";
781
+ if (!["floor", "ceil", "round"].includes(o))
782
+ throw Error(
783
+ `Invalid mode selection "${o}". Has to be one of "${[
784
+ "floor",
785
+ "ceil",
786
+ "round"
787
+ ].join(", ")}"`
788
+ );
789
+ const n = Math[o](
790
+ this.samples / (this.timeBase.toRate({ fixed: !1 }) / s.toRate({ fixed: !1 }))
791
+ ), a = { ...V.conformTimeBase, ...r || {} };
792
+ return new R(
782
793
  {
783
- samples: o,
784
- timeBase: n
794
+ samples: n,
795
+ timeBase: s
785
796
  },
786
- s
797
+ a
787
798
  );
788
799
  }
789
800
  /**
@@ -799,7 +810,7 @@ class g {
799
810
  */
800
811
  toText(t) {
801
812
  let r = `${this.samples}`;
802
- const n = { ...G.toText, ...t || {} }, o = this.timeBase.toText(n);
813
+ const s = { ...V.toText, ...t || {} }, o = this.timeBase.toText(s);
803
814
  return (t != null && t.includeTimeBaseForSeconds || !["1", "1:1"].includes(o)) && (r = [this.samples, o].join("@")), r;
804
815
  }
805
816
  /**
@@ -818,14 +829,14 @@ class g {
818
829
  seconds: 1 / 0,
819
830
  frames: 1 / 0
820
831
  };
821
- const t = this.samples + (this.dropFrame ? se(this) : 0);
832
+ const t = this.samples + (this.dropFrame ? ie(this) : 0);
822
833
  let r = this.timeBase.toRate({ rounded: !0 });
823
834
  ["23.976", "23.98"].includes(this.timeBase.toConstant()) && (r = this.timeBase.toRate({ fixed: !0 }));
824
- const n = Math.floor(t / (3600 * r)), o = Math.floor(t / (60 * r)) % 60, s = Math.floor(t / r) % 60, a = Math.floor(t % r);
835
+ const s = Math.floor(t / (3600 * r)), o = Math.floor(t / (60 * r)) % 60, n = Math.floor(t / r) % 60, a = Math.floor(t % r);
825
836
  return {
826
- hours: n,
837
+ hours: s,
827
838
  minutes: o,
828
- seconds: s,
839
+ seconds: n,
829
840
  frames: a
830
841
  };
831
842
  }
@@ -837,10 +848,10 @@ class g {
837
848
  * @returns Time for the time code
838
849
  */
839
850
  toTime() {
840
- const t = this.samples + se(this), { hours: r, minutes: n, seconds: o } = this.toUnits(), s = this.timeBase.toRate({ rounded: !0 }), a = t % s, i = Math.floor(1e3 * a / s), c = a / s;
851
+ const t = this.samples + ie(this), { hours: r, minutes: s, seconds: o } = this.toUnits(), n = this.timeBase.toRate({ rounded: !0 }), a = t % n, i = Math.floor(1e3 * a / n), c = a / n;
841
852
  return {
842
853
  hours: r,
843
- minutes: n,
854
+ minutes: s,
844
855
  seconds: o,
845
856
  milliseconds: i,
846
857
  partialSeconds: c
@@ -851,9 +862,9 @@ class g {
851
862
  *
852
863
  * @returns Total seconds for the time code
853
864
  */
854
- toSeconds() {
855
- const { numerator: t, denominator: r } = this.timeBase;
856
- return Math.round(1e3 * +(this.samples * t / r)) / 1e3;
865
+ toSeconds(t) {
866
+ const { numerator: r, denominator: s } = this.timeBase, o = +(this.samples * r / s);
867
+ return t != null && t.round ? Math.round(1e3 * o) / 1e3 : o;
857
868
  }
858
869
  /**
859
870
  * Get TimeCode in a duration representation
@@ -875,55 +886,55 @@ class g {
875
886
  * @returns Duration representation of the TimeCode
876
887
  */
877
888
  toDuration(t) {
878
- const { format: r } = { ...G.toDuration, ...t || {} }, { hours: n, ...o } = this.toTime();
879
- let { minutes: s, seconds: a, milliseconds: i } = o;
889
+ const { format: r } = { ...V.toDuration, ...t || {} }, { hours: s, ...o } = this.toTime();
890
+ let { minutes: n, seconds: a, milliseconds: i } = o;
880
891
  if (r && typeof r != "string")
881
892
  throw Error("format has to be a string");
882
- const c = (p, f) => !r.includes(p) || !f.some((u) => r.includes(u) && r.lastIndexOf(p) > r.indexOf(u));
893
+ const c = (_, f) => !r.includes(_) || !f.some((u) => r.includes(u) && r.lastIndexOf(_) > r.indexOf(u));
883
894
  if (r && !(c("h", ["m", "s", "S"]) && c("m", ["s", "S"]) && c("s", ["S"])))
884
895
  throw Error("format order is unsupported (has to be h, m, s then S)");
885
896
  if (!r)
886
- return `${n > 0 ? `${n}:${`${s}`.padStart(2, "0")}` : s}:${`${a}`.padStart(2, "0")}`;
887
- const l = (p, f) => {
888
- let u = p;
897
+ return `${s > 0 ? `${s}:${`${n}`.padStart(2, "0")}` : n}:${`${a}`.padStart(2, "0")}`;
898
+ const p = (_, f) => {
899
+ let u = _;
889
900
  for (; f[u] === f[u + 1]; )
890
901
  u += 1;
891
- return u - p + 1;
892
- }, d = ["h", "m", "s", "S"], _ = [];
893
- return [...r].forEach((p, f, u) => {
894
- switch (p) {
902
+ return u - _ + 1;
903
+ }, d = ["h", "m", "s", "S"], l = [];
904
+ return [...r].forEach((_, f, u) => {
905
+ switch (_) {
895
906
  case "h": {
896
907
  if (u[f - 1] === "h")
897
908
  break;
898
- const m = l(f, u);
899
- _.push(`${n}`.padStart(m, "0")), d.includes(u[f + m]) && _.push(":");
909
+ const m = p(f, u);
910
+ l.push(`${s}`.padStart(m, "0")), d.includes(u[f + m]) && l.push(":");
900
911
  break;
901
912
  }
902
913
  case "m": {
903
914
  if (u[f - 1] === "m")
904
915
  break;
905
- const m = l(f, u);
906
- r.includes("h") || (s += n * 60), _.push(`${s}`.padStart(m, "0")), d.includes(u[f + m]) && _.push(":");
916
+ const m = p(f, u);
917
+ r.includes("h") || (n += s * 60), l.push(`${n}`.padStart(m, "0")), d.includes(u[f + m]) && l.push(":");
907
918
  break;
908
919
  }
909
920
  case "s": {
910
921
  if (u[f - 1] === "s")
911
922
  break;
912
- const m = l(f, u);
913
- r.includes("m") || (a += s * 60), _.push(`${a}`.padStart(m, "0")), d.includes(u[f + m]) && _.push(".");
923
+ const m = p(f, u);
924
+ r.includes("m") || (a += n * 60), l.push(`${a}`.padStart(m, "0")), d.includes(u[f + m]) && l.push(".");
914
925
  break;
915
926
  }
916
927
  case "S": {
917
928
  if (u[f - 1] === "S")
918
929
  break;
919
- const m = l(f, u);
920
- r.includes("s") || (i += a * 1e3), _.push(`${Math.round(i / 10 ** (3 - m))}`.padStart(m, "0"));
930
+ const m = p(f, u);
931
+ r.includes("s") || (i += a * 1e3), l.push(`${Math.round(i / 10 ** (3 - m))}`.padStart(m, "0"));
921
932
  break;
922
933
  }
923
934
  default:
924
- _.push(p);
935
+ l.push(_);
925
936
  }
926
- }), _.join("");
937
+ }), l.join("");
927
938
  }
928
939
  /**
929
940
  * Get TimeCode in a smpte representation
@@ -933,12 +944,12 @@ class g {
933
944
  toSmpte() {
934
945
  if (this.samples === -1 / 0)
935
946
  return "00:00:00:00";
936
- const { hours: t, minutes: r, seconds: n, frames: o } = this.toUnits(), s = [
947
+ const { hours: t, minutes: r, seconds: s, frames: o } = this.toUnits(), n = [
937
948
  t.toFixed().padStart(2, "0"),
938
949
  r.toFixed().padStart(2, "0"),
939
- n.toFixed().padStart(2, "0")
950
+ s.toFixed().padStart(2, "0")
940
951
  ].join(":"), a = Math.max(2, `${this.timeBase.toRate({ rounded: !0 }) - 1}`.length);
941
- return [s, `${o}`.padStart(a, "0")].join(this.frameSeparator);
952
+ return [n, `${o}`.padStart(a, "0")].join(this.frameSeparator);
942
953
  }
943
954
  /**
944
955
  * Get TimeCode as a VidiCore TimeCodeType object
@@ -960,123 +971,123 @@ class g {
960
971
  return console.warn("Deprecated - use toObject instead"), this.toObject();
961
972
  }
962
973
  }
963
- const Je = (e, t) => {
964
- let r = Math.abs(e), n = Math.abs(t);
965
- for (; r && n && r !== n; )
966
- r > n ? [r, n] = [r - n, n] : [r, n] = [r, n - r];
967
- return r || n;
968
- }, Xe = (e, t) => {
969
- const { timeBase: r, useGCD: n = !1, ...o } = t || {}, s = `${e}`.replace(/,/g, ".");
970
- if (Number.isNaN(+s))
974
+ const tt = (e, t) => {
975
+ let r = Math.abs(e), s = Math.abs(t);
976
+ for (; r && s && r !== s; )
977
+ r > s ? [r, s] = [r - s, s] : [r, s] = [r, s - r];
978
+ return r || s;
979
+ }, rt = (e, t) => {
980
+ const { timeBase: r, useGCD: s = !1, roundingMode: o, ...n } = t || {}, a = `${e}`.replace(/,/g, ".");
981
+ if (Number.isNaN(+a))
971
982
  throw new Error(`seconds must be digits, is ${e}`);
972
- let a = 1, i;
973
- if (Number.isInteger(+s))
974
- i = +s * a;
983
+ let i = 1, c;
984
+ if (Number.isInteger(+a))
985
+ c = +a * i;
975
986
  else {
976
- const [, l] = s.split("."), d = Math.min((l == null ? void 0 : l.length) ?? 0, 16);
977
- a *= 10 ** d, i = Math.round(Number(s) * a);
987
+ const [, d] = a.split("."), l = Math.min((d == null ? void 0 : d.length) ?? 0, 16);
988
+ i *= 10 ** l, c = Math.round(Number(a) * i);
978
989
  }
979
- if (r === void 0 && n) {
980
- const l = Je(a, i);
981
- i /= l, a /= l;
990
+ if (r === void 0 && s) {
991
+ const d = tt(i, c);
992
+ c /= d, i /= d;
982
993
  }
983
- const c = new g(
984
- { samples: i, timeBase: { denominator: a, numerator: 1 } },
985
- o
994
+ const p = new R(
995
+ { samples: c, timeBase: { denominator: i, numerator: 1 } },
996
+ n
986
997
  );
987
- return r !== void 0 ? c.conformTimeBase(v(r), o) : c;
988
- }, qe = ([e, t, r, n], o, s) => {
989
- const a = s.toRate({ rounded: !0 }), i = Q(s);
998
+ return r !== void 0 ? p.conformTimeBase(r, { ...n, roundingMode: o }) : p;
999
+ }, ot = ([e, t, r, s], o, n) => {
1000
+ const a = n.toRate({ rounded: !0 }), i = ee(n);
990
1001
  if (o === 0 || !i)
991
1002
  return 0;
992
- const c = t % 10 !== 0, l = c && r === 0, d = e * (3600 * a - 54 * i), _ = t * 60 * a - (t - Math.ceil(t / 10)) * i, p = r * a - (c && r > 1 ? i : 0);
993
- if (l && n < i)
1003
+ const c = t % 10 !== 0, p = c && r === 0, d = e * (3600 * a - 54 * i), l = t * 60 * a - (t - Math.ceil(t / 10)) * i, _ = r * a - (c && r > 1 ? i : 0);
1004
+ if (p && s < i)
994
1005
  throw new Error(
995
- `Frame does not exist for ${s.toConstant() || s.toRate()} drop-frame`
1006
+ `Frame does not exist for ${n.toConstant() || n.toRate()} drop-frame`
996
1007
  );
997
- const f = l ? n - i : n, u = d + _ + p + f;
1008
+ const f = p ? s - i : s, u = d + l + _ + f;
998
1009
  return o - u;
999
- }, $ = (e, t, r) => {
1000
- const [n, o, s, a] = e, i = t.toRate({ rounded: !0 }), c = n * 3600 * i + o * 60 * i + s * i + a;
1001
- return c - (r ? qe(e, c, t) : 0);
1002
- }, Qe = (e) => {
1010
+ }, k = (e, t, r) => {
1011
+ const [s, o, n, a] = e, i = t.toRate({ rounded: !0 }), c = s * 3600 * i + o * 60 * i + n * i + a;
1012
+ return c - (r ? ot(e, c, t) : 0);
1013
+ }, st = (e) => {
1003
1014
  const [t] = (e == null ? void 0 : e.match(/[^0-9:\-_]/)) || [];
1004
1015
  let r = [];
1005
1016
  if (t) {
1006
- const [o, s] = e.split(t);
1007
- r = [...o.split(":"), s];
1017
+ const [o, n] = e.split(t);
1018
+ r = [...o.split(":"), n];
1008
1019
  } else
1009
1020
  r = e.split(":");
1010
1021
  if (r.length !== 4)
1011
1022
  throw new Error('Invalid format, must be "##:##:##:##');
1012
1023
  if (r.some((o) => Number.isNaN(o)))
1013
1024
  throw new Error("Invalid format, values must be numbers");
1014
- const n = t || ":";
1025
+ const s = t || ":";
1015
1026
  return {
1016
1027
  smpteValues: r.map(Number),
1017
- smpteFrameSeparator: n
1028
+ smpteFrameSeparator: s
1018
1029
  };
1019
- }, Ze = ["error", "add", "ignore"], et = {
1030
+ }, nt = ["error", "add", "ignore"], it = {
1020
1031
  exceedingMode: "error",
1021
1032
  timeBase: void 0,
1022
1033
  dropFrame: void 0,
1023
1034
  frameSeparator: void 0
1024
- }, tt = (e, t) => {
1025
- const { exceedingMode: r, timeBase: n, ...o } = { ...et, ...t };
1035
+ }, at = (e, t) => {
1036
+ const { exceedingMode: r, timeBase: s, ...o } = { ...it, ...t };
1026
1037
  if ([null, void 0].includes(e))
1027
1038
  throw new Error("smpte cannot be undefined or null");
1028
1039
  if (typeof e != "string")
1029
1040
  throw new Error(`smpte must be a string, is ${JSON.stringify(e)}`);
1030
- const { smpteValues: s, smpteFrameSeparator: a } = Qe(e), i = v(n), c = {
1041
+ const { smpteValues: n, smpteFrameSeparator: a } = st(e), i = j(s), c = {
1031
1042
  ...o,
1032
1043
  frameSeparator: (o == null ? void 0 : o.frameSeparator) || a,
1033
1044
  ...(o == null ? void 0 : o.dropFrame) === void 0 ? {
1034
- dropFrame: n !== void 0 ? Fe(i) : [";", ","].includes(a)
1045
+ dropFrame: s !== void 0 ? Fe(i) : [";", ","].includes(a)
1035
1046
  } : {}
1036
- }, l = i.toRate({ rounded: !0 }), d = Math.max(0, l - 1);
1037
- if (s.some((p) => p < 0))
1047
+ }, p = i.toRate({ rounded: !0 }), d = Math.max(0, p - 1);
1048
+ if (n.some((_) => _ < 0))
1038
1049
  throw new Error("Negative values are not supported");
1039
- let _;
1050
+ let l;
1040
1051
  switch (r) {
1041
1052
  case "error": {
1042
- const [p, f, u, m] = s;
1043
- if (p >= 100 || f >= 60)
1053
+ const [_, f, u, m] = n;
1054
+ if (_ >= 100 || f >= 60)
1044
1055
  throw Error("Minutes has to be less than 60");
1045
1056
  if (u >= 60)
1046
1057
  throw Error("Seconds has to be less than 60");
1047
1058
  if (m > d)
1048
1059
  throw Error(`Frames has to be less or equal to ${d}`);
1049
- _ = $(s, i, c == null ? void 0 : c.dropFrame);
1060
+ l = k(n, i, c == null ? void 0 : c.dropFrame);
1050
1061
  break;
1051
1062
  }
1052
1063
  case "ignore": {
1053
- const [p, f, u, m] = s, T = [
1054
- Math.min(100, p),
1064
+ const [_, f, u, m] = n, E = [
1065
+ Math.min(100, _),
1055
1066
  Math.min(59, f),
1056
1067
  Math.min(59, u),
1057
1068
  Math.min(d, m)
1058
1069
  ];
1059
- _ = $(
1060
- T,
1070
+ l = k(
1071
+ E,
1061
1072
  i,
1062
1073
  c == null ? void 0 : c.dropFrame
1063
1074
  );
1064
1075
  break;
1065
1076
  }
1066
1077
  case "add": {
1067
- _ = $(s, i, c == null ? void 0 : c.dropFrame);
1078
+ l = k(n, i, c == null ? void 0 : c.dropFrame);
1068
1079
  break;
1069
1080
  }
1070
1081
  default:
1071
- throw new Error(`Invalid exceedingMode, options are ${JSON.stringify(Ze)}`);
1082
+ throw new Error(`Invalid exceedingMode, options are ${JSON.stringify(nt)}`);
1072
1083
  }
1073
- return new g({ samples: _, timeBase: i }, c);
1074
- }, rt = {
1084
+ return new R({ samples: l, timeBase: i }, c);
1085
+ }, ct = {
1075
1086
  timeBase: void 0,
1076
1087
  dropFrame: void 0,
1077
1088
  frameSeparator: void 0
1078
- }, B = (e, t) => {
1079
- const { timeBase: r, ...n } = { ...rt, ...t };
1089
+ }, U = (e, t) => {
1090
+ const { timeBase: r, ...s } = { ...ct, ...t };
1080
1091
  let o;
1081
1092
  if (e === void 0)
1082
1093
  o = { samples: 0 };
@@ -1084,41 +1095,40 @@ const Je = (e, t) => {
1084
1095
  o = { samples: e };
1085
1096
  else if (e.includes("@")) {
1086
1097
  const [a, i] = e.split("@");
1087
- o = { samples: Number(a), timeBase: q(i) };
1098
+ o = { samples: Number(a), timeBase: Z(i) };
1088
1099
  } else
1089
1100
  e === "-INF" ? o = { samples: -1 / 0 } : e === "+INF" ? o = { samples: 1 / 0 } : o = { samples: Number(e) };
1090
- if (Number.isNaN(o == null ? void 0 : o.samples) || o.timeBase && !(o.timeBase instanceof I))
1101
+ if (Number.isNaN(o == null ? void 0 : o.samples) || o.timeBase && !(o.timeBase instanceof S))
1091
1102
  throw new Error(`timeCodeText must be a number or sample@timeBase - is ${e}`);
1092
- const s = new g(o, n);
1093
- return r ? s.conformTimeBase(v(r), n) : s;
1094
- }, ot = {
1103
+ const n = new R(o, s);
1104
+ return r ? n.conformTimeBase(j(r), s) : n;
1105
+ }, dt = {
1095
1106
  dropFrame: void 0,
1096
1107
  frameSeparator: void 0
1097
- }, D = (e, t) => new g(e, { ...ot, ...t }), nt = (e) => !!e.match(/^(\d\d+):(\d\d+):(\d\d+)(:|;|\.|,)(\d\d+)$/), st = (e) => !Number.isNaN(Number(e)), W = (e, t) => {
1098
- if (e instanceof g)
1108
+ }, L = (e, t) => new R(e, { ...dt, ...t }), ut = (e) => !!e.match(/^(\d\d+):(\d\d+):(\d\d+)(:|;|\.|,)(\d\d+)$/), lt = (e) => !Number.isNaN(Number(e)), x = (e, t) => {
1109
+ if (e instanceof R)
1099
1110
  return e;
1100
1111
  if (typeof e != "string" && typeof e != "number")
1101
- return D(e, t);
1102
- if (typeof e == "string" && nt(e))
1103
- return tt(e, t);
1104
- if (["string", "number"].includes(typeof e) && st(e))
1105
- return Xe(e, t);
1112
+ return L(e, t);
1113
+ if (typeof e == "string" && ut(e))
1114
+ return at(e, t);
1115
+ if (["string", "number"].includes(typeof e) && lt(e))
1116
+ return rt(e, t);
1106
1117
  if (typeof e == "string")
1107
- return B(e, t);
1118
+ return U(e, t);
1108
1119
  };
1109
- function ie({ hours: e = 0, minutes: t = 0, seconds: r = 0, partialSeconds: n = 0 }) {
1110
- const o = e.toFixed().padStart(2, "0"), s = t.toFixed().padStart(2, "0"), a = r.toFixed().padStart(2, "0"), i = (n * 10).toFixed().padStart(3, "0");
1111
- return `${o}:${s}:${a}.${i}`;
1120
+ function ae({ hours: e = 0, minutes: t = 0, seconds: r = 0, partialSeconds: s = 0 }) {
1121
+ const o = e.toFixed().padStart(2, "0"), n = t.toFixed().padStart(2, "0"), a = r.toFixed().padStart(2, "0"), i = (s * 10).toFixed().padStart(3, "0");
1122
+ return `${o}:${n}:${a}.${i}`;
1112
1123
  }
1113
- const it = {
1124
+ const _t = {
1114
1125
  subtitleGroup: "stl_subtitle",
1115
1126
  subtitleField: "stl_text"
1116
- }, Pt = (e, t) => {
1117
- const { subtitleGroup: r, subtitleField: n } = { ...it, ...t || {} }, { timespan: o = [] } = e || {};
1118
- return o.length === 0 ? "" : `WEBVTT
1119
-
1120
-
1121
- ${ye(o, {
1127
+ }, er = (e, t) => {
1128
+ const { subtitleGroup: r, subtitleField: s } = { ..._t, ...t || {} }, { timespan: o = [] } = e || {};
1129
+ if (o.length === 0)
1130
+ return "";
1131
+ const a = Me(o, {
1122
1132
  includeTimespanAttributes: !0,
1123
1133
  sortTimespan: !0,
1124
1134
  timespanAsList: !0,
@@ -1127,174 +1137,179 @@ ${ye(o, {
1127
1137
  }).map((i) => {
1128
1138
  const {
1129
1139
  start: c,
1130
- end: l,
1131
- [r]: { [n]: d } = {}
1140
+ end: p,
1141
+ [r]: { [s]: d } = {}
1132
1142
  } = (Array.isArray(i) ? i[0] : i) || {};
1133
1143
  if (!d)
1134
1144
  return "";
1135
- const _ = ie(B(c).toTime()), p = ie(B(l).toTime());
1136
- return `${_} --> ${p} line:0%\r${d}\r`;
1137
- }).join(`
1145
+ const l = ae(U(c).toTime()), _ = ae(U(p).toTime());
1146
+ return `${l} --> ${_} line:0%\r${d}\r`;
1147
+ });
1148
+ if (a.some((i) => !!i))
1149
+ return `WEBVTT
1150
+
1151
+
1152
+ ${a.join(`
1138
1153
  `)}`;
1139
- }, at = { count: !0, exclude: !0 }, Ut = (e = [], t = {}) => {
1140
- const r = { ...at, ...t }, { count: n, exclude: o } = r;
1141
- return e.map((s) => typeof s == "string" ? {
1142
- field: s,
1143
- name: s,
1144
- count: n,
1145
- ...o === !0 ? { exclude: [s] } : {}
1146
- } : s);
1147
- }, Gt = (e = []) => e == null ? void 0 : e.map(({ name: t, field: r, count: n, range: o }) => ({
1154
+ }, mt = { count: !0, exclude: !0 }, tr = (e = [], t = {}) => {
1155
+ const r = { ...mt, ...t }, { count: s, exclude: o } = r;
1156
+ return e.map((n) => typeof n == "string" ? {
1157
+ field: n,
1158
+ name: n,
1159
+ count: s,
1160
+ ...o === !0 ? { exclude: [n] } : {}
1161
+ } : n);
1162
+ }, rr = (e = []) => e == null ? void 0 : e.map(({ name: t, field: r, count: s, range: o }) => ({
1148
1163
  facetName: t,
1149
1164
  fieldName: r,
1150
- count: n == null ? void 0 : n.reduce((s, { fieldValue: a, value: i }) => ({ ...s, [a]: i }), {}),
1165
+ count: s == null ? void 0 : s.reduce((n, { fieldValue: a, value: i }) => ({ ...n, [a]: i }), {}),
1151
1166
  ...o ? {
1152
- range: o.map(({ value: s, start: a, end: i }) => ({
1167
+ range: o.map(({ value: n, start: a, end: i }) => ({
1153
1168
  start: Number.isNaN(+a) ? a : Number(a),
1154
1169
  end: Number.isNaN(+i) ? i : Number(i),
1155
- count: Number(s) || 0
1170
+ count: Number(n) || 0
1156
1171
  }))
1157
1172
  } : {}
1158
- })), $t = (e = []) => {
1173
+ })), or = (e = []) => {
1159
1174
  const t = {};
1160
- return e.forEach(({ name: r, field: n, count: o }) => {
1161
- t[r || n] = o.reduce(
1162
- (s, { fieldValue: a, value: i }) => ({ ...s, [a]: i }),
1175
+ return e.forEach(({ name: r, field: s, count: o }) => {
1176
+ t[r || s] = o.reduce(
1177
+ (n, { fieldValue: a, value: i }) => ({ ...n, [a]: i }),
1163
1178
  {}
1164
1179
  );
1165
1180
  }), t;
1166
- }, De = {
1181
+ }, ye = {
1167
1182
  arrayOnSingle: !0,
1168
1183
  joinValue: void 0,
1169
1184
  timespanAsList: !1
1170
- }, V = (e, t) => {
1185
+ }, H = (e, t) => {
1171
1186
  const {
1172
1187
  arrayOnSingle: r = !0,
1173
- joinValue: n = void 0,
1188
+ joinValue: s = void 0,
1174
1189
  timespanAsList: o = !1
1175
- } = { ...De, ...t || {} }, { field: s = [], start: a, end: i } = e || {}, c = o ? { start: a, end: i } : {};
1176
- return s.reduce((d, _) => {
1177
- const { name: p, value: f = [] } = _;
1190
+ } = { ...ye, ...t || {} }, { field: n = [], start: a, end: i } = e || {}, c = o ? { start: a, end: i } : {};
1191
+ return n.reduce((d, l) => {
1192
+ const { name: _, value: f = [] } = l;
1178
1193
  if (f.length === 0)
1179
1194
  return d;
1180
1195
  let u;
1181
- return r === !1 && f.length === 1 ? [u] = f : n ? u = f.join(n) : u = f, { ...d, [p]: u };
1196
+ return r === !1 && f.length === 1 ? [u] = f : s ? u = f.join(s) : u = f, { ...d, [_]: u };
1182
1197
  }, c);
1183
- }, ct = {
1184
- ...De,
1198
+ }, pt = {
1199
+ ...ye,
1185
1200
  timespanAsList: !1,
1186
1201
  joinTimespan: "_",
1187
1202
  flat: !1,
1188
1203
  flatTimespan: !1
1189
- }, Vt = (e = [], t) => {
1204
+ }, sr = (e = [], t) => {
1190
1205
  const {
1191
1206
  timespanAsList: r,
1192
- joinTimespan: n = "_",
1207
+ joinTimespan: s = "_",
1193
1208
  flat: o,
1194
- flatTimespan: s,
1209
+ flatTimespan: n,
1195
1210
  ...a
1196
- } = { ...ct, ...t || {} };
1211
+ } = { ...pt, ...t || {} };
1197
1212
  return r === !0 ? e.map(
1198
- (i) => V(i, { ...a, timespanAsList: r })
1199
- ) : o === !0 || s === !0 ? e.reduce(
1200
- (i, c) => ({ ...i, ...V(c, t) }),
1213
+ (i) => H(i, { ...a, timespanAsList: r })
1214
+ ) : o === !0 || n === !0 ? e.reduce(
1215
+ (i, c) => ({ ...i, ...H(c, t) }),
1201
1216
  {}
1202
1217
  ) : e.reduce(
1203
1218
  (i, c) => ({
1204
1219
  ...i,
1205
- [[c.start, c.end].join(n)]: V(
1220
+ [[c.start, c.end].join(s)]: H(
1206
1221
  c,
1207
1222
  t
1208
1223
  )
1209
1224
  }),
1210
1225
  {}
1211
1226
  );
1212
- }, dt = (e, t) => {
1213
- const r = W(t).toSeconds(), { thumbnails: n = {} } = e || {}, { uri: o = [] } = n, s = o.map((i) => {
1227
+ }, ft = (e, t) => {
1228
+ const r = x(t).toSeconds(), { thumbnails: s = {} } = e || {}, { uri: o = [] } = s, n = o.map((i) => {
1214
1229
  const c = i.split("/").pop().split("?").shift();
1215
- return B(c).toSeconds();
1216
- }), a = s.reduce(
1217
- (i, c, l) => Math.abs(c - r) < Math.abs(s[i] - r) ? l : i,
1230
+ return U(c).toSeconds();
1231
+ }), a = n.reduce(
1232
+ (i, c, p) => Math.abs(c - r) < Math.abs(n[i] - r) ? p : i,
1218
1233
  0
1219
1234
  );
1220
1235
  return o[a];
1221
- }, ut = {
1236
+ }, Et = {
1222
1237
  includeGroupMetadata: !1,
1223
1238
  flatEvents: !1,
1224
1239
  includeEntityType: !1,
1225
1240
  includeNearestThumbnail: !1
1226
- }, lt = ({
1241
+ }, Tt = ({
1227
1242
  start: e,
1228
1243
  end: t,
1229
1244
  group: r = [{ id: "unknown", name: "unknown" }]
1230
1245
  }) => {
1231
- const [{ id: n, name: o }] = r, s = W(e).toSeconds(), a = W(t).toSeconds();
1232
- return { start: e, end: t, startSeconds: s, endSeconds: a, group: { uuid: n, name: o } };
1233
- }, kt = (e = {}, t) => {
1234
- const { entry: r = [] } = e, n = {
1235
- ...ut,
1246
+ const [{ id: s, name: o }] = r, n = x(e).toSeconds(), a = x(t).toSeconds();
1247
+ return { start: e, end: t, startSeconds: n, endSeconds: a, group: { uuid: s, name: o } };
1248
+ }, nr = (e = {}, t) => {
1249
+ const { entry: r = [] } = e, s = {
1250
+ ...Et,
1236
1251
  ...t || {}
1237
- }, { includeGroupMetadata: o, flatEvents: s, includeEntityType: a, includeNearestThumbnail: i } = n, c = r.map((l) => {
1238
- const { type: d, item: { metadata: _ = {}, id: p, thumbnails: f = {} } = {}, timespan: u, item: m } = l;
1239
- let T = u.map(
1240
- (E) => lt(E)
1252
+ }, { includeGroupMetadata: o, flatEvents: n, includeEntityType: a, includeNearestThumbnail: i } = s, c = r.map((p) => {
1253
+ const { type: d, item: { metadata: l = {}, id: _, thumbnails: f = {} } = {}, timespan: u, item: m } = p;
1254
+ let E = u.map(
1255
+ (T) => Tt(T)
1241
1256
  );
1242
- if (i && d === "Item" && f.uri && (T = T.map((E) => {
1243
- const { start: h } = E, O = dt(m, W(h));
1244
- return { ...E, thumbnail: O };
1257
+ if (i && d === "Item" && f.uri && (E = E.map((T) => {
1258
+ const { start: h } = T, I = ft(m, x(h));
1259
+ return { ...T, thumbnail: I };
1245
1260
  })), o && d === "Item") {
1246
- const { timespan: E = [] } = _, h = E.flatMap(
1247
- (O) => O.group
1261
+ const { timespan: T = [] } = l, h = T.flatMap(
1262
+ (I) => I.group
1248
1263
  );
1249
1264
  if (h.length > 0) {
1250
- const O = T.map((A) => {
1265
+ const I = E.map((A) => {
1251
1266
  const {
1252
- group: { uuid: R }
1253
- } = A, [w] = R.split("/"), { field: P = [], group: U = [] } = h.find(
1254
- ({ uuid: C }) => C === w
1267
+ group: { uuid: O }
1268
+ } = A, [N] = O.split("/"), { field: F = [], group: y = [] } = h.find(
1269
+ ({ uuid: b }) => b === N
1255
1270
  );
1256
1271
  return {
1257
1272
  ...A,
1258
1273
  group: {
1259
1274
  ...A.group,
1260
- field: P,
1261
- group: U
1275
+ field: F,
1276
+ group: y
1262
1277
  }
1263
1278
  };
1264
1279
  });
1265
1280
  return {
1266
1281
  entityType: "Item",
1267
- entityId: p,
1268
- events: O.sort((A, R) => A.startSeconds - R.startSeconds),
1282
+ entityId: _,
1283
+ events: I.sort((A, O) => A.startSeconds - O.startSeconds),
1269
1284
  ...a ? { itemType: m } : {}
1270
1285
  };
1271
1286
  }
1272
1287
  }
1273
1288
  return {
1274
1289
  entityType: d === "Item" ? "Item" : "Collection",
1275
- entityId: p,
1276
- events: T.sort((E, h) => E.startSeconds - h.startSeconds),
1290
+ entityId: _,
1291
+ events: E.sort((T, h) => T.startSeconds - h.startSeconds),
1277
1292
  ...a && d === "Item" ? { itemType: m } : {},
1278
1293
  ...a && d === "Collection" ? { collectionType: m } : {}
1279
1294
  };
1280
1295
  });
1281
- return s ? c.flatMap(
1282
- ({ events: l, entityType: d, entityId: _, itemType: p, collectionType: f }) => l.map(
1296
+ return n ? c.flatMap(
1297
+ ({ events: p, entityType: d, entityId: l, itemType: _, collectionType: f }) => p.map(
1283
1298
  (u) => ({
1284
1299
  ...u,
1285
1300
  entityType: d,
1286
- entityId: _,
1287
- ...p && { itemType: p },
1301
+ entityId: l,
1302
+ ..._ && { itemType: _ },
1288
1303
  ...f && { collectionType: f }
1289
1304
  })
1290
1305
  )
1291
- ).sort((l, d) => l.startSeconds - d.startSeconds) : c;
1292
- }, Ht = (e = "NOW") => {
1306
+ ).sort((p, d) => p.startSeconds - d.startSeconds) : c;
1307
+ }, ir = (e = "NOW") => {
1293
1308
  if (e.startsWith("NOW")) {
1294
1309
  if (e === "NOW")
1295
1310
  return /* @__PURE__ */ new Date();
1296
- const t = e[3], r = Number(e.match(/(\d+)/)[0]), n = e.match(/(\d.*)/)[0].replace(/\d/g, ""), o = /* @__PURE__ */ new Date();
1297
- switch (n) {
1311
+ const t = e[3], r = Number(e.match(/(\d+)/)[0]), s = e.match(/(\d.*)/)[0].replace(/\d/g, ""), o = /* @__PURE__ */ new Date();
1312
+ switch (s) {
1298
1313
  case "HOUR":
1299
1314
  case "HOURS":
1300
1315
  t === "+" && o.setHours(o.getHours() + r), t === "-" && o.setHours(o.getHours() - r);
@@ -1315,46 +1330,44 @@ ${ye(o, {
1315
1330
  return o;
1316
1331
  }
1317
1332
  return new Date(e);
1318
- }, x = (e) => {
1333
+ }, G = (e) => {
1319
1334
  const { property: t = [], ...r } = e || {};
1320
- return { ...N(t), ...r };
1321
- }, _t = (e) => x(e), mt = (e) => x(e), pt = { kB: "kHz", B: "Hz", mB: "mHz" }, ae = { kB: "kbps", B: "bps", MB: "mbps" }, ft = (e) => {
1322
- var T;
1335
+ return { ...M(t), ...r };
1336
+ }, ht = (e) => G(e), At = (e) => G(e), It = { kB: "kHz", B: "Hz", mB: "mHz" }, ce = { kB: "kbps", B: "bps", MB: "mbps" }, Ot = (e) => {
1337
+ var E;
1323
1338
  const {
1324
1339
  timeBase: t,
1325
1340
  channelCount: r,
1326
- codec: n,
1341
+ codec: s,
1327
1342
  mediaInfo: o,
1328
- bitrate: s,
1343
+ bitrate: n,
1329
1344
  metadata: a
1330
- } = e, i = _t(o), {
1345
+ } = e, i = ht(o), {
1331
1346
  Format: c,
1332
- Resolution: l,
1347
+ Resolution: p,
1333
1348
  Bit_rate_mode: d
1334
- } = i, _ = N(a || []), p = t != null && t.denominator ? ((t == null ? void 0 : t.denominator) || 1) / ((t == null ? void 0 : t.numerator) || 1) : void 0, f = p !== void 0 ? y(p, {
1349
+ } = i, l = M(a || []), _ = t != null && t.denominator ? ((t == null ? void 0 : t.denominator) || 1) / ((t == null ? void 0 : t.numerator) || 1) : void 0, f = _ !== void 0 ? v(_, {
1335
1350
  base: 10,
1336
1351
  round: 1,
1337
- // @ts-expect-error (incorrect symbols typing)
1338
- symbols: pt
1352
+ symbols: It
1339
1353
  }) : void 0;
1340
1354
  let u, m;
1341
- return s !== void 0 && (u = y(s, { round: 2, symbols: ae }), m = Number(
1342
- // @ts-expect-error (incorrect symbols typing)
1343
- (T = y(s, { exponent: 1, symbols: ae }).split(" kbps")) == null ? void 0 : T[0]
1355
+ return n !== void 0 && (u = v(n, { round: 2, symbols: ce }), m = Number(
1356
+ (E = v(n, { exponent: 1, symbols: ce }).split(" kbps")) == null ? void 0 : E[0]
1344
1357
  )), {
1345
1358
  audioFormat: c,
1346
- audioCodec: n,
1359
+ audioCodec: s,
1347
1360
  audioSamplerate: f,
1348
- audioSamplerateSamples: p,
1349
- audioBitDepth: l,
1361
+ audioSamplerateSamples: _,
1362
+ audioBitDepth: p,
1350
1363
  audioBitrate: u,
1351
1364
  audioBitrateKbps: m,
1352
1365
  audioBitRateMode: d,
1353
1366
  audioChannels: r,
1354
1367
  audioMediaInfo: i,
1355
- audioMetadata: _
1368
+ audioMetadata: l
1356
1369
  };
1357
- }, Yt = {
1370
+ }, ar = {
1358
1371
  /** Just created, not used. */
1359
1372
  NONE: "NONE",
1360
1373
  /** Discovered or created, not yet marked as finished. */
@@ -1377,203 +1390,217 @@ ${ye(o, {
1377
1390
  ARCHIVED: "ARCHIVED",
1378
1391
  /** File will be synchronized by multi-site agent. */
1379
1392
  AWAITING_SYNC: "AWAITING_SYNC"
1380
- }, Me = (e) => {
1393
+ }, ve = (e) => {
1381
1394
  const {
1382
1395
  uri: t = [],
1383
1396
  size: r,
1384
- hash: n,
1397
+ hash: s,
1385
1398
  path: o,
1386
- id: s,
1399
+ id: n,
1387
1400
  storage: a
1388
- } = e, [i] = t, c = r !== void 0 ? y(r, { base: 2, standard: "jedec" }) : "", l = (o == null ? void 0 : o.split("/")) || [], d = l.pop() || "", _ = l.map((p) => `${p}/`).join("") || void 0;
1401
+ } = e, [i] = t, c = r !== void 0 ? v(r, { base: 2, standard: "jedec" }) : "", p = (o == null ? void 0 : o.split("/")) || [], d = p.pop() || "", l = p.map((_) => `${_}/`).join("") || void 0;
1389
1402
  return {
1390
1403
  uri: i,
1391
- hash: n,
1404
+ hash: s,
1392
1405
  fileSize: c,
1393
1406
  fileSizeBytes: r,
1394
1407
  path: o,
1395
1408
  fileName: d,
1396
- fileId: s,
1409
+ fileId: n,
1397
1410
  storageId: a,
1398
- folderPath: _
1411
+ folderPath: l
1399
1412
  };
1400
- }, Tt = (e = {}) => {
1401
- const { file: t, mediaInfo: r, metadata: n = [] } = e, o = N(n), s = x(r);
1402
- let a = { binaryMetadata: o, binaryMediaInfo: s };
1413
+ }, St = (e = {}) => {
1414
+ const { file: t, mediaInfo: r, metadata: s = [] } = e, o = M(s), n = G(r);
1415
+ let a = { binaryMetadata: o, binaryMediaInfo: n };
1403
1416
  if (t) {
1404
- const [i] = t, c = Me(i);
1417
+ const [i] = t, c = ve(i);
1405
1418
  a = {
1406
1419
  ...a,
1407
1420
  ...c
1408
1421
  };
1409
1422
  }
1410
1423
  return a;
1411
- }, Et = (e = {}) => {
1424
+ }, gt = (e = {}) => {
1412
1425
  const {
1413
1426
  mediaInfo: t,
1414
1427
  metadata: r,
1415
- file: n,
1428
+ file: s,
1416
1429
  duration: o,
1417
- startTimestamp: s,
1430
+ startTimestamp: n,
1418
1431
  startTimecode: a,
1419
1432
  timeCodeTimeBase: i
1420
- } = e, c = N(r || []), l = x(t);
1421
- let { Format: d } = l;
1433
+ } = e, c = M(r || []), p = G(t);
1434
+ let { Format: d } = p;
1422
1435
  const {
1423
- Video_Format_List: _,
1424
- Audio_Format_List: p,
1436
+ Video_Format_List: l,
1437
+ Audio_Format_List: _,
1425
1438
  Text_Format_List: f
1426
- } = l;
1439
+ } = p;
1427
1440
  if (d === void 0) {
1428
1441
  const { format: m } = e;
1429
1442
  d = m, m && m.includes(",") && ([d] = m.split(","));
1430
1443
  }
1431
1444
  let u = {
1432
1445
  containerFormat: d,
1433
- videoFormat: _,
1434
- audioFormat: p,
1446
+ videoFormat: l,
1447
+ audioFormat: _,
1435
1448
  textFormat: f,
1436
1449
  containerMetadata: c,
1437
- containerMediaInfo: l
1450
+ containerMediaInfo: p
1438
1451
  };
1439
1452
  if (c.componentOriginalFilename && (u.originalFilename = c.componentOriginalFilename), o !== void 0 && o.samples !== 0) {
1440
- const m = D(o);
1453
+ const m = L(o);
1441
1454
  u.durationTimeCode = m.toObject(), u.duration = m.toDuration();
1442
1455
  }
1443
- if (s && (u.startTimestamp = D(s).toObject()), a !== void 0 && i && (u.startTimecode = D({
1456
+ if (n && (u.startTimestamp = L(n).toObject()), a !== void 0 && i && (u.startTimecode = L({
1444
1457
  samples: a,
1445
1458
  timeBase: i
1446
- })), n) {
1447
- const [m] = n, T = Me(m);
1459
+ })), s) {
1460
+ const [m] = s, E = ve(m);
1448
1461
  u = {
1449
1462
  ...u,
1450
- ...T
1463
+ ...E
1451
1464
  };
1452
1465
  }
1453
1466
  return u;
1454
- }, ce = { kB: "kbps", B: "bps", MB: "mbps" }, ht = (e = {}) => {
1455
- var ee;
1467
+ }, de = { kB: "kbps", B: "bps", MB: "mbps" }, Rt = (e = {}) => {
1468
+ var W;
1456
1469
  const {
1457
1470
  codec: t,
1458
1471
  bitrate: r,
1459
- fieldOrder: n,
1472
+ fieldOrder: s,
1460
1473
  resolution: o,
1461
- mediaInfo: s,
1474
+ mediaInfo: n,
1462
1475
  metadata: a = []
1463
- } = e, i = mt(s), c = N(a), {
1464
- Format: l,
1476
+ } = e, i = At(n), c = M(a), {
1477
+ Format: p,
1465
1478
  "Frame rate": d,
1466
- "Color space": _,
1467
- "Color primaries": p,
1479
+ "Color space": l,
1480
+ "Color primaries": _,
1468
1481
  Colorimetry: f
1469
1482
  } = i;
1470
1483
  let u;
1471
- const { averageFrameRate: m, realBaseFrameRate: T } = e;
1472
- T !== void 0 ? u = M({
1473
- numerator: T.denominator,
1474
- denominator: T.numerator
1475
- }) : d !== void 0 ? u = q(d) : m !== void 0 && (u = M({
1484
+ const { averageFrameRate: m, realBaseFrameRate: E } = e;
1485
+ E !== void 0 ? u = B({
1486
+ numerator: E.denominator,
1487
+ denominator: E.numerator
1488
+ }) : d !== void 0 ? u = Z(d) : m !== void 0 && (u = B({
1476
1489
  numerator: m.denominator,
1477
1490
  denominator: m.numerator
1478
1491
  }));
1479
- let { "Frame count": E } = i;
1480
- if (E === void 0) {
1481
- const { numberOfPackets: te } = e;
1482
- te !== void 0 && (E = te.toString());
1492
+ let { "Frame count": T } = i;
1493
+ if (T === void 0) {
1494
+ const { numberOfPackets: re } = e;
1495
+ re !== void 0 && (T = re.toString());
1483
1496
  }
1484
- let h, O, A;
1485
- E && u && (h = D({ samples: E, timeBase: u }), O = h.timeBase.toConstant() || h.timeBase.toRate(), A = h.toSmpte());
1486
- const { height: R, width: w } = o || {}, P = H(o), U = `${w}x${R}`;
1487
- let C, Z;
1488
- return r !== void 0 && (C = y(r, { round: 2, symbols: ce }), Z = Number(
1489
- // @ts-expect-error (incorrect symbols typing)
1490
- (ee = y(r, { exponent: 2, symbols: ce }).split(" mbps")) == null ? void 0 : ee[0]
1497
+ let h, I, A;
1498
+ T && u && (h = L({ samples: T, timeBase: u }), I = h.timeBase.toConstant() || h.timeBase.toRate(), A = h.toSmpte());
1499
+ const { height: O, width: N } = o || {}, F = K(o), y = `${N}x${O}`;
1500
+ let b, w;
1501
+ return r !== void 0 && (b = v(r, { round: 2, symbols: de }), w = Number(
1502
+ (W = v(r, { exponent: 2, symbols: de }).split(" mbps")) == null ? void 0 : W[0]
1491
1503
  )), {
1492
- videoFormat: l,
1493
- dimension: U,
1494
- frameRate: O,
1495
- height: R,
1496
- width: w,
1504
+ videoFormat: p,
1505
+ dimension: y,
1506
+ frameRate: I,
1507
+ height: O,
1508
+ width: N,
1497
1509
  timeBase: u,
1498
1510
  timeCode: h,
1499
1511
  videoCodec: t,
1500
1512
  smpte: A,
1501
- videoBitrate: C,
1502
- videoBitrateMbps: Z,
1503
- fieldOrder: n,
1504
- colorSpace: _,
1513
+ videoBitrate: b,
1514
+ videoBitrateMbps: w,
1515
+ fieldOrder: s,
1516
+ colorSpace: l,
1505
1517
  chromaSubsampling: f,
1506
- aspectRatio: P,
1507
- colorPrimaries: p,
1518
+ aspectRatio: F,
1519
+ colorPrimaries: _,
1508
1520
  videoMetadata: c,
1509
1521
  videoMediaInfo: i
1510
1522
  };
1511
- }, ve = (e = {}) => {
1512
- let t = {};
1513
- const {
1514
- containerComponent: r,
1523
+ }, te = (e = {}, t = {}) => {
1524
+ let r = {};
1525
+ const { priority: s = ["container", "video", "audio", "binary"] } = t, {
1526
+ containerComponent: o,
1515
1527
  videoComponent: n,
1516
- audioComponent: o,
1517
- binaryComponent: s,
1518
- mimeType: a = [],
1519
- tag: i = []
1528
+ audioComponent: a,
1529
+ binaryComponent: i,
1530
+ mimeType: c = [],
1531
+ tag: p = []
1520
1532
  } = e;
1521
- if ([t.tag] = i, [t.mimeType] = a, r) {
1522
- const c = Et(r);
1523
- t = {
1524
- ...t,
1525
- ...c
1526
- };
1527
- }
1528
- if (n) {
1529
- const [c] = n, l = ht(c);
1530
- t = {
1531
- ...t,
1532
- ...l
1533
- };
1534
- }
1535
- if (o) {
1536
- const [c] = o, l = ft(c);
1537
- t = {
1538
- ...t,
1539
- ...l
1540
- };
1541
- }
1542
- if (s) {
1543
- const [c] = s, l = Tt(c);
1544
- t = {
1545
- ...t,
1546
- ...l
1547
- };
1548
- }
1549
- return t;
1550
- }, F = {
1533
+ [r.tag] = p, [r.mimeType] = c;
1534
+ const d = (l, _) => Object.fromEntries(
1535
+ [.../* @__PURE__ */ new Set([...Object.keys(_), ...Object.keys(l)])].map((f) => [
1536
+ f,
1537
+ _[f] ?? l[f]
1538
+ ])
1539
+ );
1540
+ return s.reverse().forEach((l) => {
1541
+ switch (l) {
1542
+ case "container":
1543
+ o && (r = d(
1544
+ r,
1545
+ gt(o)
1546
+ ));
1547
+ break;
1548
+ case "video":
1549
+ if (n) {
1550
+ const [_] = n;
1551
+ r = d(
1552
+ r,
1553
+ Rt(_)
1554
+ );
1555
+ }
1556
+ break;
1557
+ case "audio":
1558
+ if (a) {
1559
+ const [_] = a;
1560
+ r = d(
1561
+ r,
1562
+ Ot(_)
1563
+ );
1564
+ }
1565
+ break;
1566
+ case "binary":
1567
+ if (i) {
1568
+ const [_] = i;
1569
+ r = d(
1570
+ r,
1571
+ St(_)
1572
+ );
1573
+ }
1574
+ break;
1575
+ }
1576
+ }), r;
1577
+ }, C = {
1551
1578
  PDF: "PDF",
1552
1579
  TEXT: "TEXT",
1553
1580
  MSWORD: "MSWORD",
1554
1581
  JSON: "JSON",
1555
1582
  XML: "XML"
1556
- }, S = {
1583
+ }, g = {
1557
1584
  IMAGE: "IMAGE",
1558
1585
  AUDIO: "AUDIO",
1559
1586
  VIDEO: "VIDEO",
1560
1587
  DOCUMENT: "DOCUMENT",
1561
1588
  BINARY: "BINARY"
1562
- }, Kt = (e = {}) => {
1589
+ }, cr = (e = {}) => {
1563
1590
  const { mimeType: t } = e, r = Array.isArray(t) ? t[0] : t;
1564
1591
  if (r) {
1565
1592
  if (r.endsWith("/pdf"))
1566
- return F.PDF;
1593
+ return C.PDF;
1567
1594
  if (r.startsWith("text/"))
1568
- return F.TEXT;
1595
+ return C.TEXT;
1569
1596
  if (r.endsWith("/msword"))
1570
- return F.MSWORD;
1597
+ return C.MSWORD;
1571
1598
  if (r.endsWith("/json"))
1572
- return F.JSON;
1599
+ return C.JSON;
1573
1600
  if (r.endsWith("/xml"))
1574
- return F.XML;
1601
+ return C.XML;
1575
1602
  }
1576
- }, At = [
1603
+ }, bt = [
1577
1604
  "image/apng",
1578
1605
  "image/bmp",
1579
1606
  "image/gif",
@@ -1581,7 +1608,7 @@ ${ye(o, {
1581
1608
  "image/x-icon",
1582
1609
  "image/png",
1583
1610
  "image/svg+xml"
1584
- ], Ot = ["video/mp4"], It = [
1611
+ ], Nt = ["video/mp4"], Dt = [
1585
1612
  "audio/mp4",
1586
1613
  "audio/mpeg",
1587
1614
  "audio/x-aac",
@@ -1592,93 +1619,148 @@ ${ye(o, {
1592
1619
  "audio/ogg",
1593
1620
  "audio/webm",
1594
1621
  "audio/x-flac"
1595
- ], Rt = [...Ot, ...At, ...It], St = ["http", "https"], gt = "video/mp4", bt = "video/quicktime", Nt = "video/x-m4v", yt = "MPEG-4", Ft = "mov", Dt = "h264", L = [
1622
+ ], Mt = [...Nt, ...bt, ...Dt], Ft = ["http", "https"], yt = "video/mp4", vt = "video/quicktime", wt = "video/x-m4v", Ct = "MPEG-4", Lt = "mov", Bt = "h264", P = [
1596
1623
  "__mp4",
1597
1624
  "__mp3_160k",
1598
1625
  "__png",
1599
1626
  "__jpeg",
1600
1627
  "__gif",
1601
1628
  "original"
1602
- ].reverse(), de = ({ parsedShape: { tag: e } }, { parsedShape: { tag: t } }) => L.includes(e) || L.includes(t) ? L.indexOf(t) - L.indexOf(e) : e.toLowerCase().localeCompare(t.toLowerCase()), zt = (e, t) => {
1629
+ ].reverse(), ue = ({ parsedShape: { tag: e } }, { parsedShape: { tag: t } }) => P.includes(e) || P.includes(t) ? P.indexOf(t) - P.indexOf(e) : e.toLowerCase().localeCompare(t.toLowerCase()), dr = (e, t) => {
1603
1630
  const {
1604
- allowedMimeTypes: r = Rt,
1605
- allowedMethods: n = St,
1606
- sortPriority: o = de,
1607
- sourceKey: s = "src",
1631
+ allowedMimeTypes: r = Mt,
1632
+ allowedMethods: s = Ft,
1633
+ sortPriority: o = ue,
1634
+ sourceKey: n = "src",
1608
1635
  mimeTypeKey: a = "type",
1609
1636
  shapeKey: i = "shape",
1610
1637
  parsedShapeKey: c = "parsedShape"
1611
- } = t || {}, { shape: l = [] } = e || {}, d = l.reduce((_, p) => {
1638
+ } = t || {}, { shape: p = [] } = e || {}, d = p.reduce((l, _) => {
1612
1639
  let f, u;
1613
- const m = ve(p), { uri: T, mimeType: E, containerFormat: h, videoCodec: O } = m;
1614
- if (E && (f = E, (E === bt || E === Nt) && (h === yt || h === Ft) && O === Dt && (f = gt)), T)
1615
- if (n) {
1616
- const [A] = T.split("://");
1617
- n.includes(A) && (u = T);
1640
+ const m = te(_), { uri: E, mimeType: T, containerFormat: h, videoCodec: I } = m;
1641
+ if (T && (f = T, (T === vt || T === wt) && (h === Ct || h === Lt) && I === Bt && (f = yt)), E)
1642
+ if (s) {
1643
+ const [A] = E.split("://");
1644
+ s.includes(A) && (u = E);
1618
1645
  } else
1619
- u = T;
1620
- return u && r.includes(f) && _.push({
1621
- [s]: u,
1646
+ u = E;
1647
+ return u && r.includes(f) && l.push({
1648
+ [n]: u,
1622
1649
  [a]: f,
1623
- [i]: p,
1650
+ [i]: _,
1624
1651
  [c]: m
1625
- }), _;
1652
+ }), l;
1626
1653
  }, []);
1627
- return typeof o == "function" && d.sort(de), d;
1628
- }, Jt = (e) => {
1629
- const t = ve(e), { mimeType: r, videoCodec: n, audioCodec: o } = t;
1654
+ return typeof o == "function" && d.sort(ue), d;
1655
+ }, ur = (e) => {
1656
+ const t = te(e), { mimeType: r, videoCodec: s, audioCodec: o } = t;
1630
1657
  if (r) {
1631
1658
  if (r.startsWith("audio/") && o !== void 0)
1632
- return S.AUDIO;
1659
+ return g.AUDIO;
1633
1660
  if (r.startsWith("video/")) {
1634
- if (n !== void 0)
1635
- return S.VIDEO;
1661
+ if (s !== void 0)
1662
+ return g.VIDEO;
1636
1663
  if (o !== void 0)
1637
- return S.AUDIO;
1664
+ return g.AUDIO;
1638
1665
  }
1639
1666
  if (r.startsWith("image/"))
1640
- return S.IMAGE;
1667
+ return g.IMAGE;
1641
1668
  if (r.endsWith("/pdf") || r.startsWith("text/") || r.endsWith("/msword") || r.endsWith("/json") || r.endsWith("/xml"))
1642
- return S.DOCUMENT;
1669
+ return g.DOCUMENT;
1643
1670
  if (r.endsWith("/octet-stream"))
1644
- return S.BINARY;
1671
+ return g.BINARY;
1645
1672
  }
1646
- }, Mt = (e) => {
1673
+ }, we = "video/mp4", Ce = "video/quicktime", Le = "video/x-m4v", xt = "MPEG-4", Wt = "mov", Pt = "h264", jt = [we, Ce, Le], Be = [
1674
+ "video/x-mxf-h264",
1675
+ "video/x-mxf-h264-aac",
1676
+ "video/x-mxf-h264-pcm_s24le",
1677
+ "video/x-mxf-mpeg2video-pcm_s24le",
1678
+ "video/x-mxf-mpeg2video-pcm_s16le",
1679
+ "video/x-mxf-prores-pcm_s16le",
1680
+ "video/x-mxf-h264-pcm_s16le"
1681
+ ], Ut = [...jt, ...Be], $t = [
1682
+ "audio/mp4",
1683
+ "audio/mpeg",
1684
+ "audio/x-aac",
1685
+ "audio/aac",
1686
+ "audio/x-wav",
1687
+ "audio/wav",
1688
+ "audio/accp",
1689
+ "audio/ogg",
1690
+ "audio/webm",
1691
+ "audio/x-flac"
1692
+ ], Gt = [...Ut, ...$t], Vt = ["http", "https"], kt = ({
1693
+ streamingServers: e,
1694
+ url: t,
1695
+ ending: r
1696
+ }) => xe(e[0], window.btoa(t), `.${r}`), lr = (e, t) => {
1697
+ const {
1698
+ allowedMimeTypes: r = Gt,
1699
+ allowedMethods: s = Vt,
1700
+ streamingServers: o = []
1701
+ } = t || {}, { shape: n = [] } = e || {}, { startTimeCode: a } = et(e == null ? void 0 : e.metadata, {
1702
+ flat: !0,
1703
+ arrayOnSingleValue: !1
1704
+ });
1705
+ return n.reduce((c, p) => {
1706
+ var N, F, y;
1707
+ let d, l, _;
1708
+ const f = te(p), { uri: u, mimeType: m, containerFormat: E, videoCodec: T } = f;
1709
+ if (!(r != null && r.includes(m)) || !(s != null && s.includes((N = u == null ? void 0 : u.split("://")) == null ? void 0 : N[0])))
1710
+ return c;
1711
+ if (_ = f.tag, !_) {
1712
+ const b = (y = (F = m == null ? void 0 : m.split) == null ? void 0 : F.call(m, "/")) == null ? void 0 : y.pop(), w = c.filter((W) => W.label === b).length;
1713
+ w === 0 ? _ = b : _ = b + (w + 1);
1714
+ }
1715
+ const { timeBase: h, startTimecode: I } = f, A = a ?? I, O = A && x(A);
1716
+ return l = u, d = m, (m === Ce || m === Le) && (E === xt || E === Wt) && T === Pt && (d = we), o != null && o.length && Be.includes(m) && (l = kt({
1717
+ url: u,
1718
+ streamingServers: o,
1719
+ ending: "mpd"
1720
+ }), d = "application/dash+xml"), l && c.push({
1721
+ src: l,
1722
+ ...d ? { type: d } : {},
1723
+ ..._ ? { label: _ } : {},
1724
+ ...h ? { timeBase: h } : {},
1725
+ ...O ? { startTimeCode: O } : {}
1726
+ }), c;
1727
+ }, []);
1728
+ }, Ht = (e) => {
1647
1729
  const t = {}, { outputSetting: r = [] } = e || {};
1648
1730
  if (r.length === 0)
1649
1731
  return t;
1650
- const n = JSON.parse(r[0]), { Settings: { ContainerSettings: o, VideoDescription: s, AudioDescriptions: a } = {} } = n;
1651
- if (o && (t.containerFormat = o.Container), s) {
1652
- const { CodecSettings: i = {} } = s, { Codec: c, ...l } = i;
1732
+ const s = JSON.parse(r[0]), { Settings: { ContainerSettings: o, VideoDescription: n, AudioDescriptions: a } = {} } = s;
1733
+ if (o && (t.containerFormat = o.Container), n) {
1734
+ const { CodecSettings: i = {} } = n, { Codec: c, ...p } = i;
1653
1735
  t.videoFormat = c;
1654
- const { Height: d, Width: _ } = s;
1655
- t.height = d, t.width = _, d && _ && (t.dimension = `${_}x${d}`, t.aspectRatio = H({ height: d, width: _ }));
1656
- const [p] = Object.values(l);
1657
- if (p) {
1658
- t.fieldOrder = p.InterlaceMode, t.fieldOrder && t.fieldOrder.includes("TOP") && (t.fieldOrder = "interlaced"), t.videoBitrate = p.Bitrate;
1659
- const f = p.FramerateDenominator, u = p.FramerateNumerator, m = M({ denominator: u, numerator: f });
1736
+ const { Height: d, Width: l } = n;
1737
+ t.height = d, t.width = l, d && l && (t.dimension = `${l}x${d}`, t.aspectRatio = K({ height: d, width: l }));
1738
+ const [_] = Object.values(p);
1739
+ if (_) {
1740
+ t.fieldOrder = _.InterlaceMode, t.fieldOrder && t.fieldOrder.includes("TOP") && (t.fieldOrder = "interlaced"), t.videoBitrate = _.Bitrate;
1741
+ const f = _.FramerateDenominator, u = _.FramerateNumerator, m = B({ denominator: u, numerator: f });
1660
1742
  t.timeBase = m, t.frameRate = m.toConstant() || m.toRate();
1661
1743
  }
1662
1744
  }
1663
1745
  if (a && a.length > 0) {
1664
- const { CodecSettings: i = {} } = a[0], { Codec: c, ...l } = i;
1746
+ const { CodecSettings: i = {} } = a[0], { Codec: c, ...p } = i;
1665
1747
  t.audioFormat = c;
1666
- const [d] = Object.values(l);
1748
+ const [d] = Object.values(p);
1667
1749
  d && (t.audioSamplerate = d.SampleRate, t.audioBitrate = d.Bitrate, t.audioBitRateMode = d.RateControlMode);
1668
1750
  }
1669
1751
  return t;
1670
- }, Xt = (e) => {
1671
- const t = {}, { description: r, format: n, audio: o, video: s, mediaconvert: a } = e || {};
1752
+ }, _r = (e) => {
1753
+ const t = {}, { description: r, format: s, audio: o, video: n, mediaconvert: a } = e || {};
1672
1754
  if (a)
1673
- return { description: r, ...Mt(a) };
1674
- if (t.description = r, t.containerFormat = n, s) {
1675
- if (t.videoFormat = s.codec, t.videoBitrate = s.bitrate, s.framerate) {
1676
- const i = M(s.framerate);
1755
+ return { description: r, ...Ht(a) };
1756
+ if (t.description = r, t.containerFormat = s, n) {
1757
+ if (t.videoFormat = n.codec, t.videoBitrate = n.bitrate, n.framerate) {
1758
+ const i = B(n.framerate);
1677
1759
  t.timeBase = i, t.frameRate = i.toConstant() || i.toRate();
1678
1760
  }
1679
- if (s.scaling) {
1680
- const { height: i, width: c } = s.scaling;
1681
- t.height = i, t.width = c, i && c && (t.dimension = `${c}x${i}`, t.aspectRatio = H({ height: i, width: c }));
1761
+ if (n.scaling) {
1762
+ const { height: i, width: c } = n.scaling;
1763
+ t.height = i, t.width = c, i && c && (t.dimension = `${c}x${i}`, t.aspectRatio = K({ height: i, width: c }));
1682
1764
  }
1683
1765
  }
1684
1766
  if (o) {
@@ -1686,41 +1768,41 @@ ${ye(o, {
1686
1768
  t.audioFormat = i, c && (t.audioChannels = c.length);
1687
1769
  }
1688
1770
  return t;
1689
- }, vt = (e) => {
1771
+ }, Yt = (e) => {
1690
1772
  if (!e)
1691
1773
  return;
1692
1774
  const {
1693
1775
  name: t,
1694
1776
  type: r,
1695
- defaultValue: n,
1777
+ defaultValue: s,
1696
1778
  stringRestriction: o,
1697
- floatRestriction: s,
1779
+ floatRestriction: n,
1698
1780
  integerRestriction: a,
1699
1781
  longRestriction: i,
1700
1782
  data: c,
1701
- values: l,
1783
+ values: p,
1702
1784
  system: d
1703
- } = e, { minLength: _, maxLength: p, pattern: f } = o || {}, { minInclusive: u, maxInclusive: m } = s || a || i || {}, T = ((l == null ? void 0 : l.field) || []).map(({ key: A, value: R }) => ({
1704
- label: R ?? A,
1785
+ } = e, { minLength: l, maxLength: _, pattern: f } = o || {}, { minInclusive: u, maxInclusive: m } = n || a || i || {}, E = ((p == null ? void 0 : p.field) || []).map(({ key: A, value: O }) => ({
1786
+ label: O ?? A,
1705
1787
  value: A
1706
- })), h = ((A) => Object.fromEntries(Object.entries(A).filter(([, R]) => R !== void 0)))({
1788
+ })), h = ((A) => Object.fromEntries(Object.entries(A).filter(([, O]) => O !== void 0)))({
1707
1789
  min: u,
1708
1790
  max: m,
1709
- minLength: _,
1710
- maxLength: p,
1791
+ minLength: l,
1792
+ maxLength: _,
1711
1793
  pattern: f ? new RegExp(f) : void 0
1712
- }), O = N(c);
1794
+ }), I = M(c);
1713
1795
  return {
1714
1796
  name: t,
1715
1797
  type: r,
1716
- defaultValue: n,
1717
- required: u !== void 0 || _ !== void 0 && _ > 0,
1798
+ defaultValue: s,
1799
+ required: u !== void 0 || l !== void 0 && l > 0,
1718
1800
  restrictions: h,
1719
- data: O,
1720
- options: T,
1801
+ data: I,
1802
+ options: E,
1721
1803
  system: d === "true"
1722
1804
  };
1723
- }, qt = (e) => e == null ? void 0 : e.map(vt).filter((t) => !!t), Qt = [
1805
+ }, mr = (e) => e == null ? void 0 : e.map(Yt).filter((t) => !!t), pr = [
1724
1806
  "date",
1725
1807
  "float",
1726
1808
  "integer",
@@ -1731,54 +1813,55 @@ ${ye(o, {
1731
1813
  "timeCode"
1732
1814
  ];
1733
1815
  export {
1734
- F as DOCUMENT_TYPES,
1735
- Ce as FIELD_ATTRIBUTE_KEYS,
1736
- Qt as FIELD_DEFINITION_TYPES,
1737
- we as FIELD_VALUE_ATTRIBUTE_KEYS,
1738
- Yt as FILE_STATES,
1739
- Le as GROUP_ATTRIBUTE_KEYS,
1740
- Ct as ROLE_NAMES,
1741
- S as SHAPE_MEDIA_TYPES,
1742
- Lt as SYSTEM_FIELDGROUPS,
1743
- Bt as SYSTEM_FIELDS,
1744
- I as TimeBase,
1745
- g as TimeCode,
1746
- Wt as createMetadataType,
1747
- Ut as createSearchFacetList,
1748
- v as createTimeBase,
1749
- W as createTimeCode,
1750
- ut as defaultOptions,
1751
- zt as filterShapeSource,
1752
- dt as findNearestThumbnail,
1753
- q as formatTimeBaseText,
1754
- M as formatTimeBaseType,
1755
- Xe as formatTimeCodeSeconds,
1756
- tt as formatTimeCodeSmpte,
1757
- B as formatTimeCodeText,
1758
- D as formatTimeCodeType,
1759
- Kt as getShapeDocumentType,
1760
- Jt as getShapeMediaType,
1761
- Pt as metadataTypeToWebVtt,
1762
- ft as parseAudioComponent,
1763
- Tt as parseBinaryComponent,
1764
- Et as parseContainerComponent,
1765
- Gt as parseFacetList,
1766
- $t as parseFacetType,
1767
- qt as parseFieldDefinitionList,
1768
- Se as parseFieldList,
1769
- Me as parseFileType,
1770
- be as parseGroupList,
1771
- V as parseHighlightTimespan,
1772
- Vt as parseHighlightTimespanList,
1773
- N as parseKeyValuePairType,
1774
- Mt as parseMediaConvertPreset,
1775
- jt as parseMetadataType,
1776
- Ht as parseNowDate,
1777
- kt as parseSearchResultEvents,
1778
- ve as parseShapeType,
1779
- xt as parseSimpleMetadataType,
1780
- Ke as parseTimespan,
1781
- ye as parseTimespanList,
1782
- Xt as parseTranscodePreset,
1783
- ht as parseVideoComponent
1816
+ C as DOCUMENT_TYPES,
1817
+ Pe as FIELD_ATTRIBUTE_KEYS,
1818
+ pr as FIELD_DEFINITION_TYPES,
1819
+ We as FIELD_VALUE_ATTRIBUTE_KEYS,
1820
+ ar as FILE_STATES,
1821
+ je as GROUP_ATTRIBUTE_KEYS,
1822
+ Jt as ROLE_NAMES,
1823
+ g as SHAPE_MEDIA_TYPES,
1824
+ Xt as SYSTEM_FIELDGROUPS,
1825
+ qt as SYSTEM_FIELDS,
1826
+ S as TimeBase,
1827
+ R as TimeCode,
1828
+ Qt as createMetadataType,
1829
+ tr as createSearchFacetList,
1830
+ j as createTimeBase,
1831
+ x as createTimeCode,
1832
+ Et as defaultOptions,
1833
+ dr as filterShapeSource,
1834
+ ft as findNearestThumbnail,
1835
+ Z as formatTimeBaseText,
1836
+ B as formatTimeBaseType,
1837
+ rt as formatTimeCodeSeconds,
1838
+ at as formatTimeCodeSmpte,
1839
+ U as formatTimeCodeText,
1840
+ L as formatTimeCodeType,
1841
+ lr as getPlayerSources,
1842
+ cr as getShapeDocumentType,
1843
+ ur as getShapeMediaType,
1844
+ er as metadataTypeToWebVtt,
1845
+ Ot as parseAudioComponent,
1846
+ St as parseBinaryComponent,
1847
+ gt as parseContainerComponent,
1848
+ rr as parseFacetList,
1849
+ or as parseFacetType,
1850
+ mr as parseFieldDefinitionList,
1851
+ Re as parseFieldList,
1852
+ ve as parseFileType,
1853
+ Ne as parseGroupList,
1854
+ H as parseHighlightTimespan,
1855
+ sr as parseHighlightTimespanList,
1856
+ M as parseKeyValuePairType,
1857
+ Ht as parseMediaConvertPreset,
1858
+ et as parseMetadataType,
1859
+ ir as parseNowDate,
1860
+ nr as parseSearchResultEvents,
1861
+ te as parseShapeType,
1862
+ Zt as parseSimpleMetadataType,
1863
+ Qe as parseTimespan,
1864
+ Me as parseTimespanList,
1865
+ _r as parseTranscodePreset,
1866
+ Rt as parseVideoComponent
1784
1867
  };