data-restructor 3.3.3 → 3.4.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.
- package/.github/ISSUE_TEMPLATE/bug_report.md +2 -2
- package/.github/workflows/codeql-analysis.yml +4 -4
- package/.github/workflows/continuous-integration.yaml +84 -0
- package/CHANGELOG.md +103 -75
- package/CONTRIBUTING.md +51 -43
- package/Commands.md +15 -15
- package/README.md +188 -137
- package/SECURITY.md +15 -0
- package/coverage/coverage-summary.json +4 -4
- package/coverage/datarestructor.js.html +446 -320
- package/coverage/describedfield.js.html +47 -47
- package/coverage/index.html +19 -19
- package/coverage/templateResolver.js.html +26 -26
- package/devdist/datarestructor-global-all.js +65 -23
- package/devdist/datarestructor-ie-global-all.js +65 -23
- package/devdist/datarestructor-ie.js +1479 -1616
- package/devdist/datarestructor.js +1439 -1559
- package/devdist/describedfield-ie.js +259 -279
- package/devdist/describedfield.js +257 -277
- package/devdist/templateResolver-ie.js +220 -252
- package/devdist/templateResolver.js +196 -227
- package/dist/datarestructor-global-all-min.js +1 -1
- package/dist/datarestructor-ie-global-all-min.js +1 -1
- package/dist/datarestructor-ie.js +1 -1
- package/dist/datarestructor-ie.js.map +1 -1
- package/dist/datarestructor.js +1 -1
- package/dist/datarestructor.js.map +1 -1
- package/dist/describedfield-ie.js +1 -1
- package/dist/describedfield-ie.js.map +1 -1
- package/dist/describedfield.js +1 -1
- package/dist/describedfield.js.map +1 -1
- package/dist/templateResolver-ie.js +1 -1
- package/dist/templateResolver-ie.js.map +1 -1
- package/dist/templateResolver.js +1 -1
- package/dist/templateResolver.js.map +1 -1
- package/docs/datarestructor.js.html +66 -24
- package/docs/describedfield.js.html +1 -1
- package/docs/index.html +49 -44
- package/docs/module-datarestructor.DescribedEntryCreator.html +1 -1
- package/docs/module-datarestructor.PropertyStructureDescriptionBuilder.html +1 -1
- package/docs/module-datarestructor.Restructor.html +3 -3
- package/docs/module-datarestructor.Transform.html +7 -30
- package/docs/module-datarestructor.html +100 -3
- package/docs/module-described_field.DescribedDataFieldBuilder.html +1 -1
- package/docs/module-described_field.DescribedDataFieldGroup.html +1 -1
- package/docs/module-described_field.html +1 -1
- package/docs/module-template_resolver.Resolver.html +1 -1
- package/docs/module-template_resolver.html +1 -1
- package/docs/templateResolver.js.html +1 -1
- package/package.json +16 -14
- package/renovate.json +20 -0
- package/src/js/datarestructor.js +65 -23
- package/test/js/DataRestructorUseCaseTest.js +36 -0
- package/.github/workflows/action.yaml +0 -44
|
@@ -397,7 +397,7 @@
|
|
|
397
397
|
<span class="cline-any cline-neutral"> </span>
|
|
398
398
|
<span class="cline-any cline-neutral"> </span>
|
|
399
399
|
<span class="cline-any cline-neutral"> </span>
|
|
400
|
-
<span class="cline-any cline-yes">
|
|
400
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
401
401
|
<span class="cline-any cline-neutral"> </span>
|
|
402
402
|
<span class="cline-any cline-neutral"> </span>
|
|
403
403
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -415,7 +415,7 @@
|
|
|
415
415
|
<span class="cline-any cline-neutral"> </span>
|
|
416
416
|
<span class="cline-any cline-neutral"> </span>
|
|
417
417
|
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-yes">
|
|
418
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
419
419
|
<span class="cline-any cline-yes">8x</span>
|
|
420
420
|
<span class="cline-any cline-yes">8x</span>
|
|
421
421
|
<span class="cline-any cline-yes">8x</span>
|
|
@@ -439,9 +439,9 @@
|
|
|
439
439
|
<span class="cline-any cline-neutral"> </span>
|
|
440
440
|
<span class="cline-any cline-neutral"> </span>
|
|
441
441
|
<span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-yes">
|
|
443
|
-
<span class="cline-any cline-yes">
|
|
444
|
-
<span class="cline-any cline-yes">
|
|
442
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
443
|
+
<span class="cline-any cline-yes">83005x</span>
|
|
444
|
+
<span class="cline-any cline-yes">83005x</span>
|
|
445
445
|
<span class="cline-any cline-neutral"> </span>
|
|
446
446
|
<span class="cline-any cline-neutral"> </span>
|
|
447
447
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -456,9 +456,9 @@
|
|
|
456
456
|
<span class="cline-any cline-neutral"> </span>
|
|
457
457
|
<span class="cline-any cline-neutral"> </span>
|
|
458
458
|
<span class="cline-any cline-neutral"> </span>
|
|
459
|
-
<span class="cline-any cline-yes">
|
|
460
|
-
<span class="cline-any cline-yes">
|
|
461
|
-
<span class="cline-any cline-yes">
|
|
459
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
460
|
+
<span class="cline-any cline-yes">82969x</span>
|
|
461
|
+
<span class="cline-any cline-yes">82969x</span>
|
|
462
462
|
<span class="cline-any cline-neutral"> </span>
|
|
463
463
|
<span class="cline-any cline-neutral"> </span>
|
|
464
464
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -472,9 +472,9 @@
|
|
|
472
472
|
<span class="cline-any cline-neutral"> </span>
|
|
473
473
|
<span class="cline-any cline-neutral"> </span>
|
|
474
474
|
<span class="cline-any cline-neutral"> </span>
|
|
475
|
-
<span class="cline-any cline-yes">
|
|
476
|
-
<span class="cline-any cline-yes">
|
|
477
|
-
<span class="cline-any cline-yes">
|
|
475
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
476
|
+
<span class="cline-any cline-yes">82968x</span>
|
|
477
|
+
<span class="cline-any cline-yes">82968x</span>
|
|
478
478
|
<span class="cline-any cline-neutral"> </span>
|
|
479
479
|
<span class="cline-any cline-neutral"> </span>
|
|
480
480
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -484,9 +484,9 @@
|
|
|
484
484
|
<span class="cline-any cline-neutral"> </span>
|
|
485
485
|
<span class="cline-any cline-neutral"> </span>
|
|
486
486
|
<span class="cline-any cline-neutral"> </span>
|
|
487
|
-
<span class="cline-any cline-yes">
|
|
488
|
-
<span class="cline-any cline-yes">
|
|
489
|
-
<span class="cline-any cline-yes">
|
|
487
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
488
|
+
<span class="cline-any cline-yes">82968x</span>
|
|
489
|
+
<span class="cline-any cline-yes">82968x</span>
|
|
490
490
|
<span class="cline-any cline-neutral"> </span>
|
|
491
491
|
<span class="cline-any cline-neutral"> </span>
|
|
492
492
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -497,9 +497,9 @@
|
|
|
497
497
|
<span class="cline-any cline-neutral"> </span>
|
|
498
498
|
<span class="cline-any cline-neutral"> </span>
|
|
499
499
|
<span class="cline-any cline-neutral"> </span>
|
|
500
|
-
<span class="cline-any cline-yes">
|
|
501
|
-
<span class="cline-any cline-yes">
|
|
502
|
-
<span class="cline-any cline-yes">
|
|
500
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
501
|
+
<span class="cline-any cline-yes">82969x</span>
|
|
502
|
+
<span class="cline-any cline-yes">82969x</span>
|
|
503
503
|
<span class="cline-any cline-neutral"> </span>
|
|
504
504
|
<span class="cline-any cline-neutral"> </span>
|
|
505
505
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -510,7 +510,7 @@
|
|
|
510
510
|
<span class="cline-any cline-neutral"> </span>
|
|
511
511
|
<span class="cline-any cline-neutral"> </span>
|
|
512
512
|
<span class="cline-any cline-neutral"> </span>
|
|
513
|
-
<span class="cline-any cline-yes">
|
|
513
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
514
514
|
<span class="cline-any cline-yes">11x</span>
|
|
515
515
|
<span class="cline-any cline-yes">11x</span>
|
|
516
516
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -522,9 +522,9 @@
|
|
|
522
522
|
<span class="cline-any cline-neutral"> </span>
|
|
523
523
|
<span class="cline-any cline-neutral"> </span>
|
|
524
524
|
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-yes">
|
|
526
|
-
<span class="cline-any cline-yes">
|
|
527
|
-
<span class="cline-any cline-yes">
|
|
525
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
526
|
+
<span class="cline-any cline-yes">82968x</span>
|
|
527
|
+
<span class="cline-any cline-yes">82968x</span>
|
|
528
528
|
<span class="cline-any cline-neutral"> </span>
|
|
529
529
|
<span class="cline-any cline-neutral"> </span>
|
|
530
530
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -534,9 +534,9 @@
|
|
|
534
534
|
<span class="cline-any cline-neutral"> </span>
|
|
535
535
|
<span class="cline-any cline-neutral"> </span>
|
|
536
536
|
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-yes">
|
|
538
|
-
<span class="cline-any cline-yes">
|
|
539
|
-
<span class="cline-any cline-yes">
|
|
537
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
538
|
+
<span class="cline-any cline-yes">82969x</span>
|
|
539
|
+
<span class="cline-any cline-yes">82969x</span>
|
|
540
540
|
<span class="cline-any cline-neutral"> </span>
|
|
541
541
|
<span class="cline-any cline-neutral"> </span>
|
|
542
542
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -546,9 +546,9 @@
|
|
|
546
546
|
<span class="cline-any cline-neutral"> </span>
|
|
547
547
|
<span class="cline-any cline-neutral"> </span>
|
|
548
548
|
<span class="cline-any cline-neutral"> </span>
|
|
549
|
-
<span class="cline-any cline-yes">
|
|
550
|
-
<span class="cline-any cline-yes">
|
|
551
|
-
<span class="cline-any cline-yes">
|
|
549
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
550
|
+
<span class="cline-any cline-yes">82966x</span>
|
|
551
|
+
<span class="cline-any cline-yes">82966x</span>
|
|
552
552
|
<span class="cline-any cline-neutral"> </span>
|
|
553
553
|
<span class="cline-any cline-neutral"> </span>
|
|
554
554
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -556,21 +556,21 @@
|
|
|
556
556
|
<span class="cline-any cline-neutral"> </span>
|
|
557
557
|
<span class="cline-any cline-neutral"> </span>
|
|
558
558
|
<span class="cline-any cline-neutral"> </span>
|
|
559
|
-
<span class="cline-any cline-yes">
|
|
560
|
-
<span class="cline-any cline-yes">
|
|
559
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
560
|
+
<span class="cline-any cline-yes">83032x</span>
|
|
561
561
|
<span class="cline-any cline-neutral"> </span>
|
|
562
562
|
<span class="cline-any cline-neutral"> </span>
|
|
563
563
|
<span class="cline-any cline-neutral"> </span>
|
|
564
564
|
<span class="cline-any cline-neutral"> </span>
|
|
565
|
-
<span class="cline-any cline-yes">
|
|
565
|
+
<span class="cline-any cline-yes">497847x</span>
|
|
566
566
|
<span class="cline-any cline-neutral"> </span>
|
|
567
567
|
<span class="cline-any cline-neutral"> </span>
|
|
568
568
|
<span class="cline-any cline-neutral"> </span>
|
|
569
|
-
<span class="cline-any cline-yes">
|
|
569
|
+
<span class="cline-any cline-yes">497847x</span>
|
|
570
570
|
<span class="cline-any cline-neutral"> </span>
|
|
571
571
|
<span class="cline-any cline-neutral"> </span>
|
|
572
572
|
<span class="cline-any cline-neutral"> </span>
|
|
573
|
-
<span class="cline-any cline-yes">
|
|
573
|
+
<span class="cline-any cline-yes">82980x</span>
|
|
574
574
|
<span class="cline-any cline-neutral"> </span>
|
|
575
575
|
<span class="cline-any cline-neutral"> </span>
|
|
576
576
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -597,7 +597,7 @@
|
|
|
597
597
|
<span class="cline-any cline-neutral"> </span>
|
|
598
598
|
<span class="cline-any cline-neutral"> </span>
|
|
599
599
|
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-yes">
|
|
600
|
+
<span class="cline-any cline-yes">79338x</span>
|
|
601
601
|
<span class="cline-any cline-neutral"> </span>
|
|
602
602
|
<span class="cline-any cline-neutral"> </span>
|
|
603
603
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -606,9 +606,9 @@
|
|
|
606
606
|
<span class="cline-any cline-neutral"> </span>
|
|
607
607
|
<span class="cline-any cline-neutral"> </span>
|
|
608
608
|
<span class="cline-any cline-neutral"> </span>
|
|
609
|
-
<span class="cline-any cline-yes">
|
|
610
|
-
<span class="cline-any cline-yes">
|
|
611
|
-
<span class="cline-any cline-yes">
|
|
609
|
+
<span class="cline-any cline-yes">79338x</span>
|
|
610
|
+
<span class="cline-any cline-yes">82838x</span>
|
|
611
|
+
<span class="cline-any cline-yes">82838x</span>
|
|
612
612
|
<span class="cline-any cline-neutral"> </span>
|
|
613
613
|
<span class="cline-any cline-neutral"> </span>
|
|
614
614
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -618,24 +618,24 @@
|
|
|
618
618
|
<span class="cline-any cline-neutral"> </span>
|
|
619
619
|
<span class="cline-any cline-neutral"> </span>
|
|
620
620
|
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-yes">
|
|
622
|
-
<span class="cline-any cline-yes">
|
|
621
|
+
<span class="cline-any cline-yes">79338x</span>
|
|
622
|
+
<span class="cline-any cline-yes">82843x</span>
|
|
623
623
|
<span class="cline-any cline-yes">2x</span>
|
|
624
624
|
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-yes">
|
|
625
|
+
<span class="cline-any cline-yes">82841x</span>
|
|
626
626
|
<span class="cline-any cline-yes">2x</span>
|
|
627
627
|
<span class="cline-any cline-neutral"> </span>
|
|
628
|
-
<span class="cline-any cline-yes">
|
|
629
|
-
<span class="cline-any cline-yes">
|
|
630
|
-
<span class="cline-any cline-yes">
|
|
628
|
+
<span class="cline-any cline-yes">82839x</span>
|
|
629
|
+
<span class="cline-any cline-yes">890x</span>
|
|
630
|
+
<span class="cline-any cline-yes">890x</span>
|
|
631
631
|
<span class="cline-any cline-neutral"> </span>
|
|
632
632
|
<span class="cline-any cline-neutral"> </span>
|
|
633
633
|
<span class="cline-any cline-neutral"> </span>
|
|
634
|
-
<span class="cline-any cline-yes">
|
|
635
|
-
<span class="cline-any cline-yes">
|
|
636
|
-
<span class="cline-any cline-yes">
|
|
634
|
+
<span class="cline-any cline-yes">82839x</span>
|
|
635
|
+
<span class="cline-any cline-yes">82840x</span>
|
|
636
|
+
<span class="cline-any cline-yes">82840x</span>
|
|
637
637
|
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-yes">
|
|
638
|
+
<span class="cline-any cline-yes">82839x</span>
|
|
639
639
|
<span class="cline-any cline-neutral"> </span>
|
|
640
640
|
<span class="cline-any cline-neutral"> </span>
|
|
641
641
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -940,7 +940,7 @@ described_field.DescribedDataFieldGroup = (function () {
|
|
|
940
940
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
941
941
|
Code coverage generated by
|
|
942
942
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
943
|
-
at
|
|
943
|
+
at Mon Oct 31 2022 17:00:01 GMT+0000 (Coordinated Universal Time)
|
|
944
944
|
</div>
|
|
945
945
|
</div>
|
|
946
946
|
<script src="prettify.js"></script>
|
package/coverage/index.html
CHANGED
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">98.
|
|
26
|
+
<span class="strong">98.3% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>462/470</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">94.61% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>158/167</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">98.
|
|
40
|
+
<span class="strong">98.15% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>106/108</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">98.
|
|
47
|
+
<span class="strong">98.7% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>455/461</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -74,17 +74,17 @@
|
|
|
74
74
|
</thead>
|
|
75
75
|
<tbody><tr>
|
|
76
76
|
<td class="file high" data-value="datarestructor.js"><a href="datarestructor.js.html">datarestructor.js</a></td>
|
|
77
|
-
<td data-value="
|
|
78
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
77
|
+
<td data-value="97.99" class="pic high">
|
|
78
|
+
<div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
|
|
79
79
|
</td>
|
|
80
|
-
<td data-value="
|
|
81
|
-
<td data-value="
|
|
82
|
-
<td data-value="
|
|
83
|
-
<td data-value="
|
|
84
|
-
<td data-value="98.
|
|
85
|
-
<td data-value="
|
|
86
|
-
<td data-value="98.
|
|
87
|
-
<td data-value="
|
|
80
|
+
<td data-value="97.99" class="pct high">97.99%</td>
|
|
81
|
+
<td data-value="349" class="abs high">342/349</td>
|
|
82
|
+
<td data-value="92.97" class="pct high">92.97%</td>
|
|
83
|
+
<td data-value="128" class="abs high">119/128</td>
|
|
84
|
+
<td data-value="98.68" class="pct high">98.68%</td>
|
|
85
|
+
<td data-value="76" class="abs high">75/76</td>
|
|
86
|
+
<td data-value="98.53" class="pct high">98.53%</td>
|
|
87
|
+
<td data-value="340" class="abs high">335/340</td>
|
|
88
88
|
</tr>
|
|
89
89
|
|
|
90
90
|
<tr>
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
126
126
|
Code coverage generated by
|
|
127
127
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
128
|
-
at
|
|
128
|
+
at Mon Oct 31 2022 17:00:01 GMT+0000 (Coordinated Universal Time)
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
131
131
|
<script src="prettify.js"></script>
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
<span class="cline-any cline-neutral"> </span>
|
|
261
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
262
|
<span class="cline-any cline-neutral"> </span>
|
|
263
|
-
<span class="cline-any cline-yes">
|
|
263
|
+
<span class="cline-any cline-yes">23980x</span>
|
|
264
264
|
<span class="cline-any cline-neutral"> </span>
|
|
265
265
|
<span class="cline-any cline-neutral"> </span>
|
|
266
266
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -272,7 +272,7 @@
|
|
|
272
272
|
<span class="cline-any cline-neutral"> </span>
|
|
273
273
|
<span class="cline-any cline-neutral"> </span>
|
|
274
274
|
<span class="cline-any cline-neutral"> </span>
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
275
|
+
<span class="cline-any cline-yes">23980x</span>
|
|
276
276
|
<span class="cline-any cline-yes">26x</span>
|
|
277
277
|
<span class="cline-any cline-neutral"> </span>
|
|
278
278
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -289,16 +289,16 @@
|
|
|
289
289
|
<span class="cline-any cline-neutral"> </span>
|
|
290
290
|
<span class="cline-any cline-neutral"> </span>
|
|
291
291
|
<span class="cline-any cline-neutral"> </span>
|
|
292
|
-
<span class="cline-any cline-yes">
|
|
293
|
-
<span class="cline-any cline-yes">
|
|
294
|
-
<span class="cline-any cline-yes">
|
|
295
|
-
<span class="cline-any cline-yes">
|
|
292
|
+
<span class="cline-any cline-yes">23980x</span>
|
|
293
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
294
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
295
|
+
<span class="cline-any cline-yes">3383382x</span>
|
|
296
296
|
<span class="cline-any cline-neutral"> </span>
|
|
297
297
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
298
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
299
|
+
<span class="cline-any cline-yes">215522x</span>
|
|
300
300
|
<span class="cline-any cline-neutral"> </span>
|
|
301
|
-
<span class="cline-any cline-yes">
|
|
301
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
302
302
|
<span class="cline-any cline-neutral"> </span>
|
|
303
303
|
<span class="cline-any cline-neutral"> </span>
|
|
304
304
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -308,18 +308,18 @@
|
|
|
308
308
|
<span class="cline-any cline-neutral"> </span>
|
|
309
309
|
<span class="cline-any cline-neutral"> </span>
|
|
310
310
|
<span class="cline-any cline-neutral"> </span>
|
|
311
|
-
<span class="cline-any cline-yes">
|
|
312
|
-
<span class="cline-any cline-yes">
|
|
313
|
-
<span class="cline-any cline-yes">
|
|
314
|
-
<span class="cline-any cline-yes">
|
|
315
|
-
<span class="cline-any cline-yes">
|
|
316
|
-
<span class="cline-any cline-yes">
|
|
317
|
-
<span class="cline-any cline-yes">
|
|
318
|
-
<span class="cline-any cline-yes">
|
|
319
|
-
<span class="cline-any cline-yes">
|
|
320
|
-
<span class="cline-any cline-yes">
|
|
311
|
+
<span class="cline-any cline-yes">23980x</span>
|
|
312
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
313
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
314
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
315
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
316
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
317
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
318
|
+
<span class="cline-any cline-yes">1730706x</span>
|
|
319
|
+
<span class="cline-any cline-yes">1730706x</span>
|
|
320
|
+
<span class="cline-any cline-yes">1730706x</span>
|
|
321
321
|
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-yes">
|
|
322
|
+
<span class="cline-any cline-yes">71858x</span>
|
|
323
323
|
<span class="cline-any cline-neutral"> </span>
|
|
324
324
|
<span class="cline-any cline-neutral"> </span>
|
|
325
325
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -382,13 +382,13 @@
|
|
|
382
382
|
<span class="cline-any cline-neutral"> </span>
|
|
383
383
|
<span class="cline-any cline-neutral"> </span>
|
|
384
384
|
<span class="cline-any cline-neutral"> </span>
|
|
385
|
-
<span class="cline-any cline-yes">
|
|
386
|
-
<span class="cline-any cline-yes">
|
|
387
|
-
<span class="cline-any cline-yes">
|
|
388
|
-
<span class="cline-any cline-yes">
|
|
385
|
+
<span class="cline-any cline-yes">215522x</span>
|
|
386
|
+
<span class="cline-any cline-yes">3383382x</span>
|
|
387
|
+
<span class="cline-any cline-yes">3383382x</span>
|
|
388
|
+
<span class="cline-any cline-yes">2018002x</span>
|
|
389
389
|
<span class="cline-any cline-neutral"> </span>
|
|
390
390
|
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-yes">
|
|
391
|
+
<span class="cline-any cline-yes">215522x</span>
|
|
392
392
|
<span class="cline-any cline-neutral"> </span>
|
|
393
393
|
<span class="cline-any cline-neutral"> </span>
|
|
394
394
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -568,7 +568,7 @@ template_resolver.Resolver = (function () {
|
|
|
568
568
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
569
569
|
Code coverage generated by
|
|
570
570
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
571
|
-
at
|
|
571
|
+
at Mon Oct 31 2022 17:00:01 GMT+0000 (Coordinated Universal Time)
|
|
572
572
|
</div>
|
|
573
573
|
</div>
|
|
574
574
|
<script src="prettify.js"></script>
|
|
@@ -1618,11 +1618,22 @@ datarestructor.Transform = (function () {
|
|
|
1618
1618
|
var describedEntity;
|
|
1619
1619
|
for (index = 0; index < describedEntries.length; index += 1) {
|
|
1620
1620
|
describedEntity = describedEntries[index];
|
|
1621
|
-
result.push(toDescribedField(describedEntity, 0, config));
|
|
1621
|
+
result.push(toDescribedField(describedEntity, {recursionDepth:0, config: config, groupToSkip:""}));
|
|
1622
1622
|
}
|
|
1623
1623
|
return result;
|
|
1624
1624
|
}
|
|
1625
1625
|
|
|
1626
|
+
/**
|
|
1627
|
+
* Describes the context type for the recursive DescribedDataField conversion,
|
|
1628
|
+
* that contains everything that needs to be accessible throughout recursion regardless of the
|
|
1629
|
+
* recursion depth.
|
|
1630
|
+
*
|
|
1631
|
+
* @typedef {Object} module:datarestructor.DescribedFieldRecursionContext
|
|
1632
|
+
* @param {number} recursionDepth current recursion depth
|
|
1633
|
+
* @param {String} groupToSkip name of a group to skip or "" when no group should be skipped.
|
|
1634
|
+
* @param {module:datarestructor.TransformConfig} config configuration for the data transformation
|
|
1635
|
+
*/
|
|
1636
|
+
|
|
1626
1637
|
/**
|
|
1627
1638
|
* Converts a internal described entry to a newly created public described field.
|
|
1628
1639
|
* Since the structure of a described field is hierarchical, this function is called recursively.
|
|
@@ -1630,13 +1641,12 @@ datarestructor.Transform = (function () {
|
|
|
1630
1641
|
* needs to be limited. Therefore, the current recursion depth is taken as second parameter
|
|
1631
1642
|
* and the maximum recursion depth is taken as third parameter.
|
|
1632
1643
|
* @param {module:datarestructor.DescribedEntry} entry the internal entry that will be converted
|
|
1633
|
-
* @param {
|
|
1634
|
-
* @param {module:datarestructor.TransformConfig} config configuration for the data transformation
|
|
1644
|
+
* @param {module:datarestructor.DescribedFieldRecursionContext} recursionContext context contains everything that needs to be accessible throughout the recursion.
|
|
1635
1645
|
* @returns {module:described_field.DescribedDataField}
|
|
1636
1646
|
* @protected
|
|
1637
1647
|
* @memberof module:datarestructor.Transform
|
|
1638
1648
|
*/
|
|
1639
|
-
function toDescribedField(entry,
|
|
1649
|
+
function toDescribedField(entry, recursionContext) {
|
|
1640
1650
|
var field = new described_field.DescribedDataFieldBuilder()
|
|
1641
1651
|
.category(entry.category)
|
|
1642
1652
|
.type(entry.type)
|
|
@@ -1647,37 +1657,70 @@ datarestructor.Transform = (function () {
|
|
|
1647
1657
|
.fieldName(entry.fieldName)
|
|
1648
1658
|
.value(entry.value)
|
|
1649
1659
|
.build();
|
|
1650
|
-
if (recursionDepth > config.maxRecursionDepth) {
|
|
1660
|
+
if (recursionContext.recursionDepth > recursionContext.config.maxRecursionDepth) {
|
|
1651
1661
|
return field;
|
|
1652
1662
|
}
|
|
1663
|
+
var nextRecursionContext = null;
|
|
1664
|
+
var duplicateGroupNameToSkip = "";
|
|
1653
1665
|
var fieldGroups = new described_field.DescribedDataFieldGroup(field);
|
|
1654
|
-
forEachGroupEntry(entry, function (groupName, groupEntry) {
|
|
1655
|
-
if (
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
if (config.debugMode) {
|
|
1659
|
-
console.log(
|
|
1660
|
-
"Removed duplicate field " +
|
|
1661
|
-
groupEntry.fieldName +
|
|
1662
|
-
" with value " +
|
|
1663
|
-
groupEntry.value +
|
|
1664
|
-
" of group " +
|
|
1665
|
-
groupName +
|
|
1666
|
-
" at recursion depth " +
|
|
1667
|
-
recursionDepth
|
|
1668
|
-
);
|
|
1666
|
+
forEachGroupEntry(entry, function (groupName, groupEntry, allGroupEntries) {
|
|
1667
|
+
if (recursionContext.groupToSkip === groupName) {
|
|
1668
|
+
if (recursionContext.config.debugMode) {
|
|
1669
|
+
console.log("Removed duplicate group " + groupName + " at recursion depth " + recursionContext.recursionDepth);
|
|
1669
1670
|
}
|
|
1671
|
+
return;
|
|
1672
|
+
}
|
|
1673
|
+
duplicateGroupNameToSkip = "";
|
|
1674
|
+
if (recursionContext.recursionDepth >= recursionContext.config.removeDuplicationAboveRecursionDepth) {
|
|
1675
|
+
duplicateGroupNameToSkip = arraysEqual(groupEntry[groupName], allGroupEntries, describedFieldEqual)? groupName : "";
|
|
1670
1676
|
}
|
|
1677
|
+
nextRecursionContext = {recursionDepth: recursionContext.recursionDepth + 1, config: recursionContext.config, groupToSkip: duplicateGroupNameToSkip};
|
|
1678
|
+
fieldGroups.addGroupEntry(groupName, toDescribedField(groupEntry, nextRecursionContext));
|
|
1671
1679
|
});
|
|
1672
1680
|
return field;
|
|
1673
1681
|
}
|
|
1674
1682
|
|
|
1683
|
+
function describedFieldEqual(a, b) {
|
|
1684
|
+
return (
|
|
1685
|
+
defaultEmpty(a.category) === defaultEmpty(b.category) &&
|
|
1686
|
+
defaultEmpty(a.type) === defaultEmpty(b.type) &&
|
|
1687
|
+
a.fieldName === b.fieldName &&
|
|
1688
|
+
a.value === b.value
|
|
1689
|
+
);
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
function defaultEmpty(value) {
|
|
1693
|
+
return defaultValue(value, "");
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
function defaultValue(value, valueAsDefault) {
|
|
1697
|
+
if (typeof value === "undefined" || !value) {
|
|
1698
|
+
return valueAsDefault;
|
|
1699
|
+
}
|
|
1700
|
+
return value;
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
// Reference: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript/16430730
|
|
1704
|
+
// Added "elementEqualFunction" to implement equal object detection.
|
|
1705
|
+
// Arrays are assumed to be sorted. Differently ordered entries are treated as not equal.
|
|
1706
|
+
function arraysEqual(a, b, elementEqualFunction) {
|
|
1707
|
+
if (a === b) return true;
|
|
1708
|
+
if (a == null || b == null) return false;
|
|
1709
|
+
if (a.length !== b.length) return false;
|
|
1710
|
+
|
|
1711
|
+
for (var i = 0; i < a.length; ++i) {
|
|
1712
|
+
if (!elementEqualFunction(a[i], b[i])) return false;
|
|
1713
|
+
}
|
|
1714
|
+
return true;
|
|
1715
|
+
}
|
|
1716
|
+
|
|
1675
1717
|
/**
|
|
1676
1718
|
* Takes the full qualified original property name and extracts a simple name out of it.
|
|
1677
1719
|
*
|
|
1678
1720
|
* @callback module:datarestructor.onEntryFoundFunction
|
|
1679
1721
|
* @param {string} groupName name of the group where the entry had been found.
|
|
1680
1722
|
* @param {module:datarestructor.DescribedEntry} foundEntry the found entry itself.
|
|
1723
|
+
* @param {module:datarestructor.DescribedEntry[]} allEntries the array of all entries where the found entry is an element of.
|
|
1681
1724
|
*/
|
|
1682
1725
|
|
|
1683
1726
|
/**
|
|
@@ -1695,13 +1738,12 @@ datarestructor.Transform = (function () {
|
|
|
1695
1738
|
groupName = rootEntry.groupNames[groupIndex];
|
|
1696
1739
|
for (entryIndex = 0; entryIndex < rootEntry[groupName].length; entryIndex += 1) {
|
|
1697
1740
|
entry = rootEntry[groupName][entryIndex];
|
|
1698
|
-
onFoundEntry(groupName, entry);
|
|
1741
|
+
onFoundEntry(groupName, entry, rootEntry[groupName]);
|
|
1699
1742
|
}
|
|
1700
1743
|
}
|
|
1701
1744
|
}
|
|
1702
|
-
|
|
1703
1745
|
return Transform;
|
|
1704
|
-
}
|
|
1746
|
+
}());
|
|
1705
1747
|
|
|
1706
1748
|
/**
|
|
1707
1749
|
* Main fassade for the data restructor as static function(s).
|