@futdevpro/dynamo-e2e 1.13.0 → 1.15.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 (139) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +2 -2
  3. package/bin/dye2e.js +24 -0
  4. package/build/_modules/cwv/cwv-suite.generator.d.ts.map +1 -1
  5. package/build/_modules/cwv/cwv-suite.generator.js +3 -1
  6. package/build/_modules/cwv/cwv-suite.generator.js.map +1 -1
  7. package/build/_modules/cwv/per-route-thresholds.spec.d.ts +2 -0
  8. package/build/_modules/cwv/per-route-thresholds.spec.d.ts.map +1 -0
  9. package/build/_modules/cwv/per-route-thresholds.spec.js +37 -0
  10. package/build/_modules/cwv/per-route-thresholds.spec.js.map +1 -0
  11. package/build/_modules/generators/_collections/cli-runner.util.d.ts +4 -0
  12. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  13. package/build/_modules/generators/_collections/cli-runner.util.js +30 -0
  14. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  15. package/build/_modules/generators/_collections/json-schema.util.d.ts +16 -0
  16. package/build/_modules/generators/_collections/json-schema.util.d.ts.map +1 -0
  17. package/build/_modules/generators/_collections/json-schema.util.js +190 -0
  18. package/build/_modules/generators/_collections/json-schema.util.js.map +1 -0
  19. package/build/_modules/generators/_models/route-descriptor.interface.d.ts +3 -0
  20. package/build/_modules/generators/_models/route-descriptor.interface.d.ts.map +1 -1
  21. package/build/_modules/generators/index.d.ts +1 -0
  22. package/build/_modules/generators/index.d.ts.map +1 -1
  23. package/build/_modules/generators/index.js +1 -0
  24. package/build/_modules/generators/index.js.map +1 -1
  25. package/build/_modules/generators/info.spec.d.ts +2 -0
  26. package/build/_modules/generators/info.spec.d.ts.map +1 -0
  27. package/build/_modules/generators/info.spec.js +42 -0
  28. package/build/_modules/generators/info.spec.js.map +1 -0
  29. package/build/_modules/generators/json-schema.spec.d.ts +2 -0
  30. package/build/_modules/generators/json-schema.spec.d.ts.map +1 -0
  31. package/build/_modules/generators/json-schema.spec.js +81 -0
  32. package/build/_modules/generators/json-schema.spec.js.map +1 -0
  33. package/coverage/contracts/_collections/index.html +1 -1
  34. package/coverage/contracts/_collections/index.ts.html +1 -1
  35. package/coverage/contracts/_collections/utils/index.html +1 -1
  36. package/coverage/contracts/_collections/utils/test-id.util.ts.html +1 -1
  37. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  38. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  39. package/coverage/contracts/_enums/index.html +1 -1
  40. package/coverage/contracts/_enums/index.ts.html +1 -1
  41. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  42. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  43. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  44. package/coverage/contracts/index.html +1 -1
  45. package/coverage/contracts/index.ts.html +1 -1
  46. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  47. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +1 -1
  48. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  49. package/coverage/cwv/_collections/cwv-emission.util.ts.html +102 -102
  50. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  51. package/coverage/cwv/_collections/index.html +1 -1
  52. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  53. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  54. package/coverage/cwv/cwv-suite.generator.ts.html +60 -42
  55. package/coverage/cwv/index.html +7 -7
  56. package/coverage/generators/_collections/cli-runner.util.ts.html +148 -55
  57. package/coverage/generators/_collections/field-emission.util.ts.html +1 -1
  58. package/coverage/generators/_collections/form-level-emission.util.ts.html +1 -1
  59. package/coverage/generators/_collections/index.html +28 -13
  60. package/coverage/generators/_collections/json-schema.util.ts.html +652 -0
  61. package/coverage/generators/_collections/spec-emission.util.ts.html +33 -33
  62. package/coverage/generators/_collections/test-case-filter.util.ts.html +1 -1
  63. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  64. package/coverage/generators/form-suite.generator.ts.html +1 -1
  65. package/coverage/generators/index.html +1 -1
  66. package/coverage/generators/viewport-suite.generator.ts.html +1 -1
  67. package/coverage/index.html +20 -20
  68. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  69. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  70. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  71. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +1 -1
  72. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  73. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  74. package/coverage/lcov-report/contracts/_enums/index.html +1 -1
  75. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  76. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  77. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  78. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  79. package/coverage/lcov-report/contracts/index.html +1 -1
  80. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  81. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  82. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +1 -1
  83. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  84. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +102 -102
  85. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  86. package/coverage/lcov-report/cwv/_collections/index.html +1 -1
  87. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  88. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  89. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +60 -42
  90. package/coverage/lcov-report/cwv/index.html +7 -7
  91. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +148 -55
  92. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +1 -1
  93. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +1 -1
  94. package/coverage/lcov-report/generators/_collections/index.html +28 -13
  95. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +652 -0
  96. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +33 -33
  97. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +1 -1
  98. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  99. package/coverage/lcov-report/generators/form-suite.generator.ts.html +1 -1
  100. package/coverage/lcov-report/generators/index.html +1 -1
  101. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +1 -1
  102. package/coverage/lcov-report/index.html +20 -20
  103. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  104. package/coverage/lcov-report/runtime/_collections/index.html +1 -1
  105. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
  106. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +1 -1
  107. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
  108. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
  109. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
  110. package/coverage/lcov-report/runtime/_services/index.html +1 -1
  111. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
  112. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
  113. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
  114. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
  115. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  116. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  117. package/coverage/lcov-report/runtime/index.html +1 -1
  118. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  119. package/coverage/lcov.info +593 -342
  120. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  121. package/coverage/runtime/_collections/index.html +1 -1
  122. package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
  123. package/coverage/runtime/_collections/wait-helpers.util.ts.html +1 -1
  124. package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
  125. package/coverage/runtime/_services/field-page-object.ts.html +1 -1
  126. package/coverage/runtime/_services/form-page-object.ts.html +1 -1
  127. package/coverage/runtime/_services/index.html +1 -1
  128. package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
  129. package/coverage/runtime/_services/logger.service.ts.html +1 -1
  130. package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
  131. package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
  132. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  133. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  134. package/coverage/runtime/index.html +1 -1
  135. package/coverage/runtime/index.ts.html +1 -1
  136. package/coverage/tmp/coverage-212644-1781074964846-0.json +1 -0
  137. package/coverage/tmp/{coverage-226744-1781074339654-0.json → coverage-226592-1781074963064-0.json} +1 -1
  138. package/package.json +1 -1
  139. package/coverage/tmp/coverage-224316-1781074340663-0.json +0 -1
@@ -25,14 +25,14 @@
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'>58/58</span>
28
+ <span class='fraction'>64/64</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'>7/7</span>
35
+ <span class='fraction'>8/8</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'>58/58</span>
49
+ <span class='fraction'>64/64</span>
50
50
  </div>
51
51
 
52
52
 
@@ -121,7 +121,13 @@
121
121
  <a name='L56'></a><a href='#L56'>56</a>
122
122
  <a name='L57'></a><a href='#L57'>57</a>
123
123
  <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
125
131
  <span class="cline-any cline-yes">1x</span>
126
132
  <span class="cline-any cline-yes">1x</span>
127
133
  <span class="cline-any cline-yes">1x</span>
@@ -142,42 +148,48 @@
142
148
  <span class="cline-any cline-yes">1x</span>
143
149
  <span class="cline-any cline-yes">1x</span>
144
150
  <span class="cline-any cline-yes">1x</span>
145
- <span class="cline-any cline-yes">17x</span>
146
- <span class="cline-any cline-yes">17x</span>
147
- <span class="cline-any cline-yes">17x</span>
148
- <span class="cline-any cline-yes">17x</span>
149
- <span class="cline-any cline-yes">17x</span>
150
- <span class="cline-any cline-yes">17x</span>
151
- <span class="cline-any cline-yes">17x</span>
152
- <span class="cline-any cline-yes">17x</span>
153
- <span class="cline-any cline-yes">17x</span>
154
- <span class="cline-any cline-yes">17x</span>
155
- <span class="cline-any cline-yes">17x</span>
156
- <span class="cline-any cline-yes">17x</span>
157
- <span class="cline-any cline-yes">17x</span>
158
- <span class="cline-any cline-yes">17x</span>
159
- <span class="cline-any cline-yes">17x</span>
160
- <span class="cline-any cline-yes">17x</span>
161
- <span class="cline-any cline-yes">17x</span>
162
- <span class="cline-any cline-yes">17x</span>
163
- <span class="cline-any cline-yes">17x</span>
164
- <span class="cline-any cline-yes">17x</span>
165
- <span class="cline-any cline-yes">17x</span>
166
- <span class="cline-any cline-yes">17x</span>
167
- <span class="cline-any cline-yes">17x</span>
168
- <span class="cline-any cline-yes">17x</span>
169
- <span class="cline-any cline-yes">17x</span>
170
- <span class="cline-any cline-yes">17x</span>
171
- <span class="cline-any cline-yes">17x</span>
172
- <span class="cline-any cline-yes">17x</span>
173
- <span class="cline-any cline-yes">17x</span>
174
- <span class="cline-any cline-yes">17x</span>
175
- <span class="cline-any cline-yes">17x</span>
176
- <span class="cline-any cline-yes">17x</span>
177
- <span class="cline-any cline-yes">17x</span>
178
- <span class="cline-any cline-yes">17x</span>
179
- <span class="cline-any cline-yes">17x</span>
180
- <span class="cline-any cline-yes">17x</span>
151
+ <span class="cline-any cline-yes">20x</span>
152
+ <span class="cline-any cline-yes">20x</span>
153
+ <span class="cline-any cline-yes">20x</span>
154
+ <span class="cline-any cline-yes">20x</span>
155
+ <span class="cline-any cline-yes">20x</span>
156
+ <span class="cline-any cline-yes">20x</span>
157
+ <span class="cline-any cline-yes">20x</span>
158
+ <span class="cline-any cline-yes">20x</span>
159
+ <span class="cline-any cline-yes">20x</span>
160
+ <span class="cline-any cline-yes">20x</span>
161
+ <span class="cline-any cline-yes">20x</span>
162
+ <span class="cline-any cline-yes">20x</span>
163
+ <span class="cline-any cline-yes">20x</span>
164
+ <span class="cline-any cline-yes">20x</span>
165
+ <span class="cline-any cline-yes">20x</span>
166
+ <span class="cline-any cline-yes">20x</span>
167
+ <span class="cline-any cline-yes">20x</span>
168
+ <span class="cline-any cline-yes">20x</span>
169
+ <span class="cline-any cline-yes">20x</span>
170
+ <span class="cline-any cline-yes">20x</span>
171
+ <span class="cline-any cline-yes">20x</span>
172
+ <span class="cline-any cline-yes">20x</span>
173
+ <span class="cline-any cline-yes">20x</span>
174
+ <span class="cline-any cline-yes">20x</span>
175
+ <span class="cline-any cline-yes">20x</span>
176
+ <span class="cline-any cline-yes">20x</span>
177
+ <span class="cline-any cline-yes">20x</span>
178
+ <span class="cline-any cline-yes">20x</span>
179
+ <span class="cline-any cline-yes">20x</span>
180
+ <span class="cline-any cline-yes">20x</span>
181
+ <span class="cline-any cline-yes">20x</span>
182
+ <span class="cline-any cline-yes">20x</span>
183
+ <span class="cline-any cline-yes">20x</span>
184
+ <span class="cline-any cline-yes">20x</span>
185
+ <span class="cline-any cline-yes">20x</span>
186
+ <span class="cline-any cline-yes">20x</span>
187
+ <span class="cline-any cline-yes">20x</span>
188
+ <span class="cline-any cline-yes">20x</span>
189
+ <span class="cline-any cline-yes">20x</span>
190
+ <span class="cline-any cline-yes">20x</span>
191
+ <span class="cline-any cline-yes">20x</span>
192
+ <span class="cline-any cline-yes">20x</span>
181
193
  <span class="cline-any cline-yes">1x</span>
182
194
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { CWV_GOOD_THRESHOLDS } from '../contracts/_collections/constants/cwv-default-thresholds.const';
183
195
  import { DyE2E_CWVThresholds_Interface } from '../contracts/_models/interfaces/cwv-thresholds.interface';
@@ -213,7 +225,13 @@ export class DyE2E_CWVSuite_Generator {
213
225
  );
214
226
  &nbsp;
215
227
  const routeBlocks: string[] = options.routes.map(
216
- (r: DyE2E_RouteDescriptor_Interface): string =&gt; DyE2E_CWVEmission_Util.emitRouteBlock(r, iterations, thresholds, reportDir),
228
+ (r: DyE2E_RouteDescriptor_Interface): string =&gt; DyE2E_CWVEmission_Util.emitRouteBlock(
229
+ r,
230
+ iterations,
231
+ // Per-route threshold override Wave-3.5 — ha a route saját `cwvThresholds`-szal jön, használjuk azt.
232
+ r.cwvThresholds ?? thresholds,
233
+ reportDir,
234
+ ),
217
235
  );
218
236
  &nbsp;
219
237
  // Wave-3 — ha LCP/CLS/FCP/TTFB MELLETT INP-t is mérünk, mindkét page-scriptet
@@ -244,7 +262,7 @@ ${DyE2E_SpecEmission_Util.indent(routeBlocks.join('\n\n'), 1)}
244
262
  <div class='footer quiet pad2 space-top1 center small'>
245
263
  Code coverage generated by
246
264
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
247
- at 2026-06-10T06:52:20.935Z
265
+ at 2026-06-10T07:02:45.337Z
248
266
  </div>
249
267
  <script src="../prettify.js"></script>
250
268
  <script>
@@ -25,14 +25,14 @@
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'>58/58</span>
28
+ <span class='fraction'>64/64</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'>7/7</span>
35
+ <span class='fraction'>8/8</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'>58/58</span>
49
+ <span class='fraction'>64/64</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="58" class="abs high">58/58</td>
87
+ <td data-value="64" class="abs high">64/64</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
- <td data-value="7" class="abs high">7/7</td>
89
+ <td data-value="8" class="abs high">8/8</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
91
  <td data-value="1" class="abs high">1/1</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
- <td data-value="58" class="abs high">58/58</td>
93
+ <td data-value="64" class="abs high">64/64</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2026-06-10T06:52:20.935Z
104
+ at 2026-06-10T07:02:45.337Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -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'>242/242</span>
28
+ <span class='fraction'>273/273</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">96.42% </span>
33
+ <span class="strong">96.87% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>27/28</span>
35
+ <span class='fraction'>31/32</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'>6/6</span>
42
+ <span class='fraction'>7/7</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'>242/242</span>
49
+ <span class='fraction'>273/273</span>
50
50
  </div>
51
51
 
52
52
 
@@ -305,7 +305,38 @@
305
305
  <a name='L240'></a><a href='#L240'>240</a>
306
306
  <a name='L241'></a><a href='#L241'>241</a>
307
307
  <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
309
340
  <span class="cline-any cline-yes">1x</span>
310
341
  <span class="cline-any cline-yes">1x</span>
311
342
  <span class="cline-any cline-yes">1x</span>
@@ -343,54 +374,59 @@
343
374
  <span class="cline-any cline-yes">3x</span>
344
375
  <span class="cline-any cline-yes">1x</span>
345
376
  <span class="cline-any cline-yes">1x</span>
346
- <span class="cline-any cline-yes">3x</span>
347
- <span class="cline-any cline-yes">3x</span>
348
- <span class="cline-any cline-yes">3x</span>
349
- <span class="cline-any cline-yes">3x</span>
350
- <span class="cline-any cline-yes">3x</span>
351
- <span class="cline-any cline-yes">3x</span>
352
- <span class="cline-any cline-yes">3x</span>
353
- <span class="cline-any cline-yes">3x</span>
354
- <span class="cline-any cline-yes">3x</span>
355
- <span class="cline-any cline-yes">3x</span>
356
- <span class="cline-any cline-yes">3x</span>
357
- <span class="cline-any cline-yes">3x</span>
358
- <span class="cline-any cline-yes">3x</span>
359
- <span class="cline-any cline-yes">3x</span>
360
- <span class="cline-any cline-yes">3x</span>
361
- <span class="cline-any cline-yes">3x</span>
362
- <span class="cline-any cline-yes">3x</span>
363
- <span class="cline-any cline-yes">3x</span>
364
- <span class="cline-any cline-yes">3x</span>
365
- <span class="cline-any cline-yes">3x</span>
366
- <span class="cline-any cline-yes">3x</span>
367
- <span class="cline-any cline-yes">3x</span>
368
- <span class="cline-any cline-yes">3x</span>
369
- <span class="cline-any cline-yes">3x</span>
370
- <span class="cline-any cline-yes">3x</span>
371
- <span class="cline-any cline-yes">3x</span>
372
- <span class="cline-any cline-yes">3x</span>
373
- <span class="cline-any cline-yes">3x</span>
374
- <span class="cline-any cline-yes">3x</span>
375
- <span class="cline-any cline-yes">3x</span>
376
- <span class="cline-any cline-yes">3x</span>
377
- <span class="cline-any cline-yes">3x</span>
378
- <span class="cline-any cline-yes">3x</span>
379
- <span class="cline-any cline-yes">3x</span>
380
- <span class="cline-any cline-yes">3x</span>
381
- <span class="cline-any cline-yes">3x</span>
382
- <span class="cline-any cline-yes">3x</span>
383
- <span class="cline-any cline-yes">3x</span>
384
- <span class="cline-any cline-yes">3x</span>
385
- <span class="cline-any cline-yes">3x</span>
386
- <span class="cline-any cline-yes">3x</span>
387
- <span class="cline-any cline-yes">3x</span>
388
- <span class="cline-any cline-yes">3x</span>
389
- <span class="cline-any cline-yes">3x</span>
390
- <span class="cline-any cline-yes">3x</span>
391
- <span class="cline-any cline-yes">3x</span>
392
- <span class="cline-any cline-yes">3x</span>
393
- <span class="cline-any cline-yes">3x</span>
377
+ <span class="cline-any cline-yes">5x</span>
378
+ <span class="cline-any cline-yes">5x</span>
379
+ <span class="cline-any cline-yes">5x</span>
380
+ <span class="cline-any cline-yes">5x</span>
381
+ <span class="cline-any cline-yes">5x</span>
382
+ <span class="cline-any cline-yes">5x</span>
383
+ <span class="cline-any cline-yes">5x</span>
384
+ <span class="cline-any cline-yes">5x</span>
385
+ <span class="cline-any cline-yes">5x</span>
386
+ <span class="cline-any cline-yes">5x</span>
387
+ <span class="cline-any cline-yes">5x</span>
388
+ <span class="cline-any cline-yes">5x</span>
389
+ <span class="cline-any cline-yes">5x</span>
390
+ <span class="cline-any cline-yes">5x</span>
391
+ <span class="cline-any cline-yes">5x</span>
392
+ <span class="cline-any cline-yes">5x</span>
393
+ <span class="cline-any cline-yes">5x</span>
394
+ <span class="cline-any cline-yes">5x</span>
395
+ <span class="cline-any cline-yes">5x</span>
396
+ <span class="cline-any cline-yes">5x</span>
397
+ <span class="cline-any cline-yes">5x</span>
398
+ <span class="cline-any cline-yes">5x</span>
399
+ <span class="cline-any cline-yes">5x</span>
400
+ <span class="cline-any cline-yes">5x</span>
401
+ <span class="cline-any cline-yes">5x</span>
402
+ <span class="cline-any cline-yes">5x</span>
403
+ <span class="cline-any cline-yes">5x</span>
404
+ <span class="cline-any cline-yes">5x</span>
405
+ <span class="cline-any cline-yes">5x</span>
406
+ <span class="cline-any cline-yes">5x</span>
407
+ <span class="cline-any cline-yes">5x</span>
408
+ <span class="cline-any cline-yes">5x</span>
409
+ <span class="cline-any cline-yes">5x</span>
410
+ <span class="cline-any cline-yes">5x</span>
411
+ <span class="cline-any cline-yes">5x</span>
412
+ <span class="cline-any cline-yes">5x</span>
413
+ <span class="cline-any cline-yes">5x</span>
414
+ <span class="cline-any cline-yes">5x</span>
415
+ <span class="cline-any cline-yes">5x</span>
416
+ <span class="cline-any cline-yes">5x</span>
417
+ <span class="cline-any cline-yes">5x</span>
418
+ <span class="cline-any cline-yes">5x</span>
419
+ <span class="cline-any cline-yes">5x</span>
420
+ <span class="cline-any cline-yes">5x</span>
421
+ <span class="cline-any cline-yes">5x</span>
422
+ <span class="cline-any cline-yes">5x</span>
423
+ <span class="cline-any cline-yes">5x</span>
424
+ <span class="cline-any cline-yes">5x</span>
425
+ <span class="cline-any cline-yes">5x</span>
426
+ <span class="cline-any cline-yes">5x</span>
427
+ <span class="cline-any cline-yes">5x</span>
428
+ <span class="cline-any cline-yes">5x</span>
429
+ <span class="cline-any cline-yes">5x</span>
394
430
  <span class="cline-any cline-yes">1x</span>
395
431
  <span class="cline-any cline-yes">1x</span>
396
432
  <span class="cline-any cline-yes">1x</span>
@@ -530,6 +566,32 @@
530
566
  <span class="cline-any cline-yes">1x</span>
531
567
  <span class="cline-any cline-yes">1x</span>
532
568
  <span class="cline-any cline-yes">1x</span>
569
+ <span class="cline-any cline-yes">5x</span>
570
+ <span class="cline-any cline-yes">5x</span>
571
+ <span class="cline-any cline-yes">5x</span>
572
+ <span class="cline-any cline-yes">5x</span>
573
+ <span class="cline-any cline-yes">5x</span>
574
+ <span class="cline-any cline-yes">5x</span>
575
+ <span class="cline-any cline-yes">5x</span>
576
+ <span class="cline-any cline-yes">5x</span>
577
+ <span class="cline-any cline-yes">5x</span>
578
+ <span class="cline-any cline-yes">5x</span>
579
+ <span class="cline-any cline-yes">5x</span>
580
+ <span class="cline-any cline-yes">5x</span>
581
+ <span class="cline-any cline-yes">5x</span>
582
+ <span class="cline-any cline-yes">5x</span>
583
+ <span class="cline-any cline-yes">5x</span>
584
+ <span class="cline-any cline-yes">5x</span>
585
+ <span class="cline-any cline-yes">5x</span>
586
+ <span class="cline-any cline-yes">5x</span>
587
+ <span class="cline-any cline-yes">5x</span>
588
+ <span class="cline-any cline-yes">5x</span>
589
+ <span class="cline-any cline-yes">5x</span>
590
+ <span class="cline-any cline-yes">1x</span>
591
+ <span class="cline-any cline-yes">1x</span>
592
+ <span class="cline-any cline-yes">1x</span>
593
+ <span class="cline-any cline-yes">1x</span>
594
+ <span class="cline-any cline-yes">1x</span>
533
595
  <span class="cline-any cline-yes">1x</span>
534
596
  <span class="cline-any cline-yes">5x</span>
535
597
  <span class="cline-any cline-yes">5x</span>
@@ -598,6 +660,8 @@ Commands:
598
660
  bootstrap Scaffold playwright.config.ts + e2e/ + generate.ts
599
661
  summarize Read CWV JSON-report → human-readable summary
600
662
  diff Compare two CWV reports → regression analysis
663
+ info Show registered field-types + CLI capabilities
664
+ schema Print JSON Schema for a config type
601
665
  version Print package version
602
666
  help This message
603
667
  &nbsp;
@@ -631,6 +695,9 @@ Flags (diff):
631
695
  --old &lt;path&gt; Path to baseline CWV JSON-report
632
696
  --new &lt;path&gt; Path to current CWV JSON-report
633
697
  --tolerance &lt;pct&gt; Stable-tolerance % (default 5)
698
+ &nbsp;
699
+ Flags (schema):
700
+ --type &lt;type&gt; Schema type: 'form-suite' | 'viewport-audit' | 'cwv-diag'
634
701
  `;
635
702
  }
636
703
  &nbsp;
@@ -767,6 +834,32 @@ See: https://github.com/futdevpro/dynamo-e2e/blob/master/__documentations/gettin
767
834
  static versionText(version: string): string {
768
835
  return `@futdevpro/dynamo-e2e ${version}`;
769
836
  }
837
+ &nbsp;
838
+ /**
839
+ * Info command — registry + capability summary (consumer self-describe).
840
+ */
841
+ static infoText(version: string, fieldTypes: string[]): string {
842
+ const sortedTypes: string[] = [...fieldTypes].sort();
843
+ const wave1: string[] = sortedTypes.filter((t: string): boolean =&gt; ['text', 'textarea', 'password', 'number', 'checkbox', 'select', 'multiselect', 'date'].indexOf(t) !== -1);
844
+ const wave2a: string[] = sortedTypes.filter((t: string): boolean =&gt; ['slider', 'sliderRange', 'radioSelect', 'dateTime', 'dateRange'].indexOf(t) !== -1);
845
+ const wave2b: string[] = sortedTypes.filter((t: string): boolean =&gt; ['chipSelect', 'autocomplete', 'color', 'file', 'richtextarea'].indexOf(t) !== -1);
846
+ return `@futdevpro/dynamo-e2e ${version}
847
+ &nbsp;
848
+ Registered field-types (${sortedTypes.length}):
849
+ Wave-1 (${wave1.length}): ${wave1.join(', ')}
850
+ Wave-2a (${wave2a.length}): ${wave2a.join(', ')}
851
+ Wave-2b (${wave2b.length}): ${wave2b.join(', ')}
852
+ &nbsp;
853
+ CLI capabilities:
854
+ - 3 generators (form-suite, viewport-audit, cwv-diag)
855
+ - 2 report utils (summarize, diff)
856
+ - 2 config helpers (bootstrap, doctor)
857
+ - Wave-3 INP synthetic interaction-driver
858
+ - Per-route CWV threshold overrides
859
+ &nbsp;
860
+ Docs: github.com/futdevpro/dynamo-e2e/__documentations/
861
+ `;
862
+ }
770
863
  &nbsp;
771
864
  /**
772
865
  * A 3 generate-parancs köztes-runner-je. A konfig egy JSON-string (filesystem
@@ -796,7 +889,7 @@ See: https://github.com/futdevpro/dynamo-e2e/blob/master/__documentations/gettin
796
889
  <div class='footer quiet pad2 space-top1 center small'>
797
890
  Code coverage generated by
798
891
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
799
- at 2026-06-10T06:52:20.935Z
892
+ at 2026-06-10T07:02:45.337Z
800
893
  </div>
801
894
  <script src="../../prettify.js"></script>
802
895
  <script>
@@ -589,7 +589,7 @@ expect(true).toBe(true);`;
589
589
  <div class='footer quiet pad2 space-top1 center small'>
590
590
  Code coverage generated by
591
591
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
592
- at 2026-06-10T06:52:20.935Z
592
+ at 2026-06-10T07:02:45.337Z
593
593
  </div>
594
594
  <script src="../../prettify.js"></script>
595
595
  <script>
@@ -205,7 +205,7 @@ ${requiredFieldCount &gt; 0
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at 2026-06-10T06:52:20.935Z
208
+ at 2026-06-10T07:02:45.337Z
209
209
  </div>
210
210
  <script src="../../prettify.js"></script>
211
211
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">99.07% </span>
26
+ <span class="strong">99.28% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>746/753</span>
28
+ <span class='fraction'>966/973</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.05% </span>
33
+ <span class="strong">83.69% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>147/177</span>
35
+ <span class='fraction'>154/184</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'>21/21</span>
42
+ <span class='fraction'>25/25</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">99.07% </span>
47
+ <span class="strong">99.28% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>746/753</span>
49
+ <span class='fraction'>966/973</span>
50
50
  </div>
51
51
 
52
52
 
@@ -84,13 +84,13 @@
84
84
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
85
  </td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="242" class="abs high">242/242</td>
88
- <td data-value="96.42" class="pct high">96.42%</td>
89
- <td data-value="28" class="abs high">27/28</td>
87
+ <td data-value="273" class="abs high">273/273</td>
88
+ <td data-value="96.87" class="pct high">96.87%</td>
89
+ <td data-value="32" class="abs high">31/32</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="6" class="abs high">6/6</td>
91
+ <td data-value="7" class="abs high">7/7</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
- <td data-value="242" class="abs high">242/242</td>
93
+ <td data-value="273" class="abs high">273/273</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -123,6 +123,21 @@
123
123
  <td data-value="45" class="abs high">45/45</td>
124
124
  </tr>
125
125
 
126
+ <tr>
127
+ <td class="file high" data-value="json-schema.util.ts"><a href="json-schema.util.ts.html">json-schema.util.ts</a></td>
128
+ <td data-value="100" class="pic high">
129
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130
+ </td>
131
+ <td data-value="100" class="pct high">100%</td>
132
+ <td data-value="189" class="abs high">189/189</td>
133
+ <td data-value="100" class="pct high">100%</td>
134
+ <td data-value="3" class="abs high">3/3</td>
135
+ <td data-value="100" class="pct high">100%</td>
136
+ <td data-value="3" class="abs high">3/3</td>
137
+ <td data-value="100" class="pct high">100%</td>
138
+ <td data-value="189" class="abs high">189/189</td>
139
+ </tr>
140
+
126
141
  <tr>
127
142
  <td class="file high" data-value="spec-emission.util.ts"><a href="spec-emission.util.ts.html">spec-emission.util.ts</a></td>
128
143
  <td data-value="97.18" class="pic high">
@@ -176,7 +191,7 @@
176
191
  <div class='footer quiet pad2 space-top1 center small'>
177
192
  Code coverage generated by
178
193
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2026-06-10T06:52:20.935Z
194
+ at 2026-06-10T07:02:45.337Z
180
195
  </div>
181
196
  <script src="../../prettify.js"></script>
182
197
  <script>