doc-detective 4.38.0 → 4.41.4
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/README.md +4 -4
- package/dist/agents/adapters/claude-code.d.ts.map +1 -1
- package/dist/agents/adapters/claude-code.js +1 -2
- package/dist/agents/adapters/claude-code.js.map +1 -1
- package/dist/agents/adapters/codex.d.ts.map +1 -1
- package/dist/agents/adapters/codex.js +3 -4
- package/dist/agents/adapters/codex.js.map +1 -1
- package/dist/agents/adapters/copilot-cli.d.ts.map +1 -1
- package/dist/agents/adapters/copilot-cli.js +1 -2
- package/dist/agents/adapters/copilot-cli.js.map +1 -1
- package/dist/agents/adapters/gemini-cli.d.ts.map +1 -1
- package/dist/agents/adapters/gemini-cli.js +1 -2
- package/dist/agents/adapters/gemini-cli.js.map +1 -1
- package/dist/agents/adapters/opencode.d.ts.map +1 -1
- package/dist/agents/adapters/opencode.js +1 -2
- package/dist/agents/adapters/opencode.js.map +1 -1
- package/dist/agents/adapters/qwen-code.d.ts.map +1 -1
- package/dist/agents/adapters/qwen-code.js +1 -2
- package/dist/agents/adapters/qwen-code.js.map +1 -1
- package/dist/agents/fetcher.d.ts.map +1 -1
- package/dist/agents/fetcher.js +1 -2
- package/dist/agents/fetcher.js.map +1 -1
- package/dist/common/src/ajv.d.ts +30 -0
- package/dist/common/src/ajv.d.ts.map +1 -0
- package/dist/common/src/ajv.js +131 -0
- package/dist/common/src/ajv.js.map +1 -0
- package/dist/common/src/detectTests.d.ts +2 -18
- package/dist/common/src/detectTests.d.ts.map +1 -1
- package/dist/common/src/detectTests.js +8 -77
- package/dist/common/src/detectTests.js.map +1 -1
- package/dist/common/src/schemas/referenced.d.ts +12 -0
- package/dist/common/src/schemas/referenced.d.ts.map +1 -0
- package/dist/common/src/schemas/referenced.js +10 -0
- package/dist/common/src/schemas/referenced.js.map +1 -0
- package/dist/common/src/schemas/schemas.json +2 -2
- package/dist/common/src/schemas/schemasReferenced.json +14871 -0
- package/dist/common/src/schemas/validators.cjs +509 -0
- package/dist/common/src/schemas/validatorsCheck.cjs +2 -0
- package/dist/common/src/textUtils.d.ts +25 -0
- package/dist/common/src/textUtils.d.ts.map +1 -0
- package/dist/common/src/textUtils.js +84 -0
- package/dist/common/src/textUtils.js.map +1 -0
- package/dist/common/src/types/generated/annotate_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/annotation_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/click_v3.d.ts +153 -0
- package/dist/common/src/types/generated/click_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/config_v3.d.ts +13753 -207
- package/dist/common/src/types/generated/config_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/dragAndDrop_v3.d.ts +72 -0
- package/dist/common/src/types/generated/dragAndDrop_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/find_v3.d.ts +632 -0
- package/dist/common/src/types/generated/find_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/goTo_v3.d.ts +31 -0
- package/dist/common/src/types/generated/goTo_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/httpRequest_v3.d.ts +181 -0
- package/dist/common/src/types/generated/httpRequest_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/loadCookie_v3.d.ts +30 -0
- package/dist/common/src/types/generated/loadCookie_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/report_v3.d.ts +28234 -321
- package/dist/common/src/types/generated/report_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts +42281 -822
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/saveCookie_v3.d.ts +35 -0
- package/dist/common/src/types/generated/saveCookie_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/screenshot_v3.d.ts +45 -0
- package/dist/common/src/types/generated/screenshot_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/spec_v3.d.ts +28188 -275
- package/dist/common/src/types/generated/spec_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/startSurface_v3.d.ts +63 -1
- package/dist/common/src/types/generated/startSurface_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/step_v3.d.ts +5186 -523
- package/dist/common/src/types/generated/step_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/test_v3.d.ts +13268 -3582
- package/dist/common/src/types/generated/test_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/type_v3.d.ts +62 -0
- package/dist/common/src/types/generated/type_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/waitUntil_v3.d.ts +62 -0
- package/dist/common/src/types/generated/waitUntil_v3.d.ts.map +1 -1
- package/dist/common/src/validate.d.ts +1 -1
- package/dist/common/src/validate.d.ts.map +1 -1
- package/dist/common/src/validate.js +29 -75
- package/dist/common/src/validate.js.map +1 -1
- package/dist/core/appium.d.ts +3 -2
- package/dist/core/appium.d.ts.map +1 -1
- package/dist/core/appium.js +63 -89
- package/dist/core/appium.js.map +1 -1
- package/dist/core/appiumReuse.d.ts +43 -0
- package/dist/core/appiumReuse.d.ts.map +1 -0
- package/dist/core/appiumReuse.js +226 -0
- package/dist/core/appiumReuse.js.map +1 -0
- package/dist/core/config.d.ts +10 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +37 -7
- package/dist/core/config.js.map +1 -1
- package/dist/core/detectTests.d.ts.map +1 -1
- package/dist/core/detectTests.js +51 -17
- package/dist/core/detectTests.js.map +1 -1
- package/dist/core/files.d.ts.map +1 -1
- package/dist/core/files.js +3 -4
- package/dist/core/files.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +132 -21
- package/dist/core/index.js.map +1 -1
- package/dist/core/integrations/heretto.d.ts +1 -1
- package/dist/core/integrations/heretto.d.ts.map +1 -1
- package/dist/core/integrations/heretto.js +7 -6
- package/dist/core/integrations/heretto.js.map +1 -1
- package/dist/core/lazyYaml.d.ts +2 -0
- package/dist/core/lazyYaml.d.ts.map +1 -0
- package/dist/core/lazyYaml.js +13 -0
- package/dist/core/lazyYaml.js.map +1 -0
- package/dist/core/resolveTests.js +1 -1
- package/dist/core/resolveTests.js.map +1 -1
- package/dist/core/telem.d.ts +1 -1
- package/dist/core/telem.d.ts.map +1 -1
- package/dist/core/telem.js +2 -11
- package/dist/core/telem.js.map +1 -1
- package/dist/core/telemLite.d.ts +10 -0
- package/dist/core/telemLite.d.ts.map +1 -0
- package/dist/core/telemLite.js +101 -0
- package/dist/core/telemLite.js.map +1 -0
- package/dist/core/tests/androidEmulator.d.ts +67 -4
- package/dist/core/tests/androidEmulator.d.ts.map +1 -1
- package/dist/core/tests/androidEmulator.js +366 -37
- package/dist/core/tests/androidEmulator.js.map +1 -1
- package/dist/core/tests/appSurface.d.ts +25 -6
- package/dist/core/tests/appSurface.d.ts.map +1 -1
- package/dist/core/tests/appSurface.js +88 -52
- package/dist/core/tests/appSurface.js.map +1 -1
- package/dist/core/tests/browserSessions.d.ts +2 -1
- package/dist/core/tests/browserSessions.d.ts.map +1 -1
- package/dist/core/tests/browserSessions.js +7 -1
- package/dist/core/tests/browserSessions.js.map +1 -1
- package/dist/core/tests/checkLink.d.ts +1 -0
- package/dist/core/tests/checkLink.d.ts.map +1 -1
- package/dist/core/tests/checkLink.js +14 -5
- package/dist/core/tests/checkLink.js.map +1 -1
- package/dist/core/tests/closeSurface.d.ts.map +1 -1
- package/dist/core/tests/closeSurface.js +4 -3
- package/dist/core/tests/closeSurface.js.map +1 -1
- package/dist/core/tests/findStrategies.d.ts.map +1 -1
- package/dist/core/tests/findStrategies.js +153 -116
- package/dist/core/tests/findStrategies.js.map +1 -1
- package/dist/core/tests/geckoDriver.d.ts +16 -0
- package/dist/core/tests/geckoDriver.d.ts.map +1 -0
- package/dist/core/tests/geckoDriver.js +127 -0
- package/dist/core/tests/geckoDriver.js.map +1 -0
- package/dist/core/tests/goTo.d.ts.map +1 -1
- package/dist/core/tests/goTo.js +12 -33
- package/dist/core/tests/goTo.js.map +1 -1
- package/dist/core/tests/httpRequest.d.ts.map +1 -1
- package/dist/core/tests/httpRequest.js +4 -3
- package/dist/core/tests/httpRequest.js.map +1 -1
- package/dist/core/tests/iosSimulator.d.ts +4 -1
- package/dist/core/tests/iosSimulator.d.ts.map +1 -1
- package/dist/core/tests/iosSimulator.js +49 -1
- package/dist/core/tests/iosSimulator.js.map +1 -1
- package/dist/core/tests/mobileBrowser.d.ts +2 -1
- package/dist/core/tests/mobileBrowser.d.ts.map +1 -1
- package/dist/core/tests/mobileBrowser.js +5 -2
- package/dist/core/tests/mobileBrowser.js.map +1 -1
- package/dist/core/tests/runCode.d.ts +9 -1
- package/dist/core/tests/runCode.d.ts.map +1 -1
- package/dist/core/tests/runCode.js +58 -2
- package/dist/core/tests/runCode.js.map +1 -1
- package/dist/core/tests/saveScreenshot.d.ts +18 -2
- package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
- package/dist/core/tests/saveScreenshot.js +159 -4
- package/dist/core/tests/saveScreenshot.js.map +1 -1
- package/dist/core/tests/startRecording.d.ts.map +1 -1
- package/dist/core/tests/startRecording.js +6 -4
- package/dist/core/tests/startRecording.js.map +1 -1
- package/dist/core/tests/startSurface.d.ts.map +1 -1
- package/dist/core/tests/startSurface.js +8 -2
- package/dist/core/tests/startSurface.js.map +1 -1
- package/dist/core/tests.d.ts +21 -7
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +372 -121
- package/dist/core/tests.js.map +1 -1
- package/dist/core/utils.d.ts +68 -3
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +551 -18
- package/dist/core/utils.js.map +1 -1
- package/dist/core/verification.d.ts +17 -0
- package/dist/core/verification.d.ts.map +1 -0
- package/dist/core/verification.js +850 -0
- package/dist/core/verification.js.map +1 -0
- package/dist/debug/appium.js +2 -2
- package/dist/debug/appium.js.map +1 -1
- package/dist/debug/findings.js +2 -2
- package/dist/debug/findings.js.map +1 -1
- package/dist/debug/tools.d.ts +8 -0
- package/dist/debug/tools.d.ts.map +1 -1
- package/dist/debug/tools.js +60 -22
- package/dist/debug/tools.js.map +1 -1
- package/dist/hints/context.d.ts.map +1 -1
- package/dist/hints/context.js +2 -2
- package/dist/hints/context.js.map +1 -1
- package/dist/index.cjs +25777 -4
- package/dist/reporters/htmlReporter.js +1 -1
- package/dist/runtime/androidInstaller.d.ts +45 -0
- package/dist/runtime/androidInstaller.d.ts.map +1 -1
- package/dist/runtime/androidInstaller.js +88 -5
- package/dist/runtime/androidInstaller.js.map +1 -1
- package/dist/runtime/browsers.d.ts +87 -7
- package/dist/runtime/browsers.d.ts.map +1 -1
- package/dist/runtime/browsers.js +308 -41
- package/dist/runtime/browsers.js.map +1 -1
- package/dist/runtime/cacheDir.d.ts +1 -1
- package/dist/runtime/cacheDir.d.ts.map +1 -1
- package/dist/runtime/cacheDir.js +5 -2
- package/dist/runtime/cacheDir.js.map +1 -1
- package/dist/runtime/heavyDeps.d.ts.map +1 -1
- package/dist/runtime/heavyDeps.js.map +1 -1
- package/dist/runtime/installCommand.d.ts.map +1 -1
- package/dist/runtime/installCommand.js +23 -0
- package/dist/runtime/installCommand.js.map +1 -1
- package/dist/runtime/loader.d.ts +13 -0
- package/dist/runtime/loader.d.ts.map +1 -1
- package/dist/runtime/loader.js +50 -0
- package/dist/runtime/loader.js.map +1 -1
- package/dist/runtime/wdaProducts.d.ts +12 -1
- package/dist/runtime/wdaProducts.d.ts.map +1 -1
- package/dist/runtime/wdaProducts.js +27 -2
- package/dist/runtime/wdaProducts.js.map +1 -1
- package/dist/runtime/windowsBash.d.ts +6 -1
- package/dist/runtime/windowsBash.d.ts.map +1 -1
- package/dist/runtime/windowsBash.js +45 -4
- package/dist/runtime/windowsBash.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +19 -5
- package/dist/utils.js.map +1 -1
- package/package.json +43 -41
|
@@ -231,7 +231,9 @@ async function closeSession(registry, name) {
|
|
|
231
231
|
await entry.driver.deleteSession();
|
|
232
232
|
}
|
|
233
233
|
catch {
|
|
234
|
-
//
|
|
234
|
+
// Usually already dead — deregistering is the part that matters. Remember
|
|
235
|
+
// the failure for the final sweep: it may also still be open.
|
|
236
|
+
registry.closeFailed = true;
|
|
235
237
|
}
|
|
236
238
|
registry.sessions.delete(key);
|
|
237
239
|
if (registry.activeName === key) {
|
|
@@ -243,16 +245,20 @@ async function closeSession(registry, name) {
|
|
|
243
245
|
// Context-teardown sweep: end every remaining session, tolerating individual
|
|
244
246
|
// failures (a session the test already closed, a crashed browser). Leaves the
|
|
245
247
|
// registry empty so a re-entrant sweep is a no-op.
|
|
248
|
+
// Resolves false when any session failed to delete (it may still be open).
|
|
246
249
|
async function sweepSessions(registry) {
|
|
250
|
+
let allClosed = !registry.closeFailed;
|
|
247
251
|
for (const entry of registry.sessions.values()) {
|
|
248
252
|
try {
|
|
249
253
|
await entry.driver.deleteSession();
|
|
250
254
|
}
|
|
251
255
|
catch {
|
|
252
256
|
// Best-effort — the finally block that calls this must not throw.
|
|
257
|
+
allClosed = false;
|
|
253
258
|
}
|
|
254
259
|
}
|
|
255
260
|
registry.sessions.clear();
|
|
256
261
|
registry.activeName = null;
|
|
262
|
+
return allClosed;
|
|
257
263
|
}
|
|
258
264
|
//# sourceMappingURL=browserSessions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserSessions.js","sourceRoot":"","sources":["../../../src/core/tests/browserSessions.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAE5B,8EAA8E;AAC9E,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,qEAAqE;AACrE,wEAAwE;AACxE,6EAA6E;AAC7E,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,mEAAmE;AAEnE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,YAAY,GACb,CAAC;AAGF,yEAAyE;AACzE,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,gEAAgE;AAChE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AAEH,2EAA2E;AAC3E,4EAA4E;AAC5E,uEAAuE;AACvE,qEAAqE;AACrE,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,4EAA4E;AAC5E,mEAAmE;AACnE,SAAS,yBAAyB,CAChC,IAAY,EACZ,MAAc;IAEd,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,IACE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9B,eAAe,CAAC,SAAS,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,EACtD,CAAC;QACD,OAAO,IAAI,IAAI,qDAAqD,MAAM,CACxE,MAAM,CACP,CAAC,WAAW,EAAE,mCAAmC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;
|
|
1
|
+
{"version":3,"file":"browserSessions.js","sourceRoot":"","sources":["../../../src/core/tests/browserSessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkLink.d.ts","sourceRoot":"","sources":["../../../src/core/tests/checkLink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkLink.d.ts","sourceRoot":"","sources":["../../../src/core/tests/checkLink.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,CAAC;AA6BrB,wBAAgB,yBAAyB,CACvC,EAAE,GAAE,MAAgC,GACnC,MAAM,CAIR;AAmGD,iBAAe,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,gBAoJpE"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { validate } from "../../common/src/validate.js";
|
|
2
|
-
import { isRelativeUrl, appendQueryParams } from "../utils.js";
|
|
2
|
+
import { isRelativeUrl, appendQueryParams, loadAxios } from "../utils.js";
|
|
3
3
|
import { buildConditionContext, evaluateImplicitAssertions, } from "../routing.js";
|
|
4
|
-
import axios from "axios";
|
|
5
4
|
export { checkLink };
|
|
6
5
|
const DEFAULT_HEADERS = {
|
|
7
6
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
|
@@ -19,8 +18,18 @@ const DEFAULT_HEADERS = {
|
|
|
19
18
|
};
|
|
20
19
|
// Initial request plus up to 3 retries, producing sleeps of 1s, 2s, 4s.
|
|
21
20
|
const MAX_ATTEMPTS = 4;
|
|
22
|
-
const
|
|
21
|
+
const DEFAULT_BASE_BACKOFF_MS = 1000;
|
|
22
|
+
let baseBackoffMs = DEFAULT_BASE_BACKOFF_MS;
|
|
23
23
|
const MAX_RETRY_AFTER_MS = 10000;
|
|
24
|
+
// Internal test seam, not a user-facing knob: the package `exports` map keeps
|
|
25
|
+
// deep imports out of reach. The mocha root hook (test/hooks.js) shrinks the
|
|
26
|
+
// base so retry tests don't sleep 1s + 2s + 4s each (ADR 01121). Called with no
|
|
27
|
+
// argument it restores the product default. Returns the previous value.
|
|
28
|
+
export function _setBaseBackoffMsForTests(ms = DEFAULT_BASE_BACKOFF_MS) {
|
|
29
|
+
const prev = baseBackoffMs;
|
|
30
|
+
baseBackoffMs = ms;
|
|
31
|
+
return prev;
|
|
32
|
+
}
|
|
24
33
|
function parseHeaderString(raw) {
|
|
25
34
|
const out = {};
|
|
26
35
|
for (const line of raw.split(/\r?\n/)) {
|
|
@@ -86,7 +95,7 @@ function shouldRetry(statusCode) {
|
|
|
86
95
|
}
|
|
87
96
|
async function attemptRequest(method, url, headers) {
|
|
88
97
|
try {
|
|
89
|
-
const res = await
|
|
98
|
+
const res = await (await loadAxios()).request({
|
|
90
99
|
method,
|
|
91
100
|
url,
|
|
92
101
|
headers,
|
|
@@ -178,7 +187,7 @@ async function checkLink({ config, step }) {
|
|
|
178
187
|
if (!shouldRetry(last.statusCode))
|
|
179
188
|
break;
|
|
180
189
|
if (attempt < MAX_ATTEMPTS - 1) {
|
|
181
|
-
const backoff = last.retryAfter ??
|
|
190
|
+
const backoff = last.retryAfter ?? baseBackoffMs * Math.pow(2, attempt);
|
|
182
191
|
await sleep(backoff);
|
|
183
192
|
}
|
|
184
193
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkLink.js","sourceRoot":"","sources":["../../../src/core/tests/checkLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"checkLink.js","sourceRoot":"","sources":["../../../src/core/tests/checkLink.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeSurface.d.ts","sourceRoot":"","sources":["../../../src/core/tests/closeSurface.ts"],"names":[],"mappings":"AAUA,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAM7C,iBAAS,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAQ/C;AAQD,iBAAe,YAAY,CAAC,EAC1B,MAAM,EACN,IAAI,EACJ,MAAM,EACN,eAAe,EACf,UAAU,GACX,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B,
|
|
1
|
+
{"version":3,"file":"closeSurface.d.ts","sourceRoot":"","sources":["../../../src/core/tests/closeSurface.ts"],"names":[],"mappings":"AAUA,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAM7C,iBAAS,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAQ/C;AAQD,iBAAe,YAAY,CAAC,EAC1B,MAAM,EACN,IAAI,EACJ,MAAM,EACN,eAAe,EACf,UAAU,GACX,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B,gBA8RA"}
|
|
@@ -171,9 +171,10 @@ async function closeSurface({ config, step, driver, processRegistry, appSession,
|
|
|
171
171
|
closed.push(label);
|
|
172
172
|
continue;
|
|
173
173
|
}
|
|
174
|
-
// App surfaces (native app phase A1). The object form is authoritative
|
|
175
|
-
// window
|
|
176
|
-
//
|
|
174
|
+
// App surfaces (native app phase A1). The object form is authoritative.
|
|
175
|
+
// A `window` selector closes ONE window and keeps the surface (ADR 01036,
|
|
176
|
+
// the branch below); without one the whole surface closes, ending the
|
|
177
|
+
// session and terminating a driver-launched app.
|
|
177
178
|
if (item &&
|
|
178
179
|
typeof item === "object" &&
|
|
179
180
|
typeof item.app === "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeSurface.js","sourceRoot":"","sources":["../../../src/core/tests/closeSurface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"closeSurface.js","sourceRoot":"","sources":["../../../src/core/tests/closeSurface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findStrategies.d.ts","sourceRoot":"","sources":["../../../src/core/tests/findStrategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;AAI1G,iBAAe,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,gBA+C7D;
|
|
1
|
+
{"version":3,"file":"findStrategies.d.ts","sourceRoot":"","sources":["../../../src/core/tests/findStrategies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;AAI1G,iBAAe,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,gBA+C7D;AAkFD,iBAAe,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAc,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE;;;;;;GA8IvH;AAED,iBAAe,4BAA4B,CAAC,EAC1C,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;CACb;;;;;;GA8CA;AAmHD,iBAAe,qBAAqB,CAAC,EACnC,QAAQ,EACR,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,OAAc,EACd,MAAM,EACN,GAAW,GACZ,EAAE;IACD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;IAMZ,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;;;;;;;;;;;;;;;GAmSA"}
|
|
@@ -31,8 +31,12 @@ async function setElementOutputs({ element }) {
|
|
|
31
31
|
});
|
|
32
32
|
return outputs;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
// The four regex scans below each check the page ONCE; findElementByShorthand
|
|
35
|
+
// polls them up to the timeout (ADR 01131). Matching uses the driver's
|
|
36
|
+
// getText() (WebDriver Get Element Text: rendered text, so hidden content is
|
|
37
|
+
// dropped, whitespace collapsed, and CSS text-transform applied). In-page
|
|
38
|
+
// textContent/innerText would disagree on those cases, so it isn't used.
|
|
39
|
+
async function findElementByRegex({ pattern, driver }) {
|
|
36
40
|
// Find an element based on a regex pattern in text. Candidates are elements
|
|
37
41
|
// with a non-empty DIRECT text node (`text()[normalize-space()]`), i.e. that
|
|
38
42
|
// contribute their own text. This includes framework-fragmented elements
|
|
@@ -50,11 +54,16 @@ async function findElementByRegex({ pattern, timeout, driver }) {
|
|
|
50
54
|
}
|
|
51
55
|
return { element: null, foundBy: null };
|
|
52
56
|
}
|
|
53
|
-
async function findElementByAriaRegex({ pattern,
|
|
54
|
-
await driver.pause(timeout);
|
|
57
|
+
async function findElementByAriaRegex({ pattern, driver }) {
|
|
55
58
|
// Find an element based on a regex pattern in accessible name
|
|
56
59
|
// WebDriverIO's aria selector uses accessible name
|
|
57
|
-
|
|
60
|
+
// Only ever runs right after findElementByRegex missed on the same pass, and
|
|
61
|
+
// that scan already tested the getText() of every element with its own
|
|
62
|
+
// text. So those elements only need their aria-label checked; the getText()
|
|
63
|
+
// fallback below is for elements without their own text, e.g. a container
|
|
64
|
+
// whose match spans children. Same first hit in document order as `//*`,
|
|
65
|
+
// without a second getText() over every text element (#757).
|
|
66
|
+
const elements = await driver.$$("//*[@aria-label or not(text()[normalize-space()])]");
|
|
58
67
|
for (const element of elements) {
|
|
59
68
|
try {
|
|
60
69
|
// Try to get accessible name - this is an approximation
|
|
@@ -75,8 +84,7 @@ async function findElementByAriaRegex({ pattern, timeout, driver }) {
|
|
|
75
84
|
}
|
|
76
85
|
return { element: null, foundBy: null };
|
|
77
86
|
}
|
|
78
|
-
async function findElementByIdRegex({ pattern,
|
|
79
|
-
await driver.pause(timeout);
|
|
87
|
+
async function findElementByIdRegex({ pattern, driver }) {
|
|
80
88
|
// Find an element based on a regex pattern in id attribute
|
|
81
89
|
const elements = await driver.$$("//*[@id]");
|
|
82
90
|
for (const element of elements) {
|
|
@@ -87,8 +95,7 @@ async function findElementByIdRegex({ pattern, timeout, driver }) {
|
|
|
87
95
|
}
|
|
88
96
|
return { element: null, foundBy: null };
|
|
89
97
|
}
|
|
90
|
-
async function findElementByTestIdRegex({ pattern,
|
|
91
|
-
await driver.pause(timeout);
|
|
98
|
+
async function findElementByTestIdRegex({ pattern, driver }) {
|
|
92
99
|
// Find an element based on a regex pattern in data-testid attribute
|
|
93
100
|
const elements = await driver.$$("//*[@data-testid]");
|
|
94
101
|
for (const element of elements) {
|
|
@@ -100,116 +107,135 @@ async function findElementByTestIdRegex({ pattern, timeout, driver }) {
|
|
|
100
107
|
return { element: null, foundBy: null };
|
|
101
108
|
}
|
|
102
109
|
async function findElementByShorthand({ string, timeout = 5000, driver }) {
|
|
103
|
-
// Find an element based on a string that could be a selector, text, aria
|
|
104
|
-
//
|
|
110
|
+
// Find an element based on a string that could be a selector, text, aria
|
|
111
|
+
// label, id, or test id.
|
|
112
|
+
// - Exact match (ADR 01130): elementText > elementAria > elementId >
|
|
113
|
+
// elementTestId > selector. Text wins over the selector on purpose: a bare
|
|
114
|
+
// word like "Title" or "Search" is also a CSS type selector for an HTML
|
|
115
|
+
// element, and must keep finding the element with that text.
|
|
116
|
+
// - `/regex/`: a regex match against an element's own text (reported as
|
|
117
|
+
// foundBy "selector") > aria-label, then text, of every element
|
|
118
|
+
// ("elementAria") > id ("elementId") > data-testid ("elementTestId").
|
|
105
119
|
// If regex, find element by regex across all attribute types
|
|
106
120
|
if (string.startsWith("/") && string.endsWith("/")) {
|
|
107
121
|
const pattern = new RegExp(string.slice(1, -1));
|
|
108
|
-
//
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
|
|
116
|
-
promise: findElementByRegex({ pattern, timeout, driver }),
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
type: "elementAria",
|
|
120
|
-
promise: findElementByAriaRegex({ pattern, timeout, driver }),
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
type: "elementId",
|
|
124
|
-
promise: findElementByIdRegex({ pattern, timeout, driver }),
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
type: "elementTestId",
|
|
128
|
-
promise: findElementByTestIdRegex({ pattern, timeout, driver }),
|
|
129
|
-
},
|
|
122
|
+
// Scans in precedence order. The text scan used to run twice, labeled
|
|
123
|
+
// "selector" and then "elementText"; both were the same scan, so a text
|
|
124
|
+
// hit always reported "selector". It runs once now and keeps that label.
|
|
125
|
+
const scans = [
|
|
126
|
+
{ type: "selector", scan: findElementByRegex },
|
|
127
|
+
{ type: "elementAria", scan: findElementByAriaRegex },
|
|
128
|
+
{ type: "elementId", scan: findElementByIdRegex },
|
|
129
|
+
{ type: "elementTestId", scan: findElementByTestIdRegex },
|
|
130
130
|
];
|
|
131
|
-
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
131
|
+
// Poll instead of sleeping the whole timeout before a single scan (ADR
|
|
132
|
+
// 01131). Each pass runs the scans in order and stops at the first hit,
|
|
133
|
+
// which is what running them all and applying precedence returned. A scan
|
|
134
|
+
// that throws counts as no match on that pass, as Promise.allSettled did.
|
|
135
|
+
// do/while so `timeout: 0` scans once, now (ADR 01090).
|
|
136
|
+
// `run` reports each hit under `scans[i].type` and drops the scan's own
|
|
137
|
+
// `foundBy` on purpose: the aria scan's text fallback says "elementAria",
|
|
138
|
+
// and a text match must not surface under that label.
|
|
139
|
+
const run = async (i) => (await scans[i].scan({ pattern, driver }).catch(() => ({ element: null })))
|
|
140
|
+
.element;
|
|
141
|
+
const startTime = Date.now();
|
|
142
|
+
do {
|
|
143
|
+
for (let i = 0; i < scans.length; i++) {
|
|
144
|
+
const element = await run(i);
|
|
145
|
+
if (!element)
|
|
146
|
+
continue;
|
|
147
|
+
// A lower-precedence hit means the higher scans missed earlier in this
|
|
148
|
+
// pass. Content can render (or a stale getText can clear) while the
|
|
149
|
+
// pass is still running, and the aria scan's text fallback walks every
|
|
150
|
+
// element, so it can match a late element's container. Re-check the
|
|
151
|
+
// higher scans before settling; the first hit wins (ADR 01131).
|
|
152
|
+
for (let h = 0; h < i; h++) {
|
|
153
|
+
const higher = await run(h);
|
|
154
|
+
if (higher)
|
|
155
|
+
return { element: higher, foundBy: scans[h].type };
|
|
156
|
+
}
|
|
157
|
+
return { element, foundBy: scans[i].type };
|
|
136
158
|
}
|
|
137
|
-
|
|
159
|
+
// Both exits are needed: this `break` skips the sleep on the last pass,
|
|
160
|
+
// and the `while` catches a sleep that overshot the timeout.
|
|
161
|
+
if (Date.now() - startTime >= timeout)
|
|
162
|
+
break;
|
|
163
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
164
|
+
} while (Date.now() - startTime < timeout);
|
|
138
165
|
return { element: null, foundBy: null };
|
|
139
166
|
}
|
|
140
|
-
//
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return el;
|
|
146
|
-
})
|
|
147
|
-
.catch(() => null);
|
|
167
|
+
// Exact match across all five strategies, polled together (ADR 01130). Each
|
|
168
|
+
// poll looks every strategy up once without waiting, and the first poll that
|
|
169
|
+
// finds anything returns the highest-precedence match present on it. A
|
|
170
|
+
// per-strategy `waitForExist({ timeout })` would make every strategy that
|
|
171
|
+
// never matches burn the whole timeout before precedence could be applied.
|
|
148
172
|
const textLiteral = xpathLiteral(normalizeText(string));
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
173
|
+
// Listed in lookup order; `precedence` below decides the winner.
|
|
174
|
+
const strategies = [
|
|
175
|
+
{ foundBy: "selector", query: string },
|
|
176
|
+
{
|
|
177
|
+
foundBy: "elementText",
|
|
178
|
+
// Match the element's FULL normalized text, not its first text node — a
|
|
179
|
+
// framework-fragmented heading (e.g. text nodes ["", "Title", ""]) has an
|
|
180
|
+
// empty first node and would never match `normalize-space(text())` (ADR 01061).
|
|
181
|
+
// `not(.//*[…])` keeps the INNERMOST match: a wrapping ancestor whose whole
|
|
182
|
+
// text also equals the string (a single-child container) must not shadow the
|
|
183
|
+
// leaf, or clicks/`outputs.element` would target the container.
|
|
184
|
+
query: `//*[normalize-space(.)=${textLiteral} and not(.//*[normalize-space(.)=${textLiteral}])]`,
|
|
185
|
+
},
|
|
186
|
+
{ foundBy: "elementAria", query: `aria/${string}` },
|
|
187
|
+
// xpathLiteral leaves a quote-free string as `"…"` (the old query) and
|
|
188
|
+
// keeps a string containing `"` a valid XPath literal.
|
|
189
|
+
{ foundBy: "elementId", query: `//*[@id=${xpathLiteral(string)}]` },
|
|
190
|
+
{ foundBy: "elementTestId", query: `//*[@data-testid=${xpathLiteral(string)}]` },
|
|
191
|
+
];
|
|
192
|
+
// Indexes into `strategies`, highest first: elementText > elementAria >
|
|
193
|
+
// elementId > elementTestId > selector.
|
|
194
|
+
const precedence = [1, 2, 3, 4, 0];
|
|
195
|
+
// wdio's `$` resolves an element without an `elementId` when nothing matches
|
|
196
|
+
// yet; that strategy is polled again. A lookup that throws gives that
|
|
197
|
+
// strategy up for the rest of the call, as the old per-strategy `.catch`
|
|
198
|
+
// did.
|
|
199
|
+
const lookup = async (strategy) => {
|
|
200
|
+
try {
|
|
201
|
+
const el = await driver.$(strategy.query);
|
|
202
|
+
return el.elementId ? el : null;
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
strategy.dropped = true;
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
// Zero-timeout existence check: the element must still be there, as the old
|
|
210
|
+
// `waitForExist` guaranteed. It doesn't wait.
|
|
211
|
+
const confirmed = (el) => el.waitForExist({ timeout: 0 }).then(() => true, () => false);
|
|
212
|
+
const startTime = Date.now();
|
|
213
|
+
// do/while so `timeout: 0` means "check once, now" (ADR 01090).
|
|
214
|
+
do {
|
|
215
|
+
const found = await Promise.all(strategies.map((s) => (s.dropped ? null : lookup(s))));
|
|
216
|
+
for (let p = 0; p < precedence.length; p++) {
|
|
217
|
+
const i = precedence[p];
|
|
218
|
+
if (!found[i] || !(await confirmed(found[i])))
|
|
219
|
+
continue;
|
|
220
|
+
// A lower-precedence hit: look the higher strategies up once more
|
|
221
|
+
// before accepting it, so one that rendered a moment later on this pass
|
|
222
|
+
// still wins, as it did when every strategy waited out the timeout.
|
|
223
|
+
// One extra lookup, never a wait.
|
|
224
|
+
const above = precedence.slice(0, p);
|
|
225
|
+
const higher = await Promise.all(above.map((j) => (strategies[j].dropped ? null : lookup(strategies[j]))));
|
|
226
|
+
for (let h = 0; h < above.length; h++) {
|
|
227
|
+
if (higher[h] && (await confirmed(higher[h]))) {
|
|
228
|
+
return { element: higher[h], foundBy: strategies[above[h]].foundBy };
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return { element: found[i], foundBy: strategies[i].foundBy };
|
|
232
|
+
}
|
|
233
|
+
if (strategies.every((s) => s.dropped))
|
|
234
|
+
break;
|
|
235
|
+
if (Date.now() - startTime >= timeout)
|
|
236
|
+
break;
|
|
237
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
238
|
+
} while (Date.now() - startTime < timeout);
|
|
213
239
|
// No matching elements
|
|
214
240
|
return { element: null, foundBy: null };
|
|
215
241
|
}
|
|
@@ -262,6 +288,15 @@ async function findElementBySelectorAndText({ selector, text, timeout, driver, }
|
|
|
262
288
|
element = elements[0];
|
|
263
289
|
return { element, foundBy: "selector and text" };
|
|
264
290
|
}
|
|
291
|
+
// One round trip on the element's own ID; a stale or removed element throws.
|
|
292
|
+
// The raw protocol command skips wdio's stale-element refetch, which would
|
|
293
|
+
// re-run the query. Drivers without it fall back to isExisting().
|
|
294
|
+
function stillExists(driver, element) {
|
|
295
|
+
if (!element.elementId || typeof driver.getElementTagName !== "function") {
|
|
296
|
+
return element.isExisting();
|
|
297
|
+
}
|
|
298
|
+
return driver.getElementTagName(element.elementId).then(() => true, () => false);
|
|
299
|
+
}
|
|
265
300
|
// Helper function to check if a string is a regex pattern
|
|
266
301
|
function isRegexPattern(str) {
|
|
267
302
|
return typeof str === "string" && str.startsWith("/") && str.endsWith("/");
|
|
@@ -502,10 +537,6 @@ async function findElementByCriteria({ selector, elementText, elementId, element
|
|
|
502
537
|
continue;
|
|
503
538
|
}
|
|
504
539
|
try {
|
|
505
|
-
// Check if element is valid and exists in DOM
|
|
506
|
-
const exists = await element.isExisting();
|
|
507
|
-
if (!exists)
|
|
508
|
-
continue;
|
|
509
540
|
// Build array of check promises to run in parallel
|
|
510
541
|
const checks = [];
|
|
511
542
|
const checkTypes = [];
|
|
@@ -582,8 +613,14 @@ async function findElementByCriteria({ selector, elementText, elementId, element
|
|
|
582
613
|
elementCriteriaUsed.push(checkType.type);
|
|
583
614
|
}
|
|
584
615
|
}
|
|
585
|
-
// If all checks passed,
|
|
616
|
+
// If all checks passed, confirm the element still exists, then
|
|
617
|
+
// we found our element. The existence check runs only for matches
|
|
618
|
+
// (ADR 01131), and asks about this element's own ID: wdio's
|
|
619
|
+
// isExisting() re-runs the whole candidate query (`$$`), which made
|
|
620
|
+
// an `all: true` scan with n matches O(n²) (#757).
|
|
586
621
|
if (allChecksPassed) {
|
|
622
|
+
if (!(await stillExists(driver, element)))
|
|
623
|
+
continue;
|
|
587
624
|
matchedElements.push(element);
|
|
588
625
|
// `foundBy` describes the FIRST match, so it means the same thing
|
|
589
626
|
// whether or not `all` was set — later matches must not rewrite it.
|