@validate.qa/runner 1.0.101 → 1.0.102
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 +3 -0
- package/dist/{chunk-IGXGSDE3.mjs → chunk-3JM6XTSZ.mjs} +1298 -384
- package/dist/{chunk-BBTK6OX6.mjs → chunk-4WLP3RWN.mjs} +383 -11
- package/dist/{chunk-XZUUBMP3.mjs → chunk-5DFBEL72.mjs} +1 -1
- package/dist/{chunk-M3VZGHZQ.mjs → chunk-BXLEPT4M.mjs} +20 -10
- package/dist/{chunk-FQUH2PU2.mjs → chunk-CBVHPYVJ.mjs} +62 -2
- package/dist/{chunk-4SZC5ZX3.mjs → chunk-DN3O6EYT.mjs} +19461 -4077
- package/dist/{chunk-SN3PN4G4.mjs → chunk-E2RRAE27.mjs} +6 -2
- package/dist/{chunk-2OKZY3WN.mjs → chunk-E2VEMBQQ.mjs} +2 -2
- package/dist/{chunk-CYWHPXNZ.mjs → chunk-HJ6FKHMM.mjs} +1 -1
- package/dist/{chunk-CO5KHIVX.mjs → chunk-PWFWMVZU.mjs} +1 -1
- package/dist/{chunk-TPU42VH2.mjs → chunk-ZZYBRIBT.mjs} +10 -5
- package/dist/cli.js +135916 -118926
- package/dist/cli.mjs +349 -101
- package/dist/credential-mcp-server.js +1327 -348
- package/dist/credential-mcp-server.mjs +3 -3
- package/dist/discovery-mcp-server.js +1328 -400
- package/dist/discovery-mcp-server.mjs +4 -4
- package/dist/dist-52M5RDZ6.mjs +17 -0
- package/dist/inbox-mcp-server.js +1579 -605
- package/dist/inbox-mcp-server.mjs +3 -3
- package/dist/route-seed-worker.js +1244 -330
- package/dist/route-seed-worker.mjs +4 -4
- package/dist/run-write-guard-preload.js +1622 -332
- package/dist/run-write-guard-preload.mjs +4 -4
- package/dist/run-write-guard.js +1622 -332
- package/dist/run-write-guard.mjs +3 -3
- package/dist/spec-driver.js +1 -1
- package/dist/spec-driver.mjs +1 -1
- package/package.json +3 -2
- package/dist/dist-VTPBY2C4.mjs +0 -17
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
dist_exports,
|
|
3
3
|
init_dist
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3JM6XTSZ.mjs";
|
|
5
5
|
import {
|
|
6
6
|
__commonJS,
|
|
7
7
|
__require,
|
|
@@ -25,6 +25,7 @@ var require_survey_network_guard = __commonJS({
|
|
|
25
25
|
exports.isTokenRefreshWrite = isTokenRefreshWrite;
|
|
26
26
|
exports.isSignInPathWrite = isSignInPathWrite;
|
|
27
27
|
exports.graphqlUrlCarriesQuery = graphqlUrlCarriesQuery;
|
|
28
|
+
exports.graphqlUrlQueriesAreReads = graphqlUrlQueriesAreReads;
|
|
28
29
|
exports.graphqlGetMayWrite = graphqlGetMayWrite;
|
|
29
30
|
exports.writeShapedGet = writeShapedGet;
|
|
30
31
|
exports.decideSurveyRequest = decideSurveyRequest;
|
|
@@ -583,6 +584,9 @@ var require_survey_network_guard = __commonJS({
|
|
|
583
584
|
function graphqlUrlCarriesQuery(params) {
|
|
584
585
|
return params.has("query");
|
|
585
586
|
}
|
|
587
|
+
function graphqlUrlQueriesAreReads(params) {
|
|
588
|
+
return params.getAll("query").every((doc) => doc.trim() !== "" && graphqlDocumentIsQueryOnly(doc));
|
|
589
|
+
}
|
|
586
590
|
function graphqlGetMayWrite(url, body) {
|
|
587
591
|
const docs = url.searchParams.getAll("query");
|
|
588
592
|
return docs.length > 0 && (typeof body === "string" && body.length > 0 || docs.some((doc) => !graphqlDocumentIsQueryOnly(doc)));
|
|
@@ -826,7 +830,7 @@ var require_survey_network_guard = __commonJS({
|
|
|
826
830
|
return { action: "allow", rule: "extra-pattern", reason: extra.reason, record };
|
|
827
831
|
if (graphqlGet)
|
|
828
832
|
return { action: "block", rule: "app-write", record };
|
|
829
|
-
if (method === "POST" && isGraphqlEndpoint(url, s) &&
|
|
833
|
+
if (method === "POST" && isGraphqlEndpoint(url, s) && graphqlUrlQueriesAreReads(url.searchParams) && isGraphqlQueryOnly(req.postData))
|
|
830
834
|
return { action: "allow", rule: "graphql-query", record };
|
|
831
835
|
const passive = s.lastNavigationAt > 0 && (s.lastActionAt === 0 || s.lastNavigationAt >= s.lastActionAt) && s.now - s.lastNavigationAt <= s.passiveWindowMs;
|
|
832
836
|
const signature = learnableSignature(req, url, record, s);
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
require_google_signin,
|
|
3
3
|
require_harness_init_script,
|
|
4
4
|
require_test_inbox_broker
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CBVHPYVJ.mjs";
|
|
6
6
|
import {
|
|
7
7
|
dist_exports,
|
|
8
8
|
init_dist
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3JM6XTSZ.mjs";
|
|
10
10
|
import {
|
|
11
11
|
__commonJS,
|
|
12
12
|
__require,
|
|
@@ -33,6 +33,7 @@ var require_browser_config = __commonJS({
|
|
|
33
33
|
exports.fullChromiumCloudLaunch = fullChromiumCloudLaunch;
|
|
34
34
|
exports.chooseCloudBrowser = chooseCloudBrowser;
|
|
35
35
|
exports.appTimezoneConfigLine = appTimezoneConfigLine;
|
|
36
|
+
exports.discoveryTimezoneId = discoveryTimezoneId;
|
|
36
37
|
exports.getMCPBrowserConfig = getMCPBrowserConfig;
|
|
37
38
|
exports.getPlaywrightLaunchOptions = getPlaywrightLaunchOptions;
|
|
38
39
|
exports.getLaunchOptions = getLaunchOptions;
|
|
@@ -251,7 +252,7 @@ var require_browser_config = __commonJS({
|
|
|
251
252
|
try {
|
|
252
253
|
(0, fs_1.cpSync)(localStateSrc, (0, path_1.join)(tempDir, "Local State"));
|
|
253
254
|
} catch (err) {
|
|
254
|
-
throw new Error(`Cannot copy Chrome profile (${err instanceof Error ? err.message : String(err)}). Quit Google Chrome completely, or use getChromeUserDataDirSource() for seeding
|
|
255
|
+
throw new Error(`Cannot copy Chrome profile (${err instanceof Error ? err.message : String(err)}). Quit Google Chrome completely, or use getChromeUserDataDirSource() for seeding.`, { cause: err });
|
|
255
256
|
}
|
|
256
257
|
}
|
|
257
258
|
for (const file of essentialFiles) {
|
|
@@ -442,6 +443,10 @@ var require_browser_config = __commonJS({
|
|
|
442
443
|
const zone = (0, shared_1.appTimezoneFromVariables)(vars);
|
|
443
444
|
return zone ? `timezoneId: ${JSON.stringify(zone)},` : "";
|
|
444
445
|
}
|
|
446
|
+
function discoveryTimezoneId(ctx) {
|
|
447
|
+
const vars = ctx.variableContext;
|
|
448
|
+
return (0, shared_1.appTimezoneFromVariables)(vars?.publicTestVariables) ?? (0, shared_1.appTimezoneFromVariables)(vars?.allTestVariables);
|
|
449
|
+
}
|
|
445
450
|
function getMCPBrowserConfig(opts) {
|
|
446
451
|
const userDataDir = opts?.forceIsolated ? null : getTestUserDataDir();
|
|
447
452
|
const timezoneOption = opts?.timezoneId ? { timezoneId: opts.timezoneId } : {};
|
|
@@ -1253,7 +1258,7 @@ var require_runs_dir = __commonJS({
|
|
|
1253
1258
|
} catch (error) {
|
|
1254
1259
|
if (error.code === "EEXIST" && resolvesFrom(runsDir) === own)
|
|
1255
1260
|
return;
|
|
1256
|
-
throw new Error(`Could not link ${link} to the runner's node_modules (${error.message}). Set RUNS_DIR to a writable folder outside node_modules that can resolve @playwright/test
|
|
1261
|
+
throw new Error(`Could not link ${link} to the runner's node_modules (${error.message}). Set RUNS_DIR to a writable folder outside node_modules that can resolve @playwright/test.`, { cause: error });
|
|
1257
1262
|
}
|
|
1258
1263
|
}
|
|
1259
1264
|
}
|
|
@@ -3179,7 +3184,7 @@ var require_survey_door_harvester = __commonJS({
|
|
|
3179
3184
|
}
|
|
3180
3185
|
if (!payload)
|
|
3181
3186
|
continue;
|
|
3182
|
-
const cleaned = payload.replace(/^\s*```(json)?\s*\n
|
|
3187
|
+
const cleaned = payload.replace(/^\s*```(json)?\s*\n?/i, "").replace(/\n?```\s*$/, "").trim();
|
|
3183
3188
|
if (!cleaned)
|
|
3184
3189
|
continue;
|
|
3185
3190
|
try {
|