@peter.naydenov/fsm 2.2.4 → 4.0.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 (52) hide show
  1. package/.nyc_output/a30c62b8-a571-43ac-a0aa-a56520c8ba67.json +1 -0
  2. package/.nyc_output/processinfo/a30c62b8-a571-43ac-a0aa-a56520c8ba67.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/README.md +22 -2
  5. package/coverage/lcov-report/block-navigation.js +8 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +33 -28
  8. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  9. package/coverage/lcov-report/sorter.js +26 -0
  10. package/coverage/lcov-report/src/index.html +20 -15
  11. package/coverage/lcov-report/src/index.js.html +49 -41
  12. package/coverage/lcov-report/src/methods/_getChain.js.html +18 -13
  13. package/coverage/lcov-report/src/methods/_onUpdateTask.js.html +24 -19
  14. package/coverage/lcov-report/src/methods/_setTransitions.js.html +39 -34
  15. package/coverage/lcov-report/src/methods/_transit.js.html +22 -20
  16. package/coverage/lcov-report/src/methods/_triggerCacheUpdate.js.html +21 -16
  17. package/coverage/lcov-report/src/methods/_updateStep.js.html +51 -46
  18. package/coverage/lcov-report/src/methods/_warn.js.html +37 -26
  19. package/coverage/lcov-report/src/methods/exportState.js.html +24 -22
  20. package/coverage/lcov-report/src/methods/getState.js.html +18 -13
  21. package/coverage/lcov-report/src/methods/ignoreCacheUpdates.js.html +19 -14
  22. package/coverage/lcov-report/src/methods/importState.js.html +23 -21
  23. package/coverage/lcov-report/src/methods/index.html +109 -104
  24. package/coverage/lcov-report/src/methods/index.js.html +53 -57
  25. package/coverage/lcov-report/src/methods/off.js.html +25 -20
  26. package/coverage/lcov-report/src/methods/on.js.html +21 -16
  27. package/coverage/lcov-report/src/methods/reset.js.html +18 -16
  28. package/coverage/lcov-report/src/methods/setDependencies.js.html +20 -12
  29. package/coverage/lcov-report/src/methods/update.js.html +22 -17
  30. package/coverage/lcov.info +396 -223
  31. package/coverage/tmp/coverage-25644-1668538233889-0.json +1 -0
  32. package/package.json +8 -8
  33. package/src/index.js +12 -11
  34. package/src/methods/_getChain.js +1 -1
  35. package/src/methods/_onUpdateTask.js +1 -1
  36. package/src/methods/_setTransitions.js +1 -1
  37. package/src/methods/_transit.js +2 -3
  38. package/src/methods/_triggerCacheUpdate.js +1 -1
  39. package/src/methods/_updateStep.js +1 -1
  40. package/src/methods/_warn.js +7 -5
  41. package/src/methods/exportState.js +2 -3
  42. package/src/methods/getState.js +1 -1
  43. package/src/methods/ignoreCacheUpdates.js +1 -1
  44. package/src/methods/importState.js +2 -3
  45. package/src/methods/index.js +17 -20
  46. package/src/methods/off.js +1 -1
  47. package/src/methods/on.js +1 -1
  48. package/src/methods/reset.js +2 -3
  49. package/src/methods/setDependencies.js +2 -1
  50. package/src/methods/update.js +1 -1
  51. package/.nyc_output/86959cba-5ea6-46d1-a68b-aa782a39cf80.json +0 -1
  52. package/.nyc_output/processinfo/86959cba-5ea6-46d1-a68b-aa782a39cf80.json +0 -1
@@ -0,0 +1 @@
1
+ {"parent":null,"pid":25560,"argv":["/usr/local/bin/node","/Users/peternaydenov/Sites/git-fsm/node_modules/.bin/mocha","test"],"execArgv":[],"cwd":"/Users/peternaydenov/Sites/git-fsm","time":1668538171023,"ppid":25559,"coverageFilename":"/Users/peternaydenov/Sites/git-fsm/.nyc_output/a30c62b8-a571-43ac-a0aa-a56520c8ba67.json","externalId":"","uuid":"a30c62b8-a571-43ac-a0aa-a56520c8ba67","files":[]}
@@ -1 +1 @@
1
- {"processes":{"86959cba-5ea6-46d1-a68b-aa782a39cf80":{"parent":null,"children":[]}},"files":{"/Users/peternaydenov/Sites/git-fsm/src/index.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/index.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/_setTransitions.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/_updateStep.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/_warn.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/_transit.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/_getChain.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/_triggerCacheUpdate.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/_onUpdateTask.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/setDependencies.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/on.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/off.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/importState.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/exportState.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/update.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/reset.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/ignoreCacheUpdates.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"],"/Users/peternaydenov/Sites/git-fsm/src/methods/getState.js":["86959cba-5ea6-46d1-a68b-aa782a39cf80"]},"externalIds":{}}
1
+ {"processes":{"a30c62b8-a571-43ac-a0aa-a56520c8ba67":{"parent":null,"children":[]}},"files":{},"externalIds":{}}
package/README.md CHANGED
@@ -54,12 +54,15 @@ npm i @peter.naydenov/fsm
54
54
  Add in your script:
55
55
 
56
56
  ```js
57
- const Fsm = require ( '@peter.naydenov/fsm' )
57
+ import Fsm from '@peter.naydenov/fsm'
58
58
  // init new fsm:
59
59
  const fsm = new Fsm ( machine, lib )
60
60
  ```
61
61
  ... where **machine** is fsm-description and **lib** is a transition-library.
62
62
 
63
+ If your project is commonJS, use a dynamic `import` function or use version v.3.0.0 or older.
64
+
65
+
63
66
 
64
67
  ## Fsm Description
65
68
  Fsm description is an object that define fsm business logic. Every fsm description should contain **init** and **table** properties.:
@@ -407,15 +410,32 @@ So... about changes:
407
410
 
408
411
  ## Release History
409
412
 
413
+
414
+
415
+ ### 4.0.0 (2022-11-15)
416
+ - [x] The library become a ES module;
417
+
418
+
419
+
420
+ ### 3.0.0 (2022-10-14)
421
+ - [x] Dependency "@peter.naydenov/walk" was upgraded to version 3.0.0;
422
+
423
+
424
+
410
425
  ### 2.2.4 ( 2022-05-27 )
411
- - [x] New dependency was added - walk ("@peter.naydenov/walk")
426
+ - [x] New dependency was added - walk ("@peter.naydenov/walk");
412
427
  - [x] "Walk" is loaded by default in fsm dependency object;
413
428
  - [x] "Ask-for-promise" is loaded by default in fsm dependency object;
414
429
  - [x] Deep copy for stateData on each update with "walk" library;
415
430
 
431
+
432
+
416
433
  ### 2.2.3 ( 2021-04-02 )
417
434
  - [x] Fix: Duplicated update callback if logic contain a chainAction;
418
435
 
436
+
437
+
438
+
419
439
  ### 2.2.2 ( 2021-03-26 )
420
440
  - [x] Internal code refactoring;
421
441
  - [ ] Bug: Duplicated update callback if logic contain a chainAction;
@@ -63,6 +63,14 @@ var jumpToCode = (function init() {
63
63
  }
64
64
 
65
65
  return function jump(event) {
66
+ if (
67
+ document.getElementById('fileSearch') === document.activeElement &&
68
+ document.activeElement != null
69
+ ) {
70
+ // if we're currently focused on the search input, we don't want to navigate
71
+ return;
72
+ }
73
+
66
74
  switch (event.which) {
67
75
  case 78: // n
68
76
  case 74: // j
Binary file
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.65% </span>
26
+ <span class="strong">96.67% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>177/189</span>
28
+ <span class='fraction'>349/361</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.39% </span>
33
+ <span class="strong">96.73% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>41/51</span>
35
+ <span class='fraction'>89/92</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>46/50</span>
42
+ <span class='fraction'>20/20</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.86% </span>
47
+ <span class="strong">96.67% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>162/169</span>
49
+ <span class='fraction'>349/361</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <div class="pad1">
@@ -74,32 +80,32 @@
74
80
  </thead>
75
81
  <tbody><tr>
76
82
  <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
77
- <td data-value="95.65" class="pic high">
78
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
85
  </td>
80
- <td data-value="95.65" class="pct high">95.65%</td>
81
- <td data-value="23" class="abs high">22/23</td>
82
- <td data-value="85.71" class="pct high">85.71%</td>
83
- <td data-value="7" class="abs high">6/7</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="41" class="abs high">41/41</td>
88
+ <td data-value="83.33" class="pct high">83.33%</td>
89
+ <td data-value="6" class="abs high">5/6</td>
84
90
  <td data-value="100" class="pct high">100%</td>
85
91
  <td data-value="2" class="abs high">2/2</td>
86
92
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="21" class="abs high">21/21</td>
93
+ <td data-value="41" class="abs high">41/41</td>
88
94
  </tr>
89
95
 
90
96
  <tr>
91
97
  <td class="file high" data-value="src/methods"><a href="src/methods/index.html">src/methods</a></td>
92
- <td data-value="93.37" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
98
+ <td data-value="96.25" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
94
100
  </td>
95
- <td data-value="93.37" class="pct high">93.37%</td>
96
- <td data-value="166" class="abs high">155/166</td>
97
- <td data-value="79.55" class="pct medium">79.55%</td>
98
- <td data-value="44" class="abs medium">35/44</td>
99
- <td data-value="91.67" class="pct high">91.67%</td>
100
- <td data-value="48" class="abs high">44/48</td>
101
- <td data-value="95.27" class="pct high">95.27%</td>
102
- <td data-value="148" class="abs high">141/148</td>
101
+ <td data-value="96.25" class="pct high">96.25%</td>
102
+ <td data-value="320" class="abs high">308/320</td>
103
+ <td data-value="97.67" class="pct high">97.67%</td>
104
+ <td data-value="86" class="abs high">84/86</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="18" class="abs high">18/18</td>
107
+ <td data-value="96.25" class="pct high">96.25%</td>
108
+ <td data-value="320" class="abs high">308/320</td>
103
109
  </tr>
104
110
 
105
111
  </tbody>
@@ -109,10 +115,9 @@
109
115
  </div><!-- /wrapper -->
110
116
  <div class='footer quiet pad2 space-top1 center small'>
111
117
  Code coverage generated by
112
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
113
- at Fri May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
118
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
+ at 2022-11-15T18:50:33.953Z
114
120
  </div>
115
- </div>
116
121
  <script src="prettify.js"></script>
117
122
  <script>
118
123
  window.onload = function () {
@@ -24,6 +24,31 @@ var addSorting = (function() {
24
24
  return getTableHeader().querySelectorAll('th')[n];
25
25
  }
26
26
 
27
+ function onFilterInput() {
28
+ const searchValue = document.getElementById('fileSearch').value;
29
+ const rows = document.getElementsByTagName('tbody')[0].children;
30
+ for (let i = 0; i < rows.length; i++) {
31
+ const row = rows[i];
32
+ if (
33
+ row.textContent
34
+ .toLowerCase()
35
+ .includes(searchValue.toLowerCase())
36
+ ) {
37
+ row.style.display = '';
38
+ } else {
39
+ row.style.display = 'none';
40
+ }
41
+ }
42
+ }
43
+
44
+ // loads the search box
45
+ function addSearchBox() {
46
+ var template = document.getElementById('filterTemplate');
47
+ var templateClone = template.content.cloneNode(true);
48
+ templateClone.getElementById('fileSearch').oninput = onFilterInput;
49
+ template.parentElement.appendChild(templateClone);
50
+ }
51
+
27
52
  // loads all columns
28
53
  function loadColumns() {
29
54
  var colNodes = getTableHeader().querySelectorAll('th'),
@@ -162,6 +187,7 @@ var addSorting = (function() {
162
187
  }
163
188
  cols = loadColumns();
164
189
  loadData();
190
+ addSearchBox();
165
191
  addSortIndicators();
166
192
  enableUI();
167
193
  };
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.65% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>22/23</span>
28
+ <span class='fraction'>41/41</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">85.71% </span>
33
+ <span class="strong">83.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>6/7</span>
35
+ <span class='fraction'>5/6</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>21/21</span>
49
+ <span class='fraction'>41/41</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <div class="pad1">
@@ -74,17 +80,17 @@
74
80
  </thead>
75
81
  <tbody><tr>
76
82
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
77
- <td data-value="95.65" class="pic high">
78
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
85
  </td>
80
- <td data-value="95.65" class="pct high">95.65%</td>
81
- <td data-value="23" class="abs high">22/23</td>
82
- <td data-value="85.71" class="pct high">85.71%</td>
83
- <td data-value="7" class="abs high">6/7</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="41" class="abs high">41/41</td>
88
+ <td data-value="83.33" class="pct high">83.33%</td>
89
+ <td data-value="6" class="abs high">5/6</td>
84
90
  <td data-value="100" class="pct high">100%</td>
85
91
  <td data-value="2" class="abs high">2/2</td>
86
92
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="21" class="abs high">21/21</td>
93
+ <td data-value="41" class="abs high">41/41</td>
88
94
  </tr>
89
95
 
90
96
  </tbody>
@@ -94,10 +100,9 @@
94
100
  </div><!-- /wrapper -->
95
101
  <div class='footer quiet pad2 space-top1 center small'>
96
102
  Code coverage generated by
97
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Fri May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
103
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
+ at 2022-11-15T18:50:33.953Z
99
105
  </div>
100
- </div>
101
106
  <script src="../prettify.js"></script>
102
107
  <script>
103
108
  window.onload = function () {
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.65% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>22/23</span>
28
+ <span class='fraction'>41/41</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">85.71% </span>
33
+ <span class="strong">83.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>6/7</span>
35
+ <span class='fraction'>5/6</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>21/21</span>
49
+ <span class='fraction'>41/41</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -99,55 +105,55 @@
99
105
  <a name='L40'></a><a href='#L40'>40</a>
100
106
  <a name='L41'></a><a href='#L41'>41</a>
101
107
  <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
103
- <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
110
+ <span class="cline-any cline-yes">1x</span>
104
111
  <span class="cline-any cline-yes">1x</span>
105
112
  <span class="cline-any cline-yes">1x</span>
106
113
  <span class="cline-any cline-yes">1x</span>
107
114
  <span class="cline-any cline-yes">1x</span>
108
- <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-neutral">&nbsp;</span>
111
115
  <span class="cline-any cline-yes">17x</span>
112
- <span class="cline-any cline-neutral">&nbsp;</span>
113
116
  <span class="cline-any cline-yes">17x</span>
114
117
  <span class="cline-any cline-yes">17x</span>
115
118
  <span class="cline-any cline-yes">17x</span>
116
119
  <span class="cline-any cline-yes">17x</span>
117
120
  <span class="cline-any cline-yes">17x</span>
118
- <span class="cline-any cline-neutral">&nbsp;</span>
119
121
  <span class="cline-any cline-yes">17x</span>
120
122
  <span class="cline-any cline-yes">17x</span>
121
123
  <span class="cline-any cline-yes">17x</span>
122
124
  <span class="cline-any cline-yes">17x</span>
123
- <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-yes">272x</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
131
125
  <span class="cline-any cline-yes">17x</span>
132
126
  <span class="cline-any cline-yes">17x</span>
133
127
  <span class="cline-any cline-yes">17x</span>
134
128
  <span class="cline-any cline-yes">17x</span>
135
129
  <span class="cline-any cline-yes">17x</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-yes">17x</span>
131
+ <span class="cline-any cline-yes">17x</span>
132
+ <span class="cline-any cline-yes">17x</span>
133
+ <span class="cline-any cline-yes">17x</span>
134
+ <span class="cline-any cline-yes">17x</span>
135
+ <span class="cline-any cline-yes">17x</span>
136
+ <span class="cline-any cline-yes">17x</span>
137
+ <span class="cline-any cline-yes">17x</span>
138
+ <span class="cline-any cline-yes">17x</span>
139
+ <span class="cline-any cline-yes">17x</span>
140
+ <span class="cline-any cline-yes">17x</span>
141
+ <span class="cline-any cline-yes">17x</span>
142
+ <span class="cline-any cline-yes">17x</span>
143
+ <span class="cline-any cline-yes">17x</span>
144
+ <span class="cline-any cline-yes">17x</span>
145
+ <span class="cline-any cline-yes">1x</span>
146
+ <span class="cline-any cline-yes">1x</span>
147
+ <span class="cline-any cline-yes">1x</span>
148
+ <span class="cline-any cline-yes">1x</span>
141
149
  <span class="cline-any cline-yes">1x</span>
142
150
  <span class="cline-any cline-neutral">&nbsp;</span>
143
151
  <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&nbsp;
145
- const
146
- MISSING_STATE = 'N/A'
147
- , askForPromise = require ( 'ask-for-promise' )
148
- , methods = require ( './methods/index' )
149
- , walk = require ( '@peter.naydenov/walk' )
150
- ;
152
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import walk from '@peter.naydenov/walk'
153
+ import methods from './methods/index.js'
154
+ import askForPromise from 'ask-for-promise'
155
+ &nbsp;
156
+ const MISSING_STATE = 'N/A';
151
157
  &nbsp;
152
158
  function Fsm ({init, table, stateData, debug }, lib={} ) {
153
159
  const fsm = this;
@@ -157,9 +163,10 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
157
163
  fsm.lock = false // switch 'ON' during transition in progress. Write other updates in cache.
158
164
  fsm.cache = [] // cached 'update' commands
159
165
  fsm.askForPromise = askForPromise
166
+ fsm.___walk = walk
160
167
  &nbsp;
161
- fsm.stateData = walk ( stateData )
162
- fsm.initialStateData = walk ( stateData )
168
+ fsm.stateData = walk ({ data:stateData })
169
+ fsm.initialStateData = walk ({ data:stateData })
163
170
  fsm.dependencies = { walk, askForPromise }
164
171
  fsm.callback = {
165
172
  update : []
@@ -168,10 +175,13 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
168
175
  , negative : []
169
176
  }
170
177
  &nbsp;
171
- walk ( methods, (v,k) =&gt; fsm[k] = methods[k](fsm) ) // Attach methods to fsm
178
+ walk ({ // Attach methods to fsm
179
+ data:methods
180
+ , keyCallback : ({key:k}) =&gt; fsm[k] = methods[k](fsm)
181
+ })
172
182
  &nbsp;
173
183
  const {transitions, nextState, chainActions } = fsm._setTransitions ( table, lib );
174
- <span class="missing-if-branch" title="if path not taken" >I</span>if ( debug ) <span class="cstat-no" title="statement not covered" >fsm._warn ( transitions )</span>
184
+ if ( debug ) <span class="branch-0 cbranch-no" title="branch not covered" >fsm._warn ( transitions )</span>
175
185
  fsm.transitions = transitions
176
186
  fsm.nextState = nextState
177
187
  fsm.chainActions = chainActions
@@ -179,8 +189,7 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
179
189
  &nbsp;
180
190
  &nbsp;
181
191
  &nbsp;
182
- &nbsp;
183
- module.exports = Fsm
192
+ export default Fsm
184
193
  &nbsp;
185
194
  &nbsp;
186
195
  &nbsp;</pre></td></tr></table></pre>
@@ -189,10 +198,9 @@ module.exports = Fsm
189
198
  </div><!-- /wrapper -->
190
199
  <div class='footer quiet pad2 space-top1 center small'>
191
200
  Code coverage generated by
192
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
193
- at Fri May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
201
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
202
+ at 2022-11-15T18:50:33.953Z
194
203
  </div>
195
- </div>
196
204
  <script src="../prettify.js"></script>
197
205
  <script>
198
206
  window.onload = function () {
@@ -25,28 +25,28 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>5/5</span>
28
+ <span class='fraction'>9/9</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>5/5</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'>2/2</span>
42
+ <span class='fraction'>1/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>4/4</span>
49
+ <span class='fraction'>9/9</span>
50
50
  </div>
51
51
 
52
52
 
@@ -54,6 +54,12 @@
54
54
  <p class="quiet">
55
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
56
  </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
57
63
  </div>
58
64
  <div class='status-line high'></div>
59
65
  <pre><table class="coverage">
@@ -68,14 +74,14 @@
68
74
  <a name='L9'></a><a href='#L9'>9</a>
69
75
  <a name='L10'></a><a href='#L10'>10</a>
70
76
  <a name='L11'></a><a href='#L11'>11</a>
71
- <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
77
+ <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
72
78
  <span class="cline-any cline-yes">17x</span>
73
79
  <span class="cline-any cline-yes">23x</span>
74
80
  <span class="cline-any cline-yes">4x</span>
75
- <span class="cline-any cline-neutral">&nbsp;</span>
76
- <span class="cline-any cline-neutral">&nbsp;</span>
77
- <span class="cline-any cline-neutral">&nbsp;</span>
78
- <span class="cline-any cline-neutral">&nbsp;</span>
81
+ <span class="cline-any cline-yes">1x</span>
82
+ <span class="cline-any cline-yes">1x</span>
83
+ <span class="cline-any cline-yes">1x</span>
84
+ <span class="cline-any cline-yes">1x</span>
79
85
  <span class="cline-any cline-yes">1x</span>
80
86
  <span class="cline-any cline-neutral">&nbsp;</span>
81
87
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -87,7 +93,7 @@ return function ( chainActions, key ) {
87
93
  &nbsp;
88
94
  &nbsp;
89
95
  &nbsp;
90
- module.exports = _getChain
96
+ export default _getChain
91
97
  &nbsp;
92
98
  &nbsp;
93
99
  &nbsp;</pre></td></tr></table></pre>
@@ -96,10 +102,9 @@ module.exports = _getChain
96
102
  </div><!-- /wrapper -->
97
103
  <div class='footer quiet pad2 space-top1 center small'>
98
104
  Code coverage generated by
99
- <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
100
- at Fri May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
105
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
+ at 2022-11-15T18:50:33.953Z
101
107
  </div>
102
- </div>
103
108
  <script src="../../prettify.js"></script>
104
109
  <script>
105
110
  window.onload = function () {