@vforsh/argus 0.1.11 → 0.1.12

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 (100) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/argus.js +5881 -5892
  3. package/dist/bin.js +4 -47
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cli/program.d.ts.map +1 -1
  6. package/dist/cli/program.js +2 -1
  7. package/dist/cli/program.js.map +1 -1
  8. package/dist/cli/register/domCommandBuilder.d.ts +22 -0
  9. package/dist/cli/register/domCommandBuilder.d.ts.map +1 -0
  10. package/dist/cli/register/domCommandBuilder.js +33 -0
  11. package/dist/cli/register/domCommandBuilder.js.map +1 -0
  12. package/dist/cli/register/index.d.ts +4 -0
  13. package/dist/cli/register/index.d.ts.map +1 -0
  14. package/dist/cli/register/index.js +45 -0
  15. package/dist/cli/register/index.js.map +1 -0
  16. package/dist/cli/register/registerDom.d.ts.map +1 -1
  17. package/dist/cli/register/registerDom.js +138 -121
  18. package/dist/cli/register/registerDom.js.map +1 -1
  19. package/dist/commands/chrome/browser.d.ts +5 -0
  20. package/dist/commands/chrome/browser.d.ts.map +1 -0
  21. package/dist/commands/chrome/browser.js +71 -0
  22. package/dist/commands/chrome/browser.js.map +1 -0
  23. package/dist/commands/chrome/processes.d.ts +24 -0
  24. package/dist/commands/chrome/processes.d.ts.map +1 -0
  25. package/dist/commands/chrome/processes.js +115 -0
  26. package/dist/commands/chrome/processes.js.map +1 -0
  27. package/dist/commands/chrome/shared.d.ts +31 -0
  28. package/dist/commands/chrome/shared.d.ts.map +1 -0
  29. package/dist/commands/chrome/shared.js +48 -0
  30. package/dist/commands/chrome/shared.js.map +1 -0
  31. package/dist/commands/chrome/targets.d.ts +26 -0
  32. package/dist/commands/chrome/targets.d.ts.map +1 -0
  33. package/dist/commands/chrome/targets.js +240 -0
  34. package/dist/commands/chrome/targets.js.map +1 -0
  35. package/dist/commands/chrome.d.ts +6 -63
  36. package/dist/commands/chrome.d.ts.map +1 -1
  37. package/dist/commands/chrome.js +3 -511
  38. package/dist/commands/chrome.js.map +1 -1
  39. package/dist/commands/dom/shared.d.ts +12 -0
  40. package/dist/commands/dom/shared.d.ts.map +1 -0
  41. package/dist/commands/dom/shared.js +42 -0
  42. package/dist/commands/dom/shared.js.map +1 -0
  43. package/dist/commands/domAdd.d.ts.map +1 -1
  44. package/dist/commands/domAdd.js +11 -27
  45. package/dist/commands/domAdd.js.map +1 -1
  46. package/dist/commands/domClick.d.ts.map +1 -1
  47. package/dist/commands/domClick.js +14 -40
  48. package/dist/commands/domClick.js.map +1 -1
  49. package/dist/commands/domFill.d.ts.map +1 -1
  50. package/dist/commands/domFill.js +10 -31
  51. package/dist/commands/domFill.js.map +1 -1
  52. package/dist/commands/domFocus.d.ts.map +1 -1
  53. package/dist/commands/domFocus.js +11 -26
  54. package/dist/commands/domFocus.js.map +1 -1
  55. package/dist/commands/domHover.d.ts.map +1 -1
  56. package/dist/commands/domHover.js +11 -26
  57. package/dist/commands/domHover.js.map +1 -1
  58. package/dist/commands/domInfo.d.ts.map +1 -1
  59. package/dist/commands/domInfo.js +10 -25
  60. package/dist/commands/domInfo.js.map +1 -1
  61. package/dist/commands/domModify.d.ts.map +1 -1
  62. package/dist/commands/domModify.js +14 -26
  63. package/dist/commands/domModify.js.map +1 -1
  64. package/dist/commands/domRemove.d.ts.map +1 -1
  65. package/dist/commands/domRemove.js +10 -25
  66. package/dist/commands/domRemove.js.map +1 -1
  67. package/dist/commands/domScroll.d.ts.map +1 -1
  68. package/dist/commands/domScroll.js +7 -33
  69. package/dist/commands/domScroll.js.map +1 -1
  70. package/dist/commands/domScrollTo.d.ts.map +1 -1
  71. package/dist/commands/domScrollTo.js +7 -33
  72. package/dist/commands/domScrollTo.js.map +1 -1
  73. package/dist/commands/domSetFile.d.ts.map +1 -1
  74. package/dist/commands/domSetFile.js +14 -36
  75. package/dist/commands/domSetFile.js.map +1 -1
  76. package/dist/commands/domTree.d.ts.map +1 -1
  77. package/dist/commands/domTree.js +10 -25
  78. package/dist/commands/domTree.js.map +1 -1
  79. package/dist/commands/extension/setup.js +1 -1
  80. package/dist/commands/extension/setup.js.map +1 -1
  81. package/dist/commands/start.d.ts +1 -1
  82. package/dist/commands/start.d.ts.map +1 -1
  83. package/dist/commands/start.js +15 -42
  84. package/dist/commands/start.js.map +1 -1
  85. package/dist/commands/watcherSession.d.ts +29 -0
  86. package/dist/commands/watcherSession.d.ts.map +1 -0
  87. package/dist/commands/watcherSession.js +64 -0
  88. package/dist/commands/watcherSession.js.map +1 -0
  89. package/dist/commands/watcherStart.d.ts +1 -1
  90. package/dist/commands/watcherStart.d.ts.map +1 -1
  91. package/dist/commands/watcherStart.js +15 -40
  92. package/dist/commands/watcherStart.js.map +1 -1
  93. package/dist/config/argusConfig.d.ts.map +1 -1
  94. package/dist/config/argusConfig.js +69 -81
  95. package/dist/config/argusConfig.js.map +1 -1
  96. package/dist/watchers/requestWatcher.d.ts +13 -1
  97. package/dist/watchers/requestWatcher.d.ts.map +1 -1
  98. package/dist/watchers/requestWatcher.js +32 -0
  99. package/dist/watchers/requestWatcher.js.map +1 -1
  100. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ import { parseDurationMs } from '../../time.js';
2
+ export const requireSelector = (options, output) => {
3
+ const selector = options.selector?.trim();
4
+ if (selector) {
5
+ return selector;
6
+ }
7
+ output.writeWarn('--selector or --testid is required');
8
+ process.exitCode = 2;
9
+ return null;
10
+ };
11
+ export const parseWaitDuration = (value, output) => {
12
+ if (value == null) {
13
+ return 0;
14
+ }
15
+ const parsed = parseDurationMs(value);
16
+ if (parsed == null || parsed < 0) {
17
+ output.writeWarn('Invalid --wait value: expected a duration like 5s, 500ms, 2m.');
18
+ process.exitCode = 2;
19
+ return null;
20
+ }
21
+ return parsed;
22
+ };
23
+ export const writeNoElementFound = (selector, output, hint) => {
24
+ output.writeWarn(`No element found for selector: ${selector}`);
25
+ if (hint) {
26
+ output.writeWarn(hint);
27
+ }
28
+ process.exitCode = 1;
29
+ };
30
+ export const parseXY = (value) => {
31
+ const parts = value.split(',');
32
+ if (parts.length !== 2) {
33
+ return null;
34
+ }
35
+ const x = Number(parts[0]);
36
+ const y = Number(parts[1]);
37
+ if (!Number.isFinite(x) || !Number.isFinite(y)) {
38
+ return null;
39
+ }
40
+ return { x, y };
41
+ };
42
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/dom/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAM/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAA2B,EAAE,MAAc,EAAiB,EAAE;IAC7F,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACzC,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAA;IACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACpB,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAyB,EAAE,MAAc,EAAiB,EAAE;IAC7F,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,CAAA;IACT,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACrC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,+DAA+D,CAAC,CAAA;QACjF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAE,IAAa,EAAQ,EAAE;IAC5F,MAAM,CAAC,SAAS,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAA;IAC9D,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAmC,EAAE;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAChB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domAdd.d.ts","sourceRoot":"","sources":["../../src/commands/domAdd.ts"],"names":[],"mappings":"AAOA,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,oDAAoD;AACpD,eAAO,MAAM,SAAS,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,aAAa,KAAG,OAAO,CAAC,IAAI,CAuG5F,CAAA"}
1
+ {"version":3,"file":"domAdd.d.ts","sourceRoot":"","sources":["../../src/commands/domAdd.ts"],"names":[],"mappings":"AAQA,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,oDAAoD;AACpD,eAAO,MAAM,SAAS,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,aAAa,KAAG,OAAO,CAAC,IAAI,CAsF5F,CAAA"}
@@ -2,13 +2,13 @@ import { readFile } from 'node:fs/promises';
2
2
  import { createOutput } from '../output/io.js';
3
3
  import { formatError } from '../cli/parse.js';
4
4
  import { resolvePath } from '../utils/paths.js';
5
- import { requestWatcherJson, writeRequestError } from '../watchers/requestWatcher.js';
5
+ import { requestWatcherAction } from '../watchers/requestWatcher.js';
6
+ import { requireSelector, writeNoElementFound } from './dom/shared.js';
6
7
  /** Execute the dom add command for a watcher id. */
7
8
  export const runDomAdd = async (id, options) => {
8
9
  const output = createOutput(options);
9
- if (!options.selector || options.selector.trim() === '') {
10
- output.writeWarn('--selector or --testid is required');
11
- process.exitCode = 2;
10
+ const selector = requireSelector(options, output);
11
+ if (!selector) {
12
12
  return;
13
13
  }
14
14
  const position = normalizePosition(options.position);
@@ -47,12 +47,12 @@ export const runDomAdd = async (id, options) => {
47
47
  process.exitCode = 2;
48
48
  return;
49
49
  }
50
- const result = await requestWatcherJson({
50
+ const result = await requestWatcherAction({
51
51
  id,
52
52
  path: '/dom/add',
53
53
  method: 'POST',
54
54
  body: {
55
- selector: options.selector,
55
+ selector,
56
56
  html,
57
57
  position,
58
58
  all: options.all ?? false,
@@ -61,38 +61,22 @@ export const runDomAdd = async (id, options) => {
61
61
  text: options.text ?? false,
62
62
  },
63
63
  timeoutMs: 30_000,
64
- returnErrorResponse: true,
65
- });
66
- if (!result.ok) {
67
- writeRequestError(result, output);
68
- return;
69
- }
70
- const response = result.data;
71
- if (!response.ok) {
72
- const errorResp = response;
73
- if (options.json) {
74
- output.writeJson(response);
75
- }
76
- else {
77
- output.writeWarn(`Error: ${errorResp.error.message}`);
78
- }
79
- process.exitCode = 1;
64
+ }, output);
65
+ if (!result) {
80
66
  return;
81
67
  }
82
- const successResp = response;
68
+ const successResp = result.data;
83
69
  if (options.json) {
84
70
  output.writeJson(successResp);
85
71
  return;
86
72
  }
87
73
  if (successResp.matches === 0) {
88
- output.writeWarn(`No element found for selector: ${options.selector}`);
89
- output.writeWarn(`Hint: run \`argus dom tree${id ? ` ${id}` : ''} --selector "${options.selector}" --all\``);
90
- process.exitCode = 1;
74
+ writeNoElementFound(selector, output, `Hint: run \`argus dom tree${id ? ` ${id}` : ''} --selector "${selector}" --all\``);
91
75
  return;
92
76
  }
93
77
  const label = successResp.inserted === 1 ? 'element' : 'elements';
94
78
  const prefix = result.watcher.id ? `${result.watcher.id}: ` : '';
95
- output.writeHuman(`${prefix}Inserted at ${successResp.inserted}/${successResp.matches} ${label} (${position}) for selector: ${options.selector}`);
79
+ output.writeHuman(`${prefix}Inserted at ${successResp.inserted}/${successResp.matches} ${label} (${position}) for selector: ${selector}`);
96
80
  };
97
81
  const normalizePosition = (value) => {
98
82
  if (!value) {
@@ -1 +1 @@
1
- {"version":3,"file":"domAdd.js","sourceRoot":"","sources":["../../src/commands/domAdd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domAdd.js","sourceRoot":"","sources":["../../src/commands/domAdd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAiBtE,oDAAoD;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAsB,EAAiB,EAAE;IAChG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAM;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,CAAC,SAAS,CAAC,mHAAmH,CAAC,CAAA;QACrI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAA;QAC9D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAA;QACrD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACjF,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IACtE,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACpD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,CAAC,SAAS,CAAC,sFAAsF,CAAC,CAAA;QACxG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;QACC,EAAE;QACF,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL,QAAQ;YACR,IAAI;YACJ,QAAQ;YACR,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACzB,GAAG;YACH,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;SAC3B;QACD,SAAS,EAAE,MAAM;KACjB,EACD,MAAM,CACN,CAAA;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAM;IACP,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,QAAQ,WAAW,CAAC,CAAA;QACzH,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAChE,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,eAAe,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,OAAO,IAAI,KAAK,KAAK,QAAQ,mBAAmB,QAAQ,EAAE,CAAC,CAAA;AAC1I,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA4B,EAAE;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,WAAW,CAAA;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,OAAO,GAAsC;QAClD,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;KACnB,CAAA;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,cAAc,GAAwB,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;IAClG,IAAI,cAAc,CAAC,QAAQ,CAAC,UAA+B,CAAC,EAAE,CAAC;QAC9D,OAAO,UAA+B,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAyB,EAAE,KAAa,EAAE,MAAuC,EAA6B,EAAE;IAC5I,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,iCAAiC,CAAC,CAAA;QAC3D,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAsB,EAAE,MAAuC,EAA0B,EAAE;IAC1H,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAA;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,CAAA;IACjE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAA;IAExC,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAA;QAC3D,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAA;QAC/D,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,CAAC;YACJ,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,CAAC,+BAA+B,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACrE,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QAChB,IAAI,CAAC;YACJ,OAAO,MAAM,SAAS,EAAE,CAAA;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,CAAC,yBAAyB,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,iEAAiE,CAAC,CAAA;IACnF,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,KAAK,IAAqB,EAAE,CAC7C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC/B,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QAClC,IAAI,IAAI,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACnD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;AACvB,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domClick.d.ts","sourceRoot":"","sources":["../../src/commands/domClick.ts"],"names":[],"mappings":"AAKA,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,sDAAsD;AACtD,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,eAAe,KAAG,OAAO,CAAC,IAAI,CAuHhG,CAAA"}
1
+ {"version":3,"file":"domClick.d.ts","sourceRoot":"","sources":["../../src/commands/domClick.ts"],"names":[],"mappings":"AAKA,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,sDAAsD;AACtD,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,eAAe,KAAG,OAAO,CAAC,IAAI,CA8FhG,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { createOutput } from '../output/io.js';
2
- import { parseDurationMs } from '../time.js';
3
- import { requestWatcherJson, writeRequestError } from '../watchers/requestWatcher.js';
2
+ import { requestWatcherAction } from '../watchers/requestWatcher.js';
3
+ import { parseWaitDuration, parseXY, writeNoElementFound } from './dom/shared.js';
4
4
  /** Execute the dom click command for a watcher id. */
5
5
  export const runDomClick = async (id, options) => {
6
6
  const output = createOutput(options);
@@ -14,29 +14,18 @@ export const runDomClick = async (id, options) => {
14
14
  let x;
15
15
  let y;
16
16
  if (hasPos) {
17
- const parts = options.pos.split(',');
18
- if (parts.length !== 2) {
17
+ const point = parseXY(options.pos);
18
+ if (!point) {
19
19
  output.writeWarn('--pos must be in the format "x,y" (e.g. --pos 100,200)');
20
20
  process.exitCode = 2;
21
21
  return;
22
22
  }
23
- x = Number(parts[0]);
24
- y = Number(parts[1]);
25
- if (!Number.isFinite(x) || !Number.isFinite(y)) {
26
- output.writeWarn('--pos coordinates must be finite numbers');
27
- process.exitCode = 2;
28
- return;
29
- }
23
+ x = point.x;
24
+ y = point.y;
30
25
  }
31
- let waitMs = 0;
32
- if (options.wait != null) {
33
- const parsed = parseDurationMs(options.wait);
34
- if (parsed == null || parsed < 0) {
35
- output.writeWarn('Invalid --wait value: expected a duration like 5s, 500ms, 2m.');
36
- process.exitCode = 2;
37
- return;
38
- }
39
- waitMs = parsed;
26
+ const waitMs = parseWaitDuration(options.wait, output);
27
+ if (waitMs == null) {
28
+ return;
40
29
  }
41
30
  const validButtons = ['left', 'middle', 'right'];
42
31
  const button = options.button ?? 'left';
@@ -63,31 +52,17 @@ export const runDomClick = async (id, options) => {
63
52
  if (waitMs > 0) {
64
53
  body.wait = waitMs;
65
54
  }
66
- const result = await requestWatcherJson({
55
+ const result = await requestWatcherAction({
67
56
  id,
68
57
  path: '/dom/click',
69
58
  method: 'POST',
70
59
  body,
71
60
  timeoutMs: Math.max(30_000, waitMs + 5_000),
72
- returnErrorResponse: true,
73
- });
74
- if (!result.ok) {
75
- writeRequestError(result, output);
76
- return;
77
- }
78
- const response = result.data;
79
- if (!response.ok) {
80
- const errorResp = response;
81
- if (options.json) {
82
- output.writeJson(response);
83
- }
84
- else {
85
- output.writeWarn(`Error: ${errorResp.error.message}`);
86
- }
87
- process.exitCode = 1;
61
+ }, output);
62
+ if (!result) {
88
63
  return;
89
64
  }
90
- const successResp = response;
65
+ const successResp = result.data;
91
66
  if (options.json) {
92
67
  output.writeJson(successResp);
93
68
  return;
@@ -98,8 +73,7 @@ export const runDomClick = async (id, options) => {
98
73
  return;
99
74
  }
100
75
  if (successResp.matches === 0) {
101
- output.writeWarn(`No element found for selector: ${options.selector}`);
102
- process.exitCode = 1;
76
+ writeNoElementFound(options.selector, output);
103
77
  return;
104
78
  }
105
79
  const label = successResp.clicked === 1 ? 'element' : 'elements';
@@ -1 +1 @@
1
- {"version":3,"file":"domClick.js","sourceRoot":"","sources":["../../src/commands/domClick.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domClick.js","sourceRoot":"","sources":["../../src/commands/domClick.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAajF,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAwB,EAAiB,EAAE;IACpG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAEpC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAA;IAElC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAA;QACnD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,IAAI,CAAqB,CAAA;IACzB,IAAI,CAAqB,CAAA;IACzB,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAI,CAAC,CAAA;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAA;YAC1E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;YACpB,OAAM;QACP,CAAC;QACD,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QACX,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACtD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACpB,OAAM;IACP,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAA;IACvC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,SAAS,CAAC,4BAA4B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,CAAA;IACxC,IAAI,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;QAC/B,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACzB,CAAC;IACF,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IACX,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACrB,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;QACC,EAAE;QACF,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;KAC3C,EACD,MAAM,CACN,CAAA;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAM;IACP,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5C,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,mBAAmB,CAAC,OAAO,CAAC,QAAS,EAAE,MAAM,CAAC,CAAA;QAC9C,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAChE,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,UAAU,CAAC,WAAW,WAAW,CAAC,OAAO,IAAI,KAAK,kBAAkB,OAAO,CAAC,QAAQ,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACtH,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,UAAU,CAAC,WAAW,WAAW,CAAC,OAAO,IAAI,KAAK,kBAAkB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/F,CAAC;AACF,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domFill.d.ts","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"AASA,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAkDD,qDAAqD;AACrD,eAAO,MAAM,UAAU,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,OAAO,MAAM,GAAG,SAAS,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CAuFzH,CAAA"}
1
+ {"version":3,"file":"domFill.d.ts","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"AASA,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAkDD,qDAAqD;AACrD,eAAO,MAAM,UAAU,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,OAAO,MAAM,GAAG,SAAS,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CAmEzH,CAAA"}
@@ -2,9 +2,9 @@ import { readFile } from 'node:fs/promises';
2
2
  import { createOutput } from '../output/io.js';
3
3
  import { formatError } from '../cli/parse.js';
4
4
  import { readStdin } from './evalShared.js';
5
- import { parseDurationMs } from '../time.js';
6
5
  import { resolvePath } from '../utils/paths.js';
7
- import { requestWatcherJson, writeRequestError } from '../watchers/requestWatcher.js';
6
+ import { requestWatcherAction } from '../watchers/requestWatcher.js';
7
+ import { parseWaitDuration, writeNoElementFound } from './dom/shared.js';
8
8
  /** Resolve the fill value from inline argument, --value-file, or --value-stdin. Returns null on error. */
9
9
  const resolveValueInput = async (value, options, output) => {
10
10
  const wantsStdin = options.valueStdin === true || value === '-';
@@ -70,15 +70,9 @@ export const runDomFill = async (id, value, options) => {
70
70
  process.exitCode = 2;
71
71
  return;
72
72
  }
73
- let waitMs = 0;
74
- if (options.wait != null) {
75
- const parsed = parseDurationMs(options.wait);
76
- if (parsed == null || parsed < 0) {
77
- output.writeWarn('Invalid --wait value: expected a duration like 5s, 500ms, 2m.');
78
- process.exitCode = 2;
79
- return;
80
- }
81
- waitMs = parsed;
73
+ const waitMs = parseWaitDuration(options.wait, output);
74
+ if (waitMs == null) {
75
+ return;
82
76
  }
83
77
  const body = {
84
78
  selector: options.selector,
@@ -89,38 +83,23 @@ export const runDomFill = async (id, value, options) => {
89
83
  if (waitMs > 0) {
90
84
  body.wait = waitMs;
91
85
  }
92
- const result = await requestWatcherJson({
86
+ const result = await requestWatcherAction({
93
87
  id,
94
88
  path: '/dom/fill',
95
89
  method: 'POST',
96
90
  body,
97
91
  timeoutMs: Math.max(30_000, waitMs + 5_000),
98
- returnErrorResponse: true,
99
- });
100
- if (!result.ok) {
101
- writeRequestError(result, output);
102
- return;
103
- }
104
- const response = result.data;
105
- if (!response.ok) {
106
- const errorResp = response;
107
- if (options.json) {
108
- output.writeJson(response);
109
- }
110
- else {
111
- output.writeWarn(`Error: ${errorResp.error.message}`);
112
- }
113
- process.exitCode = 1;
92
+ }, output);
93
+ if (!result) {
114
94
  return;
115
95
  }
116
- const successResp = response;
96
+ const successResp = result.data;
117
97
  if (options.json) {
118
98
  output.writeJson(successResp);
119
99
  return;
120
100
  }
121
101
  if (successResp.matches === 0) {
122
- output.writeWarn(`No element found for selector: ${options.selector}`);
123
- process.exitCode = 1;
102
+ writeNoElementFound(options.selector, output);
124
103
  return;
125
104
  }
126
105
  const elLabel = successResp.filled === 1 ? '1 element' : `${successResp.filled} elements`;
@@ -1 +1 @@
1
- {"version":3,"file":"domFill.js","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domFill.js","sourceRoot":"","sources":["../../src/commands/domFill.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"domFocus.d.ts","sourceRoot":"","sources":["../../src/commands/domFocus.ts"],"names":[],"mappings":"AAIA,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,sDAAsD;AACtD,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,eAAe,KAAG,OAAO,CAAC,IAAI,CAqDhG,CAAA"}
1
+ {"version":3,"file":"domFocus.d.ts","sourceRoot":"","sources":["../../src/commands/domFocus.ts"],"names":[],"mappings":"AAKA,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,sDAAsD;AACtD,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,eAAe,KAAG,OAAO,CAAC,IAAI,CAsChG,CAAA"}
@@ -1,52 +1,37 @@
1
1
  import { createOutput } from '../output/io.js';
2
- import { requestWatcherJson, writeRequestError } from '../watchers/requestWatcher.js';
2
+ import { requestWatcherAction } from '../watchers/requestWatcher.js';
3
+ import { requireSelector, writeNoElementFound } from './dom/shared.js';
3
4
  /** Execute the dom focus command for a watcher id. */
4
5
  export const runDomFocus = async (id, options) => {
5
6
  const output = createOutput(options);
6
- if (!options.selector || options.selector.trim() === '') {
7
- output.writeWarn('--selector or --testid is required');
8
- process.exitCode = 2;
7
+ const selector = requireSelector(options, output);
8
+ if (!selector) {
9
9
  return;
10
10
  }
11
- const result = await requestWatcherJson({
11
+ const result = await requestWatcherAction({
12
12
  id,
13
13
  path: '/dom/focus',
14
14
  method: 'POST',
15
15
  body: {
16
- selector: options.selector,
16
+ selector,
17
17
  all: options.all ?? false,
18
18
  text: options.text,
19
19
  },
20
20
  timeoutMs: 30_000,
21
- returnErrorResponse: true,
22
- });
23
- if (!result.ok) {
24
- writeRequestError(result, output);
21
+ }, output);
22
+ if (!result) {
25
23
  return;
26
24
  }
27
- const response = result.data;
28
- if (!response.ok) {
29
- const errorResp = response;
30
- if (options.json) {
31
- output.writeJson(response);
32
- }
33
- else {
34
- output.writeWarn(`Error: ${errorResp.error.message}`);
35
- }
36
- process.exitCode = 1;
37
- return;
38
- }
39
- const successResp = response;
25
+ const successResp = result.data;
40
26
  if (options.json) {
41
27
  output.writeJson(successResp);
42
28
  return;
43
29
  }
44
30
  if (successResp.matches === 0) {
45
- output.writeWarn(`No element found for selector: ${options.selector}`);
46
- process.exitCode = 1;
31
+ writeNoElementFound(selector, output);
47
32
  return;
48
33
  }
49
34
  const label = successResp.focused === 1 ? 'element' : 'elements';
50
- output.writeHuman(`Focused ${successResp.focused} ${label} for selector: ${options.selector}`);
35
+ output.writeHuman(`Focused ${successResp.focused} ${label} for selector: ${selector}`);
51
36
  };
52
37
  //# sourceMappingURL=domFocus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domFocus.js","sourceRoot":"","sources":["../../src/commands/domFocus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAUrF,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAwB,EAAiB,EAAE;IACpG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAA;QACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAmC;QACzE,EAAE;QACF,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB;QACD,SAAS,EAAE,MAAM;QACjB,mBAAmB,EAAE,IAAI;KACzB,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAChB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,OAAM;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;IAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,QAAyB,CAAA;QAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,SAAS,CAAC,UAAU,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,WAAW,GAAG,QAA4B,CAAA;IAEhD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,SAAS,CAAC,kCAAkC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAChE,MAAM,CAAC,UAAU,CAAC,WAAW,WAAW,CAAC,OAAO,IAAI,KAAK,kBAAkB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC/F,CAAC,CAAA"}
1
+ {"version":3,"file":"domFocus.js","sourceRoot":"","sources":["../../src/commands/domFocus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAUtE,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAwB,EAAiB,EAAE;IACpG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;QACC,EAAE;QACF,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL,QAAQ;YACR,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB;QACD,SAAS,EAAE,MAAM;KACjB,EACD,MAAM,CACN,CAAA;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAM;IACP,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrC,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAChE,MAAM,CAAC,UAAU,CAAC,WAAW,WAAW,CAAC,OAAO,IAAI,KAAK,kBAAkB,QAAQ,EAAE,CAAC,CAAA;AACvF,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domHover.d.ts","sourceRoot":"","sources":["../../src/commands/domHover.ts"],"names":[],"mappings":"AAIA,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,sDAAsD;AACtD,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,eAAe,KAAG,OAAO,CAAC,IAAI,CAqDhG,CAAA"}
1
+ {"version":3,"file":"domHover.d.ts","sourceRoot":"","sources":["../../src/commands/domHover.ts"],"names":[],"mappings":"AAKA,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,sDAAsD;AACtD,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,eAAe,KAAG,OAAO,CAAC,IAAI,CAsChG,CAAA"}
@@ -1,52 +1,37 @@
1
1
  import { createOutput } from '../output/io.js';
2
- import { requestWatcherJson, writeRequestError } from '../watchers/requestWatcher.js';
2
+ import { requestWatcherAction } from '../watchers/requestWatcher.js';
3
+ import { requireSelector, writeNoElementFound } from './dom/shared.js';
3
4
  /** Execute the dom hover command for a watcher id. */
4
5
  export const runDomHover = async (id, options) => {
5
6
  const output = createOutput(options);
6
- if (!options.selector || options.selector.trim() === '') {
7
- output.writeWarn('--selector or --testid is required');
8
- process.exitCode = 2;
7
+ const selector = requireSelector(options, output);
8
+ if (!selector) {
9
9
  return;
10
10
  }
11
- const result = await requestWatcherJson({
11
+ const result = await requestWatcherAction({
12
12
  id,
13
13
  path: '/dom/hover',
14
14
  method: 'POST',
15
15
  body: {
16
- selector: options.selector,
16
+ selector,
17
17
  all: options.all ?? false,
18
18
  text: options.text,
19
19
  },
20
20
  timeoutMs: 30_000,
21
- returnErrorResponse: true,
22
- });
23
- if (!result.ok) {
24
- writeRequestError(result, output);
21
+ }, output);
22
+ if (!result) {
25
23
  return;
26
24
  }
27
- const response = result.data;
28
- if (!response.ok) {
29
- const errorResp = response;
30
- if (options.json) {
31
- output.writeJson(response);
32
- }
33
- else {
34
- output.writeWarn(`Error: ${errorResp.error.message}`);
35
- }
36
- process.exitCode = 1;
37
- return;
38
- }
39
- const successResp = response;
25
+ const successResp = result.data;
40
26
  if (options.json) {
41
27
  output.writeJson(successResp);
42
28
  return;
43
29
  }
44
30
  if (successResp.matches === 0) {
45
- output.writeWarn(`No element found for selector: ${options.selector}`);
46
- process.exitCode = 1;
31
+ writeNoElementFound(selector, output);
47
32
  return;
48
33
  }
49
34
  const label = successResp.hovered === 1 ? 'element' : 'elements';
50
- output.writeHuman(`Hovered ${successResp.hovered} ${label} for selector: ${options.selector}`);
35
+ output.writeHuman(`Hovered ${successResp.hovered} ${label} for selector: ${selector}`);
51
36
  };
52
37
  //# sourceMappingURL=domHover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domHover.js","sourceRoot":"","sources":["../../src/commands/domHover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAUrF,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAwB,EAAiB,EAAE;IACpG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAA;QACtD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAmC;QACzE,EAAE;QACF,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB;QACD,SAAS,EAAE,MAAM;QACjB,mBAAmB,EAAE,IAAI;KACzB,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QAChB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,OAAM;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;IAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,QAAyB,CAAA;QAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,SAAS,CAAC,UAAU,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,WAAW,GAAG,QAA4B,CAAA;IAEhD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,SAAS,CAAC,kCAAkC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAChE,MAAM,CAAC,UAAU,CAAC,WAAW,WAAW,CAAC,OAAO,IAAI,KAAK,kBAAkB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;AAC/F,CAAC,CAAA"}
1
+ {"version":3,"file":"domHover.js","sourceRoot":"","sources":["../../src/commands/domHover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAUtE,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAsB,EAAE,OAAwB,EAAiB,EAAE;IACpG,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAM;IACP,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC;QACC,EAAE;QACF,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACL,QAAQ;YACR,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;SAClB;QACD,SAAS,EAAE,MAAM;KACjB,EACD,MAAM,CACN,CAAA;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAM;IACP,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;IAE/B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7B,OAAM;IACP,CAAC;IAED,IAAI,WAAW,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC/B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrC,OAAM;IACP,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAChE,MAAM,CAAC,UAAU,CAAC,WAAW,WAAW,CAAC,OAAO,IAAI,KAAK,kBAAkB,QAAQ,EAAE,CAAC,CAAA;AACvF,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domInfo.d.ts","sourceRoot":"","sources":["../../src/commands/domInfo.ts"],"names":[],"mappings":"AAMA,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,UAAU,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CA6D9F,CAAA"}
1
+ {"version":3,"file":"domInfo.d.ts","sourceRoot":"","sources":["../../src/commands/domInfo.ts"],"names":[],"mappings":"AAOA,wCAAwC;AACxC,MAAM,MAAM,cAAc,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,UAAU,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,IAAI,CA8C9F,CAAA"}
@@ -1,13 +1,13 @@
1
1
  import { formatDomInfo } from '../output/dom.js';
2
2
  import { createOutput } from '../output/io.js';
3
3
  import { parsePositiveInt } from '../cli/parse.js';
4
- import { requestWatcherJson, writeRequestError } from '../watchers/requestWatcher.js';
4
+ import { requestWatcherAction } from '../watchers/requestWatcher.js';
5
+ import { requireSelector, writeNoElementFound } from './dom/shared.js';
5
6
  /** Execute the dom info command for a watcher id. */
6
7
  export const runDomInfo = async (id, options) => {
7
8
  const output = createOutput(options);
8
- if (!options.selector || options.selector.trim() === '') {
9
- output.writeWarn('--selector or --testid is required');
10
- process.exitCode = 2;
9
+ const selector = requireSelector(options, output);
10
+ if (!selector) {
11
11
  return;
12
12
  }
13
13
  const outerHtmlMaxChars = parsePositiveInt(options.outerHtmlMax);
@@ -16,43 +16,28 @@ export const runDomInfo = async (id, options) => {
16
16
  process.exitCode = 2;
17
17
  return;
18
18
  }
19
- const result = await requestWatcherJson({
19
+ const result = await requestWatcherAction({
20
20
  id,
21
21
  path: '/dom/info',
22
22
  method: 'POST',
23
23
  body: {
24
- selector: options.selector,
24
+ selector,
25
25
  all: options.all ?? false,
26
26
  outerHtmlMaxChars,
27
27
  text: options.text,
28
28
  },
29
29
  timeoutMs: 30_000,
30
- returnErrorResponse: true,
31
- });
32
- if (!result.ok) {
33
- writeRequestError(result, output);
34
- return;
35
- }
36
- const response = result.data;
37
- if (!response.ok) {
38
- const errorResp = response;
39
- if (options.json) {
40
- output.writeJson(response);
41
- }
42
- else {
43
- output.writeWarn(`Error: ${errorResp.error.message}`);
44
- }
45
- process.exitCode = 1;
30
+ }, output);
31
+ if (!result) {
46
32
  return;
47
33
  }
48
- const successResp = response;
34
+ const successResp = result.data;
49
35
  if (options.json) {
50
36
  output.writeJson(successResp);
51
37
  return;
52
38
  }
53
39
  if (successResp.matches === 0) {
54
- output.writeWarn(`No element found for selector: ${options.selector}`);
55
- process.exitCode = 1;
40
+ writeNoElementFound(selector, output);
56
41
  return;
57
42
  }
58
43
  const formatted = formatDomInfo(successResp.elements);