@vforsh/argus 0.1.10 → 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 (146) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/argus.js +4781 -4880
  3. package/dist/bin.js +4 -47
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cdp/sendCdpCommand.d.ts +11 -0
  6. package/dist/cdp/sendCdpCommand.d.ts.map +1 -0
  7. package/dist/cdp/sendCdpCommand.js +103 -0
  8. package/dist/cdp/sendCdpCommand.js.map +1 -0
  9. package/dist/cli/program.d.ts.map +1 -1
  10. package/dist/cli/program.js +2 -1
  11. package/dist/cli/program.js.map +1 -1
  12. package/dist/cli/register/domCommandBuilder.d.ts +22 -0
  13. package/dist/cli/register/domCommandBuilder.d.ts.map +1 -0
  14. package/dist/cli/register/domCommandBuilder.js +33 -0
  15. package/dist/cli/register/domCommandBuilder.js.map +1 -0
  16. package/dist/cli/register/index.d.ts +4 -0
  17. package/dist/cli/register/index.d.ts.map +1 -0
  18. package/dist/cli/register/index.js +45 -0
  19. package/dist/cli/register/index.js.map +1 -0
  20. package/dist/cli/register/registerDom.d.ts.map +1 -1
  21. package/dist/cli/register/registerDom.js +138 -121
  22. package/dist/cli/register/registerDom.js.map +1 -1
  23. package/dist/commands/chrome/browser.d.ts +5 -0
  24. package/dist/commands/chrome/browser.d.ts.map +1 -0
  25. package/dist/commands/chrome/browser.js +71 -0
  26. package/dist/commands/chrome/browser.js.map +1 -0
  27. package/dist/commands/chrome/processes.d.ts +24 -0
  28. package/dist/commands/chrome/processes.d.ts.map +1 -0
  29. package/dist/commands/chrome/processes.js +115 -0
  30. package/dist/commands/chrome/processes.js.map +1 -0
  31. package/dist/commands/chrome/shared.d.ts +31 -0
  32. package/dist/commands/chrome/shared.d.ts.map +1 -0
  33. package/dist/commands/chrome/shared.js +48 -0
  34. package/dist/commands/chrome/shared.js.map +1 -0
  35. package/dist/commands/chrome/targets.d.ts +26 -0
  36. package/dist/commands/chrome/targets.d.ts.map +1 -0
  37. package/dist/commands/chrome/targets.js +240 -0
  38. package/dist/commands/chrome/targets.js.map +1 -0
  39. package/dist/commands/chrome.d.ts +6 -63
  40. package/dist/commands/chrome.d.ts.map +1 -1
  41. package/dist/commands/chrome.js +3 -609
  42. package/dist/commands/chrome.js.map +1 -1
  43. package/dist/commands/chromeStart.d.ts.map +1 -1
  44. package/dist/commands/chromeStart.js +14 -44
  45. package/dist/commands/chromeStart.js.map +1 -1
  46. package/dist/commands/dom/shared.d.ts +12 -0
  47. package/dist/commands/dom/shared.d.ts.map +1 -0
  48. package/dist/commands/dom/shared.js +42 -0
  49. package/dist/commands/dom/shared.js.map +1 -0
  50. package/dist/commands/domAdd.d.ts.map +1 -1
  51. package/dist/commands/domAdd.js +11 -27
  52. package/dist/commands/domAdd.js.map +1 -1
  53. package/dist/commands/domClick.d.ts.map +1 -1
  54. package/dist/commands/domClick.js +14 -40
  55. package/dist/commands/domClick.js.map +1 -1
  56. package/dist/commands/domFill.d.ts.map +1 -1
  57. package/dist/commands/domFill.js +10 -31
  58. package/dist/commands/domFill.js.map +1 -1
  59. package/dist/commands/domFocus.d.ts.map +1 -1
  60. package/dist/commands/domFocus.js +11 -26
  61. package/dist/commands/domFocus.js.map +1 -1
  62. package/dist/commands/domHover.d.ts.map +1 -1
  63. package/dist/commands/domHover.js +11 -26
  64. package/dist/commands/domHover.js.map +1 -1
  65. package/dist/commands/domInfo.d.ts.map +1 -1
  66. package/dist/commands/domInfo.js +10 -25
  67. package/dist/commands/domInfo.js.map +1 -1
  68. package/dist/commands/domModify.d.ts.map +1 -1
  69. package/dist/commands/domModify.js +14 -26
  70. package/dist/commands/domModify.js.map +1 -1
  71. package/dist/commands/domRemove.d.ts.map +1 -1
  72. package/dist/commands/domRemove.js +10 -25
  73. package/dist/commands/domRemove.js.map +1 -1
  74. package/dist/commands/domScroll.d.ts.map +1 -1
  75. package/dist/commands/domScroll.js +7 -33
  76. package/dist/commands/domScroll.js.map +1 -1
  77. package/dist/commands/domScrollTo.d.ts.map +1 -1
  78. package/dist/commands/domScrollTo.js +7 -33
  79. package/dist/commands/domScrollTo.js.map +1 -1
  80. package/dist/commands/domSetFile.d.ts.map +1 -1
  81. package/dist/commands/domSetFile.js +14 -36
  82. package/dist/commands/domSetFile.js.map +1 -1
  83. package/dist/commands/domTree.d.ts.map +1 -1
  84. package/dist/commands/domTree.js +10 -25
  85. package/dist/commands/domTree.js.map +1 -1
  86. package/dist/commands/extension/setup.js +1 -1
  87. package/dist/commands/extension/setup.js.map +1 -1
  88. package/dist/commands/list.d.ts.map +1 -1
  89. package/dist/commands/list.js +3 -5
  90. package/dist/commands/list.js.map +1 -1
  91. package/dist/commands/logs.d.ts.map +1 -1
  92. package/dist/commands/logs.js +10 -57
  93. package/dist/commands/logs.js.map +1 -1
  94. package/dist/commands/net.d.ts.map +1 -1
  95. package/dist/commands/net.js +8 -22
  96. package/dist/commands/net.js.map +1 -1
  97. package/dist/commands/netTail.d.ts.map +1 -1
  98. package/dist/commands/netTail.js +11 -25
  99. package/dist/commands/netTail.js.map +1 -1
  100. package/dist/commands/page.d.ts.map +1 -1
  101. package/dist/commands/page.js +1 -99
  102. package/dist/commands/page.js.map +1 -1
  103. package/dist/commands/start.d.ts +1 -1
  104. package/dist/commands/start.d.ts.map +1 -1
  105. package/dist/commands/start.js +19 -86
  106. package/dist/commands/start.js.map +1 -1
  107. package/dist/commands/startShared.d.ts +32 -0
  108. package/dist/commands/startShared.d.ts.map +1 -0
  109. package/dist/commands/startShared.js +74 -0
  110. package/dist/commands/startShared.js.map +1 -0
  111. package/dist/commands/tail.d.ts.map +1 -1
  112. package/dist/commands/tail.js +8 -43
  113. package/dist/commands/tail.js.map +1 -1
  114. package/dist/commands/trace.d.ts.map +1 -1
  115. package/dist/commands/trace.js +7 -9
  116. package/dist/commands/trace.js.map +1 -1
  117. package/dist/commands/watcherSession.d.ts +29 -0
  118. package/dist/commands/watcherSession.d.ts.map +1 -0
  119. package/dist/commands/watcherSession.js +64 -0
  120. package/dist/commands/watcherSession.js.map +1 -0
  121. package/dist/commands/watcherStart.d.ts +1 -1
  122. package/dist/commands/watcherStart.d.ts.map +1 -1
  123. package/dist/commands/watcherStart.js +23 -89
  124. package/dist/commands/watcherStart.js.map +1 -1
  125. package/dist/config/argusConfig.d.ts.map +1 -1
  126. package/dist/config/argusConfig.js +69 -81
  127. package/dist/config/argusConfig.js.map +1 -1
  128. package/dist/eval/evalClient.js +5 -14
  129. package/dist/eval/evalClient.js.map +1 -1
  130. package/dist/httpClient.d.ts +1 -12
  131. package/dist/httpClient.d.ts.map +1 -1
  132. package/dist/httpClient.js +1 -84
  133. package/dist/httpClient.js.map +1 -1
  134. package/dist/runtime-code/strings.js +9 -1
  135. package/dist/runtime-code/strings.js.map +1 -1
  136. package/dist/watchers/queryParams.d.ts +34 -0
  137. package/dist/watchers/queryParams.d.ts.map +1 -0
  138. package/dist/watchers/queryParams.js +80 -0
  139. package/dist/watchers/queryParams.js.map +1 -0
  140. package/dist/watchers/requestWatcher.d.ts +16 -1
  141. package/dist/watchers/requestWatcher.d.ts.map +1 -1
  142. package/dist/watchers/requestWatcher.js +47 -9
  143. package/dist/watchers/requestWatcher.js.map +1 -1
  144. package/dist/watchers/resolveWatcher.js +2 -3
  145. package/dist/watchers/resolveWatcher.js.map +1 -1
  146. package/package.json +1 -1
package/dist/bin.js CHANGED
@@ -1,54 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import { createProgram } from './cli/program.js';
3
- import { registerQuickAccess } from './cli/register/registerQuickAccess.js';
4
- import { registerChrome } from './cli/register/registerChrome.js';
5
- import { registerWatcher } from './cli/register/registerWatcher.js';
6
- import { registerPage } from './cli/register/registerPage.js';
7
- import { registerLogs } from './cli/register/registerLogs.js';
8
- import { registerNet } from './cli/register/registerNet.js';
9
- import { registerAuth } from './cli/register/registerAuth.js';
10
- import { registerEval } from './cli/register/registerEval.js';
11
- import { registerDom } from './cli/register/registerDom.js';
12
- import { registerClick } from './cli/register/registerClick.js';
13
- import { registerKeydown } from './cli/register/registerKeydown.js';
14
- import { registerFill } from './cli/register/registerFill.js';
15
- import { registerHover } from './cli/register/registerHover.js';
16
- import { registerScrollTo } from './cli/register/registerScrollTo.js';
17
- import { registerStorage } from './cli/register/registerStorage.js';
18
- import { registerThrottle } from './cli/register/registerThrottle.js';
19
- import { registerSnapshot } from './cli/register/registerSnapshot.js';
20
- import { registerTrace } from './cli/register/registerTrace.js';
21
- import { registerConfig } from './cli/register/registerConfig.js';
22
- import { registerExtension } from './cli/register/registerExtension.js';
23
- import { registerCode } from './cli/register/registerCode.js';
3
+ import { coreProgramRegistrars } from './cli/register/index.js';
24
4
  import { registerPlugins } from './cli/plugins/registerPlugins.js';
25
5
  const program = createProgram();
26
- // Quick access
27
- registerQuickAccess(program);
28
- // Setup & infrastructure
29
- registerChrome(program);
30
- registerWatcher(program);
31
- registerPage(program);
32
- // Inspect & debug
33
- registerLogs(program);
34
- registerNet(program);
35
- registerAuth(program);
36
- registerEval(program);
37
- registerCode(program);
38
- registerDom(program);
39
- registerClick(program);
40
- registerKeydown(program);
41
- registerFill(program);
42
- registerHover(program);
43
- registerScrollTo(program);
44
- registerStorage(program);
45
- registerThrottle(program);
46
- // Capture
47
- registerSnapshot(program);
48
- registerTrace(program);
49
- // Configuration
50
- registerConfig(program);
51
- registerExtension(program);
6
+ for (const registerProgramPart of coreProgramRegistrars) {
7
+ registerProgramPart(program);
8
+ }
52
9
  await registerPlugins(program);
53
10
  program.parseAsync(process.argv).catch((error) => {
54
11
  console.error(error);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAElE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;AAE/B,eAAe;AACf,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAE5B,yBAAyB;AACzB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,YAAY,CAAC,OAAO,CAAC,CAAA;AAErB,kBAAkB;AAClB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,WAAW,CAAC,OAAO,CAAC,CAAA;AACpB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,WAAW,CAAC,OAAO,CAAC,CAAA;AACpB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,gBAAgB,CAAC,OAAO,CAAC,CAAA;AAEzB,UAAU;AACV,gBAAgB,CAAC,OAAO,CAAC,CAAA;AACzB,aAAa,CAAC,OAAO,CAAC,CAAA;AAEtB,gBAAgB;AAChB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAE1B,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;AAE9B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAElE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;AAE/B,KAAK,MAAM,mBAAmB,IAAI,qBAAqB,EAAE,CAAC;IACzD,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,eAAe,CAAC,OAAO,CAAC,CAAA;AAE9B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAChD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ export type CdpCommandPayload = {
2
+ id: number;
3
+ method: string;
4
+ params?: Record<string, unknown>;
5
+ };
6
+ /**
7
+ * Send a single CDP command over a target/browser websocket and wait for the matching response.
8
+ * This stays intentionally tiny so command modules can focus on selecting targets and formatting output.
9
+ */
10
+ export declare const sendCdpCommand: (wsUrl: string, payload: CdpCommandPayload, timeoutMs?: number) => Promise<void>;
11
+ //# sourceMappingURL=sendCdpCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendCdpCommand.d.ts","sourceRoot":"","sources":["../../src/cdp/sendCdpCommand.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC,CAAA;AAoBD;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAU,OAAO,MAAM,EAAE,SAAS,iBAAiB,EAAE,kBAAiB,KAAG,OAAO,CAAC,IAAI,CAuF/G,CAAA"}
@@ -0,0 +1,103 @@
1
+ const getWebSocketCtor = () => {
2
+ const ctor = globalThis.WebSocket;
3
+ return ctor ?? null;
4
+ };
5
+ const toMessageText = (data) => {
6
+ if (typeof data === 'string') {
7
+ return data;
8
+ }
9
+ if (data instanceof ArrayBuffer) {
10
+ return Buffer.from(data).toString('utf8');
11
+ }
12
+ if (Buffer.isBuffer(data)) {
13
+ return data.toString('utf8');
14
+ }
15
+ return null;
16
+ };
17
+ /**
18
+ * Send a single CDP command over a target/browser websocket and wait for the matching response.
19
+ * This stays intentionally tiny so command modules can focus on selecting targets and formatting output.
20
+ */
21
+ export const sendCdpCommand = async (wsUrl, payload, timeoutMs = 5_000) => {
22
+ const WebSocketConstructor = getWebSocketCtor();
23
+ if (!WebSocketConstructor) {
24
+ throw new Error('WebSocket unavailable. Node 18+ required.');
25
+ }
26
+ const ws = new WebSocketConstructor(wsUrl);
27
+ const requestId = payload.id;
28
+ await new Promise((resolve, reject) => {
29
+ let settled = false;
30
+ const timer = setTimeout(() => {
31
+ if (!settled) {
32
+ settled = true;
33
+ try {
34
+ ws.close();
35
+ }
36
+ catch { }
37
+ reject(new Error(`CDP command timed out after ${timeoutMs}ms`));
38
+ }
39
+ }, timeoutMs);
40
+ const cleanup = () => {
41
+ clearTimeout(timer);
42
+ ws.removeEventListener?.('open', onOpen);
43
+ ws.removeEventListener?.('message', onMessage);
44
+ ws.removeEventListener?.('error', onError);
45
+ ws.removeEventListener?.('close', onClose);
46
+ };
47
+ const finish = (error) => {
48
+ if (settled) {
49
+ return;
50
+ }
51
+ settled = true;
52
+ cleanup();
53
+ try {
54
+ ws.close();
55
+ }
56
+ catch { }
57
+ if (error) {
58
+ reject(error);
59
+ return;
60
+ }
61
+ resolve();
62
+ };
63
+ const onOpen = () => {
64
+ try {
65
+ ws.send(JSON.stringify(payload));
66
+ }
67
+ catch (error) {
68
+ finish(error instanceof Error ? error : new Error(String(error)));
69
+ }
70
+ };
71
+ const onMessage = (event) => {
72
+ const text = toMessageText(event.data);
73
+ if (!text) {
74
+ return;
75
+ }
76
+ try {
77
+ const message = JSON.parse(text);
78
+ if (message.id !== requestId) {
79
+ return;
80
+ }
81
+ if (message.error?.message) {
82
+ finish(new Error(message.error.message));
83
+ return;
84
+ }
85
+ finish();
86
+ }
87
+ catch (error) {
88
+ finish(error instanceof Error ? error : new Error(String(error)));
89
+ }
90
+ };
91
+ const onError = () => {
92
+ finish(new Error('WebSocket error'));
93
+ };
94
+ const onClose = () => {
95
+ finish(new Error('WebSocket closed before response'));
96
+ };
97
+ ws.addEventListener('open', onOpen);
98
+ ws.addEventListener('message', onMessage);
99
+ ws.addEventListener('error', onError);
100
+ ws.addEventListener('close', onClose);
101
+ });
102
+ };
103
+ //# sourceMappingURL=sendCdpCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendCdpCommand.js","sourceRoot":"","sources":["../../src/cdp/sendCdpCommand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,wBAAgB,aAAa,IAAI,OAAO,CAoBvC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,wBAAgB,aAAa,IAAI,OAAO,CAoBvC"}
@@ -1,10 +1,11 @@
1
1
  import { Command } from 'commander';
2
+ import packageJson from '../../package.json' with { type: 'json' };
2
3
  export function createProgram() {
3
4
  const program = new Command();
4
5
  program
5
6
  .name('argus')
6
7
  .description('Argus CLI for local watcher servers')
7
- .version('0.1.0')
8
+ .version(packageJson.version)
8
9
  .configureOutput({
9
10
  outputError: (str, write) => write(str),
10
11
  })
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,MAAM,UAAU,aAAa;IAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,OAAO;SACL,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,qCAAqC,CAAC;SAClD,OAAO,CAAC,OAAO,CAAC;SAChB,eAAe,CAAC;QAChB,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;KACvC,CAAC;SACD,wBAAwB,CAAC,IAAI,CAAC;SAC9B,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEH,OAAO,OAAO,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAElE,MAAM,UAAU,aAAa;IAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,OAAO;SACL,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,qCAAqC,CAAC;SAClD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;SAC5B,eAAe,CAAC;QAChB,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;KACvC,CAAC;SACD,wBAAwB,CAAC,IAAI,CAAC;SAC9B,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEH,OAAO,OAAO,CAAA;AACf,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Command } from 'commander';
2
+ type DomSelectorCommandSpec = {
3
+ name: string;
4
+ description: string;
5
+ examples: string[];
6
+ alias?: string;
7
+ allowsAll?: boolean;
8
+ textOption?: {
9
+ flags: string;
10
+ description: string;
11
+ };
12
+ waitOption?: boolean;
13
+ configure?: (command: Command) => void;
14
+ action: (id: string | undefined, options: any) => Promise<void>;
15
+ };
16
+ /**
17
+ * Build DOM subcommands with the shared watcher-id, selector/testid, and output plumbing.
18
+ * Keeping this declarative avoids the usual CLI drift where similar commands slowly diverge.
19
+ */
20
+ export declare const registerDomSelectorCommand: (parent: Command, spec: DomSelectorCommandSpec) => void;
21
+ export {};
22
+ //# sourceMappingURL=domCommandBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domCommandBuilder.d.ts","sourceRoot":"","sources":["../../../src/cli/register/domCommandBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASxC,KAAK,sBAAsB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAI,QAAQ,OAAO,EAAE,MAAM,sBAAsB,KAAG,IA6B1F,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { resolveTestId } from '../../commands/resolveTestId.js';
2
+ /**
3
+ * Build DOM subcommands with the shared watcher-id, selector/testid, and output plumbing.
4
+ * Keeping this declarative avoids the usual CLI drift where similar commands slowly diverge.
5
+ */
6
+ export const registerDomSelectorCommand = (parent, spec) => {
7
+ const command = parent.command(spec.name).argument('[id]', 'Watcher id to query').description(spec.description);
8
+ if (spec.alias) {
9
+ command.alias(spec.alias);
10
+ }
11
+ command.option('--selector <css>', 'CSS selector to match element(s)');
12
+ command.option('--testid <id>', 'Shorthand for --selector "[data-testid=\'<id>\']"');
13
+ if (spec.allowsAll !== false) {
14
+ command.option('--all', 'Allow multiple matches (default: error if >1 match)');
15
+ }
16
+ if (spec.textOption) {
17
+ command.option(spec.textOption.flags, spec.textOption.description);
18
+ }
19
+ if (spec.waitOption) {
20
+ command.option('--wait <duration>', 'Wait for selector to appear (e.g. 5s, 500ms)');
21
+ }
22
+ command.option('--json', 'Output JSON for automation');
23
+ spec.configure?.(command);
24
+ command.addHelpText('after', formatExamples(spec.examples));
25
+ command.action(async (id, options) => {
26
+ if (!resolveTestId(options)) {
27
+ return;
28
+ }
29
+ await spec.action(id, options);
30
+ });
31
+ };
32
+ const formatExamples = (examples) => `\nExamples:\n${examples.map((example) => ` $ ${example}`).join('\n')}\n`;
33
+ //# sourceMappingURL=domCommandBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domCommandBuilder.js","sourceRoot":"","sources":["../../../src/cli/register/domCommandBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAuB/D;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAe,EAAE,IAA4B,EAAQ,EAAE;IACjG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE/G,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAA;IACtE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,mDAAmD,CAAC,CAAA;IAEpF,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,qDAAqD,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;IACnE,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,8CAA8C,CAAC,CAAA;IACpF,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAA;IACzB,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;QACpC,IAAI,CAAC,aAAa,CAAC,OAA4B,CAAC,EAAE,CAAC;YAClD,OAAM;QACP,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAkC,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAU,EAAE,CAAC,gBAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ export type ProgramRegistrar = (program: Command) => void;
3
+ export declare const coreProgramRegistrars: readonly ProgramRegistrar[];
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/register/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBxC,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAEzD,eAAO,MAAM,qBAAqB,EAAE,SAAS,gBAAgB,EAsB5D,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { registerQuickAccess } from './registerQuickAccess.js';
2
+ import { registerChrome } from './registerChrome.js';
3
+ import { registerWatcher } from './registerWatcher.js';
4
+ import { registerPage } from './registerPage.js';
5
+ import { registerLogs } from './registerLogs.js';
6
+ import { registerNet } from './registerNet.js';
7
+ import { registerAuth } from './registerAuth.js';
8
+ import { registerEval } from './registerEval.js';
9
+ import { registerDom } from './registerDom.js';
10
+ import { registerClick } from './registerClick.js';
11
+ import { registerKeydown } from './registerKeydown.js';
12
+ import { registerFill } from './registerFill.js';
13
+ import { registerHover } from './registerHover.js';
14
+ import { registerScrollTo } from './registerScrollTo.js';
15
+ import { registerStorage } from './registerStorage.js';
16
+ import { registerThrottle } from './registerThrottle.js';
17
+ import { registerSnapshot } from './registerSnapshot.js';
18
+ import { registerTrace } from './registerTrace.js';
19
+ import { registerConfig } from './registerConfig.js';
20
+ import { registerExtension } from './registerExtension.js';
21
+ import { registerCode } from './registerCode.js';
22
+ export const coreProgramRegistrars = [
23
+ registerQuickAccess,
24
+ registerChrome,
25
+ registerWatcher,
26
+ registerPage,
27
+ registerLogs,
28
+ registerNet,
29
+ registerAuth,
30
+ registerEval,
31
+ registerCode,
32
+ registerDom,
33
+ registerClick,
34
+ registerKeydown,
35
+ registerFill,
36
+ registerHover,
37
+ registerScrollTo,
38
+ registerStorage,
39
+ registerThrottle,
40
+ registerSnapshot,
41
+ registerTrace,
42
+ registerConfig,
43
+ registerExtension,
44
+ ];
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/register/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIhD,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IACjE,mBAAmB;IACnB,cAAc;IACd,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,aAAa;IACb,eAAe;IACf,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,iBAAiB;CACjB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerDom.d.ts","sourceRoot":"","sources":["../../../src/cli/register/registerDom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAaxC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsMlD"}
1
+ {"version":3,"file":"registerDom.d.ts","sourceRoot":"","sources":["../../../src/cli/register/registerDom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcxC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqMlD"}