@pixwel/pixwel-sdk 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.babelrc +2 -1
  2. package/README.md +60 -0
  3. package/coverage/clover.xml +581 -430
  4. package/coverage/coverage-final.json +15 -9
  5. package/coverage/lcov-report/Ass.js.html +212 -212
  6. package/coverage/lcov-report/Asset.js.html +27 -27
  7. package/coverage/lcov-report/AssetType.js.html +98 -0
  8. package/coverage/lcov-report/Encode.js.html +98 -0
  9. package/coverage/lcov-report/File.js.html +98 -0
  10. package/coverage/lcov-report/Filename.js.html +9 -726
  11. package/coverage/lcov-report/Ingest.js.html +1239 -279
  12. package/coverage/lcov-report/IngestFile.js.html +5 -5
  13. package/coverage/lcov-report/Model.js.html +821 -0
  14. package/coverage/lcov-report/Order.js.html +25 -25
  15. package/coverage/lcov-report/Srt.js.html +102 -102
  16. package/coverage/lcov-report/Sub.js.html +43 -43
  17. package/coverage/lcov-report/Tag.js.html +98 -0
  18. package/coverage/lcov-report/TimeFormat.js.html +63 -63
  19. package/coverage/lcov-report/fileType.js.html +188 -0
  20. package/coverage/lcov-report/index.html +164 -86
  21. package/coverage/lcov.info +1159 -846
  22. package/dist/index.js +74 -22
  23. package/dist/src/Asset.js +10 -5
  24. package/dist/src/AssetType.js +54 -0
  25. package/dist/src/Encode.js +54 -0
  26. package/dist/src/File.js +54 -0
  27. package/dist/src/Filename.js +7 -228
  28. package/dist/src/Ingest.js +365 -33
  29. package/dist/src/IngestFile.js +6 -2
  30. package/dist/src/Model.js +569 -0
  31. package/dist/src/Order.js +20 -9
  32. package/dist/src/Srt.js +5 -1
  33. package/dist/src/Tag.js +54 -0
  34. package/dist/src/fileType.js +43 -0
  35. package/index.js +14 -0
  36. package/package.json +9 -3
  37. package/src/AssetType.js +11 -0
  38. package/src/Encode.js +11 -0
  39. package/src/File.js +11 -0
  40. package/src/Filename.js +0 -239
  41. package/src/Ingest.js +347 -27
  42. package/src/Model.js +252 -0
  43. package/src/Tag.js +11 -0
  44. package/src/fileType.js +41 -0
  45. package/test/Filename.spec.js +3 -707
  46. package/test/Ingest.spec.js +1107 -152
  47. package/test/Model.spec.js +328 -0
@@ -20,28 +20,28 @@
20
20
  </h1>
21
21
  <div class='clearfix'>
22
22
  <div class='fl pad1y space-right2'>
23
- <span class="strong">82.98% </span>
23
+ <span class="strong">0% </span>
24
24
  <span class="quiet">Statements</span>
25
- <span class='fraction'>117/141</span>
25
+ <span class='fraction'>0/266</span>
26
26
  </div>
27
27
  <div class='fl pad1y space-right2'>
28
- <span class="strong">81.75% </span>
28
+ <span class="strong">0% </span>
29
29
  <span class="quiet">Branches</span>
30
- <span class='fraction'>103/126</span>
30
+ <span class='fraction'>0/232</span>
31
31
  </div>
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Functions</span>
35
- <span class='fraction'>4/4</span>
35
+ <span class='fraction'>0/22</span>
36
36
  </div>
37
37
  <div class='fl pad1y space-right2'>
38
- <span class="strong">82.98% </span>
38
+ <span class="strong">0% </span>
39
39
  <span class="quiet">Lines</span>
40
- <span class='fraction'>117/141</span>
40
+ <span class='fraction'>0/265</span>
41
41
  </div>
42
42
  </div>
43
43
  </div>
44
- <div class='status-line high'></div>
44
+ <div class='status-line low'></div>
45
45
  <pre><table class="coverage">
46
46
  <tr><td class="line-count quiet">1
47
47
  2
@@ -382,7 +382,327 @@
382
382
  337
383
383
  338
384
384
  339
385
- 340</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
385
+ 340
386
+ 341
387
+ 342
388
+ 343
389
+ 344
390
+ 345
391
+ 346
392
+ 347
393
+ 348
394
+ 349
395
+ 350
396
+ 351
397
+ 352
398
+ 353
399
+ 354
400
+ 355
401
+ 356
402
+ 357
403
+ 358
404
+ 359
405
+ 360
406
+ 361
407
+ 362
408
+ 363
409
+ 364
410
+ 365
411
+ 366
412
+ 367
413
+ 368
414
+ 369
415
+ 370
416
+ 371
417
+ 372
418
+ 373
419
+ 374
420
+ 375
421
+ 376
422
+ 377
423
+ 378
424
+ 379
425
+ 380
426
+ 381
427
+ 382
428
+ 383
429
+ 384
430
+ 385
431
+ 386
432
+ 387
433
+ 388
434
+ 389
435
+ 390
436
+ 391
437
+ 392
438
+ 393
439
+ 394
440
+ 395
441
+ 396
442
+ 397
443
+ 398
444
+ 399
445
+ 400
446
+ 401
447
+ 402
448
+ 403
449
+ 404
450
+ 405
451
+ 406
452
+ 407
453
+ 408
454
+ 409
455
+ 410
456
+ 411
457
+ 412
458
+ 413
459
+ 414
460
+ 415
461
+ 416
462
+ 417
463
+ 418
464
+ 419
465
+ 420
466
+ 421
467
+ 422
468
+ 423
469
+ 424
470
+ 425
471
+ 426
472
+ 427
473
+ 428
474
+ 429
475
+ 430
476
+ 431
477
+ 432
478
+ 433
479
+ 434
480
+ 435
481
+ 436
482
+ 437
483
+ 438
484
+ 439
485
+ 440
486
+ 441
487
+ 442
488
+ 443
489
+ 444
490
+ 445
491
+ 446
492
+ 447
493
+ 448
494
+ 449
495
+ 450
496
+ 451
497
+ 452
498
+ 453
499
+ 454
500
+ 455
501
+ 456
502
+ 457
503
+ 458
504
+ 459
505
+ 460
506
+ 461
507
+ 462
508
+ 463
509
+ 464
510
+ 465
511
+ 466
512
+ 467
513
+ 468
514
+ 469
515
+ 470
516
+ 471
517
+ 472
518
+ 473
519
+ 474
520
+ 475
521
+ 476
522
+ 477
523
+ 478
524
+ 479
525
+ 480
526
+ 481
527
+ 482
528
+ 483
529
+ 484
530
+ 485
531
+ 486
532
+ 487
533
+ 488
534
+ 489
535
+ 490
536
+ 491
537
+ 492
538
+ 493
539
+ 494
540
+ 495
541
+ 496
542
+ 497
543
+ 498
544
+ 499
545
+ 500
546
+ 501
547
+ 502
548
+ 503
549
+ 504
550
+ 505
551
+ 506
552
+ 507
553
+ 508
554
+ 509
555
+ 510
556
+ 511
557
+ 512
558
+ 513
559
+ 514
560
+ 515
561
+ 516
562
+ 517
563
+ 518
564
+ 519
565
+ 520
566
+ 521
567
+ 522
568
+ 523
569
+ 524
570
+ 525
571
+ 526
572
+ 527
573
+ 528
574
+ 529
575
+ 530
576
+ 531
577
+ 532
578
+ 533
579
+ 534
580
+ 535
581
+ 536
582
+ 537
583
+ 538
584
+ 539
585
+ 540
586
+ 541
587
+ 542
588
+ 543
589
+ 544
590
+ 545
591
+ 546
592
+ 547
593
+ 548
594
+ 549
595
+ 550
596
+ 551
597
+ 552
598
+ 553
599
+ 554
600
+ 555
601
+ 556
602
+ 557
603
+ 558
604
+ 559
605
+ 560
606
+ 561
607
+ 562
608
+ 563
609
+ 564
610
+ 565
611
+ 566
612
+ 567
613
+ 568
614
+ 569
615
+ 570
616
+ 571
617
+ 572
618
+ 573
619
+ 574
620
+ 575
621
+ 576
622
+ 577
623
+ 578
624
+ 579
625
+ 580
626
+ 581
627
+ 582
628
+ 583
629
+ 584
630
+ 585
631
+ 586
632
+ 587
633
+ 588
634
+ 589
635
+ 590
636
+ 591
637
+ 592
638
+ 593
639
+ 594
640
+ 595
641
+ 596
642
+ 597
643
+ 598
644
+ 599
645
+ 600
646
+ 601
647
+ 602
648
+ 603
649
+ 604
650
+ 605
651
+ 606
652
+ 607
653
+ 608
654
+ 609
655
+ 610
656
+ 611
657
+ 612
658
+ 613
659
+ 614
660
+ 615
661
+ 616
662
+ 617
663
+ 618
664
+ 619
665
+ 620
666
+ 621
667
+ 622
668
+ 623
669
+ 624
670
+ 625
671
+ 626
672
+ 627
673
+ 628
674
+ 629
675
+ 630
676
+ 631
677
+ 632
678
+ 633
679
+ 634
680
+ 635
681
+ 636
682
+ 637
683
+ 638
684
+ 639
685
+ 640
686
+ 641
687
+ 642
688
+ 643
689
+ 644
690
+ 645
691
+ 646
692
+ 647
693
+ 648
694
+ 649
695
+ 650
696
+ 651
697
+ 652
698
+ 653
699
+ 654
700
+ 655
701
+ 656
702
+ 657
703
+ 658
704
+ 659
705
+ 660</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
386
706
  <span class="cline-any cline-neutral">&nbsp;</span>
387
707
  <span class="cline-any cline-neutral">&nbsp;</span>
388
708
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -394,11 +714,321 @@
394
714
  <span class="cline-any cline-neutral">&nbsp;</span>
395
715
  <span class="cline-any cline-neutral">&nbsp;</span>
396
716
  <span class="cline-any cline-neutral">&nbsp;</span>
717
+ <span class="cline-any cline-no">&nbsp;</span>
718
+ <span class="cline-any cline-no">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-no">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-no">&nbsp;</span>
729
+ <span class="cline-any cline-no">&nbsp;</span>
730
+ <span class="cline-any cline-no">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-no">&nbsp;</span>
733
+ <span class="cline-any cline-no">&nbsp;</span>
734
+ <span class="cline-any cline-neutral">&nbsp;</span>
735
+ <span class="cline-any cline-no">&nbsp;</span>
736
+ <span class="cline-any cline-no">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-no">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-neutral">&nbsp;</span>
742
+ <span class="cline-any cline-neutral">&nbsp;</span>
743
+ <span class="cline-any cline-neutral">&nbsp;</span>
744
+ <span class="cline-any cline-neutral">&nbsp;</span>
745
+ <span class="cline-any cline-neutral">&nbsp;</span>
746
+ <span class="cline-any cline-neutral">&nbsp;</span>
747
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
+ <span class="cline-any cline-neutral">&nbsp;</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-no">&nbsp;</span>
751
+ <span class="cline-any cline-no">&nbsp;</span>
752
+ <span class="cline-any cline-no">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-no">&nbsp;</span>
755
+ <span class="cline-any cline-no">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-no">&nbsp;</span>
759
+ <span class="cline-any cline-no">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-no">&nbsp;</span>
763
+ <span class="cline-any cline-no">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-no">&nbsp;</span>
767
+ <span class="cline-any cline-no">&nbsp;</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-no">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-neutral">&nbsp;</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-neutral">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-neutral">&nbsp;</span>
784
+ <span class="cline-any cline-neutral">&nbsp;</span>
785
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
+ <span class="cline-any cline-neutral">&nbsp;</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-neutral">&nbsp;</span>
789
+ <span class="cline-any cline-no">&nbsp;</span>
790
+ <span class="cline-any cline-neutral">&nbsp;</span>
791
+ <span class="cline-any cline-no">&nbsp;</span>
792
+ <span class="cline-any cline-no">&nbsp;</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-no">&nbsp;</span>
796
+ <span class="cline-any cline-no">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-no">&nbsp;</span>
800
+ <span class="cline-any cline-no">&nbsp;</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-no">&nbsp;</span>
804
+ <span class="cline-any cline-no">&nbsp;</span>
805
+ <span class="cline-any cline-neutral">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-no">&nbsp;</span>
808
+ <span class="cline-any cline-no">&nbsp;</span>
809
+ <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-no">&nbsp;</span>
813
+ <span class="cline-any cline-no">&nbsp;</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-no">&nbsp;</span>
817
+ <span class="cline-any cline-no">&nbsp;</span>
818
+ <span class="cline-any cline-no">&nbsp;</span>
819
+ <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-neutral">&nbsp;</span>
821
+ <span class="cline-any cline-no">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-no">&nbsp;</span>
828
+ <span class="cline-any cline-no">&nbsp;</span>
829
+ <span class="cline-any cline-no">&nbsp;</span>
830
+ <span class="cline-any cline-no">&nbsp;</span>
831
+ <span class="cline-any cline-neutral">&nbsp;</span>
832
+ <span class="cline-any cline-no">&nbsp;</span>
833
+ <span class="cline-any cline-no">&nbsp;</span>
834
+ <span class="cline-any cline-no">&nbsp;</span>
835
+ <span class="cline-any cline-neutral">&nbsp;</span>
836
+ <span class="cline-any cline-no">&nbsp;</span>
837
+ <span class="cline-any cline-no">&nbsp;</span>
838
+ <span class="cline-any cline-no">&nbsp;</span>
839
+ <span class="cline-any cline-neutral">&nbsp;</span>
840
+ <span class="cline-any cline-no">&nbsp;</span>
841
+ <span class="cline-any cline-no">&nbsp;</span>
842
+ <span class="cline-any cline-no">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-neutral">&nbsp;</span>
845
+ <span class="cline-any cline-no">&nbsp;</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
+ <span class="cline-any cline-neutral">&nbsp;</span>
849
+ <span class="cline-any cline-no">&nbsp;</span>
850
+ <span class="cline-any cline-no">&nbsp;</span>
851
+ <span class="cline-any cline-no">&nbsp;</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-no">&nbsp;</span>
855
+ <span class="cline-any cline-no">&nbsp;</span>
856
+ <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-no">&nbsp;</span>
858
+ <span class="cline-any cline-neutral">&nbsp;</span>
859
+ <span class="cline-any cline-no">&nbsp;</span>
860
+ <span class="cline-any cline-no">&nbsp;</span>
861
+ <span class="cline-any cline-neutral">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-no">&nbsp;</span>
864
+ <span class="cline-any cline-no">&nbsp;</span>
865
+ <span class="cline-any cline-neutral">&nbsp;</span>
866
+ <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-no">&nbsp;</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
871
+ <span class="cline-any cline-no">&nbsp;</span>
872
+ <span class="cline-any cline-no">&nbsp;</span>
873
+ <span class="cline-any cline-neutral">&nbsp;</span>
874
+ <span class="cline-any cline-no">&nbsp;</span>
875
+ <span class="cline-any cline-neutral">&nbsp;</span>
876
+ <span class="cline-any cline-no">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-neutral">&nbsp;</span>
879
+ <span class="cline-any cline-neutral">&nbsp;</span>
880
+ <span class="cline-any cline-neutral">&nbsp;</span>
881
+ <span class="cline-any cline-neutral">&nbsp;</span>
882
+ <span class="cline-any cline-no">&nbsp;</span>
883
+ <span class="cline-any cline-no">&nbsp;</span>
884
+ <span class="cline-any cline-neutral">&nbsp;</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-no">&nbsp;</span>
887
+ <span class="cline-any cline-no">&nbsp;</span>
888
+ <span class="cline-any cline-no">&nbsp;</span>
889
+ <span class="cline-any cline-neutral">&nbsp;</span>
890
+ <span class="cline-any cline-neutral">&nbsp;</span>
891
+ <span class="cline-any cline-no">&nbsp;</span>
892
+ <span class="cline-any cline-no">&nbsp;</span>
893
+ <span class="cline-any cline-neutral">&nbsp;</span>
894
+ <span class="cline-any cline-neutral">&nbsp;</span>
895
+ <span class="cline-any cline-no">&nbsp;</span>
896
+ <span class="cline-any cline-neutral">&nbsp;</span>
897
+ <span class="cline-any cline-neutral">&nbsp;</span>
898
+ <span class="cline-any cline-neutral">&nbsp;</span>
899
+ <span class="cline-any cline-no">&nbsp;</span>
900
+ <span class="cline-any cline-neutral">&nbsp;</span>
901
+ <span class="cline-any cline-neutral">&nbsp;</span>
902
+ <span class="cline-any cline-neutral">&nbsp;</span>
903
+ <span class="cline-any cline-neutral">&nbsp;</span>
904
+ <span class="cline-any cline-no">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-neutral">&nbsp;</span>
907
+ <span class="cline-any cline-no">&nbsp;</span>
908
+ <span class="cline-any cline-neutral">&nbsp;</span>
909
+ <span class="cline-any cline-neutral">&nbsp;</span>
910
+ <span class="cline-any cline-no">&nbsp;</span>
911
+ <span class="cline-any cline-no">&nbsp;</span>
912
+ <span class="cline-any cline-neutral">&nbsp;</span>
913
+ <span class="cline-any cline-neutral">&nbsp;</span>
914
+ <span class="cline-any cline-neutral">&nbsp;</span>
915
+ <span class="cline-any cline-no">&nbsp;</span>
916
+ <span class="cline-any cline-no">&nbsp;</span>
917
+ <span class="cline-any cline-neutral">&nbsp;</span>
918
+ <span class="cline-any cline-neutral">&nbsp;</span>
919
+ <span class="cline-any cline-neutral">&nbsp;</span>
920
+ <span class="cline-any cline-neutral">&nbsp;</span>
921
+ <span class="cline-any cline-neutral">&nbsp;</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-neutral">&nbsp;</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
926
+ <span class="cline-any cline-neutral">&nbsp;</span>
927
+ <span class="cline-any cline-neutral">&nbsp;</span>
928
+ <span class="cline-any cline-no">&nbsp;</span>
929
+ <span class="cline-any cline-neutral">&nbsp;</span>
930
+ <span class="cline-any cline-neutral">&nbsp;</span>
931
+ <span class="cline-any cline-no">&nbsp;</span>
932
+ <span class="cline-any cline-neutral">&nbsp;</span>
933
+ <span class="cline-any cline-no">&nbsp;</span>
934
+ <span class="cline-any cline-no">&nbsp;</span>
935
+ <span class="cline-any cline-neutral">&nbsp;</span>
936
+ <span class="cline-any cline-no">&nbsp;</span>
937
+ <span class="cline-any cline-no">&nbsp;</span>
938
+ <span class="cline-any cline-no">&nbsp;</span>
939
+ <span class="cline-any cline-no">&nbsp;</span>
940
+ <span class="cline-any cline-no">&nbsp;</span>
941
+ <span class="cline-any cline-no">&nbsp;</span>
942
+ <span class="cline-any cline-neutral">&nbsp;</span>
943
+ <span class="cline-any cline-neutral">&nbsp;</span>
944
+ <span class="cline-any cline-no">&nbsp;</span>
945
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
+ <span class="cline-any cline-no">&nbsp;</span>
947
+ <span class="cline-any cline-no">&nbsp;</span>
948
+ <span class="cline-any cline-neutral">&nbsp;</span>
949
+ <span class="cline-any cline-no">&nbsp;</span>
950
+ <span class="cline-any cline-no">&nbsp;</span>
951
+ <span class="cline-any cline-no">&nbsp;</span>
952
+ <span class="cline-any cline-neutral">&nbsp;</span>
953
+ <span class="cline-any cline-neutral">&nbsp;</span>
954
+ <span class="cline-any cline-neutral">&nbsp;</span>
955
+ <span class="cline-any cline-neutral">&nbsp;</span>
956
+ <span class="cline-any cline-neutral">&nbsp;</span>
957
+ <span class="cline-any cline-neutral">&nbsp;</span>
958
+ <span class="cline-any cline-neutral">&nbsp;</span>
959
+ <span class="cline-any cline-no">&nbsp;</span>
960
+ <span class="cline-any cline-neutral">&nbsp;</span>
961
+ <span class="cline-any cline-neutral">&nbsp;</span>
962
+ <span class="cline-any cline-neutral">&nbsp;</span>
963
+ <span class="cline-any cline-no">&nbsp;</span>
964
+ <span class="cline-any cline-no">&nbsp;</span>
965
+ <span class="cline-any cline-neutral">&nbsp;</span>
966
+ <span class="cline-any cline-neutral">&nbsp;</span>
967
+ <span class="cline-any cline-no">&nbsp;</span>
968
+ <span class="cline-any cline-no">&nbsp;</span>
969
+ <span class="cline-any cline-neutral">&nbsp;</span>
970
+ <span class="cline-any cline-neutral">&nbsp;</span>
971
+ <span class="cline-any cline-no">&nbsp;</span>
972
+ <span class="cline-any cline-neutral">&nbsp;</span>
973
+ <span class="cline-any cline-neutral">&nbsp;</span>
974
+ <span class="cline-any cline-neutral">&nbsp;</span>
975
+ <span class="cline-any cline-neutral">&nbsp;</span>
976
+ <span class="cline-any cline-neutral">&nbsp;</span>
977
+ <span class="cline-any cline-no">&nbsp;</span>
978
+ <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-neutral">&nbsp;</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-no">&nbsp;</span>
985
+ <span class="cline-any cline-no">&nbsp;</span>
986
+ <span class="cline-any cline-neutral">&nbsp;</span>
987
+ <span class="cline-any cline-no">&nbsp;</span>
988
+ <span class="cline-any cline-neutral">&nbsp;</span>
989
+ <span class="cline-any cline-neutral">&nbsp;</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</span>
991
+ <span class="cline-any cline-neutral">&nbsp;</span>
992
+ <span class="cline-any cline-neutral">&nbsp;</span>
993
+ <span class="cline-any cline-neutral">&nbsp;</span>
994
+ <span class="cline-any cline-neutral">&nbsp;</span>
995
+ <span class="cline-any cline-neutral">&nbsp;</span>
996
+ <span class="cline-any cline-neutral">&nbsp;</span>
997
+ <span class="cline-any cline-neutral">&nbsp;</span>
998
+ <span class="cline-any cline-neutral">&nbsp;</span>
999
+ <span class="cline-any cline-neutral">&nbsp;</span>
1000
+ <span class="cline-any cline-no">&nbsp;</span>
1001
+ <span class="cline-any cline-neutral">&nbsp;</span>
1002
+ <span class="cline-any cline-no">&nbsp;</span>
1003
+ <span class="cline-any cline-no">&nbsp;</span>
1004
+ <span class="cline-any cline-neutral">&nbsp;</span>
1005
+ <span class="cline-any cline-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-no">&nbsp;</span>
1007
+ <span class="cline-any cline-no">&nbsp;</span>
1008
+ <span class="cline-any cline-neutral">&nbsp;</span>
1009
+ <span class="cline-any cline-neutral">&nbsp;</span>
1010
+ <span class="cline-any cline-neutral">&nbsp;</span>
1011
+ <span class="cline-any cline-no">&nbsp;</span>
1012
+ <span class="cline-any cline-no">&nbsp;</span>
1013
+ <span class="cline-any cline-neutral">&nbsp;</span>
1014
+ <span class="cline-any cline-no">&nbsp;</span>
1015
+ <span class="cline-any cline-neutral">&nbsp;</span>
1016
+ <span class="cline-any cline-neutral">&nbsp;</span>
1017
+ <span class="cline-any cline-no">&nbsp;</span>
1018
+ <span class="cline-any cline-neutral">&nbsp;</span>
1019
+ <span class="cline-any cline-no">&nbsp;</span>
1020
+ <span class="cline-any cline-no">&nbsp;</span>
1021
+ <span class="cline-any cline-neutral">&nbsp;</span>
1022
+ <span class="cline-any cline-no">&nbsp;</span>
1023
+ <span class="cline-any cline-no">&nbsp;</span>
397
1024
  <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-yes">7x</span>
1025
+ <span class="cline-any cline-no">&nbsp;</span>
1026
+ <span class="cline-any cline-no">&nbsp;</span>
399
1027
  <span class="cline-any cline-neutral">&nbsp;</span>
1028
+ <span class="cline-any cline-no">&nbsp;</span>
400
1029
  <span class="cline-any cline-neutral">&nbsp;</span>
401
1030
  <span class="cline-any cline-neutral">&nbsp;</span>
1031
+ <span class="cline-any cline-no">&nbsp;</span>
402
1032
  <span class="cline-any cline-neutral">&nbsp;</span>
403
1033
  <span class="cline-any cline-neutral">&nbsp;</span>
404
1034
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -408,77 +1038,90 @@
408
1038
  <span class="cline-any cline-neutral">&nbsp;</span>
409
1039
  <span class="cline-any cline-neutral">&nbsp;</span>
410
1040
  <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-yes">7x</span>
1041
+ <span class="cline-any cline-no">&nbsp;</span>
412
1042
  <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-yes">7x</span>
414
- <span class="cline-any cline-yes">1x</span>
415
1043
  <span class="cline-any cline-neutral">&nbsp;</span>
1044
+ <span class="cline-any cline-no">&nbsp;</span>
416
1045
  <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-yes">6x</span>
418
- <span class="cline-any cline-yes">1x</span>
1046
+ <span class="cline-any cline-no">&nbsp;</span>
1047
+ <span class="cline-any cline-no">&nbsp;</span>
1048
+ <span class="cline-any cline-no">&nbsp;</span>
1049
+ <span class="cline-any cline-no">&nbsp;</span>
1050
+ <span class="cline-any cline-no">&nbsp;</span>
419
1051
  <span class="cline-any cline-neutral">&nbsp;</span>
420
1052
  <span class="cline-any cline-neutral">&nbsp;</span>
1053
+ <span class="cline-any cline-no">&nbsp;</span>
1054
+ <span class="cline-any cline-no">&nbsp;</span>
1055
+ <span class="cline-any cline-no">&nbsp;</span>
421
1056
  <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-yes">5x</span>
423
- <span class="cline-any cline-yes">1x</span>
424
1057
  <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">4x</span>
1058
+ <span class="cline-any cline-no">&nbsp;</span>
1059
+ <span class="cline-any cline-no">&nbsp;</span>
426
1060
  <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-no">&nbsp;</span>
1062
+ <span class="cline-any cline-no">&nbsp;</span>
427
1063
  <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-yes">5x</span>
1064
+ <span class="cline-any cline-no">&nbsp;</span>
1065
+ <span class="cline-any cline-no">&nbsp;</span>
429
1066
  <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-yes">3x</span>
431
- <span class="cline-any cline-yes">3x</span>
1067
+ <span class="cline-any cline-no">&nbsp;</span>
1068
+ <span class="cline-any cline-no">&nbsp;</span>
432
1069
  <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-yes">1x</span>
434
- <span class="cline-any cline-yes">1x</span>
1070
+ <span class="cline-any cline-no">&nbsp;</span>
1071
+ <span class="cline-any cline-no">&nbsp;</span>
435
1072
  <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-yes">1x</span>
437
- <span class="cline-any cline-yes">1x</span>
1073
+ <span class="cline-any cline-no">&nbsp;</span>
1074
+ <span class="cline-any cline-no">&nbsp;</span>
438
1075
  <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-yes">1x</span>
1076
+ <span class="cline-any cline-no">&nbsp;</span>
1077
+ <span class="cline-any cline-no">&nbsp;</span>
440
1078
  <span class="cline-any cline-neutral">&nbsp;</span>
1079
+ <span class="cline-any cline-no">&nbsp;</span>
1080
+ <span class="cline-any cline-no">&nbsp;</span>
1081
+ <span class="cline-any cline-no">&nbsp;</span>
1082
+ <span class="cline-any cline-no">&nbsp;</span>
441
1083
  <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-yes">4x</span>
443
1084
  <span class="cline-any cline-neutral">&nbsp;</span>
1085
+ <span class="cline-any cline-no">&nbsp;</span>
1086
+ <span class="cline-any cline-no">&nbsp;</span>
444
1087
  <span class="cline-any cline-neutral">&nbsp;</span>
445
1088
  <span class="cline-any cline-neutral">&nbsp;</span>
446
1089
  <span class="cline-any cline-neutral">&nbsp;</span>
447
1090
  <span class="cline-any cline-neutral">&nbsp;</span>
1091
+ <span class="cline-any cline-no">&nbsp;</span>
1092
+ <span class="cline-any cline-no">&nbsp;</span>
448
1093
  <span class="cline-any cline-neutral">&nbsp;</span>
449
1094
  <span class="cline-any cline-neutral">&nbsp;</span>
1095
+ <span class="cline-any cline-no">&nbsp;</span>
1096
+ <span class="cline-any cline-no">&nbsp;</span>
450
1097
  <span class="cline-any cline-neutral">&nbsp;</span>
451
1098
  <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">4x</span>
453
1099
  <span class="cline-any cline-neutral">&nbsp;</span>
454
1100
  <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-yes">4x</span>
1101
+ <span class="cline-any cline-no">&nbsp;</span>
456
1102
  <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-yes">4x</span>
458
- <span class="cline-any cline-yes">4x</span>
459
- <span class="cline-any cline-yes">4x</span>
460
- <span class="cline-any cline-yes">4x</span>
461
- <span class="cline-any cline-yes">3x</span>
1103
+ <span class="cline-any cline-no">&nbsp;</span>
1104
+ <span class="cline-any cline-no">&nbsp;</span>
462
1105
  <span class="cline-any cline-neutral">&nbsp;</span>
1106
+ <span class="cline-any cline-no">&nbsp;</span>
1107
+ <span class="cline-any cline-no">&nbsp;</span>
463
1108
  <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-yes">4x</span>
465
- <span class="cline-any cline-yes">4x</span>
1109
+ <span class="cline-any cline-no">&nbsp;</span>
466
1110
  <span class="cline-any cline-no">&nbsp;</span>
467
1111
  <span class="cline-any cline-neutral">&nbsp;</span>
468
1112
  <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">4x</span>
470
- <span class="cline-any cline-yes">4x</span>
1113
+ <span class="cline-any cline-no">&nbsp;</span>
1114
+ <span class="cline-any cline-no">&nbsp;</span>
471
1115
  <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-yes">2x</span>
473
- <span class="cline-any cline-yes">2x</span>
474
1116
  <span class="cline-any cline-neutral">&nbsp;</span>
475
1117
  <span class="cline-any cline-no">&nbsp;</span>
476
1118
  <span class="cline-any cline-no">&nbsp;</span>
477
1119
  <span class="cline-any cline-neutral">&nbsp;</span>
1120
+ <span class="cline-any cline-neutral">&nbsp;</span>
478
1121
  <span class="cline-any cline-no">&nbsp;</span>
479
1122
  <span class="cline-any cline-no">&nbsp;</span>
480
1123
  <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-no">&nbsp;</span>
1124
+ <span class="cline-any cline-neutral">&nbsp;</span>
482
1125
  <span class="cline-any cline-no">&nbsp;</span>
483
1126
  <span class="cline-any cline-neutral">&nbsp;</span>
484
1127
  <span class="cline-any cline-no">&nbsp;</span>
@@ -487,117 +1130,119 @@
487
1130
  <span class="cline-any cline-no">&nbsp;</span>
488
1131
  <span class="cline-any cline-no">&nbsp;</span>
489
1132
  <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-yes">4x</span>
491
- <span class="cline-any cline-yes">4x</span>
492
- <span class="cline-any cline-yes">4x</span>
493
- <span class="cline-any cline-yes">2x</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
1133
+ <span class="cline-any cline-no">&nbsp;</span>
1134
+ <span class="cline-any cline-no">&nbsp;</span>
495
1135
  <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-yes">4x</span>
497
- <span class="cline-any cline-yes">4x</span>
1136
+ <span class="cline-any cline-no">&nbsp;</span>
1137
+ <span class="cline-any cline-no">&nbsp;</span>
498
1138
  <span class="cline-any cline-neutral">&nbsp;</span>
1139
+ <span class="cline-any cline-no">&nbsp;</span>
1140
+ <span class="cline-any cline-no">&nbsp;</span>
499
1141
  <span class="cline-any cline-neutral">&nbsp;</span>
1142
+ <span class="cline-any cline-no">&nbsp;</span>
1143
+ <span class="cline-any cline-no">&nbsp;</span>
500
1144
  <span class="cline-any cline-neutral">&nbsp;</span>
501
1145
  <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-yes">2x</span>
503
- <span class="cline-any cline-yes">2x</span>
1146
+ <span class="cline-any cline-no">&nbsp;</span>
1147
+ <span class="cline-any cline-no">&nbsp;</span>
1148
+ <span class="cline-any cline-no">&nbsp;</span>
504
1149
  <span class="cline-any cline-neutral">&nbsp;</span>
505
1150
  <span class="cline-any cline-neutral">&nbsp;</span>
506
1151
  <span class="cline-any cline-no">&nbsp;</span>
507
- <span class="cline-any cline-no">&nbsp;</span>
508
1152
  <span class="cline-any cline-neutral">&nbsp;</span>
509
1153
  <span class="cline-any cline-neutral">&nbsp;</span>
510
1154
  <span class="cline-any cline-neutral">&nbsp;</span>
511
1155
  <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-yes">4x</span>
513
1156
  <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-yes">1x</span>
515
- <span class="cline-any cline-yes">1x</span>
516
1157
  <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-yes">1x</span>
518
- <span class="cline-any cline-yes">1x</span>
519
1158
  <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-yes">4x</span>
521
- <span class="cline-any cline-yes">2x</span>
1159
+ <span class="cline-any cline-no">&nbsp;</span>
1160
+ <span class="cline-any cline-neutral">&nbsp;</span>
522
1161
  <span class="cline-any cline-neutral">&nbsp;</span>
523
1162
  <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-yes">4x</span>
525
- <span class="cline-any cline-yes">1x</span>
526
1163
  <span class="cline-any cline-neutral">&nbsp;</span>
527
1164
  <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-yes">4x</span>
529
- <span class="cline-any cline-yes">1x</span>
530
1165
  <span class="cline-any cline-neutral">&nbsp;</span>
531
1166
  <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">4x</span>
533
1167
  <span class="cline-any cline-no">&nbsp;</span>
1168
+ <span class="cline-any cline-no">&nbsp;</span>
1169
+ <span class="cline-any cline-no">&nbsp;</span>
1170
+ <span class="cline-any cline-neutral">&nbsp;</span>
1171
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
1172
  <span class="cline-any cline-neutral">&nbsp;</span>
535
1173
  <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-yes">4x</span>
537
1174
  <span class="cline-any cline-neutral">&nbsp;</span>
538
1175
  <span class="cline-any cline-no">&nbsp;</span>
539
1176
  <span class="cline-any cline-no">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
1177
+ <span class="cline-any cline-no">&nbsp;</span>
1178
+ <span class="cline-any cline-no">&nbsp;</span>
541
1179
  <span class="cline-any cline-no">&nbsp;</span>
542
1180
  <span class="cline-any cline-no">&nbsp;</span>
543
1181
  <span class="cline-any cline-neutral">&nbsp;</span>
544
1182
  <span class="cline-any cline-no">&nbsp;</span>
545
1183
  <span class="cline-any cline-no">&nbsp;</span>
546
1184
  <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">2x</span>
548
- <span class="cline-any cline-yes">2x</span>
549
1185
  <span class="cline-any cline-neutral">&nbsp;</span>
550
1186
  <span class="cline-any cline-no">&nbsp;</span>
551
- <span class="cline-any cline-no">&nbsp;</span>
552
1187
  <span class="cline-any cline-neutral">&nbsp;</span>
1188
+ <span class="cline-any cline-neutral">&nbsp;</span>
1189
+ <span class="cline-any cline-neutral">&nbsp;</span>
1190
+ <span class="cline-any cline-no">&nbsp;</span>
553
1191
  <span class="cline-any cline-no">&nbsp;</span>
1192
+ <span class="cline-any cline-neutral">&nbsp;</span>
1193
+ <span class="cline-any cline-neutral">&nbsp;</span>
1194
+ <span class="cline-any cline-neutral">&nbsp;</span>
1195
+ <span class="cline-any cline-neutral">&nbsp;</span>
1196
+ <span class="cline-any cline-neutral">&nbsp;</span>
1197
+ <span class="cline-any cline-neutral">&nbsp;</span>
1198
+ <span class="cline-any cline-neutral">&nbsp;</span>
554
1199
  <span class="cline-any cline-no">&nbsp;</span>
555
1200
  <span class="cline-any cline-neutral">&nbsp;</span>
556
1201
  <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">4x</span>
558
- <span class="cline-any cline-yes">4x</span>
559
- <span class="cline-any cline-yes">2x</span>
560
1202
  <span class="cline-any cline-neutral">&nbsp;</span>
1203
+ <span class="cline-any cline-no">&nbsp;</span>
1204
+ <span class="cline-any cline-no">&nbsp;</span>
1205
+ <span class="cline-any cline-no">&nbsp;</span>
1206
+ <span class="cline-any cline-no">&nbsp;</span>
1207
+ <span class="cline-any cline-no">&nbsp;</span>
561
1208
  <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-yes">4x</span>
1209
+ <span class="cline-any cline-no">&nbsp;</span>
1210
+ <span class="cline-any cline-no">&nbsp;</span>
1211
+ <span class="cline-any cline-no">&nbsp;</span>
563
1212
  <span class="cline-any cline-neutral">&nbsp;</span>
1213
+ <span class="cline-any cline-no">&nbsp;</span>
1214
+ <span class="cline-any cline-no">&nbsp;</span>
564
1215
  <span class="cline-any cline-neutral">&nbsp;</span>
1216
+ <span class="cline-any cline-no">&nbsp;</span>
565
1217
  <span class="cline-any cline-neutral">&nbsp;</span>
566
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
567
1219
  <span class="cline-any cline-neutral">&nbsp;</span>
568
1220
  <span class="cline-any cline-neutral">&nbsp;</span>
569
1221
  <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-yes">4x</span>
571
1222
  <span class="cline-any cline-neutral">&nbsp;</span>
572
1223
  <span class="cline-any cline-neutral">&nbsp;</span>
1224
+ <span class="cline-any cline-no">&nbsp;</span>
573
1225
  <span class="cline-any cline-neutral">&nbsp;</span>
1226
+ <span class="cline-any cline-no">&nbsp;</span>
1227
+ <span class="cline-any cline-no">&nbsp;</span>
574
1228
  <span class="cline-any cline-neutral">&nbsp;</span>
1229
+ <span class="cline-any cline-no">&nbsp;</span>
575
1230
  <span class="cline-any cline-neutral">&nbsp;</span>
1231
+ <span class="cline-any cline-no">&nbsp;</span>
576
1232
  <span class="cline-any cline-neutral">&nbsp;</span>
577
1233
  <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-yes">3x</span>
579
1234
  <span class="cline-any cline-neutral">&nbsp;</span>
580
1235
  <span class="cline-any cline-neutral">&nbsp;</span>
581
1236
  <span class="cline-any cline-neutral">&nbsp;</span>
582
1237
  <span class="cline-any cline-neutral">&nbsp;</span>
583
1238
  <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-yes">3x</span>
585
- <span class="cline-any cline-yes">7x</span>
586
- <span class="cline-any cline-yes">7x</span>
587
- <span class="cline-any cline-yes">7x</span>
588
- <span class="cline-any cline-yes">4x</span>
589
- <span class="cline-any cline-yes">2x</span>
590
1239
  <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-yes">4x</span>
592
- <span class="cline-any cline-yes">2x</span>
593
1240
  <span class="cline-any cline-neutral">&nbsp;</span>
594
1241
  <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-yes">3x</span>
596
1242
  <span class="cline-any cline-neutral">&nbsp;</span>
597
1243
  <span class="cline-any cline-neutral">&nbsp;</span>
598
1244
  <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-yes">3x</span>
600
- <span class="cline-any cline-yes">3x</span>
1245
+ <span class="cline-any cline-no">&nbsp;</span>
601
1246
  <span class="cline-any cline-neutral">&nbsp;</span>
602
1247
  <span class="cline-any cline-neutral">&nbsp;</span>
603
1248
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -605,22 +1250,15 @@
605
1250
  <span class="cline-any cline-neutral">&nbsp;</span>
606
1251
  <span class="cline-any cline-neutral">&nbsp;</span>
607
1252
  <span class="cline-any cline-neutral">&nbsp;</span>
1253
+ <span class="cline-any cline-no">&nbsp;</span>
1254
+ <span class="cline-any cline-no">&nbsp;</span>
1255
+ <span class="cline-any cline-no">&nbsp;</span>
608
1256
  <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-yes">3x</span>
610
- <span class="cline-any cline-yes">1x</span>
611
- <span class="cline-any cline-yes">2x</span>
612
- <span class="cline-any cline-yes">1x</span>
613
- <span class="cline-any cline-yes">1x</span>
614
- <span class="cline-any cline-yes">1x</span>
1257
+ <span class="cline-any cline-no">&nbsp;</span>
615
1258
  <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-yes">3x</span>
617
- <span class="cline-any cline-yes">3x</span>
618
- <span class="cline-any cline-yes">3x</span>
1259
+ <span class="cline-any cline-no">&nbsp;</span>
619
1260
  <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">3x</span>
621
- <span class="cline-any cline-yes">3x</span>
622
1261
  <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-yes">3x</span>
624
1262
  <span class="cline-any cline-neutral">&nbsp;</span>
625
1263
  <span class="cline-any cline-neutral">&nbsp;</span>
626
1264
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -629,9 +1267,7 @@
629
1267
  <span class="cline-any cline-neutral">&nbsp;</span>
630
1268
  <span class="cline-any cline-neutral">&nbsp;</span>
631
1269
  <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-yes">14x</span>
633
1270
  <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-yes">14x</span>
635
1271
  <span class="cline-any cline-neutral">&nbsp;</span>
636
1272
  <span class="cline-any cline-neutral">&nbsp;</span>
637
1273
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -647,94 +1283,367 @@
647
1283
  <span class="cline-any cline-neutral">&nbsp;</span>
648
1284
  <span class="cline-any cline-neutral">&nbsp;</span>
649
1285
  <span class="cline-any cline-neutral">&nbsp;</span>
1286
+ <span class="cline-any cline-no">&nbsp;</span>
650
1287
  <span class="cline-any cline-neutral">&nbsp;</span>
1288
+ <span class="cline-any cline-no">&nbsp;</span>
1289
+ <span class="cline-any cline-no">&nbsp;</span>
651
1290
  <span class="cline-any cline-neutral">&nbsp;</span>
652
1291
  <span class="cline-any cline-neutral">&nbsp;</span>
1292
+ <span class="cline-any cline-no">&nbsp;</span>
1293
+ <span class="cline-any cline-no">&nbsp;</span>
653
1294
  <span class="cline-any cline-neutral">&nbsp;</span>
654
1295
  <span class="cline-any cline-neutral">&nbsp;</span>
1296
+ <span class="cline-any cline-no">&nbsp;</span>
1297
+ <span class="cline-any cline-no">&nbsp;</span>
1298
+ <span class="cline-any cline-no">&nbsp;</span>
1299
+ <span class="cline-any cline-no">&nbsp;</span>
655
1300
  <span class="cline-any cline-neutral">&nbsp;</span>
656
1301
  <span class="cline-any cline-neutral">&nbsp;</span>
1302
+ <span class="cline-any cline-no">&nbsp;</span>
1303
+ <span class="cline-any cline-no">&nbsp;</span>
657
1304
  <span class="cline-any cline-neutral">&nbsp;</span>
658
1305
  <span class="cline-any cline-neutral">&nbsp;</span>
1306
+ <span class="cline-any cline-no">&nbsp;</span>
1307
+ <span class="cline-any cline-no">&nbsp;</span>
659
1308
  <span class="cline-any cline-neutral">&nbsp;</span>
660
1309
  <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-yes">14x</span>
1310
+ <span class="cline-any cline-no">&nbsp;</span>
1311
+ <span class="cline-any cline-no">&nbsp;</span>
662
1312
  <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-yes">14x</span>
664
- <span class="cline-any cline-yes">2x</span>
1313
+ <span class="cline-any cline-no">&nbsp;</span>
1314
+ <span class="cline-any cline-no">&nbsp;</span>
1315
+ <span class="cline-any cline-no">&nbsp;</span>
665
1316
  <span class="cline-any cline-neutral">&nbsp;</span>
1317
+ <span class="cline-any cline-no">&nbsp;</span>
1318
+ <span class="cline-any cline-no">&nbsp;</span>
666
1319
  <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-yes">14x</span>
668
- <span class="cline-any cline-yes">1x</span>
1320
+ <span class="cline-any cline-no">&nbsp;</span>
1321
+ <span class="cline-any cline-no">&nbsp;</span>
669
1322
  <span class="cline-any cline-neutral">&nbsp;</span>
670
1323
  <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-yes">14x</span>
672
- <span class="cline-any cline-yes">2x</span>
673
- <span class="cline-any cline-yes">2x</span>
674
- <span class="cline-any cline-yes">2x</span>
675
1324
  <span class="cline-any cline-neutral">&nbsp;</span>
676
1325
  <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-yes">14x</span>
678
- <span class="cline-any cline-yes">2x</span>
1326
+ <span class="cline-any cline-no">&nbsp;</span>
1327
+ <span class="cline-any cline-no">&nbsp;</span>
679
1328
  <span class="cline-any cline-neutral">&nbsp;</span>
1329
+ <span class="cline-any cline-no">&nbsp;</span>
1330
+ <span class="cline-any cline-no">&nbsp;</span>
680
1331
  <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-yes">14x</span>
682
- <span class="cline-any cline-yes">3x</span>
1332
+ <span class="cline-any cline-no">&nbsp;</span>
1333
+ <span class="cline-any cline-no">&nbsp;</span>
683
1334
  <span class="cline-any cline-neutral">&nbsp;</span>
684
1335
  <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-yes">14x</span>
686
- <span class="cline-any cline-yes">1x</span>
1336
+ <span class="cline-any cline-no">&nbsp;</span>
687
1337
  <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-yes">14x</span>
689
- <span class="cline-any cline-yes">1x</span>
690
- <span class="cline-any cline-yes">1x</span>
1338
+ <span class="cline-any cline-no">&nbsp;</span>
1339
+ <span class="cline-any cline-no">&nbsp;</span>
691
1340
  <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-yes">14x</span>
693
- <span class="cline-any cline-yes">2x</span>
694
1341
  <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-yes">14x</span>
696
- <span class="cline-any cline-yes">4x</span>
697
1342
  <span class="cline-any cline-neutral">&nbsp;</span>
698
1343
  <span class="cline-any cline-neutral">&nbsp;</span>
699
1344
  <span class="cline-any cline-neutral">&nbsp;</span>
700
1345
  <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-yes">14x</span>
702
- <span class="cline-any cline-yes">3x</span>
703
1346
  <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-yes">14x</span>
705
- <span class="cline-any cline-yes">3x</span>
1347
+ <span class="cline-any cline-no">&nbsp;</span>
706
1348
  <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-yes">14x</span>
708
- <span class="cline-any cline-yes">2x</span>
709
1349
  <span class="cline-any cline-neutral">&nbsp;</span>
710
1350
  <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-yes">14x</span>
712
1351
  <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-yes">14x</span>
714
- <span class="cline-any cline-yes">14x</span>
715
1352
  <span class="cline-any cline-neutral">&nbsp;</span>
716
1353
  <span class="cline-any cline-neutral">&nbsp;</span>
717
1354
  <span class="cline-any cline-neutral">&nbsp;</span>
718
1355
  <span class="cline-any cline-neutral">&nbsp;</span>
719
1356
  <span class="cline-any cline-neutral">&nbsp;</span>
1357
+ <span class="cline-any cline-no">&nbsp;</span>
1358
+ <span class="cline-any cline-no">&nbsp;</span>
1359
+ <span class="cline-any cline-no">&nbsp;</span>
720
1360
  <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-yes">14x</span>
1361
+ <span class="cline-any cline-no">&nbsp;</span>
722
1362
  <span class="cline-any cline-neutral">&nbsp;</span>
723
1363
  <span class="cline-any cline-neutral">&nbsp;</span>
724
1364
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from "lodash";
1365
+ import File from "./File";
1366
+ import Model from "./Model";
1367
+ import { mediaType } from "./fileType";
1368
+ import { clone, keys, flatten, filter, values } from "ramda";
725
1369
  &nbsp;
726
1370
  /**
727
1371
  * [media description]
728
1372
  * @type {[type]}
729
1373
  */
730
- export default class Ingest {
1374
+ export default class Ingest extends Model {
1375
+ <span class="fstat-no" title="function not covered" > co</span>nstructor(data) {
1376
+ <span class="cstat-no" title="statement not covered" > super(data);</span>
1377
+ <span class="cstat-no" title="statement not covered" > this._resource = "ingests";</span>
1378
+ }
1379
+ <span class="fstat-no" title="function not covered" > st</span>atic get _resource() {
1380
+ <span class="cstat-no" title="statement not covered" > return 'ingests';</span>
1381
+ }
1382
+ /**
1383
+ * Returns path given an ingest record
1384
+ *
1385
+ */
1386
+ <span class="fstat-no" title="function not covered" > re</span>nderPath() {
1387
+ let ingest = <span class="cstat-no" title="statement not covered" >this.data();</span>
1388
+ <span class="cstat-no" title="statement not covered" > if (!ingest.asset.project.studio.slug) {</span>
1389
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing studio slug");</span>
1390
+ }
1391
+ <span class="cstat-no" title="statement not covered" > if (!ingest.asset.project.slug) {</span>
1392
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing asset.project.slug");</span>
1393
+ }
1394
+ <span class="cstat-no" title="statement not covered" > if (!ingest.asset.project.slug) {</span>
1395
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing asset.project.slug");</span>
1396
+ }
1397
+ <span class="cstat-no" title="statement not covered" > return [</span>
1398
+ ingest.asset.project.studio.slug,
1399
+ ingest.asset.project.slug,
1400
+ ingest.asset.type
1401
+ ].join("/");
1402
+ }
1403
+ /**
1404
+ * Create a File from an Ingest object with path and filename
1405
+ *
1406
+ * @param {object} params
1407
+ */
1408
+ <span class="fstat-no" title="function not covered" > re</span>nderFilename({ allTags, allTypes, order } = (<span class="branch-0 cbranch-no" title="branch not covered" >params = {})</span>) {
1409
+ let asset = <span class="cstat-no" title="statement not covered" >this.data().asset;</span>
1410
+ let options = <span class="cstat-no" title="statement not covered" >this.data().selected.download;</span>
1411
+ let mediaType = <span class="cstat-no" title="statement not covered" >this.data().asset.mediaType;</span>
1412
+ &nbsp;
1413
+ <span class="cstat-no" title="statement not covered" > if (!asset.project) {</span>
1414
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing asset.project");</span>
1415
+ }
1416
+ &nbsp;
1417
+ <span class="cstat-no" title="statement not covered" > if (asset.project &amp;&amp; !asset.project.filePrefix) {</span>
1418
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing asset.project.filePrefix");</span>
1419
+ }
1420
+ &nbsp;
1421
+ <span class="cstat-no" title="statement not covered" > if (!asset.name) {</span>
1422
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing asset.name");</span>
1423
+ }
1424
+ &nbsp;
1425
+ <span class="cstat-no" title="statement not covered" > if (!asset.type) {</span>
1426
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing asset.type");</span>
1427
+ }
1428
+ &nbsp;
1429
+ let defaults = <span class="cstat-no" title="statement not covered" >{</span>
1430
+ language: null,
1431
+ country: null,
1432
+ version: null,
1433
+ tags: {
1434
+ Usage: null,
1435
+ Aspect: null,
1436
+ SubDub: {
1437
+ sub: null,
1438
+ dub: null
1439
+ },
1440
+ Resolution: null,
1441
+ "Frame Mode": null,
1442
+ Framerate: null,
1443
+ Text: null,
1444
+ Codec: null,
1445
+ Extra: []
1446
+ }
1447
+ };
1448
+ <span class="cstat-no" title="statement not covered" > options = _.merge(defaults, options);</span>
1449
+ &nbsp;
1450
+ <span class="cstat-no" title="statement not covered" > if (!options.language) {</span>
1451
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing options.language");</span>
1452
+ }
1453
+ &nbsp;
1454
+ <span class="cstat-no" title="statement not covered" > if (mediaType &amp;&amp; mediaType == "video" &amp;&amp; !options.tags.Codec) {</span>
1455
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing options.tags.Codec");</span>
1456
+ }
1457
+ &nbsp;
1458
+ <span class="cstat-no" title="statement not covered" > if (mediaType &amp;&amp; mediaType == "video" &amp;&amp; !options.tags.Resolution) {</span>
1459
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing options.tags.Resolution");</span>
1460
+ }
1461
+ &nbsp;
1462
+ <span class="cstat-no" title="statement not covered" > if (mediaType &amp;&amp; mediaType == "video" &amp;&amp; !options.tags.Framerate) {</span>
1463
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing options.tags.Framerate");</span>
1464
+ }
1465
+ &nbsp;
1466
+ <span class="cstat-no" title="statement not covered" > if (mediaType == "video" &amp;&amp; !options.tags["Frame Mode"]) {</span>
1467
+ <span class="cstat-no" title="statement not covered" > throw new Error("missing options.tags[Frame Mode]");</span>
1468
+ }
1469
+ &nbsp;
1470
+ function <span class="fstat-no" title="function not covered" >assetType(</span>asset, types) {
1471
+ <span class="cstat-no" title="statement not covered" > if (/trailer/.test(asset.type)) {</span>
1472
+ <span class="cstat-no" title="statement not covered" > return false;</span>
1473
+ }
1474
+ &nbsp;
1475
+ let matchingType = <span class="cstat-no" title="statement not covered" >_.find(types, { name: asset.type });</span>
1476
+ <span class="cstat-no" title="statement not covered" > if (!matchingType) {</span>
1477
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Asset type "${asset.type}" could not be found`);</span>
1478
+ }
1479
+ &nbsp;
1480
+ <span class="cstat-no" title="statement not covered" > return (</span>
1481
+ matchingType.file || matchingType.name.replace(".", "-").toUpperCase()
1482
+ );
1483
+ }
1484
+ &nbsp;
1485
+ function <span class="fstat-no" title="function not covered" >assetTitle(</span>asset) {
1486
+ let prefix = <span class="cstat-no" title="statement not covered" >"";</span>
1487
+ let name = <span class="cstat-no" title="statement not covered" >asset.slug.toUpperCase().replace("INT-L", "INTL");</span>
1488
+ <span class="cstat-no" title="statement not covered" > if (/trailer/.test(asset.type)) {</span>
1489
+ <span class="cstat-no" title="statement not covered" > switch (asset.type) {</span>
1490
+ case "trailer.intl":
1491
+ <span class="cstat-no" title="statement not covered" > prefix = "ITR-";</span>
1492
+ <span class="cstat-no" title="statement not covered" > name = name.replace(/INTL-TRAILER-/, "");</span>
1493
+ <span class="cstat-no" title="statement not covered" > break;</span>
1494
+ case "trailer":
1495
+ <span class="cstat-no" title="statement not covered" > prefix = "TR-";</span>
1496
+ <span class="cstat-no" title="statement not covered" > name = name.replace(/TRAILER-/, "");</span>
1497
+ <span class="cstat-no" title="statement not covered" > break;</span>
1498
+ case "trailer.us":
1499
+ <span class="cstat-no" title="statement not covered" > prefix = "DTR-";</span>
1500
+ <span class="cstat-no" title="statement not covered" > name = name.replace(/DOMESTIC-TRAILER-/, "");</span>
1501
+ <span class="cstat-no" title="statement not covered" > break;</span>
1502
+ }
1503
+ }
1504
+ <span class="cstat-no" title="statement not covered" > return prefix + name;</span>
1505
+ }
1506
+ &nbsp;
1507
+ function <span class="fstat-no" title="function not covered" >runningTime(</span>asset) {
1508
+ let matches = <span class="cstat-no" title="statement not covered" >asset.type.match(/^film-clip|^featurette/);</span>
1509
+ <span class="cstat-no" title="statement not covered" > if (!matches) {</span>
1510
+ <span class="cstat-no" title="statement not covered" > return;</span>
1511
+ }
1512
+ &nbsp;
1513
+ let minutes = <span class="cstat-no" title="statement not covered" >Math.floor(asset.length / 60);</span>
1514
+ let seconds = <span class="cstat-no" title="statement not covered" >asset.length % 60;</span>
1515
+ &nbsp;
1516
+ let result = <span class="cstat-no" title="statement not covered" >"";</span>
1517
+ &nbsp;
1518
+ <span class="cstat-no" title="statement not covered" > if (minutes &gt; 0) {</span>
1519
+ <span class="cstat-no" title="statement not covered" > result += minutes + "min";</span>
1520
+ }
1521
+ &nbsp;
1522
+ <span class="cstat-no" title="statement not covered" > if (seconds &gt; 0) {</span>
1523
+ <span class="cstat-no" title="statement not covered" > result += seconds + "sec";</span>
1524
+ }
1525
+ &nbsp;
1526
+ <span class="cstat-no" title="statement not covered" > return result;</span>
1527
+ }
1528
+ &nbsp;
1529
+ function <span class="fstat-no" title="function not covered" >locale(</span>country, language) {
1530
+ <span class="cstat-no" title="statement not covered" > if (language.includes("-")) {</span>
1531
+ <span class="cstat-no" title="statement not covered" > country = "";</span>
1532
+ }
1533
+ <span class="cstat-no" title="statement not covered" > return [language, country]</span>
1534
+ .filter(<span class="fstat-no" title="function not covered" >st</span>r =&gt; {
1535
+ <span class="cstat-no" title="statement not covered" > return !!str &amp;&amp; str !== "WW";</span>
1536
+ })
1537
+ .join("-");
1538
+ }
1539
+ &nbsp;
1540
+ function <span class="fstat-no" title="function not covered" >textType(</span>subDub, text) {
1541
+ <span class="cstat-no" title="statement not covered" > if (!subDub || (!subDub.sub &amp;&amp; !subDub.dub)) {</span>
1542
+ <span class="cstat-no" title="statement not covered" > return text;</span>
1543
+ }
1544
+ &nbsp;
1545
+ let result = <span class="cstat-no" title="statement not covered" >[];</span>
1546
+ <span class="cstat-no" title="statement not covered" > if (subDub.sub) {</span>
1547
+ <span class="cstat-no" title="statement not covered" > result.push("sub");</span>
1548
+ }
1549
+ &nbsp;
1550
+ <span class="cstat-no" title="statement not covered" > if (subDub.dub) {</span>
1551
+ <span class="cstat-no" title="statement not covered" > result.push("dub");</span>
1552
+ }
1553
+ &nbsp;
1554
+ <span class="cstat-no" title="statement not covered" > return result;</span>
1555
+ }
1556
+ &nbsp;
1557
+ function <span class="fstat-no" title="function not covered" >matchSet(</span>allTags, tags) {
1558
+ let selectedTags = <span class="cstat-no" title="statement not covered" >_(tags)</span>
1559
+ .values()
1560
+ .flatten()
1561
+ .value();
1562
+ &nbsp;
1563
+ let setTag = <span class="cstat-no" title="statement not covered" >_(allTags)</span>
1564
+ .filter("set")
1565
+ .find(<span class="fstat-no" title="function not covered" >se</span>tTag =&gt; {
1566
+ <span class="cstat-no" title="statement not covered" > return _.difference(setTag.set, selectedTags).length === 0;</span>
1567
+ });
1568
+ &nbsp;
1569
+ <span class="cstat-no" title="statement not covered" > if (setTag) {</span>
1570
+ <span class="cstat-no" title="statement not covered" > return setTag.name;</span>
1571
+ }
1572
+ }
1573
+ &nbsp;
1574
+ let tags = <span class="cstat-no" title="statement not covered" >options.tags,</span>
1575
+ parts = <span class="cstat-no" title="statement not covered" >[</span>
1576
+ asset.project.filePrefix,
1577
+ assetType(asset, allTypes),
1578
+ assetTitle(asset),
1579
+ runningTime(asset),
1580
+ locale(options.country, options.language),
1581
+ textType(tags.SubDub, tags.Text),
1582
+ tags.Extra.join("_"),
1583
+ options.version,
1584
+ tags.Codec
1585
+ ];
1586
+ &nbsp;
1587
+ <span class="cstat-no" title="statement not covered" > parts = _(parts)</span>
1588
+ .flatten()
1589
+ .filter()
1590
+ .map(<span class="fstat-no" title="function not covered" >pa</span>rt =&gt; <span class="cstat-no" title="statement not covered" >part.toUpperCase())</span>;
1591
+ &nbsp;
1592
+ let matchedSet = <span class="cstat-no" title="statement not covered" >matchSet(allTags, options.tags);</span>
1593
+ let requiredInfo = <span class="cstat-no" title="statement not covered" >tags.Resolution &amp;&amp; tags["Frame Mode"] &amp;&amp; tags.Framerate;</span>
1594
+ &nbsp;
1595
+ <span class="cstat-no" title="statement not covered" > if (matchedSet) {</span>
1596
+ <span class="cstat-no" title="statement not covered" > parts = parts.push(matchedSet);</span>
1597
+ } else <span class="cstat-no" title="statement not covered" >if (mediaType == "video" &amp;&amp; tags.Resolution &amp;&amp; !requiredInfo) {</span>
1598
+ <span class="cstat-no" title="statement not covered" > parts = parts.push(tags.Resolution.replace(/\d+x/, ""));</span>
1599
+ } else <span class="cstat-no" title="statement not covered" >if (mediaType == "image" &amp;&amp; tags.Resolution) {</span>
1600
+ <span class="cstat-no" title="statement not covered" > parts = parts.push(tags.Resolution);</span>
1601
+ }
1602
+ &nbsp;
1603
+ let name = <span class="cstat-no" title="statement not covered" >parts.join("_");</span>
1604
+ &nbsp;
1605
+ let hasResInfo = <span class="cstat-no" title="statement not covered" >name.match(/\d+(i|p)/i);</span>
1606
+ let hasAllInfo = <span class="cstat-no" title="statement not covered" >name.match(/\d+(i|p)\d+/i);</span>
1607
+ &nbsp;
1608
+ <span class="cstat-no" title="statement not covered" > if (requiredInfo &amp;&amp; !hasResInfo &amp;&amp; !hasAllInfo) {</span>
1609
+ let res = <span class="cstat-no" title="statement not covered" >tags.Resolution;</span>
1610
+ let encodeTag = <span class="cstat-no" title="statement not covered" >[</span>
1611
+ hasResInfo ? "" : res.indexOf("x") ? res.replace(/\d+x/, "") : res,
1612
+ res.match(/i|p/i) &amp;&amp; !hasResInfo
1613
+ ? ""
1614
+ : tags["Frame Mode"].toLowerCase().slice(0, 1),
1615
+ tags.Framerate.replace(".", "").toUpperCase()
1616
+ ]
1617
+ .filter(<span class="fstat-no" title="function not covered" >va</span>l =&gt; {
1618
+ <span class="cstat-no" title="statement not covered" > return val;</span>
1619
+ })
1620
+ .join("");
1621
+ &nbsp;
1622
+ let match = <span class="cstat-no" title="statement not covered" >new RegExp(encodeTag, "i");</span>
1623
+ <span class="cstat-no" title="statement not covered" > name = name.match(match)</span>
1624
+ ? name.replace(match, encodeTag)
1625
+ : name + "_" + encodeTag;
1626
+ } else <span class="cstat-no" title="statement not covered" >if (hasResInfo &amp;&amp; !hasAllInfo &amp;&amp; tags.Framerate) {</span>
1627
+ <span class="cstat-no" title="statement not covered" > name += tags.Framerate.replace(".", "").toUpperCase();</span>
1628
+ }
1629
+ &nbsp;
1630
+ <span class="cstat-no" title="statement not covered" > return name;</span>
1631
+ }
1632
+ /**
1633
+ * Returns the mediaType of the ingest
1634
+ */
1635
+ <span class="fstat-no" title="function not covered" > me</span>diaType() {
1636
+ <span class="cstat-no" title="statement not covered" > return this.src.mediaType;</span>
1637
+ }
731
1638
  /**
732
1639
  * Maps mediainfo metadata into ingest Tag format
733
- * @param {*} info
734
- * @param {*} mediaType
1640
+ *
735
1641
  */
736
- static mapFromMediainfo(info, mediaType) {
737
- let schema = {
1642
+ <span class="fstat-no" title="function not covered" > ma</span>pFromMediainfo() {
1643
+ let info = <span class="cstat-no" title="statement not covered" >this.mediainfo;</span>
1644
+ let mediaType = <span class="cstat-no" title="statement not covered" >this.asset.mediaType;</span>
1645
+ &nbsp;
1646
+ let schema = <span class="cstat-no" title="statement not covered" >{</span>
738
1647
  Aspect: null,
739
1648
  Standard: null,
740
1649
  Resolution: null,
@@ -747,38 +1656,38 @@ export default class Ingest {
747
1656
  Duration: null
748
1657
  };
749
1658
  &nbsp;
750
- let tags = {};
1659
+ let tags = <span class="cstat-no" title="statement not covered" >{};</span>
751
1660
  &nbsp;
752
- if (!info.File) {
753
- throw "missing info.File";
1661
+ <span class="cstat-no" title="statement not covered" > if (!info.File) {</span>
1662
+ <span class="cstat-no" title="statement not covered" > throw "missing info.File";</span>
754
1663
  }
755
1664
  &nbsp;
756
- if (!info.File.track) {
757
- throw "missing info.File.track";
1665
+ <span class="cstat-no" title="statement not covered" > if (!info.File.track) {</span>
1666
+ <span class="cstat-no" title="statement not covered" > throw "missing info.File.track";</span>
758
1667
  }
759
1668
  &nbsp;
760
1669
  let general;
761
- if (!Array.isArray(info["File"]["track"])) {
762
- general = info["File"]["track"];
1670
+ <span class="cstat-no" title="statement not covered" > if (!Array.isArray(info["File"]["track"])) {</span>
1671
+ <span class="cstat-no" title="statement not covered" > general = info["File"]["track"];</span>
763
1672
  } else {
764
- general = _.find(info["File"]["track"], { _type: "General" });
1673
+ <span class="cstat-no" title="statement not covered" > general = _.find(info["File"]["track"], { _type: "General" });</span>
765
1674
  }
766
1675
  &nbsp;
767
- switch (mediaType) {
1676
+ <span class="cstat-no" title="statement not covered" > switch (mediaType) {</span>
768
1677
  case "video":
769
- mediaType = "Video";
770
- break;
1678
+ <span class="cstat-no" title="statement not covered" > mediaType = "Video";</span>
1679
+ <span class="cstat-no" title="statement not covered" > break;</span>
771
1680
  case "image":
772
- mediaType = "Image";
773
- break;
1681
+ <span class="cstat-no" title="statement not covered" > mediaType = "Image";</span>
1682
+ <span class="cstat-no" title="statement not covered" > break;</span>
774
1683
  default:
775
- <span class="missing-if-branch" title="else path not taken" >E</span>if (general.Format &amp;&amp; general.Format == "MXF") {
776
- tags.Usage = "broadcast";
1684
+ <span class="cstat-no" title="statement not covered" > if (general.Format &amp;&amp; general.Format == "MXF") {</span>
1685
+ <span class="cstat-no" title="statement not covered" > tags.Usage = "broadcast";</span>
777
1686
  }
778
- return tags;
1687
+ <span class="cstat-no" title="statement not covered" > return tags;</span>
779
1688
  }
780
1689
  &nbsp;
781
- let mediainfoDefaults = {
1690
+ let mediainfoDefaults = <span class="cstat-no" title="statement not covered" >{</span>
782
1691
  DisplayAspectRatio: "",
783
1692
  Format: "",
784
1693
  Standard: "",
@@ -788,117 +1697,117 @@ export default class Ingest {
788
1697
  ScanType: ""
789
1698
  };
790
1699
  &nbsp;
791
- let media = _.find(info["File"]["track"], {
1700
+ let media = <span class="cstat-no" title="statement not covered" >_.find(info["File"]["track"], {</span>
792
1701
  _type: mediaType
793
1702
  });
794
- media = _.merge({}, mediainfoDefaults, media);
1703
+ <span class="cstat-no" title="statement not covered" > media = _.merge({}, mediainfoDefaults, media);</span>
795
1704
  &nbsp;
796
- let width = parseInt(media["Width"].replace(" ", "").match(/[0-9 ]+/));
797
- let height = parseInt(media["Height"].replace(" ", "").match(/[0-9 ]+/));
798
- let Resolution = width &amp;&amp; height ? `${width}x${height}` : null;
799
- if (Resolution) {
800
- tags.Resolution = Resolution;
1705
+ let width = <span class="cstat-no" title="statement not covered" >parseInt(media["Width"].replace(" ", "").match(/[0-9 ]+/));</span>
1706
+ let height = <span class="cstat-no" title="statement not covered" >parseInt(media["Height"].replace(" ", "").match(/[0-9 ]+/));</span>
1707
+ let Resolution = <span class="cstat-no" title="statement not covered" >width &amp;&amp; height ? `${width}x${height}` : null;</span>
1708
+ <span class="cstat-no" title="statement not covered" > if (Resolution) {</span>
1709
+ <span class="cstat-no" title="statement not covered" > tags.Resolution = Resolution;</span>
801
1710
  }
802
1711
  &nbsp;
803
- let Standard = media["Standard"] ? <span class="branch-0 cbranch-no" title="branch not covered" >media["Standard"].toLowerCase() </span>: null;
804
- <span class="missing-if-branch" title="if path not taken" >I</span>if (Standard) {
1712
+ let Standard = <span class="cstat-no" title="statement not covered" >media["Standard"] ? media["Standard"].toLowerCase() : null;</span>
1713
+ <span class="cstat-no" title="statement not covered" > if (Standard) {</span>
805
1714
  <span class="cstat-no" title="statement not covered" > tags.Standard = Standard;</span>
806
1715
  }
807
1716
  &nbsp;
808
- let framerate = media["FrameRate"];
809
- switch (framerate) {
1717
+ let framerate = <span class="cstat-no" title="statement not covered" >media["FrameRate"];</span>
1718
+ <span class="cstat-no" title="statement not covered" > switch (framerate) {</span>
810
1719
  case "23.976":
811
- framerate = "23.98";
812
- break;
813
- <span class="branch-1 cbranch-no" title="branch not covered" > case "24.000":</span>
1720
+ <span class="cstat-no" title="statement not covered" > framerate = "23.98";</span>
1721
+ <span class="cstat-no" title="statement not covered" > break;</span>
1722
+ case "24.000":
814
1723
  <span class="cstat-no" title="statement not covered" > framerate = "24";</span>
815
1724
  <span class="cstat-no" title="statement not covered" > break;</span>
816
- <span class="branch-2 cbranch-no" title="branch not covered" > case "25.000":</span>
1725
+ case "25.000":
817
1726
  <span class="cstat-no" title="statement not covered" > framerate = "25";</span>
818
1727
  <span class="cstat-no" title="statement not covered" > break;</span>
819
- <span class="branch-3 cbranch-no" title="branch not covered" > case "29.970":</span>
1728
+ case "29.970":
820
1729
  <span class="cstat-no" title="statement not covered" > framerate = "29.97";</span>
821
1730
  <span class="cstat-no" title="statement not covered" > break;</span>
822
- <span class="branch-4 cbranch-no" title="branch not covered" > case "50.000":</span>
1731
+ case "50.000":
823
1732
  <span class="cstat-no" title="statement not covered" > framerate = "50";</span>
824
1733
  <span class="cstat-no" title="statement not covered" > break;</span>
825
- <span class="branch-5 cbranch-no" title="branch not covered" > case "59.940":</span>
1734
+ case "59.940":
826
1735
  <span class="cstat-no" title="statement not covered" > framerate = "59.94";</span>
827
1736
  <span class="cstat-no" title="statement not covered" > break;</span>
828
1737
  }
829
- framerate = parseFloat(framerate).toString();
830
- framerate = framerate != "NaN" ? framerate : null;
831
- if (framerate) {
832
- tags.Framerate = framerate;
1738
+ <span class="cstat-no" title="statement not covered" > framerate = parseFloat(framerate).toString();</span>
1739
+ <span class="cstat-no" title="statement not covered" > framerate = framerate != "NaN" ? framerate : null;</span>
1740
+ <span class="cstat-no" title="statement not covered" > if (framerate) {</span>
1741
+ <span class="cstat-no" title="statement not covered" > tags.Framerate = framerate;</span>
833
1742
  }
834
1743
  &nbsp;
835
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!tags.Standard) {
836
- switch (tags.Framerate) {
837
- <span class="branch-0 cbranch-no" title="branch not covered" > case "24":</span>
1744
+ <span class="cstat-no" title="statement not covered" > if (!tags.Standard) {</span>
1745
+ <span class="cstat-no" title="statement not covered" > switch (tags.Framerate) {</span>
1746
+ case "24":
838
1747
  case "23.98":
839
1748
  case "29.97":
840
1749
  case "59.94":
841
- tags.Standard = "ntsc";
842
- break;
843
- <span class="branch-4 cbranch-no" title="branch not covered" > case "25":</span>
844
- <span class="branch-5 cbranch-no" title="branch not covered" > case "50":</span>
1750
+ <span class="cstat-no" title="statement not covered" > tags.Standard = "ntsc";</span>
1751
+ <span class="cstat-no" title="statement not covered" > break;</span>
1752
+ case "25":
1753
+ case "50":
845
1754
  <span class="cstat-no" title="statement not covered" > tags.Standard = "pal";</span>
846
1755
  <span class="cstat-no" title="statement not covered" > break;</span>
847
1756
  }
848
1757
  }
849
1758
  &nbsp;
850
1759
  let Codec;
851
- switch (media["Format"]) {
1760
+ <span class="cstat-no" title="statement not covered" > switch (media["Format"]) {</span>
852
1761
  case "AVC":
853
- Codec = "h264";
854
- break;
1762
+ <span class="cstat-no" title="statement not covered" > Codec = "h264";</span>
1763
+ <span class="cstat-no" title="statement not covered" > break;</span>
855
1764
  case "ProRes":
856
- Codec = "prores";
857
- break;
1765
+ <span class="cstat-no" title="statement not covered" > Codec = "prores";</span>
1766
+ <span class="cstat-no" title="statement not covered" > break;</span>
858
1767
  }
859
- if (Codec) {
860
- tags.Codec = Codec;
1768
+ <span class="cstat-no" title="statement not covered" > if (Codec) {</span>
1769
+ <span class="cstat-no" title="statement not covered" > tags.Codec = Codec;</span>
861
1770
  }
862
1771
  &nbsp;
863
- if (tags.Codec == "h264") {
864
- tags.Usage = "online";
1772
+ <span class="cstat-no" title="statement not covered" > if (tags.Codec == "h264") {</span>
1773
+ <span class="cstat-no" title="statement not covered" > tags.Usage = "online";</span>
865
1774
  }
866
1775
  &nbsp;
867
- if (tags.Codec == "prores") {
868
- tags.Usage = "broadcast";
1776
+ <span class="cstat-no" title="statement not covered" > if (tags.Codec == "prores") {</span>
1777
+ <span class="cstat-no" title="statement not covered" > tags.Usage = "broadcast";</span>
869
1778
  }
870
1779
  &nbsp;
871
- <span class="missing-if-branch" title="if path not taken" >I</span>if (general &amp;&amp; general["Format"] == "MXF") {
1780
+ <span class="cstat-no" title="statement not covered" > if (general &amp;&amp; general["Format"] == "MXF") {</span>
872
1781
  <span class="cstat-no" title="statement not covered" > tags.Usage = "broadcast";</span>
873
1782
  }
874
1783
  &nbsp;
875
- switch (media["DisplayAspectRatio"]) {
876
- <span class="branch-0 cbranch-no" title="branch not covered" > case "1.000":</span>
1784
+ <span class="cstat-no" title="statement not covered" > switch (media["DisplayAspectRatio"]) {</span>
1785
+ case "1.000":
877
1786
  <span class="cstat-no" title="statement not covered" > tags.Aspect = "1:1";</span>
878
1787
  <span class="cstat-no" title="statement not covered" > break;</span>
879
- <span class="branch-1 cbranch-no" title="branch not covered" > case "1.347":</span>
1788
+ case "1.347":
880
1789
  <span class="cstat-no" title="statement not covered" > tags.Aspect = "4:3";</span>
881
1790
  <span class="cstat-no" title="statement not covered" > break;</span>
882
- <span class="branch-2 cbranch-no" title="branch not covered" > case "1.756":</span>
1791
+ case "1.756":
883
1792
  <span class="cstat-no" title="statement not covered" > tags.Aspect = "16:9";</span>
884
1793
  <span class="cstat-no" title="statement not covered" > break;</span>
885
1794
  case "1.778":
886
- tags.Aspect = "16:9";
887
- break;
888
- <span class="branch-4 cbranch-no" title="branch not covered" > case "1.366":</span>
1795
+ <span class="cstat-no" title="statement not covered" > tags.Aspect = "16:9";</span>
1796
+ <span class="cstat-no" title="statement not covered" > break;</span>
1797
+ case "1.366":
889
1798
  <span class="cstat-no" title="statement not covered" > tags.Aspect = "4:3";</span>
890
1799
  <span class="cstat-no" title="statement not covered" > break;</span>
891
- <span class="branch-5 cbranch-no" title="branch not covered" > case "0.562":</span>
1800
+ case "0.562":
892
1801
  <span class="cstat-no" title="statement not covered" > tags.Aspect = "9:16";</span>
893
1802
  <span class="cstat-no" title="statement not covered" > break;</span>
894
1803
  }
895
1804
  &nbsp;
896
- let ScanType = media["ScanType"].toLowerCase() || null;
897
- if (ScanType) {
898
- tags["Frame Mode"] = ScanType;
1805
+ let ScanType = <span class="cstat-no" title="statement not covered" >media["ScanType"].toLowerCase() || null;</span>
1806
+ <span class="cstat-no" title="statement not covered" > if (ScanType) {</span>
1807
+ <span class="cstat-no" title="statement not covered" > tags["Frame Mode"] = ScanType;</span>
899
1808
  }
900
1809
  &nbsp;
901
- let ingest = {
1810
+ let ingest = <span class="cstat-no" title="statement not covered" >{</span>
902
1811
  selected: {
903
1812
  download: {
904
1813
  tags: tags
@@ -906,71 +1815,107 @@ export default class Ingest {
906
1815
  }
907
1816
  };
908
1817
  &nbsp;
909
- return ingest;
1818
+ <span class="cstat-no" title="statement not covered" > return ingest;</span>
910
1819
  }
911
1820
  /**
912
1821
  * Maps parsed filename data to a partial ingest record for later merging
913
1822
  * @param {*} filename
914
1823
  * @param {*} allTags
915
1824
  */
916
- static mapFromFilename(filename, allTags) {
917
- let tags = {
1825
+ <span class="fstat-no" title="function not covered" > ma</span>pFromFilename(params) {
1826
+ let { allTags } = <span class="cstat-no" title="statement not covered" >params;</span>
1827
+ let filename = <span class="cstat-no" title="statement not covered" >this.filename;</span>
1828
+ let tags = <span class="cstat-no" title="statement not covered" >{</span>
918
1829
  SubDub: {
919
1830
  sub: null,
920
1831
  dub: null
921
1832
  }
922
1833
  };
923
- filename.file.tags.forEach(tag =&gt; {
924
- let foundTag = _.find(allTags, { name: tag });
925
- <span class="missing-if-branch" title="else path not taken" >E</span>if (foundTag) {
926
- if (foundTag.type == 'SubDub') {
927
- if (foundTag.name == 'sub') {
928
- tags.SubDub.sub = true;
1834
+ <span class="cstat-no" title="statement not covered" > filename.file.tags.forEach(<span class="fstat-no" title="function not covered" >ta</span>g =&gt; {</span>
1835
+ let foundTag = <span class="cstat-no" title="statement not covered" >_.find(allTags, { name: tag });</span>
1836
+ <span class="cstat-no" title="statement not covered" > if (foundTag) {</span>
1837
+ <span class="cstat-no" title="statement not covered" > if (foundTag.type == "SubDub") {</span>
1838
+ <span class="cstat-no" title="statement not covered" > if (foundTag.name == "sub") {</span>
1839
+ <span class="cstat-no" title="statement not covered" > tags.SubDub.sub = true;</span>
929
1840
  }
930
- if (foundTag.name == 'dub') {
931
- tags.SubDub.dub = true;
1841
+ <span class="cstat-no" title="statement not covered" > if (foundTag.name == "dub") {</span>
1842
+ <span class="cstat-no" title="statement not covered" > tags.SubDub.dub = true;</span>
932
1843
  }
933
1844
  } else {
934
- tags[foundTag.type] = foundTag.name;
1845
+ <span class="cstat-no" title="statement not covered" > tags[foundTag.type] = foundTag.name;</span>
935
1846
  }
936
1847
  }
937
1848
  });
938
- tags.Extra = filename.extra;
939
- let ingest = {
1849
+ <span class="cstat-no" title="statement not covered" > tags.Extra = filename.extra;</span>
1850
+ let ingest = <span class="cstat-no" title="statement not covered" >{</span>
940
1851
  selected: {
941
1852
  download: {
942
1853
  tags: tags
943
1854
  },
944
- preview: {
945
- }
1855
+ preview: {}
946
1856
  }
947
1857
  };
948
- if (filename.file.tags.includes('sub') &amp;&amp; filename.file.tags.includes('dub')) {
949
- ingest.selected.preview.type = 'both';
950
- } else if (filename.file.tags.includes('sub')) {
951
- ingest.selected.preview.type = 'sub';
952
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (filename.file.tags.includes('dub')) {
953
- ingest.selected.preview.type = 'dub';
1858
+ <span class="cstat-no" title="statement not covered" > if (</span>
1859
+ filename.file.tags.includes("sub") &amp;&amp;
1860
+ filename.file.tags.includes("dub")
1861
+ ) {
1862
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.type = "both";</span>
1863
+ } else <span class="cstat-no" title="statement not covered" >if (filename.file.tags.includes("sub")) {</span>
1864
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.type = "sub";</span>
1865
+ } else <span class="cstat-no" title="statement not covered" >if (filename.file.tags.includes("dub")) {</span>
1866
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.type = "dub";</span>
954
1867
  }
955
- <span class="missing-if-branch" title="else path not taken" >E</span>if (filename.file.language) {
956
- ingest.selected.preview.language = filename.file.language;
957
- ingest.selected.download.language = filename.file.language;
1868
+ <span class="cstat-no" title="statement not covered" > if (filename.file.language) {</span>
1869
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.language = filename.file.language;</span>
1870
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.language = filename.file.language;</span>
958
1871
  }
959
- <span class="missing-if-branch" title="else path not taken" >E</span>if (filename.file.country) {
960
- ingest.selected.download.country = filename.file.country;
1872
+ <span class="cstat-no" title="statement not covered" > if (filename.file.country) {</span>
1873
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.country = filename.file.country;</span>
961
1874
  }
962
- return ingest;
1875
+ <span class="cstat-no" title="statement not covered" > return ingest;</span>
963
1876
  }
964
1877
  /**
965
- * Assembles Ingest based on weighted rules
1878
+ * Create a File from an Ingest object
1879
+ *
1880
+ * @param {object} params
1881
+ */
1882
+ <span class="fstat-no" title="function not covered" > cr</span>eateFile(params) {
1883
+ let { allTags, allTypes, order } = <span class="cstat-no" title="statement not covered" >params;</span>
1884
+ &nbsp;
1885
+ <span class="cstat-no" title="statement not covered" > this.filename = this.mapFromFilename({ allTags });</span>
1886
+ <span class="cstat-no" title="statement not covered" > this.mediainfo = this.mapFromMediainfo();</span>
1887
+ &nbsp;
1888
+ let ingest = <span class="cstat-no" title="statement not covered" >this.assemble({ order });</span>
1889
+ &nbsp;
1890
+ let file = <span class="cstat-no" title="statement not covered" >new File({</span>
1891
+ name: this.renderFilename({ allTags, allTypes }),
1892
+ path: this.renderPath(),
1893
+ asset: ingest.asset._id,
1894
+ generator: 'ingest',
1895
+ contextTag: ingest.context.tag,
1896
+ language: ingest.selected.download.language,
1897
+ country: ingest.selected.download.country,
1898
+ tags: flatValues(ingest.selected.download.tags),
1899
+ ingest: ingest._id,
1900
+ workRequest: ingest.workRequest,
1901
+ verified: true
1902
+ });
1903
+ &nbsp;
1904
+ <span class="cstat-no" title="statement not covered" > return file;</span>
1905
+ }
1906
+ /**
1907
+ * Merges ingest metadata sources
966
1908
  *
967
1909
  * @param {object} params
968
1910
  */
969
- static assemble(params) {
1911
+ <span class="fstat-no" title="function not covered" > as</span>semble(params) {
1912
+ let original = <span class="cstat-no" title="statement not covered" >this.data();</span>
1913
+ let filename = <span class="cstat-no" title="statement not covered" >this.data().filename;</span>
1914
+ let mediainfo = <span class="cstat-no" title="statement not covered" >this.data().mediainfo;</span>
970
1915
  &nbsp;
971
- let { original, filename, mediainfo, order, watermarks = [] } = params;
1916
+ let { order, watermarks = <span class="branch-0 cbranch-no" title="branch not covered" >[] </span>} = <span class="cstat-no" title="statement not covered" >params;</span>
972
1917
  &nbsp;
973
- let defaults = {
1918
+ let defaults = <span class="cstat-no" title="statement not covered" >{</span>
974
1919
  workRequest: order._id,
975
1920
  selected: {
976
1921
  download: {
@@ -984,8 +1929,8 @@ export default class Ingest {
984
1929
  },
985
1930
  preview: {
986
1931
  enabled: false,
987
- revision: 'Final',
988
- type: 'none',
1932
+ revision: "Final",
1933
+ type: "none",
989
1934
  embargo: {
990
1935
  enabled: false
991
1936
  }
@@ -997,76 +1942,91 @@ export default class Ingest {
997
1942
  }
998
1943
  };
999
1944
  &nbsp;
1000
- let ingest = _.merge(defaults, filename, original, mediainfo);
1945
+ let ingest = <span class="cstat-no" title="statement not covered" >_.merge(defaults, filename, original, mediainfo);</span>
1001
1946
  &nbsp;
1002
- if (original.asset &amp;&amp; original.asset.creative) {
1003
- ingest.selected.preview.revision = 'Unfinished';
1947
+ <span class="cstat-no" title="statement not covered" > if (original.asset &amp;&amp; original.asset.creative) {</span>
1948
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.revision = "Unfinished";</span>
1004
1949
  }
1005
1950
  &nbsp;
1006
- if (!original.context.asset &amp;&amp; filename.asset &amp;&amp; filename.asset._id) {
1007
- ingest.selected.asset = filename.asset._id;
1951
+ <span class="cstat-no" title="statement not covered" > if (!original.context.asset &amp;&amp; filename.asset &amp;&amp; filename.asset._id) {</span>
1952
+ <span class="cstat-no" title="statement not covered" > ingest.selected.asset = filename.asset._id;</span>
1008
1953
  }
1009
1954
  &nbsp;
1010
- if (ingest.workRequest) {
1011
- ingest.selected.project = ingest.context.project;
1012
- ingest.selected.asset = ingest.context.asset;
1013
- ingest.selected.assetType = ingest.context.assetType;
1955
+ <span class="cstat-no" title="statement not covered" > if (ingest.workRequest) {</span>
1956
+ <span class="cstat-no" title="statement not covered" > ingest.selected.project = ingest.context.project;</span>
1957
+ <span class="cstat-no" title="statement not covered" > ingest.selected.asset = ingest.context.asset;</span>
1958
+ <span class="cstat-no" title="statement not covered" > ingest.selected.assetType = ingest.context.assetType;</span>
1014
1959
  }
1015
1960
  &nbsp;
1016
- if (ingest.workRequest) {
1017
- ingest.selected.download.tags.Extra = [];
1961
+ <span class="cstat-no" title="statement not covered" > if (ingest.workRequest) {</span>
1962
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.tags.Extra = [];</span>
1018
1963
  }
1019
1964
  &nbsp;
1020
- if (original.context.tag) {
1021
- ingest.selected.download.tags.Extra = [original.context.tag];
1965
+ <span class="cstat-no" title="statement not covered" > if (original.context.tag) {</span>
1966
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.tags.Extra = [original.context.tag];</span>
1022
1967
  }
1023
1968
  &nbsp;
1024
- if (order.territory) {
1025
- ingest.selected.download.country = order.territory;
1969
+ <span class="cstat-no" title="statement not covered" > if (order.territory) {</span>
1970
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.country = order.territory;</span>
1026
1971
  }
1027
- if (order.language) {
1028
- ingest.selected.preview.language = order.language;
1029
- ingest.selected.download.language = order.language;
1972
+ <span class="cstat-no" title="statement not covered" > if (order.language) {</span>
1973
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.language = order.language;</span>
1974
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.language = order.language;</span>
1030
1975
  }
1031
- if (order._id) {
1032
- ingest.selected.download.tags.Text = 'txtd';
1976
+ <span class="cstat-no" title="statement not covered" > if (order._id) {</span>
1977
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.tags.Text = "txtd";</span>
1033
1978
  }
1034
- if (order.isSub() || order.isDub()) {
1035
- ingest.selected.download.tags.SubDub = {
1979
+ <span class="cstat-no" title="statement not covered" > if (order.isSub() || order.isDub()) {</span>
1980
+ <span class="cstat-no" title="statement not covered" > ingest.selected.download.tags.SubDub = {</span>
1036
1981
  sub: order.isSub(),
1037
1982
  dub: order.isDub()
1038
- }
1983
+ };
1039
1984
  }
1040
- if (order.isSub()) {
1041
- ingest.selected.preview.type = "sub";
1985
+ <span class="cstat-no" title="statement not covered" > if (order.isSub()) {</span>
1986
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.type = "sub";</span>
1042
1987
  }
1043
- if (order.isDub()) {
1044
- ingest.selected.preview.type = "dub";
1988
+ <span class="cstat-no" title="statement not covered" > if (order.isDub()) {</span>
1989
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.type = "dub";</span>
1045
1990
  }
1046
- if (order.isSub() &amp;&amp; order.isDub()) {
1047
- ingest.selected.preview.type = "both";
1991
+ <span class="cstat-no" title="statement not covered" > if (order.isSub() &amp;&amp; order.isDub()) {</span>
1992
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.type = "both";</span>
1048
1993
  }
1049
1994
  &nbsp;
1050
- ingest.selected.preview.watermark = watermarks[0] ? watermarks[0]._id : "";
1995
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.watermark = watermarks[0] ? watermarks[0]._id : "";</span>
1051
1996
  &nbsp;
1052
- let tags = ingest.selected.download.tags;
1053
- ingest.selected.preview.enabled =
1054
- !!(tags.Codec == "prores" &amp;&amp;
1997
+ let tags = <span class="cstat-no" title="statement not covered" >ingest.selected.download.tags;</span>
1998
+ <span class="cstat-no" title="statement not covered" > ingest.selected.preview.enabled =</span>
1999
+ !!(
2000
+ tags.Codec == "prores" &amp;&amp;
1055
2001
  tags.Resolution.split("x")[1] == "1080" &amp;&amp;
1056
- (tags.Framerate == "23.98" || <span class="branch-3 cbranch-no" title="branch not covered" >tags.Framerate == "25")</span> &amp;&amp;
1057
- watermarks.length) ||
1058
- false;
2002
+ (tags.Framerate == "23.98" || tags.Framerate == "25") &amp;&amp;
2003
+ watermarks.length
2004
+ ) || false;
2005
+ &nbsp;
2006
+ <span class="cstat-no" title="statement not covered" > return ingest;</span>
2007
+ }
2008
+ }
1059
2009
  &nbsp;
1060
- return ingest;
2010
+ /**
2011
+ * Flattens ingest.selected.download.tags into a simple array
2012
+ *
2013
+ * @param {object} data
2014
+ */
2015
+ function <span class="fstat-no" title="function not covered" >flatValues(</span>data) {
2016
+ let copy = <span class="cstat-no" title="statement not covered" >clone(data);</span>
2017
+ <span class="cstat-no" title="statement not covered" > if (copy.SubDub) {</span>
2018
+ <span class="cstat-no" title="statement not covered" > copy.SubDub = keys(filter(<span class="fstat-no" title="function not covered" >va</span>l =&gt; <span class="cstat-no" title="statement not covered" >!!val,</span> copy.SubDub));</span>
1061
2019
  }
2020
+ <span class="cstat-no" title="statement not covered" > return flatten(values(copy));</span>
1062
2021
  }
2022
+ &nbsp;
1063
2023
  &nbsp;</pre></td></tr>
1064
2024
  </table></pre>
1065
2025
  <div class='push'></div><!-- for sticky footer -->
1066
2026
  </div><!-- /wrapper -->
1067
2027
  <div class='footer quiet pad2 space-top1 center small'>
1068
2028
  Code coverage
1069
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Aug 02 2019 14:14:15 GMT-0500 (Central Daylight Time)
2029
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Aug 16 2019 15:01:51 GMT-0500 (Central Daylight Time)
1070
2030
  </div>
1071
2031
  </div>
1072
2032
  <script src="prettify.js"></script>