@featurevisor/core 1.10.0 → 1.11.1

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 (46) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +22 -0
  3. package/coverage/clover.xml +33 -5
  4. package/coverage/coverage-final.json +2 -0
  5. package/coverage/lcov-report/index.html +26 -26
  6. package/coverage/lcov-report/lib/builder/allocator.js.html +1 -1
  7. package/coverage/lcov-report/lib/builder/index.html +23 -8
  8. package/coverage/lcov-report/lib/builder/revision.js.html +151 -0
  9. package/coverage/lcov-report/lib/builder/traffic.js.html +1 -1
  10. package/coverage/lcov-report/lib/tester/checkIfObjectsAreEqual.js.html +1 -1
  11. package/coverage/lcov-report/lib/tester/index.html +1 -1
  12. package/coverage/lcov-report/lib/tester/matrix.js.html +1 -1
  13. package/coverage/lcov-report/src/builder/allocator.ts.html +1 -1
  14. package/coverage/lcov-report/src/builder/index.html +23 -8
  15. package/coverage/lcov-report/src/builder/revision.ts.html +151 -0
  16. package/coverage/lcov-report/src/builder/traffic.ts.html +1 -1
  17. package/coverage/lcov-report/src/tester/checkIfObjectsAreEqual.ts.html +1 -1
  18. package/coverage/lcov-report/src/tester/index.html +1 -1
  19. package/coverage/lcov-report/src/tester/matrix.ts.html +1 -1
  20. package/coverage/lcov.info +57 -0
  21. package/lib/builder/buildProject.js +34 -23
  22. package/lib/builder/buildProject.js.map +1 -1
  23. package/lib/builder/revision.d.ts +1 -0
  24. package/lib/builder/revision.js +23 -0
  25. package/lib/builder/revision.js.map +1 -0
  26. package/lib/builder/revision.spec.d.ts +1 -0
  27. package/lib/builder/revision.spec.js +21 -0
  28. package/lib/builder/revision.spec.js.map +1 -0
  29. package/lib/datasource/adapter.d.ts +2 -0
  30. package/lib/datasource/adapter.js.map +1 -1
  31. package/lib/datasource/datasource.d.ts +5 -0
  32. package/lib/datasource/datasource.js +9 -0
  33. package/lib/datasource/datasource.js.map +1 -1
  34. package/lib/datasource/filesystemAdapter.d.ts +6 -0
  35. package/lib/datasource/filesystemAdapter.js +45 -1
  36. package/lib/datasource/filesystemAdapter.js.map +1 -1
  37. package/lib/tester/testSegment.js +3 -2
  38. package/lib/tester/testSegment.js.map +1 -1
  39. package/package.json +3 -3
  40. package/src/builder/buildProject.ts +13 -5
  41. package/src/builder/revision.spec.ts +22 -0
  42. package/src/builder/revision.ts +22 -0
  43. package/src/datasource/adapter.ts +4 -0
  44. package/src/datasource/datasource.ts +11 -0
  45. package/src/datasource/filesystemAdapter.ts +39 -0
  46. package/src/tester/testSegment.ts +3 -2
@@ -0,0 +1,151 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for lib/builder/revision.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">lib/builder</a> revision.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">91.66% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>11/12</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">87.5% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>7/8</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">91.66% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>11/12</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-yes">1x</span>
90
+ <span class="cline-any cline-yes">1x</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-neutral">&nbsp;</span>
93
+ <span class="cline-any cline-yes">7x</span>
94
+ <span class="cline-any cline-yes">2x</span>
95
+ <span class="cline-any cline-neutral">&nbsp;</span>
96
+ <span class="cline-any cline-neutral">&nbsp;</span>
97
+ <span class="cline-any cline-yes">5x</span>
98
+ <span class="cline-any cline-yes">2x</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-yes">3x</span>
102
+ <span class="cline-any cline-yes">3x</span>
103
+ <span class="cline-any cline-yes">3x</span>
104
+ <span class="cline-any cline-yes">3x</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-no">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-yes">1x</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">"use strict";
111
+ Object.defineProperty(exports, "__esModule", { value: true });
112
+ exports.getNextRevision = void 0;
113
+ function getNextRevision(currentRevision) {
114
+ // If the string is empty or can't be parsed with parseInt(), return "1".
115
+ if (!currentRevision || isNaN(parseInt(currentRevision, 10))) {
116
+ return "1";
117
+ }
118
+ // If the string is like an integer, increment it by 1 and return the value.
119
+ if (currentRevision.indexOf(".") === -1) {
120
+ return (parseInt(currentRevision, 10) + 1).toString();
121
+ }
122
+ // If the string is a semver, parse the patch version out of it, increment it by one and return it.
123
+ var parts = currentRevision.split(".");
124
+ var lastPart = parseInt(parts[parts.length - 1], 10);
125
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!isNaN(lastPart)) {
126
+ return (lastPart + 1).toString();
127
+ }
128
+ // If the string can't be parsed as a semver, return "1".
129
+ <span class="cstat-no" title="statement not covered" > return "1";</span>
130
+ }
131
+ exports.getNextRevision = getNextRevision;
132
+ //# sourceMappingURL=revision.js.map</pre></td></tr></table></pre>
133
+
134
+ <div class='push'></div><!-- for sticky footer -->
135
+ </div><!-- /wrapper -->
136
+ <div class='footer quiet pad2 space-top1 center small'>
137
+ Code coverage generated by
138
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
+ at 2024-03-14T17:04:53.098Z
140
+ </div>
141
+ <script src="../../prettify.js"></script>
142
+ <script>
143
+ window.onload = function () {
144
+ prettyPrint();
145
+ };
146
+ </script>
147
+ <script src="../../sorter.js"></script>
148
+ <script src="../../block-navigation.js"></script>
149
+ </body>
150
+ </html>
151
+
@@ -460,7 +460,7 @@ exports.getTraffic = getTraffic;
460
460
  <div class='footer quiet pad2 space-top1 center small'>
461
461
  Code coverage generated by
462
462
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
463
- at 2024-03-10T17:56:02.190Z
463
+ at 2024-03-14T17:04:53.098Z
464
464
  </div>
465
465
  <script src="../../prettify.js"></script>
466
466
  <script>
@@ -139,7 +139,7 @@ exports.checkIfObjectsAreEqual = checkIfObjectsAreEqual;
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
142
- at 2024-03-10T17:56:02.190Z
142
+ at 2024-03-14T17:04:53.098Z
143
143
  </div>
144
144
  <script src="../../prettify.js"></script>
145
145
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2024-03-10T17:56:02.190Z
119
+ at 2024-03-14T17:04:53.098Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -472,7 +472,7 @@ exports.getSegmentAssertionsFromMatrix = getSegmentAssertionsFromMatrix;
472
472
  <div class='footer quiet pad2 space-top1 center small'>
473
473
  Code coverage generated by
474
474
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
475
- at 2024-03-10T17:56:02.190Z
475
+ at 2024-03-14T17:04:53.098Z
476
476
  </div>
477
477
  <script src="../../prettify.js"></script>
478
478
  <script>
@@ -193,7 +193,7 @@ export function getUpdatedAvailableRangesAfterFilling(
193
193
  <div class='footer quiet pad2 space-top1 center small'>
194
194
  Code coverage generated by
195
195
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
196
- at 2024-03-10T17:56:02.190Z
196
+ at 2024-03-14T17:04:53.098Z
197
197
  </div>
198
198
  <script src="../../prettify.js"></script>
199
199
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.18% </span>
26
+ <span class="strong">93.75% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>81/86</span>
28
+ <span class='fraction'>90/96</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.92% </span>
33
+ <span class="strong">84.78% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>34/41</span>
35
+ <span class='fraction'>39/46</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>14/14</span>
42
+ <span class='fraction'>15/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.11% </span>
47
+ <span class="strong">93.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>80/85</span>
49
+ <span class='fraction'>89/95</span>
50
50
  </div>
51
51
 
52
52
 
@@ -93,6 +93,21 @@
93
93
  <td data-value="25" class="abs high">25/25</td>
94
94
  </tr>
95
95
 
96
+ <tr>
97
+ <td class="file high" data-value="revision.ts"><a href="revision.ts.html">revision.ts</a></td>
98
+ <td data-value="90" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
100
+ </td>
101
+ <td data-value="90" class="pct high">90%</td>
102
+ <td data-value="10" class="abs high">9/10</td>
103
+ <td data-value="100" class="pct high">100%</td>
104
+ <td data-value="5" class="abs high">5/5</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="1" class="abs high">1/1</td>
107
+ <td data-value="90" class="pct high">90%</td>
108
+ <td data-value="10" class="abs high">9/10</td>
109
+ </tr>
110
+
96
111
  <tr>
97
112
  <td class="file high" data-value="traffic.ts"><a href="traffic.ts.html">traffic.ts</a></td>
98
113
  <td data-value="91.8" class="pic high">
@@ -116,7 +131,7 @@
116
131
  <div class='footer quiet pad2 space-top1 center small'>
117
132
  Code coverage generated by
118
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2024-03-10T17:56:02.190Z
134
+ at 2024-03-14T17:04:53.098Z
120
135
  </div>
121
136
  <script src="../../prettify.js"></script>
122
137
  <script>
@@ -0,0 +1,151 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/builder/revision.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/builder</a> revision.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">90% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>9/10</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>5/5</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">90% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>9/10</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
89
+ <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-yes">7x</span>
91
+ <span class="cline-any cline-yes">2x</span>
92
+ <span class="cline-any cline-neutral">&nbsp;</span>
93
+ <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span>
95
+ <span class="cline-any cline-yes">5x</span>
96
+ <span class="cline-any cline-yes">2x</span>
97
+ <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-neutral">&nbsp;</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-yes">3x</span>
101
+ <span class="cline-any cline-yes">3x</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-yes">3x</span>
104
+ <span class="cline-any cline-yes">3x</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-no">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export function getNextRevision(currentRevision: string) {
111
+ // If the string is empty or can't be parsed with parseInt(), return "1".
112
+ if (!currentRevision || isNaN(parseInt(currentRevision, 10))) {
113
+ return "1";
114
+ }
115
+ &nbsp;
116
+ // If the string is like an integer, increment it by 1 and return the value.
117
+ if (currentRevision.indexOf(".") === -1) {
118
+ return (parseInt(currentRevision, 10) + 1).toString();
119
+ }
120
+ &nbsp;
121
+ // If the string is a semver, parse the patch version out of it, increment it by one and return it.
122
+ const parts = currentRevision.split(".");
123
+ const lastPart = parseInt(parts[parts.length - 1], 10);
124
+ &nbsp;
125
+ if (!isNaN(lastPart)) {
126
+ return (lastPart + 1).toString();
127
+ }
128
+ &nbsp;
129
+ // If the string can't be parsed as a semver, return "1".
130
+ <span class="cstat-no" title="statement not covered" > return "1";</span>
131
+ }
132
+ &nbsp;</pre></td></tr></table></pre>
133
+
134
+ <div class='push'></div><!-- for sticky footer -->
135
+ </div><!-- /wrapper -->
136
+ <div class='footer quiet pad2 space-top1 center small'>
137
+ Code coverage generated by
138
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
+ at 2024-03-14T17:04:53.098Z
140
+ </div>
141
+ <script src="../../prettify.js"></script>
142
+ <script>
143
+ window.onload = function () {
144
+ prettyPrint();
145
+ };
146
+ </script>
147
+ <script src="../../sorter.js"></script>
148
+ <script src="../../block-navigation.js"></script>
149
+ </body>
150
+ </html>
151
+
@@ -574,7 +574,7 @@ export function getTraffic(
574
574
  <div class='footer quiet pad2 space-top1 center small'>
575
575
  Code coverage generated by
576
576
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
577
- at 2024-03-10T17:56:02.190Z
577
+ at 2024-03-14T17:04:53.098Z
578
578
  </div>
579
579
  <script src="../../prettify.js"></script>
580
580
  <script>
@@ -142,7 +142,7 @@
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at 2024-03-10T17:56:02.190Z
145
+ at 2024-03-14T17:04:53.098Z
146
146
  </div>
147
147
  <script src="../../prettify.js"></script>
148
148
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2024-03-10T17:56:02.190Z
119
+ at 2024-03-14T17:04:53.098Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -625,7 +625,7 @@ export function <span class="fstat-no" title="function not covered" >getSegmentA
625
625
  <div class='footer quiet pad2 space-top1 center small'>
626
626
  Code coverage generated by
627
627
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
628
- at 2024-03-10T17:56:02.190Z
628
+ at 2024-03-14T17:04:53.098Z
629
629
  </div>
630
630
  <script src="../../prettify.js"></script>
631
631
  <script>
@@ -45,6 +45,37 @@ BRF:6
45
45
  BRH:6
46
46
  end_of_record
47
47
  TN:
48
+ SF:lib/builder/revision.js
49
+ FN:4,getNextRevision
50
+ FNF:1
51
+ FNH:1
52
+ FNDA:7,getNextRevision
53
+ DA:2,1
54
+ DA:3,1
55
+ DA:6,7
56
+ DA:7,2
57
+ DA:10,5
58
+ DA:11,2
59
+ DA:14,3
60
+ DA:15,3
61
+ DA:16,3
62
+ DA:17,3
63
+ DA:20,0
64
+ DA:22,1
65
+ LF:12
66
+ LH:11
67
+ BRDA:6,0,0,2
68
+ BRDA:6,0,1,5
69
+ BRDA:6,1,0,7
70
+ BRDA:6,1,1,6
71
+ BRDA:10,2,0,2
72
+ BRDA:10,2,1,3
73
+ BRDA:16,3,0,3
74
+ BRDA:16,3,1,0
75
+ BRF:8
76
+ BRH:7
77
+ end_of_record
78
+ TN:
48
79
  SF:lib/builder/traffic.js
49
80
  FN:6,detectIfVariationsChanged
50
81
  FN:18,(anonymous_1)
@@ -425,6 +456,32 @@ BRF:5
425
456
  BRH:5
426
457
  end_of_record
427
458
  TN:
459
+ SF:src/builder/revision.ts
460
+ FN:1,getNextRevision
461
+ FNF:1
462
+ FNH:1
463
+ FNDA:7,getNextRevision
464
+ DA:1,1
465
+ DA:3,7
466
+ DA:4,2
467
+ DA:8,5
468
+ DA:9,2
469
+ DA:13,3
470
+ DA:14,3
471
+ DA:16,3
472
+ DA:17,3
473
+ DA:21,0
474
+ LF:10
475
+ LH:9
476
+ BRDA:3,0,0,2
477
+ BRDA:3,1,0,7
478
+ BRDA:3,1,1,6
479
+ BRDA:8,2,0,2
480
+ BRDA:16,3,0,3
481
+ BRF:5
482
+ BRH:5
483
+ end_of_record
484
+ TN:
428
485
  SF:src/builder/traffic.ts
429
486
  FN:6,detectIfVariationsChanged
430
487
  FN:22,(anonymous_1)
@@ -37,17 +37,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.buildProject = void 0;
40
- var path = require("path");
41
40
  var config_1 = require("../config");
41
+ var revision_1 = require("./revision");
42
42
  var buildDatafile_1 = require("./buildDatafile");
43
43
  function buildProject(deps, cliOptions) {
44
44
  if (cliOptions === void 0) { cliOptions = {}; }
45
45
  return __awaiter(this, void 0, void 0, function () {
46
- var rootDirectoryPath, projectConfig, datasource, datafileContent, tags, environments, pkg, _i, environments_1, environment, existingState, _a, tags_1, tag, datafileContent;
46
+ var projectConfig, datasource, datafileContent, tags, environments, currentRevision, nextRevision, _i, environments_1, environment, existingState, _a, tags_1, tag, datafileContent;
47
47
  return __generator(this, function (_b) {
48
48
  switch (_b.label) {
49
49
  case 0:
50
- rootDirectoryPath = deps.rootDirectoryPath, projectConfig = deps.projectConfig, datasource = deps.datasource;
50
+ projectConfig = deps.projectConfig, datasource = deps.datasource;
51
51
  if (!(cliOptions.environment && cliOptions.print)) return [3 /*break*/, 2];
52
52
  return [4 /*yield*/, (0, buildDatafile_1.getCustomDatafile)({
53
53
  featureKey: cliOptions.feature,
@@ -68,53 +68,64 @@ function buildProject(deps, cliOptions) {
68
68
  case 2:
69
69
  tags = projectConfig.tags;
70
70
  environments = projectConfig.environments;
71
- pkg = require(path.join(rootDirectoryPath, "package.json"));
72
- _i = 0, environments_1 = environments;
73
- _b.label = 3;
71
+ return [4 /*yield*/, datasource.readRevision()];
74
72
  case 3:
75
- if (!(_i < environments_1.length)) return [3 /*break*/, 12];
73
+ currentRevision = _b.sent();
74
+ console.log("\nCurrent revision:", currentRevision);
75
+ nextRevision = (cliOptions.revision && cliOptions.revision.toString()) || (0, revision_1.getNextRevision)(currentRevision);
76
+ _i = 0, environments_1 = environments;
77
+ _b.label = 4;
78
+ case 4:
79
+ if (!(_i < environments_1.length)) return [3 /*break*/, 14];
76
80
  environment = environments_1[_i];
77
81
  console.log("\nBuilding datafiles for environment: ".concat(environment));
78
82
  return [4 /*yield*/, datasource.readState(environment)];
79
- case 4:
83
+ case 5:
80
84
  existingState = _b.sent();
81
85
  _a = 0, tags_1 = tags;
82
- _b.label = 5;
83
- case 5:
84
- if (!(_a < tags_1.length)) return [3 /*break*/, 9];
86
+ _b.label = 6;
87
+ case 6:
88
+ if (!(_a < tags_1.length)) return [3 /*break*/, 10];
85
89
  tag = tags_1[_a];
86
90
  console.log("\n => Tag: ".concat(tag));
87
91
  return [4 /*yield*/, (0, buildDatafile_1.buildDatafile)(projectConfig, datasource, {
88
92
  schemaVersion: config_1.SCHEMA_VERSION,
89
- revision: cliOptions.revision || pkg.version,
93
+ revision: nextRevision,
90
94
  environment: environment,
91
95
  tag: tag,
92
96
  }, existingState)];
93
- case 6:
97
+ case 7:
94
98
  datafileContent = _b.sent();
95
99
  // write datafile for environment/tag
96
100
  return [4 /*yield*/, datasource.writeDatafile(datafileContent, {
97
101
  environment: environment,
98
102
  tag: tag,
99
103
  })];
100
- case 7:
104
+ case 8:
101
105
  // write datafile for environment/tag
102
106
  _b.sent();
103
- _b.label = 8;
104
- case 8:
107
+ _b.label = 9;
108
+ case 9:
105
109
  _a++;
106
- return [3 /*break*/, 5];
107
- case 9:
110
+ return [3 /*break*/, 6];
111
+ case 10:
108
112
  // write state for environment
109
113
  return [4 /*yield*/, datasource.writeState(environment, existingState)];
110
- case 10:
114
+ case 11:
111
115
  // write state for environment
112
116
  _b.sent();
113
- _b.label = 11;
114
- case 11:
117
+ // write revision
118
+ return [4 /*yield*/, datasource.writeRevision(nextRevision)];
119
+ case 12:
120
+ // write revision
121
+ _b.sent();
122
+ _b.label = 13;
123
+ case 13:
115
124
  _i++;
116
- return [3 /*break*/, 3];
117
- case 12: return [2 /*return*/];
125
+ return [3 /*break*/, 4];
126
+ case 14:
127
+ console.log("\nLatest revision:", nextRevision);
128
+ return [2 /*return*/];
118
129
  }
119
130
  });
120
131
  });