@futdevpro/dynamo-e2e 1.18.16 → 1.18.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +17 -0
  3. package/bin/dye2e.js +36 -1
  4. package/build/_modules/generators/_collections/cli-runner.util.d.ts.map +1 -1
  5. package/build/_modules/generators/_collections/cli-runner.util.js +9 -1
  6. package/build/_modules/generators/_collections/cli-runner.util.js.map +1 -1
  7. package/build/_modules/presets/_collections/ci-timeout.util.d.ts +21 -0
  8. package/build/_modules/presets/_collections/ci-timeout.util.d.ts.map +1 -0
  9. package/build/_modules/presets/_collections/ci-timeout.util.js +34 -0
  10. package/build/_modules/presets/_collections/ci-timeout.util.js.map +1 -0
  11. package/build/_modules/presets/_collections/global-setup.factory.d.ts +11 -0
  12. package/build/_modules/presets/_collections/global-setup.factory.d.ts.map +1 -1
  13. package/build/_modules/presets/_collections/global-setup.factory.js +54 -9
  14. package/build/_modules/presets/_collections/global-setup.factory.js.map +1 -1
  15. package/build/_modules/presets/_collections/playwright-config.factory.d.ts.map +1 -1
  16. package/build/_modules/presets/_collections/playwright-config.factory.js +9 -4
  17. package/build/_modules/presets/_collections/playwright-config.factory.js.map +1 -1
  18. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.d.ts +10 -0
  19. package/build/_modules/presets/_models/interfaces/global-setup-options.interface.d.ts.map +1 -1
  20. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts +20 -1
  21. package/build/_modules/presets/_models/interfaces/playwright-config-options.interface.d.ts.map +1 -1
  22. package/build/_modules/presets/index.d.ts +2 -1
  23. package/build/_modules/presets/index.d.ts.map +1 -1
  24. package/build/_modules/presets/index.js +6 -1
  25. package/build/_modules/presets/index.js.map +1 -1
  26. package/build/_modules/runtime/_collections/journey-context.util.d.ts +72 -0
  27. package/build/_modules/runtime/_collections/journey-context.util.d.ts.map +1 -0
  28. package/build/_modules/runtime/_collections/journey-context.util.js +137 -0
  29. package/build/_modules/runtime/_collections/journey-context.util.js.map +1 -0
  30. package/build/_modules/runtime/_models/journey-context.interface.d.ts +31 -0
  31. package/build/_modules/runtime/_models/journey-context.interface.d.ts.map +1 -0
  32. package/build/_modules/runtime/_models/journey-context.interface.js +3 -0
  33. package/build/_modules/runtime/_models/journey-context.interface.js.map +1 -0
  34. package/build/_modules/runtime/index.d.ts +2 -0
  35. package/build/_modules/runtime/index.d.ts.map +1 -1
  36. package/build/_modules/runtime/index.js +2 -0
  37. package/build/_modules/runtime/index.js.map +1 -1
  38. package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.d.ts +1 -1
  39. package/build/_modules/vqa/_collections/constants/vqa-standard-viewports.const.js +1 -1
  40. package/build/_modules/vqa/_collections/index.d.ts +1 -0
  41. package/build/_modules/vqa/_collections/index.d.ts.map +1 -1
  42. package/build/_modules/vqa/_collections/index.js +1 -0
  43. package/build/_modules/vqa/_collections/index.js.map +1 -1
  44. package/build/_modules/vqa/_collections/utils/review-gate.util.d.ts +36 -0
  45. package/build/_modules/vqa/_collections/utils/review-gate.util.d.ts.map +1 -0
  46. package/build/_modules/vqa/_collections/utils/review-gate.util.js +232 -0
  47. package/build/_modules/vqa/_collections/utils/review-gate.util.js.map +1 -0
  48. package/build/_modules/vqa/_models/interfaces/index.d.ts +1 -0
  49. package/build/_modules/vqa/_models/interfaces/index.d.ts.map +1 -1
  50. package/build/_modules/vqa/_models/interfaces/index.js +1 -0
  51. package/build/_modules/vqa/_models/interfaces/index.js.map +1 -1
  52. package/build/_modules/vqa/_models/interfaces/review-gate.interface.d.ts +55 -0
  53. package/build/_modules/vqa/_models/interfaces/review-gate.interface.d.ts.map +1 -0
  54. package/build/_modules/vqa/_models/interfaces/review-gate.interface.js +3 -0
  55. package/build/_modules/vqa/_models/interfaces/review-gate.interface.js.map +1 -0
  56. package/build/_modules/vqa/generators/ai-agent-readme.template.js +8 -8
  57. package/build/_modules/vqa/generators/capture-spec.generator.js +1 -1
  58. package/build/_modules/vqa/generators/review-bundle.generator.d.ts +16 -4
  59. package/build/_modules/vqa/generators/review-bundle.generator.d.ts.map +1 -1
  60. package/build/_modules/vqa/generators/review-bundle.generator.js +31 -5
  61. package/build/_modules/vqa/generators/review-bundle.generator.js.map +1 -1
  62. package/build/index.js +1 -1
  63. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,59 @@
3
3
  Minden release a `dynamo-e2e-foundation` HYPERPLAN MP-N ütemezést követi.
4
4
  Verzióformátum: `MM.mm.p` (két-számjegyes major-minor, Dynamo-konvenció).
5
5
 
6
+ ## [01.18.21] — 2026-09-25 — VQA aggregate review gate (BFR-FSMED-015, part 3)
7
+
8
+ - Added `DyE2E_VQA_ReviewGate_Util.verify({ bundlePath, findingsPath?, humanReviewPath?, failOn? })` and the CLI
9
+ `dye2e verify-review-bundle --bundle <path> [--findings] [--human-review] [--report <json>] [--fail-on a,b]`
10
+ (exit 0 pass · 1 fail · 2 usage): manifest + captured evidence + finding-set + human-review marker ⇒ ONE release
11
+ verdict with stable codes and a JSON report (`schema: dye2e-vqa-review-gate/1`).
12
+ - Categories (`--fail-on`, default all): `missing` (`VQA-GATE-EVIDENCE-MISSING`, `-FINDINGS-MISSING`) · `orphan`
13
+ (`-EVIDENCE-ORPHAN`: evidence for an undeclared state / viewport) · `invalid` (`-FINDING-INVALID` schema,
14
+ `-FINDING-FOREIGN` other feature / state / viewport, `-FINDING-REF-MISSING` evidence ref not in the bundle) ·
15
+ `blocker` / `high` (`-FINDING-OPEN-BLOCKER` / `-HIGH`; closed = verified / ignored / accepted-risk) · `human-review`
16
+ (`-HUMAN-REVIEW-MISSING` / `-INVALID` / `-REJECTED`; marker `{ reviewer, reviewedAt, verdict }`). A missing /
17
+ unreadable manifest always fails. Issues outside `--fail-on` are still reported (`blocking: false`); an unknown
18
+ `--fail-on` category is a usage error, not a silently weaker gate.
19
+ - The bundle README told the reviewer to reference `screenshots/…` / `dom-snapshots/…`, which the capture never
20
+ writes — it now names the real `states/<stateId>/<viewport>-<orientation>/` files (the gate checks refs exist).
21
+
22
+ ## [01.18.20] — 2026-09-25 — Runnable VQA capture (BFR-FSMED-015, part 2)
23
+
24
+ - The review bundle now holds `capture.spec.ts` (was `capture-spec.ts`, which no Playwright `testMatch` picks up) AND
25
+ its own `playwright.config.ts` (`testDir: '.'`, `testMatch: 'capture.spec.ts'`): the bundle lives outside the
26
+ project's `testDir`, so even a correctly named spec gave "No tests found" with the project config.
27
+ - The run command is `DyE2E_VQA_ReviewBundle_Generator.captureCommand(bundlePath)` —
28
+ `VQA_OUT_DIR="<bundle>" npx playwright test --config "<bundle>/playwright.config.ts"`; `dye2e generate-review-bundle`
29
+ prints exactly this. Proven by a spec that runs `playwright test --config … --list` on a generated bundle
30
+ (4 tests discovered) and by running the CLI's printed command.
31
+ - The generated spec imports from `@futdevpro/dynamo-e2e` (root) instead of the `/vqa` subpath, so it resolves under
32
+ `moduleResolution: node` as well; a spec compiles the generated files with `strict` + `moduleResolution: node`.
33
+ - Docs: `vqa-announcement.md` and `vqa-cicd-step-template.md` use the new command (the template's `VQA_OUT_DIR` now
34
+ points at the bundle itself, so the artifacts land where `verifyBundleArtifacts` looks).
35
+
36
+ ## [01.18.19] — 2026-09-25 — Journey context + cleanup registry (BFR-FSMED-007)
37
+
38
+ - Added `DyE2E_JourneyContext<TState>` to `/runtime`: typed state handoff between journey steps (`step(name, fn)` merges
39
+ the returned patch; `handoff(patch)`; `require(key)` fails with the key and the completed steps named instead of
40
+ calling an API with `undefined`) and a cleanup registry (`registerCleanup(label, fn)` → `runCleanup()`: LIFO, every
41
+ cleanup isolated, idempotent, and it THROWS naming the leaked labels when any cleanup failed — a leaked entity is a
42
+ red journey, never a silent one). A failed step is recorded and later steps refuse to run; the cleanups still run.
43
+ - `DyE2E_useJourney(test, { name, initialState })`: serial mode + `afterAll → runCleanup()` for a Playwright
44
+ `describe`. The cleanup runs after the test-scoped fixtures are disposed — it must use its own client.
45
+
46
+ ## [01.18.18] — 2026-09-25 — Capability-scoped global setup (BFR-FSMED-017)
47
+
48
+ - `DyE2E_getGlobalSetup` new options: `failOnMissingEnv` (the missing `requiredEnvVars` become FATAL, named in the
49
+ error, the probe does not even start — for auth / user-lifecycle suites; default stays warn-only) and
50
+ `reachabilityPath` (probe a documented endpoint, e.g. `api/health`, resolved under the base URL incl. its path
51
+ prefix; default is still the root). Any HTTP answer still counts as reachable.
52
+ - A failed probe now names the probed URL, the timeout and the network cause (`err.cause.code` / message — the
53
+ bare `fetch failed` hid `ECONNREFUSED` / `ENOTFOUND` / TLS), and a timeout is reported as a timeout.
54
+ Exported helpers: `DyE2E_resolveReachabilityUrl`, `DyE2E_describeProbeFailure`.
55
+ - ⚠️ **01.18.17 was never published:** its release commit bumped `package.json` but not `DYE2E_PACKAGE_VERSION`, so the
56
+ CI version-stamp spec failed (1/478) before `npm-publish`. Its content (BFR-OVERSEER-014 preset options:
57
+ `ciTimeoutFactor`, `maxFailuresInCi`, `DyE2E_ciTimeout`) ships in this release.
58
+
6
59
  ## [01.18.16] — 2026-09-24 — Login-flow notification sweep
7
60
 
8
61
  - Added `DyE2E_NotificationSweep_Util` to `/runtime` and the `dye2e notification-sweep` command (BFR-QA-002): on top of
package/README.md CHANGED
@@ -74,6 +74,23 @@ const specSource = DyE2E_FormSuite_Generator.emit({
74
74
  - `@futdevpro/dynamo-e2e/game` — capability-gated deterministic game seam, failure artifacts and bidirectional journey-catalog validation
75
75
  - `@futdevpro/dynamo-e2e/cwv` — Core Web Vitals (Wave-3)
76
76
 
77
+ ## Playwright preset — CI timeouts and the failure budget
78
+
79
+ ```ts
80
+ import { DyE2E_getPlaywrightConfig, DyE2E_ciTimeout } from '@futdevpro/dynamo-e2e/presets';
81
+
82
+ export default DyE2E_getPlaywrightConfig({
83
+ defaultBaseUrl: 'https://test.example.hu',
84
+ ciTimeoutFactor: 3, // CI only: timeout / expectTimeout / actionTimeout / navigationTimeout × 3 (default 1)
85
+ maxFailuresInCi: 1, // CI only: stop after the first failure (default: unset = unchanged)
86
+ });
87
+ ```
88
+
89
+ > ⚠️ **A call-site `{ timeout }` overrides the config.** `expect(x).toBeVisible({ timeout: 15_000 })` ignores the preset's
90
+ > `expect.timeout` (and its `ciTimeoutFactor`). Scale those values with `DyE2E_ciTimeout(15_000)` — unchanged locally,
91
+ > × `E2E_CI_TIMEOUT_FACTOR` (or 3) under `CI`. Measured: a shared CI runner was 2.3–4.7× slower than a local machine,
92
+ > and a smoke suite with hard-coded call-site timeouts stayed red for months while its config "looked right".
93
+
77
94
  ## Live notification detector (`/runtime`)
78
95
 
79
96
  Records every user-visible notification — DyNX `dynamo-notification-card` / `dynamo-notifications-area`, mat-snackbar
package/bin/dye2e.js CHANGED
@@ -354,7 +354,7 @@ function main() {
354
354
  process.stdout.write(' runId: ' + result.runId + '\n');
355
355
  process.stdout.write(' files: ' + result.files.length + '\n');
356
356
  process.stdout.write('\n next: cd to the project + run\n');
357
- process.stdout.write(' VQA_OUT_DIR=' + result.bundlePath + ' npx playwright test ' + path.join(result.bundlePath, 'capture-spec.ts') + '\n');
357
+ process.stdout.write(' ' + DyE2E_VQA_ReviewBundle_Generator.captureCommand(result.bundlePath) + '\n');
358
358
  process.exit(0);
359
359
  }
360
360
 
@@ -437,6 +437,41 @@ function main() {
437
437
  process.exit(0);
438
438
  }
439
439
 
440
+ if (parsed.command === 'verify-review-bundle') {
441
+ // BFR-FSMED-015 (3. resz) — aggregate release gate: exit 0 = pass, 1 = fail, 2 = usage / unknown category
442
+ const { DyE2E_VQA_ReviewGate_Util } = require('../build/_modules/vqa/_collections/utils/review-gate.util');
443
+ const bundleP = parsed.flags.bundle;
444
+ if (!bundleP) {
445
+ process.stderr.write('[dye2e] error: --bundle <path> required\n');
446
+ process.exit(2);
447
+ }
448
+ let failOn;
449
+ try {
450
+ failOn = DyE2E_VQA_ReviewGate_Util.parseFailOn(parsed.flags['fail-on']);
451
+ } catch (e) {
452
+ process.stderr.write('[dye2e] error: ' + e.message + '\n');
453
+ process.exit(2);
454
+ }
455
+ const report = DyE2E_VQA_ReviewGate_Util.verify({
456
+ bundlePath: path.resolve(process.cwd(), bundleP),
457
+ findingsPath: parsed.flags.findings ? path.resolve(process.cwd(), parsed.flags.findings) : undefined,
458
+ humanReviewPath: parsed.flags['human-review'] ? path.resolve(process.cwd(), parsed.flags['human-review']) : undefined,
459
+ failOn: failOn,
460
+ });
461
+ if (parsed.flags.report) {
462
+ const reportPath = path.resolve(process.cwd(), parsed.flags.report);
463
+ fs.mkdirSync(path.dirname(reportPath), { recursive: true });
464
+ fs.writeFileSync(reportPath, JSON.stringify(report, null, 2));
465
+ }
466
+ process.stdout.write((report.verdict === 'pass' ? '✓' : '✗') + ' review gate: ' + report.verdict.toUpperCase() +
467
+ ' (' + report.featureId + ', ' + report.findingsTotal + ' findings, fail-on: ' + report.failOn.join(',') + ')\n');
468
+ for (const issue of report.issues) {
469
+ process.stdout.write(' ' + (issue.blocking ? '✗' : '·') + ' ' + issue.code + (issue.ref ? ' [' + issue.ref + ']' : '') +
470
+ ' — ' + issue.message + '\n');
471
+ }
472
+ process.exit(report.verdict === 'pass' ? 0 : 1);
473
+ }
474
+
440
475
  process.stderr.write(`[dye2e] unknown command: ${parsed.command}\n`);
441
476
  process.stderr.write(DyE2E_CliRunner_Util.helpText());
442
477
  process.exit(2);
@@ -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;IAyGzB;;;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"}
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;IAiHzB;;;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"}
@@ -57,9 +57,10 @@ Commands:
57
57
  Visual QA (/vqa) commands:
58
58
  validate-manifest Validate a VQA state-manifest JSON
59
59
  validate-finding Validate a VQA finding JSON
60
- generate-review-bundle Manifest -> review bundle (capture-spec, README, summary)
60
+ generate-review-bundle Manifest -> review bundle (capture.spec.ts + its playwright.config.ts, README, summary)
61
61
  generate-comparison-bundle Before/after capture sets -> comparison bundle
62
62
  bundle-summary Print an existing bundle's summary.md
63
+ verify-review-bundle Aggregate release gate: evidence + findings + human review -> pass / fail + JSON
63
64
 
64
65
  QA commands:
65
66
  notification-sweep Login pages -> wrong-password submit -> notification / banner / leak matrix
@@ -98,6 +99,13 @@ Flags (generate-comparison-bundle):
98
99
  Flags (bundle-summary):
99
100
  --bundle <path> Bundle dir containing manifest.json + summary.md
100
101
 
102
+ Flags (verify-review-bundle):
103
+ --bundle <path> Review bundle dir (required)
104
+ --findings <path> Finding-set JSON (default: <bundle>/findings/findings.json)
105
+ --human-review <path> { reviewer, reviewedAt, verdict } (default: <bundle>/human-review.json)
106
+ --report <path> Write the JSON gate report here
107
+ --fail-on <a,b> missing,orphan,invalid,blocker,high,human-review (default: all)
108
+
101
109
  Flags (generate-form-suite):
102
110
  --config <path> Path to JSON config (formSettings, formRoute, ...)
103
111
  --out <path> Output spec.ts path
@@ -1 +1 @@
1
- {"version":3,"file":"cli-runner.util.js","sourceRoot":"","sources":["../../../../src/_modules/generators/_collections/cli-runner.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-runner.util.js","sourceRoot":"","sources":["../../../../src/_modules/generators/_collections/cli-runner.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * BFR-OVERSEER-014 — a HÍVÁS-HELYI timeout CI-skálázása.
3
+ *
4
+ * A Playwright-ban a hívás-helyi `{ timeout }` felülírja a config `expect.timeout`-ját — ezért a preset
5
+ * `ciTimeoutFactor`-a oda NEM ér el. Mérve (overseer, FR-485): a specek hard-kódolt 12–30 s-os konstansokat adtak át, a
6
+ * megosztott CI-runner 2,3–4,7× lassabb volt ⇒ a smoke hónapokig piros. Ez a segéd egy helyre hozza a három projekt
7
+ * saját megoldását.
8
+ *
9
+ * @param baseMs a terheletlen (lokális) gépre kalibrált érték
10
+ * @param factor a CI-szorzó; default: az `E2E_CI_TIMEOUT_FACTOR` env (ha pozitív szám), különben `3`
11
+ * @returns CI-ben `baseMs × factor`, lokálisan változatlanul `baseMs`
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * await expect(page.getByTestId('job-card')).toBeVisible({ timeout: DyE2E_ciTimeout(15_000) });
16
+ * ```
17
+ */
18
+ export declare function DyE2E_ciTimeout(baseMs: number, factor?: number): number;
19
+ /** A `DyE2E_ciTimeout` alapértelmezett CI-szorzója (a mért 2,3–4,7× lassulás felső sávja alá, kerekítve). */
20
+ export declare const DYE2E_DEFAULT_CI_TIMEOUT_FACTOR: number;
21
+ //# sourceMappingURL=ci-timeout.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-timeout.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/ci-timeout.util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAUvE;AAED,6GAA6G;AAC7G,eAAO,MAAM,+BAA+B,EAAE,MAAU,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DYE2E_DEFAULT_CI_TIMEOUT_FACTOR = void 0;
4
+ exports.DyE2E_ciTimeout = DyE2E_ciTimeout;
5
+ /**
6
+ * BFR-OVERSEER-014 — a HÍVÁS-HELYI timeout CI-skálázása.
7
+ *
8
+ * A Playwright-ban a hívás-helyi `{ timeout }` felülírja a config `expect.timeout`-ját — ezért a preset
9
+ * `ciTimeoutFactor`-a oda NEM ér el. Mérve (overseer, FR-485): a specek hard-kódolt 12–30 s-os konstansokat adtak át, a
10
+ * megosztott CI-runner 2,3–4,7× lassabb volt ⇒ a smoke hónapokig piros. Ez a segéd egy helyre hozza a három projekt
11
+ * saját megoldását.
12
+ *
13
+ * @param baseMs a terheletlen (lokális) gépre kalibrált érték
14
+ * @param factor a CI-szorzó; default: az `E2E_CI_TIMEOUT_FACTOR` env (ha pozitív szám), különben `3`
15
+ * @returns CI-ben `baseMs × factor`, lokálisan változatlanul `baseMs`
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * await expect(page.getByTestId('job-card')).toBeVisible({ timeout: DyE2E_ciTimeout(15_000) });
20
+ * ```
21
+ */
22
+ function DyE2E_ciTimeout(baseMs, factor) {
23
+ if (!process.env.CI) {
24
+ return baseMs;
25
+ }
26
+ const envFactor = Number(process.env.E2E_CI_TIMEOUT_FACTOR);
27
+ const effective = factor !== undefined && factor > 0
28
+ ? factor
29
+ : (Number.isFinite(envFactor) && envFactor > 0 ? envFactor : exports.DYE2E_DEFAULT_CI_TIMEOUT_FACTOR);
30
+ return Math.round(baseMs * effective);
31
+ }
32
+ /** A `DyE2E_ciTimeout` alapértelmezett CI-szorzója (a mért 2,3–4,7× lassulás felső sávja alá, kerekítve). */
33
+ exports.DYE2E_DEFAULT_CI_TIMEOUT_FACTOR = 3;
34
+ //# sourceMappingURL=ci-timeout.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-timeout.util.js","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/ci-timeout.util.ts"],"names":[],"mappings":";;;AAiBA,0CAUC;AA3BD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,eAAe,CAAC,MAAc,EAAE,MAAe;IAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,SAAS,GAAW,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpE,MAAM,SAAS,GAAW,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uCAA+B,CAAC,CAAC;IAEhG,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,6GAA6G;AAChG,QAAA,+BAA+B,GAAW,CAAC,CAAC"}
@@ -1,5 +1,16 @@
1
1
  import type { FullConfig } from '@playwright/test';
2
2
  import { DyE2E_GlobalSetup_Options } from '../_models/interfaces/global-setup-options.interface';
3
+ /**
4
+ * BFR-FSMED-017 — the probed URL: `reachabilityPath` resolved against the base URL (a documented health endpoint),
5
+ * or the base URL itself (root HTML) when no path is given.
6
+ */
7
+ export declare function DyE2E_resolveReachabilityUrl(baseUrl: string, reachabilityPath?: string): string;
8
+ /**
9
+ * BFR-FSMED-017 — the network-level cause of a failed probe, for the error message: the undici `fetch` hides the
10
+ * real reason (`ECONNREFUSED`, `ENOTFOUND`, a TLS error, an IPv6-only `localhost` answer) in `err.cause`, and the
11
+ * bare "fetch failed" sends the reader after the wrong problem.
12
+ */
13
+ export declare function DyE2E_describeProbeFailure(err: unknown, timedOut: boolean): string;
3
14
  /**
4
15
  * `DyE2E_getGlobalSetup` — a flotta e2e-global-setup.ts-einek közös magja:
5
16
  * dotenv-load + kötelező-env warn + baseURL-reachability + opcionális login-once hook.
@@ -1 +1 @@
1
- {"version":3,"file":"global-setup.factory.d.ts","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/global-setup.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA2B,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAKlF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AA0DjG;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,yBAAyB,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAyB3G"}
1
+ {"version":3,"file":"global-setup.factory.d.ts","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/global-setup.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA2B,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAKlF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AAKjG;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAS/F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAclF;AAiED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,yBAAyB,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAgC3G"}
@@ -23,6 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DyE2E_resolveReachabilityUrl = DyE2E_resolveReachabilityUrl;
27
+ exports.DyE2E_describeProbeFailure = DyE2E_describeProbeFailure;
26
28
  exports.DyE2E_getGlobalSetup = DyE2E_getGlobalSetup;
27
29
  const test_1 = require("@playwright/test");
28
30
  const dotenv = __importStar(require("dotenv"));
@@ -30,24 +32,62 @@ const fs = __importStar(require("fs"));
30
32
  const path = __importStar(require("path"));
31
33
  /** Üres Playwright storageState — nincs cookie / origin (= unauthenticated fallback). */
32
34
  const EMPTY_AUTH_STATE = { cookies: [], origins: [] };
35
+ /**
36
+ * BFR-FSMED-017 — the probed URL: `reachabilityPath` resolved against the base URL (a documented health endpoint),
37
+ * or the base URL itself (root HTML) when no path is given.
38
+ */
39
+ function DyE2E_resolveReachabilityUrl(baseUrl, reachabilityPath) {
40
+ if (!reachabilityPath) {
41
+ return baseUrl;
42
+ }
43
+ // Relative to the base URL's ORIGIN + path prefix: 'api/health' and '/api/health' both land under the base
44
+ const base = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`;
45
+ return new URL(reachabilityPath.replace(/^\/+/, ''), base).toString();
46
+ }
47
+ /**
48
+ * BFR-FSMED-017 — the network-level cause of a failed probe, for the error message: the undici `fetch` hides the
49
+ * real reason (`ECONNREFUSED`, `ENOTFOUND`, a TLS error, an IPv6-only `localhost` answer) in `err.cause`, and the
50
+ * bare "fetch failed" sends the reader after the wrong problem.
51
+ */
52
+ function DyE2E_describeProbeFailure(err, timedOut) {
53
+ if (timedOut) {
54
+ return 'timeout (no answer)';
55
+ }
56
+ const error = (err && typeof err === 'object' ? err : {});
57
+ const parts = [
58
+ error.message || String(err),
59
+ error.cause?.code || '',
60
+ error.cause?.message || '',
61
+ ].filter((part, index, all) => !!part && all.indexOf(part) === index);
62
+ return parts.join(' — ');
63
+ }
33
64
  /**
34
65
  * baseURL elérhetőség-ellenőrzés AbortController + fetch timeout-tal.
35
66
  * Ha a target nem él, egyértelmű hibával állunk le (ne 60 spec bukjon obscure timeout-tal).
67
+ * Bármilyen HTTP-válasz (akár 4xx/5xx) = a szerver él; csak a network-error / timeout számít bukásnak.
68
+ * A hiba megnevezi a MÉRT URL-t és a hálózati okot (BFR-FSMED-017: a puszta „nem elérhető" rossz nyomra vitt).
36
69
  */
37
- async function checkBaseUrlReachable(baseUrl, timeoutMs) {
70
+ async function checkBaseUrlReachable(baseUrl, timeoutMs, reachabilityPath) {
71
+ const probeUrl = DyE2E_resolveReachabilityUrl(baseUrl, reachabilityPath);
38
72
  const controller = new AbortController();
39
- const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
73
+ let timedOut = false;
74
+ const timeoutId = setTimeout(() => {
75
+ timedOut = true;
76
+ controller.abort();
77
+ }, timeoutMs);
78
+ let cause;
40
79
  try {
41
- // Bármilyen HTTP-válasz (akár 4xx/5xx) = a szerver él; csak a network-error számít bukásnak
42
- await fetch(baseUrl, { method: 'GET', signal: controller.signal });
80
+ await fetch(probeUrl, { method: 'GET', signal: controller.signal });
43
81
  clearTimeout(timeoutId);
44
82
  return;
45
83
  }
46
- catch {
84
+ catch (err) {
47
85
  clearTimeout(timeoutId);
86
+ cause = DyE2E_describeProbeFailure(err, timedOut);
48
87
  }
49
- throw new Error(`[E2E] E2E_BASE_URL (${baseUrl}) nem elérhető. ` +
50
- 'Indítsd el a target környezetet (vagy állítsd az E2E_BASE_URL-t), majd futtasd újra az E2E teszteket.');
88
+ throw new Error(`[E2E] E2E_BASE_URL (${baseUrl}) nem elérhető — probe: GET ${probeUrl} (${timeoutMs} ms) → ${cause}. ` +
89
+ 'Indítsd el a target környezetet (vagy állítsd az E2E_BASE_URL-t / a reachabilityPath-t), majd futtasd újra. ' +
90
+ 'Tipp: ha a böngészőben él, de itt nem, a `localhost` IPv4/IPv6 feloldása eltérhet — próbáld `127.0.0.1`-gyel.');
51
91
  }
52
92
  /**
53
93
  * Login-once + storageState mentés (C513 minta): a consumer login-hook-ja viszi végig a
@@ -92,14 +132,19 @@ function DyE2E_getGlobalSetup(opts) {
92
132
  return async (_config) => {
93
133
  // dotenv-load a hívó e2e-mappájából (a config-oldali load-dal idempotens)
94
134
  dotenv.config({ path: path.join(opts.envDir || process.cwd(), '.env') });
95
- // Kötelező env-változók — hiány esetén CSAK warn (a spec-ek fallback-elhetnek)
135
+ // Kötelező env-változók — default: CSAK warn (a spec-ek fallback-elhetnek);
136
+ // `failOnMissingEnv` (BFR-FSMED-017): fail-closed, a hiányzó NEVEKKEL (érték soha nem kerül a hibába)
96
137
  const missing = (opts.requiredEnvVars || []).filter((name) => !process.env[name]);
138
+ if (missing.length && opts.failOnMissingEnv) {
139
+ throw new Error(`[E2E] Global setup: hiányzó kötelező env: ${missing.join(', ')}. ` +
140
+ 'Ez a suite ezeket igényli — töltsd ki a .env-et (.env.example minta), vagy futtass kisebb profilt.');
141
+ }
97
142
  if (missing.length) {
98
143
  console.warn(`[E2E] Global setup: hiányzó env: ${missing.join(', ')}. Töltsd ki a .env-et (.env.example minta).`);
99
144
  }
100
145
  // baseURL-reachability — fail-fast ha a target nem él
101
146
  const baseUrl = process.env.E2E_BASE_URL || opts.defaultBaseUrl;
102
- await checkBaseUrlReachable(baseUrl, opts.reachabilityTimeoutMs ?? 5_000);
147
+ await checkBaseUrlReachable(baseUrl, opts.reachabilityTimeoutMs ?? 5_000, opts.reachabilityPath);
103
148
  if (opts.login) {
104
149
  // Login-once + storageState (C513 minta)
105
150
  await runLoginHook(opts, baseUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"global-setup.factory.js","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/global-setup.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-setup.factory.js","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/global-setup.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAeA,oEASC;AAOD,gEAcC;AA2ED,oDAgCC;AAxJD,2CAA4C;AAE5C,+CAAiC;AACjC,uCAAyB;AACzB,2CAA6B;AAI7B,yFAAyF;AACzF,MAAM,gBAAgB,GAA+C,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAElG;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,OAAe,EAAE,gBAAyB;IACrF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2GAA2G;IAC3G,MAAM,IAAI,GAAW,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;IAErE,OAAO,IAAI,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,GAAY,EAAE,QAAiB;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GACT,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAsE,CAAC;IACnH,MAAM,KAAK,GAAa;QACtB,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;QAC5B,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE;QACvB,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE;KAC3B,CAAC,MAAM,CAAC,CAAC,IAAY,EAAE,KAAa,EAAE,GAAa,EAAW,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IAEzG,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,qBAAqB,CAAC,OAAe,EAAE,SAAiB,EAAE,gBAAyB;IAChG,MAAM,QAAQ,GAAW,4BAA4B,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACjF,MAAM,UAAU,GAAoB,IAAI,eAAe,EAAE,CAAC;IAC1D,IAAI,QAAQ,GAAY,KAAK,CAAC;IAC9B,MAAM,SAAS,GAAmB,UAAU,CAAC,GAAS,EAAE;QACtD,QAAQ,GAAG,IAAI,CAAC;QAChB,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC,EAAE,SAAS,CAAC,CAAC;IACd,IAAI,KAAa,CAAC;IAElB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,OAAO;IACT,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,uBAAuB,OAAO,+BAA+B,QAAQ,KAAK,SAAS,UAAU,KAAK,IAAI;QACtG,8GAA8G;QAC9G,+GAA+G,CAChH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,YAAY,CAAC,IAA+B,EAAE,OAAe;IAC1E,MAAM,OAAO,GAAY,MAAM,eAAQ,CAAC,MAAM,EAAE,CAAC;IACjD,MAAM,OAAO,GAAmB,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACxG,MAAM,IAAI,GAAS,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,2FAA2F;QAC3F,MAAM,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CACV,+CAA+C,MAAM,IAAI;YACzD,qEAAqE,CACtE,CAAC;QACF,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,oBAAoB,CAAC,IAA+B;IAClE,OAAO,KAAK,EAAE,OAAmB,EAAiB,EAAE;QAClD,0EAA0E;QAC1E,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEzE,4EAA4E;QAC5E,sGAAsG;QACtG,MAAM,OAAO,GAAa,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7G,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,6CAA6C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACnE,oGAAoG,CACrG,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CACV,oCAAoC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,6CAA6C,CACpG,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAW,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC;QACxE,MAAM,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,IAAI,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEjG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,yCAAyC;YACzC,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjC,kFAAkF;YAClF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-config.factory.d.ts","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/playwright-config.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAG3G;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,8BAA8B,GAAG,oBAAoB,CAsGpG"}
1
+ {"version":3,"file":"playwright-config.factory.d.ts","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/playwright-config.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAG3G;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,8BAA8B,GAAG,oBAAoB,CA4GpG"}
@@ -92,6 +92,9 @@ function DyE2E_getPlaywrightConfig(opts) {
92
92
  })),
93
93
  ];
94
94
  }
95
+ // BFR-OVERSEER-014: CI-ben a preset timeoutjai a `ciTimeoutFactor`-ral szorzódnak (default 1 = változatlan)
96
+ const factor = process.env.CI && opts.ciTimeoutFactor && opts.ciTimeoutFactor > 0 ? opts.ciTimeoutFactor : 1;
97
+ const scaled = (ms) => Math.round(ms * factor);
95
98
  // A közös config-mag — a flotta-configok metszete + opcionális override-ok
96
99
  return (0, test_1.defineConfig)({
97
100
  testDir: opts.testDir || './tests',
@@ -99,15 +102,17 @@ function DyE2E_getPlaywrightConfig(opts) {
99
102
  ...(opts.testIgnore !== undefined ? { testIgnore: opts.testIgnore } : {}),
100
103
  // globalSetup csak ha a consumer adott path-t (require.resolve-olt abszolút path)
101
104
  ...(opts.globalSetupPath ? { globalSetup: opts.globalSetupPath } : {}),
102
- timeout: opts.timeout ?? 60_000,
105
+ timeout: scaled(opts.timeout ?? 60_000),
103
106
  expect: {
104
- timeout: opts.expectTimeout ?? 10_000,
107
+ timeout: scaled(opts.expectTimeout ?? 10_000),
105
108
  },
106
109
  fullyParallel: opts.fullyParallel ?? false,
107
110
  // CI-ben tilos a .only (véletlen szűkített suite = fals zöld)
108
111
  forbidOnly: !!process.env.CI,
109
112
  // Retry CSAK CI-ben (load-flake tolerancia); lokálban a flake jel, nem zaj
110
113
  retries: process.env.CI ? (opts.retriesInCi ?? 0) : 0,
114
+ // BFR-OVERSEER-014: CSAK ha a consumer kérte, és CSAK CI-ben — különben a kulcs nincs a configban (mai viselkedés)
115
+ ...(process.env.CI && opts.maxFailuresInCi !== undefined ? { maxFailures: opts.maxFailuresInCi } : {}),
111
116
  workers: workers,
112
117
  reporter: [
113
118
  ['html'],
@@ -121,8 +126,8 @@ function DyE2E_getPlaywrightConfig(opts) {
121
126
  // kiadott click/fill a nema "Test timeout of 180000ms exceeded"-ig var, a valodi ok (melyik
122
127
  // elem, miert nem kattinthato) nelkul. A default akcio-korlat a passzolo teszteken semmit nem
123
128
  // valtoztat — az akado akcio viszont sajat, beszedes hibaval bukik. Projekt-feluliras: opts.
124
- actionTimeout: opts.actionTimeout ?? 15_000,
125
- navigationTimeout: opts.navigationTimeout ?? 30_000,
129
+ actionTimeout: scaled(opts.actionTimeout ?? 15_000),
130
+ navigationTimeout: scaled(opts.navigationTimeout ?? 30_000),
126
131
  screenshot: 'only-on-failure',
127
132
  trace: 'retain-on-failure',
128
133
  video: 'retain-on-failure',
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-config.factory.js","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/playwright-config.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright-config.factory.js","sourceRoot":"","sources":["../../../../src/_modules/presets/_collections/playwright-config.factory.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,18 @@ export interface DyE2E_GlobalSetup_Options {
10
10
  envDir?: string;
11
11
  /** Kötelező env-változó nevek — hiány esetén warn (NEM fatális; a spec-ek fallback-elhetnek). */
12
12
  requiredEnvVars?: string[];
13
+ /**
14
+ * BFR-FSMED-017: `true` → a hiányzó `requiredEnvVars` FATÁLIS (fail-closed, a hiányzó nevekkel) — auth /
15
+ * user-lifecycle suite-okhoz. Default: `false` (csak warn — backward-compat).
16
+ */
17
+ failOnMissingEnv?: boolean;
13
18
  /** baseURL-reachability-check timeout ms-ben (AbortController + fetch). Default: `5_000`. */
14
19
  reachabilityTimeoutMs?: number;
20
+ /**
21
+ * BFR-FSMED-017: a reachability-probe útvonala a baseURL-hez képest (pl. `api/health` — egy dokumentált
22
+ * endpoint). Default: maga a baseURL (root HTML). Bármilyen HTTP-válasz = él; csak a hálózati hiba / timeout bukik.
23
+ */
24
+ reachabilityPath?: string;
15
25
  /**
16
26
  * Opcionális login-once hook (C513 storageState-reuse minta): a factory nyit egy
17
27
  * chromium page-et és ezt hívja; a hook felelős a login-flow végigviteléért.
@@ -1 +1 @@
1
- {"version":3,"file":"global-setup-options.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/presets/_models/interfaces/global-setup-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,kGAAkG;IAClG,cAAc,EAAE,MAAM,CAAC;IACvB,kHAAkH;IAClH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,6FAA6F;IAC7F,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"global-setup-options.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/presets/_models/interfaces/global-setup-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,kGAAkG;IAClG,cAAc,EAAE,MAAM,CAAC;IACvB,kHAAkH;IAClH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6FAA6F;IAC7F,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -36,8 +36,27 @@ export interface DyE2E_PlaywrightConfig_Options {
36
36
  retriesInCi?: number;
37
37
  /** Per-test timeout ms-ben. Default: `60_000`. */
38
38
  timeout?: number;
39
- /** expect() timeout ms-ben. Default: `10_000`. */
39
+ /**
40
+ * expect() timeout ms-ben. Default: `10_000`.
41
+ *
42
+ * ⚠️ BFR-OVERSEER-014: a HÍVÁS-HELYI `{ timeout }` FELÜLÍRJA ezt — ha a specek explicit timeoutot adnak át
43
+ * (`expect(x).toBeVisible({ timeout: 15_000 })`), ez az érték NEM hat. Mérve: az overseer 17 spece mindegyiket
44
+ * átadta, a config „olvasva helyesnek látszott", az e2e-smoke hónapokig piros volt. A hívás-helyi értéket a
45
+ * `DyE2E_ciTimeout(baseMs)` skálázza CI-ben.
46
+ */
40
47
  expectTimeout?: number;
48
+ /**
49
+ * BFR-OVERSEER-014: CI-ben (`process.env.CI`) ennyi hiba után leáll a futás (Playwright `maxFailures`). Default:
50
+ * nincs beállítva (= a mai viselkedés). ⚠️ Indok: `SIGKILL`-nél az összegző NEM fut le, a hiba-törzsek csak ott
51
+ * íródnak ki ⇒ egy korlát nélkül időtúllépésig futó suite logja ELVBŐL nem mondja meg, miért bukott.
52
+ */
53
+ maxFailuresInCi?: number;
54
+ /**
55
+ * BFR-OVERSEER-014: CI-ben a preset ÖSSZES timeoutja (`timeout`, `expectTimeout`, `actionTimeout`,
56
+ * `navigationTimeout`) ezzel szorzódik. Default: `1` (= a mai viselkedés). Mérve: a megosztott runner 2,3–4,7×
57
+ * lassabb egy terheletlen gépnél. ⚠️ A hívás-helyi `{ timeout }`-ra NEM hat — oda `DyE2E_ciTimeout`.
58
+ */
59
+ ciTimeoutFactor?: number;
41
60
  /** BFR-OV-030: akcio-szintu timeout (default 15000 ms) — az akado click/fill BESZEDES hibaval bukjon, ne nema test-timeouttal. */
42
61
  actionTimeout?: number;
43
62
  /** BFR-OV-030: navigacios timeout (default 30000 ms) — ugyanazon okbol. */
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-config-options.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/presets/_models/interfaces/playwright-config-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE3G;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,wBAAwB,EAAE,CAAC;AAExG;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,kHAAkH;IAClH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,oGAAoG;IACpG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8GAA8G;IAC9G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kIAAkI;IAClI,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACvC,wGAAwG;IACxG,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,0BAA0B,CAAC;CAC3C"}
1
+ {"version":3,"file":"playwright-config-options.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/presets/_models/interfaces/playwright-config-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AACpG,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE3G;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,wBAAwB,EAAE,CAAC;AAExG;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,kHAAkH;IAClH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,oGAAoG;IACpG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8GAA8G;IAC9G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kIAAkI;IAClI,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACvC,wGAAwG;IACxG,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,0BAA0B,CAAC;CAC3C"}
@@ -10,7 +10,8 @@
10
10
  export { DyE2E_FormSuite_Generator } from '../generators/form-suite.generator';
11
11
  export type { DyE2E_FormSuiteGenerate_Options } from '../generators/_models/form-suite-generate-options.interface';
12
12
  export { DyE2E_getPlaywrightConfig } from './_collections/playwright-config.factory';
13
- export { DyE2E_getGlobalSetup } from './_collections/global-setup.factory';
13
+ export { DyE2E_ciTimeout, DYE2E_DEFAULT_CI_TIMEOUT_FACTOR } from './_collections/ci-timeout.util';
14
+ export { DyE2E_describeProbeFailure, DyE2E_getGlobalSetup, DyE2E_resolveReachabilityUrl, } from './_collections/global-setup.factory';
14
15
  export { DyE2E_resolveViewportPreset } from './_collections/viewport-preset-resolver.util';
15
16
  export { DYE2E_VIEWPORTS_VISUAL8, DYE2E_VIEWPORTS_NAMED4, DYE2E_VIEWPORTS_SINGLE, } from './_collections/constants/playwright-viewport-presets.const';
16
17
  export type { DyE2E_PlaywrightConfig_Options, DyE2E_ViewportsOption_Type, } from './_models/interfaces/playwright-config-options.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/presets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,YAAY,EAAE,+BAA+B,EAAE,MAAM,6DAA6D,CAAC;AAGnH,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4DAA4D,CAAC;AACpE,YAAY,EACV,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,0DAA0D,CAAC;AAClE,YAAY,EACV,0BAA0B,EAC1B,oCAAoC,EACpC,0BAA0B,GAC3B,MAAM,sDAAsD,CAAC;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAErG,iEAAiE;AACjE,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAAqD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/presets/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,YAAY,EAAE,+BAA+B,EAAE,MAAM,6DAA6D,CAAC;AAGnH,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4DAA4D,CAAC;AACpE,YAAY,EACV,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,0DAA0D,CAAC;AAClE,YAAY,EACV,0BAA0B,EAC1B,oCAAoC,EACpC,0BAA0B,GAC3B,MAAM,sDAAsD,CAAC;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,qDAAqD,CAAC;AAErG,iEAAiE;AACjE,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAAqD,CAAC"}
@@ -9,14 +9,19 @@
9
9
  * Wave-1 MVP: vékony re-export a `generators`-ből.
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DYE2E_PRESETS_NEXT_WAVES = exports.DYE2E_VIEWPORTS_SINGLE = exports.DYE2E_VIEWPORTS_NAMED4 = exports.DYE2E_VIEWPORTS_VISUAL8 = exports.DyE2E_resolveViewportPreset = exports.DyE2E_getGlobalSetup = exports.DyE2E_getPlaywrightConfig = exports.DyE2E_FormSuite_Generator = void 0;
12
+ exports.DYE2E_PRESETS_NEXT_WAVES = exports.DYE2E_VIEWPORTS_SINGLE = exports.DYE2E_VIEWPORTS_NAMED4 = exports.DYE2E_VIEWPORTS_VISUAL8 = exports.DyE2E_resolveViewportPreset = exports.DyE2E_resolveReachabilityUrl = exports.DyE2E_getGlobalSetup = exports.DyE2E_describeProbeFailure = exports.DYE2E_DEFAULT_CI_TIMEOUT_FACTOR = exports.DyE2E_ciTimeout = exports.DyE2E_getPlaywrightConfig = exports.DyE2E_FormSuite_Generator = void 0;
13
13
  var form_suite_generator_1 = require("../generators/form-suite.generator");
14
14
  Object.defineProperty(exports, "DyE2E_FormSuite_Generator", { enumerable: true, get: function () { return form_suite_generator_1.DyE2E_FormSuite_Generator; } });
15
15
  // Playwright-config preset (flotta e2e-config konszolidáció) — factory + global-setup + viewport-presetek
16
16
  var playwright_config_factory_1 = require("./_collections/playwright-config.factory");
17
17
  Object.defineProperty(exports, "DyE2E_getPlaywrightConfig", { enumerable: true, get: function () { return playwright_config_factory_1.DyE2E_getPlaywrightConfig; } });
18
+ var ci_timeout_util_1 = require("./_collections/ci-timeout.util");
19
+ Object.defineProperty(exports, "DyE2E_ciTimeout", { enumerable: true, get: function () { return ci_timeout_util_1.DyE2E_ciTimeout; } });
20
+ Object.defineProperty(exports, "DYE2E_DEFAULT_CI_TIMEOUT_FACTOR", { enumerable: true, get: function () { return ci_timeout_util_1.DYE2E_DEFAULT_CI_TIMEOUT_FACTOR; } });
18
21
  var global_setup_factory_1 = require("./_collections/global-setup.factory");
22
+ Object.defineProperty(exports, "DyE2E_describeProbeFailure", { enumerable: true, get: function () { return global_setup_factory_1.DyE2E_describeProbeFailure; } });
19
23
  Object.defineProperty(exports, "DyE2E_getGlobalSetup", { enumerable: true, get: function () { return global_setup_factory_1.DyE2E_getGlobalSetup; } });
24
+ Object.defineProperty(exports, "DyE2E_resolveReachabilityUrl", { enumerable: true, get: function () { return global_setup_factory_1.DyE2E_resolveReachabilityUrl; } });
20
25
  var viewport_preset_resolver_util_1 = require("./_collections/viewport-preset-resolver.util");
21
26
  Object.defineProperty(exports, "DyE2E_resolveViewportPreset", { enumerable: true, get: function () { return viewport_preset_resolver_util_1.DyE2E_resolveViewportPreset; } });
22
27
  var playwright_viewport_presets_const_1 = require("./_collections/constants/playwright-viewport-presets.const");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/presets/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,2EAA+E;AAAtE,iIAAA,yBAAyB,OAAA;AAGlC,0GAA0G;AAC1G,sFAAqF;AAA5E,sIAAA,yBAAyB,OAAA;AAClC,4EAA2E;AAAlE,4HAAA,oBAAoB,OAAA;AAC7B,8FAA2F;AAAlF,4IAAA,2BAA2B,OAAA;AACpC,gHAIoE;AAHlE,4IAAA,uBAAuB,OAAA;AACvB,2IAAA,sBAAsB,OAAA;AACtB,2IAAA,sBAAsB,OAAA;AAaxB,iEAAiE;AACpD,QAAA,wBAAwB,GAAa,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/presets/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,2EAA+E;AAAtE,iIAAA,yBAAyB,OAAA;AAGlC,0GAA0G;AAC1G,sFAAqF;AAA5E,sIAAA,yBAAyB,OAAA;AAClC,kEAAkG;AAAzF,kHAAA,eAAe,OAAA;AAAE,kIAAA,+BAA+B,OAAA;AACzD,4EAI6C;AAH3C,kIAAA,0BAA0B,OAAA;AAC1B,4HAAA,oBAAoB,OAAA;AACpB,oIAAA,4BAA4B,OAAA;AAE9B,8FAA2F;AAAlF,4IAAA,2BAA2B,OAAA;AACpC,gHAIoE;AAHlE,4IAAA,uBAAuB,OAAA;AACvB,2IAAA,sBAAsB,OAAA;AACtB,2IAAA,sBAAsB,OAAA;AAaxB,iEAAiE;AACpD,QAAA,wBAAwB,GAAa,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC"}