@vforsh/argus-watcher 0.1.7 → 0.1.9

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 (101) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cdp/dom/selector.d.ts +10 -0
  3. package/dist/cdp/dom/selector.d.ts.map +1 -1
  4. package/dist/cdp/dom/selector.js +12 -0
  5. package/dist/cdp/dom/selector.js.map +1 -1
  6. package/dist/cdp/mouse.d.ts.map +1 -1
  7. package/dist/cdp/mouse.js +2 -11
  8. package/dist/cdp/mouse.js.map +1 -1
  9. package/dist/cdp/pageIndicator.d.ts +1 -1
  10. package/dist/cdp/pageIndicator.d.ts.map +1 -1
  11. package/dist/cdp/text-filter.js.map +1 -1
  12. package/dist/cdp/watcher.d.ts +3 -21
  13. package/dist/cdp/watcher.d.ts.map +1 -1
  14. package/dist/cdp/watcher.js +2 -278
  15. package/dist/cdp/watcher.js.map +1 -1
  16. package/dist/cdp/watcherEvents.d.ts +18 -0
  17. package/dist/cdp/watcherEvents.d.ts.map +1 -0
  18. package/dist/cdp/watcherEvents.js +169 -0
  19. package/dist/cdp/watcherEvents.js.map +1 -0
  20. package/dist/cdp/watcherTargets.d.ts +18 -0
  21. package/dist/cdp/watcherTargets.d.ts.map +1 -0
  22. package/dist/cdp/watcherTargets.js +95 -0
  23. package/dist/cdp/watcherTargets.js.map +1 -0
  24. package/dist/http/router.d.ts.map +1 -1
  25. package/dist/http/router.js +3 -77
  26. package/dist/http/router.js.map +1 -1
  27. package/dist/http/routes/domSelectorRoute.d.ts +16 -0
  28. package/dist/http/routes/domSelectorRoute.d.ts.map +1 -0
  29. package/dist/http/routes/domSelectorRoute.js +31 -0
  30. package/dist/http/routes/domSelectorRoute.js.map +1 -0
  31. package/dist/http/routes/index.d.ts +9 -0
  32. package/dist/http/routes/index.d.ts.map +1 -0
  33. package/dist/http/routes/index.js +78 -0
  34. package/dist/http/routes/index.js.map +1 -0
  35. package/dist/http/routes/postDomClick.d.ts.map +1 -1
  36. package/dist/http/routes/postDomClick.js +11 -21
  37. package/dist/http/routes/postDomClick.js.map +1 -1
  38. package/dist/http/routes/postDomFill.d.ts.map +1 -1
  39. package/dist/http/routes/postDomFill.js +9 -23
  40. package/dist/http/routes/postDomFill.js.map +1 -1
  41. package/dist/http/routes/postDomFocus.d.ts.map +1 -1
  42. package/dist/http/routes/postDomFocus.js +6 -17
  43. package/dist/http/routes/postDomFocus.js.map +1 -1
  44. package/dist/http/routes/postDomHover.d.ts.map +1 -1
  45. package/dist/http/routes/postDomHover.js +6 -17
  46. package/dist/http/routes/postDomHover.js.map +1 -1
  47. package/dist/http/routes/postDomInfo.d.ts.map +1 -1
  48. package/dist/http/routes/postDomInfo.js +6 -18
  49. package/dist/http/routes/postDomInfo.js.map +1 -1
  50. package/dist/http/routes/postDomRemove.d.ts.map +1 -1
  51. package/dist/http/routes/postDomRemove.js +6 -17
  52. package/dist/http/routes/postDomRemove.js.map +1 -1
  53. package/dist/http/routes/postDomScroll.d.ts.map +1 -1
  54. package/dist/http/routes/postDomScroll.js +2 -7
  55. package/dist/http/routes/postDomScroll.js.map +1 -1
  56. package/dist/http/routes/postDomScrollTo.d.ts.map +1 -1
  57. package/dist/http/routes/postDomScrollTo.js +2 -7
  58. package/dist/http/routes/postDomScrollTo.js.map +1 -1
  59. package/dist/http/routes/postDomSetFile.d.ts.map +1 -1
  60. package/dist/http/routes/postDomSetFile.js +9 -23
  61. package/dist/http/routes/postDomSetFile.js.map +1 -1
  62. package/dist/http/routes/postDomTree.d.ts.map +1 -1
  63. package/dist/http/routes/postDomTree.js +6 -18
  64. package/dist/http/routes/postDomTree.js.map +1 -1
  65. package/dist/index.d.ts +1 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +3 -396
  68. package/dist/index.js.map +1 -1
  69. package/dist/runtime/watcherInject.d.ts +15 -0
  70. package/dist/runtime/watcherInject.d.ts.map +1 -0
  71. package/dist/runtime/watcherInject.js +21 -0
  72. package/dist/runtime/watcherInject.js.map +1 -0
  73. package/dist/runtime/watcherServices.d.ts +32 -0
  74. package/dist/runtime/watcherServices.d.ts.map +1 -0
  75. package/dist/runtime/watcherServices.js +64 -0
  76. package/dist/runtime/watcherServices.js.map +1 -0
  77. package/dist/runtime/watcherSetup.d.ts +35 -0
  78. package/dist/runtime/watcherSetup.d.ts.map +1 -0
  79. package/dist/runtime/watcherSetup.js +96 -0
  80. package/dist/runtime/watcherSetup.js.map +1 -0
  81. package/dist/sources/extension-delegating-session.d.ts +21 -0
  82. package/dist/sources/extension-delegating-session.d.ts.map +1 -0
  83. package/dist/sources/extension-delegating-session.js +62 -0
  84. package/dist/sources/extension-delegating-session.js.map +1 -0
  85. package/dist/sources/extension-frame-runtime.d.ts +11 -0
  86. package/dist/sources/extension-frame-runtime.d.ts.map +1 -0
  87. package/dist/sources/extension-frame-runtime.js +129 -0
  88. package/dist/sources/extension-frame-runtime.js.map +1 -0
  89. package/dist/sources/extension-session-events.d.ts +21 -0
  90. package/dist/sources/extension-session-events.d.ts.map +1 -0
  91. package/dist/sources/extension-session-events.js +103 -0
  92. package/dist/sources/extension-session-events.js.map +1 -0
  93. package/dist/sources/extension-source.d.ts +0 -4
  94. package/dist/sources/extension-source.d.ts.map +1 -1
  95. package/dist/sources/extension-source.js +39 -285
  96. package/dist/sources/extension-source.js.map +1 -1
  97. package/dist/startWatcherRuntime.d.ts +6 -0
  98. package/dist/startWatcherRuntime.d.ts.map +1 -0
  99. package/dist/startWatcherRuntime.js +251 -0
  100. package/dist/startWatcherRuntime.js.map +1 -0
  101. package/package.json +1 -1
@@ -0,0 +1,169 @@
1
+ import { previewStringify } from '@vforsh/argus-core';
2
+ import { stripUrlPrefixes } from './locationCleanup.js';
3
+ import { selectBestFrame } from './selectBestFrame.js';
4
+ import { resolveSourcemappedLocation } from '../sourcemaps/resolveLocation.js';
5
+ import { serializeRemoteObject, serializeRemoteObjects } from './remoteObject.js';
6
+ export const toConsoleEvent = async (params, target, config) => {
7
+ const record = params;
8
+ const cdp = config.cdp;
9
+ const runtimeClient = cdp ? { sendAndWait: (method, params) => cdp.sendAndWait(method, params) } : undefined;
10
+ const args = Array.isArray(record.args) ? await serializeRemoteObjects(record.args, runtimeClient) : [];
11
+ const text = formatArgs(args);
12
+ const baseEvent = {
13
+ ts: Date.now(),
14
+ level: normalizeLevel(record.type ?? 'log'),
15
+ text,
16
+ args,
17
+ file: null,
18
+ line: null,
19
+ column: null,
20
+ pageUrl: target.url ?? null,
21
+ pageTitle: target.title ?? null,
22
+ source: 'console',
23
+ };
24
+ const selected = await selectLocationFromFrames(record.stackTrace?.callFrames, config.ignoreMatcher ?? null);
25
+ if (selected) {
26
+ return applyLocationCleanup({ ...baseEvent, ...selected }, config.stripUrlPrefixes);
27
+ }
28
+ const fallback = await applySourcemap(applyFirstFrame(baseEvent, record.stackTrace?.callFrames));
29
+ return applyLocationCleanup(fallback, config.stripUrlPrefixes);
30
+ };
31
+ export const toExceptionEvent = async (params, target, config) => {
32
+ const record = params;
33
+ const details = record.exceptionDetails;
34
+ const cdp = config.cdp;
35
+ const runtimeClient = cdp ? { sendAndWait: (method, params) => cdp.sendAndWait(method, params) } : undefined;
36
+ const exceptionValue = details?.exception ? await serializeRemoteObject(details.exception, runtimeClient) : null;
37
+ const args = exceptionValue != null ? [exceptionValue] : [];
38
+ const exceptionDescription = describeExceptionValue(exceptionValue);
39
+ const text = formatExceptionText(details?.text, exceptionDescription);
40
+ const baseEvent = {
41
+ ts: Date.now(),
42
+ level: 'exception',
43
+ text,
44
+ args,
45
+ file: null,
46
+ line: null,
47
+ column: null,
48
+ pageUrl: target.url ?? null,
49
+ pageTitle: target.title ?? null,
50
+ source: 'exception',
51
+ };
52
+ const selected = await selectLocationFromFrames(details?.stackTrace?.callFrames, config.ignoreMatcher ?? null);
53
+ if (selected) {
54
+ return applyLocationCleanup({ ...baseEvent, ...selected }, config.stripUrlPrefixes);
55
+ }
56
+ const fallback = await applySourcemap(applyFirstFrame(baseEvent, details?.stackTrace?.callFrames));
57
+ return applyLocationCleanup(fallback, config.stripUrlPrefixes);
58
+ };
59
+ export const fetchPageIntl = async (session) => {
60
+ try {
61
+ const result = await session.sendAndWait('Runtime.evaluate', {
62
+ expression: '(() => { const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone ?? null; const locale = navigator.language ?? null; return { timezone, locale }; })()',
63
+ returnByValue: true,
64
+ });
65
+ const payload = result;
66
+ const value = payload.result?.value;
67
+ if (!value || typeof value !== 'object') {
68
+ return null;
69
+ }
70
+ const record = value;
71
+ const timezone = typeof record.timezone === 'string' && record.timezone.trim() !== '' ? record.timezone : null;
72
+ const locale = typeof record.locale === 'string' && record.locale.trim() !== '' ? record.locale : null;
73
+ return { timezone, locale };
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ };
79
+ const applySourcemap = async (event) => {
80
+ if (!event.file || event.line == null || event.column == null) {
81
+ return event;
82
+ }
83
+ try {
84
+ const resolved = await resolveSourcemappedLocation({
85
+ file: event.file,
86
+ line: event.line,
87
+ column: event.column,
88
+ });
89
+ if (!resolved) {
90
+ return event;
91
+ }
92
+ return {
93
+ ...event,
94
+ file: resolved.file,
95
+ line: resolved.line,
96
+ column: resolved.column,
97
+ };
98
+ }
99
+ catch {
100
+ return event;
101
+ }
102
+ };
103
+ const selectLocationFromFrames = async (callFrames, ignoreMatcher) => {
104
+ if (!ignoreMatcher) {
105
+ return null;
106
+ }
107
+ return selectBestFrame(callFrames, ignoreMatcher);
108
+ };
109
+ const applyFirstFrame = (event, callFrames) => {
110
+ const frame = callFrames?.[0];
111
+ const file = frame?.url ?? null;
112
+ const line = frame?.lineNumber != null ? frame.lineNumber + 1 : null;
113
+ const column = frame?.columnNumber != null ? frame.columnNumber + 1 : null;
114
+ return { ...event, file, line, column };
115
+ };
116
+ const applyLocationCleanup = (event, prefixes) => {
117
+ if (!event.file) {
118
+ return event;
119
+ }
120
+ const cleaned = stripUrlPrefixes(event.file, prefixes);
121
+ if (cleaned === event.file) {
122
+ return event;
123
+ }
124
+ return { ...event, file: cleaned };
125
+ };
126
+ const describeExceptionValue = (value) => {
127
+ if (value == null) {
128
+ return null;
129
+ }
130
+ if (typeof value === 'string') {
131
+ return value;
132
+ }
133
+ try {
134
+ return JSON.stringify(value);
135
+ }
136
+ catch {
137
+ return String(value);
138
+ }
139
+ };
140
+ const formatExceptionText = (baseText, description) => {
141
+ const trimmed = baseText?.trim();
142
+ if (!trimmed) {
143
+ return description ?? 'Exception';
144
+ }
145
+ if (!description) {
146
+ return trimmed;
147
+ }
148
+ const isGeneric = trimmed === 'Uncaught' || trimmed === 'Uncaught (in promise)';
149
+ if (isGeneric && !trimmed.includes(description)) {
150
+ return `${trimmed}: ${description}`;
151
+ }
152
+ return trimmed;
153
+ };
154
+ const normalizeLevel = (level) => {
155
+ if (level === 'warn' || level === 'warning') {
156
+ return 'warning';
157
+ }
158
+ if (level === 'error' || level === 'info' || level === 'debug' || level === 'exception' || level === 'log') {
159
+ return level;
160
+ }
161
+ return 'log';
162
+ };
163
+ const formatArgs = (args) => {
164
+ if (args.length === 0) {
165
+ return '';
166
+ }
167
+ return args.map((arg) => previewStringify(arg)).join(' ');
168
+ };
169
+ //# sourceMappingURL=watcherEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcherEvents.js","sourceRoot":"","sources":["../../src/cdp/watcherEvents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { WatcherChrome, WatcherMatch } from '@vforsh/argus-core';
2
+ /** Minimal CDP target metadata needed for attachment. */
3
+ export type CdpTarget = {
4
+ /** CDP target id (from Chrome `/json` endpoint). */
5
+ id: string;
6
+ /** Human-readable page title for the target. */
7
+ title: string;
8
+ /** Page URL for the target. */
9
+ url: string;
10
+ /** WebSocket URL used to connect to the target via the Chrome DevTools Protocol. */
11
+ webSocketDebuggerUrl: string;
12
+ /** Target type (e.g., 'page', 'iframe', 'worker', 'service_worker'). */
13
+ type: string;
14
+ /** Parent target ID for nested targets (e.g., iframes within pages). Null for top-level pages. */
15
+ parentId: string | null;
16
+ };
17
+ export declare const findTarget: (chrome: WatcherChrome, match?: WatcherMatch) => Promise<CdpTarget>;
18
+ //# sourceMappingURL=watcherTargets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcherTargets.d.ts","sourceRoot":"","sources":["../../src/cdp/watcherTargets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAErE,yDAAyD;AACzD,MAAM,MAAM,SAAS,GAAG;IACvB,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAA;IAEV,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;IAEb,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAA;IAEX,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,CAAA;IAE5B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IAEZ,kGAAkG;IAClG,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,QAAQ,aAAa,EAAE,QAAQ,YAAY,KAAG,OAAO,CAAC,SAAS,CA6B/F,CAAA"}
@@ -0,0 +1,95 @@
1
+ export const findTarget = async (chrome, match) => {
2
+ const targets = await fetchTargets(chrome);
3
+ if (targets.length === 0) {
4
+ throw new Error('No CDP targets available');
5
+ }
6
+ if (match?.targetId) {
7
+ const selected = targets.find((target) => target.id === match.targetId);
8
+ if (!selected) {
9
+ throw new Error(`No CDP target found with id: ${match.targetId}`);
10
+ }
11
+ return selected;
12
+ }
13
+ const hasFilters = match?.url || match?.title || match?.urlRegex || match?.titleRegex || match?.type || match?.origin || match?.parent;
14
+ if (!match || !hasFilters) {
15
+ return targets[0];
16
+ }
17
+ const urlRegex = match.urlRegex ? safeRegex(match.urlRegex) : null;
18
+ const titleRegex = match.titleRegex ? safeRegex(match.titleRegex) : null;
19
+ const targetById = new Map(targets.map((target) => [target.id, target]));
20
+ const selected = targets.find((target) => matchesTarget(target, match, targetById, urlRegex, titleRegex));
21
+ if (!selected) {
22
+ throw new Error('No CDP target matched the provided criteria');
23
+ }
24
+ return selected;
25
+ };
26
+ const matchesTarget = (target, match, targetById, urlRegex, titleRegex) => {
27
+ if (match.type && target.type !== match.type) {
28
+ return false;
29
+ }
30
+ if (match.origin) {
31
+ const targetOrigin = extractOrigin(target.url);
32
+ if (!targetOrigin || !targetOrigin.includes(match.origin)) {
33
+ return false;
34
+ }
35
+ }
36
+ if (match.parent) {
37
+ if (!target.parentId) {
38
+ return false;
39
+ }
40
+ const parent = targetById.get(target.parentId);
41
+ if (!parent || !parent.url.includes(match.parent)) {
42
+ return false;
43
+ }
44
+ }
45
+ if (match.url && !target.url.includes(match.url)) {
46
+ return false;
47
+ }
48
+ if (match.title && !target.title.includes(match.title)) {
49
+ return false;
50
+ }
51
+ if (urlRegex && !urlRegex.test(target.url)) {
52
+ return false;
53
+ }
54
+ if (titleRegex && !titleRegex.test(target.title)) {
55
+ return false;
56
+ }
57
+ return true;
58
+ };
59
+ const fetchTargets = async (chrome) => {
60
+ const response = await fetch(`http://${chrome.host}:${chrome.port}/json`);
61
+ if (!response.ok) {
62
+ throw new Error(`Failed to fetch CDP targets (status ${response.status})`);
63
+ }
64
+ const data = await response.json();
65
+ if (!Array.isArray(data)) {
66
+ throw new Error('CDP target list is not an array');
67
+ }
68
+ return data
69
+ .map((target) => ({
70
+ id: target.id,
71
+ title: String(target.title ?? ''),
72
+ url: String(target.url ?? ''),
73
+ webSocketDebuggerUrl: String(target.webSocketDebuggerUrl ?? ''),
74
+ type: String(target.type ?? 'page'),
75
+ parentId: typeof target.parentId === 'string' ? target.parentId : null,
76
+ }))
77
+ .filter((target) => Boolean(target.webSocketDebuggerUrl));
78
+ };
79
+ const extractOrigin = (url) => {
80
+ try {
81
+ return new URL(url).origin;
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ };
87
+ const safeRegex = (pattern) => {
88
+ try {
89
+ return new RegExp(pattern);
90
+ }
91
+ catch {
92
+ throw new Error(`Invalid regex pattern: ${pattern}`);
93
+ }
94
+ };
95
+ //# sourceMappingURL=watcherTargets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcherTargets.js","sourceRoot":"","sources":["../../src/cdp/watcherTargets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAmFnE,kFAAkF;AAClF,eAAO,MAAM,QAAQ,GAAI,KAAK,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,KAAG,IAO3G,CAAA"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAMrD,kFAAkF;AAClF,eAAO,MAAM,QAAQ,GAAI,KAAK,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,KAAG,IAO3G,CAAA"}
@@ -1,83 +1,9 @@
1
1
  import { respondJson } from './httpUtils.js';
2
- import { handle as getStatus } from './routes/getStatus.js';
3
- import { handle as getLogs } from './routes/getLogs.js';
4
- import { handle as getTail } from './routes/getTail.js';
5
- import { handle as getNet } from './routes/getNet.js';
6
- import { handle as getNetTail } from './routes/getNetTail.js';
7
- import { handle as getAuthCookies } from './routes/getAuthCookies.js';
8
- import { handle as postEval } from './routes/postEval.js';
9
- import { handle as postTraceStart } from './routes/postTraceStart.js';
10
- import { handle as postTraceStop } from './routes/postTraceStop.js';
11
- import { handle as postScreenshot } from './routes/postScreenshot.js';
12
- import { handle as postSnapshot } from './routes/postSnapshot.js';
13
- import { handle as postCodeList } from './routes/postCodeList.js';
14
- import { handle as postCodeRead } from './routes/postCodeRead.js';
15
- import { handle as postCodeGrep } from './routes/postCodeGrep.js';
16
- import { handle as postDomTree } from './routes/postDomTree.js';
17
- import { handle as postDomInfo } from './routes/postDomInfo.js';
18
- import { handle as postDomHover } from './routes/postDomHover.js';
19
- import { handle as postDomClick } from './routes/postDomClick.js';
20
- import { handle as postDomKeydown } from './routes/postDomKeydown.js';
21
- import { handle as postDomAdd } from './routes/postDomAdd.js';
22
- import { handle as postDomRemove } from './routes/postDomRemove.js';
23
- import { handle as postDomModify } from './routes/postDomModify.js';
24
- import { handle as postDomSetFile } from './routes/postDomSetFile.js';
25
- import { handle as postDomFocus } from './routes/postDomFocus.js';
26
- import { handle as postDomFill } from './routes/postDomFill.js';
27
- import { handle as postDomScroll } from './routes/postDomScroll.js';
28
- import { handle as postDomScrollTo } from './routes/postDomScrollTo.js';
29
- import { handle as getEmulation } from './routes/getEmulation.js';
30
- import { handle as postEmulation } from './routes/postEmulation.js';
31
- import { handle as getThrottle } from './routes/getThrottle.js';
32
- import { handle as postThrottle } from './routes/postThrottle.js';
33
- import { handle as postStorageLocal } from './routes/postStorageLocal.js';
34
- import { handle as postReload } from './routes/postReload.js';
35
- import { handle as postShutdown } from './routes/postShutdown.js';
36
- import { handle as getTargets } from './routes/getTargets.js';
37
- import { handle as postAttach } from './routes/postAttach.js';
38
- import { handle as postDetach } from './routes/postDetach.js';
39
- const routes = {
40
- 'GET /status': { handler: getStatus },
41
- 'GET /logs': { handler: getLogs },
42
- 'GET /tail': { handler: getTail },
43
- 'GET /net': { handler: getNet },
44
- 'GET /net/tail': { handler: getNetTail },
45
- 'GET /auth/cookies': { handler: getAuthCookies },
46
- 'POST /eval': { handler: postEval },
47
- 'POST /trace/start': { handler: postTraceStart },
48
- 'POST /trace/stop': { handler: postTraceStop },
49
- 'POST /screenshot': { handler: postScreenshot },
50
- 'POST /snapshot': { handler: postSnapshot },
51
- 'POST /code/list': { handler: postCodeList },
52
- 'POST /code/read': { handler: postCodeRead },
53
- 'POST /code/grep': { handler: postCodeGrep },
54
- 'POST /dom/tree': { handler: postDomTree },
55
- 'POST /dom/info': { handler: postDomInfo },
56
- 'POST /dom/hover': { handler: postDomHover },
57
- 'POST /dom/click': { handler: postDomClick },
58
- 'POST /dom/keydown': { handler: postDomKeydown },
59
- 'POST /dom/add': { handler: postDomAdd },
60
- 'POST /dom/remove': { handler: postDomRemove },
61
- 'POST /dom/modify': { handler: postDomModify },
62
- 'POST /dom/set-file': { handler: postDomSetFile },
63
- 'POST /dom/focus': { handler: postDomFocus },
64
- 'POST /dom/fill': { handler: postDomFill },
65
- 'POST /dom/scroll': { handler: postDomScroll },
66
- 'POST /dom/scroll-to': { handler: postDomScrollTo },
67
- 'GET /emulation': { handler: getEmulation },
68
- 'POST /emulation': { handler: postEmulation },
69
- 'GET /throttle': { handler: getThrottle },
70
- 'POST /throttle': { handler: postThrottle },
71
- 'POST /storage/local': { handler: postStorageLocal },
72
- 'POST /reload': { handler: postReload },
73
- 'POST /shutdown': { handler: postShutdown },
74
- 'GET /targets': { handler: getTargets, extensionOnly: true },
75
- 'POST /attach': { handler: postAttach, extensionOnly: true },
76
- 'POST /detach': { handler: postDetach, extensionOnly: true },
77
- };
2
+ import { watcherRoutes } from './routes/index.js';
3
+ const routes = new Map(watcherRoutes.map((route) => [`${route.method} ${route.path}`, route]));
78
4
  /** Dispatch an incoming request to the matching route handler, or respond 404. */
79
5
  export const dispatch = (req, res, url, ctx) => {
80
- const entry = routes[`${req.method} ${url.pathname}`];
6
+ const entry = routes.get(`${req.method} ${url.pathname}`);
81
7
  if (!entry || (entry.extensionOnly && !ctx.sourceHandle)) {
82
8
  respondJson(res, { ok: false, error: { message: 'Not found', code: 'not_found' } }, 404);
83
9
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAyC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;AAEtI,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAyB,EAAE,GAAwB,EAAE,GAAQ,EAAE,GAAiB,EAAQ,EAAE;IAClH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IACzD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACxF,OAAM;IACP,CAAC;IACD,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type http from 'node:http';
2
+ type SelectorPayload = {
3
+ selector?: unknown;
4
+ all?: unknown;
5
+ };
6
+ /**
7
+ * Shared parser for DOM routes that require a selector and optional `all` toggle.
8
+ * Keeps route modules focused on the actual DOM operation.
9
+ */
10
+ export declare const readDomSelectorPayload: <T extends SelectorPayload>(req: http.IncomingMessage, res: http.ServerResponse) => Promise<{
11
+ payload: T;
12
+ all: boolean;
13
+ } | null>;
14
+ export declare const respondMultipleMatches: (res: http.ServerResponse, matches: number, action: string) => void;
15
+ export {};
16
+ //# sourceMappingURL=domSelectorRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domSelectorRoute.d.ts","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAGjC,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,OAAO,CAAA;CACb,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAU,CAAC,SAAS,eAAe,EACrE,KAAK,IAAI,CAAC,eAAe,EACzB,KAAK,IAAI,CAAC,cAAc,KACtB,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAkB7C,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,IAYlG,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { respondInvalidBody, respondJson, readJsonBody } from '../httpUtils.js';
2
+ /**
3
+ * Shared parser for DOM routes that require a selector and optional `all` toggle.
4
+ * Keeps route modules focused on the actual DOM operation.
5
+ */
6
+ export const readDomSelectorPayload = async (req, res) => {
7
+ const payload = await readJsonBody(req, res);
8
+ if (!payload) {
9
+ return null;
10
+ }
11
+ if (!payload.selector || typeof payload.selector !== 'string') {
12
+ respondInvalidBody(res, 'selector is required');
13
+ return null;
14
+ }
15
+ const all = payload.all ?? false;
16
+ if (typeof all !== 'boolean') {
17
+ respondInvalidBody(res, 'all must be a boolean');
18
+ return null;
19
+ }
20
+ return { payload, all };
21
+ };
22
+ export const respondMultipleMatches = (res, matches, action) => {
23
+ respondJson(res, {
24
+ ok: false,
25
+ error: {
26
+ message: `Selector matched ${matches} elements; pass all=true to ${action} all matches`,
27
+ code: 'multiple_matches',
28
+ },
29
+ }, 400);
30
+ };
31
+ //# sourceMappingURL=domSelectorRoute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domSelectorRoute.js","sourceRoot":"","sources":["../../../src/http/routes/domSelectorRoute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAO/E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAC1C,GAAyB,EACzB,GAAwB,EACuB,EAAE;IACjD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAI,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/D,kBAAkB,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAA;IAChC,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9B,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA;QAChD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAwB,EAAE,OAAe,EAAE,MAAc,EAAQ,EAAE;IACzG,WAAW,CACV,GAAG,EACH;QACC,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACN,OAAO,EAAE,oBAAoB,OAAO,+BAA+B,MAAM,cAAc;YACvF,IAAI,EAAE,kBAAkB;SACxB;KACD,EACD,GAAG,CACH,CAAA;AACF,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { RouteHandler } from './types.js';
2
+ export type WatcherRouteDefinition = {
3
+ method: 'GET' | 'POST';
4
+ path: string;
5
+ handler: RouteHandler;
6
+ extensionOnly?: boolean;
7
+ };
8
+ export declare const watcherRoutes: readonly [WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition, WatcherRouteDefinition];
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAwC9C,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,YAAY,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAID,eAAO,MAAM,aAAa,m4BAsC4B,CAAA"}
@@ -0,0 +1,78 @@
1
+ import { handle as getStatus } from './getStatus.js';
2
+ import { handle as getLogs } from './getLogs.js';
3
+ import { handle as getTail } from './getTail.js';
4
+ import { handle as getNet } from './getNet.js';
5
+ import { handle as getNetTail } from './getNetTail.js';
6
+ import { handle as getAuthCookies } from './getAuthCookies.js';
7
+ import { handle as postEval } from './postEval.js';
8
+ import { handle as postTraceStart } from './postTraceStart.js';
9
+ import { handle as postTraceStop } from './postTraceStop.js';
10
+ import { handle as postScreenshot } from './postScreenshot.js';
11
+ import { handle as postSnapshot } from './postSnapshot.js';
12
+ import { handle as postCodeList } from './postCodeList.js';
13
+ import { handle as postCodeRead } from './postCodeRead.js';
14
+ import { handle as postCodeGrep } from './postCodeGrep.js';
15
+ import { handle as postDomTree } from './postDomTree.js';
16
+ import { handle as postDomInfo } from './postDomInfo.js';
17
+ import { handle as postDomHover } from './postDomHover.js';
18
+ import { handle as postDomClick } from './postDomClick.js';
19
+ import { handle as postDomKeydown } from './postDomKeydown.js';
20
+ import { handle as postDomAdd } from './postDomAdd.js';
21
+ import { handle as postDomRemove } from './postDomRemove.js';
22
+ import { handle as postDomModify } from './postDomModify.js';
23
+ import { handle as postDomSetFile } from './postDomSetFile.js';
24
+ import { handle as postDomFocus } from './postDomFocus.js';
25
+ import { handle as postDomFill } from './postDomFill.js';
26
+ import { handle as postDomScroll } from './postDomScroll.js';
27
+ import { handle as postDomScrollTo } from './postDomScrollTo.js';
28
+ import { handle as getEmulation } from './getEmulation.js';
29
+ import { handle as postEmulation } from './postEmulation.js';
30
+ import { handle as getThrottle } from './getThrottle.js';
31
+ import { handle as postThrottle } from './postThrottle.js';
32
+ import { handle as postStorageLocal } from './postStorageLocal.js';
33
+ import { handle as postReload } from './postReload.js';
34
+ import { handle as postShutdown } from './postShutdown.js';
35
+ import { handle as getTargets } from './getTargets.js';
36
+ import { handle as postAttach } from './postAttach.js';
37
+ import { handle as postDetach } from './postDetach.js';
38
+ const defineRoute = (definition) => definition;
39
+ export const watcherRoutes = [
40
+ defineRoute({ method: 'GET', path: '/status', handler: getStatus }),
41
+ defineRoute({ method: 'GET', path: '/logs', handler: getLogs }),
42
+ defineRoute({ method: 'GET', path: '/tail', handler: getTail }),
43
+ defineRoute({ method: 'GET', path: '/net', handler: getNet }),
44
+ defineRoute({ method: 'GET', path: '/net/tail', handler: getNetTail }),
45
+ defineRoute({ method: 'GET', path: '/auth/cookies', handler: getAuthCookies }),
46
+ defineRoute({ method: 'POST', path: '/eval', handler: postEval }),
47
+ defineRoute({ method: 'POST', path: '/trace/start', handler: postTraceStart }),
48
+ defineRoute({ method: 'POST', path: '/trace/stop', handler: postTraceStop }),
49
+ defineRoute({ method: 'POST', path: '/screenshot', handler: postScreenshot }),
50
+ defineRoute({ method: 'POST', path: '/snapshot', handler: postSnapshot }),
51
+ defineRoute({ method: 'POST', path: '/code/list', handler: postCodeList }),
52
+ defineRoute({ method: 'POST', path: '/code/read', handler: postCodeRead }),
53
+ defineRoute({ method: 'POST', path: '/code/grep', handler: postCodeGrep }),
54
+ defineRoute({ method: 'POST', path: '/dom/tree', handler: postDomTree }),
55
+ defineRoute({ method: 'POST', path: '/dom/info', handler: postDomInfo }),
56
+ defineRoute({ method: 'POST', path: '/dom/hover', handler: postDomHover }),
57
+ defineRoute({ method: 'POST', path: '/dom/click', handler: postDomClick }),
58
+ defineRoute({ method: 'POST', path: '/dom/keydown', handler: postDomKeydown }),
59
+ defineRoute({ method: 'POST', path: '/dom/add', handler: postDomAdd }),
60
+ defineRoute({ method: 'POST', path: '/dom/remove', handler: postDomRemove }),
61
+ defineRoute({ method: 'POST', path: '/dom/modify', handler: postDomModify }),
62
+ defineRoute({ method: 'POST', path: '/dom/set-file', handler: postDomSetFile }),
63
+ defineRoute({ method: 'POST', path: '/dom/focus', handler: postDomFocus }),
64
+ defineRoute({ method: 'POST', path: '/dom/fill', handler: postDomFill }),
65
+ defineRoute({ method: 'POST', path: '/dom/scroll', handler: postDomScroll }),
66
+ defineRoute({ method: 'POST', path: '/dom/scroll-to', handler: postDomScrollTo }),
67
+ defineRoute({ method: 'GET', path: '/emulation', handler: getEmulation }),
68
+ defineRoute({ method: 'POST', path: '/emulation', handler: postEmulation }),
69
+ defineRoute({ method: 'GET', path: '/throttle', handler: getThrottle }),
70
+ defineRoute({ method: 'POST', path: '/throttle', handler: postThrottle }),
71
+ defineRoute({ method: 'POST', path: '/storage/local', handler: postStorageLocal }),
72
+ defineRoute({ method: 'POST', path: '/reload', handler: postReload }),
73
+ defineRoute({ method: 'POST', path: '/shutdown', handler: postShutdown }),
74
+ defineRoute({ method: 'GET', path: '/targets', handler: getTargets, extensionOnly: true }),
75
+ defineRoute({ method: 'POST', path: '/attach', handler: postAttach, extensionOnly: true }),
76
+ defineRoute({ method: 'POST', path: '/detach', handler: postDetach, extensionOnly: true }),
77
+ ];
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postDomClick.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postDomClick.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAM9C,eAAO,MAAM,MAAM,EAAE,YA+FpB,CAAA"}
1
+ {"version":3,"file":"postDomClick.d.ts","sourceRoot":"","sources":["../../../src/http/routes/postDomClick.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAO9C,eAAO,MAAM,MAAM,EAAE,YAiFpB,CAAA"}