@futdevpro/dynamo-e2e 1.18.10 → 1.18.12
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/CHANGELOG.md +20 -3
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts +8 -0
- package/build/_modules/contracts/_models/interfaces/form-test-suite-settings.interface.d.ts.map +1 -1
- package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts +13 -0
- package/build/_modules/cwv/_collections/cwv-diagnose.util.d.ts.map +1 -1
- package/build/_modules/cwv/_collections/cwv-diagnose.util.js +45 -1
- package/build/_modules/cwv/_collections/cwv-diagnose.util.js.map +1 -1
- package/build/_modules/cwv/_collections/web-vitals-page-script.const.d.ts.map +1 -1
- package/build/_modules/cwv/_collections/web-vitals-page-script.const.js +17 -1
- package/build/_modules/cwv/_collections/web-vitals-page-script.const.js.map +1 -1
- package/build/_modules/game/_models/game-contracts.interface.d.ts +82 -0
- package/build/_modules/game/_models/game-contracts.interface.d.ts.map +1 -0
- package/build/_modules/game/_models/game-contracts.interface.js +3 -0
- package/build/_modules/game/_models/game-contracts.interface.js.map +1 -0
- package/build/_modules/game/game-seam.helper.d.ts +40 -0
- package/build/_modules/game/game-seam.helper.d.ts.map +1 -0
- package/build/_modules/game/game-seam.helper.js +254 -0
- package/build/_modules/game/game-seam.helper.js.map +1 -0
- package/build/_modules/game/index.d.ts +4 -0
- package/build/_modules/game/index.d.ts.map +1 -0
- package/build/_modules/game/index.js +20 -0
- package/build/_modules/game/index.js.map +1 -0
- package/build/_modules/game/journey-catalog.validator.d.ts +5 -0
- package/build/_modules/game/journey-catalog.validator.d.ts.map +1 -0
- package/build/_modules/game/journey-catalog.validator.js +244 -0
- package/build/_modules/game/journey-catalog.validator.js.map +1 -0
- package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/cli-runner.util.js +28 -0
- package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
- package/build/_modules/generators/_collections/field-emission.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/field-emission.util.js +51 -7
- package/build/_modules/generators/_collections/field-emission.util.js.map +1 -1
- package/build/_modules/generators/_collections/form-level-emission.util.d.ts.map +1 -1
- package/build/_modules/generators/_collections/form-level-emission.util.js +8 -0
- package/build/_modules/generators/_collections/form-level-emission.util.js.map +1 -1
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts +21 -0
- package/build/_modules/generators/_models/form-settings-shape.interface.d.ts.map +1 -1
- package/build/_modules/generators/form-suite.generator.d.ts +5 -0
- package/build/_modules/generators/form-suite.generator.d.ts.map +1 -1
- package/build/_modules/generators/form-suite.generator.js +53 -5
- package/build/_modules/generators/form-suite.generator.js.map +1 -1
- package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -1
- package/build/_modules/presets/_collections/playwright-config.factory.js +6 -0
- package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -1
- package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +4 -0
- package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -1
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts +2 -1
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.d.ts.map +1 -1
- package/build/_modules/vqa/_collections/utils/deterministic-finding.util.js.map +1 -1
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts +29 -2
- package/build/_modules/vqa/_models/interfaces/feature-manifest.interface.d.ts.map +1 -1
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts +2 -1
- package/build/_modules/vqa/_models/interfaces/finding.interface.d.ts.map +1 -1
- package/build/_modules/vqa/generators/ai-agent-readme.template.js +1 -1
- package/build/_modules/vqa/generators/bundle-summary.template.d.ts.map +1 -1
- package/build/_modules/vqa/generators/bundle-summary.template.js +1 -1
- package/build/_modules/vqa/generators/bundle-summary.template.js.map +1 -1
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts +5 -0
- package/build/_modules/vqa/generators/capture-spec.generator.d.ts.map +1 -1
- package/build/_modules/vqa/generators/capture-spec.generator.js +26 -10
- package/build/_modules/vqa/generators/capture-spec.generator.js.map +1 -1
- package/build/_modules/vqa/generators/comparison-bundle.generator.d.ts.map +1 -1
- package/build/_modules/vqa/generators/comparison-bundle.generator.js +1 -1
- package/build/_modules/vqa/generators/comparison-bundle.generator.js.map +1 -1
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -1
- package/build/_modules/vqa/generators/review-bundle.generator.js +2 -2
- package/build/_modules/vqa/generators/review-bundle.generator.js.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/package.json +37 -5
- package/.c8rc.json +0 -25
- package/.dynamo/pipeline.cicd.config.json +0 -167
- package/.dynamo/version-bump.config.json +0 -5
- package/.github/workflows/main.yml +0 -35
- package/BUILD.md +0 -36
- package/CONTRIBUTING.md +0 -90
- package/build/_modules/contracts/contracts.spec.d.ts +0 -2
- package/build/_modules/contracts/contracts.spec.d.ts.map +0 -1
- package/build/_modules/contracts/contracts.spec.js +0 -144
- package/build/_modules/contracts/contracts.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-comparison.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-comparison.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-comparison.spec.js +0 -77
- package/build/_modules/cwv/cwv-comparison.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-diagnose.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-diagnose.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-diagnose.spec.js +0 -78
- package/build/_modules/cwv/cwv-diagnose.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-suite.generator.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-suite.generator.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-suite.generator.spec.js +0 -81
- package/build/_modules/cwv/cwv-suite.generator.spec.js.map +0 -1
- package/build/_modules/cwv/cwv-summarize.spec.d.ts +0 -2
- package/build/_modules/cwv/cwv-summarize.spec.d.ts.map +0 -1
- package/build/_modules/cwv/cwv-summarize.spec.js +0 -70
- package/build/_modules/cwv/cwv-summarize.spec.js.map +0 -1
- package/build/_modules/cwv/inp-emit-integration.spec.d.ts +0 -2
- package/build/_modules/cwv/inp-emit-integration.spec.d.ts.map +0 -1
- package/build/_modules/cwv/inp-emit-integration.spec.js +0 -43
- package/build/_modules/cwv/inp-emit-integration.spec.js.map +0 -1
- package/build/_modules/cwv/inp-interaction-driver.spec.d.ts +0 -2
- package/build/_modules/cwv/inp-interaction-driver.spec.d.ts.map +0 -1
- package/build/_modules/cwv/inp-interaction-driver.spec.js +0 -44
- package/build/_modules/cwv/inp-interaction-driver.spec.js.map +0 -1
- package/build/_modules/cwv/inp-script.spec.d.ts +0 -2
- package/build/_modules/cwv/inp-script.spec.d.ts.map +0 -1
- package/build/_modules/cwv/inp-script.spec.js +0 -35
- package/build/_modules/cwv/inp-script.spec.js.map +0 -1
- package/build/_modules/cwv/per-route-thresholds.spec.d.ts +0 -2
- package/build/_modules/cwv/per-route-thresholds.spec.d.ts.map +0 -1
- package/build/_modules/cwv/per-route-thresholds.spec.js +0 -37
- package/build/_modules/cwv/per-route-thresholds.spec.js.map +0 -1
- package/build/_modules/generators/bootstrap.spec.d.ts +0 -2
- package/build/_modules/generators/bootstrap.spec.d.ts.map +0 -1
- package/build/_modules/generators/bootstrap.spec.js +0 -46
- package/build/_modules/generators/bootstrap.spec.js.map +0 -1
- package/build/_modules/generators/cli-runner.spec.d.ts +0 -2
- package/build/_modules/generators/cli-runner.spec.d.ts.map +0 -1
- package/build/_modules/generators/cli-runner.spec.js +0 -93
- package/build/_modules/generators/cli-runner.spec.js.map +0 -1
- package/build/_modules/generators/config-validator.spec.d.ts +0 -2
- package/build/_modules/generators/config-validator.spec.d.ts.map +0 -1
- package/build/_modules/generators/config-validator.spec.js +0 -115
- package/build/_modules/generators/config-validator.spec.js.map +0 -1
- package/build/_modules/generators/doctor.spec.d.ts +0 -2
- package/build/_modules/generators/doctor.spec.d.ts.map +0 -1
- package/build/_modules/generators/doctor.spec.js +0 -68
- package/build/_modules/generators/doctor.spec.js.map +0 -1
- package/build/_modules/generators/field-emission-edge.spec.d.ts +0 -2
- package/build/_modules/generators/field-emission-edge.spec.d.ts.map +0 -1
- package/build/_modules/generators/field-emission-edge.spec.js +0 -164
- package/build/_modules/generators/field-emission-edge.spec.js.map +0 -1
- package/build/_modules/generators/form-suite.generator.spec.d.ts +0 -2
- package/build/_modules/generators/form-suite.generator.spec.d.ts.map +0 -1
- package/build/_modules/generators/form-suite.generator.spec.js +0 -188
- package/build/_modules/generators/form-suite.generator.spec.js.map +0 -1
- package/build/_modules/generators/info.spec.d.ts +0 -2
- package/build/_modules/generators/info.spec.d.ts.map +0 -1
- package/build/_modules/generators/info.spec.js +0 -42
- package/build/_modules/generators/info.spec.js.map +0 -1
- package/build/_modules/generators/json-schema.spec.d.ts +0 -2
- package/build/_modules/generators/json-schema.spec.d.ts.map +0 -1
- package/build/_modules/generators/json-schema.spec.js +0 -81
- package/build/_modules/generators/json-schema.spec.js.map +0 -1
- package/build/_modules/generators/preset-configs.spec.d.ts +0 -2
- package/build/_modules/generators/preset-configs.spec.d.ts.map +0 -1
- package/build/_modules/generators/preset-configs.spec.js +0 -53
- package/build/_modules/generators/preset-configs.spec.js.map +0 -1
- package/build/_modules/generators/test-case-filter-edge.spec.d.ts +0 -2
- package/build/_modules/generators/test-case-filter-edge.spec.d.ts.map +0 -1
- package/build/_modules/generators/test-case-filter-edge.spec.js +0 -105
- package/build/_modules/generators/test-case-filter-edge.spec.js.map +0 -1
- package/build/_modules/generators/viewport-suite.generator.spec.d.ts +0 -2
- package/build/_modules/generators/viewport-suite.generator.spec.d.ts.map +0 -1
- package/build/_modules/generators/viewport-suite.generator.spec.js +0 -59
- package/build/_modules/generators/viewport-suite.generator.spec.js.map +0 -1
- package/build/_modules/generators/wave-2b-emission.spec.d.ts +0 -2
- package/build/_modules/generators/wave-2b-emission.spec.d.ts.map +0 -1
- package/build/_modules/generators/wave-2b-emission.spec.js +0 -115
- package/build/_modules/generators/wave-2b-emission.spec.js.map +0 -1
- package/build/_modules/presets/presets.spec.d.ts +0 -2
- package/build/_modules/presets/presets.spec.d.ts.map +0 -1
- package/build/_modules/presets/presets.spec.js +0 -286
- package/build/_modules/presets/presets.spec.js.map +0 -1
- package/build/_modules/runtime/assertion-helpers.spec.d.ts +0 -2
- package/build/_modules/runtime/assertion-helpers.spec.d.ts.map +0 -1
- package/build/_modules/runtime/assertion-helpers.spec.js +0 -57
- package/build/_modules/runtime/assertion-helpers.spec.js.map +0 -1
- package/build/_modules/runtime/logger.service.spec.d.ts +0 -2
- package/build/_modules/runtime/logger.service.spec.d.ts.map +0 -1
- package/build/_modules/runtime/logger.service.spec.js +0 -61
- package/build/_modules/runtime/logger.service.spec.js.map +0 -1
- package/build/_modules/runtime/login-flow-helper.spec.d.ts +0 -2
- package/build/_modules/runtime/login-flow-helper.spec.d.ts.map +0 -1
- package/build/_modules/runtime/login-flow-helper.spec.js +0 -74
- package/build/_modules/runtime/login-flow-helper.spec.js.map +0 -1
- package/build/_modules/runtime/page-objects.spec.d.ts +0 -2
- package/build/_modules/runtime/page-objects.spec.d.ts.map +0 -1
- package/build/_modules/runtime/page-objects.spec.js +0 -241
- package/build/_modules/runtime/page-objects.spec.js.map +0 -1
- package/build/_modules/runtime/runtime.spec.d.ts +0 -2
- package/build/_modules/runtime/runtime.spec.d.ts.map +0 -1
- package/build/_modules/runtime/runtime.spec.js +0 -73
- package/build/_modules/runtime/runtime.spec.js.map +0 -1
- package/build/_modules/runtime/unique-generator.spec.d.ts +0 -2
- package/build/_modules/runtime/unique-generator.spec.d.ts.map +0 -1
- package/build/_modules/runtime/unique-generator.spec.js +0 -41
- package/build/_modules/runtime/unique-generator.spec.js.map +0 -1
- package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts +0 -2
- package/build/_modules/runtime/wave-2b-page-objects.spec.d.ts.map +0 -1
- package/build/_modules/runtime/wave-2b-page-objects.spec.js +0 -130
- package/build/_modules/runtime/wave-2b-page-objects.spec.js.map +0 -1
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts +0 -2
- package/build/_modules/vqa/capture-spec.generator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/capture-spec.generator.spec.js +0 -126
- package/build/_modules/vqa/capture-spec.generator.spec.js.map +0 -1
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts +0 -2
- package/build/_modules/vqa/comparison-bundle.generator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/comparison-bundle.generator.spec.js +0 -130
- package/build/_modules/vqa/comparison-bundle.generator.spec.js.map +0 -1
- package/build/_modules/vqa/finding-validator.spec.d.ts +0 -2
- package/build/_modules/vqa/finding-validator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/finding-validator.spec.js +0 -136
- package/build/_modules/vqa/finding-validator.spec.js.map +0 -1
- package/build/_modules/vqa/manifest-validator.spec.d.ts +0 -2
- package/build/_modules/vqa/manifest-validator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/manifest-validator.spec.js +0 -125
- package/build/_modules/vqa/manifest-validator.spec.js.map +0 -1
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts +0 -2
- package/build/_modules/vqa/review-bundle.generator.spec.d.ts.map +0 -1
- package/build/_modules/vqa/review-bundle.generator.spec.js +0 -166
- package/build/_modules/vqa/review-bundle.generator.spec.js.map +0 -1
- package/build/_modules/vqa/wave-7.spec.d.ts +0 -2
- package/build/_modules/vqa/wave-7.spec.d.ts.map +0 -1
- package/build/_modules/vqa/wave-7.spec.js +0 -203
- package/build/_modules/vqa/wave-7.spec.js.map +0 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/contracts/_collections/index.html +0 -116
- package/coverage/contracts/_collections/index.ts.html +0 -97
- package/coverage/contracts/_collections/utils/index.html +0 -116
- package/coverage/contracts/_collections/utils/test-id.util.ts.html +0 -172
- package/coverage/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
- package/coverage/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
- package/coverage/contracts/_enums/index.html +0 -191
- package/coverage/contracts/_enums/index.ts.html +0 -100
- package/coverage/contracts/_enums/standard-viewport.enum.ts.html +0 -127
- package/coverage/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
- package/coverage/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
- package/coverage/contracts/index.html +0 -116
- package/coverage/contracts/index.ts.html +0 -121
- package/coverage/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
- package/coverage/cwv/_collections/cwv-comparison.util.ts.html +0 -355
- package/coverage/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
- package/coverage/cwv/_collections/cwv-emission.util.ts.html +0 -448
- package/coverage/cwv/_collections/cwv-summarize.util.ts.html +0 -325
- package/coverage/cwv/_collections/index.html +0 -206
- package/coverage/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
- package/coverage/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
- package/coverage/cwv/cwv-suite.generator.ts.html +0 -277
- package/coverage/cwv/index.html +0 -116
- package/coverage/favicon.png +0 -0
- package/coverage/generators/_collections/cli-runner.util.ts.html +0 -919
- package/coverage/generators/_collections/config-validator.util.ts.html +0 -397
- package/coverage/generators/_collections/field-emission.util.ts.html +0 -604
- package/coverage/generators/_collections/form-level-emission.util.ts.html +0 -220
- package/coverage/generators/_collections/index.html +0 -236
- package/coverage/generators/_collections/json-schema.util.ts.html +0 -652
- package/coverage/generators/_collections/preset-configs.const.ts.html +0 -328
- package/coverage/generators/_collections/spec-emission.util.ts.html +0 -298
- package/coverage/generators/_collections/test-case-filter.util.ts.html +0 -523
- package/coverage/generators/_collections/viewport-emission.util.ts.html +0 -313
- package/coverage/generators/form-suite.generator.ts.html +0 -406
- package/coverage/generators/index.html +0 -131
- package/coverage/generators/viewport-suite.generator.ts.html +0 -307
- package/coverage/index.html +0 -266
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/contracts/_collections/index.html +0 -116
- package/coverage/lcov-report/contracts/_collections/index.ts.html +0 -97
- package/coverage/lcov-report/contracts/_collections/utils/index.html +0 -116
- package/coverage/lcov-report/contracts/_collections/utils/test-id.util.ts.html +0 -172
- package/coverage/lcov-report/contracts/_enums/cwv-metric-type.enum.ts.html +0 -145
- package/coverage/lcov-report/contracts/_enums/field-test-case-type.enum.ts.html +0 -394
- package/coverage/lcov-report/contracts/_enums/index.html +0 -191
- package/coverage/lcov-report/contracts/_enums/index.ts.html +0 -100
- package/coverage/lcov-report/contracts/_enums/standard-viewport.enum.ts.html +0 -127
- package/coverage/lcov-report/contracts/_enums/test-expectation-type.enum.ts.html +0 -133
- package/coverage/lcov-report/contracts/_enums/test-run-mode-type.enum.ts.html +0 -130
- package/coverage/lcov-report/contracts/index.html +0 -116
- package/coverage/lcov-report/contracts/index.ts.html +0 -121
- package/coverage/lcov-report/cwv/_collections/cwv-aggregator.util.ts.html +0 -241
- package/coverage/lcov-report/cwv/_collections/cwv-comparison.util.ts.html +0 -355
- package/coverage/lcov-report/cwv/_collections/cwv-diagnose.util.ts.html +0 -553
- package/coverage/lcov-report/cwv/_collections/cwv-emission.util.ts.html +0 -448
- package/coverage/lcov-report/cwv/_collections/cwv-summarize.util.ts.html +0 -325
- package/coverage/lcov-report/cwv/_collections/index.html +0 -206
- package/coverage/lcov-report/cwv/_collections/inp-interaction-script.const.ts.html +0 -304
- package/coverage/lcov-report/cwv/_collections/web-vitals-page-script.const.ts.html +0 -331
- package/coverage/lcov-report/cwv/cwv-suite.generator.ts.html +0 -277
- package/coverage/lcov-report/cwv/index.html +0 -116
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/generators/_collections/cli-runner.util.ts.html +0 -919
- package/coverage/lcov-report/generators/_collections/config-validator.util.ts.html +0 -397
- package/coverage/lcov-report/generators/_collections/field-emission.util.ts.html +0 -604
- package/coverage/lcov-report/generators/_collections/form-level-emission.util.ts.html +0 -220
- package/coverage/lcov-report/generators/_collections/index.html +0 -236
- package/coverage/lcov-report/generators/_collections/json-schema.util.ts.html +0 -652
- package/coverage/lcov-report/generators/_collections/preset-configs.const.ts.html +0 -328
- package/coverage/lcov-report/generators/_collections/spec-emission.util.ts.html +0 -298
- package/coverage/lcov-report/generators/_collections/test-case-filter.util.ts.html +0 -523
- package/coverage/lcov-report/generators/_collections/viewport-emission.util.ts.html +0 -313
- package/coverage/lcov-report/generators/form-suite.generator.ts.html +0 -406
- package/coverage/lcov-report/generators/index.html +0 -131
- package/coverage/lcov-report/generators/viewport-suite.generator.ts.html +0 -307
- package/coverage/lcov-report/index.html +0 -266
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/runtime/_collections/assertion-helpers.util.ts.html +0 -205
- package/coverage/lcov-report/runtime/_collections/index.html +0 -146
- package/coverage/lcov-report/runtime/_collections/unique-generator.util.ts.html +0 -256
- package/coverage/lcov-report/runtime/_collections/wait-helpers.util.ts.html +0 -238
- package/coverage/lcov-report/runtime/_services/dialog-page-object.ts.html +0 -157
- package/coverage/lcov-report/runtime/_services/field-page-object.ts.html +0 -253
- package/coverage/lcov-report/runtime/_services/form-page-object.ts.html +0 -184
- package/coverage/lcov-report/runtime/_services/index.html +0 -236
- package/coverage/lcov-report/runtime/_services/loader-page-object.ts.html +0 -142
- package/coverage/lcov-report/runtime/_services/logger.service.ts.html +0 -385
- package/coverage/lcov-report/runtime/_services/login-flow-helper.base.ts.html +0 -331
- package/coverage/lcov-report/runtime/_services/nav-page-object.ts.html +0 -145
- package/coverage/lcov-report/runtime/_services/toast-page-object.ts.html +0 -130
- package/coverage/lcov-report/runtime/_services/wave-2b-page-objects.ts.html +0 -397
- package/coverage/lcov-report/runtime/index.html +0 -116
- package/coverage/lcov-report/runtime/index.ts.html +0 -178
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov.info +0 -4047
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/runtime/_collections/assertion-helpers.util.ts.html +0 -205
- package/coverage/runtime/_collections/index.html +0 -146
- package/coverage/runtime/_collections/unique-generator.util.ts.html +0 -256
- package/coverage/runtime/_collections/wait-helpers.util.ts.html +0 -238
- package/coverage/runtime/_services/dialog-page-object.ts.html +0 -157
- package/coverage/runtime/_services/field-page-object.ts.html +0 -253
- package/coverage/runtime/_services/form-page-object.ts.html +0 -184
- package/coverage/runtime/_services/index.html +0 -236
- package/coverage/runtime/_services/loader-page-object.ts.html +0 -142
- package/coverage/runtime/_services/logger.service.ts.html +0 -385
- package/coverage/runtime/_services/login-flow-helper.base.ts.html +0 -331
- package/coverage/runtime/_services/nav-page-object.ts.html +0 -145
- package/coverage/runtime/_services/toast-page-object.ts.html +0 -130
- package/coverage/runtime/_services/wave-2b-page-objects.ts.html +0 -397
- package/coverage/runtime/index.html +0 -116
- package/coverage/runtime/index.ts.html +0 -178
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/tmp/coverage-228636-1781075225757-0.json +0 -1
- package/coverage/tmp/coverage-228704-1781075227108-0.json +0 -1
- package/dogfood/PARITY-MATRIX.md +0 -67
- package/dogfood/generated/date-range-field-new.spec.ts +0 -54
- package/dogfood/generated/password-field-new.spec.ts +0 -97
- package/dogfood/generated/radio-select-field-new.spec.ts +0 -69
- package/dogfood/generated/slider-field-new.spec.ts +0 -47
- package/dogfood/generated/text-field-new.spec.ts +0 -0
- package/dogfood/generated-full/checkbox-field-new.spec.ts +0 -56
- package/dogfood/generated-full/date-field-new.spec.ts +0 -71
- package/dogfood/generated-full/date-range-field-new.spec.ts +0 -54
- package/dogfood/generated-full/datetime-field-new.spec.ts +0 -55
- package/dogfood/generated-full/multiselect-field-new.spec.ts +0 -69
- package/dogfood/generated-full/number-field-new.spec.ts +0 -113
- package/dogfood/generated-full/password-field-new.spec.ts +0 -97
- package/dogfood/generated-full/radio-select-field-new.spec.ts +0 -69
- package/dogfood/generated-full/sandbox-viewport-audit.spec.ts +0 -4643
- package/dogfood/generated-full/select-field-new.spec.ts +0 -69
- package/dogfood/generated-full/slider-field-new.spec.ts +0 -47
- package/dogfood/generated-full/slider-range-field-new.spec.ts +0 -54
- package/dogfood/generated-full/text-field-new.spec.ts +0 -0
- package/dogfood/generated-full/textarea-field-new.spec.ts +0 -72
- package/dogfood/sandbox-bootstrap-full.js +0 -248
- package/dogfood/sandbox-bootstrap.js +0 -170
- package/examples/minimal-form/README.md +0 -55
- package/examples/minimal-form/form-config.json +0 -38
- package/examples/multi-form-app/README.md +0 -63
- package/examples/multi-form-app/cwv-config.json +0 -14
- package/examples/multi-form-app/settings/login-form.json +0 -11
- package/examples/multi-form-app/settings/profile-form.json +0 -25
- package/examples/multi-form-app/viewport-config.json +0 -12
- package/logs/cicd-job.json +0 -3
- package/logs/cicd-report.json +0 -3
- package/logs/cicd-status.json +0 -3
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyE2E_GameSeam_Helper = void 0;
|
|
4
|
+
const DEFAULT_ALLOWED_HOSTS = ['localhost', '127.0.0.1', '::1'];
|
|
5
|
+
const KNOWN_CAPABILITIES = ['seed', 'state', 'clock', 'canvas', 'diagnostics'];
|
|
6
|
+
/**
|
|
7
|
+
* Capability-gated adapter for an explicitly enabled browser game test seam.
|
|
8
|
+
*
|
|
9
|
+
* It never creates business state. Readiness is event-driven; timeout values are hard failure bounds, not fixed
|
|
10
|
+
* sleeps or polling intervals.
|
|
11
|
+
*/
|
|
12
|
+
class DyE2E_GameSeam_Helper {
|
|
13
|
+
page;
|
|
14
|
+
seamKey;
|
|
15
|
+
readyEventName;
|
|
16
|
+
optInStorageKey;
|
|
17
|
+
optInQueryParam;
|
|
18
|
+
timeoutMs;
|
|
19
|
+
allowedHosts;
|
|
20
|
+
requiredCapabilities;
|
|
21
|
+
constructor(page, options = {}) {
|
|
22
|
+
this.page = page;
|
|
23
|
+
this.seamKey = options.seamKey ?? '__dye2eGame';
|
|
24
|
+
this.readyEventName = options.readyEventName ?? 'dye2e:game-seam-ready';
|
|
25
|
+
this.optInStorageKey = options.optInStorageKey ?? 'dye2eGame';
|
|
26
|
+
this.optInQueryParam = options.optInQueryParam ?? 'dye2eGame';
|
|
27
|
+
this.timeoutMs = options.timeoutMs ?? 15_000;
|
|
28
|
+
this.allowedHosts = (options.allowedHosts ?? DEFAULT_ALLOWED_HOSTS).map((host) => host.toLowerCase());
|
|
29
|
+
this.requiredCapabilities = options.requiredCapabilities ?? [];
|
|
30
|
+
if (!Number.isFinite(this.timeoutMs) || this.timeoutMs <= 0) {
|
|
31
|
+
throw new Error(`[DyE2E_GameSeam_Helper] timeoutMs must be finite and positive; received ${this.timeoutMs}.`);
|
|
32
|
+
}
|
|
33
|
+
if (![this.seamKey, this.readyEventName, this.optInStorageKey, this.optInQueryParam].every(Boolean)) {
|
|
34
|
+
throw new Error('[DyE2E_GameSeam_Helper] Seam, event and opt-in names must be non-empty.');
|
|
35
|
+
}
|
|
36
|
+
if (this.allowedHosts.length === 0 || this.allowedHosts.some((host) => !host.trim())) {
|
|
37
|
+
throw new Error('[DyE2E_GameSeam_Helper] At least one non-empty allowed host is required.');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Enable the seam before navigation. Non-loopback hosts require an explicit allow-list entry. */
|
|
41
|
+
async enableForNavigation(targetUrl) {
|
|
42
|
+
this.assertAllowedHost(targetUrl);
|
|
43
|
+
await this.page.addInitScript((settings) => {
|
|
44
|
+
if (!settings.allowedHosts.includes(window.location.hostname.toLowerCase())) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
window.sessionStorage.setItem(settings.storageKey, '1');
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// A query opt-in remains available when browser policy disables session storage.
|
|
52
|
+
}
|
|
53
|
+
}, { storageKey: this.optInStorageKey, allowedHosts: this.allowedHosts });
|
|
54
|
+
}
|
|
55
|
+
/** Add the explicit query opt-in while preserving existing query parameters. */
|
|
56
|
+
withOptIn(targetUrl) {
|
|
57
|
+
this.assertAllowedHost(targetUrl);
|
|
58
|
+
const parsed = new URL(targetUrl, 'http://localhost');
|
|
59
|
+
parsed.searchParams.set(this.optInQueryParam, '1');
|
|
60
|
+
return targetUrl.startsWith('/') ? `${parsed.pathname}${parsed.search}${parsed.hash}` : parsed.toString();
|
|
61
|
+
}
|
|
62
|
+
/** Wait for one readiness event, or return immediately if the seam is already installed. */
|
|
63
|
+
async waitForSeam() {
|
|
64
|
+
await this.page.evaluate(([key, eventName, timeoutMs]) => new Promise((resolve, reject) => {
|
|
65
|
+
let timeoutId;
|
|
66
|
+
const onReady = (event) => {
|
|
67
|
+
const detail = event.detail;
|
|
68
|
+
const detailKey = typeof detail === 'object' && detail !== null
|
|
69
|
+
? detail.seamKey
|
|
70
|
+
: detail;
|
|
71
|
+
if (detailKey !== undefined && detailKey !== key) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
window.clearTimeout(timeoutId);
|
|
75
|
+
window.removeEventListener(eventName, onReady);
|
|
76
|
+
resolve();
|
|
77
|
+
};
|
|
78
|
+
timeoutId = window.setTimeout(() => {
|
|
79
|
+
window.removeEventListener(eventName, onReady);
|
|
80
|
+
reject(new Error(`[DyE2E_GameSeam_Helper] '${key}' did not dispatch '${eventName}' within ${timeoutMs}ms. `
|
|
81
|
+
+ 'Verify host allow-listing, explicit opt-in, seam installation and ready-event dispatch.'));
|
|
82
|
+
}, timeoutMs);
|
|
83
|
+
window.addEventListener(eventName, onReady);
|
|
84
|
+
if (window[key]) {
|
|
85
|
+
window.clearTimeout(timeoutId);
|
|
86
|
+
window.removeEventListener(eventName, onReady);
|
|
87
|
+
resolve();
|
|
88
|
+
}
|
|
89
|
+
}), [this.seamKey, this.readyEventName, this.timeoutMs]);
|
|
90
|
+
await this.requireCapabilities(this.requiredCapabilities);
|
|
91
|
+
}
|
|
92
|
+
async capabilities() {
|
|
93
|
+
return this.page.evaluate((settings) => {
|
|
94
|
+
const { key, knownCapabilities } = settings;
|
|
95
|
+
const seam = window[key];
|
|
96
|
+
if (!seam) {
|
|
97
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Seam '${key}' is not installed.`);
|
|
98
|
+
}
|
|
99
|
+
if (!Array.isArray(seam.capabilities)) {
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
const invalid = seam.capabilities.filter((value) => !knownCapabilities.includes(value));
|
|
103
|
+
if (invalid.length > 0) {
|
|
104
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Seam '${key}' declares unknown capabilities: ${invalid.join(', ')}.`);
|
|
105
|
+
}
|
|
106
|
+
return [...new Set(seam.capabilities)];
|
|
107
|
+
}, { key: this.seamKey, knownCapabilities: KNOWN_CAPABILITIES });
|
|
108
|
+
}
|
|
109
|
+
async snapshot() {
|
|
110
|
+
return this.invoke('diagnostics', 'getSnapshot');
|
|
111
|
+
}
|
|
112
|
+
async installSeed(seed) {
|
|
113
|
+
if ((typeof seed !== 'string' && typeof seed !== 'number')
|
|
114
|
+
|| (typeof seed === 'string' && !seed.trim())
|
|
115
|
+
|| (typeof seed === 'number' && !Number.isFinite(seed))) {
|
|
116
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Seed must be a non-empty string or finite number; received '${seed}'.`);
|
|
117
|
+
}
|
|
118
|
+
const accepted = await this.invoke('seed', 'installSeed', seed);
|
|
119
|
+
if (accepted === false) {
|
|
120
|
+
throw new Error(`[DyE2E_GameSeam_Helper] The game rejected seed '${String(seed)}'.`);
|
|
121
|
+
}
|
|
122
|
+
const applied = await this.readSeed();
|
|
123
|
+
if (String(applied) !== String(seed)) {
|
|
124
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Seed read-back mismatch: requested '${String(seed)}', `
|
|
125
|
+
+ `received '${String(applied)}'.`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async readSeed() {
|
|
129
|
+
const seed = await this.invoke('seed', 'readSeed');
|
|
130
|
+
if ((typeof seed !== 'string' && typeof seed !== 'number')
|
|
131
|
+
|| (typeof seed === 'string' && !seed.trim())
|
|
132
|
+
|| (typeof seed === 'number' && !Number.isFinite(seed))) {
|
|
133
|
+
throw new Error(`[DyE2E_GameSeam_Helper] readSeed returned an invalid seed '${String(seed)}'.`);
|
|
134
|
+
}
|
|
135
|
+
return seed;
|
|
136
|
+
}
|
|
137
|
+
async exportState() {
|
|
138
|
+
const state = await this.invoke('state', 'exportState');
|
|
139
|
+
this.assertVersionedState(state);
|
|
140
|
+
return state;
|
|
141
|
+
}
|
|
142
|
+
async importState(state) {
|
|
143
|
+
this.assertVersionedState(state);
|
|
144
|
+
const accepted = await this.invoke('state', 'importState', state);
|
|
145
|
+
if (accepted === false) {
|
|
146
|
+
throw new Error('[DyE2E_GameSeam_Helper] The game rejected the imported state.');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async advanceClock(deltaMs) {
|
|
150
|
+
if (!Number.isFinite(deltaMs) || deltaMs <= 0) {
|
|
151
|
+
throw new Error(`[DyE2E_GameSeam_Helper] deltaMs must be finite and positive; received ${deltaMs}.`);
|
|
152
|
+
}
|
|
153
|
+
const accepted = await this.invoke('clock', 'advanceClock', deltaMs);
|
|
154
|
+
if (accepted === false) {
|
|
155
|
+
throw new Error(`[DyE2E_GameSeam_Helper] The game rejected manual clock advancement by ${deltaMs}ms.`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
async worldToScreen(point) {
|
|
159
|
+
if (!point || ![point.x, point.y].every(Number.isFinite)) {
|
|
160
|
+
throw new Error('[DyE2E_GameSeam_Helper] World coordinates must be finite numbers.');
|
|
161
|
+
}
|
|
162
|
+
const screenPoint = await this.invoke('canvas', 'worldToScreen', point);
|
|
163
|
+
if (!screenPoint || ![screenPoint.x, screenPoint.y].every(Number.isFinite)) {
|
|
164
|
+
throw new Error('[DyE2E_GameSeam_Helper] worldToScreen returned non-finite screen coordinates.');
|
|
165
|
+
}
|
|
166
|
+
return screenPoint;
|
|
167
|
+
}
|
|
168
|
+
/** One browser round-trip containing the evidence needed to diagnose deterministic game failures. */
|
|
169
|
+
async captureFailureArtifact() {
|
|
170
|
+
return this.page.evaluate(async (key) => {
|
|
171
|
+
const seam = window[key];
|
|
172
|
+
if (!seam) {
|
|
173
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Seam '${key}' is not installed.`);
|
|
174
|
+
}
|
|
175
|
+
const capabilities = Array.isArray(seam.capabilities)
|
|
176
|
+
? [...seam.capabilities]
|
|
177
|
+
: [];
|
|
178
|
+
const captureErrors = {};
|
|
179
|
+
const call = async (name) => {
|
|
180
|
+
const method = seam[name];
|
|
181
|
+
if (typeof method !== 'function') {
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
try {
|
|
185
|
+
return await method.call(seam);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
captureErrors[name] = error instanceof Error ? error.message : String(error);
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
return {
|
|
193
|
+
url: window.location.href,
|
|
194
|
+
viewport: { width: window.innerWidth, height: window.innerHeight },
|
|
195
|
+
capabilities,
|
|
196
|
+
seed: capabilities.includes('seed') ? await call('readSeed') : undefined,
|
|
197
|
+
state: capabilities.includes('state') ? await call('exportState') : undefined,
|
|
198
|
+
snapshot: capabilities.includes('diagnostics') ? await call('getSnapshot') : undefined,
|
|
199
|
+
diagnostics: capabilities.includes('diagnostics')
|
|
200
|
+
? await call('getDiagnostics')
|
|
201
|
+
: undefined,
|
|
202
|
+
captureErrors: Object.keys(captureErrors).length > 0 ? captureErrors : undefined,
|
|
203
|
+
};
|
|
204
|
+
}, this.seamKey);
|
|
205
|
+
}
|
|
206
|
+
assertAllowedHost(targetUrl) {
|
|
207
|
+
const parsed = new URL(targetUrl, 'http://localhost');
|
|
208
|
+
if (!this.allowedHosts.includes(parsed.hostname)) {
|
|
209
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Refusing to enable a game seam on host '${parsed.hostname}'. `
|
|
210
|
+
+ `Allowed hosts: ${this.allowedHosts.join(', ')}. Add a test host explicitly only when its server-side `
|
|
211
|
+
+ 'seam guard is enabled.');
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
async requireCapabilities(required) {
|
|
215
|
+
if (required.length === 0) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const available = await this.capabilities();
|
|
219
|
+
const missing = required.filter((item) => !available.includes(item));
|
|
220
|
+
if (missing.length > 0) {
|
|
221
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Missing required capabilities: ${missing.join(', ')}. `
|
|
222
|
+
+ `Available: ${available.join(', ') || '(none)'}.`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
assertVersionedState(state) {
|
|
226
|
+
if (!state || typeof state !== 'object') {
|
|
227
|
+
throw new Error('[DyE2E_GameSeam_Helper] A state snapshot must be an object with schemaVersion.');
|
|
228
|
+
}
|
|
229
|
+
const schemaVersion = state.schemaVersion;
|
|
230
|
+
if ((typeof schemaVersion !== 'string' && typeof schemaVersion !== 'number')
|
|
231
|
+
|| String(schemaVersion).trim().length === 0
|
|
232
|
+
|| (typeof schemaVersion === 'number' && !Number.isFinite(schemaVersion))) {
|
|
233
|
+
throw new Error('[DyE2E_GameSeam_Helper] A state snapshot must carry a non-empty schemaVersion.');
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
async invoke(capability, methodName, ...args) {
|
|
237
|
+
return this.page.evaluate(([key, requiredCapability, method, callArgs]) => {
|
|
238
|
+
const seam = window[key];
|
|
239
|
+
if (!seam) {
|
|
240
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Seam '${key}' is not installed.`);
|
|
241
|
+
}
|
|
242
|
+
if (!Array.isArray(seam.capabilities) || !seam.capabilities.includes(requiredCapability)) {
|
|
243
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Method '${method}' requires '${requiredCapability}'.`);
|
|
244
|
+
}
|
|
245
|
+
const fn = seam[method];
|
|
246
|
+
if (typeof fn !== 'function') {
|
|
247
|
+
throw new Error(`[DyE2E_GameSeam_Helper] Capability '${requiredCapability}' declares missing method '${method}'.`);
|
|
248
|
+
}
|
|
249
|
+
return fn.apply(seam, callArgs);
|
|
250
|
+
}, [this.seamKey, capability, methodName, args]);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
exports.DyE2E_GameSeam_Helper = DyE2E_GameSeam_Helper;
|
|
254
|
+
//# sourceMappingURL=game-seam.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"game-seam.helper.js","sourceRoot":"","sources":["../../../src/_modules/game/game-seam.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/game/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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("./_models/game-contracts.interface"), exports);
|
|
18
|
+
__exportStar(require("./game-seam.helper"), exports);
|
|
19
|
+
__exportStar(require("./journey-catalog.validator"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/game/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,qDAAmC;AACnC,8DAA4C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DyE2E_GameJourneyCatalog_Validation_Interface } from './_models/game-contracts.interface';
|
|
2
|
+
/** Validate cross-feature, state-carrying journey evidence without executing or manufacturing business state. */
|
|
3
|
+
export declare function DyE2E_validateGameJourneyCatalog(candidate: unknown): DyE2E_GameJourneyCatalog_Validation_Interface;
|
|
4
|
+
export declare function DyE2E_assertGameJourneyCatalog(catalog: unknown): void;
|
|
5
|
+
//# sourceMappingURL=journey-catalog.validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey-catalog.validator.d.ts","sourceRoot":"","sources":["../../../src/_modules/game/journey-catalog.validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6CAA6C,EAC9C,MAAM,oCAAoC,CAAC;AAa5C,iHAAiH;AACjH,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,OAAO,GACjB,6CAA6C,CAmJ/C;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQrE"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyE2E_validateGameJourneyCatalog = DyE2E_validateGameJourneyCatalog;
|
|
4
|
+
exports.DyE2E_assertGameJourneyCatalog = DyE2E_assertGameJourneyCatalog;
|
|
5
|
+
const JOURNEY_VARIANTS = [
|
|
6
|
+
'happy-path',
|
|
7
|
+
'decline',
|
|
8
|
+
'partial',
|
|
9
|
+
'fallback',
|
|
10
|
+
'interruption-resume',
|
|
11
|
+
'access-limited',
|
|
12
|
+
];
|
|
13
|
+
const CLEANUP_MODES = ['hard-delete', 'restore-snapshot', 'reset-profile'];
|
|
14
|
+
/** Validate cross-feature, state-carrying journey evidence without executing or manufacturing business state. */
|
|
15
|
+
function DyE2E_validateGameJourneyCatalog(candidate) {
|
|
16
|
+
const findings = [];
|
|
17
|
+
const add = (path, code, message) => {
|
|
18
|
+
findings.push({ path, code, message });
|
|
19
|
+
};
|
|
20
|
+
if (!isRecord(candidate)) {
|
|
21
|
+
add('$', 'invalid-catalog', 'The journey catalog must be an object.');
|
|
22
|
+
return { valid: false, findings };
|
|
23
|
+
}
|
|
24
|
+
if (candidate.schemaVersion !== 1) {
|
|
25
|
+
add('$.schemaVersion', 'unsupported-schema', 'Only game journey catalog schemaVersion 1 is supported.');
|
|
26
|
+
}
|
|
27
|
+
if (!Array.isArray(candidate.features)) {
|
|
28
|
+
add('$.features', 'invalid-features', 'Features must be an array.');
|
|
29
|
+
}
|
|
30
|
+
if (!Array.isArray(candidate.journeys)) {
|
|
31
|
+
add('$.journeys', 'invalid-journeys', 'Journeys must be an array.');
|
|
32
|
+
}
|
|
33
|
+
if (!Array.isArray(candidate.requiredVariants)) {
|
|
34
|
+
add('$.requiredVariants', 'invalid-required-variants', 'Required variants must be an array.');
|
|
35
|
+
}
|
|
36
|
+
if (!Array.isArray(candidate.features)
|
|
37
|
+
|| !Array.isArray(candidate.journeys)
|
|
38
|
+
|| !Array.isArray(candidate.requiredVariants)) {
|
|
39
|
+
return { valid: false, findings };
|
|
40
|
+
}
|
|
41
|
+
const features = candidate.features;
|
|
42
|
+
const journeys = candidate.journeys;
|
|
43
|
+
const requiredVariants = candidate.requiredVariants;
|
|
44
|
+
const featureIds = new Set();
|
|
45
|
+
const journeyIds = new Set();
|
|
46
|
+
if (features.length < 2) {
|
|
47
|
+
add('$.features', 'missing-features', 'At least two journey-linked features are required.');
|
|
48
|
+
}
|
|
49
|
+
features.forEach((feature, index) => {
|
|
50
|
+
if (!isRecord(feature)) {
|
|
51
|
+
add(`$.features[${index}]`, 'invalid-feature', 'Each feature must be an object.');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const featureId = feature.id;
|
|
55
|
+
if (typeof featureId !== 'string' || !featureId.trim()) {
|
|
56
|
+
add(`$.features[${index}].id`, 'empty-id', 'Feature id is required.');
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
if (featureIds.has(featureId)) {
|
|
60
|
+
add(`$.features[${index}].id`, 'duplicate-id', `Duplicate feature id '${featureId}'.`);
|
|
61
|
+
}
|
|
62
|
+
featureIds.add(featureId);
|
|
63
|
+
}
|
|
64
|
+
if (!Array.isArray(feature.journeyIds) || feature.journeyIds.length === 0) {
|
|
65
|
+
add(`$.features[${index}].journeyIds`, 'missing-journeys', 'A feature must link to at least one journey.');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
validateUniqueNonEmptyStrings(feature.journeyIds, `$.features[${index}].journeyIds`, 'journey', add);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
if (journeys.length === 0) {
|
|
72
|
+
add('$.journeys', 'missing-journeys', 'At least one executable journey is required.');
|
|
73
|
+
}
|
|
74
|
+
journeys.forEach((journey, index) => {
|
|
75
|
+
if (!isRecord(journey)) {
|
|
76
|
+
add(`$.journeys[${index}]`, 'invalid-journey', 'Each journey must be an object.');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const journeyId = journey.id;
|
|
80
|
+
if (typeof journeyId !== 'string' || !journeyId.trim()) {
|
|
81
|
+
add(`$.journeys[${index}].id`, 'empty-id', 'Journey id is required.');
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
if (journeyIds.has(journeyId)) {
|
|
85
|
+
add(`$.journeys[${index}].id`, 'duplicate-id', `Duplicate journey id '${journeyId}'.`);
|
|
86
|
+
}
|
|
87
|
+
journeyIds.add(journeyId);
|
|
88
|
+
}
|
|
89
|
+
validateJourney(journey, index, add);
|
|
90
|
+
});
|
|
91
|
+
if (!journeys.some((journey) => isRecord(journey) && journey.critical === true)) {
|
|
92
|
+
add('$.journeys', 'missing-critical-journey', 'At least one journey must be marked critical.');
|
|
93
|
+
}
|
|
94
|
+
journeys.forEach((journey, journeyIndex) => {
|
|
95
|
+
if (!isRecord(journey) || typeof journey.id !== 'string' || !Array.isArray(journey.featureIds)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
journey.featureIds.forEach((featureId) => {
|
|
99
|
+
if (typeof featureId !== 'string') {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const feature = features.find((candidateFeature) => isRecord(candidateFeature) && candidateFeature.id === featureId);
|
|
103
|
+
if (!isRecord(feature)) {
|
|
104
|
+
add(`$.journeys[${journeyIndex}].featureIds`, 'unknown-feature', `Unknown feature '${featureId}'.`);
|
|
105
|
+
}
|
|
106
|
+
else if (!Array.isArray(feature.journeyIds) || !feature.journeyIds.includes(journey.id)) {
|
|
107
|
+
add(`$.features[${features.indexOf(feature)}].journeyIds`, 'missing-reverse-link', `Feature '${featureId}' does not link back to journey '${journey.id}'.`);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
features.forEach((feature, featureIndex) => {
|
|
112
|
+
if (!isRecord(feature) || typeof feature.id !== 'string' || !Array.isArray(feature.journeyIds)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
feature.journeyIds.forEach((journeyId) => {
|
|
116
|
+
if (typeof journeyId !== 'string') {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const journey = journeys.find((candidateJourney) => isRecord(candidateJourney) && candidateJourney.id === journeyId);
|
|
120
|
+
if (!isRecord(journey)) {
|
|
121
|
+
add(`$.features[${featureIndex}].journeyIds`, 'unknown-journey', `Unknown journey '${journeyId}'.`);
|
|
122
|
+
}
|
|
123
|
+
else if (!Array.isArray(journey.featureIds) || !journey.featureIds.includes(feature.id)) {
|
|
124
|
+
add(`$.journeys[${journeys.indexOf(journey)}].featureIds`, 'missing-reverse-link', `Journey '${journeyId}' does not link back to feature '${feature.id}'.`);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
validateUniqueNonEmptyStrings(requiredVariants, '$.requiredVariants', 'required variant', add);
|
|
129
|
+
const presentVariants = new Set(journeys
|
|
130
|
+
.filter(isRecord)
|
|
131
|
+
.map((journey) => journey.variant)
|
|
132
|
+
.filter((variant) => typeof variant === 'string'));
|
|
133
|
+
requiredVariants.forEach((variant) => {
|
|
134
|
+
if (typeof variant !== 'string') {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (!JOURNEY_VARIANTS.includes(variant)) {
|
|
138
|
+
add('$.requiredVariants', 'unknown-variant', `Unknown required variant '${variant}'.`);
|
|
139
|
+
}
|
|
140
|
+
if (!presentVariants.has(variant)) {
|
|
141
|
+
add('$.requiredVariants', 'missing-variant', `No journey provides required variant '${variant}'.`);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
return { valid: findings.length === 0, findings };
|
|
145
|
+
}
|
|
146
|
+
function DyE2E_assertGameJourneyCatalog(catalog) {
|
|
147
|
+
const result = DyE2E_validateGameJourneyCatalog(catalog);
|
|
148
|
+
if (!result.valid) {
|
|
149
|
+
const details = result.findings
|
|
150
|
+
.map((finding) => `${finding.path} [${finding.code}] ${finding.message}`)
|
|
151
|
+
.join('\n');
|
|
152
|
+
throw new Error(`[DyE2E_GameJourneyCatalog] Invalid catalog:\n${details}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function validateJourney(journey, index, add) {
|
|
156
|
+
const root = `$.journeys[${index}]`;
|
|
157
|
+
if (typeof journey.title !== 'string' || !journey.title.trim()) {
|
|
158
|
+
add(`${root}.title`, 'missing-title', 'A human-readable journey title is required.');
|
|
159
|
+
}
|
|
160
|
+
if (typeof journey.critical !== 'boolean') {
|
|
161
|
+
add(`${root}.critical`, 'invalid-criticality', 'Journey criticality must be a boolean.');
|
|
162
|
+
}
|
|
163
|
+
if (journey.serial !== true) {
|
|
164
|
+
add(`${root}.serial`, 'not-serial', 'A state-carrying journey must run serially.');
|
|
165
|
+
}
|
|
166
|
+
if (!Array.isArray(journey.featureIds)) {
|
|
167
|
+
add(`${root}.featureIds`, 'invalid-features', 'Journey featureIds must be an array.');
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
validateUniqueNonEmptyStrings(journey.featureIds, `${root}.featureIds`, 'feature', add);
|
|
171
|
+
const uniqueFeatureIds = new Set(journey.featureIds.filter((value) => typeof value === 'string' && value.trim().length > 0));
|
|
172
|
+
if (uniqueFeatureIds.size < 2) {
|
|
173
|
+
add(`${root}.featureIds`, 'not-cross-feature', 'A journey must cross at least two unique features.');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (typeof journey.variant !== 'string' || !JOURNEY_VARIANTS.includes(journey.variant)) {
|
|
177
|
+
add(`${root}.variant`, 'unknown-variant', `Unknown journey variant '${String(journey.variant)}'.`);
|
|
178
|
+
}
|
|
179
|
+
if (!Array.isArray(journey.evidenceTestIds) || journey.evidenceTestIds.length === 0) {
|
|
180
|
+
add(`${root}.evidenceTestIds`, 'missing-evidence', 'At least one executable evidence test id is required.');
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
validateUniqueNonEmptyStrings(journey.evidenceTestIds, `${root}.evidenceTestIds`, 'evidence test', add);
|
|
184
|
+
}
|
|
185
|
+
if (!Array.isArray(journey.steps) || journey.steps.length < 2) {
|
|
186
|
+
add(`${root}.steps`, 'insufficient-steps', 'A journey must contain at least two ordered steps.');
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
const stepIds = new Set();
|
|
190
|
+
journey.steps.forEach((step, stepIndex) => {
|
|
191
|
+
if (!isRecord(step) || typeof step.id !== 'string' || !step.id.trim()) {
|
|
192
|
+
add(`${root}.steps[${stepIndex}].id`, 'empty-step', 'Step id is required.');
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (typeof step.businessAssertion !== 'string' || !step.businessAssertion.trim()) {
|
|
196
|
+
add(`${root}.steps[${stepIndex}].businessAssertion`, 'missing-business-assertion', 'Assertion is required.');
|
|
197
|
+
}
|
|
198
|
+
if (stepIds.has(step.id)) {
|
|
199
|
+
add(`${root}.steps[${stepIndex}].id`, 'duplicate-step', `Duplicate step id '${step.id}'.`);
|
|
200
|
+
}
|
|
201
|
+
if (stepIndex === 0 && step.consumesStateFromStepId !== undefined) {
|
|
202
|
+
add(`${root}.steps[${stepIndex}].consumesStateFromStepId`, 'unexpected-state-source', 'The first journey step cannot consume state from an earlier step.');
|
|
203
|
+
}
|
|
204
|
+
else if (stepIndex > 0) {
|
|
205
|
+
const previousStep = journey.steps[stepIndex - 1];
|
|
206
|
+
const expectedPrevious = isRecord(previousStep) ? previousStep.id : undefined;
|
|
207
|
+
if (typeof expectedPrevious !== 'string' || step.consumesStateFromStepId !== expectedPrevious) {
|
|
208
|
+
add(`${root}.steps[${stepIndex}].consumesStateFromStepId`, 'broken-state-chain', `Step must consume state from immediately preceding step '${String(expectedPrevious)}'.`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
stepIds.add(step.id);
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
if (typeof journey.valueOutcome !== 'string' || !journey.valueOutcome.trim()) {
|
|
215
|
+
add(`${root}.valueOutcome`, 'missing-value-outcome', 'The player-value outcome is required.');
|
|
216
|
+
}
|
|
217
|
+
if (!isRecord(journey.cleanup)
|
|
218
|
+
|| typeof journey.cleanup.owner !== 'string'
|
|
219
|
+
|| !journey.cleanup.owner.trim()
|
|
220
|
+
|| typeof journey.cleanup.businessAssertion !== 'string'
|
|
221
|
+
|| !journey.cleanup.businessAssertion.trim()) {
|
|
222
|
+
add(`${root}.cleanup`, 'incomplete-cleanup', 'Cleanup owner and cleanup business assertion are required.');
|
|
223
|
+
}
|
|
224
|
+
else if (typeof journey.cleanup.mode !== 'string' || !CLEANUP_MODES.includes(journey.cleanup.mode)) {
|
|
225
|
+
add(`${root}.cleanup.mode`, 'invalid-cleanup-mode', `Unknown cleanup mode '${String(journey.cleanup.mode)}'.`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
function validateUniqueNonEmptyStrings(values, path, label, add) {
|
|
229
|
+
const unique = new Set();
|
|
230
|
+
values.forEach((value, index) => {
|
|
231
|
+
if (typeof value !== 'string' || !value.trim()) {
|
|
232
|
+
add(`${path}[${index}]`, 'empty-reference', `A non-empty ${label} id is required.`);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (unique.has(value)) {
|
|
236
|
+
add(`${path}[${index}]`, 'duplicate-reference', `Duplicate ${label} id '${value}'.`);
|
|
237
|
+
}
|
|
238
|
+
unique.add(value);
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
function isRecord(value) {
|
|
242
|
+
return typeof value === 'object' && value !== null;
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=journey-catalog.validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey-catalog.validator.js","sourceRoot":"","sources":["../../../src/_modules/game/journey-catalog.validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-runner.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/generators/_collections/cli-runner.util.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,qBAAa,oBAAoB;IAE/B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAsBpF,MAAM,CAAC,QAAQ,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"cli-runner.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/generators/_collections/cli-runner.util.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,qBAAa,oBAAoB;IAE/B,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAsBpF,MAAM,CAAC,QAAQ,IAAI,MAAM;IAwFzB;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IA0D/C;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QAAE,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAAC,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,GAAG;QAC9H,YAAY,EAAE,OAAO,CAAC;QACtB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;IA2CD,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI3C;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAuB9D;;;OAGG;IACH,MAAM,CAAC,WAAW,CAChB,OAAO,EAAE,qBAAqB,GAAG,yBAAyB,GAAG,mBAAmB,EAChF,UAAU,EAAE,MAAM,GACjB,MAAM;CAaV"}
|
|
@@ -50,9 +50,37 @@ Commands:
|
|
|
50
50
|
info Show registered field-types + CLI capabilities
|
|
51
51
|
schema Print JSON Schema for a config type
|
|
52
52
|
validate-config Validate a config file against its JSON Schema
|
|
53
|
+
preset List built-in configs, or print one (--name)
|
|
53
54
|
version Print package version
|
|
54
55
|
help This message
|
|
55
56
|
|
|
57
|
+
Visual QA (/vqa) commands:
|
|
58
|
+
validate-manifest Validate a VQA state-manifest JSON
|
|
59
|
+
validate-finding Validate a VQA finding JSON
|
|
60
|
+
generate-review-bundle Manifest -> review bundle (capture-spec, README, summary)
|
|
61
|
+
generate-comparison-bundle Before/after capture sets -> comparison bundle
|
|
62
|
+
bundle-summary Print an existing bundle's summary.md
|
|
63
|
+
|
|
64
|
+
Flags (preset):
|
|
65
|
+
--name <preset> Print this preset as JSON (omit to list all)
|
|
66
|
+
|
|
67
|
+
Flags (validate-manifest / validate-finding):
|
|
68
|
+
--manifest <path> Manifest JSON to validate (validate-manifest)
|
|
69
|
+
--finding <path> Finding JSON to validate (validate-finding)
|
|
70
|
+
|
|
71
|
+
Flags (generate-review-bundle):
|
|
72
|
+
--manifest <path> Source state-manifest JSON (required)
|
|
73
|
+
--out <path> Output base dir (default: ./review-bundles)
|
|
74
|
+
|
|
75
|
+
Flags (generate-comparison-bundle):
|
|
76
|
+
--before <path> Baseline capture dir (required)
|
|
77
|
+
--after <path> Candidate capture dir (required)
|
|
78
|
+
--manifest <path> State-manifest JSON (required)
|
|
79
|
+
--findings <path> Optional finding-set JSON
|
|
80
|
+
|
|
81
|
+
Flags (bundle-summary):
|
|
82
|
+
--bundle <path> Bundle dir containing manifest.json + summary.md
|
|
83
|
+
|
|
56
84
|
Flags (generate-form-suite):
|
|
57
85
|
--config <path> Path to JSON config (formSettings, formRoute, ...)
|
|
58
86
|
--out <path> Output spec.ts path
|