@testmuai/playwright-bindings 0.1.26 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/actionEngine.d.ts +37 -0
  2. package/dist/actionEngine.d.ts.map +1 -0
  3. package/dist/actionEngine.js +194 -0
  4. package/dist/actionEngine.js.map +1 -0
  5. package/dist/actionSpecs.d.ts +35 -0
  6. package/dist/actionSpecs.d.ts.map +1 -0
  7. package/dist/actionSpecs.js +354 -0
  8. package/dist/actionSpecs.js.map +1 -0
  9. package/dist/capability.d.ts +3 -5
  10. package/dist/capability.d.ts.map +1 -1
  11. package/dist/capability.js +66 -6
  12. package/dist/capability.js.map +1 -1
  13. package/dist/configure.d.ts +16 -0
  14. package/dist/configure.d.ts.map +1 -1
  15. package/dist/configure.js +14 -0
  16. package/dist/configure.js.map +1 -1
  17. package/dist/errors.d.ts +19 -0
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js +29 -0
  20. package/dist/errors.js.map +1 -1
  21. package/dist/healCache.d.ts +28 -0
  22. package/dist/healCache.d.ts.map +1 -0
  23. package/dist/healCache.js +17 -0
  24. package/dist/healCache.js.map +1 -0
  25. package/dist/healPatch.d.ts.map +1 -1
  26. package/dist/healPatch.js +45 -3
  27. package/dist/healPatch.js.map +1 -1
  28. package/dist/helpers/assertion.d.ts.map +1 -1
  29. package/dist/helpers/assertion.js +18 -0
  30. package/dist/helpers/assertion.js.map +1 -1
  31. package/dist/helpers/assertionV3.d.ts +67 -0
  32. package/dist/helpers/assertionV3.d.ts.map +1 -0
  33. package/dist/helpers/assertionV3.js +384 -0
  34. package/dist/helpers/assertionV3.js.map +1 -0
  35. package/dist/helpers/condition.d.ts +84 -0
  36. package/dist/helpers/condition.d.ts.map +1 -0
  37. package/dist/helpers/condition.js +292 -0
  38. package/dist/helpers/condition.js.map +1 -0
  39. package/dist/helpers/cookies.d.ts +12 -0
  40. package/dist/helpers/cookies.d.ts.map +1 -0
  41. package/dist/helpers/cookies.js +66 -0
  42. package/dist/helpers/cookies.js.map +1 -0
  43. package/dist/helpers/coordinateResolver.d.ts +29 -0
  44. package/dist/helpers/coordinateResolver.d.ts.map +1 -0
  45. package/dist/helpers/coordinateResolver.js +118 -0
  46. package/dist/helpers/coordinateResolver.js.map +1 -0
  47. package/dist/helpers/coordinateResolverRead.d.ts +36 -0
  48. package/dist/helpers/coordinateResolverRead.d.ts.map +1 -0
  49. package/dist/helpers/coordinateResolverRead.js +107 -0
  50. package/dist/helpers/coordinateResolverRead.js.map +1 -0
  51. package/dist/helpers/dialog.d.ts +29 -0
  52. package/dist/helpers/dialog.d.ts.map +1 -0
  53. package/dist/helpers/dialog.js +35 -0
  54. package/dist/helpers/dialog.js.map +1 -0
  55. package/dist/helpers/drag.d.ts +36 -1
  56. package/dist/helpers/drag.d.ts.map +1 -1
  57. package/dist/helpers/drag.js +267 -0
  58. package/dist/helpers/drag.js.map +1 -1
  59. package/dist/helpers/executeApi.d.ts +2 -0
  60. package/dist/helpers/executeApi.d.ts.map +1 -1
  61. package/dist/helpers/executeApi.js +30 -10
  62. package/dist/helpers/executeApi.js.map +1 -1
  63. package/dist/helpers/executeJs.d.ts.map +1 -1
  64. package/dist/helpers/executeJs.js +46 -3
  65. package/dist/helpers/executeJs.js.map +1 -1
  66. package/dist/helpers/gesture.d.ts +45 -0
  67. package/dist/helpers/gesture.d.ts.map +1 -0
  68. package/dist/helpers/gesture.js +131 -0
  69. package/dist/helpers/gesture.js.map +1 -0
  70. package/dist/helpers/healCascade.d.ts +57 -0
  71. package/dist/helpers/healCascade.d.ts.map +1 -0
  72. package/dist/helpers/healCascade.js +363 -0
  73. package/dist/helpers/healCascade.js.map +1 -0
  74. package/dist/helpers/png.d.ts +3 -0
  75. package/dist/helpers/png.d.ts.map +1 -0
  76. package/dist/helpers/png.js +18 -0
  77. package/dist/helpers/png.js.map +1 -0
  78. package/dist/helpers/screenshot.d.ts +27 -0
  79. package/dist/helpers/screenshot.d.ts.map +1 -1
  80. package/dist/helpers/screenshot.js +56 -0
  81. package/dist/helpers/screenshot.js.map +1 -1
  82. package/dist/helpers/scrollUntil.d.ts +13 -0
  83. package/dist/helpers/scrollUntil.d.ts.map +1 -0
  84. package/dist/helpers/scrollUntil.js +88 -0
  85. package/dist/helpers/scrollUntil.js.map +1 -0
  86. package/dist/helpers/tabs.d.ts +42 -1
  87. package/dist/helpers/tabs.d.ts.map +1 -1
  88. package/dist/helpers/tabs.js +259 -5
  89. package/dist/helpers/tabs.js.map +1 -1
  90. package/dist/helpers/text.d.ts +15 -0
  91. package/dist/helpers/text.d.ts.map +1 -0
  92. package/dist/helpers/text.js +24 -0
  93. package/dist/helpers/text.js.map +1 -0
  94. package/dist/helpers/textNormalize.d.ts +18 -0
  95. package/dist/helpers/textNormalize.d.ts.map +1 -0
  96. package/dist/helpers/textNormalize.js +39 -0
  97. package/dist/helpers/textNormalize.js.map +1 -0
  98. package/dist/helpers/textualRead.d.ts +37 -0
  99. package/dist/helpers/textualRead.d.ts.map +1 -0
  100. package/dist/helpers/textualRead.js +211 -0
  101. package/dist/helpers/textualRead.js.map +1 -0
  102. package/dist/helpers/vision.d.ts +2 -0
  103. package/dist/helpers/vision.d.ts.map +1 -1
  104. package/dist/helpers/vision.js +11 -0
  105. package/dist/helpers/vision.js.map +1 -1
  106. package/dist/helpers/visionV3.d.ts +38 -0
  107. package/dist/helpers/visionV3.d.ts.map +1 -0
  108. package/dist/helpers/visionV3.js +291 -0
  109. package/dist/helpers/visionV3.js.map +1 -0
  110. package/dist/helpers/wait.d.ts +14 -1
  111. package/dist/helpers/wait.d.ts.map +1 -1
  112. package/dist/helpers/wait.js +25 -0
  113. package/dist/helpers/wait.js.map +1 -1
  114. package/dist/index.d.ts +29 -3
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +23 -4
  117. package/dist/index.js.map +1 -1
  118. package/dist/log.d.ts +4 -1
  119. package/dist/log.d.ts.map +1 -1
  120. package/dist/log.js +8 -3
  121. package/dist/log.js.map +1 -1
  122. package/dist/rankedLocator.d.ts +27 -0
  123. package/dist/rankedLocator.d.ts.map +1 -0
  124. package/dist/rankedLocator.js +85 -0
  125. package/dist/rankedLocator.js.map +1 -0
  126. package/dist/reporters/index.d.ts +2 -0
  127. package/dist/reporters/index.d.ts.map +1 -1
  128. package/dist/reporters/index.js.map +1 -1
  129. package/dist/reporters/lt.d.ts.map +1 -1
  130. package/dist/reporters/lt.js +7 -1
  131. package/dist/reporters/lt.js.map +1 -1
  132. package/dist/routeFailure.d.ts +9 -0
  133. package/dist/routeFailure.d.ts.map +1 -0
  134. package/dist/routeFailure.js +34 -0
  135. package/dist/routeFailure.js.map +1 -0
  136. package/dist/session.d.ts.map +1 -1
  137. package/dist/session.js +21 -0
  138. package/dist/session.js.map +1 -1
  139. package/dist/step.d.ts +10 -0
  140. package/dist/step.d.ts.map +1 -1
  141. package/dist/step.js +14 -1
  142. package/dist/step.js.map +1 -1
  143. package/dist/testConfig.d.ts.map +1 -1
  144. package/dist/testConfig.js +8 -1
  145. package/dist/testConfig.js.map +1 -1
  146. package/dist/vars.d.ts +10 -0
  147. package/dist/vars.d.ts.map +1 -1
  148. package/dist/vars.js +30 -3
  149. package/dist/vars.js.map +1 -1
  150. package/dist/visionLocator.d.ts +53 -0
  151. package/dist/visionLocator.d.ts.map +1 -0
  152. package/dist/visionLocator.js +117 -0
  153. package/dist/visionLocator.js.map +1 -0
  154. package/package.json +2 -2
@@ -0,0 +1,85 @@
1
+ import { locator } from './visionLocator.js';
2
+ import { log } from './log.js';
3
+ // Async action methods that can fail on a wrong/non-actionable element and
4
+ // for which a description-based vision retry is meaningful (PY set + the
5
+ // PW-JS method-name spellings).
6
+ const HEAL_ACTIONS = new Set([
7
+ 'click', 'dblclick', 'fill', 'type', 'press', 'pressSequentially',
8
+ 'check', 'uncheck', 'setChecked', 'selectOption', 'setInputFiles',
9
+ 'hover', 'tap', 'clear', 'focus', 'dragTo',
10
+ ]);
11
+ const UNWRAP = Symbol('testmu.rankedLocator.unwrap');
12
+ /** PW-JS raises plain Errors (name 'Error') prefixed 'locator.<method>:', or
13
+ * TimeoutErrors. Match those shapes by name/message — never instanceof
14
+ * (nested playwright installs), and never our own named error classes. */
15
+ function isPlaywrightActionError(e) {
16
+ const err = e;
17
+ if (!err || typeof err.message !== 'string')
18
+ return false;
19
+ if (err.name === 'TimeoutError')
20
+ return true;
21
+ if (err.name !== 'Error')
22
+ return false;
23
+ return /^\s*locator\.\w+/i.test(err.message)
24
+ || err.message.includes('strict mode violation')
25
+ || err.message.includes('Target page, context or browser has been closed');
26
+ }
27
+ function unwrapArg(a) {
28
+ const rec = a;
29
+ return rec && typeof rec === 'object' && rec[UNWRAP] ? rec[UNWRAP] : a;
30
+ }
31
+ /** Wrap a ranked MATCH so a genuine Playwright action error heals via the
32
+ * description (VisionLocator). Non-action members pass through bound. */
33
+ export function _makeHealingLocator(page, loc, description) {
34
+ return new Proxy(loc, {
35
+ get(target, prop, receiver) {
36
+ if (prop === UNWRAP)
37
+ return loc;
38
+ const attr = Reflect.get(target, prop, receiver);
39
+ if (typeof prop !== 'string' ||
40
+ !HEAL_ACTIONS.has(prop) ||
41
+ !description ||
42
+ typeof attr !== 'function') {
43
+ // Bind functions to the real locator so internal `this` stays intact.
44
+ return typeof attr === 'function' ? attr.bind(loc) : attr;
45
+ }
46
+ return async (...args) => {
47
+ // Unwrap wrapped locator args (e.g. dragTo(target)) so Playwright's
48
+ // own type checks on the argument still pass.
49
+ const plain = args.map(unwrapArg);
50
+ try {
51
+ return await attr.apply(loc, plain);
52
+ }
53
+ catch (e) {
54
+ if (!isPlaywrightActionError(e))
55
+ throw e;
56
+ log.helper(`[ranked] '${prop}' failed on matched selector (${e.name}); healing via description`);
57
+ const vision = locator(page, { description });
58
+ // VisionLocator implements a subset of HEAL_ACTIONS; surface the
59
+ // ORIGINAL Playwright error for a verb it lacks.
60
+ const method = vision[prop];
61
+ if (typeof method !== 'function')
62
+ throw e;
63
+ return await method.apply(vision, plain);
64
+ }
65
+ };
66
+ },
67
+ });
68
+ }
69
+ /**
70
+ * Return the first locator whose count() > 0, in rank order.
71
+ * See module docstring for V3 vs V4 exhaustion semantics.
72
+ */
73
+ export async function resolveRankedLocator(page, locators, description = '') {
74
+ for (const loc of locators) {
75
+ if ((await loc.count()) > 0) {
76
+ return description ? _makeHealingLocator(page, loc, description) : loc;
77
+ }
78
+ }
79
+ if (description)
80
+ return locator(page, { description });
81
+ const err = new Error('ranked locator resolution exhausted — no selector matched');
82
+ err.name = 'TimeoutError';
83
+ throw err;
84
+ }
85
+ //# sourceMappingURL=rankedLocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rankedLocator.js","sourceRoot":"","sources":["../src/rankedLocator.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export interface ElementBounds {
6
6
  }
7
7
  export interface EndStepOpts {
8
8
  instructionId?: string;
9
+ /** Whether any action in the step attempted a heal. Shipped unconditionally. */
10
+ autoHeal?: boolean;
9
11
  }
10
12
  export interface Reporter {
11
13
  beginTest(name: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,OAAO,EACX,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAMD,wBAAgB,cAAc,IAAI,QAAQ,CAEzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,OAAO,EACX,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,QAAQ,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAMD,wBAAgB,cAAc,IAAI,QAAQ,CAEzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporters/index.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;AACvF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lt.d.ts","sourceRoot":"","sources":["../../src/reporters/lt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIvE;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,QAAQ;IACzC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAK;IAEpB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;YAIZ,MAAM;IAUd,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrE,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,OAAO,EACX,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC;IAaV,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7E,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
1
+ {"version":3,"file":"lt.d.ts","sourceRoot":"","sources":["../../src/reporters/lt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIvE;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,QAAQ;IACzC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAK;IAEpB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;YAIZ,MAAM;IAUd,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrE,OAAO,CACX,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,OAAO,EACX,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,IAAI,CAAC;IAkBV,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7E,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
@@ -1,5 +1,5 @@
1
1
  import { log } from '../log.js';
2
- import { get } from '../configure.js';
2
+ import { get, isV3 } from '../configure.js';
3
3
  /**
4
4
  * LambdaTest dashboard reporter.
5
5
  *
@@ -71,6 +71,12 @@ export class LTReporter {
71
71
  };
72
72
  if (opts?.instructionId)
73
73
  args['instructionId'] = opts.instructionId;
74
+ // V3-only (false when no heal), matching PY/C# which have no V4 path. The
75
+ // server reads it into steps.json `autoHeal` for the per-step badge.
76
+ // Gated so the V4 wire payload stays byte-identical (only the V3 cascade
77
+ // ever calls markAutoHeal; V4's own heal paths never set it).
78
+ if (isV3())
79
+ args['auto_heal'] = Boolean(opts?.autoHeal);
74
80
  await this.action('lambda-testCase-end', args);
75
81
  }
76
82
  async warnStep(description, error) {
@@ -1 +1 @@
1
- {"version":3,"file":"lt.js","sourceRoot":"","sources":["../../src/reporters/lt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lt.js","sourceRoot":"","sources":["../../src/reporters/lt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Route a caught error according to the operation's failure_condition.
3
+ *
4
+ * Throws for "Fail test immediately", empty, null, or any unknown condition.
5
+ */
6
+ export declare function routeFailure(condition: string | {
7
+ value?: string;
8
+ } | null | undefined, err: unknown, label: string): void;
9
+ //# sourceMappingURL=routeFailure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeFailure.d.ts","sourceRoot":"","sources":["../src/routeFailure.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EACzD,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAiBN"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Failure routing for generated standalone code.
3
+ *
4
+ * Generated code wraps each failure_condition-bearing statement in try/catch
5
+ * and calls testmu.routeFailure(condition, err, label) from the catch body.
6
+ * Empty/null/unknown conditions fail CLOSED (rethrow) — a routeFailure that
7
+ * only logs would silently pass a failed test.
8
+ */
9
+ import { log } from './log.js';
10
+ import * as testState from './testState.js';
11
+ const FAIL_CONTINUE = 'Fail but continue executing';
12
+ const WARN_CONTINUE = 'Warn but continue executing';
13
+ /**
14
+ * Route a caught error according to the operation's failure_condition.
15
+ *
16
+ * Throws for "Fail test immediately", empty, null, or any unknown condition.
17
+ */
18
+ export function routeFailure(condition, err, label) {
19
+ const raw = condition && typeof condition === 'object' ? condition.value : condition;
20
+ const cond = raw ?? '';
21
+ if (cond === WARN_CONTINUE) {
22
+ log.warn(`${label}: continuing after failure (warn): ${String(err)}`);
23
+ return;
24
+ }
25
+ if (cond === FAIL_CONTINUE) {
26
+ // Continue executing, but the swallow must still fail the TEST verdict at
27
+ // session end — same routing the step-level 'fail-continue' opt uses.
28
+ testState.markStepFailed(label, err);
29
+ log.error(`${label}: continuing after failure: ${String(err)}`);
30
+ return;
31
+ }
32
+ throw new Error(`${label}: ${String(err)}`);
33
+ }
34
+ //# sourceMappingURL=routeFailure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeFailure.js","sourceRoot":"","sources":["../src/routeFailure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAE5C,MAAM,aAAa,GAAG,6BAA6B,CAAC;AACpD,MAAM,aAAa,GAAG,6BAA6B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAyD,EACzD,GAAY,EACZ,KAAa;IAEb,MAAM,GAAG,GACP,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;IAEvB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,sCAAsC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,0EAA0E;QAC1E,sEAAsE;QACtE,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,+BAA+B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAMpF,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAWrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAavD,eAAO,MAAM,YAAY,EAAE;IACzB,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC0B,CAAC;AAErD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAOlD;AA0ED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAS1D;AAED,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA+FzC;AAQD,iFAAiF;AACjF,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7G"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+C,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAMpF,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAWrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAavD,eAAO,MAAM,YAAY,EAAE;IACzB,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC0B,CAAC;AAErD,0EAA0E;AAC1E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAOlD;AA0ED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAS1D;AAqBD,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAiGzC;AAQD,iFAAiF;AACjF,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7G"}
package/dist/session.js CHANGED
@@ -138,6 +138,25 @@ export function assertSseBrowserSupported(page) {
138
138
  throw new TestmuConfigError(`SSE network assertions require Chromium; this run targets ${name}.`);
139
139
  }
140
140
  }
141
+ /**
142
+ * Report a floating rejection before Node tears the process down.
143
+ *
144
+ * Node >=15 exits non-zero on an unhandled rejection without running the
145
+ * teardown that reports the LT verdict, so the grid shows "completed" instead
146
+ * of failed. Marking the verdict here keeps the status channel truthful.
147
+ * Installed once per process; returns a disposer for tests.
148
+ */
149
+ function installUnhandledRejectionGuard() {
150
+ const onUnhandled = (reason) => {
151
+ log.test(`[UNHANDLED REJECTION] ${String(reason)}`);
152
+ try {
153
+ testState.markStepFailed('unhandled rejection', reason);
154
+ }
155
+ catch { /* verdict store unavailable — nothing more we can do */ }
156
+ };
157
+ process.on('unhandledRejection', onUnhandled);
158
+ return () => { process.off('unhandledRejection', onUnhandled); };
159
+ }
141
160
  export async function run() {
142
161
  if (config.current.smart && !config.current.ltAuth) {
143
162
  throw new TestmuConfigError('TESTMU_SMART=1 requires LT_USERNAME and LT_ACCESS_KEY. ' +
@@ -161,6 +180,7 @@ export async function run() {
161
180
  // Deferred from module load because TS elides the `Locator` value-import
162
181
  // (playwright .d.ts declares it as an interface). See healPatch.ts header.
163
182
  installHealPatch(page);
183
+ const disposeRejectionGuard = installUnhandledRejectionGuard();
164
184
  try {
165
185
  // Start DevTools capture BEFORE user code (captures from first navigation)
166
186
  resetCapture();
@@ -202,6 +222,7 @@ export async function run() {
202
222
  }
203
223
  }
204
224
  finally {
225
+ disposeRejectionGuard();
205
226
  // stopCapture (sync) flips sseActive off + removes the new-page listener;
206
227
  // stopSSECapture (async) drains pending tasks and detaches every CDP session.
207
228
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/step.d.ts CHANGED
@@ -14,12 +14,22 @@ export interface StepState {
14
14
  description: string;
15
15
  instructionId?: string;
16
16
  onFailure?: OnFailure;
17
+ /** Set by the heal cascade when any action in this step attempted a heal. */
18
+ autoHeal?: boolean;
17
19
  }
18
20
  type StepFn = () => Promise<void>;
19
21
  export declare function _setReporter(r: Reporter | null): void;
20
22
  export declare function _getReporter(): Reporter | null;
21
23
  export declare function currentStep(): StepState | null;
22
24
  export declare function _resetStep(): void;
25
+ /** Flag the in-flight step as having attempted a heal.
26
+ *
27
+ * Called on heal-cascade ENTRY, not on a successful hit: "auto-heal occurred"
28
+ * means the element did not resolve directly, whether or not the cascade
29
+ * recovered it. An exhausted heal must still report autoHeal on the failed step.
30
+ */
31
+ export declare function markAutoHeal(): void;
32
+ export declare function getStepAutoheal(): boolean;
23
33
  /**
24
34
  * Block-scoped step boundary. Mirrors PY's `async with testmu.step(...)`.
25
35
  *
@@ -1 +1 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wGAAwG;IACxG,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,KAAK,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAKlC,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAmB;AACzE,wBAAgB,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAsB;AACrE,wBAAgB,WAAW,IAAI,SAAS,GAAG,IAAI,CAAqB;AACpE,wBAAgB,UAAU,IAAI,IAAI,CAAuC;AAQzE;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3E,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAoD3F;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,GAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAiB,GACpD,OAAO,CAAC,IAAI,CAAC,CAQf"}
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIlE,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AAE1D,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wGAAwG;IACxG,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAKlC,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAmB;AACzE,wBAAgB,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAsB;AACrE,wBAAgB,WAAW,IAAI,SAAS,GAAG,IAAI,CAAqB;AACpE,wBAAgB,UAAU,IAAI,IAAI,CAAuC;AAEzE;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAQD;;;;;GAKG;AACH,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3E,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAoD3F;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,GAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAiB,GACpD,OAAO,CAAC,IAAI,CAAC,CAQf"}
package/dist/step.js CHANGED
@@ -6,8 +6,21 @@ export function _setReporter(r) { _reporter = r; }
6
6
  export function _getReporter() { return _reporter; }
7
7
  export function currentStep() { return _current; }
8
8
  export function _resetStep() { _current = null; _reporter = null; }
9
+ /** Flag the in-flight step as having attempted a heal.
10
+ *
11
+ * Called on heal-cascade ENTRY, not on a successful hit: "auto-heal occurred"
12
+ * means the element did not resolve directly, whether or not the cascade
13
+ * recovered it. An exhausted heal must still report autoHeal on the failed step.
14
+ */
15
+ export function markAutoHeal() {
16
+ if (_current)
17
+ _current.autoHeal = true;
18
+ }
19
+ export function getStepAutoheal() {
20
+ return Boolean(_current?.autoHeal);
21
+ }
9
22
  function endStepArgs(s) {
10
- const args = {};
23
+ const args = { autoHeal: Boolean(s.autoHeal) };
11
24
  if (s.instructionId)
12
25
  args.instructionId = s.instructionId;
13
26
  return args;
package/dist/step.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"step.js","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"testConfig.d.ts","sourceRoot":"","sources":["../src/testConfig.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAkBD,wBAAsB,cAAc,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA8BnE;AAED,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CASpG;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAM9E;AAED,wBAAgB,WAAW,IAAI,IAAI,CAAuB"}
1
+ {"version":3,"file":"testConfig.d.ts","sourceRoot":"","sources":["../src/testConfig.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAkBD,wBAAsB,cAAc,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAsCnE;AAED,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CASpG;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAM9E;AAED,wBAAgB,WAAW,IAAI,IAAI,CAAuB"}
@@ -46,7 +46,14 @@ export async function loadTestConfig() {
46
46
  try {
47
47
  const content = await fs.readFile(filePath, 'utf-8');
48
48
  const parsed = JSON.parse(content);
49
- const testInstanceId = (process.argv.length > 6 ? process.argv[6] : undefined) ?? '1';
49
+ // argv first (direct `node test.js <args>` invocation), then env: the HE
50
+ // runner shim launches via `npm start`, so argv[2..] is never populated
51
+ // and TEST_INSTANCE_ID arrives as an env export (runner-shim parity with
52
+ // selenium-python's _test_config.py). Without the env fallback every
53
+ // data-driven run silently picked instance "1".
54
+ const testInstanceId = (process.argv.length > 6 ? process.argv[6] : undefined)
55
+ ?? process.env['TEST_INSTANCE_ID']
56
+ ?? '1';
50
57
  const platform = (process.argv.length > 4 ? process.argv[4] : undefined) ?? process.env['LT_PLATFORM'] ?? 'linux';
51
58
  const instances = parsed[platform] ?? [];
52
59
  const match = instances.find(i => i.test_instance_id === testInstanceId);
@@ -1 +1 @@
1
- {"version":3,"file":"testConfig.js","sourceRoot":"","sources":["../src/testConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAWzC,IAAI,KAAsC,CAAC;AAE3C,SAAS,YAAY,CAAC,SAAiB,EAAE,QAAgB;IACvD,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,+BAA+B,SAAS,OAAO,CAAC;IAChF,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAI,OAAO,gCAAgC,SAAS,OAAO,CAAC;IACjF,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAI,OAAO,qBAAqB,SAAS,OAAO,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;QAClH,MAAM,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACtC,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;QACtD,MAAM,cAAc,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;QACtF,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;QAClH,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,cAAc,CAAC,CAAC;QACzE,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAc,OAAe,EAAE,YAAe;IAC7E,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC;IACnC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,GAAQ,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,WAAW;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,EAAE,GAAI,GAAG,CAAC,WAAuC,EAAE,CAAC;IACnE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,KAAW,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"testConfig.js","sourceRoot":"","sources":["../src/testConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAWzC,IAAI,KAAsC,CAAC;AAE3C,SAAS,YAAY,CAAC,SAAiB,EAAE,QAAgB;IACvD,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,+BAA+B,SAAS,OAAO,CAAC;IAChF,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAI,OAAO,gCAAgC,SAAS,OAAO,CAAC;IACjF,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAI,OAAO,qBAAqB,SAAS,OAAO,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;QAClH,MAAM,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QACtC,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;QACtD,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,qEAAqE;QACrE,gDAAgD;QAChD,MAAM,cAAc,GAClB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;eACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;eAC/B,GAAG,CAAC;QACT,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;QAClH,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,cAAc,CAAC,CAAC;QACzE,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,IAAI,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAc,OAAe,EAAE,YAAe;IAC7E,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC;IACnC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,GAAQ,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,WAAW;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,EAAE,GAAI,GAAG,CAAC,WAAuC,EAAE,CAAC;IACnE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,KAAW,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC"}
package/dist/vars.d.ts CHANGED
@@ -53,4 +53,14 @@ export declare function _addGlobalVariable(g: GlobalVariable): void;
53
53
  * resolved values. (TS has no kane_version fork; this is v4 behavior.)
54
54
  */
55
55
  export declare function resolveVar<T = unknown>(template: unknown, opts?: VOptions): Promise<T>;
56
+ /**
57
+ * Resolve a template against the testmu variable store.
58
+ *
59
+ * Adapter for the Condition/Assertion `.evaluate(variables, getVariableValue)`
60
+ * callback shape (PY parity: _vars.get_variable_value). Those classes invoke
61
+ * `getVariableValue(template, variables, ...)`; extra args are ignored and
62
+ * substitution delegates to resolveVar. Named export — the generator emits it
63
+ * bare inside condition expressions.
64
+ */
65
+ export declare function getVariableValue(template: unknown, _variables?: Record<string, unknown>, ..._args: unknown[]): Promise<unknown>;
56
66
  //# sourceMappingURL=vars.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../src/vars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAmBH,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6BD,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,OAAO,GACP,MAAM,GACN,KAAK,GACL,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAgCX,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;CAC/B;AAED,6EAA6E;AAC7E,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,aAAkB,GACvB,IAAI,CASN;AAED,sCAAsC;AACtC,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,8CAA8C;AAC9C,wBAAgB,mBAAmB,IAAI,SAAS,cAAc,EAAE,CAE/D;AAED,kFAAkF;AAClF,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAE1D;AAohBD;;;;;;;;;GASG;AACH;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,QAAQ,EAAE,OAAO,EACjB,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,CAAC,CAAC,CAgBZ"}
1
+ {"version":3,"file":"vars.d.ts","sourceRoot":"","sources":["../src/vars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoBH,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA6BD,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,OAAO,GACP,MAAM,GACN,KAAK,GACL,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAgCX,MAAM,WAAW,QAAQ;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;CAC/B;AAED,6EAA6E;AAC7E,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,aAAkB,GACvB,IAAI,CASN;AAED,sCAAsC;AACtC,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,8CAA8C;AAC9C,wBAAgB,mBAAmB,IAAI,SAAS,cAAc,EAAE,CAE/D;AAED,kFAAkF;AAClF,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAE1D;AA8hBD;;;;;;;;;GASG;AACH;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,QAAQ,EAAE,OAAO,EACjB,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAyHD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,GAAG,KAAK,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,OAAO,CAAC,CAElB"}
package/dist/vars.js CHANGED
@@ -15,6 +15,7 @@
15
15
  import { authenticator } from "otplib";
16
16
  import { fetchWithAuth, ltAuthHeader } from "./http.js";
17
17
  import { _registerConfigureHook, get as getConfig } from "./configure.js";
18
+ import { isV3 } from "./configure.js";
18
19
  import { log, preview } from "./log.js";
19
20
  /** Mirrors PY _is_sensitive_template: only secrets/totp warrant redaction. */
20
21
  function _isSensitiveTemplate(templateStr) {
@@ -449,10 +450,17 @@ function maybeSmart(name) {
449
450
  *
450
451
  * Uses an anchored regex so "{{a}} {{b}}" is NOT considered pure.
451
452
  *
453
+ * V3 forbids braces in the name class ("[^{}]+"): the legacy lazy ".+?"
454
+ * expands across interior "}" to satisfy the "$" anchor, misreading
455
+ * "${A}?x=${B}" as ONE variable named "A}?x=${B" (→ ""). Mirrors PY
456
+ * _vars.py's kane_version gate; V4 keeps the legacy behavior unchanged
457
+ * (the multi-placeholder bug is deliberately not fixed for V4).
458
+ *
452
459
  * noUncheckedIndexedAccess: m[1] is string|undefined — use `m[1] ?? null`.
453
460
  */
454
461
  function extractPure(template, re) {
455
- const anchored = new RegExp(`^${re.source}$`);
462
+ const source = isV3() ? re.source.replace("(.+?)", "([^{}]+)") : re.source;
463
+ const anchored = new RegExp(`^${source}$`);
456
464
  const m = template.match(anchored);
457
465
  if (!m)
458
466
  return null;
@@ -543,15 +551,19 @@ async function resolveSpecialAsync(name) {
543
551
  throw new Error(`Cannot resolve {{environment.${varName}}}: ATMS failed and no TESTMU_VAR_${varName} env var set`);
544
552
  }
545
553
  }
546
- // {{secrets.cat.KEY}} → process.env[KEY]
554
+ // {{secrets.cat.KEY}} → process.env[KEY]. V3 fails SOFT to '' — PY parity
555
+ // (_vars.py:200: os.getenv(key, "")). V4 keeps the loud throw untouched.
547
556
  if (name.startsWith("secrets.")) {
548
557
  const parts = name.split(".");
549
558
  const key = parts[parts.length - 1];
550
559
  if (!key)
551
560
  throw new Error(`Invalid secrets path: ${name}`);
552
561
  const val = process.env[key];
553
- if (val === undefined)
562
+ if (val === undefined) {
563
+ if (isV3())
564
+ return "";
554
565
  throw new Error(`Cannot resolve {{${name}}}: env var '${key}' not set`);
566
+ }
555
567
  return val;
556
568
  }
557
569
  // {{totp.X}} → ATMS seed + otplib generate, or TESTMU_TOTP_X env fallback (also a seed)
@@ -716,4 +728,19 @@ _registerConfigureHook((opts) => {
716
728
  _addGlobalVariable(g);
717
729
  }
718
730
  });
731
+ // ---------------------------------------------------------------------------
732
+ // Condition/Assertion resolver adapter (V3 local-eval)
733
+ // ---------------------------------------------------------------------------
734
+ /**
735
+ * Resolve a template against the testmu variable store.
736
+ *
737
+ * Adapter for the Condition/Assertion `.evaluate(variables, getVariableValue)`
738
+ * callback shape (PY parity: _vars.get_variable_value). Those classes invoke
739
+ * `getVariableValue(template, variables, ...)`; extra args are ignored and
740
+ * substitution delegates to resolveVar. Named export — the generator emits it
741
+ * bare inside condition expressions.
742
+ */
743
+ export function getVariableValue(template, _variables, ..._args) {
744
+ return resolveVar(template);
745
+ }
719
746
  //# sourceMappingURL=vars.js.map