@ia-qa/self-healing 1.9.2 → 1.9.3
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/dist/browser/union.d.ts +1 -0
- package/dist/browser/union.js +5 -1
- package/dist/browser/union.js.map +1 -1
- package/dist/explore.js +2 -3
- package/dist/explore.js.map +1 -1
- package/package.json +1 -1
package/dist/browser/union.d.ts
CHANGED
package/dist/browser/union.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.identity = identity;
|
|
3
4
|
exports.unionElements = unionElements;
|
|
4
5
|
/**
|
|
5
6
|
* Union of two element lists by contract identity (role + normalized accessible
|
|
@@ -13,8 +14,11 @@ exports.unionElements = unionElements;
|
|
|
13
14
|
* wins, because it is the most recent observation of the element.
|
|
14
15
|
*/
|
|
15
16
|
const match_1 = require("./match");
|
|
17
|
+
// An empty name identifies nothing: two unlabelled fields of one role are two fields, so a
|
|
18
|
+
// nameless element is known by its selector instead.
|
|
16
19
|
function identity(e) {
|
|
17
|
-
|
|
20
|
+
const name = (0, match_1.normalize)(e.name);
|
|
21
|
+
return name ? e.role + '|' + name : e.role + '|@' + e.selector;
|
|
18
22
|
}
|
|
19
23
|
function unionElements(base, extra) {
|
|
20
24
|
const out = base.slice();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/browser/union.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/browser/union.js"],"names":[],"mappings":";;AAeA,4BAGC;AAED,sCAcC;AAlCD;;;;;;;;;;GAUG;AACH,mCAAoC;AAEpC,2FAA2F;AAC3F,qDAAqD;AACrD,SAAgB,QAAQ,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,IAAA,iBAAS,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC;AAED,SAAgB,aAAa,CAAC,IAAI,EAAE,KAAK;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACpB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/explore.js
CHANGED
|
@@ -4,7 +4,6 @@ exports.explorePage = explorePage;
|
|
|
4
4
|
exports.mergeExplored = mergeExplored;
|
|
5
5
|
const aom_1 = require("./aom");
|
|
6
6
|
const openables_1 = require("./browser/openables");
|
|
7
|
-
const match_1 = require("./browser/match");
|
|
8
7
|
const union_1 = require("./browser/union");
|
|
9
8
|
const SETTLE_MS = 250;
|
|
10
9
|
/** Contract identity plus selector: two elements differing only by selector are two rows. */
|
|
@@ -202,13 +201,13 @@ async function explorePage(page, opts) {
|
|
|
202
201
|
}
|
|
203
202
|
}
|
|
204
203
|
function mergeExplored(base, revealed) {
|
|
205
|
-
const inBase = new Set(base.map(
|
|
204
|
+
const inBase = new Set(base.map(union_1.identity));
|
|
206
205
|
const selectors = new Set(base.map((e) => e.selector));
|
|
207
206
|
const fresh = [];
|
|
208
207
|
const taken = new Set();
|
|
209
208
|
let collided = 0;
|
|
210
209
|
for (const e of revealed) {
|
|
211
|
-
const id =
|
|
210
|
+
const id = (0, union_1.identity)(e);
|
|
212
211
|
if (inBase.has(id) || taken.has(id))
|
|
213
212
|
continue;
|
|
214
213
|
if (selectors.has(e.selector)) {
|
package/dist/explore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore.js","sourceRoot":"","sources":["../src/explore.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"explore.js","sourceRoot":"","sources":["../src/explore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ia-qa/self-healing",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.3",
|
|
4
4
|
"description": "Your Playwright, Cypress or Selenium tests break when a selector moves — this finds the element again and rewrites the test. Deterministic: no LLM decides whether your build passes. Runs entirely on your machine, with a local MCP server for agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"self-healing",
|