@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.
Files changed (31) hide show
  1. package/README.md +3 -0
  2. package/dist/{chunk-IGXGSDE3.mjs → chunk-3JM6XTSZ.mjs} +1298 -384
  3. package/dist/{chunk-BBTK6OX6.mjs → chunk-4WLP3RWN.mjs} +383 -11
  4. package/dist/{chunk-XZUUBMP3.mjs → chunk-5DFBEL72.mjs} +1 -1
  5. package/dist/{chunk-M3VZGHZQ.mjs → chunk-BXLEPT4M.mjs} +20 -10
  6. package/dist/{chunk-FQUH2PU2.mjs → chunk-CBVHPYVJ.mjs} +62 -2
  7. package/dist/{chunk-4SZC5ZX3.mjs → chunk-DN3O6EYT.mjs} +19461 -4077
  8. package/dist/{chunk-SN3PN4G4.mjs → chunk-E2RRAE27.mjs} +6 -2
  9. package/dist/{chunk-2OKZY3WN.mjs → chunk-E2VEMBQQ.mjs} +2 -2
  10. package/dist/{chunk-CYWHPXNZ.mjs → chunk-HJ6FKHMM.mjs} +1 -1
  11. package/dist/{chunk-CO5KHIVX.mjs → chunk-PWFWMVZU.mjs} +1 -1
  12. package/dist/{chunk-TPU42VH2.mjs → chunk-ZZYBRIBT.mjs} +10 -5
  13. package/dist/cli.js +135916 -118926
  14. package/dist/cli.mjs +349 -101
  15. package/dist/credential-mcp-server.js +1327 -348
  16. package/dist/credential-mcp-server.mjs +3 -3
  17. package/dist/discovery-mcp-server.js +1328 -400
  18. package/dist/discovery-mcp-server.mjs +4 -4
  19. package/dist/dist-52M5RDZ6.mjs +17 -0
  20. package/dist/inbox-mcp-server.js +1579 -605
  21. package/dist/inbox-mcp-server.mjs +3 -3
  22. package/dist/route-seed-worker.js +1244 -330
  23. package/dist/route-seed-worker.mjs +4 -4
  24. package/dist/run-write-guard-preload.js +1622 -332
  25. package/dist/run-write-guard-preload.mjs +4 -4
  26. package/dist/run-write-guard.js +1622 -332
  27. package/dist/run-write-guard.mjs +3 -3
  28. package/dist/spec-driver.js +1 -1
  29. package/dist/spec-driver.mjs +1 -1
  30. package/package.json +3 -2
  31. 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-IGXGSDE3.mjs";
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) && !graphqlUrlCarriesQuery(url.searchParams) && isGraphqlQueryOnly(req.postData))
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);
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  require_run_write_guard
3
- } from "./chunk-BBTK6OX6.mjs";
3
+ } from "./chunk-4WLP3RWN.mjs";
4
4
  import {
5
5
  require_survey_network_guard
6
- } from "./chunk-SN3PN4G4.mjs";
6
+ } from "./chunk-E2RRAE27.mjs";
7
7
  import {
8
8
  __commonJS,
9
9
  __require
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_route_manifest
3
- } from "./chunk-CO5KHIVX.mjs";
3
+ } from "./chunk-PWFWMVZU.mjs";
4
4
  import {
5
5
  __commonJS,
6
6
  __require
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  dist_exports,
3
3
  init_dist
4
- } from "./chunk-IGXGSDE3.mjs";
4
+ } from "./chunk-3JM6XTSZ.mjs";
5
5
  import {
6
6
  __commonJS,
7
7
  __require,
@@ -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-FQUH2PU2.mjs";
5
+ } from "./chunk-CBVHPYVJ.mjs";
6
6
  import {
7
7
  dist_exports,
8
8
  init_dist
9
- } from "./chunk-IGXGSDE3.mjs";
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?/, "").replace(/\n?```\s*$/, "").trim();
3187
+ const cleaned = payload.replace(/^\s*```(json)?\s*\n?/i, "").replace(/\n?```\s*$/, "").trim();
3183
3188
  if (!cleaned)
3184
3189
  continue;
3185
3190
  try {