@futdevpro/dynamo-e2e 1.18.18 → 1.18.22
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 +63 -0
- package/bin/dye2e.js +85 -1
- package/build/_modules/coverage/_collections/coverage-catalog.util.d.ts +22 -0
- package/build/_modules/coverage/_collections/coverage-catalog.util.d.ts.map +1 -0
- package/build/_modules/coverage/_collections/coverage-catalog.util.js +217 -0
- package/build/_modules/coverage/_collections/coverage-catalog.util.js.map +1 -0
- package/build/_modules/coverage/_models/coverage-catalog.interface.d.ts +75 -0
- package/build/_modules/coverage/_models/coverage-catalog.interface.d.ts.map +1 -0
- package/build/_modules/coverage/_models/coverage-catalog.interface.js +8 -0
- package/build/_modules/coverage/_models/coverage-catalog.interface.js.map +1 -0
- package/build/_modules/coverage/index.d.ts +3 -0
- package/build/_modules/coverage/index.d.ts.map +1 -0
- package/build/_modules/coverage/index.js +20 -0
- package/build/_modules/coverage/index.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 +20 -1
- package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
- package/build/_modules/runtime/_collections/journey-context.util.d.ts +72 -0
- package/build/_modules/runtime/_collections/journey-context.util.d.ts.map +1 -0
- package/build/_modules/runtime/_collections/journey-context.util.js +137 -0
- package/build/_modules/runtime/_collections/journey-context.util.js.map +1 -0
- package/build/_modules/runtime/_models/journey-context.interface.d.ts +31 -0
- package/build/_modules/runtime/_models/journey-context.interface.d.ts.map +1 -0
- package/build/_modules/runtime/_models/journey-context.interface.js +3 -0
- package/build/_modules/runtime/_models/journey-context.interface.js.map +1 -0
- package/build/_modules/runtime/index.d.ts +2 -0
- package/build/_modules/runtime/index.d.ts.map +1 -1
- package/build/_modules/runtime/index.js +2 -0
- package/build/_modules/runtime/index.js.map +1 -1
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts +1 -1
- package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js +1 -1
- package/build/_modules/vqa/_collections/index.d.ts +1 -0
- package/build/_modules/vqa/_collections/index.d.ts.map +1 -1
- package/build/_modules/vqa/_collections/index.js +1 -0
- package/build/_modules/vqa/_collections/index.js.map +1 -1
- package/build/_modules/vqa/_collections/utils/review-gate.util.d.ts +36 -0
- package/build/_modules/vqa/_collections/utils/review-gate.util.d.ts.map +1 -0
- package/build/_modules/vqa/_collections/utils/review-gate.util.js +232 -0
- package/build/_modules/vqa/_collections/utils/review-gate.util.js.map +1 -0
- package/build/_modules/vqa/_models/interfaces/index.d.ts +1 -0
- package/build/_modules/vqa/_models/interfaces/index.d.ts.map +1 -1
- package/build/_modules/vqa/_models/interfaces/index.js +1 -0
- package/build/_modules/vqa/_models/interfaces/index.js.map +1 -1
- package/build/_modules/vqa/_models/interfaces/review-gate.interface.d.ts +55 -0
- package/build/_modules/vqa/_models/interfaces/review-gate.interface.d.ts.map +1 -0
- package/build/_modules/vqa/_models/interfaces/review-gate.interface.js +3 -0
- package/build/_modules/vqa/_models/interfaces/review-gate.interface.js.map +1 -0
- package/build/_modules/vqa/generators/ai-agent-readme.template.js +8 -8
- package/build/_modules/vqa/generators/capture-spec.generator.js +1 -1
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts +16 -4
- package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -1
- package/build/_modules/vqa/generators/review-bundle.generator.js +31 -5
- 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 +1 -1
|
@@ -0,0 +1,232 @@
|
|
|
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_ReviewGate_Util = exports.DYE2E_VQA_CLOSED_FINDING_STATUSES = exports.DYE2E_VQA_REVIEW_GATE_CATEGORIES = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const finding_status_enum_1 = require("../../_enums/finding-status.enum");
|
|
30
|
+
const finding_severity_enum_1 = require("../../_enums/finding-severity.enum");
|
|
31
|
+
const review_bundle_generator_1 = require("../../generators/review-bundle.generator");
|
|
32
|
+
const finding_validator_util_1 = require("./finding-validator.util");
|
|
33
|
+
/** BFR-FSMED-015 — every gate category, in report order (the default `failOn`). */
|
|
34
|
+
exports.DYE2E_VQA_REVIEW_GATE_CATEGORIES = ['missing', 'orphan', 'invalid', 'blocker', 'high', 'human-review'];
|
|
35
|
+
/**
|
|
36
|
+
* BFR-FSMED-015 — finding statuses that CLOSE a finding for the release verdict. Everything else (open, in-progress,
|
|
37
|
+
* fixed-but-not-re-audited, ready-for-re-audit, reopened) is still open.
|
|
38
|
+
*/
|
|
39
|
+
exports.DYE2E_VQA_CLOSED_FINDING_STATUSES = [
|
|
40
|
+
finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.verified,
|
|
41
|
+
finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.ignored,
|
|
42
|
+
finding_status_enum_1.DyE2E_VQA_FindingStatus_Type.acceptedRisk,
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* BFR-FSMED-015 (part 3) — the aggregate release gate for a VQA review bundle: manifest + captured evidence +
|
|
46
|
+
* finding-set + human-review marker ⇒ ONE verdict with stable codes and a machine-readable report.
|
|
47
|
+
*
|
|
48
|
+
* Checks: missing evidence (`VQA-GATE-EVIDENCE-MISSING`), missing findings file (`VQA-GATE-FINDINGS-MISSING`),
|
|
49
|
+
* orphan evidence (`VQA-GATE-EVIDENCE-ORPHAN`), invalid findings (`VQA-GATE-FINDING-INVALID`,
|
|
50
|
+
* `VQA-GATE-FINDING-FOREIGN`, `VQA-GATE-FINDING-REF-MISSING`), open blocker / high (`VQA-GATE-FINDING-OPEN-BLOCKER` /
|
|
51
|
+
* `-HIGH`), human review (`VQA-GATE-HUMAN-REVIEW-MISSING` / `-INVALID` / `-REJECTED`). A missing / unreadable bundle
|
|
52
|
+
* manifest (`VQA-GATE-MANIFEST-MISSING` / `-INVALID`) always fails — without it nothing can be checked.
|
|
53
|
+
*/
|
|
54
|
+
class DyE2E_VQA_ReviewGate_Util {
|
|
55
|
+
/** Runs every check and returns the report; `verdict` is `fail` when any blocking issue exists. */
|
|
56
|
+
static verify(options) {
|
|
57
|
+
const failOn = options.failOn ?? exports.DYE2E_VQA_REVIEW_GATE_CATEGORIES;
|
|
58
|
+
const issues = [];
|
|
59
|
+
const add = (code, category, message, ref) => {
|
|
60
|
+
issues.push({ code: code, category: category, blocking: failOn.includes(category), message: message, ref: ref });
|
|
61
|
+
};
|
|
62
|
+
const manifest = DyE2E_VQA_ReviewGate_Util.readManifest(options.bundlePath, issues);
|
|
63
|
+
let findingsTotal = 0;
|
|
64
|
+
if (manifest) {
|
|
65
|
+
DyE2E_VQA_ReviewGate_Util.checkEvidence(options.bundlePath, manifest, add);
|
|
66
|
+
findingsTotal = DyE2E_VQA_ReviewGate_Util.checkFindings(options, manifest, add);
|
|
67
|
+
DyE2E_VQA_ReviewGate_Util.checkHumanReview(options, add);
|
|
68
|
+
}
|
|
69
|
+
const counts = {
|
|
70
|
+
'missing': 0, 'orphan': 0, 'invalid': 0, 'blocker': 0, 'high': 0, 'human-review': 0,
|
|
71
|
+
};
|
|
72
|
+
issues.forEach((issue) => {
|
|
73
|
+
counts[issue.category]++;
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
schema: 'dye2e-vqa-review-gate/1',
|
|
77
|
+
bundlePath: options.bundlePath,
|
|
78
|
+
featureId: manifest?.featureId ?? '',
|
|
79
|
+
verdict: issues.some((issue) => issue.blocking) ? 'fail' : 'pass',
|
|
80
|
+
failOn: failOn,
|
|
81
|
+
counts: counts,
|
|
82
|
+
findingsTotal: findingsTotal,
|
|
83
|
+
issues: issues,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Parses a `--fail-on a,b` list; an unknown category throws (a typo must not silently weaken the gate). */
|
|
87
|
+
static parseFailOn(raw) {
|
|
88
|
+
if (!raw) {
|
|
89
|
+
return exports.DYE2E_VQA_REVIEW_GATE_CATEGORIES;
|
|
90
|
+
}
|
|
91
|
+
return raw.split(',').map((part) => {
|
|
92
|
+
const category = exports.DYE2E_VQA_REVIEW_GATE_CATEGORIES
|
|
93
|
+
.find((known) => known === part.trim());
|
|
94
|
+
if (!category) {
|
|
95
|
+
throw new Error(`VQA-GATE-FAIL-ON-UNKNOWN: "${part.trim()}" — valid: ${exports.DYE2E_VQA_REVIEW_GATE_CATEGORIES.join(', ')}`);
|
|
96
|
+
}
|
|
97
|
+
return category;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/** Reads `<bundle>/manifest.json`; a missing / unreadable one is an always-blocking issue. */
|
|
101
|
+
static readManifest(bundlePath, issues) {
|
|
102
|
+
const manifestPath = path.join(bundlePath, 'manifest.json');
|
|
103
|
+
if (!fs.existsSync(manifestPath)) {
|
|
104
|
+
issues.push({
|
|
105
|
+
code: 'VQA-GATE-MANIFEST-MISSING', category: 'missing', blocking: true, ref: 'manifest.json',
|
|
106
|
+
message: `bundle manifest not found: ${manifestPath}`,
|
|
107
|
+
});
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
|
|
112
|
+
if (!manifest?.featureId || !Array.isArray(manifest.states) || !Array.isArray(manifest.viewports)) {
|
|
113
|
+
throw new Error('featureId / states / viewports missing');
|
|
114
|
+
}
|
|
115
|
+
return manifest;
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
issues.push({
|
|
119
|
+
code: 'VQA-GATE-MANIFEST-INVALID', category: 'invalid', blocking: true, ref: 'manifest.json',
|
|
120
|
+
message: `bundle manifest unreadable: ${err instanceof Error ? err.message : String(err)}`,
|
|
121
|
+
});
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/** Missing capture artifacts + evidence folders the manifest does not declare. */
|
|
126
|
+
static checkEvidence(bundlePath, manifest, add) {
|
|
127
|
+
review_bundle_generator_1.DyE2E_VQA_ReviewBundle_Generator.verifyBundleArtifacts(bundlePath, manifest).missing
|
|
128
|
+
.forEach((ref) => add('VQA-GATE-EVIDENCE-MISSING', 'missing', `capture artifact missing: ${ref}`, ref));
|
|
129
|
+
const statesDir = path.join(bundlePath, 'states');
|
|
130
|
+
if (!fs.existsSync(statesDir)) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const orientations = manifest.orientations && manifest.orientations.length ? manifest.orientations : ['preserve'];
|
|
134
|
+
const stateIds = manifest.states.map((state) => state.stateId);
|
|
135
|
+
const viewportDirs = manifest.viewports.flatMap((viewport) => orientations.map((orientation) => `${viewport.key}-${orientation}`));
|
|
136
|
+
for (const stateDir of DyE2E_VQA_ReviewGate_Util.subdirs(statesDir)) {
|
|
137
|
+
if (!stateIds.includes(stateDir)) {
|
|
138
|
+
add('VQA-GATE-EVIDENCE-ORPHAN', 'orphan', `evidence for a state the manifest does not declare: ${stateDir}`, `states/${stateDir}`);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
for (const viewportDir of DyE2E_VQA_ReviewGate_Util.subdirs(path.join(statesDir, stateDir))) {
|
|
142
|
+
if (!viewportDirs.includes(viewportDir)) {
|
|
143
|
+
add('VQA-GATE-EVIDENCE-ORPHAN', 'orphan', `evidence for a viewport / orientation the manifest does not declare: ${stateDir}/${viewportDir}`, `states/${stateDir}/${viewportDir}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/** Finding schema + consistency with the bundle + open blocker / high. Returns the number of findings read. */
|
|
149
|
+
static checkFindings(options, manifest, add) {
|
|
150
|
+
const findingsPath = options.findingsPath ?? path.join(options.bundlePath, 'findings', 'findings.json');
|
|
151
|
+
if (!fs.existsSync(findingsPath)) {
|
|
152
|
+
add('VQA-GATE-FINDINGS-MISSING', 'missing', `finding-set not found (the review did not run, or wrote elsewhere): ${findingsPath}`, findingsPath);
|
|
153
|
+
return 0;
|
|
154
|
+
}
|
|
155
|
+
let findings;
|
|
156
|
+
try {
|
|
157
|
+
const raw = JSON.parse(fs.readFileSync(findingsPath, 'utf-8'));
|
|
158
|
+
const list = Array.isArray(raw) ? raw : raw?.findings;
|
|
159
|
+
if (!Array.isArray(list)) {
|
|
160
|
+
throw new Error('expected an array or { findings: [] }');
|
|
161
|
+
}
|
|
162
|
+
findings = list;
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
add('VQA-GATE-FINDING-INVALID', 'invalid', `finding-set unreadable: ${err instanceof Error ? err.message : String(err)}`, findingsPath);
|
|
166
|
+
return 0;
|
|
167
|
+
}
|
|
168
|
+
const stateIds = manifest.states.map((state) => state.stateId);
|
|
169
|
+
const viewportKeys = manifest.viewports.map((viewport) => viewport.key);
|
|
170
|
+
findings.forEach((finding, index) => {
|
|
171
|
+
const ref = finding?.findingId || `findings[${index}]`;
|
|
172
|
+
const validation = finding_validator_util_1.DyE2E_VQA_FindingValidator_Util.validate(finding);
|
|
173
|
+
if (!validation.ok) {
|
|
174
|
+
add('VQA-GATE-FINDING-INVALID', 'invalid', `schema: ${validation.errors
|
|
175
|
+
.map((e) => `${e.path} ${e.message}`).join('; ')}`, ref);
|
|
176
|
+
}
|
|
177
|
+
// Cross-check against the bundle: a finding about another feature / an undeclared state or viewport is foreign
|
|
178
|
+
if (finding?.featureId !== manifest.featureId || !stateIds.includes(finding?.stateId ?? '')
|
|
179
|
+
|| !viewportKeys.includes(finding?.viewport ?? '')) {
|
|
180
|
+
add('VQA-GATE-FINDING-FOREIGN', 'invalid', `feature / state / viewport not in this bundle: ${finding?.featureId} / ${finding?.stateId} / ${finding?.viewport}`, ref);
|
|
181
|
+
}
|
|
182
|
+
// Every evidence reference must point at a file that exists in the bundle
|
|
183
|
+
[finding?.screenshotRef, finding?.domSnapshotRef]
|
|
184
|
+
.filter((evidenceRef) => !!evidenceRef)
|
|
185
|
+
.filter((evidenceRef) => !fs.existsSync(path.join(options.bundlePath, evidenceRef)))
|
|
186
|
+
.forEach((evidenceRef) => add('VQA-GATE-FINDING-REF-MISSING', 'invalid', `evidence reference not in the bundle: ${evidenceRef}`, ref));
|
|
187
|
+
const isOpen = !exports.DYE2E_VQA_CLOSED_FINDING_STATUSES
|
|
188
|
+
.some((status) => status === finding?.status);
|
|
189
|
+
if (isOpen && finding?.severity === finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.blocker) {
|
|
190
|
+
add('VQA-GATE-FINDING-OPEN-BLOCKER', 'blocker', `open blocker (status: ${finding.status})`, ref);
|
|
191
|
+
}
|
|
192
|
+
if (isOpen && finding?.severity === finding_severity_enum_1.DyE2E_VQA_FindingSeverity_Type.high) {
|
|
193
|
+
add('VQA-GATE-FINDING-OPEN-HIGH', 'high', `open high (status: ${finding.status})`, ref);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
return findings.length;
|
|
197
|
+
}
|
|
198
|
+
/** The human-review marker: present, well-formed, approving. */
|
|
199
|
+
static checkHumanReview(options, add) {
|
|
200
|
+
const reviewPath = options.humanReviewPath ?? path.join(options.bundlePath, 'human-review.json');
|
|
201
|
+
if (!fs.existsSync(reviewPath)) {
|
|
202
|
+
add('VQA-GATE-HUMAN-REVIEW-MISSING', 'human-review', `no human review marker: ${reviewPath}`, reviewPath);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
let review;
|
|
206
|
+
try {
|
|
207
|
+
review = JSON.parse(fs.readFileSync(reviewPath, 'utf-8'));
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
add('VQA-GATE-HUMAN-REVIEW-INVALID', 'human-review', `human review marker unreadable: ${err instanceof Error ? err.message : String(err)}`, reviewPath);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
const wellFormed = typeof review?.reviewer === 'string' && !!review.reviewer.trim()
|
|
214
|
+
&& typeof review.reviewedAt === 'string' && !Number.isNaN(Date.parse(review.reviewedAt))
|
|
215
|
+
&& (review.verdict === 'approved' || review.verdict === 'rejected');
|
|
216
|
+
if (!wellFormed) {
|
|
217
|
+
add('VQA-GATE-HUMAN-REVIEW-INVALID', 'human-review', 'human review marker needs { reviewer, reviewedAt (ISO date), verdict: approved | rejected }', reviewPath);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (review.verdict === 'rejected') {
|
|
221
|
+
add('VQA-GATE-HUMAN-REVIEW-REJECTED', 'human-review', `the human reviewer (${review.reviewer}) rejected`, reviewPath);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/** The subdirectory names of a directory. */
|
|
225
|
+
static subdirs(dir) {
|
|
226
|
+
return fs.readdirSync(dir, { withFileTypes: true })
|
|
227
|
+
.filter((entry) => entry.isDirectory())
|
|
228
|
+
.map((entry) => entry.name);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
exports.DyE2E_VQA_ReviewGate_Util = DyE2E_VQA_ReviewGate_Util;
|
|
232
|
+
//# sourceMappingURL=review-gate.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-gate.util.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_collections/utils/review-gate.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
|
|
@@ -21,4 +21,5 @@ __exportStar(require("./expected-feedback.interface"), exports);
|
|
|
21
21
|
__exportStar(require("./feature-manifest.interface"), exports);
|
|
22
22
|
__exportStar(require("./dom-evidence.interface"), exports);
|
|
23
23
|
__exportStar(require("./finding.interface"), exports);
|
|
24
|
+
__exportStar(require("./review-gate.interface"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC;AACzC,+DAA6C;AAC7C,gEAA8C;AAC9C,+DAA6C;AAC7C,2DAAyC;AACzC,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,2DAAyC;AACzC,+DAA6C;AAC7C,gEAA8C;AAC9C,+DAA6C;AAC7C,2DAAyC;AACzC,sDAAoC;AACpC,0DAAwC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BFR-FSMED-015 (3. rész) — a review-gate kategóriái: a `--fail-on` ezek közül választ.
|
|
3
|
+
* - `missing`: hiányzó evidence (capture-artifact) vagy hiányzó findings-fájl
|
|
4
|
+
* - `orphan`: a manifestben nem szereplő state / viewport evidence-mappája
|
|
5
|
+
* - `invalid`: sémahibás finding, vagy olyan feature / state / viewport / fájl-hivatkozás, ami a bundle-ben nincs
|
|
6
|
+
* - `blocker` / `high`: NEM lezárt blocker / high finding
|
|
7
|
+
* - `human-review`: hiányzó, sémahibás vagy elutasító emberi review-jelölő
|
|
8
|
+
*/
|
|
9
|
+
export type DyE2E_VQA_ReviewGateCategory_Type = 'missing' | 'orphan' | 'invalid' | 'blocker' | 'high' | 'human-review';
|
|
10
|
+
/** BFR-FSMED-015 — egy gate-lelet stabil kóddal (a kód a gépi feldolgozás kulcsa, a szöveg az emberé). */
|
|
11
|
+
export interface DyE2E_VQA_ReviewGateIssue_Interface {
|
|
12
|
+
/** Stabil kód, pl. `VQA-GATE-EVIDENCE-MISSING`. */
|
|
13
|
+
code: string;
|
|
14
|
+
category: DyE2E_VQA_ReviewGateCategory_Type;
|
|
15
|
+
/** A lelet a `failOn` szerint bukást okoz-e. */
|
|
16
|
+
blocking: boolean;
|
|
17
|
+
message: string;
|
|
18
|
+
/** Bundle-relatív útvonal vagy finding-azonosító, amire a lelet vonatkozik. */
|
|
19
|
+
ref?: string;
|
|
20
|
+
}
|
|
21
|
+
/** BFR-FSMED-015 — az emberi review-jelölő (`human-review.json` a bundle-ben, vagy `--human-review <path>`). */
|
|
22
|
+
export interface DyE2E_VQA_HumanReview_Interface {
|
|
23
|
+
/** Ki nézte át (nem üres). */
|
|
24
|
+
reviewer: string;
|
|
25
|
+
/** Mikor (ISO-8601). */
|
|
26
|
+
reviewedAt: string;
|
|
27
|
+
/** A döntés. */
|
|
28
|
+
verdict: 'approved' | 'rejected';
|
|
29
|
+
notes?: string;
|
|
30
|
+
}
|
|
31
|
+
/** BFR-FSMED-015 — a gate gépileg olvasható eredménye (`--report <path>` JSON). */
|
|
32
|
+
export interface DyE2E_VQA_ReviewGateReport_Interface {
|
|
33
|
+
/** A riport-séma azonosítója. */
|
|
34
|
+
schema: 'dye2e-vqa-review-gate/1';
|
|
35
|
+
bundlePath: string;
|
|
36
|
+
featureId: string;
|
|
37
|
+
verdict: 'pass' | 'fail';
|
|
38
|
+
failOn: DyE2E_VQA_ReviewGateCategory_Type[];
|
|
39
|
+
/** Leletek száma kategóriánként (a nem-blokkolók is). */
|
|
40
|
+
counts: Record<DyE2E_VQA_ReviewGateCategory_Type, number>;
|
|
41
|
+
findingsTotal: number;
|
|
42
|
+
issues: DyE2E_VQA_ReviewGateIssue_Interface[];
|
|
43
|
+
}
|
|
44
|
+
/** BFR-FSMED-015 — a gate bemenete. */
|
|
45
|
+
export interface DyE2E_VQA_ReviewGate_Options {
|
|
46
|
+
/** A review-bundle mappája (benne `manifest.json`). */
|
|
47
|
+
bundlePath: string;
|
|
48
|
+
/** Finding-set JSON (tömb vagy `{ findings: [] }`). Default: `<bundle>/findings/findings.json`. */
|
|
49
|
+
findingsPath?: string;
|
|
50
|
+
/** Emberi review-jelölő. Default: `<bundle>/human-review.json`. */
|
|
51
|
+
humanReviewPath?: string;
|
|
52
|
+
/** Mely kategóriák buktatnak. Default: mind a hat. */
|
|
53
|
+
failOn?: DyE2E_VQA_ReviewGateCategory_Type[];
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=review-gate.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-gate.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/review-gate.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,iCAAiC,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,CAAC;AAEvH,0GAA0G;AAC1G,MAAM,WAAW,mCAAmC;IAClD,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iCAAiC,CAAC;IAC5C,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,gHAAgH;AAChH,MAAM,WAAW,+BAA+B;IAC9C,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,OAAO,EAAE,UAAU,GAAG,UAAU,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,mFAAmF;AACnF,MAAM,WAAW,oCAAoC;IACnD,iCAAiC;IACjC,MAAM,EAAE,yBAAyB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,EAAE,iCAAiC,EAAE,CAAC;IAC5C,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,mCAAmC,EAAE,CAAC;CAC/C;AAED,uCAAuC;AACvC,MAAM,WAAW,4BAA4B;IAC3C,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,mGAAmG;IACnG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,MAAM,CAAC,EAAE,iCAAiC,EAAE,CAAC;CAC9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-gate.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/vqa/_models/interfaces/review-gate.interface.ts"],"names":[],"mappings":""}
|
|
@@ -29,12 +29,12 @@ class DyE2E_VQA_AIAgentReadme_Template {
|
|
|
29
29
|
1. **Olvasd át a manifest-et** (\`manifest.json\`) — feature-cél, állapotok, viewportok, critical-element-ek.
|
|
30
30
|
2. **Tekintsd át a \`summary.md\`-t** — feature-state-viewport tábla a bundle szerkezetével.
|
|
31
31
|
3. **Per (állapot × viewport)** menj végig:
|
|
32
|
-
|
|
33
|
-
- \`
|
|
34
|
-
- \`
|
|
35
|
-
- \`dom-
|
|
36
|
-
- \`evidence
|
|
37
|
-
- \`a11y
|
|
32
|
+
*(minden a \`states/<stateId>/<viewport>-<orientation>/\` mappában — ezt írja a \`capture.spec.ts\`)*
|
|
33
|
+
- \`full.png\` — full-page kép
|
|
34
|
+
- \`fold.png\` — above-fold (viewport-only)
|
|
35
|
+
- \`dom-snapshot.json\` — DOM-metrikák
|
|
36
|
+
- \`evidence.json\` — 16 DOM-detektor strukturált bizonyíték
|
|
37
|
+
- \`a11y.json\` — axe-core a11y scan (ha a manifest bekapcsolja)
|
|
38
38
|
4. **QA-rubric szerint** értékeld az audit-kérdéseket (14 alap + 3 UX-kiegészítő; lásd lent) — és
|
|
39
39
|
alkalmazd a kötelező **UX kritikus-felhasználó réteget** (mindset + evidence + kimenet-keretezés).
|
|
40
40
|
5. **Finding-eket írj** a \`findings.md\`-be a megadott schema szerint (lásd lent).
|
|
@@ -156,8 +156,8 @@ A finding-eket írd a \`findings.md\` (markdown) ÉS \`findings.json\` (validál
|
|
|
156
156
|
"stateId": "<manifest-state-id>",
|
|
157
157
|
"viewport": "<manifest-viewport-key>",
|
|
158
158
|
"orientation": "portrait" | "landscape", // opcionális
|
|
159
|
-
"screenshotRef": "
|
|
160
|
-
"domSnapshotRef": "
|
|
159
|
+
"screenshotRef": "states/<stateId>/<viewport>-<orientation>/full.png", // bundle-relative, LÉTEZŐ fájl
|
|
160
|
+
"domSnapshotRef": "states/<stateId>/<viewport>-<orientation>/dom-snapshot.json", // opcionális
|
|
161
161
|
"additionalEvidenceRefs": [], // opcionális extra-utak
|
|
162
162
|
"description": "<észlelt probléma — Te írod>",
|
|
163
163
|
"expectedBehavior": "<mit várnánk helyette — Te írod>",
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
DyE2E_VQA_AntiFlake_Css_Const,${a11yEnabled ? `
|
|
32
32
|
DyE2E_VQA_Axe_CdnUrl_Const,
|
|
33
33
|
DyE2E_VQA_AxeRunScript_Const,` : ''}
|
|
34
|
-
} from '@futdevpro/dynamo-e2e
|
|
34
|
+
} from '@futdevpro/dynamo-e2e';
|
|
35
35
|
|
|
36
36
|
const VQA_OUT_DIR: string = process.env.VQA_OUT_DIR
|
|
37
37
|
|| path.join(process.cwd(), 'review-bundles', '${manifest.featureId}', \`run-\${process.env.VQA_RUN_ID || Date.now()}\`);
|
|
@@ -6,13 +6,14 @@ import { DyE2E_VQA_FeatureManifest_Interface } from '../_models/interfaces/featu
|
|
|
6
6
|
* - `README.md` — AI-agent review-instrukció (rubric + finding-schema)
|
|
7
7
|
* - `summary.md` — feature × state × viewport tábla
|
|
8
8
|
* - `manifest.json` — a futtatott manifest másolata
|
|
9
|
-
* - `capture
|
|
9
|
+
* - `capture.spec.ts` + `playwright.config.ts` — a generált Playwright spec és a SAJÁT configja (BFR-FSMED-015)
|
|
10
10
|
* - `findings/` — üres directory, ahova az AI agent ír (findings.md / findings.json)
|
|
11
11
|
* - `meta/run-id.txt`, `meta/build-id.txt`, `meta/timing.json`
|
|
12
|
-
* - (capture-time után: `
|
|
12
|
+
* - (capture-time után: `states/<stateId>/<viewport>-<orientation>/` — full.png, fold.png, dom-snapshot.json, evidence.json, a11y.json)
|
|
13
13
|
*
|
|
14
|
-
* **A
|
|
15
|
-
* a
|
|
14
|
+
* **A futtatás a bundle SAJÁT configjával megy** (`DyE2E_VQA_ReviewBundle_Generator.captureCommand(bundlePath)`):
|
|
15
|
+
* a projekt configjának `testDir`/`testMatch`-e a bundle-t nem látná ("No tests found").
|
|
16
|
+
* Az artifact-ok a megfelelő helyre kerülnek (a generált spec tudja a `VQA_OUT_DIR`-t).
|
|
16
17
|
*
|
|
17
18
|
* **scope-LOCK**: NEM csinál AI-call-ot. A bundle "kész AI-agent-re vár".
|
|
18
19
|
*/
|
|
@@ -36,7 +37,18 @@ export interface DyE2E_VQA_ReviewBundle_Result {
|
|
|
36
37
|
message: string;
|
|
37
38
|
}[];
|
|
38
39
|
}
|
|
40
|
+
/** BFR-FSMED-015 — a generált capture-spec fájlneve: `.spec.ts`, hogy a Playwright `testMatch`-e felismerje. */
|
|
41
|
+
export declare const DYE2E_VQA_CAPTURE_SPEC_FILE: string;
|
|
42
|
+
/** BFR-FSMED-015 — a bundle SAJÁT Playwright configja (a bundle a projekt `testDir`-én kívül él). */
|
|
43
|
+
export declare const DYE2E_VQA_CAPTURE_CONFIG_FILE: string;
|
|
39
44
|
export declare class DyE2E_VQA_ReviewBundle_Generator {
|
|
45
|
+
/**
|
|
46
|
+
* BFR-FSMED-015 — a bizonyítottan futó capture-parancs: a bundle saját configjával (a projekt `testDir` / `testMatch`
|
|
47
|
+
* beállítása nem számít). Futtasd a projekt gyökeréből (ott oldódik fel a `@playwright/test` és a dynamo-e2e).
|
|
48
|
+
*/
|
|
49
|
+
static captureCommand(bundlePath: string): string;
|
|
50
|
+
/** BFR-FSMED-015 — a bundle Playwright-configja: csak a saját capture-spec-jét futtatja, a saját mappájából. */
|
|
51
|
+
static emitCaptureConfig(): string;
|
|
40
52
|
static generate(manifest: DyE2E_VQA_FeatureManifest_Interface, outputBase: string, options?: DyE2E_VQA_ReviewBundle_Options): DyE2E_VQA_ReviewBundle_Result;
|
|
41
53
|
/** A capture-spec futása UTÁN futtatható; csak ellenőriz hogy a kötelező artifact-ok meg vannak. */
|
|
42
54
|
static verifyBundleArtifacts(bundlePath: string, manifest: DyE2E_VQA_FeatureManifest_Interface): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-bundle.generator.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/review-bundle.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mCAAmC,EAEpC,MAAM,kDAAkD,CAAC;AAM1D
|
|
1
|
+
{"version":3,"file":"review-bundle.generator.d.ts","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/review-bundle.generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mCAAmC,EAEpC,MAAM,kDAAkD,CAAC;AAM1D;;;;;;;;;;;;;;;;;GAiBG;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,gHAAgH;AAChH,eAAO,MAAM,2BAA2B,EAAE,MAA0B,CAAC;AAErE,qGAAqG;AACrG,eAAO,MAAM,6BAA6B,EAAE,MAA+B,CAAC;AAE5E,qBAAa,gCAAgC;IAE3C;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIjD,gHAAgH;IAChH,MAAM,CAAC,iBAAiB,IAAI,MAAM;IAclC,MAAM,CAAC,QAAQ,CACb,QAAQ,EAAE,mCAAmC,EAC7C,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,8BAA8B,GACvC,6BAA6B;IA+EhC,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"}
|
|
@@ -23,14 +23,39 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.DyE2E_VQA_ReviewBundle_Generator = void 0;
|
|
26
|
+
exports.DyE2E_VQA_ReviewBundle_Generator = exports.DYE2E_VQA_CAPTURE_CONFIG_FILE = exports.DYE2E_VQA_CAPTURE_SPEC_FILE = void 0;
|
|
27
27
|
const fs = __importStar(require("fs"));
|
|
28
28
|
const path = __importStar(require("path"));
|
|
29
29
|
const manifest_validator_util_1 = require("../_collections/utils/manifest-validator.util");
|
|
30
30
|
const ai_agent_readme_template_1 = require("./ai-agent-readme.template");
|
|
31
31
|
const bundle_summary_template_1 = require("./bundle-summary.template");
|
|
32
32
|
const capture_spec_generator_1 = require("./capture-spec.generator");
|
|
33
|
+
/** BFR-FSMED-015 — a generált capture-spec fájlneve: `.spec.ts`, hogy a Playwright `testMatch`-e felismerje. */
|
|
34
|
+
exports.DYE2E_VQA_CAPTURE_SPEC_FILE = 'capture.spec.ts';
|
|
35
|
+
/** BFR-FSMED-015 — a bundle SAJÁT Playwright configja (a bundle a projekt `testDir`-én kívül él). */
|
|
36
|
+
exports.DYE2E_VQA_CAPTURE_CONFIG_FILE = 'playwright.config.ts';
|
|
33
37
|
class DyE2E_VQA_ReviewBundle_Generator {
|
|
38
|
+
/**
|
|
39
|
+
* BFR-FSMED-015 — a bizonyítottan futó capture-parancs: a bundle saját configjával (a projekt `testDir` / `testMatch`
|
|
40
|
+
* beállítása nem számít). Futtasd a projekt gyökeréből (ott oldódik fel a `@playwright/test` és a dynamo-e2e).
|
|
41
|
+
*/
|
|
42
|
+
static captureCommand(bundlePath) {
|
|
43
|
+
return `VQA_OUT_DIR="${bundlePath}" npx playwright test --config "${path.join(bundlePath, exports.DYE2E_VQA_CAPTURE_CONFIG_FILE)}"`;
|
|
44
|
+
}
|
|
45
|
+
/** BFR-FSMED-015 — a bundle Playwright-configja: csak a saját capture-spec-jét futtatja, a saját mappájából. */
|
|
46
|
+
static emitCaptureConfig() {
|
|
47
|
+
return `// AUTOGEN by @futdevpro/dynamo-e2e/vqa — DyE2E_VQA_ReviewBundle_Generator. DO NOT EDIT.
|
|
48
|
+
import { defineConfig } from '@playwright/test';
|
|
49
|
+
|
|
50
|
+
export default defineConfig({
|
|
51
|
+
testDir: '.',
|
|
52
|
+
testMatch: '${exports.DYE2E_VQA_CAPTURE_SPEC_FILE}',
|
|
53
|
+
fullyParallel: false,
|
|
54
|
+
reporter: 'list',
|
|
55
|
+
use: { ignoreHTTPSErrors: true },
|
|
56
|
+
});
|
|
57
|
+
`;
|
|
58
|
+
}
|
|
34
59
|
static generate(manifest, outputBase, options) {
|
|
35
60
|
const validation = manifest_validator_util_1.DyE2E_VQA_ManifestValidator_Util.validate(manifest);
|
|
36
61
|
if (!validation.ok) {
|
|
@@ -66,11 +91,12 @@ class DyE2E_VQA_ReviewBundle_Generator {
|
|
|
66
91
|
const summaryPath = path.join(bundlePath, 'summary.md');
|
|
67
92
|
fs.writeFileSync(summaryPath, bundle_summary_template_1.DyE2E_VQA_BundleSummary_Template.render(manifest, runId));
|
|
68
93
|
files.push('summary.md');
|
|
69
|
-
// capture
|
|
94
|
+
// capture.spec.ts + a bundle saját playwright.config.ts-e (futtatás: `captureCommand(bundlePath)`)
|
|
70
95
|
if (!options?.skipCaptureSpec) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
96
|
+
fs.writeFileSync(path.join(bundlePath, exports.DYE2E_VQA_CAPTURE_SPEC_FILE), capture_spec_generator_1.DyE2E_VQA_CaptureSpec_Generator.emit(manifest));
|
|
97
|
+
files.push(exports.DYE2E_VQA_CAPTURE_SPEC_FILE);
|
|
98
|
+
fs.writeFileSync(path.join(bundlePath, exports.DYE2E_VQA_CAPTURE_CONFIG_FILE), DyE2E_VQA_ReviewBundle_Generator.emitCaptureConfig());
|
|
99
|
+
files.push(exports.DYE2E_VQA_CAPTURE_CONFIG_FILE);
|
|
74
100
|
}
|
|
75
101
|
// findings/ üres mappa (AI agent írja ide a findings.md + findings.json-t)
|
|
76
102
|
const findingsDir = path.join(bundlePath, 'findings');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-bundle.generator.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/review-bundle.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAK7B,2FAAiG;AACjG,yEAA8E;AAC9E,uEAA6E;AAC7E,qEAA2E;
|
|
1
|
+
{"version":3,"file":"review-bundle.generator.js","sourceRoot":"","sources":["../../../../src/_modules/vqa/generators/review-bundle.generator.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * from './_modules/presets/index';
|
|
|
5
5
|
export * from './_modules/cwv/index';
|
|
6
6
|
export * from './_modules/vqa/index';
|
|
7
7
|
export * from './_modules/game/index';
|
|
8
|
+
export * from './_modules/coverage/index';
|
|
8
9
|
/** Package-version stamp — npm-publish-time runtime-érték. */
|
|
9
10
|
export declare const DYE2E_PACKAGE_VERSION: string;
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAE1C,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,EAAE,MAAmB,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __exportStar(require("./_modules/presets/index"), exports);
|
|
|
23
23
|
__exportStar(require("./_modules/cwv/index"), exports);
|
|
24
24
|
__exportStar(require("./_modules/vqa/index"), exports);
|
|
25
25
|
__exportStar(require("./_modules/game/index"), exports);
|
|
26
|
+
__exportStar(require("./_modules/coverage/index"), exports);
|
|
26
27
|
/** Package-version stamp — npm-publish-time runtime-érték. */
|
|
27
|
-
exports.DYE2E_PACKAGE_VERSION = '01.18.
|
|
28
|
+
exports.DYE2E_PACKAGE_VERSION = '01.18.22';
|
|
28
29
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6EAA6E;AAC7E,6DAA2C;AAC3C,8DAA4C;AAC5C,2DAAyC;AACzC,2DAAyC;AACzC,uDAAqC;AACrC,uDAAqC;AACrC,wDAAsC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6EAA6E;AAC7E,6DAA2C;AAC3C,8DAA4C;AAC5C,2DAAyC;AACzC,2DAAyC;AACzC,uDAAqC;AACrC,uDAAqC;AACrC,wDAAsC;AACtC,4DAA0C;AAE1C,8DAA8D;AACjD,QAAA,qBAAqB,GAAW,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/dynamo-e2e",
|
|
3
|
-
"version": "01.18.
|
|
3
|
+
"version": "01.18.22",
|
|
4
4
|
"description": "End-to-end testing engine for the Dynamo + FDP ecosystem — auto-generated form-coverage tests, viewport audit matrix, CWV diagnostics. Settings-POJO-first.",
|
|
5
5
|
"DyBu_settings": {
|
|
6
6
|
"packageType": "core-package",
|