@futdevpro/dynamo-e2e 1.17.0 → 1.18.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 (323) hide show
  1. package/.dynamo/logs/cicd-pipeline/status.json +67 -0
  2. package/CHANGELOG.md +98 -0
  3. package/bin/dye2e.js +170 -0
  4. package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
  5. package/build/_modules/generators/_collections/form-level-emission.util.js +3 -1
  6. package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
  7. package/build/_modules/generators/_collections/test-case-filter.util.d.ts.map +1 -1
  8. package/build/_modules/generators/_collections/test-case-filter.util.js +24 -0
  9. package/build/_modules/generators/_collections/test-case-filter.util.js.map +1 -1
  10. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +7 -0
  11. package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
  12. package/build/_modules/generators/_models/form-suite-generate-options.interface.d.ts +19 -0
  13. package/build/_modules/generators/_models/form-suite-generate-options.interface.d.ts.map +1 -1
  14. package/build/_modules/generators/form-suite.generator.d.ts.map +1 -1
  15. package/build/_modules/generators/form-suite.generator.js +8 -3
  16. package/build/_modules/generators/form-suite.generator.js.map +1 -1
  17. package/build/_modules/generators/form-suite.generator.spec.js +44 -0
  18. package/build/_modules/generators/form-suite.generator.spec.js.map +1 -1
  19. package/build/_modules/generators/test-case-filter-edge.spec.js +37 -4
  20. package/build/_modules/generators/test-case-filter-edge.spec.js.map +1 -1
  21. package/build/_modules/vqa/_collections/constants/anti-flake-css.const.d.ts +8 -0
  22. package/build/_modules/vqa/_collections/constants/anti-flake-css.const.d.ts.map +1 -0
  23. package/build/_modules/vqa/_collections/constants/anti-flake-css.const.js +21 -0
  24. package/build/_modules/vqa/_collections/constants/anti-flake-css.const.js.map +1 -0
  25. package/build/_modules/vqa/_collections/constants/axe-page-script.const.d.ts +21 -0
  26. package/build/_modules/vqa/_collections/constants/axe-page-script.const.d.ts.map +1 -0
  27. package/build/_modules/vqa/_collections/constants/axe-page-script.const.js +57 -0
  28. package/build/_modules/vqa/_collections/constants/axe-page-script.const.js.map +1 -0
  29. package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.d.ts +13 -0
  30. package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.d.ts.map +1 -0
  31. package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.js +318 -0
  32. package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.js.map +1 -0
  33. package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts +14 -0
  34. package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts.map +1 -0
  35. package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js +82 -0
  36. package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js.map +1 -0
  37. package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.d.ts +23 -0
  38. package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.d.ts.map +1 -0
  39. package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.js +37 -0
  40. package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.js.map +1 -0
  41. package/build/_modules/vqa/_collections/index.d.ts +10 -0
  42. package/build/_modules/vqa/_collections/index.d.ts.map +1 -0
  43. package/build/_modules/vqa/_collections/index.js +26 -0
  44. package/build/_modules/vqa/_collections/index.js.map +1 -0
  45. package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts +23 -0
  46. package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts.map +1 -0
  47. package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js +112 -0
  48. package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js.map +1 -0
  49. package/build/_modules/vqa/_collections/utils/finding-id.util.d.ts +18 -0
  50. package/build/_modules/vqa/_collections/utils/finding-id.util.d.ts.map +1 -0
  51. package/build/_modules/vqa/_collections/utils/finding-id.util.js +42 -0
  52. package/build/_modules/vqa/_collections/utils/finding-id.util.js.map +1 -0
  53. package/build/_modules/vqa/_collections/utils/finding-validator.util.d.ts +21 -0
  54. package/build/_modules/vqa/_collections/utils/finding-validator.util.d.ts.map +1 -0
  55. package/build/_modules/vqa/_collections/utils/finding-validator.util.js +114 -0
  56. package/build/_modules/vqa/_collections/utils/finding-validator.util.js.map +1 -0
  57. package/build/_modules/vqa/_collections/utils/manifest-validator.util.d.ts +27 -0
  58. package/build/_modules/vqa/_collections/utils/manifest-validator.util.d.ts.map +1 -0
  59. package/build/_modules/vqa/_collections/utils/manifest-validator.util.js +148 -0
  60. package/build/_modules/vqa/_collections/utils/manifest-validator.util.js.map +1 -0
  61. package/build/_modules/vqa/_collections/utils/risk-score.util.d.ts +48 -0
  62. package/build/_modules/vqa/_collections/utils/risk-score.util.d.ts.map +1 -0
  63. package/build/_modules/vqa/_collections/utils/risk-score.util.js +77 -0
  64. package/build/_modules/vqa/_collections/utils/risk-score.util.js.map +1 -0
  65. package/build/_modules/vqa/_enums/dom-evidence-detector.enum.d.ts +44 -0
  66. package/build/_modules/vqa/_enums/dom-evidence-detector.enum.d.ts.map +1 -0
  67. package/build/_modules/vqa/_enums/dom-evidence-detector.enum.js +48 -0
  68. package/build/_modules/vqa/_enums/dom-evidence-detector.enum.js.map +1 -0
  69. package/build/_modules/vqa/_enums/finding-severity.enum.d.ts +17 -0
  70. package/build/_modules/vqa/_enums/finding-severity.enum.d.ts.map +1 -0
  71. package/build/_modules/vqa/_enums/finding-severity.enum.js +21 -0
  72. package/build/_modules/vqa/_enums/finding-severity.enum.js.map +1 -0
  73. package/build/_modules/vqa/_enums/finding-status.enum.d.ts +23 -0
  74. package/build/_modules/vqa/_enums/finding-status.enum.d.ts.map +1 -0
  75. package/build/_modules/vqa/_enums/finding-status.enum.js +27 -0
  76. package/build/_modules/vqa/_enums/finding-status.enum.js.map +1 -0
  77. package/build/_modules/vqa/_enums/index.d.ts +5 -0
  78. package/build/_modules/vqa/_enums/index.d.ts.map +1 -0
  79. package/build/_modules/vqa/_enums/index.js +21 -0
  80. package/build/_modules/vqa/_enums/index.js.map +1 -0
  81. package/build/_modules/vqa/_enums/visual-state-type.enum.d.ts +38 -0
  82. package/build/_modules/vqa/_enums/visual-state-type.enum.d.ts.map +1 -0
  83. package/build/_modules/vqa/_enums/visual-state-type.enum.js +49 -0
  84. package/build/_modules/vqa/_enums/visual-state-type.enum.js.map +1 -0
  85. package/build/_modules/vqa/_models/interfaces/critical-element.interface.d.ts +22 -0
  86. package/build/_modules/vqa/_models/interfaces/critical-element.interface.d.ts.map +1 -0
  87. package/build/_modules/vqa/_models/interfaces/critical-element.interface.js +3 -0
  88. package/build/_modules/vqa/_models/interfaces/critical-element.interface.js.map +1 -0
  89. package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.d.ts +21 -0
  90. package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.d.ts.map +1 -0
  91. package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.js +3 -0
  92. package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.js.map +1 -0
  93. package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.d.ts +16 -0
  94. package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.d.ts.map +1 -0
  95. package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.js +3 -0
  96. package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.js.map +1 -0
  97. package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts +56 -0
  98. package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts.map +1 -0
  99. package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.js +3 -0
  100. package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.js.map +1 -0
  101. package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts +58 -0
  102. package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts.map +1 -0
  103. package/build/_modules/vqa/_models/interfaces/finding.interface.js +3 -0
  104. package/build/_modules/vqa/_models/interfaces/finding.interface.js.map +1 -0
  105. package/build/_modules/vqa/_models/interfaces/flow-step.interface.d.ts +32 -0
  106. package/build/_modules/vqa/_models/interfaces/flow-step.interface.d.ts.map +1 -0
  107. package/build/_modules/vqa/_models/interfaces/flow-step.interface.js +3 -0
  108. package/build/_modules/vqa/_models/interfaces/flow-step.interface.js.map +1 -0
  109. package/build/_modules/vqa/_models/interfaces/index.d.ts +8 -0
  110. package/build/_modules/vqa/_models/interfaces/index.d.ts.map +1 -0
  111. package/build/_modules/vqa/_models/interfaces/index.js +24 -0
  112. package/build/_modules/vqa/_models/interfaces/index.js.map +1 -0
  113. package/build/_modules/vqa/_models/interfaces/visual-state.interface.d.ts +34 -0
  114. package/build/_modules/vqa/_models/interfaces/visual-state.interface.d.ts.map +1 -0
  115. package/build/_modules/vqa/_models/interfaces/visual-state.interface.js +3 -0
  116. package/build/_modules/vqa/_models/interfaces/visual-state.interface.js.map +1 -0
  117. package/build/_modules/vqa/capture-spec.generator.spec.d.ts +2 -0
  118. package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +1 -0
  119. package/build/_modules/vqa/capture-spec.generator.spec.js +126 -0
  120. package/build/_modules/vqa/capture-spec.generator.spec.js.map +1 -0
  121. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +2 -0
  122. package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +1 -0
  123. package/build/_modules/vqa/comparison-bundle.generator.spec.js +130 -0
  124. package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +1 -0
  125. package/build/_modules/vqa/finding-validator.spec.d.ts +2 -0
  126. package/build/_modules/vqa/finding-validator.spec.d.ts.map +1 -0
  127. package/build/_modules/vqa/finding-validator.spec.js +136 -0
  128. package/build/_modules/vqa/finding-validator.spec.js.map +1 -0
  129. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts +19 -0
  130. package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts.map +1 -0
  131. package/build/_modules/vqa/generators/ai-agent-readme.template.js +179 -0
  132. package/build/_modules/vqa/generators/ai-agent-readme.template.js.map +1 -0
  133. package/build/_modules/vqa/generators/bundle-summary.template.d.ts +9 -0
  134. package/build/_modules/vqa/generators/bundle-summary.template.d.ts.map +1 -0
  135. package/build/_modules/vqa/generators/bundle-summary.template.js +73 -0
  136. package/build/_modules/vqa/generators/bundle-summary.template.js.map +1 -0
  137. package/build/_modules/vqa/generators/capture-spec.generator.d.ts +33 -0
  138. package/build/_modules/vqa/generators/capture-spec.generator.d.ts.map +1 -0
  139. package/build/_modules/vqa/generators/capture-spec.generator.js +194 -0
  140. package/build/_modules/vqa/generators/capture-spec.generator.js.map +1 -0
  141. package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts +37 -0
  142. package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts.map +1 -0
  143. package/build/_modules/vqa/generators/comparison-bundle.generator.js +238 -0
  144. package/build/_modules/vqa/generators/comparison-bundle.generator.js.map +1 -0
  145. package/build/_modules/vqa/generators/index.d.ts +6 -0
  146. package/build/_modules/vqa/generators/index.d.ts.map +1 -0
  147. package/build/_modules/vqa/generators/index.js +22 -0
  148. package/build/_modules/vqa/generators/index.js.map +1 -0
  149. package/build/_modules/vqa/generators/review-bundle.generator.d.ts +49 -0
  150. package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -0
  151. package/build/_modules/vqa/generators/review-bundle.generator.js +127 -0
  152. package/build/_modules/vqa/generators/review-bundle.generator.js.map +1 -0
  153. package/build/_modules/vqa/index.d.ts +6 -0
  154. package/build/_modules/vqa/index.d.ts.map +1 -0
  155. package/build/_modules/vqa/index.js +25 -0
  156. package/build/_modules/vqa/index.js.map +1 -0
  157. package/build/_modules/vqa/manifest-validator.spec.d.ts +2 -0
  158. package/build/_modules/vqa/manifest-validator.spec.d.ts.map +1 -0
  159. package/build/_modules/vqa/manifest-validator.spec.js +125 -0
  160. package/build/_modules/vqa/manifest-validator.spec.js.map +1 -0
  161. package/build/_modules/vqa/review-bundle.generator.spec.d.ts +2 -0
  162. package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +1 -0
  163. package/build/_modules/vqa/review-bundle.generator.spec.js +166 -0
  164. package/build/_modules/vqa/review-bundle.generator.spec.js.map +1 -0
  165. package/build/_modules/vqa/wave-7.spec.d.ts +2 -0
  166. package/build/_modules/vqa/wave-7.spec.d.ts.map +1 -0
  167. package/build/_modules/vqa/wave-7.spec.js +203 -0
  168. package/build/_modules/vqa/wave-7.spec.js.map +1 -0
  169. package/build/index.d.ts +1 -0
  170. package/build/index.d.ts.map +1 -1
  171. package/build/index.js +1 -0
  172. package/build/index.js.map +1 -1
  173. package/coverage/contracts/_collections/index.html +1 -1
  174. package/coverage/contracts/_collections/index.ts.html +1 -1
  175. package/coverage/contracts/_collections/utils/index.html +1 -1
  176. package/coverage/contracts/_collections/utils/test-id.util.ts.html +10 -10
  177. package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  178. package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  179. package/coverage/contracts/_enums/index.html +1 -1
  180. package/coverage/contracts/_enums/index.ts.html +1 -1
  181. package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  182. package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  183. package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  184. package/coverage/contracts/index.html +1 -1
  185. package/coverage/contracts/index.ts.html +1 -1
  186. package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  187. package/coverage/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  188. package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  189. package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
  190. package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  191. package/coverage/cwv/_collections/index.html +7 -7
  192. package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  193. package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  194. package/coverage/cwv/cwv-suite.generator.ts.html +3 -3
  195. package/coverage/cwv/index.html +5 -5
  196. package/coverage/generators/_collections/cli-runner.util.ts.html +1 -1
  197. package/coverage/generators/_collections/config-validator.util.ts.html +1 -1
  198. package/coverage/generators/_collections/field-emission.util.ts.html +86 -86
  199. package/coverage/generators/_collections/form-level-emission.util.ts.html +39 -33
  200. package/coverage/generators/_collections/index.html +20 -20
  201. package/coverage/generators/_collections/json-schema.util.ts.html +1 -1
  202. package/coverage/generators/_collections/preset-configs.const.ts.html +1 -1
  203. package/coverage/generators/_collections/spec-emission.util.ts.html +35 -35
  204. package/coverage/generators/_collections/test-case-filter.util.ts.html +159 -57
  205. package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
  206. package/coverage/generators/form-suite.generator.ts.html +97 -79
  207. package/coverage/generators/index.html +18 -18
  208. package/coverage/generators/viewport-suite.generator.ts.html +3 -3
  209. package/coverage/index.html +83 -38
  210. package/coverage/lcov-report/contracts/_collections/index.html +1 -1
  211. package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
  212. package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
  213. package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +10 -10
  214. package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
  215. package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
  216. package/coverage/lcov-report/contracts/_enums/index.html +1 -1
  217. package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
  218. package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
  219. package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
  220. package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
  221. package/coverage/lcov-report/contracts/index.html +1 -1
  222. package/coverage/lcov-report/contracts/index.ts.html +1 -1
  223. package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
  224. package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +4 -4
  225. package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
  226. package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
  227. package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
  228. package/coverage/lcov-report/cwv/_collections/index.html +7 -7
  229. package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
  230. package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
  231. package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +3 -3
  232. package/coverage/lcov-report/cwv/index.html +5 -5
  233. package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +1 -1
  234. package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +1 -1
  235. package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +86 -86
  236. package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +39 -33
  237. package/coverage/lcov-report/generators/_collections/index.html +20 -20
  238. package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +1 -1
  239. package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +1 -1
  240. package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +35 -35
  241. package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +159 -57
  242. package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
  243. package/coverage/lcov-report/generators/form-suite.generator.ts.html +97 -79
  244. package/coverage/lcov-report/generators/index.html +18 -18
  245. package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +3 -3
  246. package/coverage/lcov-report/index.html +83 -38
  247. package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  248. package/coverage/lcov-report/runtime/_collections/index.html +7 -7
  249. package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +3 -3
  250. package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +5 -5
  251. package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +2 -2
  252. package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +2 -2
  253. package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +2 -2
  254. package/coverage/lcov-report/runtime/_services/index.html +9 -9
  255. package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +2 -2
  256. package/coverage/lcov-report/runtime/_services/logger.service.ts.html +5 -5
  257. package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +2 -2
  258. package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +2 -2
  259. package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
  260. package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  261. package/coverage/lcov-report/runtime/index.html +1 -1
  262. package/coverage/lcov-report/runtime/index.ts.html +1 -1
  263. package/coverage/lcov-report/vqa/_collections/utils/deterministic-finding.util.ts.html +481 -0
  264. package/coverage/lcov-report/vqa/_collections/utils/finding-id.util.ts.html +214 -0
  265. package/coverage/lcov-report/vqa/_collections/utils/finding-validator.util.ts.html +463 -0
  266. package/coverage/lcov-report/vqa/_collections/utils/index.html +176 -0
  267. package/coverage/lcov-report/vqa/_collections/utils/manifest-validator.util.ts.html +652 -0
  268. package/coverage/lcov-report/vqa/_collections/utils/risk-score.util.ts.html +424 -0
  269. package/coverage/lcov-report/vqa/_enums/dom-evidence-detector.enum.ts.html +214 -0
  270. package/coverage/lcov-report/vqa/_enums/finding-severity.enum.ts.html +133 -0
  271. package/coverage/lcov-report/vqa/_enums/finding-status.enum.ts.html +151 -0
  272. package/coverage/lcov-report/vqa/_enums/index.html +161 -0
  273. package/coverage/lcov-report/vqa/_enums/visual-state-type.enum.ts.html +235 -0
  274. package/coverage/lcov-report/vqa/generators/ai-agent-readme.template.ts.html +643 -0
  275. package/coverage/lcov-report/vqa/generators/bundle-summary.template.ts.html +316 -0
  276. package/coverage/lcov-report/vqa/generators/capture-spec.generator.ts.html +835 -0
  277. package/coverage/lcov-report/vqa/generators/comparison-bundle.generator.ts.html +898 -0
  278. package/coverage/lcov-report/vqa/generators/index.html +176 -0
  279. package/coverage/lcov-report/vqa/generators/review-bundle.generator.ts.html +559 -0
  280. package/coverage/lcov.info +2868 -623
  281. package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
  282. package/coverage/runtime/_collections/index.html +7 -7
  283. package/coverage/runtime/_collections/unique-generator.util.ts.html +3 -3
  284. package/coverage/runtime/_collections/wait-helpers.util.ts.html +5 -5
  285. package/coverage/runtime/_services/dialog-page-object.ts.html +2 -2
  286. package/coverage/runtime/_services/field-page-object.ts.html +2 -2
  287. package/coverage/runtime/_services/form-page-object.ts.html +2 -2
  288. package/coverage/runtime/_services/index.html +9 -9
  289. package/coverage/runtime/_services/loader-page-object.ts.html +2 -2
  290. package/coverage/runtime/_services/logger.service.ts.html +5 -5
  291. package/coverage/runtime/_services/login-flow-helper.base.ts.html +2 -2
  292. package/coverage/runtime/_services/nav-page-object.ts.html +2 -2
  293. package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
  294. package/coverage/runtime/_services/wave-2b-page-objects.ts.html +6 -6
  295. package/coverage/runtime/index.html +1 -1
  296. package/coverage/runtime/index.ts.html +1 -1
  297. package/coverage/tmp/coverage-23996-1781139437397-0.json +1 -0
  298. package/coverage/tmp/coverage-24001-1781139435697-0.json +1 -0
  299. package/coverage/vqa/_collections/utils/deterministic-finding.util.ts.html +481 -0
  300. package/coverage/vqa/_collections/utils/finding-id.util.ts.html +214 -0
  301. package/coverage/vqa/_collections/utils/finding-validator.util.ts.html +463 -0
  302. package/coverage/vqa/_collections/utils/index.html +176 -0
  303. package/coverage/vqa/_collections/utils/manifest-validator.util.ts.html +652 -0
  304. package/coverage/vqa/_collections/utils/risk-score.util.ts.html +424 -0
  305. package/coverage/vqa/_enums/dom-evidence-detector.enum.ts.html +214 -0
  306. package/coverage/vqa/_enums/finding-severity.enum.ts.html +133 -0
  307. package/coverage/vqa/_enums/finding-status.enum.ts.html +151 -0
  308. package/coverage/vqa/_enums/index.html +161 -0
  309. package/coverage/vqa/_enums/visual-state-type.enum.ts.html +235 -0
  310. package/coverage/vqa/generators/ai-agent-readme.template.ts.html +643 -0
  311. package/coverage/vqa/generators/bundle-summary.template.ts.html +316 -0
  312. package/coverage/vqa/generators/capture-spec.generator.ts.html +835 -0
  313. package/coverage/vqa/generators/comparison-bundle.generator.ts.html +898 -0
  314. package/coverage/vqa/generators/index.html +176 -0
  315. package/coverage/vqa/generators/review-bundle.generator.ts.html +559 -0
  316. package/package.json +7 -1
  317. package/coverage/tmp/coverage-228636-1781075225757-0.json +0 -1
  318. package/coverage/tmp/coverage-228704-1781075227108-0.json +0 -1
  319. package/dogfood/generated/date-range-field-new.spec.ts +0 -54
  320. package/dogfood/generated/password-field-new.spec.ts +0 -97
  321. package/dogfood/generated/radio-select-field-new.spec.ts +0 -69
  322. package/dogfood/generated/slider-field-new.spec.ts +0 -47
  323. package/dogfood/generated/text-field-new.spec.ts +0 -0
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const fs = __importStar(require("fs"));
27
+ const path = __importStar(require("path"));
28
+ const os = __importStar(require("os"));
29
+ const comparison_bundle_generator_1 = require("./generators/comparison-bundle.generator");
30
+ const review_bundle_generator_1 = require("./generators/review-bundle.generator");
31
+ const visual_state_type_enum_1 = require("./_enums/visual-state-type.enum");
32
+ const vqa_standard_viewports_const_1 = require("./_collections/constants/vqa-standard-viewports.const");
33
+ describe('DyE2E_VQA_ComparisonBundle_Generator', () => {
34
+ let tmp;
35
+ const manifest = {
36
+ featureId: 'comp-feature',
37
+ featureName: 'Comp',
38
+ route: '/comp',
39
+ states: [{ stateId: 'default', type: visual_state_type_enum_1.DyE2E_VQA_VisualState_Type.default }],
40
+ viewports: [vqa_standard_viewports_const_1.DyE2E_VQA_StandardViewports_Const.desktop],
41
+ criticalElements: [{ key: 'c', selector: '.c', regionType: 'primary-cta' }],
42
+ };
43
+ beforeEach(() => {
44
+ tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'dye2e-vqa-comp-'));
45
+ });
46
+ afterEach(() => {
47
+ if (fs.existsSync(tmp)) {
48
+ fs.rmSync(tmp, { recursive: true, force: true });
49
+ }
50
+ });
51
+ function seedBundle(runId, stateData) {
52
+ const r = review_bundle_generator_1.DyE2E_VQA_ReviewBundle_Generator.generate(manifest, tmp, { runId, skipCaptureSpec: true });
53
+ const stateOut = path.join(r.bundlePath, 'states', 'default', 'desktop-portrait');
54
+ fs.mkdirSync(stateOut, { recursive: true });
55
+ fs.writeFileSync(path.join(stateOut, 'dom-snapshot.json'), JSON.stringify(stateData.dom));
56
+ fs.writeFileSync(path.join(stateOut, 'evidence.json'), JSON.stringify(stateData.evidence));
57
+ return r.bundlePath;
58
+ }
59
+ it('| writes README + finding-refs + run-id files', () => {
60
+ const beforeP = seedBundle('run-A', {
61
+ dom: { scroll: 1000 }, evidence: [{ detector: 'nested-scroll', detected: true }],
62
+ });
63
+ const afterP = seedBundle('run-B', {
64
+ dom: { scroll: 500 }, evidence: [{ detector: 'nested-scroll', detected: false }],
65
+ });
66
+ const r = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.generate(beforeP, afterP, manifest, ['VQA-org-comp-feature-001']);
67
+ expect(fs.existsSync(path.join(r.comparisonPath, 'README.md'))).toBeTrue();
68
+ expect(fs.existsSync(path.join(r.comparisonPath, 'finding-refs.json'))).toBeTrue();
69
+ expect(fs.readFileSync(path.join(r.comparisonPath, 'before-run-id.txt'), 'utf-8')).toBe('run-A');
70
+ expect(fs.readFileSync(path.join(r.comparisonPath, 'after-run-id.txt'), 'utf-8')).toBe('run-B');
71
+ });
72
+ it('| dom-diff emits changed-key delta', () => {
73
+ const beforeP = seedBundle('a', {
74
+ dom: { scroll: 1000, x: 1 }, evidence: [],
75
+ });
76
+ const afterP = seedBundle('b', {
77
+ dom: { scroll: 500, x: 1, newKey: true }, evidence: [],
78
+ });
79
+ const r = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.generate(beforeP, afterP, manifest, []);
80
+ const diff = JSON.parse(fs.readFileSync(path.join(r.comparisonPath, 'dom-diff', 'default', 'desktop-portrait.json'), 'utf-8'));
81
+ expect(diff.added?.newKey).toBe(true);
82
+ expect(diff.changed?.scroll?.before).toBe(1000);
83
+ expect(diff.changed?.scroll?.after).toBe(500);
84
+ });
85
+ it('| evidence-diff marks verdictChanged for nested-scroll', () => {
86
+ const beforeP = seedBundle('a', {
87
+ dom: {}, evidence: [{ detector: 'nested-scroll', detected: true }],
88
+ });
89
+ const afterP = seedBundle('b', {
90
+ dom: {}, evidence: [{ detector: 'nested-scroll', detected: false }],
91
+ });
92
+ const r = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.generate(beforeP, afterP, manifest, []);
93
+ const delta = JSON.parse(fs.readFileSync(path.join(r.comparisonPath, 'evidence-diff', 'default', 'desktop-portrait.json'), 'utf-8'));
94
+ expect(delta['nested-scroll']?.verdictChanged).toBe(true);
95
+ expect(delta['nested-scroll']?.before).toBe('detected');
96
+ expect(delta['nested-scroll']?.after).toBe('clean');
97
+ });
98
+ it('| evidence-diff marks unchanged when verdict same', () => {
99
+ const beforeP = seedBundle('a', {
100
+ dom: {}, evidence: [{ detector: 'nested-scroll', detected: false }],
101
+ });
102
+ const afterP = seedBundle('b', {
103
+ dom: {}, evidence: [{ detector: 'nested-scroll', detected: false }],
104
+ });
105
+ const r = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.generate(beforeP, afterP, manifest, []);
106
+ const delta = JSON.parse(fs.readFileSync(path.join(r.comparisonPath, 'evidence-diff', 'default', 'desktop-portrait.json'), 'utf-8'));
107
+ expect(delta['nested-scroll']?.unchanged).toBe(true);
108
+ });
109
+ it('| deepDiff handles null/null + value-equal + nested', () => {
110
+ const d1 = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.deepDiff(null, null);
111
+ expect(d1.unchanged).toBeTrue();
112
+ const d2 = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.deepDiff(5, 5);
113
+ expect(d2.unchanged).toBeTrue();
114
+ const d3 = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.deepDiff(5, 10);
115
+ expect(d3.before).toBe(5);
116
+ expect(d3.after).toBe(10);
117
+ const d4 = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.deepDiff(null, { a: 1 });
118
+ expect(d4.onlyAfter.a).toBe(1);
119
+ });
120
+ it('| README contains decision-rubric', () => {
121
+ const b = seedBundle('a', { dom: {}, evidence: [] });
122
+ const a = seedBundle('b', { dom: {}, evidence: [] });
123
+ const r = comparison_bundle_generator_1.DyE2E_VQA_ComparisonBundle_Generator.generate(b, a, manifest, ['VQA-org-comp-feature-001']);
124
+ const readme = fs.readFileSync(path.join(r.comparisonPath, 'README.md'), 'utf-8');
125
+ expect(readme).toContain('verified');
126
+ expect(readme).toContain('reopened');
127
+ expect(readme).toContain('VQA-org-comp-feature-001');
128
+ });
129
+ });
130
+ //# sourceMappingURL=comparison-bundle.generator.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-bundle.generator.spec.js","sourceRoot":"","sources":["../../../src/_modules/vqa/comparison-bundle.generator.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=finding-validator.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-validator.spec.d.ts","sourceRoot":"","sources":["../../../src/_modules/vqa/finding-validator.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const finding_validator_util_1 = require("./_collections/utils/finding-validator.util");
4
+ const finding_id_util_1 = require("./_collections/utils/finding-id.util");
5
+ const finding_severity_enum_1 = require("./_enums/finding-severity.enum");
6
+ const finding_status_enum_1 = require("./_enums/finding-status.enum");
7
+ describe('DyE2E_VQA_FindingValidator_Util', () => {
8
+ const validFinding = () => ({
9
+ findingId: 'VQA-organizer-tasks-modul-001',
10
+ featureId: 'tasks-modul',
11
+ stateId: 'default',
12
+ viewport: 'desktop',
13
+ screenshotRef: 'screenshots/default/desktop-full.png',
14
+ description: 'Primary CTA fold alatt mobile-on',
15
+ expectedBehavior: 'CTA látható legyen fold felett',
16
+ severity: finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.high,
17
+ status: finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open,
18
+ reproSteps: ['Nyisd meg /tasks', 'Görgesd alulra'],
19
+ aiConfidence: 0.85,
20
+ createdInRunId: 'run-001',
21
+ });
22
+ it('| accepts valid finding', () => {
23
+ const r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(validFinding());
24
+ expect(r.ok).toBeTrue();
25
+ });
26
+ it('| rejects non-object', () => {
27
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(null).ok).toBeFalse();
28
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate('x').ok).toBeFalse();
29
+ });
30
+ it('| flags malformed findingId', () => {
31
+ const f = validFinding();
32
+ f['findingId'] = 'TASK-001';
33
+ const r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
34
+ expect(r.errors.some((e) => e.path === '$.findingId' && e.code === 'invalid-format')).toBeTrue();
35
+ });
36
+ it('| flags unknown severity / status', () => {
37
+ const f = validFinding();
38
+ f['severity'] = 'critical';
39
+ f['status'] = 'parked';
40
+ const r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
41
+ expect(r.errors.some((e) => e.path === '$.severity' && e.code === 'unknown-enum')).toBeTrue();
42
+ expect(r.errors.some((e) => e.path === '$.status' && e.code === 'unknown-enum')).toBeTrue();
43
+ });
44
+ it('| flags out-of-range aiConfidence', () => {
45
+ const f = validFinding();
46
+ f['aiConfidence'] = 1.5;
47
+ let r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
48
+ expect(r.errors.some((e) => e.path === '$.aiConfidence')).toBeTrue();
49
+ f['aiConfidence'] = -0.1;
50
+ r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
51
+ expect(r.errors.some((e) => e.path === '$.aiConfidence')).toBeTrue();
52
+ });
53
+ it('| flags empty reproSteps', () => {
54
+ const f = validFinding();
55
+ f['reproSteps'] = [];
56
+ const r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
57
+ expect(r.errors.some((e) => e.path === '$.reproSteps' && e.code === 'empty-array')).toBeTrue();
58
+ });
59
+ it('| flags invalid orientation', () => {
60
+ const f = validFinding();
61
+ f['orientation'] = 'sideways';
62
+ const r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
63
+ expect(r.errors.some((e) => e.path === '$.orientation')).toBeTrue();
64
+ });
65
+ it('| flags non-ISO createdAt', () => {
66
+ const f = validFinding();
67
+ f['createdAt'] = '2026-06-11';
68
+ const r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
69
+ expect(r.errors.some((e) => e.path === '$.createdAt' && e.code === 'invalid-format')).toBeTrue();
70
+ });
71
+ it('| accepts ISO createdAt', () => {
72
+ const f = validFinding();
73
+ f['createdAt'] = '2026-06-11T01:00:00.000Z';
74
+ const r = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(f);
75
+ expect(r.ok).toBeTrue();
76
+ });
77
+ describe('| canTransition', () => {
78
+ it('| open → inProgress allowed; open → verified denied', () => {
79
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.inProgress)).toBeTrue();
80
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.verified)).toBeFalse();
81
+ });
82
+ it('| inProgress → fixed → readyForReAudit → verified is the happy path', () => {
83
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.inProgress, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.fixed)).toBeTrue();
84
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.fixed, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.readyForReAudit)).toBeTrue();
85
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.readyForReAudit, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.verified)).toBeTrue();
86
+ });
87
+ it('| verified is terminal', () => {
88
+ const verified = finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.verified;
89
+ Object.values(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type).forEach((s) => {
90
+ if (s !== verified) {
91
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(verified, s)).toBeFalse();
92
+ }
93
+ });
94
+ });
95
+ it('| ignored / acceptedRisk → reopened decision-reversal', () => {
96
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.ignored, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.reopened)).toBeTrue();
97
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.acceptedRisk, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.reopened)).toBeTrue();
98
+ });
99
+ it('| same-status transition is a no-op', () => {
100
+ expect(finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.canTransition(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open, finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open)).toBeTrue();
101
+ });
102
+ });
103
+ });
104
+ describe('DyE2E_VQA_FindingId_Util', () => {
105
+ it('| generates 001 if empty', () => {
106
+ expect(finding_id_util_1.DyE2E_VQA_FindingId_Util.nextId('organizer', 'tasks-modul', []))
107
+ .toBe('VQA-organizer-tasks-modul-001');
108
+ });
109
+ it('| picks max+1', () => {
110
+ expect(finding_id_util_1.DyE2E_VQA_FindingId_Util.nextId('organizer', 'tasks-modul', [
111
+ 'VQA-organizer-tasks-modul-001',
112
+ 'VQA-organizer-tasks-modul-005',
113
+ 'VQA-organizer-tasks-modul-003',
114
+ ])).toBe('VQA-organizer-tasks-modul-006');
115
+ });
116
+ it('| ignores other-feature ids', () => {
117
+ expect(finding_id_util_1.DyE2E_VQA_FindingId_Util.nextId('organizer', 'tasks-modul', [
118
+ 'VQA-organizer-other-feature-099',
119
+ ])).toBe('VQA-organizer-tasks-modul-001');
120
+ });
121
+ it('| throws on non-kebab slug', () => {
122
+ expect(() => finding_id_util_1.DyE2E_VQA_FindingId_Util.nextId('Organizer', 'x', [])).toThrowError();
123
+ expect(() => finding_id_util_1.DyE2E_VQA_FindingId_Util.nextId('o', 'Tasks_Modul', [])).toThrowError();
124
+ });
125
+ it('| parses back', () => {
126
+ const p = finding_id_util_1.DyE2E_VQA_FindingId_Util.parse('VQA-organizer-tasks-modul-042');
127
+ expect(p).not.toBeNull();
128
+ expect(p.projectSlug).toBe('organizer');
129
+ // featureSlug may consume hyphens — parse picks shortest-feature; we just assert parsing succeeds
130
+ expect(p.seq).toBe(42);
131
+ });
132
+ it('| returns null on malformed', () => {
133
+ expect(finding_id_util_1.DyE2E_VQA_FindingId_Util.parse('TASK-001')).toBeNull();
134
+ });
135
+ });
136
+ //# sourceMappingURL=finding-validator.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-validator.spec.js","sourceRoot":"","sources":["../../../src/_modules/vqa/finding-validator.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { DyE2E_VQA_FeatureManifest_Interface } from '../_models/interfaces/feature-manifest.interface';
2
+ /**
3
+ * `DyE2E_VQA_AIAgentReadme_Template` — generálja a `review-bundles/<id>/<run>/README.md`-t,
4
+ * ami az AI-agent (Claude Code vagy más LLM) számára a review-instrukció + a finding-/
5
+ * backlog-entry-schema. **Spec §10 14 audit-kérdés + §11 13 feedback-típus + §12 finding +
6
+ * §13 report-szempontok beágyazva.**
7
+ *
8
+ * **scope-LOCK**: a bedrock-tooling-tól ez az utolsó artifact — az AI agent EXTERNAL,
9
+ * itt találja meg a review-rubric-ot, a schema-t, és az elvárt finding-formátumot.
10
+ */
11
+ export declare class DyE2E_VQA_AIAgentReadme_Template {
12
+ static render(manifest: DyE2E_VQA_FeatureManifest_Interface, runId: string, bundleStats: {
13
+ stateCount: number;
14
+ viewportCount: number;
15
+ screenshotCount: number;
16
+ hasComparison: boolean;
17
+ }): string;
18
+ }
19
+ //# sourceMappingURL=ai-agent-readme.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-agent-readme.template.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/ai-agent-readme.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AAIvG;;;;;;;;GAQG;AACH,qBAAa,gCAAgC;IAE3C,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,mCAAmC,EAC7C,KAAK,EAAE,MAAM,EACb,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,OAAO,CAAC;KACxB,GACA,MAAM;CAiKV"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_VQA_AIAgentReadme_Template = void 0;
4
+ const finding_severity_enum_1 = require("../_enums/finding-severity.enum");
5
+ const finding_status_enum_1 = require("../_enums/finding-status.enum");
6
+ /**
7
+ * `DyE2E_VQA_AIAgentReadme_Template` — generálja a `review-bundles/<id>/<run>/README.md`-t,
8
+ * ami az AI-agent (Claude Code vagy más LLM) számára a review-instrukció + a finding-/
9
+ * backlog-entry-schema. **Spec §10 14 audit-kérdés + §11 13 feedback-típus + §12 finding +
10
+ * §13 report-szempontok beágyazva.**
11
+ *
12
+ * **scope-LOCK**: a bedrock-tooling-tól ez az utolsó artifact — az AI agent EXTERNAL,
13
+ * itt találja meg a review-rubric-ot, a schema-t, és az elvárt finding-formátumot.
14
+ */
15
+ class DyE2E_VQA_AIAgentReadme_Template {
16
+ static render(manifest, runId, bundleStats) {
17
+ return `# AI-agent review-instrukció — \`${manifest.featureName}\` (\`${manifest.featureId}\`)
18
+
19
+ > **Run-ID:** \`${runId}\`
20
+ > **Generator:** \`@futdevpro/dynamo-e2e\` — \`DyE2E_VQA_ReviewBundle_Generator\`
21
+ > **Bundle-stats:** ${bundleStats.stateCount} állapot × ${bundleStats.viewportCount} viewport
22
+ > = ${bundleStats.screenshotCount} screenshot; comparison: ${bundleStats.hasComparison ? '✓ van' : '✗ nincs'}
23
+
24
+ ---
25
+
26
+ ## Mit kell tenned (AI agent)
27
+
28
+ 1. **Olvasd át a manifest-et** (\`manifest.json\`) — feature-cél, állapotok, viewportok, critical-element-ek.
29
+ 2. **Tekintsd át a \`summary.md\`-t** — feature-state-viewport tábla a bundle szerkezetével.
30
+ 3. **Per (állapot × viewport)** menj végig:
31
+ - \`screenshots/<stateId>/<viewport>-full.png\` — full-page kép
32
+ - \`screenshots/<stateId>/<viewport>-fold.png\` — above-fold (viewport-only)
33
+ - \`crops/<stateId>/<viewport>/<region>.png\` — region-crop-ok (modal, primary-cta, form, error)
34
+ - \`dom-snapshots/<stateId>/<viewport>.json\` — DOM-metrikák
35
+ - \`evidence/<stateId>/<viewport>.json\` — 16 DOM-detektor strukturált bizonyíték
36
+ - \`a11y/<stateId>/<viewport>.json\` — axe-core a11y scan
37
+ 4. **QA-rubric szerint** értékeld a 14 audit-kérdést (lásd lent).
38
+ 5. **Finding-eket írj** a \`findings.md\`-be a megadott schema szerint (lásd lent).
39
+ 6. **Ne dönts pixelpontosan** — emberi QA-szemlélettel ítélj.
40
+
41
+ ${bundleStats.hasComparison ? `
42
+
43
+ ## Re-audit eset
44
+
45
+ A \`comparison/\` mappa tartalmazza a before/after diff-eket. Olvasd a \`comparison/README.md\`-t,
46
+ és minden \`finding-refs.json\`-ban felsorolt finding-re dönts:
47
+ - **verified** — a probléma megszűnt
48
+ - **reopened** — a probléma visszatért
49
+ - **partial** — részlegesen javult (státusz: \`in-progress\`)
50
+
51
+ Új problémát talál a re-audit során? Új finding-et írj (\`findingId\` = következő szabad).
52
+ ` : ''}
53
+
54
+ ---
55
+
56
+ ## QA rubric — 14 audit-kérdés (spec §10)
57
+
58
+ Minden (állapot × viewport) párra add választ:
59
+
60
+ 1. **A felület használható ebben az állapotban?**
61
+ 2. **Látható és érthető a fő művelet?**
62
+ 3. **Egyértelmű, hogy a user mit tud most csinálni?**
63
+ 4. **Hiba esetén világos, mi történt?**
64
+ 5. **Hiba esetén világos, hogyan lehet javítani?**
65
+ 6. **Nincs-e dupla vagy zavaró scroll?** (lásd \`nested-scroll\`, \`scrollbar-count\` evidence)
66
+ 7. **Nincs-e levágott tartalom?** (lásd \`overflow-clipping\`, \`truncated-text\` evidence)
67
+ 8. **Nincs-e takart gomb vagy input?** (lásd \`occluded-target\`, \`sticky-occludes\` evidence)
68
+ 9. **Olvasható-e a szöveg?** (lásd \`unreadable-error\` evidence)
69
+ 10. **Megfelelő-e a vizuális hierarchia?**
70
+ 11. **Nem esett-e szét a layout?** (lásd \`form-field-break\` evidence)
71
+ 12. **A modal vagy popup kezelhető-e kis képernyőn?** (lásd \`modal-viewport-fit\` evidence)
72
+ 13. **A feedback elég konkrét-e?**
73
+ 14. **A sikeres állapot tényleg sikeresnek érződik-e?** / **Az üres állapot ad-e következő lépést?**
74
+
75
+ ---
76
+
77
+ ## Feedback-típusok (spec §11)
78
+
79
+ Nézz arra, hogy az állapot megfelelő visszajelzést ad-e:
80
+
81
+ \`loading\` · \`fieldValidation\` · \`formValidation\` · \`backendError\` · \`networkError\` ·
82
+ \`permissionError\` · \`emptyState\` · \`successState\` · \`warning\` · \`confirmation\` ·
83
+ \`retryOption\` · \`destructiveConfirm\` · \`partialSuccess\`
84
+
85
+ Akkor jelez problémát az audit, ha a user **nem tudná megérteni**: mi történt, mi a következő lépés,
86
+ vagy mit kell javítania.
87
+
88
+ ---
89
+
90
+ ## DOM-evidence detektorok (spec §9)
91
+
92
+ Az \`evidence/<stateId>/<viewport>.json\`-ban 16 detektor strukturált eredménye van. **A
93
+ \`severityHint\` AJÁNLÁS — Te döntesz.** A \`suggestedRegions\` mutatja a fókusz-zónákat.
94
+
95
+ | Detektor | Mit nézz |
96
+ |---|---|
97
+ | \`nested-scroll\` | body + modal egyidejű scroll? |
98
+ | \`overflow-clipping\` | clip-path levágott tartalom? |
99
+ | \`viewport-off-cta\` | primary CTA fold alatt? |
100
+ | \`occluded-target\` | kattintható elem takarásban? |
101
+ | \`sticky-occludes\` | sticky/fixed elem takar? |
102
+ | \`small-touch-target\` | < 44×44 px touch target? |
103
+ | \`truncated-text\` | ellipsis-elment szöveg? |
104
+ | \`table-overflow\` | táblázat túl széles? |
105
+ | \`modal-viewport-fit\` | modal > viewport? |
106
+ | \`scrollbar-count\` | > 1 scrollbar? |
107
+ | \`focus-loss\` | fókusz body-ra esett? |
108
+ | \`hidden-error\` | aria-invalid + nincs látható error? |
109
+ | \`unreadable-error\` | error < 12px / kontraszt? |
110
+ | \`ambiguous-interactive\` | onclick cursor:pointer NÉLKÜL? |
111
+ | \`form-field-break\` | input kilóg a formból? |
112
+ | \`vertical-space-shortage\` | landscape + CTA tight? |
113
+
114
+ ---
115
+
116
+ ## Severity (spec §12)
117
+
118
+ | Szint | Mikor |
119
+ |---|---|
120
+ | \`${finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.blocker}\` | A user NEM tudja befejezni a flow-t. |
121
+ | \`${finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.high}\` | Fő CTA takarásban, modal használhatatlan, hibaüzenet nem látható. |
122
+ | \`${finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.medium}\` | Layout zavaró, de a flow használható. |
123
+ | \`${finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.low}\` | Kisebb vizuális inkonzisztencia. |
124
+ | \`${finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.informational}\` | Fejlesztési javaslat / UX-észrevétel. |
125
+
126
+ ---
127
+
128
+ ## Finding írás — schema
129
+
130
+ A finding-eket írd a \`findings.md\` (markdown) ÉS \`findings.json\` (validálható) fájlokba.
131
+ **Validátor:** \`DyE2E_VQA_FindingValidator_Util\` ellenőrzi. Schema:
132
+
133
+ \`\`\`jsonc
134
+ {
135
+ "findingId": "VQA-<projekt-slug>-${manifest.featureId}-NNN", // 001-tól, padding 3
136
+ "featureId": "${manifest.featureId}",
137
+ "stateId": "<manifest-state-id>",
138
+ "viewport": "<manifest-viewport-key>",
139
+ "orientation": "portrait" | "landscape", // opcionális
140
+ "screenshotRef": "screenshots/<stateId>/<viewport>-full.png", // bundle-relative
141
+ "domSnapshotRef": "dom-snapshots/<stateId>/<viewport>.json", // opcionális
142
+ "additionalEvidenceRefs": [], // opcionális extra-utak
143
+ "description": "<észlelt probléma — Te írod>",
144
+ "expectedBehavior": "<mit várnánk helyette — Te írod>",
145
+ "severity": "${finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.blocker}" | "high" | "medium" | "low" | "informational",
146
+ "status": "${finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open}", // új finding kezdő-státusza
147
+ "reproSteps": ["<step1>", "<step2>", ...], // legalább 1
148
+ "suggestedFix": "<opcionális javaslat>",
149
+ "aiConfidence": 0.0..1.0,
150
+ "detectorEvidenceRefs": ["nested-scroll"], // opcionális detektor-link
151
+ "createdInRunId": "${runId}",
152
+ "createdAt": "<ISO-8601 timestamp>",
153
+ "acceptanceCriteria": ["<criterion1>", ...], // opcionális
154
+ "reAuditInstruction": "<mit nézz re-audit-kor>" // opcionális, blocker/high esetén kötelező
155
+ }
156
+ \`\`\`
157
+
158
+ **Sorszámozás:** ha a bundle-en kívül van projekt-szintű BACKLOG.md, ott találod a meglévő ID-ket;
159
+ különben \`001\`-től indulj.
160
+
161
+ ---
162
+
163
+ ## Nem célok (spec §20)
164
+
165
+ - ❌ Pixelpontos design approval
166
+ - ❌ Minden lehetséges állapotkombináció kimerítő futtatása
167
+ - ❌ Általános ízlésalapú designkritika
168
+ - ❌ Funkcionális üzleti logika teljes helyettesítése
169
+
170
+ A cél **gyakorlati vizuális QA**: olyan problémák, amiket emberi tesztelő észrevenne.
171
+
172
+ ---
173
+
174
+ *Bundle generated by \`@futdevpro/dynamo-e2e/vqa\` \`DyE2E_VQA_ReviewBundle_Generator\`.*
175
+ `;
176
+ }
177
+ }
178
+ exports.DyE2E_VQA_AIAgentReadme_Template = DyE2E_VQA_AIAgentReadme_Template;
179
+ //# sourceMappingURL=ai-agent-readme.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-agent-readme.template.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/ai-agent-readme.template.ts"],"names":[],"mappings":";;;AACA,2EAAiF;AACjF,uEAA6E;AAE7E;;;;;;;;GAQG;AACH,MAAa,gCAAgC;IAE3C,MAAM,CAAC,MAAM,CACX,QAA6C,EAC7C,KAAa,EACb,WAKC;QAED,OAAO,oCAAoC,QAAQ,CAAC,WAAW,SAAS,QAAQ,CAAC,SAAS;;kBAE5E,KAAK;;sBAED,WAAW,CAAC,UAAU,cAAc,WAAW,CAAC,aAAa;MAC7E,WAAW,CAAC,eAAe,4BAA4B,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;;;;;;;;;;;;;;;;;;;EAmB1G,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;;;;;;;;;;;CAW7B,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoEA,sDAA8B,CAAC,OAAO;MACtC,sDAA8B,CAAC,IAAI;MACnC,sDAA8B,CAAC,MAAM;MACrC,sDAA8B,CAAC,GAAG;MAClC,sDAA8B,CAAC,aAAa;;;;;;;;;;;qCAWb,QAAQ,CAAC,SAAS;kBACrC,QAAQ,CAAC,SAAS;;;;;;;;;iBASnB,sDAA8B,CAAC,OAAO;eACxC,kDAA4B,CAAC,IAAI;;;;;uBAKzB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;CAwB3B,CAAC;IACA,CAAC;CACF;AA5KD,4EA4KC"}
@@ -0,0 +1,9 @@
1
+ import { DyE2E_VQA_FeatureManifest_Interface } from '../_models/interfaces/feature-manifest.interface';
2
+ /**
3
+ * `DyE2E_VQA_BundleSummary_Template` — `summary.md` rendering a feature-state-viewport
4
+ * táblával, amit mind ember, mind AI agent áttekint.
5
+ */
6
+ export declare class DyE2E_VQA_BundleSummary_Template {
7
+ static render(manifest: DyE2E_VQA_FeatureManifest_Interface, runId: string): string;
8
+ }
9
+ //# sourceMappingURL=bundle-summary.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-summary.template.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/bundle-summary.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AAEvG;;;GAGG;AACH,qBAAa,gCAAgC;IAE3C,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,mCAAmC,EAC7C,KAAK,EAAE,MAAM,GACZ,MAAM;CAiEV"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_VQA_BundleSummary_Template = void 0;
4
+ /**
5
+ * `DyE2E_VQA_BundleSummary_Template` — `summary.md` rendering a feature-state-viewport
6
+ * táblával, amit mind ember, mind AI agent áttekint.
7
+ */
8
+ class DyE2E_VQA_BundleSummary_Template {
9
+ static render(manifest, runId) {
10
+ const orientations = manifest.orientations && manifest.orientations.length > 0
11
+ ? manifest.orientations
12
+ : ['portrait'];
13
+ const matrixHeader = ['State / Viewport',
14
+ ...manifest.viewports.flatMap((v) => orientations.map((o) => `${v.key} / ${o}`)),
15
+ ].join(' | ');
16
+ const matrixSep = ['---',
17
+ ...manifest.viewports.flatMap(() => orientations.map(() => '---')),
18
+ ].join(' | ');
19
+ const matrixRows = manifest.states.map((s) => {
20
+ const row = [`\`${s.stateId}\``];
21
+ for (const _v of manifest.viewports) {
22
+ for (const _o of orientations) {
23
+ row.push('✓');
24
+ }
25
+ }
26
+ return row.join(' | ');
27
+ });
28
+ return `# Review-bundle summary — \`${manifest.featureName}\`
29
+
30
+ - **featureId:** \`${manifest.featureId}\`
31
+ - **runId:** \`${runId}\`
32
+ - **route:** \`${manifest.route}\`
33
+ - **userRole:** ${manifest.userRole ? `\`${manifest.userRole}\`` : '*nincs*'}
34
+ - **states:** ${manifest.states.length}
35
+ - **viewports:** ${manifest.viewports.length} (\`${manifest.viewports.map((v) => v.key).join(', ')}\`)
36
+ - **orientations:** \`${orientations.join(', ')}\`
37
+ - **criticalElements:** ${manifest.criticalElements.length}
38
+
39
+ ${manifest.description ? `\n## Leírás\n\n${manifest.description}\n` : ''}
40
+
41
+ ## State × Viewport mátrix
42
+
43
+ A ✓ jelzi: a (state × viewport × orientation) capture-elve, screenshot + DOM-snapshot
44
+ + evidence + a11y a megfelelő mappákban.
45
+
46
+ | ${matrixHeader} |
47
+ | ${matrixSep} |
48
+ ${matrixRows.map((r) => `| ${r} |`).join('\n')}
49
+
50
+ ## Critical-element-ek
51
+
52
+ ${manifest.criticalElements.map((c) => `- **${c.key}** (\`${c.regionType}\`): \`${c.selector}\`${c.label ? ` — ${c.label}` : ''}`).join('\n')}
53
+
54
+ ${manifest.expectedFeedback && manifest.expectedFeedback.length > 0 ? `
55
+ ## Várt visszajelzések (AI-hint)
56
+
57
+ ${manifest.expectedFeedback.map((ef) => `- **${ef.stateId}** / \`${ef.feedbackType}\`: ${ef.expectation}`).join('\n')}
58
+ ` : ''}
59
+
60
+ ${manifest.contextNotes && manifest.contextNotes.length > 0 ? `
61
+ ## Kontextus
62
+
63
+ ${manifest.contextNotes.map((n) => `- ${n}`).join('\n')}
64
+ ` : ''}
65
+
66
+ ---
67
+
68
+ *A részletes review-instrukció az \`README.md\`-ben.*
69
+ `;
70
+ }
71
+ }
72
+ exports.DyE2E_VQA_BundleSummary_Template = DyE2E_VQA_BundleSummary_Template;
73
+ //# sourceMappingURL=bundle-summary.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle-summary.template.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/bundle-summary.template.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,gCAAgC;IAE3C,MAAM,CAAC,MAAM,CACX,QAA6C,EAC7C,KAAa;QAEb,MAAM,YAAY,GAChB,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YACvD,CAAC,CAAC,QAAQ,CAAC,YAAY;YACvB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAEnB,MAAM,YAAY,GAAW,CAAC,kBAAkB;YAC9C,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;SACjF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,MAAM,SAAS,GAAW,CAAC,KAAK;YAC9B,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;SACnE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,MAAM,UAAU,GAAa,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrD,MAAM,GAAG,GAAa,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3C,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACpC,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,+BAA+B,QAAQ,CAAC,WAAW;;qBAEzC,QAAQ,CAAC,SAAS;iBACtB,KAAK;iBACL,QAAQ,CAAC,KAAK;kBACb,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC5D,QAAQ,CAAC,MAAM,CAAC,MAAM;mBACnB,QAAQ,CAAC,SAAS,CAAC,MAAM,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC1E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;0BACrB,QAAQ,CAAC,gBAAgB,CAAC,MAAM;;EAExD,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE;;;;;;;IAOpE,YAAY;IACZ,SAAS;EACX,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAI5C,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,UAAU,UAAU,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;EAE3I,QAAQ,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;;;EAGpE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,UAAU,EAAE,CAAC,YAAY,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACpH,CAAC,CAAC,CAAC,EAAE;;EAEJ,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;;;EAG5D,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACtD,CAAC,CAAC,CAAC,EAAE;;;;;CAKL,CAAC;IACA,CAAC;CACF;AAtED,4EAsEC"}
@@ -0,0 +1,33 @@
1
+ import { DyE2E_VQA_FeatureManifest_Interface } from '../_models/interfaces/feature-manifest.interface';
2
+ /**
3
+ * `DyE2E_VQA_CaptureSpec_Generator` — manifest → executable Playwright spec emit (MP-B).
4
+ *
5
+ * A generált `.spec.ts` minden `viewport × state` kombinációra:
6
+ * 1. Beállítja a viewport-méretet + orientációt
7
+ * 2. Végrehajtja a manifest-szintű `flowSteps`-et
8
+ * 3. Végrehajtja a state-szintű `prepareFlow`-t
9
+ * 4. `page.screenshot()` full-page + viewport-only
10
+ * 5. DOM-snapshot szerializáció
11
+ * 6. axe-core a11y scan
12
+ * 7. 16 DOM-evidence-detektor futtatása
13
+ * 8. Artifact-okat a `OUT_DIR`-be ír
14
+ *
15
+ * **scope-LOCK**: NEM tartalmaz AI-call-ot. A `OUT_DIR` lesz a review-bundle alapja.
16
+ *
17
+ * A generált spec environment-driven:
18
+ * - `VQA_OUT_DIR`: output mappa (default: `./review-bundles/<featureId>/run-${Date.now()}`)
19
+ * - `VQA_BASE_URL`: target base-URL (default: `http://localhost:4200`)
20
+ * - `VQA_RUN_ID`: stable run-azonosító
21
+ */
22
+ export interface DyE2E_VQA_CaptureSpec_Options {
23
+ /** Header-comment (autogen, do-not-edit). */
24
+ headerComment?: string;
25
+ /** Manifest-relative path-ek, ha kell. */
26
+ manifestImportPath?: string;
27
+ }
28
+ export declare class DyE2E_VQA_CaptureSpec_Generator {
29
+ static emit(manifest: DyE2E_VQA_FeatureManifest_Interface, options?: DyE2E_VQA_CaptureSpec_Options): string;
30
+ private static emitStateTest;
31
+ private static emitFlowSteps;
32
+ }
33
+ //# sourceMappingURL=capture-spec.generator.d.ts.map