@futdevpro/dynamo-e2e 1.17.1 → 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.
- package/.dynamo/logs/cicd-pipeline/status.json +25 -25
- package/CHANGELOG.md +98 -0
- package/bin/dye2e.js +170 -0
- package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/form-level-emission.util.js +3 -1
- package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
- package/build/_modules/generators/_collections/test-case-filter.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/test-case-filter.util.js +24 -0
- package/build/_modules/generators/_collections/test-case-filter.util.js.map +1 -1
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +7 -0
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
- package/build/_modules/generators/form-suite.generator.spec.js +14 -0
- package/build/_modules/generators/form-suite.generator.spec.js.map +1 -1
- package/build/_modules/generators/test-case-filter-edge.spec.js +37 -4
- package/build/_modules/generators/test-case-filter-edge.spec.js.map +1 -1
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.d.ts +8 -0
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.js +21 -0
- package/build/_modules/vqa/_collections/constants/anti-flake-css.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.d.ts +21 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.js +57 -0
- package/build/_modules/vqa/_collections/constants/axe-page-script.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.d.ts +13 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.js +318 -0
- package/build/_modules/vqa/_collections/constants/dom-evidence-page-scripts.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts +14 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js +82 -0
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.d.ts +23 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.js +37 -0
- package/build/_modules/vqa/_collections/constants/vqa-tailwind-viewports.const.js.map +1 -0
- package/build/_modules/vqa/_collections/index.d.ts +10 -0
- package/build/_modules/vqa/_collections/index.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/index.js +26 -0
- package/build/_modules/vqa/_collections/index.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts +23 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js +112 -0
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.d.ts +18 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.js +42 -0
- package/build/_modules/vqa/_collections/utils/finding-id.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.d.ts +21 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.js +114 -0
- package/build/_modules/vqa/_collections/utils/finding-validator.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.d.ts +27 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.js +148 -0
- package/build/_modules/vqa/_collections/utils/manifest-validator.util.js.map +1 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.d.ts +48 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.js +77 -0
- package/build/_modules/vqa/_collections/utils/risk-score.util.js.map +1 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.d.ts +44 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.js +48 -0
- package/build/_modules/vqa/_enums/dom-evidence-detector.enum.js.map +1 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.d.ts +17 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.js +21 -0
- package/build/_modules/vqa/_enums/finding-severity.enum.js.map +1 -0
- package/build/_modules/vqa/_enums/finding-status.enum.d.ts +23 -0
- package/build/_modules/vqa/_enums/finding-status.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/finding-status.enum.js +27 -0
- package/build/_modules/vqa/_enums/finding-status.enum.js.map +1 -0
- package/build/_modules/vqa/_enums/index.d.ts +5 -0
- package/build/_modules/vqa/_enums/index.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/index.js +21 -0
- package/build/_modules/vqa/_enums/index.js.map +1 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.d.ts +38 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.d.ts.map +1 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.js +49 -0
- package/build/_modules/vqa/_enums/visual-state-type.enum.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.d.ts +22 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/critical-element.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.d.ts +21 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/dom-evidence.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.d.ts +16 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/expected-feedback.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts +56 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts +58 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/finding.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.d.ts +32 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/flow-step.interface.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/index.d.ts +8 -0
- package/build/_modules/vqa/_models/interfaces/index.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/index.js +24 -0
- package/build/_modules/vqa/_models/interfaces/index.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.d.ts +34 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/visual-state.interface.js.map +1 -0
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts +2 -0
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/capture-spec.generator.spec.js +126 -0
- package/build/_modules/vqa/capture-spec.generator.spec.js.map +1 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +2 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.js +130 -0
- package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +1 -0
- package/build/_modules/vqa/finding-validator.spec.d.ts +2 -0
- package/build/_modules/vqa/finding-validator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/finding-validator.spec.js +136 -0
- package/build/_modules/vqa/finding-validator.spec.js.map +1 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts +19 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.d.ts.map +1 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.js +179 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.js.map +1 -0
- package/build/_modules/vqa/generators/bundle-summary.template.d.ts +9 -0
- package/build/_modules/vqa/generators/bundle-summary.template.d.ts.map +1 -0
- package/build/_modules/vqa/generators/bundle-summary.template.js +73 -0
- package/build/_modules/vqa/generators/bundle-summary.template.js.map +1 -0
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts +33 -0
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts.map +1 -0
- package/build/_modules/vqa/generators/capture-spec.generator.js +194 -0
- package/build/_modules/vqa/generators/capture-spec.generator.js.map +1 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts +37 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts.map +1 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.js +238 -0
- package/build/_modules/vqa/generators/comparison-bundle.generator.js.map +1 -0
- package/build/_modules/vqa/generators/index.d.ts +6 -0
- package/build/_modules/vqa/generators/index.d.ts.map +1 -0
- package/build/_modules/vqa/generators/index.js +22 -0
- package/build/_modules/vqa/generators/index.js.map +1 -0
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts +49 -0
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -0
- package/build/_modules/vqa/generators/review-bundle.generator.js +127 -0
- package/build/_modules/vqa/generators/review-bundle.generator.js.map +1 -0
- package/build/_modules/vqa/index.d.ts +6 -0
- package/build/_modules/vqa/index.d.ts.map +1 -0
- package/build/_modules/vqa/index.js +25 -0
- package/build/_modules/vqa/index.js.map +1 -0
- package/build/_modules/vqa/manifest-validator.spec.d.ts +2 -0
- package/build/_modules/vqa/manifest-validator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/manifest-validator.spec.js +125 -0
- package/build/_modules/vqa/manifest-validator.spec.js.map +1 -0
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts +2 -0
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +1 -0
- package/build/_modules/vqa/review-bundle.generator.spec.js +166 -0
- package/build/_modules/vqa/review-bundle.generator.spec.js.map +1 -0
- package/build/_modules/vqa/wave-7.spec.d.ts +2 -0
- package/build/_modules/vqa/wave-7.spec.d.ts.map +1 -0
- package/build/_modules/vqa/wave-7.spec.js +203 -0
- package/build/_modules/vqa/wave-7.spec.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/coverage/contracts/_collections/index.html +1 -1
- package/coverage/contracts/_collections/index.ts.html +1 -1
- package/coverage/contracts/_collections/utils/index.html +1 -1
- package/coverage/contracts/_collections/utils/test-id.util.ts.html +10 -10
- package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
- package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
- package/coverage/contracts/_enums/index.html +1 -1
- package/coverage/contracts/_enums/index.ts.html +1 -1
- package/coverage/contracts/_enums/standard-viewport.enum.ts.html +1 -1
- package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
- package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
- package/coverage/contracts/index.html +1 -1
- package/coverage/contracts/index.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-comparison.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-emission.util.ts.html +1 -1
- package/coverage/cwv/_collections/cwv-summarize.util.ts.html +1 -1
- package/coverage/cwv/_collections/index.html +1 -1
- package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
- package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
- package/coverage/cwv/cwv-suite.generator.ts.html +1 -1
- package/coverage/cwv/index.html +1 -1
- package/coverage/generators/_collections/cli-runner.util.ts.html +1 -1
- package/coverage/generators/_collections/config-validator.util.ts.html +1 -1
- package/coverage/generators/_collections/field-emission.util.ts.html +86 -86
- package/coverage/generators/_collections/form-level-emission.util.ts.html +39 -33
- package/coverage/generators/_collections/index.html +17 -17
- package/coverage/generators/_collections/json-schema.util.ts.html +1 -1
- package/coverage/generators/_collections/preset-configs.const.ts.html +1 -1
- package/coverage/generators/_collections/spec-emission.util.ts.html +35 -35
- package/coverage/generators/_collections/test-case-filter.util.ts.html +153 -51
- package/coverage/generators/_collections/viewport-emission.util.ts.html +1 -1
- package/coverage/generators/form-suite.generator.ts.html +78 -78
- package/coverage/generators/index.html +1 -1
- package/coverage/generators/viewport-suite.generator.ts.html +1 -1
- package/coverage/index.html +61 -16
- package/coverage/lcov-report/contracts/_collections/index.html +1 -1
- package/coverage/lcov-report/contracts/_collections/index.ts.html +1 -1
- package/coverage/lcov-report/contracts/_collections/utils/index.html +1 -1
- package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +10 -10
- package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/index.html +1 -1
- package/coverage/lcov-report/contracts/_enums/index.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +1 -1
- package/coverage/lcov-report/contracts/index.html +1 -1
- package/coverage/lcov-report/contracts/index.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/index.html +1 -1
- package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +1 -1
- package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +1 -1
- package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +1 -1
- package/coverage/lcov-report/cwv/index.html +1 -1
- package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +86 -86
- package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +39 -33
- package/coverage/lcov-report/generators/_collections/index.html +17 -17
- package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +1 -1
- package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +35 -35
- package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +153 -51
- package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +1 -1
- package/coverage/lcov-report/generators/form-suite.generator.ts.html +78 -78
- package/coverage/lcov-report/generators/index.html +1 -1
- package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +1 -1
- package/coverage/lcov-report/index.html +61 -16
- package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +1 -1
- package/coverage/lcov-report/runtime/_collections/index.html +1 -1
- package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +1 -1
- package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/index.html +1 -1
- package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/logger.service.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +1 -1
- package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +1 -1
- package/coverage/lcov-report/runtime/index.html +1 -1
- package/coverage/lcov-report/runtime/index.ts.html +1 -1
- package/coverage/lcov-report/vqa/_collections/utils/deterministic-finding.util.ts.html +481 -0
- package/coverage/lcov-report/vqa/_collections/utils/finding-id.util.ts.html +214 -0
- package/coverage/lcov-report/vqa/_collections/utils/finding-validator.util.ts.html +463 -0
- package/coverage/lcov-report/vqa/_collections/utils/index.html +176 -0
- package/coverage/lcov-report/vqa/_collections/utils/manifest-validator.util.ts.html +652 -0
- package/coverage/lcov-report/vqa/_collections/utils/risk-score.util.ts.html +424 -0
- package/coverage/lcov-report/vqa/_enums/dom-evidence-detector.enum.ts.html +214 -0
- package/coverage/lcov-report/vqa/_enums/finding-severity.enum.ts.html +133 -0
- package/coverage/lcov-report/vqa/_enums/finding-status.enum.ts.html +151 -0
- package/coverage/lcov-report/vqa/_enums/index.html +161 -0
- package/coverage/lcov-report/vqa/_enums/visual-state-type.enum.ts.html +235 -0
- package/coverage/lcov-report/vqa/generators/ai-agent-readme.template.ts.html +643 -0
- package/coverage/lcov-report/vqa/generators/bundle-summary.template.ts.html +316 -0
- package/coverage/lcov-report/vqa/generators/capture-spec.generator.ts.html +835 -0
- package/coverage/lcov-report/vqa/generators/comparison-bundle.generator.ts.html +898 -0
- package/coverage/lcov-report/vqa/generators/index.html +176 -0
- package/coverage/lcov-report/vqa/generators/review-bundle.generator.ts.html +559 -0
- package/coverage/lcov.info +2680 -466
- package/coverage/runtime/_collections/assertion-helpers.util.ts.html +1 -1
- package/coverage/runtime/_collections/index.html +1 -1
- package/coverage/runtime/_collections/unique-generator.util.ts.html +1 -1
- package/coverage/runtime/_collections/wait-helpers.util.ts.html +1 -1
- package/coverage/runtime/_services/dialog-page-object.ts.html +1 -1
- package/coverage/runtime/_services/field-page-object.ts.html +1 -1
- package/coverage/runtime/_services/form-page-object.ts.html +1 -1
- package/coverage/runtime/_services/index.html +1 -1
- package/coverage/runtime/_services/loader-page-object.ts.html +1 -1
- package/coverage/runtime/_services/logger.service.ts.html +1 -1
- package/coverage/runtime/_services/login-flow-helper.base.ts.html +1 -1
- package/coverage/runtime/_services/nav-page-object.ts.html +1 -1
- package/coverage/runtime/_services/toast-page-object.ts.html +1 -1
- package/coverage/runtime/_services/wave-2b-page-objects.ts.html +1 -1
- package/coverage/runtime/index.html +1 -1
- package/coverage/runtime/index.ts.html +1 -1
- package/coverage/tmp/coverage-23996-1781139437397-0.json +1 -0
- package/coverage/tmp/{coverage-11671-1781126947590-0.json → coverage-24001-1781139435697-0.json} +1 -1
- package/coverage/vqa/_collections/utils/deterministic-finding.util.ts.html +481 -0
- package/coverage/vqa/_collections/utils/finding-id.util.ts.html +214 -0
- package/coverage/vqa/_collections/utils/finding-validator.util.ts.html +463 -0
- package/coverage/vqa/_collections/utils/index.html +176 -0
- package/coverage/vqa/_collections/utils/manifest-validator.util.ts.html +652 -0
- package/coverage/vqa/_collections/utils/risk-score.util.ts.html +424 -0
- package/coverage/vqa/_enums/dom-evidence-detector.enum.ts.html +214 -0
- package/coverage/vqa/_enums/finding-severity.enum.ts.html +133 -0
- package/coverage/vqa/_enums/finding-status.enum.ts.html +151 -0
- package/coverage/vqa/_enums/index.html +161 -0
- package/coverage/vqa/_enums/visual-state-type.enum.ts.html +235 -0
- package/coverage/vqa/generators/ai-agent-readme.template.ts.html +643 -0
- package/coverage/vqa/generators/bundle-summary.template.ts.html +316 -0
- package/coverage/vqa/generators/capture-spec.generator.ts.html +835 -0
- package/coverage/vqa/generators/comparison-bundle.generator.ts.html +898 -0
- package/coverage/vqa/generators/index.html +176 -0
- package/coverage/vqa/generators/review-bundle.generator.ts.html +559 -0
- package/package.json +7 -1
- package/coverage/tmp/coverage-11666-1781126948871-0.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-spec.generator.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/capture-spec.generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AAIvG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,6BAA6B;IAC5C,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,+BAA+B;IAE1C,MAAM,CAAC,IAAI,CACT,QAAQ,EAAE,mCAAmC,EAC7C,OAAO,CAAC,EAAE,6BAA6B,GACtC,MAAM;IAuHT,OAAO,CAAC,MAAM,CAAC,aAAa;IA6C5B,OAAO,CAAC,MAAM,CAAC,aAAa;CAiD7B"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyE2E_VQA_CaptureSpec_Generator = void 0;
|
|
4
|
+
class DyE2E_VQA_CaptureSpec_Generator {
|
|
5
|
+
static emit(manifest, options) {
|
|
6
|
+
const header = options?.headerComment ??
|
|
7
|
+
`// AUTOGEN by @futdevpro/dynamo-e2e/vqa — DyE2E_VQA_CaptureSpec_Generator. DO NOT EDIT.`;
|
|
8
|
+
const orientations = manifest.orientations && manifest.orientations.length > 0
|
|
9
|
+
? manifest.orientations
|
|
10
|
+
: ['portrait'];
|
|
11
|
+
const ctaSelectors = (manifest.criticalElements ?? [])
|
|
12
|
+
.filter((c) => c.regionType === 'primary-cta')
|
|
13
|
+
.map((c) => c.selector);
|
|
14
|
+
const criticalElementsLiteral = JSON.stringify(manifest.criticalElements ?? []);
|
|
15
|
+
const ctaSelectorsLiteral = JSON.stringify(ctaSelectors);
|
|
16
|
+
const manifestLiteral = JSON.stringify({
|
|
17
|
+
featureId: manifest.featureId,
|
|
18
|
+
featureName: manifest.featureName,
|
|
19
|
+
route: manifest.route,
|
|
20
|
+
});
|
|
21
|
+
const featureFlowEmit = this.emitFlowSteps(manifest.flowSteps ?? [], ' ');
|
|
22
|
+
const stateBlocks = manifest.states.map((s) => this.emitStateTest(manifest, s, orientations, ctaSelectorsLiteral, criticalElementsLiteral, featureFlowEmit)).join('\n\n');
|
|
23
|
+
const a11yEnabled = (manifest.testDataSetup?.a11yEnabled) === true;
|
|
24
|
+
return `${header}
|
|
25
|
+
|
|
26
|
+
import { test, expect, type Page } from '@playwright/test';
|
|
27
|
+
import * as fs from 'fs';
|
|
28
|
+
import * as path from 'path';
|
|
29
|
+
import {
|
|
30
|
+
DyE2E_VQA_DomEvidencePageScripts_Const,
|
|
31
|
+
DyE2E_VQA_AntiFlake_Css_Const,${a11yEnabled ? `
|
|
32
|
+
DyE2E_VQA_Axe_CdnUrl_Const,
|
|
33
|
+
DyE2E_VQA_AxeRunScript_Const,` : ''}
|
|
34
|
+
} from '@futdevpro/dynamo-e2e/vqa';
|
|
35
|
+
|
|
36
|
+
const VQA_OUT_DIR: string = process.env.VQA_OUT_DIR
|
|
37
|
+
|| path.join(process.cwd(), 'review-bundles', '${manifest.featureId}', \`run-\${process.env.VQA_RUN_ID || Date.now()}\`);
|
|
38
|
+
const VQA_BASE_URL: string = process.env.VQA_BASE_URL || 'http://localhost:4200';
|
|
39
|
+
const A11Y_ENABLED: boolean = ${a11yEnabled};
|
|
40
|
+
const FEATURE = ${manifestLiteral};
|
|
41
|
+
|
|
42
|
+
function ensureDir(p: string): void {
|
|
43
|
+
fs.mkdirSync(p, { recursive: true });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async function stabilizePage(page: Page): Promise<void> {
|
|
47
|
+
// Anti-flake: disable animations + transitions
|
|
48
|
+
await page.addStyleTag({ content: DyE2E_VQA_AntiFlake_Css_Const });
|
|
49
|
+
// Font-loading await — szövegmérés stabilitásához
|
|
50
|
+
await page.evaluate(() => document.fonts && document.fonts.ready);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async function runDetectors(page: Page, ctaSelectors: string[], stateOut: string): Promise<unknown[]> {
|
|
54
|
+
const evidence: unknown[] = [];
|
|
55
|
+
for (const [, raw] of Object.entries(DyE2E_VQA_DomEvidencePageScripts_Const)) {
|
|
56
|
+
const script: string = (raw as string).replace(
|
|
57
|
+
/__CRITICAL_CTA_SELECTORS__/g, JSON.stringify(ctaSelectors),
|
|
58
|
+
);
|
|
59
|
+
try {
|
|
60
|
+
const r: unknown = await page.evaluate(script);
|
|
61
|
+
evidence.push(r);
|
|
62
|
+
} catch (e) {
|
|
63
|
+
evidence.push({ error: String(e) });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
ensureDir(stateOut);
|
|
67
|
+
fs.writeFileSync(path.join(stateOut, 'evidence.json'), JSON.stringify(evidence, null, 2));
|
|
68
|
+
return evidence;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
${a11yEnabled ? `async function runAxe(page: Page, stateOut: string): Promise<void> {
|
|
72
|
+
try {
|
|
73
|
+
await page.addScriptTag({ url: DyE2E_VQA_Axe_CdnUrl_Const });
|
|
74
|
+
const result: unknown = await page.evaluate(DyE2E_VQA_AxeRunScript_Const);
|
|
75
|
+
ensureDir(stateOut);
|
|
76
|
+
fs.writeFileSync(path.join(stateOut, 'a11y.json'), JSON.stringify(result, null, 2));
|
|
77
|
+
} catch (e) {
|
|
78
|
+
fs.writeFileSync(path.join(stateOut, 'a11y.json'),
|
|
79
|
+
JSON.stringify({ error: String(e) }, null, 2));
|
|
80
|
+
}
|
|
81
|
+
}` : `async function runAxe(_page: Page, _stateOut: string): Promise<void> { /* a11yEnabled=false */ }`}
|
|
82
|
+
|
|
83
|
+
async function captureDomSnapshot(page: Page, stateOut: string): Promise<void> {
|
|
84
|
+
const dom: unknown = await page.evaluate(() => {
|
|
85
|
+
return {
|
|
86
|
+
viewportWidth: window.innerWidth,
|
|
87
|
+
viewportHeight: window.innerHeight,
|
|
88
|
+
bodyScrollHeight: document.body.scrollHeight,
|
|
89
|
+
bodyScrollWidth: document.body.scrollWidth,
|
|
90
|
+
activeElement: document.activeElement
|
|
91
|
+
? { tag: document.activeElement.tagName.toLowerCase(),
|
|
92
|
+
id: (document.activeElement as HTMLElement).id || null }
|
|
93
|
+
: null,
|
|
94
|
+
scrollY: window.scrollY,
|
|
95
|
+
scrollX: window.scrollX,
|
|
96
|
+
title: document.title,
|
|
97
|
+
url: location.href,
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
ensureDir(stateOut);
|
|
101
|
+
fs.writeFileSync(path.join(stateOut, 'dom-snapshot.json'), JSON.stringify(dom, null, 2));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
${stateBlocks}
|
|
105
|
+
`;
|
|
106
|
+
}
|
|
107
|
+
static emitStateTest(manifest, state, orientations, ctaSelectorsLiteral, _criticalElementsLiteral, featureFlowEmit) {
|
|
108
|
+
const prepareFlowEmit = this.emitFlowSteps(state.prepareFlow ?? [], ' ');
|
|
109
|
+
const readyTestIdEmit = state.readyTestId
|
|
110
|
+
? ` await page.waitForSelector('[data-testid="${state.readyTestId}"]', { timeout: 15_000 });`
|
|
111
|
+
: '';
|
|
112
|
+
const maskExpr = state.maskSelectors && state.maskSelectors.length > 0
|
|
113
|
+
? `[${state.maskSelectors.map((s) => `page.locator(${JSON.stringify(s)})`).join(', ')}]`
|
|
114
|
+
: '[]';
|
|
115
|
+
const blocks = [];
|
|
116
|
+
for (const vp of manifest.viewports) {
|
|
117
|
+
for (const orientation of orientations) {
|
|
118
|
+
const w = orientation === 'landscape' ? Math.max(vp.width, vp.height) : Math.min(vp.width, vp.height);
|
|
119
|
+
const h = orientation === 'landscape' ? Math.min(vp.width, vp.height) : Math.max(vp.width, vp.height);
|
|
120
|
+
blocks.push(`
|
|
121
|
+
test('${state.stateId} | ${vp.key} | ${orientation}', async ({ page }) => {
|
|
122
|
+
await page.setViewportSize({ width: ${w}, height: ${h} });
|
|
123
|
+
await page.goto(VQA_BASE_URL + '${manifest.route}');
|
|
124
|
+
${featureFlowEmit}
|
|
125
|
+
${prepareFlowEmit}
|
|
126
|
+
${readyTestIdEmit}
|
|
127
|
+
await stabilizePage(page);
|
|
128
|
+
const stateOut: string = path.join(VQA_OUT_DIR, 'states', '${state.stateId}', '${vp.key}-${orientation}');
|
|
129
|
+
ensureDir(stateOut);
|
|
130
|
+
const maskLocators = ${maskExpr};
|
|
131
|
+
await page.screenshot({ path: path.join(stateOut, 'full.png'), fullPage: true, mask: maskLocators });
|
|
132
|
+
await page.screenshot({ path: path.join(stateOut, 'fold.png'), fullPage: false, mask: maskLocators });
|
|
133
|
+
await captureDomSnapshot(page, stateOut);
|
|
134
|
+
await runDetectors(page, ${ctaSelectorsLiteral}, stateOut);
|
|
135
|
+
await runAxe(page, stateOut);
|
|
136
|
+
expect(fs.existsSync(path.join(stateOut, 'full.png'))).toBeTruthy();
|
|
137
|
+
});
|
|
138
|
+
`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return blocks.join('\n');
|
|
142
|
+
}
|
|
143
|
+
static emitFlowSteps(steps, indent) {
|
|
144
|
+
if (!steps || steps.length === 0) {
|
|
145
|
+
return '';
|
|
146
|
+
}
|
|
147
|
+
const lines = [];
|
|
148
|
+
for (const s of steps) {
|
|
149
|
+
const target = s.target ? JSON.stringify(s.target) : '""';
|
|
150
|
+
const value = s.value !== undefined ? JSON.stringify(s.value) : '""';
|
|
151
|
+
const timeoutStr = s.timeout !== undefined ? `, { timeout: ${s.timeout} }` : '';
|
|
152
|
+
switch (s.action) {
|
|
153
|
+
case 'navigate':
|
|
154
|
+
lines.push(`${indent}await page.goto(VQA_BASE_URL + ${target});`);
|
|
155
|
+
break;
|
|
156
|
+
case 'click':
|
|
157
|
+
lines.push(`${indent}await page.locator(${target}).click();`);
|
|
158
|
+
break;
|
|
159
|
+
case 'fill':
|
|
160
|
+
lines.push(`${indent}await page.locator(${target}).fill(${value});`);
|
|
161
|
+
break;
|
|
162
|
+
case 'select':
|
|
163
|
+
lines.push(`${indent}await page.locator(${target}).selectOption(${value});`);
|
|
164
|
+
break;
|
|
165
|
+
case 'press':
|
|
166
|
+
lines.push(`${indent}await page.keyboard.press(${value});`);
|
|
167
|
+
break;
|
|
168
|
+
case 'hover':
|
|
169
|
+
lines.push(`${indent}await page.locator(${target}).hover();`);
|
|
170
|
+
break;
|
|
171
|
+
case 'waitForSelector':
|
|
172
|
+
lines.push(`${indent}await page.waitForSelector(${target}${timeoutStr});`);
|
|
173
|
+
break;
|
|
174
|
+
case 'waitForTimeout':
|
|
175
|
+
lines.push(`${indent}await page.waitForTimeout(${s.value ?? 0});`);
|
|
176
|
+
break;
|
|
177
|
+
case 'setViewport': {
|
|
178
|
+
const dims = (s.target ?? '0x0').split('x');
|
|
179
|
+
lines.push(`${indent}await page.setViewportSize({ width: ${parseInt(dims[0] ?? '0', 10)}, height: ${parseInt(dims[1] ?? '0', 10)} });`);
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case 'evaluate':
|
|
183
|
+
lines.push(`${indent}await page.evaluate(${value});`);
|
|
184
|
+
break;
|
|
185
|
+
case 'mockResponse':
|
|
186
|
+
lines.push(`${indent}await page.route(${target}, route => route.fulfill(${value || '{}'}));`);
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return lines.join('\n');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.DyE2E_VQA_CaptureSpec_Generator = DyE2E_VQA_CaptureSpec_Generator;
|
|
194
|
+
//# sourceMappingURL=capture-spec.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture-spec.generator.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/capture-spec.generator.ts"],"names":[],"mappings":";;;AA+BA,MAAa,+BAA+B;IAE1C,MAAM,CAAC,IAAI,CACT,QAA6C,EAC7C,OAAuC;QAEvC,MAAM,MAAM,GAAW,OAAO,EAAE,aAAa;YAC3C,yFAAyF,CAAC;QAE5F,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,GAAa,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC;aAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE1B,MAAM,uBAAuB,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACxF,MAAM,mBAAmB,GAAW,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,eAAe,GAAW,IAAI,CAAC,SAAS,CAAC;YAC7C,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAW,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEvF,MAAM,WAAW,GAAW,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CACvE,QAAQ,EACR,CAAC,EACD,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,CAChB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,MAAM,WAAW,GACf,CAAE,QAAQ,CAAC,aAAuD,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;QAE5F,OAAO,GAAG,MAAM;;;;;;;kCAOc,WAAW,CAAC,CAAC,CAAC;;gCAEhB,CAAC,CAAC,CAAC,EAAE;;;;mDAIc,QAAQ,CAAC,SAAS;;gCAErC,WAAW;kBACzB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B/B,WAAW,CAAC,CAAC,CAAC;;;;;;;;;;EAUd,CAAC,CAAC,CAAC,kGAAkG;;;;;;;;;;;;;;;;;;;;;;;EAuBrG,WAAW;CACZ,CAAC;IACA,CAAC;IAEO,MAAM,CAAC,aAAa,CAC1B,QAA6C,EAC7C,KAAsC,EACtC,YAA0C,EAC1C,mBAA2B,EAC3B,wBAAgC,EAChC,eAAuB;QAEvB,MAAM,eAAe,GAAW,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtF,MAAM,eAAe,GAAW,KAAK,CAAC,WAAW;YAC/C,CAAC,CAAC,mDAAmD,KAAK,CAAC,WAAW,4BAA4B;YAClG,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAW,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC5E,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACxF,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAW,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC9G,MAAM,CAAC,GAAW,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC9G,MAAM,CAAC,IAAI,CAAC;UACV,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,GAAG,MAAM,WAAW;0CACV,CAAC,aAAa,CAAC;sCACnB,QAAQ,CAAC,KAAK;EAClD,eAAe;EACf,eAAe;EACf,eAAe;;iEAEgD,KAAK,CAAC,OAAO,OAAO,EAAE,CAAC,GAAG,IAAI,WAAW;;2BAE/E,QAAQ;;;;+BAIJ,mBAAmB;;;;CAIjD,CAAC,CAAC;YACG,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,KAAqC,EAAE,MAAc;QAChF,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,MAAM,GAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,MAAM,KAAK,GAAW,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,MAAM,UAAU,GAAW,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjB,KAAK,UAAU;oBACb,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,kCAAkC,MAAM,IAAI,CAAC,CAAC;oBAClE,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sBAAsB,MAAM,YAAY,CAAC,CAAC;oBAC9D,MAAM;gBACR,KAAK,MAAM;oBACT,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sBAAsB,MAAM,UAAU,KAAK,IAAI,CAAC,CAAC;oBACrE,MAAM;gBACR,KAAK,QAAQ;oBACX,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sBAAsB,MAAM,kBAAkB,KAAK,IAAI,CAAC,CAAC;oBAC7E,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,6BAA6B,KAAK,IAAI,CAAC,CAAC;oBAC5D,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,sBAAsB,MAAM,YAAY,CAAC,CAAC;oBAC9D,MAAM;gBACR,KAAK,iBAAiB;oBACpB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,8BAA8B,MAAM,GAAG,UAAU,IAAI,CAAC,CAAC;oBAC3E,MAAM;gBACR,KAAK,gBAAgB;oBACnB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,6BAA6B,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnE,MAAM;gBACR,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,MAAM,IAAI,GAAa,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,uCAAuC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;oBACxI,MAAM;gBACR,CAAC;gBACD,KAAK,UAAU;oBACb,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,uBAAuB,KAAK,IAAI,CAAC,CAAC;oBACtD,MAAM;gBACR,KAAK,cAAc;oBACjB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,oBAAoB,MAAM,4BAA4B,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC;oBAC9F,MAAM;YACV,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AA1ND,0EA0NC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DyE2E_VQA_FeatureManifest_Interface } from '../_models/interfaces/feature-manifest.interface';
|
|
2
|
+
/**
|
|
3
|
+
* `DyE2E_VQA_ComparisonBundle_Generator` — MP-F: re-audit comparison-bundle (spec §15).
|
|
4
|
+
*
|
|
5
|
+
* Két korábbi run-folder-t kap inputként + a re-audit-elendő finding-ID-k listáját.
|
|
6
|
+
* Output: a `before` bundle-en BELÜLI `comparison/` mappa, ami az AI agentnek strukturált
|
|
7
|
+
* delta-t mutat:
|
|
8
|
+
* - `comparison/README.md` — review-instrukció (decide: verified / reopened / partial)
|
|
9
|
+
* - `comparison/before-run-id.txt`, `after-run-id.txt`
|
|
10
|
+
* - `comparison/finding-refs.json` — milyen finding-eket nézzünk
|
|
11
|
+
* - `comparison/dom-diff/<state>/<viewport>.json` — DOM-snapshot-delta
|
|
12
|
+
* - `comparison/evidence-diff/<state>/<viewport>.json` — detector verdict-delta
|
|
13
|
+
* - `comparison/a11y-diff/<state>/<viewport>.json` — axe-finding-delta
|
|
14
|
+
*
|
|
15
|
+
* **scope-LOCK**: NEM dönt. Az AI agent dönti el verified/reopened-et.
|
|
16
|
+
*/
|
|
17
|
+
export interface DyE2E_VQA_ComparisonBundle_Options {
|
|
18
|
+
/** Bundle-relative output mappa-név (default: `comparison`). */
|
|
19
|
+
outputSubdir?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DyE2E_VQA_ComparisonBundle_Result {
|
|
22
|
+
comparisonPath: string;
|
|
23
|
+
filesWritten: string[];
|
|
24
|
+
statesCompared: number;
|
|
25
|
+
viewportsCompared: number;
|
|
26
|
+
}
|
|
27
|
+
export declare class DyE2E_VQA_ComparisonBundle_Generator {
|
|
28
|
+
static generate(beforeBundlePath: string, afterBundlePath: string, manifest: DyE2E_VQA_FeatureManifest_Interface, findingRefs: string[], options?: DyE2E_VQA_ComparisonBundle_Options): DyE2E_VQA_ComparisonBundle_Result;
|
|
29
|
+
private static readMeta;
|
|
30
|
+
private static tryReadJson;
|
|
31
|
+
/** Egyszerű deep-diff: `{ added, removed, changed }` map (kulcs-szinten). */
|
|
32
|
+
static deepDiff(before: unknown, after: unknown): unknown;
|
|
33
|
+
/** Evidence-array specifikus diff: minden detektorra verdict-változás. */
|
|
34
|
+
static diffEvidenceArrays(before: unknown, after: unknown): unknown;
|
|
35
|
+
private static renderReadme;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=comparison-bundle.generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-bundle.generator.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/comparison-bundle.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AAEvG;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,kCAAkC;IACjD,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,oCAAoC;IAE/C,MAAM,CAAC,QAAQ,CACb,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,mCAAmC,EAC7C,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,kCAAkC,GAC3C,iCAAiC;IA0FpC,OAAO,CAAC,MAAM,CAAC,QAAQ;IAQvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAW1B,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAsCzD,0EAA0E;IAC1E,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAmCnE,OAAO,CAAC,MAAM,CAAC,YAAY;CA+C5B"}
|
|
@@ -0,0 +1,238 @@
|
|
|
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
|
+
exports.DyE2E_VQA_ComparisonBundle_Generator = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
class DyE2E_VQA_ComparisonBundle_Generator {
|
|
30
|
+
static generate(beforeBundlePath, afterBundlePath, manifest, findingRefs, options) {
|
|
31
|
+
const subdir = options?.outputSubdir ?? 'comparison';
|
|
32
|
+
const comparisonPath = path.join(afterBundlePath, subdir);
|
|
33
|
+
fs.mkdirSync(comparisonPath, { recursive: true });
|
|
34
|
+
const orientations = manifest.orientations && manifest.orientations.length > 0
|
|
35
|
+
? manifest.orientations
|
|
36
|
+
: ['portrait'];
|
|
37
|
+
const filesWritten = [];
|
|
38
|
+
// run-id refs (read meta)
|
|
39
|
+
const beforeRunId = this.readMeta(beforeBundlePath, 'run-id.txt');
|
|
40
|
+
const afterRunId = this.readMeta(afterBundlePath, 'run-id.txt');
|
|
41
|
+
fs.writeFileSync(path.join(comparisonPath, 'before-run-id.txt'), beforeRunId);
|
|
42
|
+
fs.writeFileSync(path.join(comparisonPath, 'after-run-id.txt'), afterRunId);
|
|
43
|
+
filesWritten.push('before-run-id.txt', 'after-run-id.txt');
|
|
44
|
+
// finding-refs.json
|
|
45
|
+
fs.writeFileSync(path.join(comparisonPath, 'finding-refs.json'), JSON.stringify({ findingRefs, beforeRunId, afterRunId }, null, 2));
|
|
46
|
+
filesWritten.push('finding-refs.json');
|
|
47
|
+
// README.md — re-audit decision-instrukció
|
|
48
|
+
fs.writeFileSync(path.join(comparisonPath, 'README.md'), this.renderReadme(manifest, findingRefs, beforeRunId, afterRunId));
|
|
49
|
+
filesWritten.push('README.md');
|
|
50
|
+
// Per (state × viewport × orientation) DOM-diff + evidence-diff + a11y-diff
|
|
51
|
+
let statesCompared = 0;
|
|
52
|
+
let viewportsCompared = 0;
|
|
53
|
+
for (const s of manifest.states) {
|
|
54
|
+
let stateHadFiles = false;
|
|
55
|
+
for (const v of manifest.viewports) {
|
|
56
|
+
for (const o of orientations) {
|
|
57
|
+
const subPath = path.join(s.stateId, `${v.key}-${o}`);
|
|
58
|
+
const beforeStateDir = path.join(beforeBundlePath, 'states', subPath);
|
|
59
|
+
const afterStateDir = path.join(afterBundlePath, 'states', subPath);
|
|
60
|
+
// dom-diff
|
|
61
|
+
const beforeDom = this.tryReadJson(path.join(beforeStateDir, 'dom-snapshot.json'));
|
|
62
|
+
const afterDom = this.tryReadJson(path.join(afterStateDir, 'dom-snapshot.json'));
|
|
63
|
+
if (beforeDom !== null || afterDom !== null) {
|
|
64
|
+
const out = path.join(comparisonPath, 'dom-diff', subPath + '.json');
|
|
65
|
+
fs.mkdirSync(path.dirname(out), { recursive: true });
|
|
66
|
+
fs.writeFileSync(out, JSON.stringify(this.deepDiff(beforeDom, afterDom), null, 2));
|
|
67
|
+
filesWritten.push(`dom-diff/${subPath}.json`);
|
|
68
|
+
}
|
|
69
|
+
// evidence-diff
|
|
70
|
+
const beforeEv = this.tryReadJson(path.join(beforeStateDir, 'evidence.json'));
|
|
71
|
+
const afterEv = this.tryReadJson(path.join(afterStateDir, 'evidence.json'));
|
|
72
|
+
if (beforeEv !== null || afterEv !== null) {
|
|
73
|
+
const out = path.join(comparisonPath, 'evidence-diff', subPath + '.json');
|
|
74
|
+
fs.mkdirSync(path.dirname(out), { recursive: true });
|
|
75
|
+
fs.writeFileSync(out, JSON.stringify(this.diffEvidenceArrays(beforeEv, afterEv), null, 2));
|
|
76
|
+
filesWritten.push(`evidence-diff/${subPath}.json`);
|
|
77
|
+
}
|
|
78
|
+
// a11y-diff (opcionális; ha valamelyik run-ban nincs, deeper-diff)
|
|
79
|
+
const beforeA11y = this.tryReadJson(path.join(beforeStateDir, 'a11y.json'));
|
|
80
|
+
const afterA11y = this.tryReadJson(path.join(afterStateDir, 'a11y.json'));
|
|
81
|
+
if (beforeA11y !== null || afterA11y !== null) {
|
|
82
|
+
const out = path.join(comparisonPath, 'a11y-diff', subPath + '.json');
|
|
83
|
+
fs.mkdirSync(path.dirname(out), { recursive: true });
|
|
84
|
+
fs.writeFileSync(out, JSON.stringify(this.deepDiff(beforeA11y, afterA11y), null, 2));
|
|
85
|
+
filesWritten.push(`a11y-diff/${subPath}.json`);
|
|
86
|
+
}
|
|
87
|
+
if (afterStateDir && fs.existsSync(afterStateDir)) {
|
|
88
|
+
viewportsCompared++;
|
|
89
|
+
stateHadFiles = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (stateHadFiles) {
|
|
94
|
+
statesCompared++;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return { comparisonPath, filesWritten, statesCompared, viewportsCompared };
|
|
98
|
+
}
|
|
99
|
+
static readMeta(bundlePath, fileName) {
|
|
100
|
+
const p = path.join(bundlePath, 'meta', fileName);
|
|
101
|
+
if (fs.existsSync(p)) {
|
|
102
|
+
return fs.readFileSync(p, 'utf-8').trim();
|
|
103
|
+
}
|
|
104
|
+
return 'unknown';
|
|
105
|
+
}
|
|
106
|
+
static tryReadJson(p) {
|
|
107
|
+
if (!fs.existsSync(p)) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
return JSON.parse(fs.readFileSync(p, 'utf-8'));
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** Egyszerű deep-diff: `{ added, removed, changed }` map (kulcs-szinten). */
|
|
118
|
+
static deepDiff(before, after) {
|
|
119
|
+
if (before === null && after === null) {
|
|
120
|
+
return { unchanged: true };
|
|
121
|
+
}
|
|
122
|
+
if (before === null) {
|
|
123
|
+
return { onlyAfter: after };
|
|
124
|
+
}
|
|
125
|
+
if (after === null) {
|
|
126
|
+
return { onlyBefore: before };
|
|
127
|
+
}
|
|
128
|
+
if (typeof before !== 'object' || typeof after !== 'object') {
|
|
129
|
+
if (before === after) {
|
|
130
|
+
return { unchanged: true, value: before };
|
|
131
|
+
}
|
|
132
|
+
return { before, after };
|
|
133
|
+
}
|
|
134
|
+
const bObj = before;
|
|
135
|
+
const aObj = after;
|
|
136
|
+
const allKeys = new Set([...Object.keys(bObj), ...Object.keys(aObj)]);
|
|
137
|
+
const added = {};
|
|
138
|
+
const removed = {};
|
|
139
|
+
const changed = {};
|
|
140
|
+
for (const k of allKeys) {
|
|
141
|
+
if (!(k in bObj)) {
|
|
142
|
+
added[k] = aObj[k];
|
|
143
|
+
}
|
|
144
|
+
else if (!(k in aObj)) {
|
|
145
|
+
removed[k] = bObj[k];
|
|
146
|
+
}
|
|
147
|
+
else if (JSON.stringify(bObj[k]) !== JSON.stringify(aObj[k])) {
|
|
148
|
+
changed[k] = { before: bObj[k], after: aObj[k] };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
added: Object.keys(added).length > 0 ? added : undefined,
|
|
153
|
+
removed: Object.keys(removed).length > 0 ? removed : undefined,
|
|
154
|
+
changed: Object.keys(changed).length > 0 ? changed : undefined,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/** Evidence-array specifikus diff: minden detektorra verdict-változás. */
|
|
158
|
+
static diffEvidenceArrays(before, after) {
|
|
159
|
+
const toMap = (arr) => {
|
|
160
|
+
const m = {};
|
|
161
|
+
if (Array.isArray(arr)) {
|
|
162
|
+
for (const e of arr) {
|
|
163
|
+
const d = e;
|
|
164
|
+
if (d?.detector) {
|
|
165
|
+
m[d.detector] = e;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return m;
|
|
170
|
+
};
|
|
171
|
+
const bm = toMap(before);
|
|
172
|
+
const am = toMap(after);
|
|
173
|
+
const detectors = new Set([...Object.keys(bm), ...Object.keys(am)]);
|
|
174
|
+
const delta = {};
|
|
175
|
+
for (const d of detectors) {
|
|
176
|
+
const bDetected = bm[d]?.detected === true;
|
|
177
|
+
const aDetected = am[d]?.detected === true;
|
|
178
|
+
if (bDetected !== aDetected) {
|
|
179
|
+
delta[d] = {
|
|
180
|
+
verdictChanged: true,
|
|
181
|
+
before: bDetected ? 'detected' : 'clean',
|
|
182
|
+
after: aDetected ? 'detected' : 'clean',
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
else if (JSON.stringify(bm[d]) !== JSON.stringify(am[d])) {
|
|
186
|
+
delta[d] = { verdictChanged: false, detailsChanged: true };
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
delta[d] = { unchanged: true };
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return delta;
|
|
193
|
+
}
|
|
194
|
+
static renderReadme(manifest, findingRefs, beforeRunId, afterRunId) {
|
|
195
|
+
return `# Re-audit comparison-bundle — \`${manifest.featureName}\`
|
|
196
|
+
|
|
197
|
+
> **Mit kell tenned (AI agent):** olvasd át a finding-ek listáját, vesd össze a
|
|
198
|
+
> before/after dom-diff + evidence-diff + a11y-diff fájlokat, és minden finding-re dönts:
|
|
199
|
+
>
|
|
200
|
+
> - **\`verified\`** — a probléma megszűnt (a re-audit ugyanabban az állapotban már nem találja)
|
|
201
|
+
> - **\`reopened\`** — a probléma visszatért
|
|
202
|
+
> - **\`in-progress\`** (partial) — a probléma részben maradt fenn
|
|
203
|
+
|
|
204
|
+
- **Before run-id:** \`${beforeRunId}\`
|
|
205
|
+
- **After run-id:** \`${afterRunId}\`
|
|
206
|
+
- **Feature:** \`${manifest.featureId}\` — ${manifest.featureName}
|
|
207
|
+
- **Re-audited finding-count:** ${findingRefs.length}
|
|
208
|
+
|
|
209
|
+
## Re-audited finding-ek
|
|
210
|
+
|
|
211
|
+
${findingRefs.length > 0 ? findingRefs.map((f) => `- \`${f}\``).join('\n') : '*Nincs explicit lista — minden finding-et nézz át.*'}
|
|
212
|
+
|
|
213
|
+
## Bundle-struktúra
|
|
214
|
+
|
|
215
|
+
- \`dom-diff/<stateId>/<viewport>-<orient>.json\` — DOM-snapshot delta
|
|
216
|
+
- \`evidence-diff/<stateId>/<viewport>-<orient>.json\` — 16 detektor verdict-delta
|
|
217
|
+
- \`a11y-diff/<stateId>/<viewport>-<orient>.json\` — axe-finding delta (ha van)
|
|
218
|
+
|
|
219
|
+
## Decision-rubric
|
|
220
|
+
|
|
221
|
+
1. **Nyisd meg az adott finding state × viewport-jához tartozó \`evidence-diff\`-et**.
|
|
222
|
+
Ha a kapcsolódó detektor \`verdictChanged: true\` és \`after: 'clean'\` → erős jel \`verified\`-re.
|
|
223
|
+
2. **Nyisd meg a \`dom-diff\`-et** ugyanarra a state-viewport-ra. Nézd meg, hogy a finding-re
|
|
224
|
+
vonatkozó DOM-metrika változott-e (pl. modal scrollHeight, body scrollHeight, primary CTA top).
|
|
225
|
+
3. **Olvasd a screenshot-okat** a \`states/<stateId>/<viewport>-<orient>/full.png\` és \`fold.png\` után-bundle-jéből (after run-id).
|
|
226
|
+
4. **Dönts** és írd a verdict-et a finding \`status\`-ába (\`verified\` | \`reopened\` | \`in-progress\`).
|
|
227
|
+
|
|
228
|
+
A finding-státusz-FSM megengedett tranzícióit a \`DyE2E_VQA_FindingValidator_Util.canTransition\`
|
|
229
|
+
adja — \`readyForReAudit\` → \`verified\` vagy \`reopened\` a jellemző.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
*Comparison generated by \`@futdevpro/dynamo-e2e/vqa\` \`DyE2E_VQA_ComparisonBundle_Generator\`.*
|
|
234
|
+
`;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
exports.DyE2E_VQA_ComparisonBundle_Generator = DyE2E_VQA_ComparisonBundle_Generator;
|
|
238
|
+
//# sourceMappingURL=comparison-bundle.generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparison-bundle.generator.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/comparison-bundle.generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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("./capture-spec.generator"), exports);
|
|
18
|
+
__exportStar(require("./ai-agent-readme.template"), exports);
|
|
19
|
+
__exportStar(require("./bundle-summary.template"), exports);
|
|
20
|
+
__exportStar(require("./review-bundle.generator"), exports);
|
|
21
|
+
__exportStar(require("./comparison-bundle.generator"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,6DAA2C;AAC3C,4DAA0C;AAC1C,4DAA0C;AAC1C,gEAA8C"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { DyE2E_VQA_FeatureManifest_Interface } from '../_models/interfaces/feature-manifest.interface';
|
|
2
|
+
/**
|
|
3
|
+
* `DyE2E_VQA_ReviewBundle_Generator` — **a fő bedrock-tooling** (MP-E).
|
|
4
|
+
*
|
|
5
|
+
* Egy hívással felépíti a `review-bundles/<featureId>/<runId>/` mappa-struktúrát:
|
|
6
|
+
* - `README.md` — AI-agent review-instrukció (rubric + finding-schema)
|
|
7
|
+
* - `summary.md` — feature × state × viewport tábla
|
|
8
|
+
* - `manifest.json` — a futtatott manifest másolata
|
|
9
|
+
* - `capture-spec.ts` — a generált Playwright spec
|
|
10
|
+
* - `findings/` — üres directory, ahova az AI agent ír (findings.md / findings.json)
|
|
11
|
+
* - `meta/run-id.txt`, `meta/build-id.txt`, `meta/timing.json`
|
|
12
|
+
* - (capture-time után: `screenshots/`, `crops/`, `dom-snapshots/`, `evidence/`, `a11y/`)
|
|
13
|
+
*
|
|
14
|
+
* **A capture-spec ELLEN futtatja a user a `playwright test`-et** → az artifact-ok
|
|
15
|
+
* a megfelelő helyre kerülnek (a generált spec tudja a `VQA_OUT_DIR`-t).
|
|
16
|
+
*
|
|
17
|
+
* **scope-LOCK**: NEM csinál AI-call-ot. A bundle "kész AI-agent-re vár".
|
|
18
|
+
*/
|
|
19
|
+
export interface DyE2E_VQA_ReviewBundle_Options {
|
|
20
|
+
/** Override run-ID; default: `run-${Date.now()}`. */
|
|
21
|
+
runId?: string;
|
|
22
|
+
/** Build-azonosító (CICD-build-num / commit-SHA). */
|
|
23
|
+
buildId?: string;
|
|
24
|
+
/** Project-slug a `VQA-<projekt>-...` finding-ID-konvencióhoz. */
|
|
25
|
+
projectSlug?: string;
|
|
26
|
+
/** Skip-eljük-e a capture-spec emit-et (ha a user kézzel írja). Default: false. */
|
|
27
|
+
skipCaptureSpec?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface DyE2E_VQA_ReviewBundle_Result {
|
|
30
|
+
bundlePath: string;
|
|
31
|
+
runId: string;
|
|
32
|
+
files: string[];
|
|
33
|
+
validatorErrors: {
|
|
34
|
+
path: string;
|
|
35
|
+
code: string;
|
|
36
|
+
message: string;
|
|
37
|
+
}[];
|
|
38
|
+
}
|
|
39
|
+
export declare class DyE2E_VQA_ReviewBundle_Generator {
|
|
40
|
+
static generate(manifest: DyE2E_VQA_FeatureManifest_Interface, outputBase: string, options?: DyE2E_VQA_ReviewBundle_Options): DyE2E_VQA_ReviewBundle_Result;
|
|
41
|
+
/** A capture-spec futása UTÁN futtatható; csak ellenőriz hogy a kötelező artifact-ok meg vannak. */
|
|
42
|
+
static verifyBundleArtifacts(bundlePath: string, manifest: DyE2E_VQA_FeatureManifest_Interface): {
|
|
43
|
+
ok: boolean;
|
|
44
|
+
missing: string[];
|
|
45
|
+
};
|
|
46
|
+
/** Date.now() egyrétegű wrapper, hogy könnyen mock-olható legyen. */
|
|
47
|
+
private static stableRunStamp;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=review-bundle.generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-bundle.generator.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/review-bundle.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AAMvG;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,8BAA8B;IAC7C,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpE;AAED,qBAAa,gCAAgC;IAE3C,MAAM,CAAC,QAAQ,CACb,QAAQ,EAAE,mCAAmC,EAC7C,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B;IA8EhC,oGAAoG;IACpG,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,mCAAmC,GAAG;QAC/F,EAAE,EAAE,OAAO,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB;IAsBD,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAC,cAAc;CAG9B"}
|