@futdevpro/dynamo-e2e 1.10.0 → 1.12.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 (136) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +2 -2
  3. package/bin/dye2e.js +82 -0
  4. package/build/_modules/cwv/_collections/cwv-comparison.util.d.ts +48 -0
  5. package/build/_modules/cwv/_collections/cwv-comparison.util.d.ts.map +1 -0
  6. package/build/_modules/cwv/_collections/cwv-comparison.util.js +59 -0
  7. package/build/_modules/cwv/_collections/cwv-comparison.util.js.map +1 -0
  8. package/build/_modules/cwv/_collections/cwv-summarize.util.d.ts +29 -0
  9. package/build/_modules/cwv/_collections/cwv-summarize.util.d.ts.map +1 -0
  10. package/build/_modules/cwv/_collections/cwv-summarize.util.js +63 -0
  11. package/build/_modules/cwv/_collections/cwv-summarize.util.js.map +1 -0
  12. package/build/_modules/cwv/cwv-comparison.spec.d.ts +2 -0
  13. package/build/_modules/cwv/cwv-comparison.spec.d.ts.map +1 -0
  14. package/build/_modules/cwv/cwv-comparison.spec.js +77 -0
  15. package/build/_modules/cwv/cwv-comparison.spec.js.map +1 -0
  16. package/build/_modules/cwv/cwv-summarize.spec.d.ts +2 -0
  17. package/build/_modules/cwv/cwv-summarize.spec.d.ts.map +1 -0
  18. package/build/_modules/cwv/cwv-summarize.spec.js +70 -0
  19. package/build/_modules/cwv/cwv-summarize.spec.js.map +1 -0
  20. package/build/_modules/cwv/index.d.ts +2 -0
  21. package/build/_modules/cwv/index.d.ts.map +1 -1
  22. package/build/_modules/cwv/index.js +2 -0
  23. package/build/_modules/cwv/index.js.map +1 -1
  24. package/build/_modules/generators/_collections/cli-runner.util.d.ts +5 -0
  25. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  26. package/build/_modules/generators/_collections/cli-runner.util.js +77 -0
  27. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  28. package/build/_modules/generators/bootstrap.spec.d.ts +2 -0
  29. package/build/_modules/generators/bootstrap.spec.d.ts.map +1 -0
  30. package/build/_modules/generators/bootstrap.spec.js +38 -0
  31. package/build/_modules/generators/bootstrap.spec.js.map +1 -0
  32. package/coverage/contracts/_collections/index.html +1 -1
  33. package/coverage/contracts/_collections/index.ts.html +1 -1
  34. package/coverage/contracts/_collections/utils/index.html +1 -1
  35. package/coverage/contracts/_collections/utils/test-id.util.ts.html +1 -1
  36. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  37. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  38. package/coverage/contracts/_enums/index.html +1 -1
  39. package/coverage/contracts/_enums/index.ts.html +1 -1
  40. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  41. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  42. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  43. package/coverage/contracts/index.html +1 -1
  44. package/coverage/contracts/index.ts.html +1 -1
  45. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  46. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +355 -0
  47. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  48. package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
  49. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +325 -0
  50. package/coverage/cwv/_collections/index.html +38 -8
  51. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  52. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  53. package/coverage/cwv/cwv-suite.generator.ts.html +1 -1
  54. package/coverage/cwv/index.html +1 -1
  55. package/coverage/generators/_collections/cli-runner.util.ts.html +273 -39
  56. package/coverage/generators/_collections/field-emission.util.ts.html +1 -1
  57. package/coverage/generators/_collections/form-level-emission.util.ts.html +1 -1
  58. package/coverage/generators/_collections/index.html +13 -13
  59. package/coverage/generators/_collections/spec-emission.util.ts.html +1 -1
  60. package/coverage/generators/_collections/test-case-filter.util.ts.html +1 -1
  61. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  62. package/coverage/generators/form-suite.generator.ts.html +1 -1
  63. package/coverage/generators/index.html +1 -1
  64. package/coverage/generators/viewport-suite.generator.ts.html +1 -1
  65. package/coverage/index.html +26 -26
  66. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  67. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  68. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  69. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +1 -1
  70. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  71. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  72. package/coverage/lcov-report/contracts/_enums/index.html +1 -1
  73. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  74. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  75. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  76. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  77. package/coverage/lcov-report/contracts/index.html +1 -1
  78. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  79. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  80. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +355 -0
  81. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  82. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
  83. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +325 -0
  84. package/coverage/lcov-report/cwv/_collections/index.html +38 -8
  85. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  86. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  87. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +1 -1
  88. package/coverage/lcov-report/cwv/index.html +1 -1
  89. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +273 -39
  90. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +1 -1
  91. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +1 -1
  92. package/coverage/lcov-report/generators/_collections/index.html +13 -13
  93. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +1 -1
  94. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +1 -1
  95. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  96. package/coverage/lcov-report/generators/form-suite.generator.ts.html +1 -1
  97. package/coverage/lcov-report/generators/index.html +1 -1
  98. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +1 -1
  99. package/coverage/lcov-report/index.html +26 -26
  100. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  101. package/coverage/lcov-report/runtime/_collections/index.html +1 -1
  102. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
  103. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +5 -5
  104. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
  105. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
  106. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
  107. package/coverage/lcov-report/runtime/_services/index.html +1 -1
  108. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
  109. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
  110. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
  111. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
  112. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  113. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  114. package/coverage/lcov-report/runtime/index.html +1 -1
  115. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  116. package/coverage/lcov.info +485 -150
  117. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  118. package/coverage/runtime/_collections/index.html +1 -1
  119. package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
  120. package/coverage/runtime/_collections/wait-helpers.util.ts.html +5 -5
  121. package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
  122. package/coverage/runtime/_services/field-page-object.ts.html +1 -1
  123. package/coverage/runtime/_services/form-page-object.ts.html +1 -1
  124. package/coverage/runtime/_services/index.html +1 -1
  125. package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
  126. package/coverage/runtime/_services/logger.service.ts.html +1 -1
  127. package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
  128. package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
  129. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  130. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +1 -1
  131. package/coverage/runtime/index.html +1 -1
  132. package/coverage/runtime/index.ts.html +1 -1
  133. package/coverage/tmp/coverage-213156-1781073300871-0.json +1 -0
  134. package/coverage/tmp/{coverage-224932-1781071393426-0.json → coverage-220640-1781073299508-0.json} +1 -1
  135. package/package.json +1 -1
  136. package/coverage/tmp/coverage-226960-1781071394780-0.json +0 -1
@@ -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'>158/158</span>
28
+ <span class='fraction'>236/236</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">96.29% </span>
33
+ <span class="strong">96.42% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>26/27</span>
35
+ <span class='fraction'>27/28</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'>5/5</span>
42
+ <span class='fraction'>6/6</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'>158/158</span>
49
+ <span class='fraction'>236/236</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,7 +221,85 @@
221
221
  <a name='L156'></a><a href='#L156'>156</a>
222
222
  <a name='L157'></a><a href='#L157'>157</a>
223
223
  <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
225
303
  <span class="cline-any cline-yes">1x</span>
226
304
  <span class="cline-any cline-yes">1x</span>
227
305
  <span class="cline-any cline-yes">1x</span>
@@ -259,38 +337,116 @@
259
337
  <span class="cline-any cline-yes">3x</span>
260
338
  <span class="cline-any cline-yes">1x</span>
261
339
  <span class="cline-any cline-yes">1x</span>
262
- <span class="cline-any cline-yes">2x</span>
263
- <span class="cline-any cline-yes">2x</span>
264
- <span class="cline-any cline-yes">2x</span>
265
- <span class="cline-any cline-yes">2x</span>
266
- <span class="cline-any cline-yes">2x</span>
267
- <span class="cline-any cline-yes">2x</span>
268
- <span class="cline-any cline-yes">2x</span>
269
- <span class="cline-any cline-yes">2x</span>
270
- <span class="cline-any cline-yes">2x</span>
271
- <span class="cline-any cline-yes">2x</span>
272
- <span class="cline-any cline-yes">2x</span>
273
- <span class="cline-any cline-yes">2x</span>
274
- <span class="cline-any cline-yes">2x</span>
275
- <span class="cline-any cline-yes">2x</span>
276
- <span class="cline-any cline-yes">2x</span>
277
- <span class="cline-any cline-yes">2x</span>
278
- <span class="cline-any cline-yes">2x</span>
279
- <span class="cline-any cline-yes">2x</span>
280
- <span class="cline-any cline-yes">2x</span>
281
- <span class="cline-any cline-yes">2x</span>
282
- <span class="cline-any cline-yes">2x</span>
283
- <span class="cline-any cline-yes">2x</span>
284
- <span class="cline-any cline-yes">2x</span>
285
- <span class="cline-any cline-yes">2x</span>
286
- <span class="cline-any cline-yes">2x</span>
287
- <span class="cline-any cline-yes">2x</span>
288
- <span class="cline-any cline-yes">2x</span>
289
- <span class="cline-any cline-yes">2x</span>
290
- <span class="cline-any cline-yes">2x</span>
291
- <span class="cline-any cline-yes">2x</span>
292
- <span class="cline-any cline-yes">2x</span>
293
- <span class="cline-any cline-yes">2x</span>
340
+ <span class="cline-any cline-yes">3x</span>
341
+ <span class="cline-any cline-yes">3x</span>
342
+ <span class="cline-any cline-yes">3x</span>
343
+ <span class="cline-any cline-yes">3x</span>
344
+ <span class="cline-any cline-yes">3x</span>
345
+ <span class="cline-any cline-yes">3x</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">1x</span>
389
+ <span class="cline-any cline-yes">1x</span>
390
+ <span class="cline-any cline-yes">1x</span>
391
+ <span class="cline-any cline-yes">1x</span>
392
+ <span class="cline-any cline-yes">1x</span>
393
+ <span class="cline-any cline-yes">1x</span>
394
+ <span class="cline-any cline-yes">4x</span>
395
+ <span class="cline-any cline-yes">4x</span>
396
+ <span class="cline-any cline-yes">4x</span>
397
+ <span class="cline-any cline-yes">4x</span>
398
+ <span class="cline-any cline-yes">4x</span>
399
+ <span class="cline-any cline-yes">4x</span>
400
+ <span class="cline-any cline-yes">4x</span>
401
+ <span class="cline-any cline-yes">4x</span>
402
+ <span class="cline-any cline-yes">4x</span>
403
+ <span class="cline-any cline-yes">4x</span>
404
+ <span class="cline-any cline-yes">4x</span>
405
+ <span class="cline-any cline-yes">4x</span>
406
+ <span class="cline-any cline-yes">4x</span>
407
+ <span class="cline-any cline-yes">4x</span>
408
+ <span class="cline-any cline-yes">4x</span>
409
+ <span class="cline-any cline-yes">4x</span>
410
+ <span class="cline-any cline-yes">4x</span>
411
+ <span class="cline-any cline-yes">4x</span>
412
+ <span class="cline-any cline-yes">4x</span>
413
+ <span class="cline-any cline-yes">4x</span>
414
+ <span class="cline-any cline-yes">4x</span>
415
+ <span class="cline-any cline-yes">4x</span>
416
+ <span class="cline-any cline-yes">4x</span>
417
+ <span class="cline-any cline-yes">4x</span>
418
+ <span class="cline-any cline-yes">4x</span>
419
+ <span class="cline-any cline-yes">4x</span>
420
+ <span class="cline-any cline-yes">4x</span>
421
+ <span class="cline-any cline-yes">4x</span>
422
+ <span class="cline-any cline-yes">4x</span>
423
+ <span class="cline-any cline-yes">4x</span>
424
+ <span class="cline-any cline-yes">4x</span>
425
+ <span class="cline-any cline-yes">4x</span>
426
+ <span class="cline-any cline-yes">4x</span>
427
+ <span class="cline-any cline-yes">4x</span>
428
+ <span class="cline-any cline-yes">4x</span>
429
+ <span class="cline-any cline-yes">4x</span>
430
+ <span class="cline-any cline-yes">4x</span>
431
+ <span class="cline-any cline-yes">4x</span>
432
+ <span class="cline-any cline-yes">4x</span>
433
+ <span class="cline-any cline-yes">4x</span>
434
+ <span class="cline-any cline-yes">4x</span>
435
+ <span class="cline-any cline-yes">4x</span>
436
+ <span class="cline-any cline-yes">4x</span>
437
+ <span class="cline-any cline-yes">4x</span>
438
+ <span class="cline-any cline-yes">4x</span>
439
+ <span class="cline-any cline-yes">4x</span>
440
+ <span class="cline-any cline-yes">4x</span>
441
+ <span class="cline-any cline-yes">4x</span>
442
+ <span class="cline-any cline-yes">4x</span>
443
+ <span class="cline-any cline-yes">4x</span>
444
+ <span class="cline-any cline-yes">4x</span>
445
+ <span class="cline-any cline-yes">4x</span>
446
+ <span class="cline-any cline-yes">4x</span>
447
+ <span class="cline-any cline-yes">4x</span>
448
+ <span class="cline-any cline-yes">4x</span>
449
+ <span class="cline-any cline-yes">4x</span>
294
450
  <span class="cline-any cline-yes">1x</span>
295
451
  <span class="cline-any cline-yes">1x</span>
296
452
  <span class="cline-any cline-yes">1x</span>
@@ -427,6 +583,9 @@ Commands:
427
583
  generate-viewport-audit Route-list → 7 viewport × theme spec.ts
428
584
  generate-cwv-diag Route-list → CWV synthetic measurement spec.ts
429
585
  doctor Diagnose project config (config-files, deps, conventions)
586
+ bootstrap Scaffold playwright.config.ts + e2e/ + generate.ts
587
+ summarize Read CWV JSON-report → human-readable summary
588
+ diff Compare two CWV reports → regression analysis
430
589
  version Print package version
431
590
  help This message
432
591
  &nbsp;
@@ -447,8 +606,83 @@ Flags (generate-cwv-diag):
447
606
  &nbsp;
448
607
  Flags (doctor):
449
608
  --pwd &lt;path&gt; Project root (default: cwd)
609
+ &nbsp;
610
+ Flags (bootstrap):
611
+ --pwd &lt;path&gt; Project root (default: cwd)
612
+ --force Overwrite existing files
613
+ &nbsp;
614
+ Flags (summarize):
615
+ --report &lt;path&gt; Path to CWV JSON-report
616
+ --format &lt;fmt&gt; Output format: 'markdown' (default), 'json'
617
+ &nbsp;
618
+ Flags (diff):
619
+ --old &lt;path&gt; Path to baseline CWV JSON-report
620
+ --new &lt;path&gt; Path to current CWV JSON-report
621
+ --tolerance &lt;pct&gt; Stable-tolerance % (default 5)
450
622
  `;
451
623
  }
624
+ &nbsp;
625
+ /**
626
+ * Bootstrap scaffold — visszaadja a generálandó fájlok mappáját
627
+ * ({ path → content }), a CLI ezeket beírja.
628
+ */
629
+ static bootstrapFiles(): Record&lt;string, string&gt; {
630
+ return {
631
+ 'playwright.config.ts': `import { defineConfig, devices } from '@playwright/test';
632
+ &nbsp;
633
+ export default defineConfig({
634
+ testDir: './e2e/tests',
635
+ fullyParallel: true,
636
+ retries: 0,
637
+ reporter: [['html'], ['list']],
638
+ use: {
639
+ baseURL: process.env.E2E_BASE_URL || 'http://localhost:4200',
640
+ ignoreHTTPSErrors: process.env.E2E_IGNORE_HTTPS_ERRORS === '1',
641
+ trace: 'retain-on-failure',
642
+ },
643
+ projects: [{ name: 'chromium', use: { ...devices['Desktop Chrome'] } }],
644
+ });
645
+ `,
646
+ 'e2e/generate.ts': `import { DyE2E_FormSuite_Generator } from '@futdevpro/dynamo-e2e/generators';
647
+ import * as fs from 'fs';
648
+ import * as path from 'path';
649
+ &nbsp;
650
+ const OUT_DIR: string = path.join(__dirname, 'tests/generated');
651
+ fs.mkdirSync(OUT_DIR, { recursive: true });
652
+ &nbsp;
653
+ // Példa: 1 mintaform — bővítsd a saját Settings POJO-iddal
654
+ const exampleConfig = {
655
+ formSettings: {
656
+ key: 'login',
657
+ fields: [
658
+ { key: 'email', type: 'text', required: true, maxLength: 254 },
659
+ { key: 'password', type: 'password', required: true, minLength: 8 },
660
+ ],
661
+ },
662
+ formRoute: '/login',
663
+ formSelector: 'dynamo-form-new',
664
+ };
665
+ &nbsp;
666
+ const spec = DyE2E_FormSuite_Generator.emit(exampleConfig);
667
+ fs.writeFileSync(path.join(OUT_DIR, 'login.spec.ts'), spec);
668
+ console.log('[generate] wrote', fs.readdirSync(OUT_DIR).length, 'spec files');
669
+ `,
670
+ 'e2e/tests/.gitkeep': '',
671
+ 'e2e/tests/generated/.gitkeep': '',
672
+ 'e2e/README.md': `# E2E tests (dynamo-e2e)
673
+ &nbsp;
674
+ \`\`\`bash
675
+ # Generate
676
+ node e2e/generate.ts
677
+ &nbsp;
678
+ # Run
679
+ npx playwright test
680
+ \`\`\`
681
+ &nbsp;
682
+ See: https://github.com/futdevpro/dynamo-e2e/blob/master/__documentations/getting-started.md
683
+ `,
684
+ };
685
+ }
452
686
  &nbsp;
453
687
  /**
454
688
  * Doctor parancs — projekt-config-validáció.
@@ -544,7 +778,7 @@ Flags (doctor):
544
778
  <div class='footer quiet pad2 space-top1 center small'>
545
779
  Code coverage generated by
546
780
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
547
- at 2026-06-10T06:03:15.190Z
781
+ at 2026-06-10T06:35:01.345Z
548
782
  </div>
549
783
  <script src="../../prettify.js"></script>
550
784
  <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:03:15.190Z
592
+ at 2026-06-10T06:35:01.345Z
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:03:15.190Z
208
+ at 2026-06-10T06:35:01.345Z
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">98.95% </span>
26
+ <span class="strong">99.06% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>662/669</span>
28
+ <span class='fraction'>740/747</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.95% </span>
33
+ <span class="strong">83.05% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>146/176</span>
35
+ <span class='fraction'>147/177</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'>20/20</span>
42
+ <span class='fraction'>21/21</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">98.95% </span>
47
+ <span class="strong">99.06% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>662/669</span>
49
+ <span class='fraction'>740/747</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="158" class="abs high">158/158</td>
88
- <td data-value="96.29" class="pct high">96.29%</td>
89
- <td data-value="27" class="abs high">26/27</td>
87
+ <td data-value="236" class="abs high">236/236</td>
88
+ <td data-value="96.42" class="pct high">96.42%</td>
89
+ <td data-value="28" class="abs high">27/28</td>
90
90
  <td data-value="100" class="pct high">100%</td>
91
- <td data-value="5" class="abs high">5/5</td>
91
+ <td data-value="6" class="abs high">6/6</td>
92
92
  <td data-value="100" class="pct high">100%</td>
93
- <td data-value="158" class="abs high">158/158</td>
93
+ <td data-value="236" class="abs high">236/236</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
@@ -176,7 +176,7 @@
176
176
  <div class='footer quiet pad2 space-top1 center small'>
177
177
  Code coverage generated by
178
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
179
- at 2026-06-10T06:03:15.190Z
179
+ at 2026-06-10T06:35:01.345Z
180
180
  </div>
181
181
  <script src="../../prettify.js"></script>
182
182
  <script>
@@ -283,7 +283,7 @@ export class DyE2E_SpecEmission_Util {
283
283
  <div class='footer quiet pad2 space-top1 center small'>
284
284
  Code coverage generated by
285
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at 2026-06-10T06:03:15.190Z
286
+ at 2026-06-10T06:35:01.345Z
287
287
  </div>
288
288
  <script src="../../prettify.js"></script>
289
289
  <script>
@@ -508,7 +508,7 @@ export class DyE2E_TestCaseFilter_Util {
508
508
  <div class='footer quiet pad2 space-top1 center small'>
509
509
  Code coverage generated by
510
510
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
511
- at 2026-06-10T06:03:15.190Z
511
+ at 2026-06-10T06:35:01.345Z
512
512
  </div>
513
513
  <script src="../../prettify.js"></script>
514
514
  <script>
@@ -298,7 +298,7 @@ ${DyE2E_SpecEmission_Util.indent(body, 1)}
298
298
  <div class='footer quiet pad2 space-top1 center small'>
299
299
  Code coverage generated by
300
300
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
301
- at 2026-06-10T06:03:15.190Z
301
+ at 2026-06-10T06:35:01.345Z
302
302
  </div>
303
303
  <script src="../../prettify.js"></script>
304
304
  <script>
@@ -391,7 +391,7 @@ ${fieldBlocks.join('\n\n')}${formLevelBlock}
391
391
  <div class='footer quiet pad2 space-top1 center small'>
392
392
  Code coverage generated by
393
393
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
394
- at 2026-06-10T06:03:15.190Z
394
+ at 2026-06-10T06:35:01.345Z
395
395
  </div>
396
396
  <script src="../prettify.js"></script>
397
397
  <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 2026-06-10T06:03:15.190Z
119
+ at 2026-06-10T06:35:01.345Z
120
120
  </div>
121
121
  <script src="../prettify.js"></script>
122
122
  <script>
@@ -292,7 +292,7 @@ ${blocks.join('\n\n')}
292
292
  <div class='footer quiet pad2 space-top1 center small'>
293
293
  Code coverage generated by
294
294
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
295
- at 2026-06-10T06:03:15.190Z
295
+ at 2026-06-10T06:35:01.345Z
296
296
  </div>
297
297
  <script src="../prettify.js"></script>
298
298
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">98.2% </span>
26
+ <span class="strong">98.38% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>2189/2229</span>
28
+ <span class='fraction'>2437/2477</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">86.43% </span>
33
+ <span class="strong">86.15% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>344/398</span>
35
+ <span class='fraction'>392/455</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">97.36% </span>
40
+ <span class="strong">97.5% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>111/114</span>
42
+ <span class='fraction'>117/120</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">98.2% </span>
47
+ <span class="strong">98.38% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>2189/2229</span>
49
+ <span class='fraction'>2437/2477</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,17 +155,17 @@
155
155
 
156
156
  <tr>
157
157
  <td class="file high" data-value="cwv/_collections"><a href="cwv/_collections/index.html">cwv/_collections</a></td>
158
- <td data-value="98.3" class="pic high">
158
+ <td data-value="98.75" class="pic high">
159
159
  <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
160
160
  </td>
161
- <td data-value="98.3" class="pct high">98.3%</td>
162
- <td data-value="471" class="abs high">463/471</td>
163
- <td data-value="85.33" class="pct high">85.33%</td>
164
- <td data-value="75" class="abs high">64/75</td>
161
+ <td data-value="98.75" class="pct high">98.75%</td>
162
+ <td data-value="641" class="abs high">633/641</td>
163
+ <td data-value="84.73" class="pct high">84.73%</td>
164
+ <td data-value="131" class="abs high">111/131</td>
165
165
  <td data-value="100" class="pct high">100%</td>
166
- <td data-value="7" class="abs high">7/7</td>
167
- <td data-value="98.3" class="pct high">98.3%</td>
168
- <td data-value="471" class="abs high">463/471</td>
166
+ <td data-value="12" class="abs high">12/12</td>
167
+ <td data-value="98.75" class="pct high">98.75%</td>
168
+ <td data-value="641" class="abs high">633/641</td>
169
169
  </tr>
170
170
 
171
171
  <tr>
@@ -185,17 +185,17 @@
185
185
 
186
186
  <tr>
187
187
  <td class="file high" data-value="generators/_collections"><a href="generators/_collections/index.html">generators/_collections</a></td>
188
- <td data-value="98.95" class="pic high">
189
- <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
188
+ <td data-value="99.06" class="pic high">
189
+ <div class="chart"><div class="cover-fill" style="width: 99%"></div><div class="cover-empty" style="width: 1%"></div></div>
190
190
  </td>
191
- <td data-value="98.95" class="pct high">98.95%</td>
192
- <td data-value="669" class="abs high">662/669</td>
193
- <td data-value="82.95" class="pct high">82.95%</td>
194
- <td data-value="176" class="abs high">146/176</td>
191
+ <td data-value="99.06" class="pct high">99.06%</td>
192
+ <td data-value="747" class="abs high">740/747</td>
193
+ <td data-value="83.05" class="pct high">83.05%</td>
194
+ <td data-value="177" class="abs high">147/177</td>
195
195
  <td data-value="100" class="pct high">100%</td>
196
- <td data-value="20" class="abs high">20/20</td>
197
- <td data-value="98.95" class="pct high">98.95%</td>
198
- <td data-value="669" class="abs high">662/669</td>
196
+ <td data-value="21" class="abs high">21/21</td>
197
+ <td data-value="99.06" class="pct high">99.06%</td>
198
+ <td data-value="747" class="abs high">740/747</td>
199
199
  </tr>
200
200
 
201
201
  <tr>
@@ -251,7 +251,7 @@
251
251
  <div class='footer quiet pad2 space-top1 center small'>
252
252
  Code coverage generated by
253
253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
254
- at 2026-06-10T06:03:15.190Z
254
+ at 2026-06-10T06:35:01.345Z
255
255
  </div>
256
256
  <script src="prettify.js"></script>
257
257
  <script>
@@ -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:03:15.288Z
104
+ at 2026-06-10T06:35:01.436Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>