@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,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_VQA_DefaultViewportSubset_Const = exports.DyE2E_VQA_StandardViewports_Const = void 0;
4
+ /**
5
+ * 7 standard viewport-kategória (spec §7) a VQA capture-pipeline-hez. Manifest-author
6
+ * ezekből választhat subset-et, vagy override-olhatja sajáttal.
7
+ *
8
+ * **Konvenció**: `key` filename-friendly + a `dye2e generate-review-bundle` ezzel
9
+ * mappel artifact-ot (`screenshots/<state>/<key>-full.png`).
10
+ */
11
+ exports.DyE2E_VQA_StandardViewports_Const = {
12
+ mobileSmall: {
13
+ key: 'mobile-s',
14
+ label: 'Kis mobil (320×568)',
15
+ width: 320,
16
+ height: 568,
17
+ deviceScaleFactor: 2,
18
+ isMobile: true,
19
+ hasTouch: true,
20
+ },
21
+ mobileMedium: {
22
+ key: 'mobile-m',
23
+ label: 'Átlagos mobil (375×667)',
24
+ width: 375,
25
+ height: 667,
26
+ deviceScaleFactor: 2,
27
+ isMobile: true,
28
+ hasTouch: true,
29
+ },
30
+ mobileLarge: {
31
+ key: 'mobile-l',
32
+ label: 'Nagy mobil (414×896)',
33
+ width: 414,
34
+ height: 896,
35
+ deviceScaleFactor: 2,
36
+ isMobile: true,
37
+ hasTouch: true,
38
+ },
39
+ tabletPortrait: {
40
+ key: 'tablet-portrait',
41
+ label: 'Tablet portrait (768×1024)',
42
+ width: 768,
43
+ height: 1024,
44
+ deviceScaleFactor: 2,
45
+ isMobile: true,
46
+ hasTouch: true,
47
+ },
48
+ tabletLandscape: {
49
+ key: 'tablet-landscape',
50
+ label: 'Tablet landscape (1024×768)',
51
+ width: 1024,
52
+ height: 768,
53
+ deviceScaleFactor: 2,
54
+ isMobile: true,
55
+ hasTouch: true,
56
+ },
57
+ desktop: {
58
+ key: 'desktop',
59
+ label: 'Desktop (1440×900)',
60
+ width: 1440,
61
+ height: 900,
62
+ deviceScaleFactor: 1,
63
+ isMobile: false,
64
+ hasTouch: false,
65
+ },
66
+ desktopLarge: {
67
+ key: 'desktop-l',
68
+ label: 'Nagy desktop (1920×1080)',
69
+ width: 1920,
70
+ height: 1080,
71
+ deviceScaleFactor: 1,
72
+ isMobile: false,
73
+ hasTouch: false,
74
+ },
75
+ };
76
+ /** Default-aktív viewport-subset, ha a manifest `viewports`-t üresen hagyja. */
77
+ exports.DyE2E_VQA_DefaultViewportSubset_Const = [
78
+ exports.DyE2E_VQA_StandardViewports_Const.mobileMedium,
79
+ exports.DyE2E_VQA_StandardViewports_Const.tabletPortrait,
80
+ exports.DyE2E_VQA_StandardViewports_Const.desktop,
81
+ ];
82
+ //# sourceMappingURL=vqa-standard-viewports.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vqa-standard-viewports.const.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/constants/vqa-standard-viewports.const.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACU,QAAA,iCAAiC,GAAgD;IAC5F,WAAW,EAAE;QACX,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,cAAc,EAAE;QACd,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,4BAA4B;QACnC,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,IAAI;QACZ,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,eAAe,EAAE;QACf,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,6BAA6B;QACpC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,GAAG;QACX,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;IACD,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,oBAAoB;QAC3B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,GAAG;QACX,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,iBAAiB,EAAE,CAAC;QACpB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC;AAEF,gFAAgF;AACnE,QAAA,qCAAqC,GAA+B;IAC/E,yCAAiC,CAAC,YAAY;IAC9C,yCAAiC,CAAC,cAAc;IAChD,yCAAiC,CAAC,OAAO;CAC1C,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { DyE2E_Viewport_Interface } from '../../../contracts/_models/interfaces/viewport.interface';
2
+ /**
3
+ * `DyE2E_VQA_TailwindViewports_Const` — Tailwind breakpoint-igazított 8 viewport
4
+ * (organizer-pattern `playwright.config.ts`). Alternatíva a 7-viewport standard-hoz.
5
+ *
6
+ * **Tailwind breakpoint-mapping**:
7
+ * - `mobile-xs`: 360×640 — pre-sm (< 640)
8
+ * - `mobile-sm`: 480×800 — pre-sm felső
9
+ * - `tablet-sm`: 768×1024 — md (≥ 768)
10
+ * - `tablet-md`: 1024×1366 — lg (≥ 1024)
11
+ * - `desktop-md`: 1280×800 — xl (≥ 1280)
12
+ * - `desktop-lg`: 1600×1000 — 2xl (≥ 1536)
13
+ * - `desktop-xl`: 1920×1200 — 2xl+
14
+ * - `desktop-2xl`: 2560×1440 — ultra-wide
15
+ *
16
+ * Manifest-author használja ha az alkalmazás explicit Tailwind-based responsive design-t használ.
17
+ */
18
+ export declare const DyE2E_VQA_TailwindViewports_Const: {
19
+ [key: string]: DyE2E_Viewport_Interface;
20
+ };
21
+ /** Tailwind-pattern default subset (4 viewport). */
22
+ export declare const DyE2E_VQA_TailwindDefaultSubset_Const: DyE2E_Viewport_Interface[];
23
+ //# sourceMappingURL=vqa-tailwind-viewports.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vqa-tailwind-viewports.const.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AAEpG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iCAAiC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,wBAAwB,CAAA;CASxF,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,qCAAqC,EAAE,wBAAwB,EAK3E,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_VQA_TailwindDefaultSubset_Const = exports.DyE2E_VQA_TailwindViewports_Const = void 0;
4
+ /**
5
+ * `DyE2E_VQA_TailwindViewports_Const` — Tailwind breakpoint-igazított 8 viewport
6
+ * (organizer-pattern `playwright.config.ts`). Alternatíva a 7-viewport standard-hoz.
7
+ *
8
+ * **Tailwind breakpoint-mapping**:
9
+ * - `mobile-xs`: 360×640 — pre-sm (< 640)
10
+ * - `mobile-sm`: 480×800 — pre-sm felső
11
+ * - `tablet-sm`: 768×1024 — md (≥ 768)
12
+ * - `tablet-md`: 1024×1366 — lg (≥ 1024)
13
+ * - `desktop-md`: 1280×800 — xl (≥ 1280)
14
+ * - `desktop-lg`: 1600×1000 — 2xl (≥ 1536)
15
+ * - `desktop-xl`: 1920×1200 — 2xl+
16
+ * - `desktop-2xl`: 2560×1440 — ultra-wide
17
+ *
18
+ * Manifest-author használja ha az alkalmazás explicit Tailwind-based responsive design-t használ.
19
+ */
20
+ exports.DyE2E_VQA_TailwindViewports_Const = {
21
+ mobileXs: { key: 'mobile-xs', label: 'Mobile XS (360×640)', width: 360, height: 640, deviceScaleFactor: 2, isMobile: true, hasTouch: true },
22
+ mobileSm: { key: 'mobile-sm', label: 'Mobile SM (480×800)', width: 480, height: 800, deviceScaleFactor: 2, isMobile: true, hasTouch: true },
23
+ tabletSm: { key: 'tablet-sm', label: 'Tablet SM (768×1024)', width: 768, height: 1024, deviceScaleFactor: 2, isMobile: true, hasTouch: true },
24
+ tabletMd: { key: 'tablet-md', label: 'Tablet MD (1024×1366)', width: 1024, height: 1366, deviceScaleFactor: 2, isMobile: false, hasTouch: false },
25
+ desktopMd: { key: 'desktop-md', label: 'Desktop MD (1280×800)', width: 1280, height: 800, deviceScaleFactor: 1, isMobile: false, hasTouch: false },
26
+ desktopLg: { key: 'desktop-lg', label: 'Desktop LG (1600×1000)', width: 1600, height: 1000, deviceScaleFactor: 1, isMobile: false, hasTouch: false },
27
+ desktopXl: { key: 'desktop-xl', label: 'Desktop XL (1920×1200)', width: 1920, height: 1200, deviceScaleFactor: 1, isMobile: false, hasTouch: false },
28
+ desktop2xl: { key: 'desktop-2xl', label: 'Desktop 2XL (2560×1440)', width: 2560, height: 1440, deviceScaleFactor: 1, isMobile: false, hasTouch: false },
29
+ };
30
+ /** Tailwind-pattern default subset (4 viewport). */
31
+ exports.DyE2E_VQA_TailwindDefaultSubset_Const = [
32
+ exports.DyE2E_VQA_TailwindViewports_Const.mobileSm,
33
+ exports.DyE2E_VQA_TailwindViewports_Const.tabletSm,
34
+ exports.DyE2E_VQA_TailwindViewports_Const.desktopMd,
35
+ exports.DyE2E_VQA_TailwindViewports_Const.desktopXl,
36
+ ];
37
+ //# sourceMappingURL=vqa-tailwind-viewports.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vqa-tailwind-viewports.const.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;GAeG;AACU,QAAA,iCAAiC,GAAgD;IAC5F,QAAQ,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3I,QAAQ,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC3I,QAAQ,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC7I,QAAQ,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IACjJ,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IAClJ,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IACpJ,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;IACpJ,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;CACxJ,CAAC;AAEF,oDAAoD;AACvC,QAAA,qCAAqC,GAA+B;IAC/E,yCAAiC,CAAC,QAAQ;IAC1C,yCAAiC,CAAC,QAAQ;IAC1C,yCAAiC,CAAC,SAAS;IAC3C,yCAAiC,CAAC,SAAS;CAC5C,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from './constants/vqa-standard-viewports.const';
2
+ export * from './constants/vqa-tailwind-viewports.const';
3
+ export * from './constants/anti-flake-css.const';
4
+ export * from './constants/axe-page-script.const';
5
+ export * from './utils/manifest-validator.util';
6
+ export * from './utils/finding-validator.util';
7
+ export * from './utils/finding-id.util';
8
+ export * from './utils/risk-score.util';
9
+ export * from './utils/deterministic-finding.util';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/_collections/index.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,26 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants/vqa-standard-viewports.const"), exports);
18
+ __exportStar(require("./constants/vqa-tailwind-viewports.const"), exports);
19
+ __exportStar(require("./constants/anti-flake-css.const"), exports);
20
+ __exportStar(require("./constants/axe-page-script.const"), exports);
21
+ __exportStar(require("./utils/manifest-validator.util"), exports);
22
+ __exportStar(require("./utils/finding-validator.util"), exports);
23
+ __exportStar(require("./utils/finding-id.util"), exports);
24
+ __exportStar(require("./utils/risk-score.util"), exports);
25
+ __exportStar(require("./utils/deterministic-finding.util"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/_collections/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2EAAyD;AACzD,2EAAyD;AACzD,mEAAiD;AACjD,oEAAkD;AAClD,kEAAgD;AAChD,iEAA+C;AAC/C,0DAAwC;AACxC,0DAAwC;AACxC,qEAAmD"}
@@ -0,0 +1,23 @@
1
+ import { DyE2E_VQA_DOMEvidence_Detector } from '../../_enums/dom-evidence-detector.enum';
2
+ import { DyE2E_VQA_Finding_Interface } from '../../_models/interfaces/finding.interface';
3
+ export declare class DyE2E_VQA_DeterministicFinding_Util {
4
+ /**
5
+ * Egy evidence-tömbből kihúzza azokat, amik **agent nélkül** is finding-skeleton-t
6
+ * eredményeznek. Az AI agent ezeket találja a `findings/auto-deterministic.json`-ben,
7
+ * és csak verify-eli + commit-eli (review-rubric-on átengedheti egyszerűsítve).
8
+ */
9
+ static emit(evidence: unknown[], context: {
10
+ featureId: string;
11
+ stateId: string;
12
+ viewport: string;
13
+ orientation?: 'portrait' | 'landscape';
14
+ screenshotRef: string;
15
+ domSnapshotRef?: string;
16
+ runId: string;
17
+ findingIdSeed: number;
18
+ projectSlug: string;
19
+ }): DyE2E_VQA_Finding_Interface[];
20
+ /** A determinisztikus detektorok listája — manifest-author / dokumentációs lookup. */
21
+ static getDeterministicDetectors(): DyE2E_VQA_DOMEvidence_Detector[];
22
+ }
23
+ //# sourceMappingURL=deterministic-finding.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deterministic-finding.util.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/deterministic-finding.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAGzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAwDzF,qBAAa,mCAAmC;IAE9C;;;;OAIG;IACH,MAAM,CAAC,IAAI,CACT,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;QACvC,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,GACA,2BAA2B,EAAE;IAgDhC,sFAAsF;IACtF,MAAM,CAAC,yBAAyB,IAAI,8BAA8B,EAAE;CAGrE"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_VQA_DeterministicFinding_Util = void 0;
4
+ const dom_evidence_detector_enum_1 = require("../../_enums/dom-evidence-detector.enum");
5
+ const finding_severity_enum_1 = require("../../_enums/finding-severity.enum");
6
+ const finding_status_enum_1 = require("../../_enums/finding-status.enum");
7
+ /**
8
+ * `DyE2E_VQA_DeterministicFinding_Util` — egyértelmű DOM-evidence → finding-skeleton
9
+ * agent nélkül (organizer MP-7 SP-7.3 mintából).
10
+ *
11
+ * **scope-LOCK**: csak a "vita nélküli" detektor-eseteket alakítja át. Ahol az
12
+ * evidence szignifikánsan értelmezhető, az AI agent kell hogy döntsön.
13
+ *
14
+ * **Önállóan finding-építő detektorok** (low-noise, high-precision):
15
+ * - `nested-scroll` (body + modal egyidejű scroll = mindig probléma)
16
+ * - `modal-viewport-fit` (modal > viewport = mindig probléma)
17
+ * - `hidden-error` (aria-invalid + hiányzó error-element = mindig probléma)
18
+ * - `viewport-off-cta` (primary CTA fold alatt = mindig probléma legalább `high`)
19
+ *
20
+ * Minden más detektor evidence-szinten marad, az AI agent dönt.
21
+ */
22
+ const DETERMINISTIC_DETECTORS = new Set([
23
+ dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.nestedScroll,
24
+ dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.modalViewportFit,
25
+ dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.hiddenError,
26
+ dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.viewportOffCTA,
27
+ ]);
28
+ const FINDING_TEMPLATES = {
29
+ [dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.nestedScroll]: {
30
+ severity: finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.high,
31
+ description: 'Dupla scroll detektálva — a body és egy beágyazott container (pl. modal) is scrollozható.',
32
+ expectedBehavior: 'Modal-open állapotban a body NEM lehet scrollozható; csak a modal-content görgessen.',
33
+ suggestedFix: 'A modal megnyitásakor `document.body.style.overflow = "hidden"` vagy CSS `body.modal-open { overflow: hidden }`.',
34
+ },
35
+ [dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.modalViewportFit]: {
36
+ severity: finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.high,
37
+ description: 'Modal-content magasabb/szélesebb a viewportnál — a user a modal-content egy részét nem látja.',
38
+ expectedBehavior: 'A modal vagy belül scrollozható (modal-body overflow:auto), vagy a content rövidebb a viewport-nál.',
39
+ suggestedFix: 'A modal-body-ra `max-height: calc(100vh - <header+footer>); overflow-y: auto`.',
40
+ },
41
+ [dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.hiddenError]: {
42
+ severity: finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.high,
43
+ description: 'aria-invalid input + nincs látható error-element. A user nem tudja MIÉRT invalid.',
44
+ expectedBehavior: 'Minden aria-invalid mezőhöz tartozik egy látható error-message (összekötve aria-describedby-vel).',
45
+ suggestedFix: 'Render error-message DOM-elemet az invalid mező alá, ne csak aria-invalid-et.',
46
+ },
47
+ [dom_evidence_detector_enum_1.DyE2E_VQA_DOMEvidence_Detector.viewportOffCTA]: {
48
+ severity: finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.high,
49
+ description: 'Primary CTA viewport-fold alatt — a user csak görgetés után látja.',
50
+ expectedBehavior: 'A primary CTA fold-felett legyen, különösen mobil viewporton.',
51
+ suggestedFix: 'Layout-átrendezés: a CTA közelebb a top-hoz, vagy sticky-bottom CTA-bar.',
52
+ },
53
+ };
54
+ class DyE2E_VQA_DeterministicFinding_Util {
55
+ /**
56
+ * Egy evidence-tömbből kihúzza azokat, amik **agent nélkül** is finding-skeleton-t
57
+ * eredményeznek. Az AI agent ezeket találja a `findings/auto-deterministic.json`-ben,
58
+ * és csak verify-eli + commit-eli (review-rubric-on átengedheti egyszerűsítve).
59
+ */
60
+ static emit(evidence, context) {
61
+ if (!Array.isArray(evidence)) {
62
+ return [];
63
+ }
64
+ const findings = [];
65
+ let seq = context.findingIdSeed;
66
+ for (const e of evidence) {
67
+ const ev = e;
68
+ if (!ev?.detected || !ev.detector || !DETERMINISTIC_DETECTORS.has(ev.detector)) {
69
+ continue;
70
+ }
71
+ const tmpl = FINDING_TEMPLATES[ev.detector];
72
+ if (!tmpl) {
73
+ continue;
74
+ }
75
+ const findingId = `VQA-${context.projectSlug}-${context.featureId}-${String(seq).padStart(3, '0')}`;
76
+ seq++;
77
+ findings.push({
78
+ findingId,
79
+ featureId: context.featureId,
80
+ stateId: context.stateId,
81
+ viewport: context.viewport,
82
+ orientation: context.orientation,
83
+ screenshotRef: context.screenshotRef,
84
+ domSnapshotRef: context.domSnapshotRef,
85
+ description: tmpl.description + ` (evidence-details: ${JSON.stringify(ev.details ?? {}).slice(0, 200)})`,
86
+ expectedBehavior: tmpl.expectedBehavior,
87
+ severity: tmpl.severity,
88
+ status: finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open,
89
+ reproSteps: [
90
+ `Nyisd meg a feature route-ját és vidd a state-be: '${context.stateId}'`,
91
+ `Állítsd be a viewport-ot: '${context.viewport}${context.orientation ? '/' + context.orientation : ''}'`,
92
+ `Vizsgáld meg a következő DOM-régiókat: ${(ev.suggestedRegions ?? []).join(', ') || 'lásd evidence.json'}`,
93
+ ],
94
+ suggestedFix: tmpl.suggestedFix,
95
+ aiConfidence: 0.95,
96
+ detectorEvidenceRefs: [String(ev.detector)],
97
+ createdInRunId: context.runId,
98
+ priority: tmpl.severity === finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.blocker ? 'p0' : 'p1',
99
+ tags: ['deterministic-detector'],
100
+ reAuditInstruction: `A re-audit comparison-bundle-ben az '${ev.detector}' evidence-diff-jét nézd: ` +
101
+ `ha az 'after' clean → verified; ha még detected → reopened/in-progress.`,
102
+ });
103
+ }
104
+ return findings;
105
+ }
106
+ /** A determinisztikus detektorok listája — manifest-author / dokumentációs lookup. */
107
+ static getDeterministicDetectors() {
108
+ return Array.from(DETERMINISTIC_DETECTORS);
109
+ }
110
+ }
111
+ exports.DyE2E_VQA_DeterministicFinding_Util = DyE2E_VQA_DeterministicFinding_Util;
112
+ //# sourceMappingURL=deterministic-finding.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deterministic-finding.util.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/deterministic-finding.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `DyE2E_VQA_FindingId_Util` — stable finding-ID generálás (`VQA-<projekt>-<feature>-NNN`).
3
+ *
4
+ * Az AI agent ezt használja a finding-write-or, hogy a következő szabad
5
+ * sorszámot kapjon a feature-en belül. Az existingFindingIds set-jét a bundle
6
+ * vagy a projekt BACKLOG.md adja.
7
+ */
8
+ export declare class DyE2E_VQA_FindingId_Util {
9
+ /** Következő szabad sorszám (001-tól, padding 3). */
10
+ static nextId(projectSlug: string, featureSlug: string, existingFindingIds: string[]): string;
11
+ /** Parse-back: kibontja a komponenseket egy ID-ből. Null ha nem-konform. */
12
+ static parse(findingId: string): {
13
+ projectSlug: string;
14
+ featureSlug: string;
15
+ seq: number;
16
+ } | null;
17
+ }
18
+ //# sourceMappingURL=finding-id.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-id.util.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/finding-id.util.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,wBAAwB;IAEnC,qDAAqD;IACrD,MAAM,CAAC,MAAM,CACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAAE,GAC3B,MAAM;IAgBT,4EAA4E;IAC5E,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAWlG"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_VQA_FindingId_Util = void 0;
4
+ /**
5
+ * `DyE2E_VQA_FindingId_Util` — stable finding-ID generálás (`VQA-<projekt>-<feature>-NNN`).
6
+ *
7
+ * Az AI agent ezt használja a finding-write-or, hogy a következő szabad
8
+ * sorszámot kapjon a feature-en belül. Az existingFindingIds set-jét a bundle
9
+ * vagy a projekt BACKLOG.md adja.
10
+ */
11
+ class DyE2E_VQA_FindingId_Util {
12
+ /** Következő szabad sorszám (001-tól, padding 3). */
13
+ static nextId(projectSlug, featureSlug, existingFindingIds) {
14
+ if (!/^[a-z0-9-]+$/.test(projectSlug)) {
15
+ throw new Error(`projectSlug must be lowercase kebab-case: '${projectSlug}'`);
16
+ }
17
+ if (!/^[a-z0-9-]+$/.test(featureSlug)) {
18
+ throw new Error(`featureSlug must be lowercase kebab-case: '${featureSlug}'`);
19
+ }
20
+ const prefix = `VQA-${projectSlug}-${featureSlug}-`;
21
+ const usedNums = existingFindingIds
22
+ .filter((id) => id.startsWith(prefix))
23
+ .map((id) => parseInt(id.slice(prefix.length), 10))
24
+ .filter((n) => !isNaN(n));
25
+ const next = (usedNums.length === 0 ? 0 : Math.max(...usedNums)) + 1;
26
+ return `${prefix}${String(next).padStart(3, '0')}`;
27
+ }
28
+ /** Parse-back: kibontja a komponenseket egy ID-ből. Null ha nem-konform. */
29
+ static parse(findingId) {
30
+ const match = findingId.match(/^VQA-([a-z0-9-]+?)-([a-z0-9-]+?)-(\d{3,})$/);
31
+ if (!match) {
32
+ return null;
33
+ }
34
+ return {
35
+ projectSlug: match[1],
36
+ featureSlug: match[2],
37
+ seq: parseInt(match[3], 10),
38
+ };
39
+ }
40
+ }
41
+ exports.DyE2E_VQA_FindingId_Util = DyE2E_VQA_FindingId_Util;
42
+ //# sourceMappingURL=finding-id.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-id.util.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/finding-id.util.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,wBAAwB;IAEnC,qDAAqD;IACrD,MAAM,CAAC,MAAM,CACX,WAAmB,EACnB,WAAmB,EACnB,kBAA4B;QAE5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,8CAA8C,WAAW,GAAG,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,8CAA8C,WAAW,GAAG,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,MAAM,GAAW,OAAO,WAAW,IAAI,WAAW,GAAG,CAAC;QAC5D,MAAM,QAAQ,GAAa,kBAAkB;aAC1C,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACrC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAW,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7E,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,4EAA4E;IAC5E,MAAM,CAAC,KAAK,CAAC,SAAiB;QAC5B,MAAM,KAAK,GAA4B,SAAS,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACrG,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrB,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC;CACF;AAnCD,4DAmCC"}
@@ -0,0 +1,21 @@
1
+ import { DyE2E_VQA_FindingStatus_Type } from '../../_enums/finding-status.enum';
2
+ import { DyE2E_VQA_ValidationResult_Interface } from './manifest-validator.util';
3
+ /**
4
+ * `DyE2E_VQA_FindingValidator_Util` — finding-JSON schema-validátor.
5
+ *
6
+ * **scope-LOCK**: a finding-et az AI agent írja; ez a validátor csak
7
+ * konzisztenciát ellenőriz (severity/status enum, AI-confidence range,
8
+ * reproSteps nem üres, dátum-formátum opcionális).
9
+ */
10
+ export declare class DyE2E_VQA_FindingValidator_Util {
11
+ static validate(input: unknown): DyE2E_VQA_ValidationResult_Interface;
12
+ /**
13
+ * `DyE2E_VQA_FindingStatus_FSM.canTransition`: megengedett-e a státusz-tranzíció
14
+ * (spec §14). Az AI agent vagy ember a finding-státuszt mozgatja, és a validátor
15
+ * ellenőrizheti, hogy a delta legitim.
16
+ */
17
+ static canTransition(from: DyE2E_VQA_FindingStatus_Type, to: DyE2E_VQA_FindingStatus_Type): boolean;
18
+ private static checkString;
19
+ private static isIsoDate;
20
+ }
21
+ //# sourceMappingURL=finding-validator.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-validator.util.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/finding-validator.util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,oCAAoC,EAAuC,MAAM,2BAA2B,CAAC;AAMtH;;;;;;GAMG;AACH,qBAAa,+BAA+B;IAE1C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,oCAAoC;IAmDrE;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAClB,IAAI,EAAE,4BAA4B,EAClC,EAAE,EAAE,4BAA4B,GAC/B,OAAO;IAmCV,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B,OAAO,CAAC,MAAM,CAAC,SAAS;CAOzB"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_VQA_FindingValidator_Util = 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
+ const VALID_SEVERITIES = new Set(Object.values(finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type));
7
+ const VALID_STATUSES = new Set(Object.values(finding_status_enum_1.DyE2E_VQA_FindingStatus_Type));
8
+ const VALID_ORIENTATIONS = new Set(['portrait', 'landscape']);
9
+ /**
10
+ * `DyE2E_VQA_FindingValidator_Util` — finding-JSON schema-validátor.
11
+ *
12
+ * **scope-LOCK**: a finding-et az AI agent írja; ez a validátor csak
13
+ * konzisztenciát ellenőriz (severity/status enum, AI-confidence range,
14
+ * reproSteps nem üres, dátum-formátum opcionális).
15
+ */
16
+ class DyE2E_VQA_FindingValidator_Util {
17
+ static validate(input) {
18
+ const errors = [];
19
+ if (!input || typeof input !== 'object') {
20
+ errors.push({ path: '$', code: 'type-mismatch', message: 'finding must be an object' });
21
+ return { ok: false, errors };
22
+ }
23
+ const f = input;
24
+ this.checkString(f.findingId, '$.findingId', errors);
25
+ if (typeof f.findingId === 'string' && !/^VQA-[a-z0-9-]+-\d{3,}$/.test(f.findingId)) {
26
+ errors.push({ path: '$.findingId', code: 'invalid-format', message: 'findingId must match VQA-<slug>-NNN' });
27
+ }
28
+ this.checkString(f.featureId, '$.featureId', errors);
29
+ this.checkString(f.stateId, '$.stateId', errors);
30
+ this.checkString(f.viewport, '$.viewport', errors);
31
+ this.checkString(f.screenshotRef, '$.screenshotRef', errors);
32
+ this.checkString(f.description, '$.description', errors);
33
+ this.checkString(f.expectedBehavior, '$.expectedBehavior', errors);
34
+ this.checkString(f.createdInRunId, '$.createdInRunId', errors);
35
+ if (!f.severity || !VALID_SEVERITIES.has(f.severity)) {
36
+ errors.push({ path: '$.severity', code: 'unknown-enum', message: `unknown severity '${f.severity}'` });
37
+ }
38
+ if (!f.status || !VALID_STATUSES.has(f.status)) {
39
+ errors.push({ path: '$.status', code: 'unknown-enum', message: `unknown status '${f.status}'` });
40
+ }
41
+ if (f.orientation && !VALID_ORIENTATIONS.has(f.orientation)) {
42
+ errors.push({ path: '$.orientation', code: 'unknown-enum', message: `orientation must be portrait or landscape` });
43
+ }
44
+ if (typeof f.aiConfidence !== 'number' || f.aiConfidence < 0 || f.aiConfidence > 1) {
45
+ errors.push({ path: '$.aiConfidence', code: 'type-mismatch', message: 'aiConfidence must be number in [0,1]' });
46
+ }
47
+ if (!Array.isArray(f.reproSteps) || f.reproSteps.length === 0) {
48
+ errors.push({ path: '$.reproSteps', code: 'empty-array', message: 'reproSteps must be non-empty array' });
49
+ }
50
+ else if (f.reproSteps.some((s) => typeof s !== 'string' || s.length === 0)) {
51
+ errors.push({ path: '$.reproSteps', code: 'type-mismatch', message: 'reproSteps entries must be non-empty strings' });
52
+ }
53
+ if (f.createdAt !== undefined && !this.isIsoDate(f.createdAt)) {
54
+ errors.push({ path: '$.createdAt', code: 'invalid-format', message: 'createdAt must be ISO-8601' });
55
+ }
56
+ if (f.lastUpdatedAt !== undefined && !this.isIsoDate(f.lastUpdatedAt)) {
57
+ errors.push({ path: '$.lastUpdatedAt', code: 'invalid-format', message: 'lastUpdatedAt must be ISO-8601' });
58
+ }
59
+ return { ok: errors.length === 0, errors: errors };
60
+ }
61
+ /**
62
+ * `DyE2E_VQA_FindingStatus_FSM.canTransition`: megengedett-e a státusz-tranzíció
63
+ * (spec §14). Az AI agent vagy ember a finding-státuszt mozgatja, és a validátor
64
+ * ellenőrizheti, hogy a delta legitim.
65
+ */
66
+ static canTransition(from, to) {
67
+ if (from === to) {
68
+ return true;
69
+ }
70
+ const map = {
71
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open]: [
72
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.inProgress,
73
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.ignored,
74
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.acceptedRisk,
75
+ ],
76
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.inProgress]: [
77
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.fixed,
78
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.open,
79
+ ],
80
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.fixed]: [
81
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.readyForReAudit,
82
+ ],
83
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.readyForReAudit]: [
84
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.verified,
85
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.reopened,
86
+ ],
87
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.reopened]: [
88
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.inProgress,
89
+ ],
90
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.verified]: [],
91
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.ignored]: [
92
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.reopened,
93
+ ],
94
+ [finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.acceptedRisk]: [
95
+ finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.reopened,
96
+ ],
97
+ };
98
+ return (map[from] ?? []).includes(to);
99
+ }
100
+ static checkString(v, path, errors) {
101
+ if (typeof v !== 'string' || v.length === 0) {
102
+ errors.push({ path, code: 'required-missing', message: `${path} must be non-empty string` });
103
+ }
104
+ }
105
+ static isIsoDate(s) {
106
+ if (typeof s !== 'string') {
107
+ return false;
108
+ }
109
+ const d = new Date(s);
110
+ return !isNaN(d.getTime()) && /^\d{4}-\d{2}-\d{2}T/.test(s);
111
+ }
112
+ }
113
+ exports.DyE2E_VQA_FindingValidator_Util = DyE2E_VQA_FindingValidator_Util;
114
+ //# sourceMappingURL=finding-validator.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finding-validator.util.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/finding-validator.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * `DyE2E_VQA_ManifestValidator_Util` — lightweight validátor a `DyE2E_VQA_Feature_Manifest`-re.
3
+ *
4
+ * Nem AJV-dep — saját, deterministikus rule-walker. Az eredmény tartalmazza:
5
+ * - `ok`: valid / invalid
6
+ * - `errors`: JSON-path-alapú error-lista
7
+ *
8
+ * **scope-LOCK**: csak schema-konzisztencia, NEM AI-jellegű ellenőrzés.
9
+ */
10
+ export interface DyE2E_VQA_ValidationError_Interface {
11
+ path: string;
12
+ code: 'required-missing' | 'type-mismatch' | 'unknown-enum' | 'duplicate-id' | 'empty-array' | 'invalid-reference' | 'invalid-format';
13
+ message: string;
14
+ }
15
+ export interface DyE2E_VQA_ValidationResult_Interface {
16
+ ok: boolean;
17
+ errors: DyE2E_VQA_ValidationError_Interface[];
18
+ }
19
+ export declare class DyE2E_VQA_ManifestValidator_Util {
20
+ /** Bemenetre szigorú validátor — minden hibát összegyűjt, nem rövidre zár. */
21
+ static validate(input: unknown): DyE2E_VQA_ValidationResult_Interface;
22
+ private static validateFlowSteps;
23
+ private static checkString;
24
+ private static checkFilenameFriendly;
25
+ private static checkArrayNonEmpty;
26
+ }
27
+ //# sourceMappingURL=manifest-validator.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-validator.util.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/manifest-validator.util.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,kBAAkB,GAAG,eAAe,GAAG,cAAc,GACrD,cAAc,GAAG,aAAa,GAAG,mBAAmB,GACpD,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oCAAoC;IACnD,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,mCAAmC,EAAE,CAAC;CAC/C;AAgBD,qBAAa,gCAAgC;IAE3C,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,oCAAoC;IA8FrE,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA4BhC,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IASpC,OAAO,CAAC,MAAM,CAAC,kBAAkB;CASlC"}