@futdevpro/dynamo-e2e 1.18.22 → 1.18.23

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 CHANGED
@@ -3,6 +3,20 @@
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.23] — 2026-09-25 — Game preset: page-side seam installer (BFR-WARFACTORY-008)
7
+
8
+ - Added `DyE2E_installGameSeam({ seam, capabilities, … })` (`/game`, browser-safe): host allow-list + explicit opt-in
9
+ guard, capability ⇄ method validation at install time, attach and ready event in the same tick ("attach = ready"),
10
+ stale-safe `uninstall()`. Before it every game had to hand-roll the guard and the ready event — and a seam without
11
+ the event is never seen by the event-driven `waitForSeam()`.
12
+ - `DyE2E_GameSeam_Helper`: `navigateAndWaitForSeam(url)`, `reloadAndWaitForSeam()`, `clickWorld(point, canvas)`
13
+ (canvas-relative CSS pixels, off-canvas point throws).
14
+ - Fixed: the default `::1` allow-list entry never matched (`new URL('http://[::1]/').hostname === '[::1]'`); hosts are
15
+ compared bracket-free (`DyE2E_normalizeGameSeamHost`), on both sides.
16
+ - The wire contract (`DYE2E_GAME_SEAM_DEFAULTS`, `DYE2E_GAME_CAPABILITY_METHODS`) now has one home, shared by both halves.
17
+ - Tests: 6 unit + 6 real-Chromium specs (the COMPILED installer loaded into the page through a two-module shim — any
18
+ other `require` throws, proving browser-safety); mutations 16/16 killed (incl. the no-window guard); suite 531/0 + 1.
19
+
6
20
  ## [01.18.22] — 2026-09-25 — Coverage catalog ↔ evidence validator (BFR-FSMED-006)
7
21
 
8
22
  - ⚠️ The first 01.18.22 CI run failed the COVERAGE gate (functions 61%, gate 75%) — not a test failure: the runnable-capture
@@ -0,0 +1,20 @@
1
+ import type { DyE2E_GameCapability_Type } from '../_models/game-contracts.interface';
2
+ /**
3
+ * BFR-WARFACTORY-008 — the ONE place of the game-seam wire contract, shared by the Playwright-side
4
+ * `DyE2E_GameSeam_Helper` and the page-side `DyE2E_installGameSeam` (browser-safe: type-only imports).
5
+ */
6
+ export declare const DYE2E_GAME_SEAM_DEFAULTS: {
7
+ readonly seamKey: string;
8
+ readonly readyEventName: string;
9
+ readonly optInStorageKey: string;
10
+ readonly optInQueryParam: string;
11
+ readonly allowedHosts: readonly string[];
12
+ };
13
+ /** The methods each capability promises — a declared capability without its methods is refused at install time. */
14
+ export declare const DYE2E_GAME_CAPABILITY_METHODS: Readonly<Record<DyE2E_GameCapability_Type, readonly string[]>>;
15
+ /**
16
+ * Host comparison form: lower-case, IPv6 brackets removed — `new URL('http://[::1]/').hostname` is `'[::1]'`, so a
17
+ * bare `'::1'` allow-list entry never matched before this normalisation.
18
+ */
19
+ export declare function DyE2E_normalizeGameSeamHost(host: string): string;
20
+ //# sourceMappingURL=game-seam.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-seam.const.d.ts","sourceRoot":"","sources":["../../../../src/_modules/game/_collections/game-seam.const.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAO1C,CAAC;AAEF,mHAAmH;AACnH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,yBAAyB,EAAE,SAAS,MAAM,EAAE,CAAC,CAMxG,CAAC;AAEF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DYE2E_GAME_CAPABILITY_METHODS = exports.DYE2E_GAME_SEAM_DEFAULTS = void 0;
4
+ exports.DyE2E_normalizeGameSeamHost = DyE2E_normalizeGameSeamHost;
5
+ /**
6
+ * BFR-WARFACTORY-008 — the ONE place of the game-seam wire contract, shared by the Playwright-side
7
+ * `DyE2E_GameSeam_Helper` and the page-side `DyE2E_installGameSeam` (browser-safe: type-only imports).
8
+ */
9
+ exports.DYE2E_GAME_SEAM_DEFAULTS = {
10
+ seamKey: '__dye2eGame',
11
+ readyEventName: 'dye2e:game-seam-ready',
12
+ optInStorageKey: 'dye2eGame',
13
+ optInQueryParam: 'dye2eGame',
14
+ allowedHosts: ['localhost', '127.0.0.1', '::1'],
15
+ };
16
+ /** The methods each capability promises — a declared capability without its methods is refused at install time. */
17
+ exports.DYE2E_GAME_CAPABILITY_METHODS = {
18
+ seed: ['installSeed', 'readSeed'],
19
+ state: ['exportState', 'importState'],
20
+ clock: ['advanceClock'],
21
+ canvas: ['worldToScreen'],
22
+ diagnostics: ['getSnapshot', 'getDiagnostics'],
23
+ };
24
+ /**
25
+ * Host comparison form: lower-case, IPv6 brackets removed — `new URL('http://[::1]/').hostname` is `'[::1]'`, so a
26
+ * bare `'::1'` allow-list entry never matched before this normalisation.
27
+ */
28
+ function DyE2E_normalizeGameSeamHost(host) {
29
+ return host.trim().toLowerCase().replace(/^\[(.*)\]$/, '$1');
30
+ }
31
+ //# sourceMappingURL=game-seam.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-seam.const.js","sourceRoot":"","sources":["../../../../src/_modules/game/_collections/game-seam.const.ts"],"names":[],"mappings":";;;AAiCA,kEAEC;AAjCD;;;GAGG;AACU,QAAA,wBAAwB,GAMjC;IACF,OAAO,EAAE,aAAa;IACtB,cAAc,EAAE,uBAAuB;IACvC,eAAe,EAAE,WAAW;IAC5B,eAAe,EAAE,WAAW;IAC5B,YAAY,EAAE,CAAE,WAAW,EAAE,WAAW,EAAE,KAAK,CAAE;CAClD,CAAC;AAEF,mHAAmH;AACtG,QAAA,6BAA6B,GAAmE;IAC3G,IAAI,EAAE,CAAE,aAAa,EAAE,UAAU,CAAE;IACnC,KAAK,EAAE,CAAE,aAAa,EAAE,aAAa,CAAE;IACvC,KAAK,EAAE,CAAE,cAAc,CAAE;IACzB,MAAM,EAAE,CAAE,eAAe,CAAE;IAC3B,WAAW,EAAE,CAAE,aAAa,EAAE,gBAAgB,CAAE;CACjD,CAAC;AAEF;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,IAAY;IACtD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Page } from '@playwright/test';
1
+ import type { Locator, Page } from '@playwright/test';
2
2
  import { DyE2E_GameCapability_Type, DyE2E_GameFailureArtifact_Interface, DyE2E_GamePoint_Interface, DyE2E_GameSeam_Options_Interface, DyE2E_GameVersionedState_Interface } from './_models/game-contracts.interface';
3
3
  /**
4
4
  * Capability-gated adapter for an explicitly enabled browser game test seam.
@@ -22,6 +22,15 @@ export declare class DyE2E_GameSeam_Helper<TSnapshot = unknown, TState extends D
22
22
  withOptIn(targetUrl: string): string;
23
23
  /** Wait for one readiness event, or return immediately if the seam is already installed. */
24
24
  waitForSeam(): Promise<void>;
25
+ /**
26
+ * Opt in, navigate and wait for the seam — the required order (opt-in BEFORE navigation) in one call.
27
+ */
28
+ navigateAndWaitForSeam(targetUrl: string): Promise<void>;
29
+ /**
30
+ * Reload and wait until the game re-attaches its seam. With `DyE2E_installGameSeam` attachment means "usable", so
31
+ * a test never reads the half-restored state of a reloading game (the `WF-J-007` race).
32
+ */
33
+ reloadAndWaitForSeam(): Promise<void>;
25
34
  capabilities(): Promise<readonly DyE2E_GameCapability_Type[]>;
26
35
  snapshot(): Promise<TSnapshot>;
27
36
  installSeed(seed: string | number): Promise<void>;
@@ -30,6 +39,11 @@ export declare class DyE2E_GameSeam_Helper<TSnapshot = unknown, TState extends D
30
39
  importState(state: TState): Promise<void>;
31
40
  advanceClock(deltaMs: number): Promise<void>;
32
41
  worldToScreen(point: DyE2E_GamePoint_Interface): Promise<DyE2E_GamePoint_Interface>;
42
+ /**
43
+ * Click a WORLD point on the game canvas. The seam's `worldToScreen` answers in CSS pixels relative to the canvas'
44
+ * top-left corner; a point outside the canvas throws instead of silently clicking whatever lies there.
45
+ */
46
+ clickWorld(point: DyE2E_GamePoint_Interface, canvas: Locator): Promise<DyE2E_GamePoint_Interface>;
33
47
  /** One browser round-trip containing the evidence needed to diagnose deterministic game failures. */
34
48
  captureFailureArtifact(): Promise<DyE2E_GameFailureArtifact_Interface<TSnapshot, TState>>;
35
49
  private assertAllowedHost;
@@ -1 +1 @@
1
- {"version":3,"file":"game-seam.helper.d.ts","sourceRoot":"","sources":["../../../src/_modules/game/game-seam.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACL,yBAAyB,EAEzB,mCAAmC,EACnC,yBAAyB,EACzB,gCAAgC,EAChC,kCAAkC,EACnC,MAAM,oCAAoC,CAAC;AAK5C;;;;;GAKG;AACH,qBAAa,qBAAqB,CAChC,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,kCAAkC,GAAG,kCAAkC;IAW1E,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;gBAE/C,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,gCAAqC;IAmBvF,kGAAkG;IAC5F,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D,gFAAgF;IAChF,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQpC,4FAA4F;IACtF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC5B,YAAY,IAAI,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC;IAqB7D,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAI9B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjD,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAUpC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAM9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C,aAAa,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAezF,qGAAqG;IAC/F,sBAAsB,IAAI,OAAO,CAAC,mCAAmC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAsC/F,OAAO,CAAC,iBAAiB;YAWX,mBAAmB;IAcjC,OAAO,CAAC,oBAAoB;YAYd,MAAM;CAyBrB"}
1
+ {"version":3,"file":"game-seam.helper.d.ts","sourceRoot":"","sources":["../../../src/_modules/game/game-seam.helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EACL,yBAAyB,EAEzB,mCAAmC,EACnC,yBAAyB,EACzB,gCAAgC,EAChC,kCAAkC,EACnC,MAAM,oCAAoC,CAAC;AAU5C;;;;;GAKG;AACH,qBAAa,qBAAqB,CAChC,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,kCAAkC,GAAG,kCAAkC;IAW1E,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuC;gBAE/C,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,gCAAqC;IAoBvF,kGAAkG;IAC5F,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3D,gFAAgF;IAChF,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQpC,4FAA4F;IACtF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAsClC;;OAEG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC,YAAY,IAAI,OAAO,CAAC,SAAS,yBAAyB,EAAE,CAAC;IAqB7D,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAI9B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjD,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAUpC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAM9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C,aAAa,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAezF;;;OAGG;IACG,UAAU,CAAC,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAkBvG,qGAAqG;IAC/F,sBAAsB,IAAI,OAAO,CAAC,mCAAmC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAsC/F,OAAO,CAAC,iBAAiB;YAWX,mBAAmB;IAcjC,OAAO,CAAC,oBAAoB;YAYd,MAAM;CAyBrB"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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'];
4
+ const game_seam_const_1 = require("./_collections/game-seam.const");
5
+ const KNOWN_CAPABILITIES = Object.keys(game_seam_const_1.DYE2E_GAME_CAPABILITY_METHODS);
6
6
  /**
7
7
  * Capability-gated adapter for an explicitly enabled browser game test seam.
8
8
  *
@@ -20,12 +20,13 @@ class DyE2E_GameSeam_Helper {
20
20
  requiredCapabilities;
21
21
  constructor(page, options = {}) {
22
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';
23
+ this.seamKey = options.seamKey ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.seamKey;
24
+ this.readyEventName = options.readyEventName ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.readyEventName;
25
+ this.optInStorageKey = options.optInStorageKey ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.optInStorageKey;
26
+ this.optInQueryParam = options.optInQueryParam ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.optInQueryParam;
27
27
  this.timeoutMs = options.timeoutMs ?? 15_000;
28
- this.allowedHosts = (options.allowedHosts ?? DEFAULT_ALLOWED_HOSTS).map((host) => host.toLowerCase());
28
+ this.allowedHosts = (options.allowedHosts ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.allowedHosts)
29
+ .map((host) => (0, game_seam_const_1.DyE2E_normalizeGameSeamHost)(host));
29
30
  this.requiredCapabilities = options.requiredCapabilities ?? [];
30
31
  if (!Number.isFinite(this.timeoutMs) || this.timeoutMs <= 0) {
31
32
  throw new Error(`[DyE2E_GameSeam_Helper] timeoutMs must be finite and positive; received ${this.timeoutMs}.`);
@@ -41,7 +42,8 @@ class DyE2E_GameSeam_Helper {
41
42
  async enableForNavigation(targetUrl) {
42
43
  this.assertAllowedHost(targetUrl);
43
44
  await this.page.addInitScript((settings) => {
44
- if (!settings.allowedHosts.includes(window.location.hostname.toLowerCase())) {
45
+ // Same normalisation as DyE2E_normalizeGameSeamHost, inline: this runs in the browser, detached from the module.
46
+ if (!settings.allowedHosts.includes(window.location.hostname.toLowerCase().replace(/^\[(.*)\]$/, '$1'))) {
45
47
  return;
46
48
  }
47
49
  try {
@@ -89,6 +91,22 @@ class DyE2E_GameSeam_Helper {
89
91
  }), [this.seamKey, this.readyEventName, this.timeoutMs]);
90
92
  await this.requireCapabilities(this.requiredCapabilities);
91
93
  }
94
+ /**
95
+ * Opt in, navigate and wait for the seam — the required order (opt-in BEFORE navigation) in one call.
96
+ */
97
+ async navigateAndWaitForSeam(targetUrl) {
98
+ await this.enableForNavigation(targetUrl);
99
+ await this.page.goto(targetUrl);
100
+ await this.waitForSeam();
101
+ }
102
+ /**
103
+ * Reload and wait until the game re-attaches its seam. With `DyE2E_installGameSeam` attachment means "usable", so
104
+ * a test never reads the half-restored state of a reloading game (the `WF-J-007` race).
105
+ */
106
+ async reloadAndWaitForSeam() {
107
+ await this.page.reload();
108
+ await this.waitForSeam();
109
+ }
92
110
  async capabilities() {
93
111
  return this.page.evaluate((settings) => {
94
112
  const { key, knownCapabilities } = settings;
@@ -165,6 +183,23 @@ class DyE2E_GameSeam_Helper {
165
183
  }
166
184
  return screenPoint;
167
185
  }
186
+ /**
187
+ * Click a WORLD point on the game canvas. The seam's `worldToScreen` answers in CSS pixels relative to the canvas'
188
+ * top-left corner; a point outside the canvas throws instead of silently clicking whatever lies there.
189
+ */
190
+ async clickWorld(point, canvas) {
191
+ const screenPoint = await this.worldToScreen(point);
192
+ const box = await canvas.boundingBox();
193
+ if (!box) {
194
+ throw new Error('[DyE2E_GameSeam_Helper] clickWorld: the canvas is not visible (no bounding box).');
195
+ }
196
+ if (screenPoint.x < 0 || screenPoint.y < 0 || screenPoint.x >= box.width || screenPoint.y >= box.height) {
197
+ throw new Error(`[DyE2E_GameSeam_Helper] clickWorld: world (${point.x}, ${point.y}) maps to canvas `
198
+ + `(${screenPoint.x}, ${screenPoint.y}), outside the ${box.width}x${box.height} canvas.`);
199
+ }
200
+ await canvas.click({ position: screenPoint });
201
+ return screenPoint;
202
+ }
168
203
  /** One browser round-trip containing the evidence needed to diagnose deterministic game failures. */
169
204
  async captureFailureArtifact() {
170
205
  return this.page.evaluate(async (key) => {
@@ -205,7 +240,7 @@ class DyE2E_GameSeam_Helper {
205
240
  }
206
241
  assertAllowedHost(targetUrl) {
207
242
  const parsed = new URL(targetUrl, 'http://localhost');
208
- if (!this.allowedHosts.includes(parsed.hostname)) {
243
+ if (!this.allowedHosts.includes((0, game_seam_const_1.DyE2E_normalizeGameSeamHost)(parsed.hostname))) {
209
244
  throw new Error(`[DyE2E_GameSeam_Helper] Refusing to enable a game seam on host '${parsed.hostname}'. `
210
245
  + `Allowed hosts: ${this.allowedHosts.join(', ')}. Add a test host explicitly only when its server-side `
211
246
  + 'seam guard is enabled.');
@@ -1 +1 @@
1
- {"version":3,"file":"game-seam.helper.js","sourceRoot":"","sources":["../../../src/_modules/game/game-seam.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game-seam.helper.js","sourceRoot":"","sources":["../../../src/_modules/game/game-seam.helper.ts"],"names":[],"mappings":";;;AAUA,oEAIwC;AAExC,MAAM,kBAAkB,GACtB,MAAM,CAAC,IAAI,CAAC,+CAA6B,CAAgC,CAAC;AAE5E;;;;;GAKG;AACH,MAAa,qBAAqB;IAaH;IARZ,OAAO,CAAS;IAChB,cAAc,CAAS;IACvB,eAAe,CAAS;IACxB,eAAe,CAAS;IACxB,SAAS,CAAS;IAClB,YAAY,CAAoB;IAChC,oBAAoB,CAAuC;IAE5E,YAA6B,IAAU,EAAE,UAA4C,EAAE;QAA1D,SAAI,GAAJ,IAAI,CAAM;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,0CAAwB,CAAC,OAAO,CAAC;QACnE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,0CAAwB,CAAC,cAAc,CAAC;QACxF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,0CAAwB,CAAC,eAAe,CAAC;QAC3F,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,0CAAwB,CAAC,eAAe,CAAC;QAC3F,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,0CAAwB,CAAC,YAAY,CAAC;aAChF,GAAG,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,IAAA,6CAA2B,EAAC,IAAI,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,2EAA2E,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACpG,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,kGAAkG;IAClG,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAiE,EAAQ,EAAE;YACxG,iHAAiH;YACjH,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBACxG,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;YACnF,CAAC;QACH,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,gFAAgF;IAChF,SAAS,CAAC,SAAiB;QACzB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC3D,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAEnD,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC5G,CAAC;IAED,4FAA4F;IAC5F,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CACtB,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAA2B,EAAiB,EAAE,CAAC,IAAI,OAAO,CACnF,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;YACxB,IAAI,SAAiB,CAAC;YACtB,MAAM,OAAO,GAAG,CAAC,KAAY,EAAQ,EAAE;gBACrC,MAAM,MAAM,GAAa,KAA8B,CAAC,MAAM,CAAC;gBAC/D,MAAM,SAAS,GAAY,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;oBACtE,CAAC,CAAE,MAAgC,CAAC,OAAO;oBAC3C,CAAC,CAAC,MAAM,CAAC;gBACX,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;oBACjD,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAS,EAAE;gBACvC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,KAAK,CACd,4BAA4B,GAAG,uBAAuB,SAAS,YAAY,SAAS,MAAM;sBACxF,yFAAyF,CAC5F,CAAC,CAAC;YACL,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAK,MAA6C,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CACF,EACD,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAA6B,CAChF,CAAC;QAEF,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,SAAiB;QAC5C,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAG1B,EAAwC,EAAE;YACzC,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,QAAQ,CAAC;YAC5C,MAAM,IAAI,GAAI,MAAgE,CAAC,GAAG,CAAC,CAAC;YACpF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,qBAAqB,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,OAAO,GAAc,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACnG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,oCAAoC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjH,CAAC;YACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAgC,CAAC;QACxE,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,MAAM,CAAY,aAAa,EAAE,aAAa,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAqB;QACrC,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;eACrD,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;eAC1C,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,uFAAuF,IAAI,IAAI,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,QAAQ,GAAY,MAAM,IAAI,CAAC,MAAM,CAAU,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAClF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,OAAO,GAAoB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,+DAA+D,MAAM,CAAC,IAAI,CAAC,KAAK;kBAC9E,aAAa,MAAM,CAAC,OAAO,CAAC,IAAI,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,GAAoB,MAAM,IAAI,CAAC,MAAM,CAAkB,MAAM,EAAE,UAAU,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;eACrD,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;eAC1C,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,8DAA8D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAW,MAAM,IAAI,CAAC,MAAM,CAAS,OAAO,EAAE,aAAa,CAAC,CAAC;QACxE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAY,MAAM,IAAI,CAAC,MAAM,CAAU,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACpF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,yEAAyE,OAAO,GAAG,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,QAAQ,GAAY,MAAM,IAAI,CAAC,MAAM,CAAU,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACvF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yEAAyE,OAAO,KAAK,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAgC;QAClD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACvF,CAAC;QACD,MAAM,WAAW,GAA8B,MAAM,IAAI,CAAC,MAAM,CAC9D,QAAQ,EACR,eAAe,EACf,KAAK,CACN,CAAC;QACF,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,KAAgC,EAAE,MAAe;QAChE,MAAM,WAAW,GAA8B,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAmE,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QAEvG,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACxG,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,mBAAmB;kBAClF,IAAI,WAAW,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,kBAAkB,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,UAAU,CACzF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,qGAAqG;IACrG,KAAK,CAAC,sBAAsB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAW,EAAmE,EAAE;YAC/G,MAAM,IAAI,GAAI,MAA6D,CAAC,GAAG,CAAC,CAAC;YACjF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,qBAAqB,CAAC,CAAC;YAC7E,CAAC;YACD,MAAM,YAAY,GAAyC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;gBACzF,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAgC;gBACvD,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,aAAa,GAA2B,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,KAAK,EAAK,IAAY,EAA0B,EAAE;gBAC7D,MAAM,MAAM,GAAY,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,IAAI,CAAC;oBACH,OAAO,MAAO,MAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7E,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC;YAEF,OAAO;gBACL,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBACzB,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;gBAClE,YAAY;gBACZ,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAkB,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;gBACzF,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAS,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrF,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAY,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS;gBACjG,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;oBAC/C,CAAC,CAAC,MAAM,IAAI,CAAkC,gBAAgB,CAAC;oBAC/D,CAAC,CAAC,SAAS;gBACb,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;aACjF,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEO,iBAAiB,CAAC,SAAiB;QACzC,MAAM,MAAM,GAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAA,6CAA2B,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CACb,mEAAmE,MAAM,CAAC,QAAQ,KAAK;kBACrF,kBAAkB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,yDAAyD;kBACvG,wBAAwB,CAC3B,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAA8C;QAC9E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAyC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAClF,MAAM,OAAO,GAAgC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,0DAA0D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;kBAC9E,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,KAAc;QACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,aAAa,GAAa,KAAiC,CAAC,aAAa,CAAC;QAChF,IAAI,CAAC,OAAO,aAAa,KAAK,QAAQ,IAAI,OAAO,aAAa,KAAK,QAAQ,CAAC;eACvE,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;eACzC,CAAC,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,MAAM,CAClB,UAAqC,EACrC,UAAkB,EAClB,GAAG,IAAe;QAElB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CACvB,CAAC,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,CAAyD,EAAW,EAAE;YAC/G,MAAM,IAAI,GAAI,MAA6D,CAAC,GAAG,CAAC,CAAC;YACjF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,qBAAqB,CAAC,CAAC;YAC7E,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACzF,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,eAAe,kBAAkB,IAAI,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,EAAE,GAAY,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,uCAAuC,kBAAkB,8BAA8B,MAAM,IAAI,CAClG,CAAC;YACJ,CAAC;YACD,OAAQ,EAAwC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzE,CAAC,EACD,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAA2D,CACvG,CAAC;IACJ,CAAC;CACF;AA3UD,sDA2UC"}
@@ -0,0 +1,50 @@
1
+ import type { DyE2E_GameCapability_Type } from './_models/game-contracts.interface';
2
+ /** The window surface the installer touches (a structural subset, so it is testable without a browser). */
3
+ export interface DyE2E_GameSeamWindow_Interface {
4
+ location: {
5
+ hostname: string;
6
+ search: string;
7
+ };
8
+ sessionStorage?: {
9
+ getItem(key: string): string | null;
10
+ };
11
+ dispatchEvent(event: Event): boolean;
12
+ }
13
+ export interface DyE2E_GameSeamInstall_Options_Interface {
14
+ /** The game's seam object (a plain object or a class instance) — it must carry the declared capabilities' methods. */
15
+ seam: object;
16
+ /** The capabilities the seam really supports; the Playwright helper refuses calls outside this list. */
17
+ capabilities: readonly DyE2E_GameCapability_Type[];
18
+ seamKey?: string;
19
+ readyEventName?: string;
20
+ optInStorageKey?: string;
21
+ optInQueryParam?: string;
22
+ /** Default: loopback only. Add a deployed test host only when that build keeps its own test-seam guard. */
23
+ allowedHosts?: readonly string[];
24
+ /** Default: the global `window`. */
25
+ target?: DyE2E_GameSeamWindow_Interface;
26
+ }
27
+ export interface DyE2E_GameSeamInstall_Result_Interface {
28
+ installed: boolean;
29
+ /** Why nothing was installed — the normal production outcome, not an error. */
30
+ skippedBecause?: 'host-not-allowed' | 'no-opt-in';
31
+ /** Detach (e.g. in `ngOnDestroy`); a stale handle never removes a seam installed after it. */
32
+ uninstall(): void;
33
+ }
34
+ /**
35
+ * BFR-WARFACTORY-008 — the page-side half of the game preset: installs a game's test seam so that
36
+ * `DyE2E_GameSeam_Helper` can drive it.
37
+ *
38
+ * - **Guarded:** nothing happens unless the host is allow-listed (loopback by default) AND the test opted in
39
+ * (`?dye2eGame=1` or `sessionStorage.dye2eGame === '1'`, which `enableForNavigation()` writes). In production it
40
+ * returns `{ installed: false }` and touches nothing.
41
+ * - **Attach = ready:** the seam is put on `window` and the ready event is dispatched in the SAME tick. Call it only
42
+ * when the seam is USABLE (e.g. after a save is restored) — the helper treats attachment as readiness, so an early
43
+ * attach would let a test read half-restored state (the race `WF-J-007` hit after a reload).
44
+ * - **Honest capabilities:** a declared capability whose methods are missing throws here, at install time, instead of
45
+ * failing later inside a test step with a misleading message.
46
+ *
47
+ * Browser-safe: no Node or Playwright import at runtime.
48
+ */
49
+ export declare function DyE2E_installGameSeam(options: DyE2E_GameSeamInstall_Options_Interface): DyE2E_GameSeamInstall_Result_Interface;
50
+ //# sourceMappingURL=game-seam.installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-seam.installer.d.ts","sourceRoot":"","sources":["../../../src/_modules/game/game-seam.installer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAOpF,2GAA2G;AAC3G,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,cAAc,CAAC,EAAE;QAAE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzD,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,uCAAuC;IACtD,sHAAsH;IACtH,IAAI,EAAE,MAAM,CAAC;IACb,wGAAwG;IACxG,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2GAA2G;IAC3G,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,oCAAoC;IACpC,MAAM,CAAC,EAAE,8BAA8B,CAAC;CACzC;AAED,MAAM,WAAW,sCAAsC;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAAC;IAClD,8FAA8F;IAC9F,SAAS,IAAI,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,uCAAuC,GAAG,sCAAsC,CAmD9H"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyE2E_installGameSeam = DyE2E_installGameSeam;
4
+ const game_seam_const_1 = require("./_collections/game-seam.const");
5
+ /**
6
+ * BFR-WARFACTORY-008 — the page-side half of the game preset: installs a game's test seam so that
7
+ * `DyE2E_GameSeam_Helper` can drive it.
8
+ *
9
+ * - **Guarded:** nothing happens unless the host is allow-listed (loopback by default) AND the test opted in
10
+ * (`?dye2eGame=1` or `sessionStorage.dye2eGame === '1'`, which `enableForNavigation()` writes). In production it
11
+ * returns `{ installed: false }` and touches nothing.
12
+ * - **Attach = ready:** the seam is put on `window` and the ready event is dispatched in the SAME tick. Call it only
13
+ * when the seam is USABLE (e.g. after a save is restored) — the helper treats attachment as readiness, so an early
14
+ * attach would let a test read half-restored state (the race `WF-J-007` hit after a reload).
15
+ * - **Honest capabilities:** a declared capability whose methods are missing throws here, at install time, instead of
16
+ * failing later inside a test step with a misleading message.
17
+ *
18
+ * Browser-safe: no Node or Playwright import at runtime.
19
+ */
20
+ function DyE2E_installGameSeam(options) {
21
+ const target = options.target
22
+ ?? globalThis.window;
23
+ const seamKey = options.seamKey ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.seamKey;
24
+ const allowedHosts = (options.allowedHosts ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.allowedHosts)
25
+ .map((host) => (0, game_seam_const_1.DyE2E_normalizeGameSeamHost)(host));
26
+ const notInstalled = (reason) => ({ installed: false, skippedBecause: reason, uninstall: () => undefined });
27
+ // No window (server-side rendering, a worker): there is no page to test — same outcome as a public host.
28
+ if (!target?.location || !allowedHosts.includes((0, game_seam_const_1.DyE2E_normalizeGameSeamHost)(target.location.hostname))) {
29
+ return notInstalled('host-not-allowed');
30
+ }
31
+ if (!DyE2E_hasGameSeamOptIn(target, options)) {
32
+ return notInstalled('no-opt-in');
33
+ }
34
+ const capabilities = [...new Set(options.capabilities)];
35
+ const seam = options.seam;
36
+ for (const capability of capabilities) {
37
+ const methods = game_seam_const_1.DYE2E_GAME_CAPABILITY_METHODS[capability];
38
+ if (!methods) {
39
+ throw new Error(`[DyE2E_installGameSeam] Unknown capability '${String(capability)}'. `
40
+ + `Known: ${Object.keys(game_seam_const_1.DYE2E_GAME_CAPABILITY_METHODS).join(', ')}.`);
41
+ }
42
+ const missing = methods.filter((method) => typeof seam[method] !== 'function');
43
+ if (missing.length) {
44
+ throw new Error(`[DyE2E_installGameSeam] Capability '${capability}' is declared, but the seam lacks: `
45
+ + `${missing.join(', ')}.`);
46
+ }
47
+ }
48
+ Object.defineProperty(seam, 'capabilities', {
49
+ value: Object.freeze(capabilities), enumerable: true, configurable: true, writable: false,
50
+ });
51
+ target[seamKey] = seam;
52
+ target.dispatchEvent(new CustomEvent(options.readyEventName ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.readyEventName, { detail: { seamKey: seamKey } }));
53
+ return {
54
+ installed: true,
55
+ uninstall: () => {
56
+ if (target[seamKey] === seam) {
57
+ delete target[seamKey];
58
+ }
59
+ },
60
+ };
61
+ }
62
+ /** The explicit test opt-in: the query parameter, or the session-storage flag written before navigation. */
63
+ function DyE2E_hasGameSeamOptIn(target, options) {
64
+ if (new URLSearchParams(target.location.search).get(options.optInQueryParam ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.optInQueryParam)
65
+ === '1') {
66
+ return true;
67
+ }
68
+ try {
69
+ return target.sessionStorage?.getItem(options.optInStorageKey ?? game_seam_const_1.DYE2E_GAME_SEAM_DEFAULTS.optInStorageKey) === '1';
70
+ }
71
+ catch {
72
+ // Storage disabled by browser policy: only the query opt-in counts.
73
+ return false;
74
+ }
75
+ }
76
+ //# sourceMappingURL=game-seam.installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game-seam.installer.js","sourceRoot":"","sources":["../../../src/_modules/game/game-seam.installer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export * from './_models/game-contracts.interface';
2
+ export * from './_collections/game-seam.const';
2
3
  export * from './game-seam.helper';
4
+ export * from './game-seam.installer';
3
5
  export * from './journey-catalog.validator';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/game/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC"}
@@ -15,6 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./_models/game-contracts.interface"), exports);
18
+ __exportStar(require("./_collections/game-seam.const"), exports);
18
19
  __exportStar(require("./game-seam.helper"), exports);
20
+ __exportStar(require("./game-seam.installer"), exports);
19
21
  __exportStar(require("./journey-catalog.validator"), exports);
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/game/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,qDAAmC;AACnC,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/game/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,iEAA+C;AAC/C,qDAAmC;AACnC,wDAAsC;AACtC,8DAA4C"}
package/build/index.js CHANGED
@@ -25,5 +25,5 @@ __exportStar(require("./_modules/vqa/index"), exports);
25
25
  __exportStar(require("./_modules/game/index"), exports);
26
26
  __exportStar(require("./_modules/coverage/index"), exports);
27
27
  /** Package-version stamp — npm-publish-time runtime-érték. */
28
- exports.DYE2E_PACKAGE_VERSION = '01.18.22';
28
+ exports.DYE2E_PACKAGE_VERSION = '01.18.23';
29
29
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/dynamo-e2e",
3
- "version": "01.18.22",
3
+ "version": "01.18.23",
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",