@vijaypjavvadi/bdd2pw 2.2.0 → 2.2.2

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
@@ -9,6 +9,191 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  _Nothing yet._
11
11
 
12
+ ## [2.2.2] — 2026-05-09
13
+
14
+ ### Fixed — four cloud-jobs production bugs
15
+
16
+ Four distinct emitter / LLM-output defects surfaced across
17
+ `r-4-f3-a50-d9-*.spec.ts` runs. None block the test suite from running;
18
+ each one silently produces wrong-but-passing or wrong-and-crashing code.
19
+
20
+ #### 1. Bare `context.clearCookies()` → `ReferenceError`
21
+
22
+ LLM occasionally emits `await context.clearCookies()` (and similar
23
+ `browser.*` calls) for "no session cookies" / "in a clean browser"
24
+ steps. The Playwright test fixture only injects `page`, so bare
25
+ `context`/`browser` is a `ReferenceError` at the first spec line.
26
+
27
+ **Fix (defence in depth):**
28
+ 1. New `rewriteBareContext(s)` helper in `src/llm/anthropicClient.ts`
29
+ that maps `\bcontext.X` → `page.context().X` and
30
+ `\bbrowser.X` → `page.context().browser().X`. Applied to
31
+ `customBody` and `assertion.locator` during JSON parse.
32
+ 2. SYSTEM_PROMPT updated to instruct the LLM to use
33
+ `page.context()` directly. Belt + suspenders.
34
+
35
+ Conservative rewriter — only matches word-boundary `context.` (so
36
+ `pageContext`, `setupContext`, field names with "context" substring
37
+ are left alone).
38
+
39
+ #### 2. English prose slugified into URL regex
40
+
41
+ Steps like `user remains on login page without any redirect`
42
+ were producing `new RegExp("login[-_/]?page[-_/]?without[-_/]?
43
+ any[-_/]?redirect")` which never matches a real URL, so the assertion
44
+ silently passed (timeout = false-positive pass when running against
45
+ the wrong URL).
46
+
47
+ **Fix:** new `looksLikeProse(target)` heuristic in
48
+ `src/transformers/stepNormalizer.ts`. Rules 10 / 11b / N4 / N5e now
49
+ call it on the captured page-name target and emit a `// TODO:` with a
50
+ clear warning instead of a wrong-but-silent regex when:
51
+ - More than 5 whitespace-separated tokens.
52
+ - Any of "without", "with", "any", "and", "or", "the", "after",
53
+ "before", "while", "where", "when", "via" appears twice or more.
54
+ - Any "redirect" / "redirected" / "redirection" form appears
55
+ anywhere.
56
+
57
+ The bias is intentionally conservative — when in doubt, abandon the
58
+ slug and force the user to supply a real path fragment.
59
+
60
+ #### 3. `URL contains a path segment 'X'` matched no rule
61
+
62
+ The LLM dialect "the current URL contains a path segment 'X'"
63
+ (verb form of `URL contains 'X'`) didn't match rule 11a's pattern,
64
+ which required the quoted value immediately after `contains`. Step
65
+ fell through to LLM, LLM then emitted
66
+ `page.getByText("X").first().toContainText("X")` — testing the URL
67
+ fragment against page TEXT content rather than the browser address
68
+ bar. Half-meaningful, totally wrong matcher.
69
+
70
+ **Fix:** rule 11a's regex extended to accept an optional
71
+ `(?:(?:a|the)\s+)?(?:path\s+|url\s+)?(?:segment\s+|fragment\s+|part\s+)?`
72
+ between `contains\s+` and the quoted value. All four forms now match:
73
+ - `URL contains "X"` (original)
74
+ - `Page URL contains the path "X"` (v2.2.2)
75
+ - `the current URL contains a path segment "X"` (v2.2.2)
76
+ - `URL contains a fragment "X"` (v2.2.2)
77
+
78
+ All resolve to `expect(page).toHaveURL(new RegExp("X"))`.
79
+
80
+ #### 4. LLM emitted assertion when the step described user input
81
+
82
+ Steps like `I enter "MySecret123" as the password` were being emitted
83
+ as `expect(...).toBeVisible(...)` instead of `passwordInput.fill(...)`.
84
+ Resulting spec asserts the value is visible before any fill happened →
85
+ test passes when the value happens to be a substring of any rendered
86
+ text on the page.
87
+
88
+ **Fix:** SYSTEM_PROMPT now explicitly instructs the LLM: when a step's
89
+ verb is `enter`, `type`, `fill`, `paste`, `set`, `use`, `supply`,
90
+ `provide`, or `login as`, emit a `pomCall` or `customBody` with a
91
+ `.fill()`/`.click()` call. Never an assertion.
92
+
93
+ #### Tests
94
+
95
+ - `tests/unit/stepMatcher.test.ts` — 6 new tests under
96
+ `v2.2.2 — URL contains 'a path segment X' dialect` and
97
+ `v2.2.2 — prose-as-URL-slug guard`.
98
+ - `tests/unit/llm.test.ts` — 2 new tests for `rewriteBareContext` and
99
+ the parser-level `customBody` rewrite.
100
+
101
+ #### Known limitation (bug #5 from the report — deferred)
102
+
103
+ `getByText("Congratulations").first()` matched a help-text list item
104
+ on the LOGIN page mentioning "Congratulations" rather than the
105
+ post-login success banner. This is a locator-scoping problem that's
106
+ hard to solve at generation time without knowing the page-state at
107
+ runtime. Documented in BDD_REVIEW.md for now; v1.3 roadmap item is
108
+ locator scoping via container-aware picker (the locator picker would
109
+ prefer a parent scope like `page.locator("main").getByText(...)`
110
+ when the field is post-action).
111
+
112
+ #### Files
113
+
114
+ - Modified: `src/llm/prompt.ts` (SYSTEM_PROMPT additions),
115
+ `src/llm/anthropicClient.ts` (rewriteBareContext + parser call site),
116
+ `src/transformers/stepNormalizer.ts` (looksLikeProse),
117
+ `src/transformers/stepMatcher.ts` (rule 11a regex extension + prose
118
+ guard in rules 10/11b/N4/N5e),
119
+ `tests/unit/stepMatcher.test.ts` (+6 tests),
120
+ `tests/unit/llm.test.ts` (+2 tests).
121
+
122
+ #### Migration from 2.2.1
123
+
124
+ Pure bug fix — no API change. Bump the dep pin to `^2.2.2`.
125
+
126
+ ## [2.2.1] — 2026-05-09
127
+
128
+ ### Fixed — heal Proxy broke `expect(locator).toMatcher(...)` (HIGH, launch-blocker)
129
+
130
+ bdd2pw 2.2.0's action-time healing wrapped every POM-field Locator in a
131
+ `new Proxy(...)` for healable-method interception. Playwright's
132
+ `expect(loc).toBeVisible()` (and every other `LocatorMatchers`) does a
133
+ private-field probe (`#frame`, `Symbol.toStringTag`, etc.) that doesn't
134
+ survive a generic Proxy — so every spec that asserted against a POM
135
+ field died synchronously with:
136
+
137
+ ```
138
+ Error: toBeVisible can be only used with Locator object
139
+ ```
140
+
141
+ 100 % test fail rate on any spec calling `expect()` on a POM field.
142
+
143
+ **Fix:** replaced the Proxy with **direct instance mutation** in
144
+ `templates/heal.ts.tmpl` (heal helper bumped to v1.2.1):
145
+
146
+ ```ts
147
+ // Before (v1.2): wrap in Proxy → identity check fails
148
+ const proxy = new Proxy(original, { get(target, prop) {...} });
149
+ return proxy;
150
+
151
+ // After (v1.2.1): mutate own properties → identity preserved
152
+ for (const method of HEALABLE_METHODS) {
153
+ const origFn = (original as any)[method];
154
+ if (typeof origFn !== "function") continue;
155
+ (original as any)[method] = async function (...args) {
156
+ if (healedLocator) {
157
+ return await (healedLocator as any)[method].apply(healedLocator, args);
158
+ }
159
+ try { return await origFn.apply(original, args); }
160
+ catch (err) { /* heal-and-retry, identical to v1.2 */ }
161
+ };
162
+ }
163
+ return original;
164
+ ```
165
+
166
+ The healing logic (POST `/api/v1/heal`, retry with candidate, log
167
+ `heal_attempt` / `healed` / `heal_unavailable`) is byte-identical. Only
168
+ the wrapping mechanism changed.
169
+
170
+ #### What this preserves vs v1.2
171
+
172
+ | Property | v1.2 (Proxy) | v1.2.1 (mutation) |
173
+ |---|---|---|
174
+ | Action-time healing on `.click`/`.fill`/etc. | ✓ | ✓ |
175
+ | Once-cached candidate reused on subsequent calls | ✓ | ✓ |
176
+ | `await loc.click()` works | ✓ | ✓ |
177
+ | `await expect(loc).toBeVisible()` works | ❌ | ✓ |
178
+ | `loc instanceof Locator` | partially | ✓ |
179
+ | Private-field probes (`#frame`) | ❌ | ✓ |
180
+ | Non-healable methods (`.locator()`, `.first()`) untouched | ✓ | ✓ (prototype delegation) |
181
+
182
+ #### Files
183
+
184
+ - Modified: `templates/heal.ts.tmpl` (the `wrapLocatorForHealing`
185
+ function + doc comments at top + version bump v1.2 → v1.2.1).
186
+
187
+ #### Migration from 2.2.0
188
+
189
+ Pure bug fix — no API change. Just bump the dep pin to `^2.2.1`.
190
+
191
+ Cloud-jobs-template runs that were failing 100% on
192
+ `expect.toBeVisible can be only used with Locator object` will now go
193
+ green (or fail honestly on real test logic). Action-time healing
194
+ continues to work the same way for failed `.click()` / `.fill()` /
195
+ etc.
196
+
12
197
  ## [2.2.0] — 2026-05-08
13
198
 
14
199
  ### Fixed — LLM fallback hung 8+ minutes in cloud-job containers (HIGH, launch-blocker)
@@ -61,6 +61,17 @@ export declare class AnthropicLLMClient implements LLMClient {
61
61
  private lazyClient;
62
62
  close(): Promise<void>;
63
63
  }
64
+ /**
65
+ * v2.2.2 — LLM-emitted spec code occasionally references bare `context.`
66
+ * (the Playwright BrowserContext) or `browser.` even though the test
67
+ * fixture only injects `page`. Rewrite to the canonical accessor so the
68
+ * generated spec compiles instead of throwing ReferenceError at runtime.
69
+ *
70
+ * Conservative — only rewrites identifiers at word boundaries followed
71
+ * by a dot, so legitimate uses like `pageContext` / `someContext` /
72
+ * field names containing "context" are left alone.
73
+ */
74
+ export declare function rewriteBareContext(s: string): string;
64
75
  /**
65
76
  * Parse the LLM's text response as JSON and validate it has the expected
66
77
  * StepBinding shape. Returns undefined on any failure (caller soft-fails).
@@ -20,6 +20,7 @@
20
20
  */
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.AnthropicLLMClient = void 0;
23
+ exports.rewriteBareContext = rewriteBareContext;
23
24
  exports.parseBindingJson = parseBindingJson;
24
25
  const prompt_1 = require("./prompt");
25
26
  const governanceClient_1 = require("./governanceClient");
@@ -283,6 +284,21 @@ class AnthropicLLMClient {
283
284
  }
284
285
  }
285
286
  exports.AnthropicLLMClient = AnthropicLLMClient;
287
+ /**
288
+ * v2.2.2 — LLM-emitted spec code occasionally references bare `context.`
289
+ * (the Playwright BrowserContext) or `browser.` even though the test
290
+ * fixture only injects `page`. Rewrite to the canonical accessor so the
291
+ * generated spec compiles instead of throwing ReferenceError at runtime.
292
+ *
293
+ * Conservative — only rewrites identifiers at word boundaries followed
294
+ * by a dot, so legitimate uses like `pageContext` / `someContext` /
295
+ * field names containing "context" are left alone.
296
+ */
297
+ function rewriteBareContext(s) {
298
+ return s
299
+ .replace(/\bcontext\./g, "page.context().")
300
+ .replace(/\bbrowser\./g, "page.context().browser().");
301
+ }
286
302
  /**
287
303
  * Parse the LLM's text response as JSON and validate it has the expected
288
304
  * StepBinding shape. Returns undefined on any failure (caller soft-fails).
@@ -325,14 +341,18 @@ function parseBindingJson(text, input) {
325
341
  const a = parsed.assertion;
326
342
  if (typeof a.locator === "string" && typeof a.matcher === "string") {
327
343
  out.assertion = {
328
- locator: a.locator,
344
+ locator: rewriteBareContext(a.locator),
329
345
  matcher: a.matcher,
330
346
  expected: typeof a.expected === "string" ? a.expected : undefined,
331
347
  };
332
348
  }
333
349
  }
334
350
  if (typeof parsed.customBody === "string") {
335
- out.customBody = parsed.customBody;
351
+ // v2.2.2 — LLM occasionally emits bare `context.` (e.g. `await
352
+ // context.clearCookies()`). Test fixtures only inject `page`; bare
353
+ // `context` is a ReferenceError. Rewrite to `page.context().` here
354
+ // so the spec compiles.
355
+ out.customBody = rewriteBareContext(parsed.customBody);
336
356
  }
337
357
  if (typeof parsed.warning === "string") {
338
358
  out.warning = parsed.warning;
@@ -1 +1 @@
1
- {"version":3,"file":"anthropicClient.js","sourceRoot":"","sources":["../../src/llm/anthropicClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropicClient.js","sourceRoot":"","sources":["../../src/llm/anthropicClient.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@
22
22
  */
23
23
  import type { GenerateBindingInput } from "./types";
24
24
  /** System prompt — shared across all generations. */
25
- export declare const SYSTEM_PROMPT = "You are a deterministic step-binding generator for bdd2pw, a Gherkin \u2192 Playwright TypeScript scaffolder.\n\nbdd2pw normally maps each Gherkin step to one of 30+ deterministic regex rules. When no rule matches, you produce the binding instead.\n\nYour output MUST be a single JSON object matching this TypeScript type:\n\ninterface StepBinding {\n step: { keyword: \"Given\"|\"When\"|\"Then\"|\"And\"|\"But\"; text: string };\n pomCall?: { page: string; method: string; args: string[] }; // for actions\n assertion?: { locator: string; matcher: string; expected?: string }; // for assertions\n customBody?: string; // pre-rendered TS for compound steps\n warning?: string; // populated only if you genuinely cannot map the step\n}\n\nRules:\n- Output exactly ONE JSON object. No prose, no Markdown, no backticks.\n- Echo the step in the \"step\" field unchanged.\n- Choose ONE of: pomCall, assertion, customBody. Never two.\n- Prefer existing POM fields over synthesizing locators. Only use page.locator(...) / page.getByText(...) / page.getByRole(...) when no POM field matches.\n- For assertions, set \"matcher\" to one of: toBeVisible, toBeHidden, toContainText, toHaveText, toHaveURL, toHaveAttribute, not.toBeVisible, not.toHaveURL.\n- For toContainText/toHaveText, \"expected\" must be a JS-quoted string like \"\\\"X\\\"\".\n- For toHaveURL, \"expected\" should be: new RegExp(\"...\") (a JS expression as a STRING).\n- For toHaveAttribute, \"expected\" should be: \"name\", \"value\" (two args, as a single string).\n- Always end synthesised locators with .first() to avoid Playwright strict-mode violations when text appears in multiple elements.\n- If the step has no quoted value AND no resolvable POM field, set \"warning\" to a clear single-sentence explanation of what's ambiguous and emit no pomCall/assertion. The user will hand-edit the spec.";
25
+ export declare const SYSTEM_PROMPT = "You are a deterministic step-binding generator for bdd2pw, a Gherkin \u2192 Playwright TypeScript scaffolder.\n\nbdd2pw normally maps each Gherkin step to one of 30+ deterministic regex rules. When no rule matches, you produce the binding instead.\n\nYour output MUST be a single JSON object matching this TypeScript type:\n\ninterface StepBinding {\n step: { keyword: \"Given\"|\"When\"|\"Then\"|\"And\"|\"But\"; text: string };\n pomCall?: { page: string; method: string; args: string[] }; // for actions\n assertion?: { locator: string; matcher: string; expected?: string }; // for assertions\n customBody?: string; // pre-rendered TS for compound steps\n warning?: string; // populated only if you genuinely cannot map the step\n}\n\nRules:\n- Output exactly ONE JSON object. No prose, no Markdown, no backticks.\n- Echo the step in the \"step\" field unchanged.\n- Choose ONE of: pomCall, assertion, customBody. Never two.\n- Prefer existing POM fields over synthesizing locators. Only use page.locator(...) / page.getByText(...) / page.getByRole(...) when no POM field matches.\n- For assertions, set \"matcher\" to one of: toBeVisible, toBeHidden, toContainText, toHaveText, toHaveURL, toHaveAttribute, not.toBeVisible, not.toHaveURL.\n- For toContainText/toHaveText, \"expected\" must be a JS-quoted string like \"\\\"X\\\"\".\n- For toHaveURL, \"expected\" should be: new RegExp(\"...\") (a JS expression as a STRING).\n- For toHaveAttribute, \"expected\" should be: \"name\", \"value\" (two args, as a single string).\n- Always end synthesised locators with .first() to avoid Playwright strict-mode violations when text appears in multiple elements.\n- If the step has no quoted value AND no resolvable POM field, set \"warning\" to a clear single-sentence explanation of what's ambiguous and emit no pomCall/assertion. The user will hand-edit the spec.\n\nv2.2.2 \u2014 additional constraints from production:\n- NEVER reference a bare `context` variable; the test fixture only injects `page`. To clear cookies / storage / etc., use `page.context().clearCookies()`, `page.context().clearPermissions()`, etc. Same for `browser` \u2014 go through `page.context().browser()`.\n- When the step DESCRIBES USER INPUT (verbs: enter, type, fill, paste, set, use, supply, provide, with credentials, login as), emit a pomCall or customBody with the .fill()/.click() call, NEVER an assertion. \"I enter MySecret123 as the password\" \u2192 fill the password field, do not assert it is visible.\n- For URL-related steps (\"URL is\", \"URL contains\", \"URL ends with\", \"page is at\", \"redirected to\", \"current path is\"), emit assertion.matcher = toHaveURL with a RegExp, never toContainText on a getByText. The URL is checked against the browser's address bar, not against page contents.\n- If you must synthesize getByText, KEEP IT SCOPED \u2014 prefer page.getByText(X).first() over a plain getByText. Multiple matches across the DOM are common (instructions text, breadcrumbs, success banners) and strict-mode failures + wrong-element matches are the dominant production failure mode.";
26
26
  /**
27
27
  * Build the user-side message for one step. Includes:
28
28
  * - The step keyword + text.
@@ -50,7 +50,13 @@ Rules:
50
50
  - For toHaveURL, "expected" should be: new RegExp("...") (a JS expression as a STRING).
51
51
  - For toHaveAttribute, "expected" should be: "name", "value" (two args, as a single string).
52
52
  - Always end synthesised locators with .first() to avoid Playwright strict-mode violations when text appears in multiple elements.
53
- - If the step has no quoted value AND no resolvable POM field, set "warning" to a clear single-sentence explanation of what's ambiguous and emit no pomCall/assertion. The user will hand-edit the spec.`;
53
+ - If the step has no quoted value AND no resolvable POM field, set "warning" to a clear single-sentence explanation of what's ambiguous and emit no pomCall/assertion. The user will hand-edit the spec.
54
+
55
+ v2.2.2 — additional constraints from production:
56
+ - NEVER reference a bare \`context\` variable; the test fixture only injects \`page\`. To clear cookies / storage / etc., use \`page.context().clearCookies()\`, \`page.context().clearPermissions()\`, etc. Same for \`browser\` — go through \`page.context().browser()\`.
57
+ - When the step DESCRIBES USER INPUT (verbs: enter, type, fill, paste, set, use, supply, provide, with credentials, login as), emit a pomCall or customBody with the .fill()/.click() call, NEVER an assertion. "I enter MySecret123 as the password" → fill the password field, do not assert it is visible.
58
+ - For URL-related steps ("URL is", "URL contains", "URL ends with", "page is at", "redirected to", "current path is"), emit assertion.matcher = toHaveURL with a RegExp, never toContainText on a getByText. The URL is checked against the browser's address bar, not against page contents.
59
+ - If you must synthesize getByText, KEEP IT SCOPED — prefer page.getByText(X).first() over a plain getByText. Multiple matches across the DOM are common (instructions text, breadcrumbs, success banners) and strict-mode failures + wrong-element matches are the dominant production failure mode.`;
54
60
  /**
55
61
  * Build the user-side message for one step. Includes:
56
62
  * - The step keyword + text.
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/llm/prompt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAsCH,0CA0CC;AAOD,4BAaC;AAhGD,qDAAqD;AACxC,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;yMAwB4K,CAAC;AAE1M;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAE1C,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM;QACnC,CAAC,CAAC,GAAG,CAAC,MAAM;aACP,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAC7E;aACA,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,8BAA8B,CAAC;IAEnC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM;QACrC,CAAC,CAAC,GAAG,CAAC,OAAO;aACR,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7E;aACA,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,gBAAgB,CAAC;IAErB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;QAC3B,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE;YACnC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACrD,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;IACL,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO;;;eAGxB,GAAG,CAAC,SAAS;aACf,OAAO;SACX,GAAG,IAAI,QAAQ;;;EAGtB,WAAW;;;EAGX,YAAY;;6BAEe,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAA2B,EAAE,KAAa;IACjE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,sEAAsE;IACtE,OAAO;QACL,IAAI;QACJ,KAAK;QACL,KAAK,CAAC,IAAI,CAAC,OAAO;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI;QACf,KAAK,CAAC,GAAG,CAAC,SAAS;QACnB,UAAU;QACV,WAAW;KACZ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/llm/prompt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AA4CH,0CA0CC;AAOD,4BAaC;AAtGD,qDAAqD;AACxC,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sSA8ByQ,CAAC;AAEvS;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAE1C,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM;QACnC,CAAC,CAAC,GAAG,CAAC,MAAM;aACP,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAC7E;aACA,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,8BAA8B,CAAC;IAEnC,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM;QACrC,CAAC,CAAC,GAAG,CAAC,OAAO;aACR,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7E;aACA,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,gBAAgB,CAAC;IAErB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;QAC3B,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE;YACnC,CAAC,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACrD,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;IACL,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO;;;eAGxB,GAAG,CAAC,SAAS;aACf,OAAO;SACX,GAAG,IAAI,QAAQ;;;EAGtB,WAAW;;;EAGX,YAAY;;6BAEe,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAA2B,EAAE,KAAa;IACjE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,sEAAsE;IACtE,OAAO;QACL,IAAI;QACJ,KAAK;QACL,KAAK,CAAC,IAAI,CAAC,OAAO;QAClB,KAAK,CAAC,IAAI,CAAC,IAAI;QACf,KAAK,CAAC,GAAG,CAAC,SAAS;QACnB,UAAU;QACV,WAAW;KACZ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC"}
@@ -20,6 +20,7 @@ exports.matchSteps = matchSteps;
20
20
  exports.matchStep = matchStep;
21
21
  const naming_1 = require("../utils/naming");
22
22
  const stepNormalizer_1 = require("./stepNormalizer");
23
+ const stepNormalizer_2 = require("./stepNormalizer");
23
24
  /**
24
25
  * Match every step in every scenario to a POM call / assertion / TODO.
25
26
  * Background steps are also threaded through if the orchestrator passes
@@ -45,7 +46,7 @@ function matchStep(step, pom, pageVar) {
45
46
  // The `step` object itself is treated as immutable — we work off a
46
47
  // local copy so the original Gherkin text is preserved for warnings,
47
48
  // test.step labels, and downstream review reports.
48
- const normalisedText = (0, stepNormalizer_1.normalizeStepText)(step.text);
49
+ const normalisedText = (0, stepNormalizer_2.normalizeStepText)(step.text);
49
50
  const normalisedStep = normalisedText === step.text
50
51
  ? step
51
52
  : { ...step, text: normalisedText };
@@ -339,6 +340,13 @@ const RULES = [
339
340
  // so without cleanSlugTarget the slug includes the parenthetical and
340
341
  // never matches a real URL.
341
342
  const target = cleanSlugTarget(m[1]);
343
+ // v2.2.2: prose guard — see N5e for the rationale.
344
+ if ((0, stepNormalizer_1.looksLikeProse)(target)) {
345
+ return {
346
+ step,
347
+ warning: `URL slug target "${target}" reads like prose, not a path; emitting TODO so the user can supply a real URL fragment.`,
348
+ };
349
+ }
342
350
  return {
343
351
  step,
344
352
  assertion: {
@@ -350,15 +358,20 @@ const RULES = [
350
358
  },
351
359
  },
352
360
  // 11a. URL contains: "<subj> redirected to <description> (URL contains 'X')"
353
- // / "URL contains 'X'" / "Page URL contains 'X'".
354
- // The parenthetical 'X' is the AUTHORITATIVE URL fragment — use it directly
361
+ // / "URL contains 'X'" / "Page URL contains 'X'" /
362
+ // "the current URL contains a path segment 'X'" (v2.2.2).
363
+ // The quoted 'X' is the AUTHORITATIVE URL fragment — use it directly
355
364
  // and ignore the descriptive prose. This must come before rule 11b which is
356
365
  // greedy and would otherwise swallow the parenthetical.
357
366
  // Prefix is `.*?\b` (any chars + word boundary) so `(URL contains "X")`,
358
367
  // `URL contains "X"`, `Page URL contains "X"` all match — `(?:.+?\s)?` was
359
368
  // too strict because it required whitespace immediately before URL.
369
+ // v2.2.2: optional `(?:(?:a|the) )?(?:path |url )?(?:segment |fragment |part )?`
370
+ // between "contains" and the quote handles the LLM dialect
371
+ // "current URL contains a path segment 'X'" — production bug
372
+ // where bdd2pw emitted toContainText on getByText instead of toHaveURL.
360
373
  {
361
- pattern: /^.*?\b(?:URL|url)\s+contains\s+["']([^"']+)["']/i,
374
+ pattern: /^.*?\b(?:URL|url)\s+contains\s+(?:(?:a|the)\s+)?(?:path\s+|url\s+)?(?:segment\s+|fragment\s+|part\s+)?["']([^"']+)["']/i,
362
375
  build: (m, step, _pom, pageVar) => {
363
376
  const fragment = m[1];
364
377
  // Escape regex metacharacters so the URL fragment matches literally.
@@ -389,6 +402,13 @@ const RULES = [
389
402
  // one is descriptive prose and falls through to 11b. cleanSlugTarget
390
403
  // handles both the parenthetical and the lingering inner ` page`.
391
404
  const target = cleanSlugTarget(m[1]);
405
+ // v2.2.2: prose guard — see N5e for the rationale.
406
+ if ((0, stepNormalizer_1.looksLikeProse)(target)) {
407
+ return {
408
+ step,
409
+ warning: `URL slug target "${target}" reads like prose, not a path; emitting TODO so the user can supply a real URL fragment.`,
410
+ };
411
+ }
392
412
  const slug = target
393
413
  .replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
394
414
  .replace(/\s+/g, "[-_/]?");
@@ -523,6 +543,16 @@ const RULES = [
523
543
  build: (m, step, _pom, pageVar) => {
524
544
  // v1.1.4: stripArticles. v1.1.6: also stripParentheticals via cleanSlugTarget.
525
545
  const target = cleanSlugTarget(m[1]);
546
+ // v2.2.2: refuse to slugify English prose — produces regexes that
547
+ // never match real URLs and silently pass for the wrong reason
548
+ // (e.g. "login page without any redirect" → /login[-_/]?page[-_/]?
549
+ // without[-_/]?any[-_/]?redirect/). Fall back to TODO warning.
550
+ if ((0, stepNormalizer_1.looksLikeProse)(target)) {
551
+ return {
552
+ step,
553
+ warning: `URL slug target "${target}" reads like prose, not a path; emitting TODO so the user can supply a real URL fragment.`,
554
+ };
555
+ }
526
556
  const slug = target
527
557
  .replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
528
558
  .replace(/\s+/g, "[-_/]?");
@@ -630,6 +660,13 @@ const RULES = [
630
660
  // for parity with rules 10/11b. Default "success" when the description is
631
661
  // omitted entirely.
632
662
  const target = cleanSlugTarget(m[1] ?? "success");
663
+ // v2.2.2: prose guard — see N5e for the rationale.
664
+ if ((0, stepNormalizer_1.looksLikeProse)(target)) {
665
+ return {
666
+ step,
667
+ warning: `URL slug target "${target}" reads like prose, not a path; emitting TODO so the user can supply a real URL fragment.`,
668
+ };
669
+ }
633
670
  const slug = target
634
671
  .replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
635
672
  .replace(/\s+/g, "[-_/]?");
@@ -1 +1 @@
1
- {"version":3,"file":"stepMatcher.js","sourceRoot":"","sources":["../../src/transformers/stepMatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stepMatcher.js","sourceRoot":"","sources":["../../src/transformers/stepMatcher.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AA0BH,gCAMC;AAMD,8BA6BC;AA3DD,4CAA4C;AAC5C,qDAAkD;AAClD,qDAAqD;AAWrD;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CACvB,IAAY,EACZ,GAAiB,EACjB,OAAe;IAEf,wEAAwE;IACxE,uEAAuE;IACvE,uEAAuE;IACvE,sEAAsE;IACtE,sEAAsE;IACtE,mEAAmE;IACnE,qEAAqE;IACrE,mDAAmD;IACnD,MAAM,cAAc,GAAG,IAAA,kCAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,cAAc,GAAW,cAAc,KAAK,IAAI,CAAC,IAAI;QACzD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,qBAAqB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG;KAC3D,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,IAAI,GAAG,mCAAmC,CAAC;AAYjD,MAAM,KAAK,GAAW;IACpB,iEAAiE;IACjE;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,iJAAiJ,EAAE,GAAG,CAAC;QACtL,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,kEAAkE;YAClE,sBAAsB;YACtB,2DAA2D;YAC3D,mGAAmG;YACnG,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC7D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;oBACL,IAAI;oBACJ,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;iBACrD,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;KACF;IAED,qFAAqF;IACrF,yEAAyE;IACzE,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,iDAAiD;IACjD,EAAE;IACF,yEAAyE;IACzE,wEAAwE;IACxE;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,wHAAwH,EAAE,GAAG,CAAC;QAC7J,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1F;IAED,2DAA2D;IAC3D,uEAAuE;IACvE,oEAAoE;IACpE,yEAAyE;IACzE,yEAAyE;IACzE,iCAAiC;IACjC;QACE,OAAO,EAAE,IAAI,MAAM,CACjB,IAAI,IAAI,4GAA4G,EACpH,GAAG,CACJ;QACD,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAChC,qEAAqE;YACrE,oEAAoE;YACpE,gDAAgD;YAChD,MAAM,MAAM,GAAG,oCAAoC,CAAC;YACpD,MAAM,KAAK,GAAuC,EAAE,CAAC;YACrD,IAAI,EAA0B,CAAC;YAC/B,0DAA0D;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAC5B,IAAI,MAAM,CAAC,IAAI,IAAI,0CAA0C,EAAE,GAAG,CAAC,EACnE,EAAE,CACH,CAAC;YACF,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAElC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,4DAA4D;oBAC5D,qDAAqD;oBACrD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,IAAI,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,CAAC;KACF;IAED,mFAAmF;IACnF,+EAA+E;IAC/E,wEAAwE;IACxE,8DAA8D;IAC9D,wDAAwD;IACxD,sEAAsE;IACtE,oEAAoE;IACpE,+EAA+E;IAC/E;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,+EAA+E,EAAE,GAAG,CAAC;QACpH,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,0EAA0E;YAC1E,2DAA2D;YAC3D,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;KACF;IAED,6DAA6D;IAC7D,uEAAuE;IACvE,oEAAoE;IACpE,qEAAqE;IACrE,iCAAiC;IACjC;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,iHAAiH,EAAE,GAAG,CAAC;QACtJ,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iDAAiD;YAC5E,MAAM,QAAQ,GAAG,YAAY;gBAC3B,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjF,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC7E,CAAC;YACD,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;aACzE,CAAC;QACJ,CAAC;KACF;IAED,6DAA6D;IAC7D;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,iFAAiF,EAAE,GAAG,CAAC;QACnH,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,eAAe;oBACzC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;iBAC9B;aACF,CAAC;QACJ,CAAC;KACF;IAED,8BAA8B;IAC9B;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,gEAAgE,EAAE,GAAG,CAAC;QAClG,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;aAC3E,CAAC;QACJ,CAAC;KACF;IAED,kDAAkD;IAClD;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,yDAAyD,EAAE,GAAG,CAAC;QAC3F,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,GAAG,OAAO,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YACzD,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE;aAC5D,CAAC;QACJ,CAAC;KACF;IAED,iDAAiD;IACjD;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,+CAA+C,EAAE,GAAG,CAAC;QACjF,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,GAAG,OAAO,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YACzD,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE;aAC3D,CAAC;QACJ,CAAC;KACF;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,+EAA+E;IAC/E,uEAAuE;IACvE,0EAA0E;IAC1E,6EAA6E;IAC7E;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,+DAA+D,EAAE,GAAG,CAAC;QACjG,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GACT,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC7D,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,GAAG,OAAO,mBAAmB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7D,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACnC;aACF,CAAC;QACJ,CAAC;KACF;IAED,yDAAyD;IACzD,uDAAuD;IACvD,sEAAsE;IACtE,uEAAuE;IACvE,uEAAuE;IACvE,8EAA8E;IAC9E;QACE,OAAO,EAAE,IAAI,MAAM,CACjB,IAAI,IAAI,kHAAkH,EAC1H,GAAG,CACJ;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,GAAG,OAAO,mBAAmB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7D,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACnC;aACF,CAAC;QACJ,CAAC;KACF;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,wDAAwD;IACxD;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,qDAAqD,EAAE,GAAG,CAAC;QACvF,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,GAAG,OAAO,mBAAmB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7D,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,YAAY;oBACrB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACnC;aACF,CAAC;QACJ,CAAC;KACF;IAED,6FAA6F;IAC7F,mFAAmF;IACnF,8CAA8C;IAC9C;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,gEAAgE,EAAE,GAAG,CAAC;QAClG,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,qEAAqE;YACrE,qDAAqD;YACrD,sDAAsD;YACtD,4EAA4E;YAC5E,yEAAyE;YACzE,qEAAqE;YACrE,4BAA4B;YAC5B,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,mDAAmD;YACnD,IAAI,IAAA,+BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,IAAI;oBACJ,OAAO,EACL,oBAAoB,MAAM,2FAA2F;iBACxH,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,GAAG,OAAO,OAAO;oBAC1B,OAAO,EAAE,WAAW;oBACpB,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAAG;iBACzF;aACF,CAAC;QACJ,CAAC;KACF;IAED,6EAA6E;IAC7E,wDAAwD;IACxD,+DAA+D;IAC/D,0EAA0E;IAC1E,iFAAiF;IACjF,6DAA6D;IAC7D,8EAA8E;IAC9E,gFAAgF;IAChF,yEAAyE;IACzE,sFAAsF;IACtF,gEAAgE;IAChE,kEAAkE;IAClE,6EAA6E;IAC7E;QACE,OAAO,EAAE,yHAAyH;QAClI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,qEAAqE;YACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,GAAG,OAAO,OAAO;oBAC1B,OAAO,EAAE,WAAW;oBACpB,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG;iBACnD;aACF,CAAC;QACJ,CAAC;KACF;IAED,kFAAkF;IAClF,6EAA6E;IAC7E,2EAA2E;IAC3E,4CAA4C;IAC5C;QACE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,iEAAiE,EAAE,GAAG,CAAC;QACnG,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,yEAAyE;YACzE,6DAA6D;YAC7D,gEAAgE;YAChE,sDAAsD;YACtD,8EAA8E;YAC9E,wEAAwE;YACxE,qEAAqE;YACrE,kEAAkE;YAClE,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,mDAAmD;YACnD,IAAI,IAAA,+BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,IAAI;oBACJ,OAAO,EACL,oBAAoB,MAAM,2FAA2F;iBACxH,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM;iBAChB,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;iBACtC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7B,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,GAAG,OAAO,OAAO;oBAC1B,OAAO,EAAE,WAAW;oBACpB,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;iBAChD;aACF,CAAC;QACJ,CAAC;KACF;IAED,yEAAyE;IACzE;QACE,OAAO,EAAE,qEAAqE;QAC9E,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YAC9E,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,GAAG,OAAO,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,SAAS,IAAI,CAAC,GAAG,CAAC;YAC1E,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,WAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;iBAChD;aACF,CAAC;QACJ,CAAC;KACF;IAED,uEAAuE;IACvE;QACE,OAAO,EAAE,2FAA2F;QACpG,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,oDAAoD;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,GAAG,OAAO,OAAO;oBAC1B,OAAO,EAAE,WAAW;oBACpB,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;iBAC9E;aACF,CAAC;QACJ,CAAC;KACF;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,2EAA2E;IAE3E,yEAAyE;IACzE,oEAAoE;IACpE,sEAAsE;IACtE,gEAAgE;IAChE;QACE,OAAO,EACL,0FAA0F;QAC5F,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,8DAA8D;YAC9D,4BAA4B;YAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC7D,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;aACtE,CAAC;QACJ,CAAC;KACF;IAED,gFAAgF;IAChF,uEAAuE;IACvE,yEAAyE;IACzE,wBAAwB;IACxB;QACE,OAAO,EAAE,IAAI,MAAM,CACjB,IAAI,IAAI,iGAAiG,EACzG,GAAG,CACJ;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnB,IAAI;YACJ,UAAU,EAAE,gCAAgC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SAClE,CAAC;KACH;IAED,0FAA0F;IAC1F,2DAA2D;IAC3D,4EAA4E;IAC5E,0EAA0E;IAC1E,sCAAsC;IACtC;QACE,OAAO,EACL,2GAA2G;QAC7G,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACpD,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;KACF;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,+BAA+B;IAC/B,iEAAiE;IACjE,qEAAqE;IACrE,+EAA+E;IAC/E,wEAAwE;IACxE,uEAAuE;IACvE,kDAAkD;IAClD;QACE,OAAO,EAAE,IAAI,MAAM,CACjB,IAAI,IAAI,iGAAiG,EACzG,GAAG,CACJ;QACD,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC7D,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;oBAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;aAChD,CAAC;QACJ,CAAC;KACF;IAED,oEAAoE;IACpE,yEAAyE;IACzE,iEAAiE;IACjE;QACE,OAAO,EAAE,IAAI,MAAM,CACjB,IAAI,IAAI,4GAA4G,EACpH,GAAG,CACJ;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,+EAA+E;YAC/E,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,kEAAkE;YAClE,+DAA+D;YAC/D,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,IAAA,+BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,IAAI;oBACJ,OAAO,EACL,oBAAoB,MAAM,2FAA2F;iBACxH,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM;iBAChB,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;iBACtC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7B,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,GAAG,OAAO,OAAO;oBAC1B,OAAO,EAAE,WAAW;oBACpB,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;iBAChD;aACF,CAAC;QACJ,CAAC;KACF;IAED,sGAAsG;IACtG,yEAAyE;IACzE,2EAA2E;IAC3E,uEAAuE;IACvE,6CAA6C;IAC7C,EAAE;IACF,uEAAuE;IACvE;QACE,OAAO,EACL,+IAA+I;QACjJ,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,KAAK,CAAC;YACV,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,KAAK;oBACH,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClE,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;wBACjD,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,KAAK;oBACH,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;wBAC7D,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChD,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACnC;aACF,CAAC;QACJ,CAAC;KACF;IAED,2EAA2E;IAC3E,uCAAuC;IACvC,EAAE;IACF,iEAAiE;IACjE,wEAAwE;IACxE,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,EAAE;IACF,uEAAuE;IACvE,wEAAwE;IACxE,oEAAoE;IACpE,2EAA2E;IAE3E,iFAAiF;IACjF,0EAA0E;IAC1E,uEAAuE;IACvE,kEAAkE;IAClE;QACE,OAAO,EACL,4GAA4G;QAC9G,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;KACF;IAED,gEAAgE;IAChE,yEAAyE;IACzE,sEAAsE;IACtE,4CAA4C;IAC5C;QACE,OAAO,EACL,sFAAsF;QACxF,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnB,IAAI;YACJ,UAAU,EAAE,gCAAgC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SAClE,CAAC;KACH;IAED,yEAAyE;IACzE,sEAAsE;IACtE,yDAAyD;IACzD;QACE,OAAO,EACL,uFAAuF;QACzF,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnB,IAAI;YACJ,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;SAC7C,CAAC;KACH;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,2EAA2E;IAC3E,qCAAqC;IACrC;QACE,OAAO,EACL,gFAAgF;QAClF,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAChC,8EAA8E;YAC9E,0EAA0E;YAC1E,oBAAoB;YACpB,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;YAClD,mDAAmD;YACnD,IAAI,IAAA,+BAAc,EAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO;oBACL,IAAI;oBACJ,OAAO,EACL,oBAAoB,MAAM,2FAA2F;iBACxH,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM;iBAChB,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;iBACtC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7B,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,GAAG,OAAO,OAAO;oBAC1B,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;iBAChD;aACF,CAAC;QACJ,CAAC;KACF;IAED,gEAAgE;IAChE,gFAAgF;IAChF,sCAAsC;IACtC,4BAA4B;IAC5B,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE;QACE,OAAO,EACL,wGAAwG;QAC1G,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,0EAA0E;YAC1E,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClD,KAAK,CAAC,CAAC;YACP,MAAM,KAAK,GACT,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC7D,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,GAAG,OAAO,kCAAkC,CAAC;YACjD,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE;aAC5D,CAAC;QACJ,CAAC;KACF;IAED,oEAAoE;IACpE,yEAAyE;IACzE,yEAAyE;IACzE,4DAA4D;IAC5D;QACE,OAAO,EACL,mIAAmI;QACrI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC;YACV,IAAI,4CAA4C,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnE,KAAK;oBACH,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;wBAC7D,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAChD,CAAC;iBAAM,IACL,oDAAoD,CAAC,IAAI,CAAC,WAAW,CAAC,EACtE,CAAC;gBACD,KAAK;oBACH,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAClE,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;wBACjD,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChD,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE;oBACT,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,eAAe;oBACxB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;iBACnC;aACF,CAAC;QACJ,CAAC;KACF;IAED,uFAAuF;IACvF,sEAAsE;IACtE,wEAAwE;IACxE,0EAA0E;IAC1E,yEAAyE;IACzE,8BAA8B;IAC9B,EAAE;IACF,0BAA0B;IAC1B,iEAAiE;IACjE,4CAA4C;IAC5C,4DAA4D;IAC5D;QACE,OAAO,EACL,kKAAkK;QACpK,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE;gBAC9C,UAAU,CAAC,IAAI,CAAC;gBAChB,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;YACH,oEAAoE;YACpE,kEAAkE;YAClE,uDAAuD;YACvD,gDAAgD;YAChD,MAAM,WAAW,GAAG,KAAK;gBACvB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;gBACjC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE;aAC5D,CAAC;QACJ,CAAC;KACF;IAED,oEAAoE;IACpE,mDAAmD;IACnD,yEAAyE;IACzE,kCAAkC;IAClC,+DAA+D;IAC/D,iEAAiE;IACjE,uEAAuE;IACvE;QACE,OAAO,EACL,iIAAiI;QACnI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,uDAAuD,CACxD,CAAC;YACF,IAAI,WAAmB,CAAC;YACxB,wEAAwE;YACxE,mEAAmE;YACnE,uEAAuE;YACvE,iEAAiE;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,iEAAiE;YACjE,kEAAkE;YAClE,+DAA+D;YAC/D,+CAA+C;YAC/C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE;oBAC9C,UAAU,CAAC,IAAI,CAAC;oBAChB,QAAQ;oBACR,MAAM;iBACP,CAAC,CAAC;gBACH,WAAW,GAAG,KAAK;oBACjB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;oBACjC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzD,MAAM,KAAK,GACT,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAClE,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBACjD,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;gBACpD,WAAW,GAAG,KAAK;oBACjB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;oBACjC,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;iBAAM,IAAI,2DAA2D,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrF,MAAM,KAAK,GACT,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC7D,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC9C,WAAW,GAAG,KAAK;oBACjB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;oBACjC,CAAC,CAAC,GAAG,OAAO,kCAAkC,CAAC;YACnD,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,KAAK,GACT,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC7D,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC9C,WAAW,GAAG,KAAK;oBACjB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;oBACjC,CAAC,CAAC,GAAG,OAAO,kCAAkC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBACpD,WAAW,GAAG,KAAK;oBACjB,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE;oBACjC,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO;gBACL,IAAI;gBACJ,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE;aAChE,CAAC;QACJ,CAAC;KACF;CACF,CAAC;AAEF;;;GAGG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,GAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,KAAa;IAEb,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;QAC1E,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC9B,CAAC,CAAC;IACH,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;SAC/E,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,OAAO;YACjC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,SAAS,CAChB,GAAiB,EACjB,IAAY,EACZ,iBAA2B,EAC3B,OAA6B,EAAE;IAE/B,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,iBAAiB;IACjB,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAEhB,kCAAkC;IAClC,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;IAClB,CAAC;IAED,2DAA2D;IAC3D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CACnF,CAAC;QACF,uDAAuD;QACvD,CAAC,GAAG,aAAa,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAC9F,CAAC;QACF,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAChB,mEAAmE;QACnE,+DAA+D;QAC/D,sEAAsE;QACtE,oEAAoE;QACpE,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,uEAAuE;IACvE,6DAA6D;IAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAChB,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CACxB,GAAiB,EACjB,WAAmB,EACnB,OAAyC;IAEzC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACjE,IAAI,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI;SACR,OAAO,CACN,8EAA8E,EAC9E,EAAE,CACH;SACA,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAC7B,IAAY,EACZ,GAAiB,EACjB,oBAA8B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC;IAElE,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,iCAAiC;IACjC,OAAO,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,CAAC;SACL,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC;SACpC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,mBAAmB,CAAC,CAAS;IACpC,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAS;IAChC,OAAO,aAAa,CAClB,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CACvD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO;SACpB,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;SACpD,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,2EAA2E;IAC3E,wEAAwE;IACxE,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,OAAe,EAAE,IAAY;IACzD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,mEAAmE;IACnE,oEAAoE;IACpE,oEAAoE;IACpE,yCAAyC;IACzC,OAAO,GAAG,OAAO,gFAAgF,IAAI,aAAa,CAAC;AACrH,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAAe,EAAE,IAAY;IAC7D,OAAO,GAAG,OAAO,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;AACtE,CAAC"}
@@ -29,6 +29,7 @@
29
29
  * We don't want to turn a custom domain step into a different action.
30
30
  * - Cheap: pure regex; no NLP.
31
31
  */
32
+ export declare function looksLikeProse(target: string): boolean;
32
33
  /**
33
34
  * Apply every rewrite pass once. Each pass is independently idempotent
34
35
  * and order-insensitive (apart from `tidyWhitespace`, which runs last).
@@ -31,6 +31,7 @@
31
31
  * - Cheap: pure regex; no NLP.
32
32
  */
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.looksLikeProse = looksLikeProse;
34
35
  exports.normalizeStepText = normalizeStepText;
35
36
  /* ─── individual rewrite passes ───────────────────────────────────── */
36
37
  /** Curly/smart quotes → straight quotes. Copy-paste from docs is the
@@ -130,6 +131,45 @@ function staysOnPage(s) {
130
131
  function expandImOn(s) {
131
132
  return s.replace(/\bI'm\s+on\b/gi, "I am on");
132
133
  }
134
+ /**
135
+ * v2.2.2 — return true when the target string reads like English prose
136
+ * rather than a URL fragment. The slugifier in rules 10/11b/N4/N5e would
137
+ * otherwise produce regexes like `new RegExp("login[-_/]?page[-_/]?
138
+ * without[-_/]?any[-_/]?redirect")` which never match a real URL but
139
+ * silently pass strict-mode-less assertions for the wrong reason.
140
+ *
141
+ * Heuristics:
142
+ * - Contains a "stop word" that's NEVER in a URL path (with, without,
143
+ * any, the, and, or, but, after, before, while, where, when, redirect,
144
+ * redirection).
145
+ * - More than 5 whitespace-separated tokens — real URL paths use slashes
146
+ * and dashes, not spaces.
147
+ * - Mentions "redirect"/"redirection" anywhere (that's a verb describing
148
+ * navigation behaviour, not a path segment).
149
+ *
150
+ * Callers should treat true as "abandon slug, emit warning instead".
151
+ */
152
+ const URL_PROSE_STOP_WORDS = new Set([
153
+ "with", "without", "any", "the", "a", "an",
154
+ "and", "or", "but", "if", "after", "before", "while",
155
+ "where", "when", "since", "until", "via",
156
+ "redirect", "redirection", "redirected", "redirects",
157
+ ]);
158
+ function looksLikeProse(target) {
159
+ const tokens = target.trim().split(/\s+/).filter(Boolean);
160
+ if (tokens.length > 5)
161
+ return true;
162
+ if (/\bredirect/i.test(target))
163
+ return true;
164
+ let stopHits = 0;
165
+ for (const t of tokens) {
166
+ if (URL_PROSE_STOP_WORDS.has(t.toLowerCase()))
167
+ stopHits += 1;
168
+ if (stopHits >= 2)
169
+ return true;
170
+ }
171
+ return false;
172
+ }
133
173
  /* ─── public API ──────────────────────────────────────────────────── */
134
174
  const PASSES = [
135
175
  unifyQuotes,
@@ -1 +1 @@
1
- {"version":3,"file":"stepNormalizer.js","sourceRoot":"","sources":["../../src/transformers/stepNormalizer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;AA8HH,8CAIC;AAhID,yEAAyE;AAEzE;4DAC4D;AAC5D,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC;SACL,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAE,UAAU;SACnC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAE,UAAU;SACnC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAa,WAAW;AACnD,CAAC;AAED;qEACqE;AACrE,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,CAAC;SACL,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;SAC7B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,0BAA0B,CAAC,CAAS;IAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACpC,kEAAkE;IAClE,sEAAsE;IACtE,uEAAuE;IACvE,uEAAuE;IACvE,iEAAiE;IACjE,IACE,yDAAyD,CAAC,IAAI,CAAC,KAAK,CAAC,EACrE,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,QAAQ,CAAC,CAAS;IACzB,OAAO,CAAC,CAAC,OAAO,CAAC,wCAAwC,EAAE,cAAc,CAAC,CAAC;AAC7E,CAAC;AAED;;;;6DAI6D;AAC7D,SAAS,oBAAoB,CAAC,CAAS;IACrC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,8DAA8D;IAC9D,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CACd,iFAAiF,EACjF,cAAc,CACf,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,yEAAyE;AAEzE,MAAM,MAAM,GAAiC;IAC3C,WAAW;IACX,UAAU;IACV,QAAQ;IACR,WAAW;IACX,oBAAoB;IACpB,0BAA0B;IAC1B,cAAc;CACf,CAAC;AAEF;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,MAAM;QAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"stepNormalizer.js","sourceRoot":"","sources":["../../src/transformers/stepNormalizer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vijaypjavvadi/bdd2pw",
3
- "version": "2.2.0",
3
+ "version": "2.2.2",
4
4
  "description": "Scaffold runnable Playwright TypeScript tests from Gherkin .feature files. Detects existing Page Objects, scans live pages via Microsoft Playwright MCP, emits POMs + specs, ready for execution. CLI + HTTP service. Optional governed LLM fallback (Anthropic / OpenAI / Gemini).",
5
5
  "bin": {
6
6
  "bdd2pw": "dist/cli.js"
@@ -1,15 +1,24 @@
1
1
  /**
2
- * Self-healing locator helper — v1.2 scaffold.
2
+ * Self-healing locator helper — v1.2.1 scaffold (bdd2pw 2.2.1+).
3
3
  *
4
4
  * GENERATED FILE. Do not edit directly; this file is rewritten on every
5
5
  * `bdd2pw scaffold --self-healing` invocation. To customise, fork it under
6
6
  * a different filename and update the `tsconfig.json` `paths` mapping.
7
7
  *
8
- * What this provides today (v1.2)
9
- * --------------------------------
8
+ * v1.2 → v1.2.1: action-time healing is now applied via INSTANCE
9
+ * MUTATION instead of a Proxy wrapper. v1.2's Proxy broke Playwright
10
+ * `expect(loc).toBeVisible()` because the matcher does a private-field
11
+ * probe (`#frame`) that doesn't survive a generic Proxy — every spec
12
+ * that called expect() on a POM field died synchronously with
13
+ * `Error: toBeVisible can be only used with Locator object`. v1.2.1
14
+ * preserves Locator identity so expect() works normally while keeping
15
+ * the action-time heal-and-retry behaviour intact.
16
+ *
17
+ * What this provides today (v1.2.1)
18
+ * ----------------------------------
10
19
  * - `healOrThrow(page, { preferred, context })` — registers the locator
11
- * to `artefacts/heal-events.jsonl` AND wraps it in a `Proxy` that
12
- * intercepts every healable action method (.click, .fill, .check,
20
+ * to `artefacts/heal-events.jsonl` AND mutates it in place so every
21
+ * healable action method (.click, .fill, .check,
13
22
  * .selectOption, .hover, .focus, .textContent, .innerText,
14
23
  * .getAttribute, .isVisible, .waitFor, .press, .type, .setChecked,
15
24
  * .uncheck, .clear, .scrollIntoViewIfNeeded). On the FIRST action
@@ -174,8 +183,10 @@ function heartbeat(context: HealContext): void {
174
183
  }
175
184
 
176
185
  /**
177
- * Register a locator with the self-healing pipeline and return a Proxy
178
- * that performs action-time healing on failure (v1.2).
186
+ * Register a locator with the self-healing pipeline and mutate it in
187
+ * place so action methods perform action-time healing on failure
188
+ * (v1.2.1). Returns the SAME Locator instance — identity is preserved,
189
+ * so `expect(returned).toBeVisible()` works normally.
179
190
  */
180
191
  export function healOrThrow(page: Page, opts: HealOrThrowOptions): Locator {
181
192
  appendEvent({
@@ -191,7 +202,7 @@ export function healOrThrow(page: Page, opts: HealOrThrowOptions): Locator {
191
202
  return wrapLocatorForHealing(page, opts.preferred, opts.context);
192
203
  }
193
204
 
194
- /* ─── v1.2 action-time healing ────────────────────────────────────── */
205
+ /* ─── v1.2.1 action-time healing (instance mutation, no Proxy) ────── */
195
206
 
196
207
  /** Healable Locator action methods — i.e. ones that throw on element-not-
197
208
  * found / timeout. Read methods like .count() / .all() return 0 / [] and
@@ -291,40 +302,77 @@ async function fetchHealCandidate(
291
302
  }
292
303
 
293
304
  /**
294
- * Wrap a Locator in a Proxy that retries failed actions against a
295
- * service-suggested candidate selector. Once a candidate is verified to
296
- * work for any method on this Locator, subsequent calls use the
297
- * candidate transparently.
305
+ * Add action-time healing to a Locator by MUTATING IT IN PLACE.
306
+ *
307
+ * v1.2 used a `new Proxy(...)` wrapper here, which broke any spec that
308
+ * called `await expect(loc).toBeVisible()` — Playwright's matchers do
309
+ * a private-field probe (`#frame` and friends) that doesn't survive a
310
+ * generic Proxy. Result: 100% test fail rate on any spec that asserts
311
+ * against a POM field, with the unhelpful error
312
+ * `Error: toBeVisible can be only used with Locator object`.
313
+ *
314
+ * v1.2.1 replaces the Proxy with direct method override:
315
+ * - For every healable method (click, fill, …), capture the original
316
+ * bound function via closure BEFORE mutation.
317
+ * - Replace the property on the Locator INSTANCE with a wrapper that
318
+ * try/catches and heals on failure.
319
+ * - Return the original Locator unchanged in identity. `instanceof
320
+ * Locator` still holds; private-field probes still work; `expect()`
321
+ * accepts it normally; non-healable methods (.locator(), .first(),
322
+ * etc.) keep their prototype's implementation untouched.
323
+ *
324
+ * After a successful heal, `healedLocator` is set in the closure and
325
+ * subsequent calls (on any healable method on this same instance) go
326
+ * through it transparently. Cross-method healing of one cached
327
+ * candidate, exactly as v1.2 promised — but without sacrificing
328
+ * matcher compatibility.
298
329
  */
299
330
  function wrapLocatorForHealing(page: Page, original: Locator, context: HealContext): Locator {
300
331
  let healedLocator: Locator | null = null;
301
332
 
302
- const proxy = new Proxy(original, {
303
- get(target, prop, _receiver) {
304
- const live: Locator = healedLocator ?? target;
333
+ for (const method of HEALABLE_METHODS) {
334
+ // Capture the original method BEFORE mutation — otherwise we'd
335
+ // recurse infinitely when our wrapper tries to call the "original".
336
+ const origFn = (original as unknown as Record<string, unknown>)[method];
337
+ if (typeof origFn !== "function") continue;
305
338
 
306
- if (typeof prop !== "string") {
307
- const v = Reflect.get(live, prop, live);
308
- return typeof v === "function" ? (v as Function).bind(live) : v;
339
+ (original as unknown as Record<string, unknown>)[method] = async function (
340
+ ...args: unknown[]
341
+ ) {
342
+ // Once healed, route every healable call through the candidate.
343
+ if (healedLocator) {
344
+ const fn = (healedLocator as unknown as Record<string, Function>)[method];
345
+ return await fn.apply(healedLocator, args);
309
346
  }
310
347
 
311
- const value = Reflect.get(live, prop, live);
312
- if (typeof value !== "function") return value;
313
- if (!HEALABLE_METHODS.has(prop)) return (value as Function).bind(live);
348
+ try {
349
+ return await (origFn as (...a: unknown[]) => Promise<unknown>).apply(
350
+ original,
351
+ args,
352
+ );
353
+ } catch (err) {
354
+ const errMsg = err instanceof Error ? err.message : String(err);
355
+ const original_selector = locatorSelector(original);
356
+ appendEvent({
357
+ ts: new Date().toISOString(),
358
+ event: "heal_attempt",
359
+ page: context.page,
360
+ name: context.name,
361
+ scenario_name: currentScenarioName(),
362
+ method,
363
+ original: original_selector,
364
+ healed: null,
365
+ confidence: null,
366
+ error: errMsg.slice(0, 500),
367
+ pid: process.pid,
368
+ cwd: process.cwd(),
369
+ });
314
370
 
315
- // Healable action: wrap so we can intercept rejections.
316
- const method = prop;
317
- return async (...args: unknown[]) => {
318
- try {
319
- return await (value as (...a: unknown[]) => Promise<unknown>).apply(live, args);
320
- } catch (err) {
321
- // Already healed once and STILL failing → real defect; rethrow.
322
- if (healedLocator) throw err;
323
- const errMsg = err instanceof Error ? err.message : String(err);
324
- const original_selector = locatorSelector(target);
371
+ const candidate = await fetchHealCandidate(context, original_selector, errMsg);
372
+ if (!candidate) {
325
373
  appendEvent({
326
374
  ts: new Date().toISOString(),
327
- event: "heal_attempt",
375
+ event: "heal_unavailable",
328
376
  page: context.page,
329
377
  name: context.name,
330
378
  scenario_name: currentScenarioName(),
@@ -336,87 +384,69 @@ function wrapLocatorForHealing(page: Page, original: Locator, context: HealConte
336
384
  pid: process.pid,
337
385
  cwd: process.cwd(),
338
386
  });
387
+ throw err;
388
+ }
339
389
 
340
- const candidate = await fetchHealCandidate(context, original_selector, errMsg);
341
- if (!candidate) {
342
- appendEvent({
343
- ts: new Date().toISOString(),
344
- event: "heal_unavailable",
345
- page: context.page,
346
- name: context.name,
347
- scenario_name: currentScenarioName(),
348
- method,
349
- original: original_selector,
350
- healed: null,
351
- confidence: null,
352
- error: errMsg.slice(0, 500),
353
- pid: process.pid,
354
- cwd: process.cwd(),
355
- });
356
- throw err;
357
- }
358
-
359
- let candidateLocator: Locator;
360
- try {
361
- candidateLocator = page.locator(candidate.selector);
362
- } catch {
363
- appendEvent({
364
- ts: new Date().toISOString(),
365
- event: "heal_unavailable",
366
- page: context.page,
367
- name: context.name,
368
- scenario_name: currentScenarioName(),
369
- method,
370
- original: original_selector,
371
- healed: candidate.selector,
372
- confidence: candidate.confidence,
373
- error: "candidate selector failed to construct",
374
- pid: process.pid,
375
- cwd: process.cwd(),
376
- });
377
- throw err;
378
- }
390
+ let candidateLocator: Locator;
391
+ try {
392
+ candidateLocator = page.locator(candidate.selector);
393
+ } catch {
394
+ appendEvent({
395
+ ts: new Date().toISOString(),
396
+ event: "heal_unavailable",
397
+ page: context.page,
398
+ name: context.name,
399
+ scenario_name: currentScenarioName(),
400
+ method,
401
+ original: original_selector,
402
+ healed: candidate.selector,
403
+ confidence: candidate.confidence,
404
+ error: "candidate selector failed to construct",
405
+ pid: process.pid,
406
+ cwd: process.cwd(),
407
+ });
408
+ throw err;
409
+ }
379
410
 
380
- try {
381
- const retryFn = (candidateLocator as unknown as Record<string, Function>)[method];
382
- const retryResult = await retryFn.apply(candidateLocator, args);
383
- healedLocator = candidateLocator;
384
- appendEvent({
385
- ts: new Date().toISOString(),
386
- event: "healed",
387
- page: context.page,
388
- name: context.name,
389
- scenario_name: currentScenarioName(),
390
- method,
391
- original: original_selector,
392
- healed: candidate.selector,
393
- confidence: candidate.confidence,
394
- error: errMsg.slice(0, 500),
395
- pid: process.pid,
396
- cwd: process.cwd(),
397
- });
398
- return retryResult;
399
- } catch (retryErr) {
400
- appendEvent({
401
- ts: new Date().toISOString(),
402
- event: "heal_unavailable",
403
- page: context.page,
404
- name: context.name,
405
- scenario_name: currentScenarioName(),
406
- method,
407
- original: original_selector,
408
- healed: candidate.selector,
409
- confidence: candidate.confidence,
410
- error: retryErr instanceof Error ? retryErr.message.slice(0, 500) : String(retryErr).slice(0, 500),
411
- pid: process.pid,
412
- cwd: process.cwd(),
413
- });
414
- throw err;
415
- }
411
+ try {
412
+ const retryFn = (candidateLocator as unknown as Record<string, Function>)[method];
413
+ const retryResult = await retryFn.apply(candidateLocator, args);
414
+ healedLocator = candidateLocator;
415
+ appendEvent({
416
+ ts: new Date().toISOString(),
417
+ event: "healed",
418
+ page: context.page,
419
+ name: context.name,
420
+ scenario_name: currentScenarioName(),
421
+ method,
422
+ original: original_selector,
423
+ healed: candidate.selector,
424
+ confidence: candidate.confidence,
425
+ error: errMsg.slice(0, 500),
426
+ pid: process.pid,
427
+ cwd: process.cwd(),
428
+ });
429
+ return retryResult;
430
+ } catch (retryErr) {
431
+ appendEvent({
432
+ ts: new Date().toISOString(),
433
+ event: "heal_unavailable",
434
+ page: context.page,
435
+ name: context.name,
436
+ scenario_name: currentScenarioName(),
437
+ method,
438
+ original: original_selector,
439
+ healed: candidate.selector,
440
+ confidence: candidate.confidence,
441
+ error: retryErr instanceof Error ? retryErr.message.slice(0, 500) : String(retryErr).slice(0, 500),
442
+ pid: process.pid,
443
+ cwd: process.cwd(),
444
+ });
445
+ throw err;
416
446
  }
417
- };
418
- },
419
- });
447
+ }
448
+ };
449
+ }
420
450
 
421
- return proxy;
451
+ return original;
422
452
  }